RFC: Request For Comment

27 results back to index


pages: 570 words: 115,722

The Tangled Web: A Guide to Securing Modern Web Applications by Michal Zalewski

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

barriers to entry, business process, defense in depth, easy for humans, difficult for computers, fault tolerance, finite state, Firefox, Google Chrome, information retrieval, RFC: Request For Comment, semantic web, Steve Jobs, telemarketer, Turing test, Vannevar Bush, web application, WebRTC, WebSocket

Gontmakher, “The Homograph Attack,” Communications of the ACM (2002), http://www.cs.technion.ac.il/~gabr/papers/homograph_full.pdf. [105] E. Rescorla, “HTTP Over TLS,” IETF Request for Comments 2818 (2000), http://www.ietf.org/rfc/rfc2818.txt. [106] J. Postel and J. Reynolds, “File Transfer Protocol (FTP),” IETF Request for Comments 959 (1985), http://www.ietf.org/rfc/rfc959.txt. [107] F. Anklesaria, M. McCahill, P. Lindner, D. Johnson, D. Torrey, and B. Alberti, “The Internet Gopher Protocol,” IETF Request for Comments 1436 (1993), http://www.ietf.org/rfc/rfc1436.txt. [108] E. Rescorla and A. Schiffman, “The Secure HyperText Transfer Protocol,” IETF Request for Comments 2660 (1999), http://www.ietf.org/rfc/rfc2660.txt. [109] L. Masinter, “The ‘data’ URL Scheme,” IETF Request for Comments 2397 (1998), http://www.ietf.org/rfc/rfc2397.txt. [110] “What Are rss: and feed: Links?” http://www.brindys.com/winrss/feedformat.html

Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” IETF Request for Comments 3986 (2005), http://www.ietf.org/rfc/rfc3986.txt. [95] T. Berners-Lee, L. Masinter, and M. McCahill, “Uniform Resource Locators (URL),” IETF Request for Comments 1738 (1994), http://www.ietf.org/rfc/rfc1738.txt. [96] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, and T. Berners-Lee, “Hypertext Transfer Protocol—HTTP/1.1,” IETF Request for Comments 2616 (1999), http://www.ietf.org/rfc/rfc2616.txt. [97] “Uniform Resource Identifer (URI) Schemes per RFC4395,” Internet Assigned Numbers Authority (June 6, 2011), http://www.iana.org/assignments/uri-schemes.html. [98] P. Mockapetris, “Domain Names—Implementation and Specification,” IETF Request for Comments 1035 (1987), http://www.ietf.org/rfc/rfc1035.txt. [99] T. Berners-Lee, “Universal Resource Identifiers in WWW,” IETF Request for Comments 1630 (1994), http://www.w3.org/Addressing/rfc1630.txt

Montulli, “Persistent Client State HTTP Cookies” (1994), http://curl.haxx.se/rfc/cookie_spec.html. [127] D. Kristol and L. Montulli, “HTTP State Management Mechanism,” IETF Request for Comments 2109 (1997), http://www.ietf.org/rfc/rfc2109.txt. [128] D. Kristol and L. Montulli, “HTTP State Management Mechanism,” IETF Request for Comments 2965 (2000), http://tools.ietf.org/rfc/rfc2965.txt. [129] A. Barth, “HTTP State Management Mechanism,” IETF Request for Comments 6265 (2011), http://www.ietf.org/rfc/rfc6265.txt. [130] J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A. Luotonen, and L. Stewart, “HTTP Authentication: Basic and Digest Access Authentication,” IETF Request for Comments 2617 (1999), http://www.ietf.org/rfc/rfc2617.txt. [131] R. Tschalär, “NTLM Authentication Scheme for HTTP” (2003), http://www.innovation.ch/personal/ronald/ntlm.html

 

pages: 675 words: 141,667

Open Standards and the Digital Age: History, Ideology, and Networks (Cambridge Studies in the Emergence of Global Enterprise) by Andrew L. Russell

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

barriers to entry, borderless world, Chelsea Manning, computer age, Edward Snowden, Frederick Winslow Taylor, Hacker Ethic, Howard Rheingold, Hush-A-Phone, interchangeable parts, invisible hand, Joseph Schumpeter, means of production, Menlo Park, Network effects, new economy, Norbert Wiener, open economy, packet switching, pre–internet, RAND corporation, RFC: Request For Comment, Richard Stallman, Ronald Coase, Ronald Reagan, Silicon Valley, Steve Crocker, Steven Levy, Stewart Brand, technoutopianism, Ted Nelson, The Nature of the Firm, Thomas L Friedman, Thorstein Veblen, transaction costs, web of trust

Crocker, “The Origins of RFCs,” in Joyce Reynolds and Jon Postel, eds. (1987), “The Request for Comments Reference Guide,” RFC 1000, http://tools.ietf.org/rfc/rfc1000 (accessed September 25, 2013). 22 Steve Crocker, oral history interview by Judy E. O’Neill, October 24, 1991, Glenwood, Maryland. Charles Babbage Institute, University of Minnesota, Minneapolis. See also Reynolds and Postel, eds., RFC 1000; RFC Editor, et al. (1999), “30 Years of RFCs, RFC 2555, http://tools.ietf.org/rfc/rfc2555 (accessed September 25, 2013); and Stephen D. Crocker, “How the Internet Got Its Rules,” The New York Times (April 7, 2009), A27. 23 Abbate, Inventing the Internet, 59–69. 24 Robert Kahn (1972), “Demonstration at International Computer Communications Conference,” RFC 371, http://www.ietf.org/rfc/rfc371.txt (accessed September 25, 2013); Hafner and Lyon, Where Wizards Stay Up Late, 176–186; Abbate, Inventing the Internet, 123–127.

Salus, Casting the Net: From ARPANET to INTERNET and Beyond (New York: Addison-Wesley Publishing Company, 1995), 123. 65 Padlipsky, Elements of Networking Style, 104. 66 Tim Dixon (1993), “Comparison of Proposals for Next Version of IP,” RFC 1454, http://tools.ietf.org/rfc/rfc1454 (accessed September 25, 2013); R. Droms (1993), “Dynamic Host Configuration Protocol,” RFC 1541, http://tools.ietf.org/rfc/rfc1541 (accessed September 25, 2013); Scott Bradner and Allison Mankin (1993), “IP: Next Generation (IPng) Working Paper Solicitation,” RFC 1550, http://tools.ietf.org/rfc/rfc1550 (accessed September 25, 2013); K. Egevang and P. Francis (1994), “The IP Network Address Translator (NAT),” RFC 1631, http://tools.ietf.org/rfc/rfc1631 (accessed September 25, 2013); S. Crocker (1994), “The Process for Organization of Internet Standards Working Group (POISED),” RFC 1640, http://tools.ietf.org/html/rfc1640 (accessed September 25, 2013); Scott Bradner and Allison Mankin (1995), “The Recommendation for the IP Next Generation Protocol,” RFC 1752, http://tools.ietf.org/rfc/rfc1752 (accessed September 25, 2013); Huitema, IPv6; DeNardis, Protocol Politics; Simon, Launching the DNS War; Bradner, “The Internet Engineering Task Force,” OnTheInternet, 24. 67 Internet Architecture Board, “A Brief History”; Krol, RFC 1462; Simon, Launching the DNS War. 68 Scott Bradner (1996), “The Internet Standards Process – Revision 3,” RFC 2026, http://tools.ietf.org/rfc/rfc2026 (accessed September 25, 2013); Richard Hovey and Scott Bradner (1996), “The Organizations Involved in the IETF Standards Process,” RFC 2028, http://tools.ietf.org/rfc/rfc2028 (accessed September 25, 2013). 69 Gary Malkin (1993), “The Tao of the IETF – A Guide for New Attendees of the Internet Engineering Task Force,” RFC 1391, http://tools.ietf.org/rfc/rfc1391 (accessed September 25, 2013).

MIT Massachusetts Institute of Technology NCP Network Control Program NPL National Physical Laboratory NSF National Science Foundation NTEA National Telephone Exchange Association NWG Network Working Group OSI Open Systems Interconnection OSIC Open Systems Interconnection Committee PRnet Packet Radio Network PTT Post, Telegraph, and Telephone RCA Radio Corporation of America RFC Request for Comments ROAD Routing and Addressing SATnet Satellite Radio Network SC Subcommittee SNA System Network Architecture SPARC Standards Planning and Requirements Committee TC Technical Committee TCP Transmission Control Program (before 1977) TCP Transmission Control Protocol (after 1977) TOP Technical Office Protocol UCLA University of California, Los Angeles UNESCO United Nations Educational, Scientific, and Cultural Organization W3C World Wide Web Consortium WG Working Group 1 Introduction The architects of the twenty-first-century digital age proclaim that openness is their foundational value.

 

pages: 287 words: 86,919

Protocol: how control exists after decentralization by Alexander R. Galloway

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Ada Lovelace, airport security, Berlin Wall, bioinformatics, Bretton Woods, computer age, Craig Reynolds: boids flock, discovery of DNA, double helix, Douglas Engelbart, easy for humans, difficult for computers, Fall of the Berlin Wall, Grace Hopper, Hacker Ethic, informal economy, John Conway, Kevin Kelly, late capitalism, linear programming, Marshall McLuhan, means of production, Menlo Park, mutually assured destruction, Norbert Wiener, packet switching, phenotype, post-industrial society, profit motive, QWERTY keyboard, RAND corporation, Ray Kurzweil, RFC: Request For Comment, Richard Stallman, semantic web, SETI@home, stem cell, Steve Crocker, Steven Levy, Stewart Brand, Ted Nelson, telerobotics, the market place, theory of mind, urban planning, Vannevar Bush, Whole Earth Review, working poor

Institutionalization 135 In addition to the STD subseries for Internet Standards, there are two other RFC subseries that warrant special attention: the Best Current Practice (BCP) documents and informational documents known as FYI. Each new protocol specification is drafted in accordance with RFC 1111, “Request for Comments on Request for Comments: Instructions to RFC Authors,” which specifies guidelines, text formatting and otherwise, for drafting all RFCs. Likewise, FYI 1 (RFC 1150) titled “F.Y.I. on F.Y.I.: Introduction to the F.Y.I. Notes” outlines general formatting issues for the FYI series. Other such memos guide the composition of Internet-Drafts, as well as STDs and other documents. Useful information on drafting Internet standards is also found in RFCs 2223 and 2360.34 The standards track allows for a high level of due process.

Distributed networks have no chain of command, only autonomous agents who operated according to certain pre-agreed “scientific” rules of the system. For the Internet, these scientific rules are written down. Called protocols, they are available in documents known as RFCs, or “Requests for Comments.” Each RFC acts as a blueprint for a specific protocol. It instructs potential software designers and other computer scientists how to correctly implement each protocol in the real world. Far more than mere technical documentation, however, the RFCs are a discursive treasure trove for the critical theorist. The RFC on “Requirements for Internet Hosts,” an introductory document, defines the Internet as a series of interconnected networks, that is, a network of networks, that are interconnected via numerous interfacing computers called gateways: “An Internet communication system consists of interconnected packet networks supporting communication among host computers using the Internet protocols . . .

See also Society, control Powell Doctrine, 205n72 Privacy, 113 Quittner, Joshua, 161 Radai, Yisrael, 179–180 Radio, 55–56 Net, 211 Rajchman, John, 88 Rakavy, Yuval, 179 Rand Corporation, 4–5, 35, 127, 140n43, 200n65, 204 Ray, Tom, 109, 160, 178 _readme (Bunting), 225 Reaper, 182 Recode, 215 Record, 72 Redcode, 182 Refresh (Shulgin), 215–216 Index 257 Reid, Brian, 147 Request for Comments (RFC), 6, 38, 133–137, 140 editor (see RFC editor) “Requiem for the Media” (Baudrillard), 58 Resistance, 16, 105, 147, 150, 158, 160–161, 176, 244 Resolution (DNS), 9, 47. See also Domain Name System (DNS) Resolution, low, 67 Reverse engineer, 172 RFC editor, 121–122, 132, 134–135 Rhizome, 19, 47, 49, 215, 238 Rhizome (diagram), 24, 33–34, 46, 61, 197, 206 Ritchie, Dennis, 108n89, 123 Robot, 107n88 Robustness, 42–44, 46, 243 Ronfeldt, David, 30n2, 196, 204 Root server, 9–10, 49. See also Domain Name System (DNS) Ross, Andrew, 170 Ross, David, 209 Routing, 44–45 RTMark, 219, 228, 235 Ruling the Root (Mueller), 18 R.U.R.

 

pages: 352 words: 96,532

Where Wizards Stay Up Late: The Origins of the Internet by Katie Hafner, Matthew Lyon

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

air freight, Bill Duvall, computer age, conceptual framework, Douglas Engelbart, fault tolerance, Hush-A-Phone, information retrieval, Kevin Kelly, Menlo Park, natural language processing, packet switching, RAND corporation, RFC: Request For Comment, Ronald Reagan, Silicon Valley, speech recognition, Steve Crocker, Steven Levy

“The basic ground rules were that anyone could say anything and that nothing was official.” To avoid sounding too declarative, he labeled the note “Request for Comments” and sent it out on April 7, 1969. Titled “Host Software,” the note was distributed to the other sites the way all the first Requests for Comments (RFCs) were distributed: in an envelope with the lick of a stamp. RFC Number 1 described in technical terms the basic “handshake” between two computers—how the most elemental connections would be handled. “Request for Comments,” it turned out, was a perfect choice of titles. It sounded at once solicitous and serious. And it stuck. “When you read RFC 1, you walked away from it with a sense of, ‘Oh, this is a club that I can play in too,’” recalled Brian Reid, later a graduate student at Carnegie-Mellon.

NEARnet Netscape Web browser Network Control Center (NCC) Network Control Protocol (NCP) Network Information Center (NIC) network mail, see electronic mail Network Measurement Center network randoms Network Working Group (NWG) BBN input and file-transfer protocol of “glitch-cleaning committee” of host-to-host protocol of meetings and teleconferences of protocol design philosophy of Requests for Comments (RFCs) of Telnet protocol of New Frontier Newman, Robert Newsweek Newton, Isaac NewYork Times night vision Nixon, Richard NLS (oNLine System) NLS JOURNAL MAIL noise North American Aviation North Carolina, University of NSFNET nuclear power: ballistic missiles and communications survivability detecting tests of German development of NYSERNET (New York State Education Research Network) Olsen, Ken computers developed by On-Line Software International oNLine System (NLS) Open Systems Interconnection (OSI) Ornstein, Severo hardware effort directed by Honeywell contracts of synchronizer bugs papers of oscilloscopes OSI Reference Model Otis Elevator Pacific Bell Packet Communications Incorporated Papert, Seymour paper tape PARC Universal Packet (PUP) PARRY Partridge, Craig passwords PDP-1 computer PDP-8 computer PDP-10 computer PDP-11 minicomputer Pennsylvania, University of: ENIAC project at performing arts centers personal computers physics pigeons Pilot ACE computer Pocket organizers Pogran, Ken political action groups Postal Rate Commission Postal Service, U.S. (USPS) e-mail plan of Postel, Jon RFCs edited by Pouzin, Louis power plants printers Procter & Gamble (P&G) Project Charles Project MAC “Protocol for Packet Network Intercommunication A” (Cerf and Kahn) psychoacoustics psychology psychometrics Pullen, Mark Purdue University Quasar Industries queueing theory Q-32 radar radio network linkage by RAdio Detection And Ranging see radar RAND Corporation Baran’s network research at communications division at IMP Number Seven at Raytheon RCA RD Reader’s Digest Reagan, Ronald real-time systems Redstone Arsenal Reid, Brian Republican Party RSEXEC (resource-sharing executive) RFC (Request for Comments) RFC RFC RFC RFC RFC RFNM (Request for Next Message) Rising, Hawley Roberts, Eric Roberts, Larry at ARPA background and education of competitive bids sought by design group assembled by IMP requirements specified by network design work of personality and management style of public network demonstration set by radio links idea of “smart drugs” regimen of TELENET appointment of robotics Rockwell International Rosin, Robert roulette routers Royal-McBee Royal Typewriter Company Ruina, Jack P.

Information Sciences Institute, University of Southern California. Collection includes up-to-date indexes and tests of Internet standards, protocols, Requests for Comments (RFCs), and various other technical notes available via the ISI Web site: http://www.isi.edu. Some of the earlier RFCs are not available electronically, but are archived off-line in meticulous fashion by RFC editor Jon Postel. A searchable archive is maintained at http://info.internet.isi.edu:80/in-notes/rfc. Ohio State University, Department of Computer and Information Science. The CIS Web Server offers access to RFCs and various other technical and historical documents related to the Internet via http://www.cis. ohio-state.edu:80/hypertext/information/rfc.html. Acknowledgments This book grew out of an idea that originated with engineers at Bolt Beranek and Newman.

 

Principles of Protocol Design by Robin Sharp

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

accounting loophole / creative accounting, business process, discrete time, fault tolerance, finite state, Gödel, Escher, Bach, information retrieval, loose coupling, packet switching, RFC: Request For Comment, stochastic process, x509 certificate

B.2.3 Internet standards Internet standards are so-called RFCsRequests for Comments – which are available via the Internet itself. Each RFC has a number which identifies the topic. For example: RFC793, which describes TCP. Numbers are allocated in the order in which the RFCs appear, and so do not say anything significant about what sort of topic the RFC deals with, or about the status of the document. The procedure for approval is somewhat similar to ISO’s: an initial proposal is discussed as a Proposed Standard. After a minimum of six months it may be accepted as a Draft Standard. Finally, after at least a further four months, it may be accepted as a Standard Protocol for Internet use. An Internet standard protocol is given an extra number which identifies it in the series of full standards (STD). For example, RFC793 is Internet Standard STD7.

Part 1: Core Language (2007) Index A abort 130 provider 59 abort state 133 abstract datatype 303 acceptance 8 access management 333 ACID property 329 ACK 49, 76, 82 ack-PDU 73 ACK/NACK protocol 76 acknowledgment 54, 73 negative 76 positive 76 active group 61 active server page 343 activity 292, 293 activity attributes 322 ad hoc encoding of PDUs 241 Ad Hoc On-Demand Distance Vector (AODV) 229 adaptive routing 216, 219, 221, 223 address 192 address multiplexing 208 Address Resolution Protocol (ARP) 213 addressing 191–215 Internet 210–213 MHS 214 OSI 209–210 X.400 214 addressing structure 207–215 flat 209 hierarchic 208, 209 partitioned 208, 209, 219 Advanced Encryption Standard (AES) 160 agent 332 mobile 364 alias identifier 192 alphabet 8, 21 alternating bit protocol 80, 82, 91 alternative recipient 334 alternative route 83 anycast identifier 192 applet 343 Application layer structure 297 Application Service Element (ASE) 297 Application Service Object (ASO) 297 Application-entity-invocation 297 application-supported transaction 330 arbitrator 168 architecture entity-based 197 layered 48, 64–68 server-based 197 ARP 213 ARPANET 67, 231 ASCII encoding 251–270 ASE 297 ASE-invocation 297 ASN.1 295 ASO 297 assertion 29 association 298 asymmetric encipherment 156 asynchronous balanced mode (ABM) 276 asynchronous Byzantine agreement 141 asynchronous protocol 244 asynchronous response mode (ARM) 277 at-least-once semantics 304 at-most-once semantics 304 ATM cell 236 389 390 flow control 236 RM cell 236 switch 236 atomic action 301 atomic action tree 302, 330 atomic exchange 96 with errors 97 atomicity 329 attribute 194 address 214 audit trail 333 authentication 64, 170–183, 282, 318, 350–352, 355 mutual 171, 174, 350 Authentication Header (AH) 282 authentication protocol 172 public key 174 secret key 171, 172 authentication server 172 Autonomous System (AS) 225 availability 64 B backward learning 222 BAN logic 175 base64 encoding 255 BASN.1 248, 295 behaviour 7 observable 3 Bellman-Ford routing 223 binary exponential backoff (BEB) 109, 234 binding 307, 310 B-ISDN 68 bit stuffing 244 block oriented service 56, 72 blocking commit algorithm 132 Border Gateway Protocol (BGP) 225 bound data 301 bridge 222, 228 Broadband ISDN (B-ISDN) 68 broadcast 200, 201 address 211 reliable 122–126 broadcast service 60, 121 buffer pool 231 buffer property 26 burst error 75 Business Process Execution Language (BPEL) 363 Byzantine agreement 135–141 asynchronous 141 strong 135–140 weak 140 Index Byzantine clock synchronisation 141, 146–148 Byzantine commitment 141 Byzantine generals problem, strong 135 Byzantine generals protocol 137, 139 C C14N canonicalisation 270 cache age 348 copy-back 350 directory 201 invalidation 349 max-age 349 residence time 348 revalidation 347 transparent 346 validator 348 web 346–350, 354 write-back 350 write-through 349 canonicalisation 270 capability data 293 Carrier Sense Multiple Access (CSMA) 106 causal ordering 141, 143 CBC mode 159, 160, 167 CCITT see ITU-T CCR 134, 301–303, 319, 329 CCS 40 cell, ATM 236 centralised algorithm 202, 216 centralised commit protocol 130 centralised control 104, 276 centralised routing 216, 219–221 certificate 173, 174, 181, 256, 257, 318 reverse 183 certificate authority 173 Certification Authority (CA) 181–183 certification path 182 certification, of digital signature 168 chained sequence 330 chaining 201, 204 challenge-response 171, 173, 350 change of peer state 94 channel 21, 46 external 21 internal 21 perfect 45 protected 186 channel freezing 85 channel history 36 channel history semantics 26–35, 50 checksum 49, 73, 82 Index checksum relation 73 choking 235 Cipher Block Chaining (CBC) mode 159, 160, 167 CipherSuite 318 ciphertext 156 circular extremum 127 Claim Token frame 129 Classless Inter-Domain Routing (CIDR) 212 client 97, 299, 303, 305 client-server 46 client-server model 299, 303–316, 326, 337 clock Lamport 142 logical 142–143 real time 144–146 server 144 vector 143 clock synchronisation 141–148 Byzantine 141, 146–148 deterministic 144 probabilistic 145 clock system δ -synchronised 144 code (n, k) cyclic block 74 CRC 74 error-detecting 73 polynomial block 74 collision 106 Collision Detect (CD) 107 collision resistance 165, 166 collision, in CSMA/CD 108 commit 130 commit protocol blocking 132, 134 centralised 130 non-blocking 132–134 three-phase 133 two-phase 133 commit state 133 commitment 121, 129–135, 140, 301 Byzantine 141 commitment unit 62, 130 Commitment, Concurrency and Recovery (CCR) 134, 301–303, 319, 329 Common Management Information Protocol (CMIP) 365 Common Management Information Service (CMIS) 365 Common Object Request Broker Architecture (CORBA) 199 communication synchronised 45 391 communication event 20 communication pattern 321 compression 317 compression function 165 computer cluster 211 concatenation of traces 27 concurrency 301, 319 concurrency control 303, 328 concurrency set 133 confidentiality 64, 156, 167, 282, 355 confirm primitive 95 confirmed service 62, 94, 95, 130 confusion 157 congestion 219, 229–237 congestion avoidance 231 congestion collapse 229 congestion control 84, 231 Congestion Experienced (CE) marker 236 congestion window 233 Congestion Window Reduced (CWR) marker 236 connection establishment 58, 97 connection establishment phase 58 connection lifetime 59 connection release 58 connection release phase 59 connection-mode 59, 60, 100 connectionless-mode 59, 60, 100 consistency 129, 329 consistent event set 150, 152 constructed encoding 248 content type 333 contention protocol 106 contents type, for file 325 context selection 62 continuation 85 control centralised 104, 276 distributed 106, 276, 278 control theory 234 cookie 352–353 coordination language 364 coordination level, in OSI TP 330 coordinator 130 CORBA 199, 306, 309 corruption 49, 73 country code 203 crash 83, 132 CRC code 74 credit 93 cryptographic checksum 164 cryptographic methods 155–164 cryptosystem 156 El Gamal 169 392 public key 156, 160–164, 173–175 reversible 169 secret key 156–160, 171–173, 179 CSMA/CD 103, 105–109 CSP 7–43 cyclic redundancy check code 74 D DARPA Internet 67 data compression 251 data confidentiality 64 Data Encryption Standard (DES) 158 data integrity 64 data token 102 data transfer phase 58, 96 data transparency 241, 244 data unit synchronisation 56, 72 data-PDU 73 datagram service 59 de-multiplexing 102 deadlock 9, 22, 54 avoidance 116, 319 detection 319 reassembly 115 recovery 116 store-and-forward 236 decipherment key 156 decryption 156 deferred delivery 333 δ -synchronised clock system 144 DES 158 deterministic access 103 deterministic clock synchronisation 144 DG 59 dialogue control 291 dialogue tree 329, 330 dialogue unit 292 dialogue, in OSI TP 329 diameter 84, 216 Diffie-Hellman key agreement 184, 282 diffusing computation 126, 201 diffusion 157 digital signature 167–170, 257, 270 with appendix 169 with message recovery 169 Digital Signature Algorithm (DSA) 169 Digital Signature Standard (DSS) 169 directory 192, 197, 199–203, 209, 238, 365 replicated 201 directory chaining 201, 204 Directory Information Tree (DIT) 196 directory routing 217 discarded PDU 84 Index discarding 231 distance vector routing 223–224 distributed algorithm 202, 216 distributed control 106, 276, 278 distributed database 319 distributed routing 216, 223–225 distributed snapshot 148–153 Distributed Transaction Processing, OSI 134, 329 distribution list 334 distributive function 28 divergence 39 DNS 204–207, 210 authoritative server 205 cache 204 forward lookup 204 inverse lookup 204, 207 iterative lookup 204 Rdata 207 recursive lookup 204 resolver 204 Resource Record (RR) 207 root server 205 RR type 207 server 204 TTL field 207 zone transfer 205 Document Type Definition (DTD) 260 DoD protocol 67, 281, 287, 326, 372 domain 197, 203, 208 domain identifier 208 Domain Name System (DNS) 204–207, 210 DTD 311 duplex communication 62, 101 durability 329 dynamic group 61 Dynamic Source Routing (DSR) 229 dynamic window protocol 93 dynamically allocated port 213 E ECB mode 159 ECMA 371 ECN 236 ECN Capable Transport (ECT) marker 236 ECN echo marker 236 edge 215 El Gamal cryptosystem 169 election 121, 126–129 in bidirectional ring 129 in unidirectional ring 127 Electronic Code Book (ECB) mode 159 electronic mail 196, 214, 332–340 Index 393 elementary communication 21, 59 empty trace 27 Encapsulation Security Payload (ESP) 282 encipherment 156 encipherment key 156 encoded information type 333 encoding ad hoc 241 ASCII 251–270 ASN.1 246–251 constructed 248 Matched tag 242 MIME 252–257 primitive 248 protocol 241–274 S/MIME 255–257 simple binary 241–244 TLV 241, 244–251 XDR 328 XML 251, 257–270 encryption 156, 317 end-of-contents octets 249 entity-based architecture 197 envelope 337 equivalence identifier 192 error control 73, 82 error resilience 82 error-detecting code 73 errors classification 57 Ethernet 104 Euler’s theorem 162 event 7, 8, 27 external 8 initial 27 internal 8 exactly-once semantics 304 expedited data 63, 116, 293 Explicit Congestion Notification (ECN) 236 explicit feedback 235 Explicit Flow Control Indication (EFCI) 236 exploratory routing 226–229 Extensible Markup Language (XML) 257, 311 external channel 21 external event 8 external non-determinism 10, 14, 22, 32, 38 F facility 71 FADU 322 fail-stop failure mode failure 37 123, 132, 135 failure model 36 failure semantics 35–40 f ailures 36 fair access 103 fairness 10, 103, 110, 232 fault message corruption 57, 82 message duplication 82 message loss 57, 82 spurious message 57 fault tolerance 3 fault-tolerant average 146 FDDI 279 Feistel network 158 fibre distributed data interface (FDDI) 279 file attributes 322 file transfer 322–329 fingerprint 164 finite-state machine 2 firewall 186 fixed window protocol 88 flag field 244 flat addressing structure 209 floating corpse 82, 85, 98, 99 flooding 216–217, 226 flow control 56, 87, 105, 119 flow control, used for congestion control 231 forbidden time zone 85 fragment 340 freshness lifetime 348 FTAM 322–325 regime 323 FTP 67, 326–328 control channel 326 data channel 327 file content 326 file structure 326 minimum implementation 327 transfer mode 327 functional unit 293, 324, 331 fundamental non-blocking theorem 133 G gateway 114, 222, 347 generator polynomial 74, 75 generic identifier 192, 194 global alias 192 global context 193 global identifier 193 global state 58, 62, 81, 148–153, 232 go back n retransmission 90 grade of delivery 333 grid 364 394 Index group identifier 192 group integrity 61 H half duplex communication 62 Hamming distance 73 handshake level 329 handshake protocol 94, 95 handshake service 329 happened before relation 141, 142, 149, 152 HDLC 92, 105, 242, 276 asynchronous balanced mode (ABM) 276 asynchronous response mode (ARM) 277 command 242, 276 normal response mode (NRM) 276 primary 276 response 242, 276 secondary 276 hiding 11, 19, 22, 34, 39, 40 hierarchic addressing structure 208, 209 hierarchical network 219 history 26, 29, 36, 37 HMAC 167 hold for delivery 334 homogeneous distributed system 193 hop counter 84, 216, 222 hot potato algorithm 221 HTTP 342–356 authentication 350–352 cache control 344, 349–350, 354 compression 344 cookie 352–354 credentials 344 DELETE method 349 GET method 344, 345, 349, 356 media type 344, 357 methods 343 OPTIONS method 346 POST method 349, 357 PUT method 349, 356 request 356 response 357 revalidation 349 secure 354–356 Secure method 355 session 352 hypercube 238 Hypertext Markup Language (HTML) 342 Hypertext Transfer Protocol (HTTP) 342–356 I IAB 372 IANA 213, 253 ICMP 236, 281 identifier 191 alias 192 anycast 192 equivalence 192 generic 192, 194 global 193 group 192 local implementation 192 multicast 192 specific 194 unique local 192 IEC 66, 371 IEEE 66, 371 802-series standards 279, 372 IESG 374 implicit numbering 112 in-addr.arpa 205 indicated error 58 indication primitive 95 inference 30 inference rule 30, 176 ∀-introduction 30, 37 Alternative 32, 38 And-Elim 177 And-Intro 177 Believe And-Elim 177 Believe key symmetry 177 Believing is seeing 178 Condition 34, 40 Conjunction 30, 37 Consequence 30, 37 Decryption 178 Emptiness 30, 38 Encryption 178 Freshness extends 178 Freshness extension 178 Hiding 34, 39, 40 Input 31, 38 Interleaving 32, 39 Jurisdiction 177 Key symmetry 177 Message meaning 176 Nonce verification 176 Output 31, 38 Parallelism 33, 39 Piping 34, 40 Recursion 35, 40 Renaming 33, 39 Said And-Elim 177 See components 177 Triviality 30, 37 Index Union 32, 38 inference system 176 information system 364 initial event 27 initials 27, 36 initiating user 94 input 22 instance of communication 59 integrity 64, 164–168, 355 interaction point 45 interactive consistency 135, 147 conditions 135 interactive convergence 146 Interface Definition Language (IDL) 305 interface repository 307 interior gateway routing 225 interleaving 10, 18, 22, 32, 39 intermediate node 215 internal channel 21 internal event 8 internal non-determinism 10, 14, 22, 32, 38 Internet address 210, 339 addressing 210–213 Application layer 67 DARPA 67 Data Link layer 67 mail 337–340 naming 203–207 Network layer 67 Physical layer 67 protocol DoD (IP) 281 standard 67, 372, 374–375 FTP 67, 326–328 ICMP 281 IP 281 SMTP 67, 337 TCP 67, 287 TELNET 67 UDP 67, 288 Transport layer 67 Internet Architecture Board (IAB) 372 Internet Assigned Numbers Authority (IANA) 203, 213 Internet Engineering Steering Group (IESG) 374 Internet Security Association and Key Management Protocol (ISAKMP) 282 interpersonal message (IPM) 336 Interpersonal Messaging Service (IPMS) 335–337 interpersonal notification (IPN) 336 invariant 29 395 inverse broadcast 60 invoked group 61 IP 236, 281 IP address 210 IP router 236 IP time-to-live counter 85 IPM 336 body 336 body part 336 heading 336 heading field 336 IPN 336 IPsec 282–283 IPv6 212 Irland’s Square Root rule 231 isarithmic control 232 ISO 66, 371, 372 Session protocol 102 Session service 96, 102 Transport protocol 99, 100, 233 Quality of Service 284 timers 285 isolated algorithm 202, 216 isolated routing 216, 221–222 isolation 301, 329 ITU-T 66, 371, 373 recommendation 371 J Java RMI 310 jitter 311 Job Transfer and Manipulation (JTM) K key 156 key agreement 184 Diffie-Hellman 184, 282 Oakley 282 key exchange 184–186, 318 key exchange protocol 172 key lifetime 184 key transport 184, 318 L labelled transition system 26 Lamport clock 142 LAN 63, 101, 104, 122, 129, 199 language context-free 2 regular 2 latest delivery time 333 134 396 layer function 71 layered architecture 48, 64–68 length, of trace 28 lifetime connection 59 PDU 83 linear system 234 link capacity 218 link state routing 224–225 link staterouting 223 livelock 39, 54 liveness property 26, 36 local area network (LAN) 63, 101, 104, 119, 122, 129, 199 LLC sub-layer 65, 278 MAC sub-layer 65, 278 local context 193 local implementation identifier 192 lock 303, 319, 328 locking granularity 322 logical clock 142–143 LOTOS 40 M M/M/1 queuing model 218 mailbox 337, 339 ma jority 136, 137 man-in-the-middle attack 185 Manchester encoding 42 marker 150 marshalling 305 masquerading 82, 83 master 302 master secret 319 Matched tag encoding of PDUs 242 maybe semantics 305 MD5 165, 256, 345, 350 MDx-MAC 166 Message Authentication Code (MAC) 166, 317 message corruption fault 57, 82 message digest 164, 169, 350 message duplication fault 82 message exchange pattern (MEP) 359 message handling 196, 214, 332–340 message identification 333 message loss 58 message loss fault 57, 82 Message Oriented Middleware (MOM) 309 message oriented service 56 message recovery 169 Message Transfer Agent (MTA) 332 Index Message Transfer sub-layer, in MOTIS 333–335 Message Transfer System (MTS) 332 middleware 309–319 MOM 309 ROI 309 stream-oriented 310 MIME 252, 339 body 252 composite type 252, 253 discrete type 252, 253 encoding 252–257 entity 252 header 252 subtype 252, 253, 255 type 252, 253, 255, 344 Mobile Ad Hoc Network (MANET) 228 mobile agent 364 monotonic function 28 monotype 194 MOTIS 196, 214, 332–337 MQSeries 310 multi-drop link 276 multi-peer communication 60 multi-peer service 101, 121, 130 multicast group 210 multicast identifier 192 multicast service 60, 121 multiplexing 102, 276 downward 110 upward 110 multiplier 42 mutual exclusion 143 N (N)-address 208 (N)-PCI 72 (N)-PDU 72 N-peer communication 2 (N)-protocol-control-information (N)-protocol-data-unit 72 (N)-SAP 72, 208 (N)-SDU 72 (N)-service 72 (N)-service-data-unit 72 (N)-service-user 72 (N)-title 208 (N)-user 72, 208 NACK 50, 76 name 192, 203 name server 197, 198 naming 191–215 domain 203 72 Index Internet 203–207 naming authority 203 naming domain 197, 199 natural deduction 30 negative acknowledgment 76 netmask 210 network hierarchical 219 network class 210 network edge 215 Network File System (NFSTM) 328 network node 215 Network Time Protocol (NTP) 145, 211 NFSTM 328 node 215 non-adaptive routing 216, 217 non-blocking commit algorithm 132 non-delivery 333 non-determinism external 10, 14, 22, 32, 38 internal 10, 14, 22, 32, 38 non-repudiation 64, 168, 355 nonce 171, 318, 350 normal response mode (NRM) 276 O Oakley key agreement 282 OASIS consortium 375 object 305 object oriented programming 304 offer 8 one-time pad 157 one-way hash function 164 MD5 165 RIPEMD-160 165 SHA 165, 169 Open Shortest Path First (OSPF) 225 optimistic control 320 O/R address 214 O/R name 196 oral messages 136 origin server 346 OSI addressing 209–210 Application layer 65, 66, 297–364 Application layer structure 297 Association Control ASE (ACSE) 298 CCR 134, 302–303 Data Link layer 65, 276–279 Directory 365 File Transfer (FTAM) 322–325 Job Transfer (JTM) 134 Lower Layers 275–289 397 Message Handling (MOTIS) 196, 214, 332–337 Network layer 65, 66, 209, 215, 280–283 Physical layer 65 Presentation layer 65, 66, 295–297 Reference Model 3, 64–66, 71 Remote Operations ASE (ROSE) 299 Session layer 65, 96, 102, 291–295 system management 365 Transaction Processing (TP) 134, 329–331 Transport layer 65, 93, 284–288 Upper Layers 291–365 Virtual Terminal (VT) 365 out-of-sequence PDU 89 output 22 P p1 protocol, in MOTIS 334 p2 protocol, in MOTIS 337 packing 72 PAR protocol 79, 80 parallel composition 8, 10, 16, 18, 22, 33, 39 partitioned addressing structure 208, 209, 219 password 186 past 29 path 215 path, in network 215 PCI 72 PDU 72, 113 PDU encoding ad hoc 241 Matched tag 242 simple binary 241–244 TLV 241, 244–251 PDU lifetime 83 peer change of state 62 peer entity 71 piping 34, 47 PKCS 156 PKCS #1 270 plaintext 156 point-to-point communication 60 point-to-point service 101 polarised control, in OSI TP 329 polling 77, 80, 104 protocol 78, 80 polynomial block code 74–76 port dynamically allocated 213 Internet 212 registered 213 398 TCP 213 UDP 213 positive acknowledgment 76 positive acknowledgment and retransmission 80 post-recording event 153 pre-image resistance 165 pre-recording event 152 pre-secret 319 prefix 28 prefixing 10 presentation context 295 primitive encoding 248 primitive polynomial 75 prioritisation 116 priority 333 Private Network (PN) 211 probabilistic clock synchronisation 145 probe 223, 334 process 3, 7–27, 46 composition of 7 process algebra 3, 13 process alphabet 21 process equation 9 process expression 9, 21, 29 process network 20, 21 process server 198 process state 23 process synchronisation 8, 20, 22 proof authentication 175–181 backward 54 forward 54 protocol correctness 50–55 protected channel 186 protocol 1, 2, 46–54, 71 ACK/NACK 76 ACK/NACK with timeout 78, 79 alternating bit 80, 82, 91 Byzantine generals 137, 139 classical TDM 105 contention 106 CSMA/CD 107 Diffie-Hellman 184 dynamic window 93 election 128 exploratory routing 227 fair splitting 111 fault-tolerant broadcast 124 flooding 217 handshake 94, 95 interactive convergence 147 key agreement 184, 185 multiplexing 104 Index PAR 79, 80 polling 77, 78 public key authentication 174 reliable broadcast 124 S-HTTP 355 secret key authentication 171, 172 secret key verification 168 splitting 110 Station-to-Station 185 stop-and-wait 2, 87, 91 three-phase commit 133 three-way handshake 98 TLS Record 317 two-phase commit 130, 131 two-way exchange 94, 95 window 88, 91, 93 protocol control information (PCI) 72 protocol data unit (PDU) 72 protocol encoding 241 protocol entity 46 protocol, asynchronous 244 protocol, stateless 328, 352 protocol, synchronous 244 provider abort 59 provider-supported transaction 330 proxy object 310 transparent 347 web 347, 352 public key cryptosystem (PKCS) 156, 160–164, 173–175 Purge frame 129 push-down automaton 2 Q QOS 217, 311 quality of service (QOS) query 340 queuing model 218 quiet time 85 217, 284, 311 R randomised sequence numbers RCC 220 real time clock 144–146 realm 350 reassembly 112 receive window 88, 89, 92 recombination 110 recovery 301 redirection of messages 334 Reference model 86 Index OSI 3, 64–66 referral 204 direct 201 refusal 36, 37 refusal set 36 re f usals 36 regime 323 registered port 213 registry 307, 361 remote object 310 Remote Object Invocation (ROI) 309 remote procedure call (RPC) 97, 299 renaming 11, 20, 22, 33, 39 replay attack 164 replicated directory 201 Request for Comments (RFC) 374 request primitive 94 resegmentation 114, 281 reset 58 residual error 57 residual error rate (RER) 57, 284 resolver 204 resource 340 responding entity 95 response primitive 95 restricted buffer sharing 231 restriction 11, 28 resynchronisation 292 retransmission 80, 83, 90 retransmission delay 109 revalidation 349 reverse certificate 183 RFC 374 ρ -bounded drift 144 Rijndael 160 RIPEMD-160 165 route 192 routing 191, 208, 215–229, 335 adaptive 216, 219, 221, 223 Bellman-Ford 223 centralised 216, 219–221 centralised adaptive 220 directory 217 distance vector 223–224 distributed 216, 223–225 exploratory 226–229 interior gateway 225 isolated 216, 221–222 link state 223–225 non-adaptive 216, 217 source 226–229, 281 static 217–218 tree 218–219 wormhole 238 399 routing algorithm 84 routing control 186 routing control centre (RCC) 220 routing table 217 routing, non-adaptive 216 RPC 97, 299, 304–309 asynchronous 307–309 call semantics 304 idempotent 305 marshalling 305 stub 305 RSA cryptosystem 161–164 S S/MIME encoding 255–257 type 255 SADT 303 safety property 26, 36 SAP 46, 72, 94, 208 satellite communication 87, 118 scheme 340 SDH 244 SDH pointer 244 SDU 57, 72, 113 SDU size, maximum 116 secret key cryptosystem (SKCS) 156–160, 171–173, 179 Secure Hash Algorithm (SHA) 165, 169, 256 Secure HTTP 355 secure service 63 Secure Socket Layer (SSL) 316 security 63, 155–189 security association (SA) 282 security token 316 segmentation 72, 112, 281 selective reject 92 selective repeat 92 selector 208 self-clocking system 233 semantic transparency 346 semantics channel history 26–35, 50 failure 35–40 send window 88, 90, 92 sequence control 73 sequence number 73, 79, 81–83 randomised 86 sequence preservation 56, 63, 73 serialisation 301, 329 serialise 310 server 46, 97, 197, 299, 303, 305 400 clock 144 name 197, 198 process 198 server script 343 server-based architecture 197 service 45–69 authenticated 64 availability 64 block oriented 56, 72 broadcast 60, 101, 121, 122 confidential 64 confirmed 62, 94, 95, 130 connection-mode 59, 60, 100 connectionless-mode 59, 60, 100 datagram 59 full duplex 62, 101 half duplex 62, 101 integrity of 64 inverse broadcast 60 message oriented 56 multi-peer 60, 101, 130 multicast 60, 121 non-repudiating 64 point-to-point 60, 101 secure 63 simplex 62, 101 stream oriented 56, 72, 287 value-added 48 virtual circuit 59 service access point (SAP) 46, 72, 94, 208 service class 324 service data unit (SDU) 57, 72, 113 service degradation 230 service denial 230 service features 55 service mode 60 service primitive 94, 95 confirm 95 indication 95 request 94 response 95 service reset 58 service user 46, 72 shared control, in OSI TP 329 signature verification secret key 168 signature, unforgeable 138 signed messages 138, 139 simple binary encoding of PDUs 241–244 Simple Object Access Protocol (SOAP) 311–316, 357 simple type 246, 247 simplex communication 62, 101 slave 130 Index slow-start 233 smart card 186 SMTP 67, 337 body 338 extensions 252, 338 header 338 SOAP 311 array 312 body 311, 314 envelope 311 fault code 314 faultcode 315 header 311, 313, 316 header block 311 mandatory 314 message 311 node 311, 316 request 357 response 357 role 311, 316 security token 316 struct 312 source quench message 236 source routing 226–229, 239, 281 spanning tree 200 specific identifier 194 specification 29, 37, 48 splitting 110 spurious message fault 57 Standard Generalized Markup Language (SGML) 257 state abort 133 commit 133 stateless protocol 328, 352 static group 61 static routing 217–218 statistical multiplexer 104 statistical multiplexing 106 STOP 9, 14, 16, 18, 22, 30, 36, 38 stop-and-wait protocol 2, 87, 91 stream oriented service 56, 72, 287 Stream-oriented Communication 310 strict function 28 striping 110 fair load sharing 110 random selection 110 Round Robin (RR) 110 shortest queue first 111 Surplus Round Robin (SRR) 111 strong Byzantine agreement 135–140 structured type 247 stub 305, 310 sub-directory 200 Index sub-domain address 208 sub-layer 65 sub-network 66, 113, 199, 209 subordinate 302, 329 substitution cipher 157 succ 82 superior 302, 329 symmetric encipherment 156 synchronisation 33, 39 synchronisation point 62, 96, 129 major 292 minor 292 synchronisation, in OSI TP 329 synchronised communication 45 Synchronous Digital Hierarchy (SDH) synchronous protocol 244 synchronous system 104 syndrome 74 system crash 83 system management 365 system-specific view of system 194 T tagged type 246 TCP 67, 94, 99, 233, 236, 287 timers 287 TDM 102, 103, 244 TELNET 67 three-phase commit 133 three-way handshake 98, 99 throughput 110 time-division multiplexing 102 time-sequence diagram 95 timeout 78, 80, 82, 92, 119, 232 timer 42, 90 inactivity 285 ISO TP4 285 PDU lifetime 285, 287 persistence 285, 287 retransmission 285, 287 TCP 287 time-wait 287 user timeout 287 window 285 timer process 119 timestamp 84, 222, 320 title 208 TLS 316 Alert protocol 319 Change Cipher Spec protocol 319 CipherSuite 318 Handshake protocol 318 master secret 319 401 244 Record protocol 317 TLV encoding of PDUs 241, 244–251 token 102, 119, 232, 279, 293 token bus 63, 129, 279 token ring 63, 119, 129, 228, 279 trace 3, 14, 26, 37 empty 27 trace operations 27, 28 trace prefix 28 trace restriction 28 traces 27, 36 trader 198, 307 traffic padding 186 traffic pattern 218, 220 transaction 129 application-supported 330, 331 chained 331 nested 309 provider-supported 330, 331 unchained 331 Transaction Processing (TP) 329–331 transaction tree 330 transceiver 105 transfer syntax 295, 296 transition 27 transparent bridging 222 transparent view of system 194 Transport Layer Security (TLS) 316, 355 transport mode 283 transposition cipher 157 trapdoor one-way function 161 tree routing 218–219 Triple DES (3DES) encryption 159, 256 trust model 182 rooted chain 182 strict hierarchical 182 with reverse certificates 183 tunnel 347 tunnel mode 283 two-phase commit 130 two-phase commit protocol 201 two-way exchange protocol 94, 95 type serialisable 310 simple 246, 247 structured 247 tagged 246 Type-Length-Value encoding 244–251 typed data 293 U U.S.

Internet: RFC 2246: The TLS Protocol, Version 1.0 (1999) 228. Internet: RFC 2251: Lightweight Directory Access Protocol, Version 3 (1997) 229. Internet: RFC 2279: UTF-8, A Transformation Format of ISO 10646 (1998) 230. Internet: RFC 2315: PKCS #7: Cryptographic Message Syntax, Version 1.5 (1998) 231. Internet: RFC 2328: OSPF Version 2 (1998) 232. Internet: RFC 2373: IP Version 6 Addressing Architecture (1998) 233. Internet: RFC 2401: Security Architecture for the Internet Protocol (1998) 234. Internet: RFC 2402: IP Authentication Header (1998) 235. Internet: RFC 2403: The Use of HMAC-MD5-96 within ESP and AH (1998) 236. Internet: RFC 2404: The Use of HMAC-SHA-1-96 within ESP and AH (1998) 237. Internet: RFC 2405: The ESP DES-CBC Cipher Algorithm with Explicit IV (1998) 238. Internet: RFC 2406: IP Encapsulating Security Payload (1998) 239.

 

pages: 632 words: 223,899

Exim: The Mail Transfer Agent by Philip Hazel

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Debian, RFC: Request For Comment, x509 certificate

(period)) Perl, embedded disabling, 141, 145 string expansion and, 417 perl_at_start option, 417 perl_startup option, 417 Permission denied error message checking file existence, 105 ignore_eacces option and, 140 permissions files, checking owners of, 207, 218 to mailboxes, 205 pgsql_servers option, 387 pid_file_path option, 273 Pine program, 358 pipe command, 239, 249, 252 as significant action, 248 in system filters, 262 pipe transport, 37, 50, 173, 196 append_string/check_string options and, 198 autoreply transport and, 233 commands environment for, 225, 229 error handling, 227, 230 failure to execute, 229 output from, handling, 228-229 parsing command line, 224 restricting, 227 running, 224 running from shell, 225, 231 specifying, 222 timing, 226 deliveries batched, 199-202 controlling environment for, 197 environment variables, 195 local delivery agents and, 85 messages line termination in, 199 in single file, separating, 197 options for, 196-203, 222-231 prefix/suffix options and, 198 UUCP and, 164 $pipe_address variable, 181, 225 $pipe_addresses variable, 543 pipelining, 15, 222 disabling, 128, 131-132 supplementary group access list and, 195 tranport drivers for, 127 (see also pipe transport) 600 pipes, named (see named pipes) pipe_transport/file_transport options, 127, 131 plaintext authenticator in a client, 366 in a server, 364 plaintext value (driver option), 363 Pluggable Authentication Module (PAM), 402 plus sign (+) (see + (plus sign)) pointer records (see PTR records) POP daemon password lookups and, 67 single-file delivery, 214 POP (Post Office Protocol), 9 POP3 and unprivileged Exim, 441 port option, 186, 194 protocol option and, 194 Post Office Protocol (see POP) PostgreSQL database lookups, 387 quoting characters in, 415 postmasters, 29 bounce messages to, 453 defaulting unknown aliases to, 135 in virtual domains, 77 PP, xiii Precedence: header, value of, 542 prefixes/suffixes with usernames, 87 prefix_optional/suffix_optional options, 119 prefix/suffix options, 81, 119, 203 maildir_format option and, 215 mbx_format option and, 208 messages, separating, 197 $tod_bsdinbox variable, 197 use_crlf option and, 199 preserve_message_logs option, 268, 483 primary_hostname option, 456 domain lists and, 424 $primary_hostname variable, 543 printing quoting characters in, 416 while testing, 256 privileged users, 442-444 processes, 265-283 checking, 482 comsat, notifying, 218, 220 daemon, 32, 265, 273-277, 283 configuration file and, 54 options for starting, 459 SMTP calls, 274 delivery, 265, 272, 281 controlling number of, 66 queue runners and, 279 9 October 2001 09:13 Index Exim, 32-33 forking for remote deliveries, 272 gids/uids for, 271 interlocking, exicyclog utility, 271 local, messages from, 303-307 message-handling, summary of, 283 pipe command and, 252 querying, 502 queue runner, 265, 279-280, 283 addresses, processing specific, 468 addresses, remote, 466 addresses, restricting to local, 466 delivery attempts by, 537 messages, processing specific, 468 number of, controlling, 279 options for, 466-469 running periodically, 467 starting, 279 reception, 265, 277, 283 relationships among, 272 shared files and, 265 types of, 265 zombie, 275 procmail program, 85, 223 filtering and, 241 multiple user addresses, 87 prohibition messages, customizing, 332 prohibition_message option, 312, 332 prohibition_reason option $rbl_domain/$rbl_text variables and, 544 $prohibition_reason variable, 332, 543 protocol option, 194 lmtp value, 188 protocols, messages received by, 544 ps command, 502 -ps option, perl_at_start option and, 417 PTR records, 25 DNS lookups, 388 IPv6 format for, 26 public_name option, 363 Q Q flag (rewriting rules), 348 q flag (rewriting rules), 348 -q option, 283, 466, 481 exim_lock utility, 514 user privilege and, 443 -q options, summary of, 280 q value (-q option), 467 -q15m option, 273, 279 -q1m option, 66 -qf option, 279, 300, 469 Index -qff option, 263, 279, 469 frozen messages, processing, 281 -qffl/-qfl/-ql options, 469 -ql option, 469 -qqf option, 300 qualify_domain option, 35, 61, 128, 304-305, 307 addresses, rewriting, 339 client authentication and, 363 EXPN command and, 374 QUALIFY_DOMAIN variable, 226 $qualify_domain/$qualify_recipient variables, 543 qualify_preserve_domain option, 76, 123, 128, 132, 149 qualify_recipient option, 61, 147, 304-305, 307 qualify_single option, 157, 168 gethostbyname option and, 156 query option, 383 values for, 385 queryprogram command, 169 queryprogram router, 37, 150, 169-172 $route_option variable and, 544 query/queries options, 137 query-style lookups, 60, 379, 382 implicit keys in, 388 question mark, regular expressions, 560 queue, 31 addresses, adding to, 38 displaying via Exim monitor, 507 handling large, 66 inspecting, options for, 470 listing messages on, 53 writing log files to spool, 450 queue runners, 31, 265, 279-280, 283 addresses local, restricting to, 466 processing specific, 468 two-pass processing for remote, 466 daemon process and, 275 delivery attempts by, 537 delivery processes and, 279 maximum, 276 messages, processing specific, 468 number of, controlling, 279 options for, 466-469 periodic runs, 467 -q15m option and, 273 reception processes and, 278 starting, 279 queue_only option, 66, 279 reception processes and, 278 queue_only_file option, 278 9 October 2001 09:13 601 queue_only_load option, 63, 278 queue_remote_domains option, 278, 299 queue_run_in_order option, 280 queue_run_max option, 66, 275-276, 279 queue_running condition, 404, 537 queue_smtp_domains option, 278, 300 QUIT command (SMTP), 17 quota option, 215, 221 quota_filecount option, 216, 221 quota_is_inclusive option, 217, 221 quotas exclusive/inclusive, 217, 221 mailboxes, 215, 221 warnings, 217, 221 quota_size_regex option, 216, 221 quota_warn_message option, 217, 221 quota_warn_threshold option, 217, 221 quote operator, 414 quote_ldap operator, 415 quote_mysql operator, 415 quote_nisplus operator, 415 quote_pgsql operator, 415 quoting in string expansions, 413-416 addresses, 414 lookup queries, 415 regular expressions, 414 R R field delivery logging, 491 message reception logging, 490 R flag (rewriting rules), 348 r flag (rewriting rules), 348 -R option, 468-469 delivery, forcing, 298 -r option, 462 r value (-R/-S options), 468 RBL (Realtime Blackhole List), 21, 310, 543 configuring Exim to use, 311 data values, 312 domains, logging headers from, 487 options for, 313 rejection, 312 warnings, 311 $rbl_domain variable, 543 rbl_domains option, 311-312 rbl_hosts option, 311 rbl_log_headers option, 487 rbl_log_rcpt_count option, 487 rbl_reject option, 332 rbl_reject_recipients option, 311 rbl_log_rcpt_count option and, 487 602 $rbl_text variable, 544 rbl_warn_header option, 311 RCPT command (SMTP), 13, 19 BSMTP and, 201 callbacks, verifying, 315 error responses to, 287 host_reject_recipients option and, 313 number of limiting, 193 in one message, 185 verification failures, 318 Realtime Blackhole List (see RBL) Received: header loops and, 457 $received_for variable and, 544 $sender_rcvhost variable, 546 $tls_cipher variable, 370 $received_for variable, 544 received_headers_max option, 457 $received_protocol variable, 95, 113, 544 server authentication, 360 receiver_try_verify option, 325 receiver_verify option and, 325 receiver_verify_addresses option and, 325 recipient address, verifying, 323 receiver_unqualified_hosts option, 307 addresses, rewriting, 339 receiver_verify option, 48, 325, 332 -bv/-bvs options and, 324 receiver_try_verify option and, 325 receiver_verify_address option, 323 receiver_verify_addresses option, 325 receiver_verify_hosts option, 323, 325 receiver_verify_senders option, 323-325 receiving email (see email, receiving) reception processes, 265, 277, 283 recipient errors, 287 recipients multiple, 13 refused, logging, 487 saving email addressed to certain, 107 $recipients variable, 238, 544 system filters, 262 $recipients_count variable, 544 recipients_reject_except option, 312 recursive patterns, 568 regular expressions, 548-570 assertions, 563 lookbehind assertions, 563 back references, 561 comments, 568 conditional subpatterns, 567 matching, 400 9 October 2001 09:13 Index options, changing, 553 metacharacters in, 550 once-only subpatterns, 565 performance and, 569 POSIX character classes, 557 quoting data for, 414 recursive patterns, 568 relaying, controlling, 549 repetition, 559-561 route_list option and, 160 subpatterns, 558 testing, 549 reject database, 269, 513 reject log, 483 mapping, 484 refused recipients, entries for, 487 /reject option, rbl_domains option, 311 rejectlog file, 54 relay_domains option, 328, 331 relay_domains_include_local_mx option, 329, 331 relaying messages, 302 from authenticated hosts, 330 control of, 326-331 encryption, using, 330 incoming, 327-328 with incomplete domains, 328 for MX backups, 329 options for, 331 outgoing, 327, 329 permitting, 330 regular expression for controlling, 549 relay checking, 327 sending host, checking, 355 from specific senders, 330 over TLS sessions, 370 relay_match_host_or_sender option, 331 remote_max_parallel option, 66, 279, 281 max_rcpt option and, 193 remote_smtp option, 184 remote_smtp transport, 152 domains resolved to remote hosts and, 152 remote_sort option, 282 reply command, disabling, 141 $reply_address variable, 544 reply_to keyword, 254 reply_to option, 234, 236 Reply-To: header automatic reply messages, 234, 236 rewriting, 348 reply_transport option, 146 req command, 368 Index request for comments (see RFCs) require_files option, 82, 104, 116 directors and, 84 uids and, 439 require_lockfile option, 211, 221 reroute: value (self option), 153 RES_DEFNAMES option, 154, 157 no_dns_qualify_single option and, 190 RES_DNSRCH option, 154, 158 dns_search_parents option and, 190 Resent- headers, 333 restrict_to_path option, 227, 230 -retries option (exim_lock utility), 515 retry database, 49, 269, 285 extracting information from, 501 retry rules, 285, 289-292 error field, 291 examples of, 294 parameter sets, 292 patterns, 290 retry times, 292 testing, options for, 477 ultimate address timeout, 297 retry_data_expire option, 295 retry_include_ip_address option, 194 retrying delivery, 284-301 address timeouts, 297 to dial-up hosts, 297-301 errors, 284 remote, 285-288 host-based, 284 long-term failures, 295 message-based, 284 overriding times, options for, 466 timeouts, 295 times computing, 292 using, 293 (see also retry rules) retry_use_local_part option, 203 retry rules and, 291 return paths, 15 batch option and, 200 changing, 110, 177 $return_path variable and, 544 return_fail_output option, 230 return_message option, 234, 255 return_output option, 50, 228, 230 return_path option, 177, 183 envelope sender, rewriting, 342 $return_path variable, 544 Return-path: header, 175, 184 processing messages with, 337 return_path_add option, 175, 184 9 October 2001 09:13 603 envelope preservation and, 200 return_size_limit option, 175, 303 $return_size_limit variable and, 544 $return_size_limit variable, 454, 544 rewrite option, 133, 149 rewrite: value (self option), 153 rewrite_headers option, 158 rewriting addresses, 339-354 address components, expansion variables, 542 automatically, 339 Bcc:/Cc: headers, 347 conditionally, 344 configured, 340-343 envelope fields, 347 From: header, 348 general, 341 headers, 348 logging, 487 lookup-driven, 345 per-transport, 342 Reply-To: header, 348 rules for, 343-345 applying, 344 flags, 347-351 format of, 344 rewriting patterns, 345 testing, 354 Sender: header, 348 To: header, 348 as unqualified local part, 348 -Rf option, 469 RFC conformance, 444-449 8-bit characters, 445 address syntax, 446-448 addresses canonicizing, 448 domain-literal, 447 source-routed, 448 EHLO/HELO syntax, 449 line terminators in SMTP, 449 MX records, 448 rfc1413_hosts option, 431 rfc1413_query_timeout option, 431 RFCs (request for comments), 7 message format definition, 11 -Rff option, 469 right angle bracket (>) (see > (right angle bracket)) rmail, 481 root privilege, 436-439 in Exim, 437 guids/uids and, 437 604 root privilege (continued) relinquishing, 438 route_file option, 163, 168 route_list option, 89, 159, 162, 168 $0 variable, 163 $1, $2, etc. variables, 159 $value variable, 159 routelist router, local transports, 163 $route_option variable, 200, 544 route_query/route_queries options, 162, 168 router drivers, 18, 35, 101 addresses, processing, 37-49 configuring, 150-172 for address verification, 316 header additions/removals, 176 debugging, 113 delivery errors, 289 vs. director drivers, 38 domainlist, 36 invoking smtp transport from, 189 ipliteral, 37 lookuphost, 37 options for, 101-117, 150-153 summary of, 114-117 queryprogram, 37 restricting to specific domains, 114 transports, using, 49 (see also drivers) router setting (-bP option), 474 router_list setting (-bP option), 474 routing (see router drivers) routing rules inline, 159 looked-up, 162 -Rr/-Rrf/-Rrff options, 469 rsmtp, 480 runq, 481 rxquote operator, 414 S S field (message reception logging), 490 -S option, 468-469 save command, 240, 249, 251 filtering and, 243 as sigificant action, 248 in system filters, 262 save option, file modes and, 207 scanning for viruses, 94-99 on external hosts, 98 on local hosts, 95 Search button (Exim monitor), 507 search_parents option, 154, 158, 167-168 9 October 2001 09:13 Index gethostbyname option and, 156 search_type option, 134, 138, 162, 168 Secure Sockets Layer (SSL), 367 (see also OpenSSL, Diffie-Hellman ciphers; TLS) security, 435-442 authentication, 6, 18 forged email and, 18 -bP option and, 385 encryption, 18, 180, 367-377 certificates, creating self-signed, 368 digital signitures, modifying messages and, 99 relaying and, 330 SMTP, 330 string comparison, 401 $tls_cipher variable, 546 (see also OpenSSL, Diffie-Hellman ciphers) firewalls (see firewalls) ident protocol and, 430 privileged users, 442-444 relay_domains_include_local_mx option and, 329 root privilege, 436-439 guids/uids and, 437 relinquishing, 438 symbolic links and, 206 system administrators, 443 trusted users, 442 TURN command and, 374 viruses, 21 scanning messages for, 94-99 VRFY/EXPN commands and, 374 security option, 439 unprivileged Exim, running, 440 seen finish command, 248, 492 seen option, significant actions and, 248 self option, 106, 152-153 deferred setting, 153 domainlist router and, 159 fail value, 153 fail_soft/fail_hard settings, 153 pass value, 152 reroute: value, 153 rewrite: value, 153 send value, 153 $self_hostname variable, 152, 545 semicolon (;) (see ; (semicolon)) send value (self option), 153 SENDER variable, 226 Sender: header processing messages with, 335 Index Sender: header (continued) rewriting, 348 sender names and, 463 $sender_address variable, 180, 545 address rewriting, 341 $sender_address_domain variable, 545 $sender_address_local_part variable, 545 sender_address_relay option, 330-331 sender_address_relay_hosts option, 330-331 $sender_fullhost variable, 545 $sender_helo_name variable, 545 $sender_host_address variable, 403, 545 $sender_host_address variable, address rewriting conditionally, 345 $sender_host_authenticated variable, 545 server authentication, 360 $sender_host_name variable, 309, 546 $sender_host_port variable, 546 $sender_ident variable, 546 $sender_rcvhost variable, 546 sender_reject option, 320-321, 332 sender_reject_recipients option, 320-321, 332 sender_relay option, 332 senders option, 102, 116 mailing lists and, 81 sender_try_verify option, 321 verification failures, 317 sender_unqualified_hosts option, 307 addresses, rewriting, 339 sender_verify option, 314, 321, 332 sender_verify_batch option and, 377 sender_verify_fixup option and, 321 sender_verify_batch option, 316, 321 sender_verify option and, 377 sender_verify_callback_domains option, 315 sender_verify_callback_timeout option, 315 sender_verify_fixup option, 318, 321 sender_verify_hosts option, 316, 320, 322, 427 sender_verify_hosts_callback option, 315 sender_verify_max_retry_rate option, 317, 322 sender_verify_reject option, 322 sender_verify_fixup option and, 319, 321 verification failures, 317 Sendmail, xiii argument addresses and, 461 command interface, 2 compatibility in Exim, 479 configuring Exim as replacement for, 34 daemon process and, 273 serialize- database, 513 9 October 2001 09:13 605 serialize-etrn database, 270 serialize-etrn-runs database, 513 serialize_hosts option, 185, 194 server_condition option, 364 servers, 540 authenticators in cram_md5, 366 determining, 359 plaintext, 364 connecting to, 16 EHLO command (SMTP) and, 16 Exim, authentication on, 360 name (see name servers) minimizing delays on, 69 rejecting envelopes, 17 TLS, configuring Exim to use, 368 X Window system, 470 server_secret option, 366 server_set_id option, 364 message reception logging, 489 seteuid( ), 437 setuid flag, 437 setuid root, configuring Exim as, 271 setuid( ), 437 -Sf/-Sff options, 469 sg operator, 399 shadow transports, 184 shadow_condition option, 182, 184 shadow_transport option, 182, 184 shared files, processes and, 265 shell option, restrict_to_path option and, 227 SHELL variable, 226 shell, calling Exim from (see command-line interface) SIGHUP signal, 34 configuration file, updating, 511 daemon process and, 275 significant actions in filter files, 248 testing for, 261 SIGUSR1 signal, 502 Simple Mail Transfer Protocol (see SMTP) single quote (') (see ' (single quote)) single-key lookups, 60, 379 default values in, 389 partial matching in, 390 Size button (Exim monitor), 506 SIZE option (SMTP), 16, 188 message errors and, 286 size_addition option and, 194 size_addition option, 188, 194 smtp transport and, 181 606 /skiprelay option, rbl_domains option, 313 skip_syntax_errors option, 130, 133 mailing lists and, 80 Smail, xiii, 481 smart host, 158 SmartList program, 78 list_transport option and, 84 require_files option and, 104 smartuser director, 37, 77, 118, 147 address verification and, 104 generating new addresses, 147 require_files option and, 104 transport settings and, 136 smtp option, BSMTP and, 201 SMTP (Simple Mail Transfer Protocol), 7, 15-18, 184 authentication (see authenticating) -bd option and, 273, 283 commands, timeouts for receiving response to, 192 connections, 274 address verification, 103 controlling number of, 64 daemon process and, 274 encrypted, 367-377 hosts reserved for, 277 interface binding, 193 locking out, 2 logging, 487 maximum allowed, 276 queue of, 275 responding to, 457 suspending, 64 virtual interfaces and, 273 daemon process and, 265 encryption (see security, encryption) exchanges, timeouts associated with, 187 ident protocol and, 430 line terminators in, 449 local, 376 message reception and, 283, 303 options for, 460 reception, setting timeout for, 457 response codes, 15 rewriting addresses, flags for, 349 sender addresses, checking, 314 smtp transport and, 37 standards, 11 over TCP/IP, 372-376 incoming, 373 outgoing, 372 (see also smtp transport) smtp transport, 36-37, 173 addresses, multiple, 185 9 October 2001 09:13 Index AUTH command and, 188 calls, control of outgoing, 185 domains, mixed, 194 hosts fallback, specifying, 190 local, 191 retrying, 191 specifying, 189 IP addresses and, 190 LMTP and, 188 messages, size of, 194 options for, 184-194 retry records, 194 router invocation of, 189 SIZE option and, 188 size_addition option and, 181 SMTP over TCP/IP, 372-376 TCP/IP connection, 186, 194 ports, specifying, 194 TLS client configuration, 371 smtp value (port option), 187 smtp_accept_keepalive option, keepalive option and, 193 smtp_accept_max option, 64, 274, 276 smtp_accept_max_per_host option, 274, 276 smtp_accept_queue option, 65, 274, 276 smtp_accept_queue_per_connection option, 301 smtp_accept_reserve option, 274, 277 smtp_banner option, 457 smtp_connect_backlog option, 65, 275, 277 smtp_etrn_command option, 376 $domain variable and, 539 smtp_etrn_hosts option, 375 smtp_etrn_serialize option, 375 smtp_etrn_command option and, 376 smtp_expn_hosts option, 120, 374 smtp_load_reserve option, 64, 274, 277 smtp_receive_timeout option, 457 smtp_reserve_hosts option, 64, 277 smtp_verify option, VRFY command and, 374 $sn0–$sn9 variables, 546 SO_KEEPALIVE option, 187, 193 Solaris Bourne shell, server authentication on, 362 configuring Exim on, 34 performance on, 267 timestamps, 450 spam, 310 Index spam (continued) blocking, 21 callback verification and, 315 filtering, 240 forged headers and, 18 frozen messages and, 62 MUAs and, 10 senders, explicitly rejecting, 320 $sn0–$sn9 variables and, 546 (see also DNS blocking lists) split_spool_directory option, 67, 267, 280 spool area, 7 spool directory, 266 Spool file is locked message, 268, 493 spool files, writing log files to, 450 $spool_directory variable, 546 square brackets ([]) (see [] (square brackets)) src directory, 518 -Sr/-Srf/-Srff options, 469 s/S flags (rewriting rules), 348 SSL (Secure Sockets Layer), 367 (see also OpenSSL, Diffie-Hellman ciphers; TLS) staff group, 195 start queue run message, log level for, specifying, 487 STARTTLS command (SMTP), 367 stat( ), exists condition and, 404 sticky bit directory, 205 string expansions, 392-419, 533-547 character translation, 398 conditional, S combining, 405 encrypted string comparison, 401 expansion failure, forcing, 405 files, testing existence of, 404 headers, nonexistent, 403 message delivery, testing status of, 404 negated, 400 numeric comparisons, 403 PAM authentication, 402 regular expression matching, 400 specific strings, testing for, 399 variables, empty, 403 conditions for, 535 combining conditions, 537 in configuration file, 59 disabling exists condition, 141 domain lists from, escaping characters in, 424 embedded Perl, 417 in filter files, exists condition and, 145 header insertion, 394 9 October 2001 09:13 607 lookups in, 378, 406-410 database queries, reducing number of, 408 defaults for, 409 query-style, 408 single-key, 406 numeric comparisons in, 103 operators for, 535 quoting characters in, 413-416 addresses, 414 lookup queries, 415 printing characters, 416 regular expressions, 414 reexpansion, 416 substring operations, 395-398 case of letters, forcing, 398 extracting fields from, 410-412 hashing operators, 397 initial part, extracting, 395 parts of, extracting, 396 testing, 418 text substitution, 399 valid items in, 533 variable substitutions, 394, 538-547 strings encrypted comparison of, 401 substring operations, 395-398 case of letters, forcing, 398 extracting fields from, 410-412 hashing operators, 397 initial part, extracting, 395 parts of, extracting, 396 testing conditions, 258 testing for specific, 399 stripcharts (Exim monitor), 505 strip_excess_angle_brackets option, 447 strip_trailing_dot option, 447 subject option, 234, 237 Subject: header automatic reply messages, 234, 237 filtering by, 240 substr operator, 396 suffixes/prefixes with usernames, 87 suffix/prefix options, 81, 203 maildir_format option and, 215 mbx_format option and, 208 messages, separating, 197 $tod_bsdinbox variable, 197 use_crlf option and, 199 supplementary group access list, 195 SUPPORT_CRYPTEQ option, 536 syntax_errors_text option, 130, 133 syntax_errors_to option, 130, 133 608 sysadmin value (admin_groups option), 444 syslog, 483-484 UDP and, 483 system administrators, 443 Exim group, adding to, 436 queue runner processes, starting, 466 system alias file, 34, 36 filenames in, specifying, 51 pipes specified in, 51 system filters, 238 deliver command and, 250 delivery processes and, 281 filenames in, 251 options for, 243 $recipients variable, 262 save command and, 251 setting up, 242 significant actions and, 248 testing, 246 virus scanning and, 97 T T field (delivery logging), 491 t flag (rewriting rules), 348 T flag (rewriting rules), 347 -t option, 283, 446, 462 addresses as arguments to, 461 Bcc: option and, 336 exim_tidydb utility, 513 message reception and, 460 addresses, 305 message termination and, 460 -t option (eximstats utility), 500 TCP/IP connection control of, 186 hosts and, 194 message relay options, 331 messages received over, 540 number of message deliveries over, 192 hosts and, serialization, 186 messages received over, 303 ports, 186 specifying, 194 reception processes and, 277 SMTP over, 372-376 incoming, 373 outgoing, 372 temp_errors option, 227, 230 testprint command, 245, 249, 256 text option, 234, 237 9 October 2001 09:13 Index text substitution in string expansions, 399 $thisaddress variable, 546 tidy_alldb file, 514 time intervals, specifying in options, 57 time values (-q option), 467 time/date, $tod_full variable, 547 timeout option, 170, 172, 226, 230, 232 -timeout option (exim_lock utility), 515 timeouts for connect(), 192 for connection attempts, 285 file locking, 220 for ident callbacks, 431 mailbox locking and, 212, 219 for non-SMTP message reception, 462 pipe commands, 226, 230 for responses to messages, 193 to SMTP commands, 192 for retry data, 295 SMTP exchanges, 187 reception, 457 for transmission of message blocks, 192 timestamps, 449 timestamps_utc option, 449 time-to-live field, 23 timezone option, 449 TLS (Transport Layer Security), 367 clients forcing use of, 370 relaying, 370 configuring as client, 371 configuring as server, 368 connections, setting conditions on, 369 variables for, 370 tls_advertise_hosts option, 368 tls_certificate option, smtp transport and, 371 $tls_cipher variable, 370, 546 tls_dhparam option, 369 tls_host_accept_relay option, 330 tls_host_accept_replay option, 370 tls_hosts option, 370 tls_log_cipher option, 489 tls_log_peerdn option, 371, 489 $tls_peerdn variable, 370, 547 tls_privatekey option, smtp transport, 371 tls_verify_certificates option, 370 smtp transport and, 371 tls_verify_ciphers option, 369 smtp transport and, 371 tls_verify_hosts option, 369 Index to option, 234, 237 To: header automatic reply messages, 237 processing messages with, 336 rewriting, 348 $tod_bsdinbox variable, 197, 547 $tod_full variable, 547 $tod_log variable, 405, 547 tr operator, 398 translating characters in string expansions, 398 transport drivers, 35, 101 adding data for use by, 108-113, 121 address rewriting and, 177, 342 configuring, 173-237 debugging, 174 directing to, 148 for files, 127 filtering (see transport filters) headers and, adding/removing, 175 local, 163 current/home directories and, 196 environment for, 194-196 expansion variables derived from address, 196 gids/uids and, 195 for local delivery agents, 85 for localuser director, 146 messages and size of, controlling, 175, 183 transporting only parts of, 174 options for, 174-184 for pipes, 127 piping messages to external software, 84 remote, 184 (see also smtp transport) return path, changing, 177 shadow, 182, 184 specifying for aliasfile director, 135 types of, 36 varying, 166 (see also drivers) transport filters, 180, 242 encryption and, 180 modifying messages and, 99 Transport Layer Security (see TLS) transport option, 49, 101, 135, 146 bsmtp value, 164 ipliteral router and, 169 transport setting (-bP option), 474 transport_filter option, 180, 184 transport_list setting (-bP option), 474 trusted users, 442 trusted_users option, 84, 442 9 October 2001 09:13 609 TZ environment variable, 450 U U field (message reception logging), 489 uc operator, 398 UDP (User Datagram Protocol), syslog and, 483 uids (user ids), 543 batch option and, 200 effective/real/saved, 437 local transports, 195 no_check_owner option and, 207 pipe commands, 224 privilege control by, 437 for processes, 271 calling Exim, 539 security and, 436 ultimate address timeout, 297 umask option, 231 Uniform Resource Locators (URLs), quoting characters in, 415 Universal Coordinated Time (UTC), 449 Unix file locking in, 209 line termination, 11 uptime command, 274 Unix-to-Unix Copy (see UUCP) unknown local part error message, 108 unknown user error message, 48 :unknown:, 126 forbid_special option and, 137 unprivileged setting (security option), 441 unseen option, 107, 116 headers_add option and, 110 noerror value, 253 pipe command and, 239 significant actions and, 248 unsolicited junk mail (see spam) untrusted_set_sender option, 443, 462 Update action button (Exim monitor), 508 upgrading Exim, 530 uptime command (Unix), 63 system load averages, 274 URLs (Uniform Resource Locators), quoting characters in, 415 use_crlf option, 199, 203 use_fcntl_lock option, 211, 221 use_mbx_lock option and, 212 use_lockfile option, 211, 222 use_mbx_lock option, 222 use_fcntl_lock option and, 212 User Datagram Protocol (see UDP) 610 user filters, 238 deliver command and, 250 save command and, 251 setting up, 242 significant actions and, 248 user ids (see uids) USER variable, 226 user variables, 249 userforward director, 87 user/group options, 110-111, 115, 117, 232 delivery environment, controlling, 197 gids/uids, 224 local transports and, 195 unprivileged Exim, running, 441 usernames, 13 length of, 456 prefixes/suffixes with, 87 (see also local parts of message headers) users admin (see system administrators) checking local, 139 privileged, 442-444 trusted, 306, 442 use_shell option, 225, 231 allow_commands option and, 227 UTC (Universal Coordinated Time), 449 UUCP (Unix-to-Unix Copy) batched delivery and, 199 Berkeley mailbox format, 197 email deliveries to, 90, 164 From line, processing, 334 uucp_from_pattern option, 306 uucp_sender_address, 306 V -v option Exim monitor, 510 exim_lock utility, 515 results of conditional tests, 244 vacation command, 146, 233, 239, 249, 254 once keyword, 255 .vacation.msg file, 239 $value variable, 159, 407, 547 variable envelope return paths (see VERPs) variables empty, 403 environment EXIMON_ prefix, 504 for pipe commands, 226 pipe transport and, 195 expansion, 536 in expansion strings, 538-547 HOME, 196 9 October 2001 09:13 Index local transports and, 196 set for TLS connection, 370 substitution, 394 user, 249 values of checking, 174 printing, 256 verification callback, 315 verify option, 117 verifying addresses (see addresses, verifying) verify_only option, 104, 117, 316 lookuphost router and, 154 verify_recipient option, 117 -bv/-bvs options and, 475 verify_sender option, -bv/-bvs options and, 475 VERPs (variable envelope return paths), 177 max_rcpt option and, 185 $version_number variable, 547 vertical bar (|) (see | (vertical bar)) virtual domains, 74-78 viruses (see security, viruses) VISUAL environment variable, 472 VRFY command (SMTP), 374 W w flag (rewriting rules), 349 wait- database, 269, 513 /warn option, rbl_domains option, 311 warning messages alerting postmaster, 453 copies of, taking, 452 customizing, 455 delay, 453 handling, 451-454 replying to, 452 $warnmsg_delay variable, 456, 547 warnmsg_file option, 455 $warnmsg_recipients variable, 547 +warn_unknown/+allow_unknown settings, 429 with ident prefix, 431 web servers local_interfaces option and, 276 virtual, 273 web site, Exim, 517 white lists, 313 whitespace in string expansions, 393, 533 widen_domains option, 156, 158 Index wildcards exceptions to in lists, 421 in host lists, 428 X X field (message reception logging), 489 X Window system, 3 Exim monitor and, 503-511 server, 470 xinetd, 32 X-RBL-Warning: header, 311 Z zeros, termination, DBM lookups and, 381 zombie processes, 275 zones, 23 name servers and, 23 finding, 28 types of, 25 9 October 2001 09:13 611 9 October 2001 09:13 ,Colophon.10429 Page 1 Tuesday, October 9, 2001 9:25 AM About the Author Philip Hazel has a Ph.D. in applied mathematics, but has spent the last 30 years writing general-purpose software for the Computing Service at the University of Cambridge in England.

(period)) Perl, embedded disabling, 141, 145 string expansion and, 417 perl_at_start option, 417 perl_startup option, 417 Permission denied error message checking file existence, 105 ignore_eacces option and, 140 permissions files, checking owners of, 207, 218 to mailboxes, 205 pgsql_servers option, 387 pid_file_path option, 273 Pine program, 358 pipe command, 239, 249, 252 as significant action, 248 in system filters, 262 pipe transport, 37, 50, 173, 196 append_string/check_string options and, 198 autoreply transport and, 233 commands environment for, 225, 229 error handling, 227, 230 failure to execute, 229 output from, handling, 228-229 parsing command line, 224 restricting, 227 running, 224 running from shell, 225, 231 specifying, 222 timing, 226 deliveries batched, 199-202 controlling environment for, 197 environment variables, 195 local delivery agents and, 85 messages line termination in, 199 in single file, separating, 197 options for, 196-203, 222-231 prefix/suffix options and, 198 UUCP and, 164 $pipe_address variable, 181, 225 $pipe_addresses variable, 543 pipelining, 15, 222 disabling, 128, 131-132 supplementary group access list and, 195 tranport drivers for, 127 (see also pipe transport) 600 pipes, named (see named pipes) pipe_transport/file_transport options, 127, 131 plaintext authenticator in a client, 366 in a server, 364 plaintext value (driver option), 363 Pluggable Authentication Module (PAM), 402 plus sign (+) (see + (plus sign)) pointer records (see PTR records) POP daemon password lookups and, 67 single-file delivery, 214 POP (Post Office Protocol), 9 POP3 and unprivileged Exim, 441 port option, 186, 194 protocol option and, 194 Post Office Protocol (see POP) PostgreSQL database lookups, 387 quoting characters in, 415 postmasters, 29 bounce messages to, 453 defaulting unknown aliases to, 135 in virtual domains, 77 PP, xiii Precedence: header, value of, 542 prefixes/suffixes with usernames, 87 prefix_optional/suffix_optional options, 119 prefix/suffix options, 81, 119, 203 maildir_format option and, 215 mbx_format option and, 208 messages, separating, 197 $tod_bsdinbox variable, 197 use_crlf option and, 199 preserve_message_logs option, 268, 483 primary_hostname option, 456 domain lists and, 424 $primary_hostname variable, 543 printing quoting characters in, 416 while testing, 256 privileged users, 442-444 processes, 265-283 checking, 482 comsat, notifying, 218, 220 daemon, 32, 265, 273-277, 283 configuration file and, 54 options for starting, 459 SMTP calls, 274 delivery, 265, 272, 281 controlling number of, 66 queue runners and, 279 9 October 2001 09:13 Index Exim, 32-33 forking for remote deliveries, 272 gids/uids for, 271 interlocking, exicyclog utility, 271 local, messages from, 303-307 message-handling, summary of, 283 pipe command and, 252 querying, 502 queue runner, 265, 279-280, 283 addresses, processing specific, 468 addresses, remote, 466 addresses, restricting to local, 466 delivery attempts by, 537 messages, processing specific, 468 number of, controlling, 279 options for, 466-469 running periodically, 467 starting, 279 reception, 265, 277, 283 relationships among, 272 shared files and, 265 types of, 265 zombie, 275 procmail program, 85, 223 filtering and, 241 multiple user addresses, 87 prohibition messages, customizing, 332 prohibition_message option, 312, 332 prohibition_reason option $rbl_domain/$rbl_text variables and, 544 $prohibition_reason variable, 332, 543 protocol option, 194 lmtp value, 188 protocols, messages received by, 544 ps command, 502 -ps option, perl_at_start option and, 417 PTR records, 25 DNS lookups, 388 IPv6 format for, 26 public_name option, 363 Q Q flag (rewriting rules), 348 q flag (rewriting rules), 348 -q option, 283, 466, 481 exim_lock utility, 514 user privilege and, 443 -q options, summary of, 280 q value (-q option), 467 -q15m option, 273, 279 -q1m option, 66 -qf option, 279, 300, 469 Index -qff option, 263, 279, 469 frozen messages, processing, 281 -qffl/-qfl/-ql options, 469 -ql option, 469 -qqf option, 300 qualify_domain option, 35, 61, 128, 304-305, 307 addresses, rewriting, 339 client authentication and, 363 EXPN command and, 374 QUALIFY_DOMAIN variable, 226 $qualify_domain/$qualify_recipient variables, 543 qualify_preserve_domain option, 76, 123, 128, 132, 149 qualify_recipient option, 61, 147, 304-305, 307 qualify_single option, 157, 168 gethostbyname option and, 156 query option, 383 values for, 385 queryprogram command, 169 queryprogram router, 37, 150, 169-172 $route_option variable and, 544 query/queries options, 137 query-style lookups, 60, 379, 382 implicit keys in, 388 question mark, regular expressions, 560 queue, 31 addresses, adding to, 38 displaying via Exim monitor, 507 handling large, 66 inspecting, options for, 470 listing messages on, 53 writing log files to spool, 450 queue runners, 31, 265, 279-280, 283 addresses local, restricting to, 466 processing specific, 468 two-pass processing for remote, 466 daemon process and, 275 delivery attempts by, 537 delivery processes and, 279 maximum, 276 messages, processing specific, 468 number of, controlling, 279 options for, 466-469 periodic runs, 467 -q15m option and, 273 reception processes and, 278 starting, 279 queue_only option, 66, 279 reception processes and, 278 queue_only_file option, 278 9 October 2001 09:13 601 queue_only_load option, 63, 278 queue_remote_domains option, 278, 299 queue_run_in_order option, 280 queue_run_max option, 66, 275-276, 279 queue_running condition, 404, 537 queue_smtp_domains option, 278, 300 QUIT command (SMTP), 17 quota option, 215, 221 quota_filecount option, 216, 221 quota_is_inclusive option, 217, 221 quotas exclusive/inclusive, 217, 221 mailboxes, 215, 221 warnings, 217, 221 quota_size_regex option, 216, 221 quota_warn_message option, 217, 221 quota_warn_threshold option, 217, 221 quote operator, 414 quote_ldap operator, 415 quote_mysql operator, 415 quote_nisplus operator, 415 quote_pgsql operator, 415 quoting in string expansions, 413-416 addresses, 414 lookup queries, 415 regular expressions, 414 R R field delivery logging, 491 message reception logging, 490 R flag (rewriting rules), 348 r flag (rewriting rules), 348 -R option, 468-469 delivery, forcing, 298 -r option, 462 r value (-R/-S options), 468 RBL (Realtime Blackhole List), 21, 310, 543 configuring Exim to use, 311 data values, 312 domains, logging headers from, 487 options for, 313 rejection, 312 warnings, 311 $rbl_domain variable, 543 rbl_domains option, 311-312 rbl_hosts option, 311 rbl_log_headers option, 487 rbl_log_rcpt_count option, 487 rbl_reject option, 332 rbl_reject_recipients option, 311 rbl_log_rcpt_count option and, 487 602 $rbl_text variable, 544 rbl_warn_header option, 311 RCPT command (SMTP), 13, 19 BSMTP and, 201 callbacks, verifying, 315 error responses to, 287 host_reject_recipients option and, 313 number of limiting, 193 in one message, 185 verification failures, 318 Realtime Blackhole List (see RBL) Received: header loops and, 457 $received_for variable and, 544 $sender_rcvhost variable, 546 $tls_cipher variable, 370 $received_for variable, 544 received_headers_max option, 457 $received_protocol variable, 95, 113, 544 server authentication, 360 receiver_try_verify option, 325 receiver_verify option and, 325 receiver_verify_addresses option and, 325 recipient address, verifying, 323 receiver_unqualified_hosts option, 307 addresses, rewriting, 339 receiver_verify option, 48, 325, 332 -bv/-bvs options and, 324 receiver_try_verify option and, 325 receiver_verify_address option, 323 receiver_verify_addresses option, 325 receiver_verify_hosts option, 323, 325 receiver_verify_senders option, 323-325 receiving email (see email, receiving) reception processes, 265, 277, 283 recipient errors, 287 recipients multiple, 13 refused, logging, 487 saving email addressed to certain, 107 $recipients variable, 238, 544 system filters, 262 $recipients_count variable, 544 recipients_reject_except option, 312 recursive patterns, 568 regular expressions, 548-570 assertions, 563 lookbehind assertions, 563 back references, 561 comments, 568 conditional subpatterns, 567 matching, 400 9 October 2001 09:13 Index options, changing, 553 metacharacters in, 550 once-only subpatterns, 565 performance and, 569 POSIX character classes, 557 quoting data for, 414 recursive patterns, 568 relaying, controlling, 549 repetition, 559-561 route_list option and, 160 subpatterns, 558 testing, 549 reject database, 269, 513 reject log, 483 mapping, 484 refused recipients, entries for, 487 /reject option, rbl_domains option, 311 rejectlog file, 54 relay_domains option, 328, 331 relay_domains_include_local_mx option, 329, 331 relaying messages, 302 from authenticated hosts, 330 control of, 326-331 encryption, using, 330 incoming, 327-328 with incomplete domains, 328 for MX backups, 329 options for, 331 outgoing, 327, 329 permitting, 330 regular expression for controlling, 549 relay checking, 327 sending host, checking, 355 from specific senders, 330 over TLS sessions, 370 relay_match_host_or_sender option, 331 remote_max_parallel option, 66, 279, 281 max_rcpt option and, 193 remote_smtp option, 184 remote_smtp transport, 152 domains resolved to remote hosts and, 152 remote_sort option, 282 reply command, disabling, 141 $reply_address variable, 544 reply_to keyword, 254 reply_to option, 234, 236 Reply-To: header automatic reply messages, 234, 236 rewriting, 348 reply_transport option, 146 req command, 368 Index request for comments (see RFCs) require_files option, 82, 104, 116 directors and, 84 uids and, 439 require_lockfile option, 211, 221 reroute: value (self option), 153 RES_DEFNAMES option, 154, 157 no_dns_qualify_single option and, 190 RES_DNSRCH option, 154, 158 dns_search_parents option and, 190 Resent- headers, 333 restrict_to_path option, 227, 230 -retries option (exim_lock utility), 515 retry database, 49, 269, 285 extracting information from, 501 retry rules, 285, 289-292 error field, 291 examples of, 294 parameter sets, 292 patterns, 290 retry times, 292 testing, options for, 477 ultimate address timeout, 297 retry_data_expire option, 295 retry_include_ip_address option, 194 retrying delivery, 284-301 address timeouts, 297 to dial-up hosts, 297-301 errors, 284 remote, 285-288 host-based, 284 long-term failures, 295 message-based, 284 overriding times, options for, 466 timeouts, 295 times computing, 292 using, 293 (see also retry rules) retry_use_local_part option, 203 retry rules and, 291 return paths, 15 batch option and, 200 changing, 110, 177 $return_path variable and, 544 return_fail_output option, 230 return_message option, 234, 255 return_output option, 50, 228, 230 return_path option, 177, 183 envelope sender, rewriting, 342 $return_path variable, 544 Return-path: header, 175, 184 processing messages with, 337 return_path_add option, 175, 184 9 October 2001 09:13 603 envelope preservation and, 200 return_size_limit option, 175, 303 $return_size_limit variable and, 544 $return_size_limit variable, 454, 544 rewrite option, 133, 149 rewrite: value (self option), 153 rewrite_headers option, 158 rewriting addresses, 339-354 address components, expansion variables, 542 automatically, 339 Bcc:/Cc: headers, 347 conditionally, 344 configured, 340-343 envelope fields, 347 From: header, 348 general, 341 headers, 348 logging, 487 lookup-driven, 345 per-transport, 342 Reply-To: header, 348 rules for, 343-345 applying, 344 flags, 347-351 format of, 344 rewriting patterns, 345 testing, 354 Sender: header, 348 To: header, 348 as unqualified local part, 348 -Rf option, 469 RFC conformance, 444-449 8-bit characters, 445 address syntax, 446-448 addresses canonicizing, 448 domain-literal, 447 source-routed, 448 EHLO/HELO syntax, 449 line terminators in SMTP, 449 MX records, 448 rfc1413_hosts option, 431 rfc1413_query_timeout option, 431 RFCs (request for comments), 7 message format definition, 11 -Rff option, 469 right angle bracket (>) (see > (right angle bracket)) rmail, 481 root privilege, 436-439 in Exim, 437 guids/uids and, 437 604 root privilege (continued) relinquishing, 438 route_file option, 163, 168 route_list option, 89, 159, 162, 168 $0 variable, 163 $1, $2, etc. variables, 159 $value variable, 159 routelist router, local transports, 163 $route_option variable, 200, 544 route_query/route_queries options, 162, 168 router drivers, 18, 35, 101 addresses, processing, 37-49 configuring, 150-172 for address verification, 316 header additions/removals, 176 debugging, 113 delivery errors, 289 vs. director drivers, 38 domainlist, 36 invoking smtp transport from, 189 ipliteral, 37 lookuphost, 37 options for, 101-117, 150-153 summary of, 114-117 queryprogram, 37 restricting to specific domains, 114 transports, using, 49 (see also drivers) router setting (-bP option), 474 router_list setting (-bP option), 474 routing (see router drivers) routing rules inline, 159 looked-up, 162 -Rr/-Rrf/-Rrff options, 469 rsmtp, 480 runq, 481 rxquote operator, 414 S S field (message reception logging), 490 -S option, 468-469 save command, 240, 249, 251 filtering and, 243 as sigificant action, 248 in system filters, 262 save option, file modes and, 207 scanning for viruses, 94-99 on external hosts, 98 on local hosts, 95 Search button (Exim monitor), 507 search_parents option, 154, 158, 167-168 9 October 2001 09:13 Index gethostbyname option and, 156 search_type option, 134, 138, 162, 168 Secure Sockets Layer (SSL), 367 (see also OpenSSL, Diffie-Hellman ciphers; TLS) security, 435-442 authentication, 6, 18 forged email and, 18 -bP option and, 385 encryption, 18, 180, 367-377 certificates, creating self-signed, 368 digital signitures, modifying messages and, 99 relaying and, 330 SMTP, 330 string comparison, 401 $tls_cipher variable, 546 (see also OpenSSL, Diffie-Hellman ciphers) firewalls (see firewalls) ident protocol and, 430 privileged users, 442-444 relay_domains_include_local_mx option and, 329 root privilege, 436-439 guids/uids and, 437 relinquishing, 438 symbolic links and, 206 system administrators, 443 trusted users, 442 TURN command and, 374 viruses, 21 scanning messages for, 94-99 VRFY/EXPN commands and, 374 security option, 439 unprivileged Exim, running, 440 seen finish command, 248, 492 seen option, significant actions and, 248 self option, 106, 152-153 deferred setting, 153 domainlist router and, 159 fail value, 153 fail_soft/fail_hard settings, 153 pass value, 152 reroute: value, 153 rewrite: value, 153 send value, 153 $self_hostname variable, 152, 545 semicolon (;) (see ; (semicolon)) send value (self option), 153 SENDER variable, 226 Sender: header processing messages with, 335 Index Sender: header (continued) rewriting, 348 sender names and, 463 $sender_address variable, 180, 545 address rewriting, 341 $sender_address_domain variable, 545 $sender_address_local_part variable, 545 sender_address_relay option, 330-331 sender_address_relay_hosts option, 330-331 $sender_fullhost variable, 545 $sender_helo_name variable, 545 $sender_host_address variable, 403, 545 $sender_host_address variable, address rewriting conditionally, 345 $sender_host_authenticated variable, 545 server authentication, 360 $sender_host_name variable, 309, 546 $sender_host_port variable, 546 $sender_ident variable, 546 $sender_rcvhost variable, 546 sender_reject option, 320-321, 332 sender_reject_recipients option, 320-321, 332 sender_relay option, 332 senders option, 102, 116 mailing lists and, 81 sender_try_verify option, 321 verification failures, 317 sender_unqualified_hosts option, 307 addresses, rewriting, 339 sender_verify option, 314, 321, 332 sender_verify_batch option and, 377 sender_verify_fixup option and, 321 sender_verify_batch option, 316, 321 sender_verify option and, 377 sender_verify_callback_domains option, 315 sender_verify_callback_timeout option, 315 sender_verify_fixup option, 318, 321 sender_verify_hosts option, 316, 320, 322, 427 sender_verify_hosts_callback option, 315 sender_verify_max_retry_rate option, 317, 322 sender_verify_reject option, 322 sender_verify_fixup option and, 319, 321 verification failures, 317 Sendmail, xiii argument addresses and, 461 command interface, 2 compatibility in Exim, 479 configuring Exim as replacement for, 34 daemon process and, 273 serialize- database, 513 9 October 2001 09:13 605 serialize-etrn database, 270 serialize-etrn-runs database, 513 serialize_hosts option, 185, 194 server_condition option, 364 servers, 540 authenticators in cram_md5, 366 determining, 359 plaintext, 364 connecting to, 16 EHLO command (SMTP) and, 16 Exim, authentication on, 360 name (see name servers) minimizing delays on, 69 rejecting envelopes, 17 TLS, configuring Exim to use, 368 X Window system, 470 server_secret option, 366 server_set_id option, 364 message reception logging, 489 seteuid( ), 437 setuid flag, 437 setuid root, configuring Exim as, 271 setuid( ), 437 -Sf/-Sff options, 469 sg operator, 399 shadow transports, 184 shadow_condition option, 182, 184 shadow_transport option, 182, 184 shared files, processes and, 265 shell option, restrict_to_path option and, 227 SHELL variable, 226 shell, calling Exim from (see command-line interface) SIGHUP signal, 34 configuration file, updating, 511 daemon process and, 275 significant actions in filter files, 248 testing for, 261 SIGUSR1 signal, 502 Simple Mail Transfer Protocol (see SMTP) single quote (') (see ' (single quote)) single-key lookups, 60, 379 default values in, 389 partial matching in, 390 Size button (Exim monitor), 506 SIZE option (SMTP), 16, 188 message errors and, 286 size_addition option and, 194 size_addition option, 188, 194 smtp transport and, 181 606 /skiprelay option, rbl_domains option, 313 skip_syntax_errors option, 130, 133 mailing lists and, 80 Smail, xiii, 481 smart host, 158 SmartList program, 78 list_transport option and, 84 require_files option and, 104 smartuser director, 37, 77, 118, 147 address verification and, 104 generating new addresses, 147 require_files option and, 104 transport settings and, 136 smtp option, BSMTP and, 201 SMTP (Simple Mail Transfer Protocol), 7, 15-18, 184 authentication (see authenticating) -bd option and, 273, 283 commands, timeouts for receiving response to, 192 connections, 274 address verification, 103 controlling number of, 64 daemon process and, 274 encrypted, 367-377 hosts reserved for, 277 interface binding, 193 locking out, 2 logging, 487 maximum allowed, 276 queue of, 275 responding to, 457 suspending, 64 virtual interfaces and, 273 daemon process and, 265 encryption (see security, encryption) exchanges, timeouts associated with, 187 ident protocol and, 430 line terminators in, 449 local, 376 message reception and, 283, 303 options for, 460 reception, setting timeout for, 457 response codes, 15 rewriting addresses, flags for, 349 sender addresses, checking, 314 smtp transport and, 37 standards, 11 over TCP/IP, 372-376 incoming, 373 outgoing, 372 (see also smtp transport) smtp transport, 36-37, 173 addresses, multiple, 185 9 October 2001 09:13 Index AUTH command and, 188 calls, control of outgoing, 185 domains, mixed, 194 hosts fallback, specifying, 190 local, 191 retrying, 191 specifying, 189 IP addresses and, 190 LMTP and, 188 messages, size of, 194 options for, 184-194 retry records, 194 router invocation of, 189 SIZE option and, 188 size_addition option and, 181 SMTP over TCP/IP, 372-376 TCP/IP connection, 186, 194 ports, specifying, 194 TLS client configuration, 371 smtp value (port option), 187 smtp_accept_keepalive option, keepalive option and, 193 smtp_accept_max option, 64, 274, 276 smtp_accept_max_per_host option, 274, 276 smtp_accept_queue option, 65, 274, 276 smtp_accept_queue_per_connection option, 301 smtp_accept_reserve option, 274, 277 smtp_banner option, 457 smtp_connect_backlog option, 65, 275, 277 smtp_etrn_command option, 376 $domain variable and, 539 smtp_etrn_hosts option, 375 smtp_etrn_serialize option, 375 smtp_etrn_command option and, 376 smtp_expn_hosts option, 120, 374 smtp_load_reserve option, 64, 274, 277 smtp_receive_timeout option, 457 smtp_reserve_hosts option, 64, 277 smtp_verify option, VRFY command and, 374 $sn0–$sn9 variables, 546 SO_KEEPALIVE option, 187, 193 Solaris Bourne shell, server authentication on, 362 configuring Exim on, 34 performance on, 267 timestamps, 450 spam, 310 Index spam (continued) blocking, 21 callback verification and, 315 filtering, 240 forged headers and, 18 frozen messages and, 62 MUAs and, 10 senders, explicitly rejecting, 320 $sn0–$sn9 variables and, 546 (see also DNS blocking lists) split_spool_directory option, 67, 267, 280 spool area, 7 spool directory, 266 Spool file is locked message, 268, 493 spool files, writing log files to, 450 $spool_directory variable, 546 square brackets ([]) (see [] (square brackets)) src directory, 518 -Sr/-Srf/-Srff options, 469 s/S flags (rewriting rules), 348 SSL (Secure Sockets Layer), 367 (see also OpenSSL, Diffie-Hellman ciphers; TLS) staff group, 195 start queue run message, log level for, specifying, 487 STARTTLS command (SMTP), 367 stat( ), exists condition and, 404 sticky bit directory, 205 string expansions, 392-419, 533-547 character translation, 398 conditional, S combining, 405 encrypted string comparison, 401 expansion failure, forcing, 405 files, testing existence of, 404 headers, nonexistent, 403 message delivery, testing status of, 404 negated, 400 numeric comparisons, 403 PAM authentication, 402 regular expression matching, 400 specific strings, testing for, 399 variables, empty, 403 conditions for, 535 combining conditions, 537 in configuration file, 59 disabling exists condition, 141 domain lists from, escaping characters in, 424 embedded Perl, 417 in filter files, exists condition and, 145 header insertion, 394 9 October 2001 09:13 607 lookups in, 378, 406-410 database queries, reducing number of, 408 defaults for, 409 query-style, 408 single-key, 406 numeric comparisons in, 103 operators for, 535 quoting characters in, 413-416 addresses, 414 lookup queries, 415 printing characters, 416 regular expressions, 414 reexpansion, 416 substring operations, 395-398 case of letters, forcing, 398 extracting fields from, 410-412 hashing operators, 397 initial part, extracting, 395 parts of, extracting, 396 testing, 418 text substitution, 399 valid items in, 533 variable substitutions, 394, 538-547 strings encrypted comparison of, 401 substring operations, 395-398 case of letters, forcing, 398 extracting fields from, 410-412 hashing operators, 397 initial part, extracting, 395 parts of, extracting, 396 testing conditions, 258 testing for specific, 399 stripcharts (Exim monitor), 505 strip_excess_angle_brackets option, 447 strip_trailing_dot option, 447 subject option, 234, 237 Subject: header automatic reply messages, 234, 237 filtering by, 240 substr operator, 396 suffixes/prefixes with usernames, 87 suffix/prefix options, 81, 203 maildir_format option and, 215 mbx_format option and, 208 messages, separating, 197 $tod_bsdinbox variable, 197 use_crlf option and, 199 supplementary group access list, 195 SUPPORT_CRYPTEQ option, 536 syntax_errors_text option, 130, 133 syntax_errors_to option, 130, 133 608 sysadmin value (admin_groups option), 444 syslog, 483-484 UDP and, 483 system administrators, 443 Exim group, adding to, 436 queue runner processes, starting, 466 system alias file, 34, 36 filenames in, specifying, 51 pipes specified in, 51 system filters, 238 deliver command and, 250 delivery processes and, 281 filenames in, 251 options for, 243 $recipients variable, 262 save command and, 251 setting up, 242 significant actions and, 248 testing, 246 virus scanning and, 97 T T field (delivery logging), 491 t flag (rewriting rules), 348 T flag (rewriting rules), 347 -t option, 283, 446, 462 addresses as arguments to, 461 Bcc: option and, 336 exim_tidydb utility, 513 message reception and, 460 addresses, 305 message termination and, 460 -t option (eximstats utility), 500 TCP/IP connection control of, 186 hosts and, 194 message relay options, 331 messages received over, 540 number of message deliveries over, 192 hosts and, serialization, 186 messages received over, 303 ports, 186 specifying, 194 reception processes and, 277 SMTP over, 372-376 incoming, 373 outgoing, 372 temp_errors option, 227, 230 testprint command, 245, 249, 256 text option, 234, 237 9 October 2001 09:13 Index text substitution in string expansions, 399 $thisaddress variable, 546 tidy_alldb file, 514 time intervals, specifying in options, 57 time values (-q option), 467 time/date, $tod_full variable, 547 timeout option, 170, 172, 226, 230, 232 -timeout option (exim_lock utility), 515 timeouts for connect(), 192 for connection attempts, 285 file locking, 220 for ident callbacks, 431 mailbox locking and, 212, 219 for non-SMTP message reception, 462 pipe commands, 226, 230 for responses to messages, 193 to SMTP commands, 192 for retry data, 295 SMTP exchanges, 187 reception, 457 for transmission of message blocks, 192 timestamps, 449 timestamps_utc option, 449 time-to-live field, 23 timezone option, 449 TLS (Transport Layer Security), 367 clients forcing use of, 370 relaying, 370 configuring as client, 371 configuring as server, 368 connections, setting conditions on, 369 variables for, 370 tls_advertise_hosts option, 368 tls_certificate option, smtp transport and, 371 $tls_cipher variable, 370, 546 tls_dhparam option, 369 tls_host_accept_relay option, 330 tls_host_accept_replay option, 370 tls_hosts option, 370 tls_log_cipher option, 489 tls_log_peerdn option, 371, 489 $tls_peerdn variable, 370, 547 tls_privatekey option, smtp transport, 371 tls_verify_certificates option, 370 smtp transport and, 371 tls_verify_ciphers option, 369 smtp transport and, 371 tls_verify_hosts option, 369 Index to option, 234, 237 To: header automatic reply messages, 237 processing messages with, 336 rewriting, 348 $tod_bsdinbox variable, 197, 547 $tod_full variable, 547 $tod_log variable, 405, 547 tr operator, 398 translating characters in string expansions, 398 transport drivers, 35, 101 adding data for use by, 108-113, 121 address rewriting and, 177, 342 configuring, 173-237 debugging, 174 directing to, 148 for files, 127 filtering (see transport filters) headers and, adding/removing, 175 local, 163 current/home directories and, 196 environment for, 194-196 expansion variables derived from address, 196 gids/uids and, 195 for local delivery agents, 85 for localuser director, 146 messages and size of, controlling, 175, 183 transporting only parts of, 174 options for, 174-184 for pipes, 127 piping messages to external software, 84 remote, 184 (see also smtp transport) return path, changing, 177 shadow, 182, 184 specifying for aliasfile director, 135 types of, 36 varying, 166 (see also drivers) transport filters, 180, 242 encryption and, 180 modifying messages and, 99 Transport Layer Security (see TLS) transport option, 49, 101, 135, 146 bsmtp value, 164 ipliteral router and, 169 transport setting (-bP option), 474 transport_filter option, 180, 184 transport_list setting (-bP option), 474 trusted users, 442 trusted_users option, 84, 442 9 October 2001 09:13 609 TZ environment variable, 450 U U field (message reception logging), 489 uc operator, 398 UDP (User Datagram Protocol), syslog and, 483 uids (user ids), 543 batch option and, 200 effective/real/saved, 437 local transports, 195 no_check_owner option and, 207 pipe commands, 224 privilege control by, 437 for processes, 271 calling Exim, 539 security and, 436 ultimate address timeout, 297 umask option, 231 Uniform Resource Locators (URLs), quoting characters in, 415 Universal Coordinated Time (UTC), 449 Unix file locking in, 209 line termination, 11 uptime command, 274 Unix-to-Unix Copy (see UUCP) unknown local part error message, 108 unknown user error message, 48 :unknown:, 126 forbid_special option and, 137 unprivileged setting (security option), 441 unseen option, 107, 116 headers_add option and, 110 noerror value, 253 pipe command and, 239 significant actions and, 248 unsolicited junk mail (see spam) untrusted_set_sender option, 443, 462 Update action button (Exim monitor), 508 upgrading Exim, 530 uptime command (Unix), 63 system load averages, 274 URLs (Uniform Resource Locators), quoting characters in, 415 use_crlf option, 199, 203 use_fcntl_lock option, 211, 221 use_mbx_lock option and, 212 use_lockfile option, 211, 222 use_mbx_lock option, 222 use_fcntl_lock option and, 212 User Datagram Protocol (see UDP) 610 user filters, 238 deliver command and, 250 save command and, 251 setting up, 242 significant actions and, 248 user ids (see uids) USER variable, 226 user variables, 249 userforward director, 87 user/group options, 110-111, 115, 117, 232 delivery environment, controlling, 197 gids/uids, 224 local transports and, 195 unprivileged Exim, running, 441 usernames, 13 length of, 456 prefixes/suffixes with, 87 (see also local parts of message headers) users admin (see system administrators) checking local, 139 privileged, 442-444 trusted, 306, 442 use_shell option, 225, 231 allow_commands option and, 227 UTC (Universal Coordinated Time), 449 UUCP (Unix-to-Unix Copy) batched delivery and, 199 Berkeley mailbox format, 197 email deliveries to, 90, 164 From line, processing, 334 uucp_from_pattern option, 306 uucp_sender_address, 306 V -v option Exim monitor, 510 exim_lock utility, 515 results of conditional tests, 244 vacation command, 146, 233, 239, 249, 254 once keyword, 255 .vacation.msg file, 239 $value variable, 159, 407, 547 variable envelope return paths (see VERPs) variables empty, 403 environment EXIMON_ prefix, 504 for pipe commands, 226 pipe transport and, 195 expansion, 536 in expansion strings, 538-547 HOME, 196 9 October 2001 09:13 Index local transports and, 196 set for TLS connection, 370 substitution, 394 user, 249 values of checking, 174 printing, 256 verification callback, 315 verify option, 117 verifying addresses (see addresses, verifying) verify_only option, 104, 117, 316 lookuphost router and, 154 verify_recipient option, 117 -bv/-bvs options and, 475 verify_sender option, -bv/-bvs options and, 475 VERPs (variable envelope return paths), 177 max_rcpt option and, 185 $version_number variable, 547 vertical bar (|) (see | (vertical bar)) virtual domains, 74-78 viruses (see security, viruses) VISUAL environment variable, 472 VRFY command (SMTP), 374 W w flag (rewriting rules), 349 wait- database, 269, 513 /warn option, rbl_domains option, 311 warning messages alerting postmaster, 453 copies of, taking, 452 customizing, 455 delay, 453 handling, 451-454 replying to, 452 $warnmsg_delay variable, 456, 547 warnmsg_file option, 455 $warnmsg_recipients variable, 547 +warn_unknown/+allow_unknown settings, 429 with ident prefix, 431 web servers local_interfaces option and, 276 virtual, 273 web site, Exim, 517 white lists, 313 whitespace in string expansions, 393, 533 widen_domains option, 156, 158 Index wildcards exceptions to in lists, 421 in host lists, 428 X X field (message reception logging), 489 X Window system, 3 Exim monitor and, 503-511 server, 470 xinetd, 32 X-RBL-Warning: header, 311 Z zeros, termination, DBM lookups and, 381 zombie processes, 275 zones, 23 name servers and, 23 finding, 28 types of, 25 9 October 2001 09:13 611 9 October 2001 09:13 ,Colophon.10429 Page 1 Tuesday, October 9, 2001 9:25 AM About the Author Philip Hazel has a Ph.D. in applied mathematics, but has spent the last 30 years writing general-purpose software for the Computing Service at the University of Cambridge in England.

The Simple Mail Transfer Protocol (SMTP) is used to transfer messages between hosts. This is defined in RFC 821, with additional material in RFC 1123 and several other RFCs that describe extensions. The SMTP address syntax is more restrictive than that of RFC 822, and requires that components of domain names consist only of letters, digits, and hyphens. Since any message may need to be transported using SMTP if its destination is not on the originating host, the format of all addresses is normally restricted to what RFC 821 permits. All these RFCs are now very old, and revised versions are nearing completion at the time of writing (February, 2001). The revisions consolidate the material from the earlier RFCs, and incorporate current Internet practice.* RFC 822 Message Format A message consists of lines of text, and when it is in transit between hosts, each line is terminated by the character carriage retur n (ASCII code 13) immediately followed by linefeed (ASCII code 10), a sequence that is commonly written as CRLF.

 

Bootstrapping: Douglas Engelbart, Coevolution, and the Origins of Personal Computing (Writing Science) by Thierry Bardini

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Apple II, augmented reality, Bill Duvall, conceptual framework, Douglas Engelbart, Dynabook, experimental subject, Grace Hopper, hiring and firing, hypertext link, index card, information retrieval, invention of hypertext, Jaron Lanier, Jeff Rulifson, John von Neumann, knowledge worker, Menlo Park, Mother of all demos, new economy, Norbert Wiener, packet switching, QWERTY keyboard, Ralph Waldo Emerson, RAND corporation, RFC: Request For Comment, Silicon Valley, Steve Crocker, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, stochastic process, Ted Nelson, the medium is the message, theory of mind, Turing test, unbiased observer, Vannevar Bush, Whole Earth Catalog

In fact, Roberts organized the network implementation around three different teams with various contracts and links between them: the NWG itself; 6 Leonard Kleinrock and his team of graduate students (in- cluding Steve Crocker, Vint Cerf, and Jon Postel) at UCLA, which was to be- ARPANET, E-matl, and est 185 come the Network Measurement Center (NMC); and finally, Douglas Engel- bart and his staff, which was to become the Network Information Center (NIC). Early in the history of the NWG, Elmer Shapiro insisted that "the work of the group should be fully documented." Steve Crocker, one of the members of Kleinrock's team of graduate students, volunteered to write the first meeting note, which he labeled "Request For Comments" in order "to avoid sounding too declarative," according to Hafner and Lyon (1996, 144). The accumulated archive of Requests For Comments (RFCs) documents not just the NGW's work, but the role that Engelbart's crusade played in it-and in the develop- ment of what became the Internet and e-mail. 7 The early development of the ARPANET occurred at the same time that En- gelbart was starting to think about the diffusion of NLS, and, as we have seen, seemed to him to present the possibility of continuing the bootstrapping pro- cess outside the ARC lab, extending his crusade by building a community of users that would differ, to a certain extent, 8 from the reflexive users of the first phase: As we got our own NLS tools working, how were we going to learn more about It and Involve other people?

Norberg and O'Neill report that Roberts thought at first that "a committee cannot be expected to investigate and solve the more difficult, longer range problems, 25 8 Notes to Chapter 7 particularly when the best solution may requIre considerable efforts for some of the members'1 (1996, 169). Roberts contracted a twelve-month study of host-to-host protocols to the Raytheon Corporation in September 1969. But Norberg and O'Neill also WrIte that "Roberts changed his mind, however, and continued with the work- ing group despite the difficultIes." 7. Crocker detailed the use and style of these Requests For Comments (RFCs) in the third note, dIstributed two days later and entitled "Documentation Conven- tions": "The Network Working Group (NWG) IS concerned with the HOST soft- ware, the strategies for using the network, and Initial experiments with the network. Documentation of the NWG's effort is through notes such as this. Notes may be pro- duced at any site by anybody and included in this series. The content of a NWG note may be any thought, suggestion, etc. related to the HOST software or other aspect of the network.

See also Compatible TIme Sharing System; MULTiplexed In- formation and ComputIng Services (MULTICS) Prophet, 203 - 4, 208 Prosthesis, 28, 34, 53, 80, 102, 143, 21 9, 242-44 n2 4 Pterotype, 73, 75 Punch card, 4, I2, I02, 22I QWERTY, 62, 67, 70-80, 93, 98, I02, 112, 114, 163, 21 7, 245n6, 246- 47n8. See also under Interface: and key boards Radar, 5, 12, 16, 82, 86, 88f, 130 RAND, 6,14-15,3°,9°-95,99, 248nII,257nn4-5,258n7 Raskin, Jeffrey, 226 - 27 Raytheon Corporation, 25 8n6 RD, 192 READMAIL, 192 Rech, Paul, 198 RelativIty, 47-52 Remington, 74-79, 235 n2 Requests for Comments (RFCs), 185- 9 6 passim, 258nn7,9, 259nI3 RIder, Ronald, 173 Roberts, Larry, 146, 183-84, 192, 208, 248nI4, 255n3, 257nn5-6, 25 8nn 7,9 Rosenberg, Paul Nathan (Werner Er- hard), 20 I. See also est Rosenbluth, Arturo, 25 Ross, Douglas, 86-87,128, 247n2 Rovner, Paul, 258n7 Rowell, H. V., 77 Royal typewnter, 162-63 Rubinoff, Morris, 16 Rulifson,Jeffrey, 121-22, 141,157, 161, 166, 187-93 passIm, 252n4, 254nI9,257nI5,258n7 Russell, Bertrand, 230 SAGE system, 29, 86, 247n4 Sapir, Edward, 240n3 Sapir- Whorf hypothesis, 3 6 - 37 Scaling effect, 119, 146, 223 Scantelburry, Roger, 184 Schneiderman, Benjamin, 225.

 

pages: 629 words: 142,393

The Future of the Internet: And How to Stop It by Jonathan Zittrain

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

A Declaration of the Independence of Cyberspace, Amazon Mechanical Turk, Andy Kessler, barriers to entry, book scanning, Brewster Kahle, Burning Man, c2.com, call centre, Cass Sunstein, citizen journalism, Clayton Christensen, clean water, corporate governance, Daniel Kahneman / Amos Tversky, distributed generation, en.wikipedia.org, Firefox, game design, Hacker Ethic, Howard Rheingold, Hush-A-Phone, illegal immigration, index card, informal economy, Internet Archive, jimmy wales, license plate recognition, loose coupling, mail merge, national security letter, packet switching, Post-materialism, post-materialism, pre–internet, price discrimination, profit maximization, Ralph Nader, RFC: Request For Comment, RFID, Richard Stallman, Richard Thaler, risk tolerance, Robert X Cringely, SETI@home, Silicon Valley, Skype, slashdot, software patent, Steve Ballmer, Steve Jobs, Ted Nelson, Telecommunications Act of 1996, The Nature of the Firm, The Wisdom of Crowds, web application, wikimedia commons

See David Sarno, Wikipedia Wars Erupt, L.A. TIMES, Sept. 30, 2007, available athttp://www.latimes.com/entertainment/news/newmedia/la-ca-webscout30sep30,1,6497628.story 63. See A. Michael Froomkin, Habermas@Discourse.net : Toward a Critical Theory of Cyberspace, 116 HARV. L. REV. 749 (2003). 64. Jon Postel was the RFC editor for twenty-eight years, choosing which drafts of requests for comment to publish as IETF RFCs. RFC Editor et al., RFC 2555; 30 Years of RFCs (Apr. 7, 1999), http://www.ietf.org/rfc/rfc2555.txt. He was also the Internet Assigned Numbers Authority, a name given to the functions he performed in allocating blocks of IP addresses. See Jonathan Zittrain, ICANN: Between the Public and the Private, 14 BERKELEY TECH. L.J. 1071 (1999); Todd Wallack & Ellen Messmer, Industry Asks: Who Is Jon Postel?

in 1998 for $49 million.23 He finished his degree and is now a tenured professor at MIT24 As a postmortem to the Morris worm incident, the Internet Engineering Task Force, the far-flung, unincorporated group of engineers who work on Internet standards and who have defined its protocols through a series of formal “request for comments” documents, or RFCs, published informational RFC 1135, titled “The Helminthiasis of the Internet.”25 RFC 1135 was titled and written with whimsy, echoing reminiscences of the worm as a fun challenge. The RFC celebrated that the original “old boy” network of “UNIX system wizards” was still alive and well despite the growth of the Internet: teams at university research centers put their heads together—on conference calls as well as over the Internet—to solve the problem.26 After describing the technical details of the worm, the document articulated the need to instill and enforce ethical standards as new people (mostly young computer scientists like Morris) signed on to the Internet.27 These reactions to the Morris worm may appear laughably inadequate, an unwarranted triumph of the principles of procrastination and trust described earlier in this book.

Without them we too easily neglect the prospect that we could code new tools and protocols to facilitate social solutions—the way that the robots.txt of Chapter Nine has so far headed off what otherwise would have been yet another cyberlaw issue. To be sure, from the earliest days of the Internet the people who designed its protocols acceded to some formality and diplomacy. Recall that they published “RFCs,” requests for comments designed to write up their ideas, creating institutional structure and memory as the project became bigger than just a few researchers in a room. The author of the first one—RFC 1—recalls: “We parceled out the work and wrote the initial batch of memos. In addition to participating in the technical design, I took on the administrative function of setting up a simple scheme for numbering and distributing the notes. Mindful that our group was informal, junior and unchartered, I wanted to emphasize these notes were the beginning of a dialog and not an assertion of control.”16 Informal, junior, and unchartered, yet collaborative and at least partially structured: this includes people who are eager to take on a parcel of work and build.

 

Practical Packet Analysis: Using Wireshark to Solve Real-World Network Problems by Chris Sanders

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Debian, pirate software, RFC: Request For Comment

Skipping it would be like watching part two of a movie without seeing part one—the following chapters just won't make sense. Note I won't go into great detail about the design of each individual protocol; instead, I have provided the associated RFC number for each. An RFC, or request for comments, is the official document that defines the implementation standards for protocols in the TCP/IP stack. You can search for RFC documentation at the RFC Editor home page, http://www.rfc-editor.org. Address Resolution Protocol arp.pcap We'll start with Address Resolution Protocol (ARP) because it is one of the simpler protocols, requiring only a few packets to complete its entire operation. ARP (RFC 826) is used to translate Layer 3 (IP) addresses into Layer 2 (MAC) addresses, thus allowing devices (such as switches and routers) to determine where other devices are located on each port.

These Transaction IDs allow the DHCP server to identify and separate each client transaction. This is important because it allows you to keep each transaction separate in the analysis process. Though we've covered only four, you may find up to eight different types of DHCP packets in a capture file. (For more on these and other DHCP functions, read the DHCP RFC.) TCP/IP and HTTP http.pcap TCP/IP is the basis for almost all of the communication we will discuss in this book. Because it is the most widely used network protocol, we will focus on it. Hypertext Transfer Protocol (HTTP, RFC 2616) is the server/client-based protocol used to transfer web pages across a network. A simple HTTP transaction is a good example of TCP/IP communication. Every time you search the Internet with Google, check the weather, or even check your fantasy sports teams, you are transferring data via TCP/IP using HTTP.

TCP/IP The TCP/IP protocol is really a stack of protocols, consisting of several different protocols on both Layers 3 and 4 of the OSI model. These protocols include TCP, IP, ARP, DHCP, ICMP, and many others. Transmission Control Protocol (TCP, RFC 793) is a Layer 4 protocol that is commonly used because it provides an efficient method of transparent, reliable, and bi-directional communication between devices. Bi-directional communication means that data can be transmitted and received simultaneously from a single host. All of the various benefits and features of TCP are made possible through different types of TCP packets and flags. In the next several paragraphs we will look at these different types of packets and what they do. Internet Protocol (IP, RFC 791) is the Layer 3 protocol that provides the addressing system that allows communication on a network. IP is a connectionless protocol, which means that it requires the functionality of TCP bundled with it to ensure the reliability of transmitted data.

 

pages: 996 words: 180,520

Nagios: System and Network Monitoring, 2nd Edition by Wolfgang Barth

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

business process, Debian, en.wikipedia.org, Firefox, RFC: Request For Comment, web application

An understanding of the SNMP information structure, the so-called Management Information Base (MIB), is critical if you want to use SNMP with Nagios successfully. For this reason this section will focus on this. The protocol itself is only mentioned briefly to illustrate the differences between different protocol versions. If you want to get involved more deeply with SNMP, we refer you to the numerous Request for Comments (RFCs) describing SNMP. The best place to start would be in RFC 3410, "Introduction and Applicability Statements for Internet Standard Management Framework", and RFC 3411: "An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks." Apart from an introduction and numerous crosslinks, you will also find references there to the original documents of the older versions, today referred to as SNMPv1 and SNMPv2. 11.1.1 The Management Information Base The SNMP information structure consists of a hierarchical namespace construction of numbers.

The successor to this has already been in practical use for some time. It uses a generic interface called Generic Security Services Application Program Interface (GSSAPI). For HTTP authentication, as well as GSSAPI, a mechanism called SPNEGO (Simple and Protected Negotiate) is used, through which concrete authentication is negotiated. Microsoft describes the HTTP authentication in an informal Request for Comment, RFC 4559.[319] This also discusses the NTLM procedure. The SPNEGO, used for the newer variation, is described in RFC 4178.[320] The SPNEGO procedure is somewhat shorter than the NTLM authentication and is closer to the HTTP authentication methods Basic and Digest. First, the client requests a protected page with the command GET. The server replies with the status code 401 (Unauthorized) and includes the possible authentication procedures: HTTP/1.1 401 Authorization Required ...

In the following example the login fails: nagios@linux:nagios/libexec$ ./check_sap_cons 00 P10 <== RfcLastError FUNCTION: SXMI_LOGON RFC operation/code SYSTEM_FAILURE ERROR/EXCEPTION key : status : message : User account not in validity date internal: <== RfcClose The reason is given in the message: field: the user currently does not have a valid account. If the following message were to be found there message : User 910WOB has no RFC authorization for function group SXMI. this would mean that the user 910W0B does not have the necessary permission in the authorization object S_RFC. In order to grant it, that user should be assigned to the function group SXMI. The plugins record such RFC error messages in the file dev_rfc in the current working directory. If Nagios runs the plugin, then it will generate this file in the Nagios home directory (/usr/local/nagios, if you have followed the installation description in this book).

 

pages: 1,025 words: 150,187

ZeroMQ by Pieter Hintjens

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

anti-pattern, carbon footprint, cloud computing, Debian, distributed revision control, domain-specific language, factory automation, fault tolerance, fear of failure, finite state, Internet of things, iterative process, premature optimization, profit motive, pull request, revision control, RFC: Request For Comment, Richard Stallman, Skype, smart transportation, software patent, Steve Jobs, Valgrind, WebSocket

The target of your grammar is other people: engineers, not compilers. My favorite grammar is ABNF, as defined by RFC 2234, because it is probably the simplest and most widely used formal language for defining bidirectional communications protocols. Most IETF (Internet Engineering Task Force) specifications use ABNF, which is good company to be in. I’ll give a 30-second crash course in writing ABNF here. It may remind you of regular expressions. You write the grammar as rules. Each rule takes the form “name = elements”. An element can be another rule (which you define below as another rule), or a pre-defined “terminal” (like CRLF, OCTET), or a number. The RFC lists all the terminals. To define alternative elements, use “element / element”. To define repetition, use “*” (read the RFC, because it’s not intuitive). To group elements, use parentheses.

We will create these queues as workers appear (we could delete them as workers disappear, but forget that for now because it gets complex). Additionally, we will keep a queue of workers per service. The code for the broker is shown in Example 4-32. Example 4-32. Majordomo broker (mdbroker.c) // // Majordomo Protocol broker // A minimal C implementation of the Majordomo Protocol as defined in // http://rfc.zeromq.org/spec:7 and http://rfc.zeromq.org/spec:8. // #include "czmq.h" #include "mdp.h" // We'd normally pull these from config data #define HEARTBEAT_LIVENESS 3 // 3-5 is reasonable #define HEARTBEAT_INTERVAL 2500 // msec #define HEARTBEAT_EXPIRY HEARTBEAT_INTERVAL * HEARTBEAT_LIVENESS The broker class (Example 4-33) defines a single broker instance. Example 4-33. Majordomo broker (mdbroker.c): broker class structure typedef struct { zctx_t *ctx; // Our context void *socket; // Socket for clients & workers int verbose; // Print activity to stdout char *endpoint; // Broker binds to this endpoint zhash_t *services; // Hash of known services zhash_t *workers; // Hash of known workers zlist_t *waiting; // List of waiting workers uint64_t heartbeat_at; // When to send HEARTBEAT } broker_t; static broker_t * s_broker_new (int verbose); static void s_broker_destroy (broker_t **self_p); static void s_broker_bind (broker_t *self, char *endpoint); static void s_broker_worker_msg (broker_t *self, zframe_t *sender, zmsg_t *msg); static void s_broker_client_msg (broker_t *self, zframe_t *sender, zmsg_t *msg); static void s_broker_purge (broker_t *self); The service class (Example 4-34) defines a single service instance.

You may get the feeling I’m a fan of Git and GitHub. This would be accurate: these two tools have made such a positive impact on our work over the last years, especially when it comes to building community. Language The keywords “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119. By starting with the RFC 2119 language, the C4 text makes very clear its intention to act as a protocol rather than a randomly written set of recommendations. A protocol is a contract between parties that defines the rights and obligations of each party. These can be peers in a network, or they can be strangers working in the same project. I think C4 is the first time anyone has attempted to codify a community’s rulebook as a formal and reusable protocol spec.

 

Common Knowledge?: An Ethnography of Wikipedia by Dariusz Jemielniak

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Andrew Keen, barriers to entry, citation needed, collaborative consumption, collaborative editing, conceptual framework, continuous integration, crowdsourcing, Debian, deskilling, digital Maoism, en.wikipedia.org, Filter Bubble, Google Glasses, Hacker Ethic, hive mind, Internet Archive, invisible hand, Jaron Lanier, jimmy wales, job satisfaction, Julian Assange, knowledge economy, knowledge worker, Menlo Park, moral hazard, online collectivism, pirate software, RFC: Request For Comment, Richard Stallman, Silicon Valley, Skype, slashdot, social software, Stewart Brand, The Nature of the Firm, The Wisdom of Crowds, transaction costs, WikiLeaks, wikimedia commons

Revert  An edit that reverses edits made by someone else, thus restoring the prior version. See also [[Help:Reverting]]. Revert war  See Edit war. RfA, RFA  Can mean [[WP:Requests_for_adminship]] or (rarely) [[WP:Requests_for _arbitration]], depending on the context. The latter is frequently abbreviated RfAr to avoid the ambiguity. RfAr, RFAR  [[WP:Requests_for_arbitration]]. RfB, RFB  [[WP:Requests_for_bureaucratship]]. RfC, RFC  [[WP:Requests_for_comment]], part of the dispute resolution process. A request for comment is an informal process for soliciting input from Wikipedians about a question of article content or a user’s conduct. RfD, RFD  The [[WP:Redirects_for_deletion]] page. RfM, RFM  Request for mediation, part of the dispute resolution process. See also [[WP:Requests_for_mediation]]. Rm  Remove. Used in edit summaries to indicate that a particular piece of text or formatting has been deleted.

They analyze its consequences and see the unwelcome outcome of how the system works: The problem is that the casual and quiet type of editors are those most likely to completely quit or leave one of the all too common wiki fights because they’re here just to have fun. Whereas those who are in cabals or pushing their view will stick it out because they have an agenda—this type of editor has way too much influence on wiki and is a major reason why wiki is broken. I recently saw a comment about an RFC [request for comment; an informal procedure in which editors discuss solutions] on the RFA process, but that RFC misses the point. It’s not just RFA that’s broken, the whole system is broken and needs a major overhaul. PumpkinSky 10:04, 29 September 2011 (UTC) ([[Wikipedia_talk:RfA_reform_(continued)/Radical_alternatives]]) Ignoring the reference to cabals for the moment in this otherwise astute analysis of the system, the main point remains salient: some good and mature editors do not like the confrontational style of RfAs and may decide not to apply for adminship just because of the voting process or even leave Wikipedia because of distaste for the fights there and in some other discussions.

After regular methods failed and after the longest-running arbitration decision on the English Wikipedia (six months), on May 28, 2009, IP addresses from the Church of Scientology were banned from editing (Singel, 2009), and many of the users were banned individually (see [[WP:Requests_for_arbitration/ Scientology]]). Wikipedia has well-developed procedures for dispute resolution (see [[WP:Dispute_resolution]]). Most conflicts can be resolved through the normal protocol: parties focus on the content, remain calm, and try to reason with each other. Small-scale arguments on the English Wikipedia can also be resolved through an informal request for comment (RFC), in which fellow editors express their opinion and help find a satisfactory solution. RFCs date back to the 1970s, when they were used by network architects to resolve issues (Kelty, 2008; Brunton, 2012). They are not much used on the Polish Wikipedia, since they entice trolls and libelous editors. Disputes on the English Wikipedia are announced on the dispute resolution notice board ([[WP:DRN]]). Formal mediation is meant to be the last resort of content disputes, while arbitration is used mainly for disputes over conduct, not content.

 

pages: 134 words: 29,488

Python Requests Essentials by Rakesh Vidya Chandra, Bala Subrahmanyam Varanasi

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

create, read, update, delete, en.wikipedia.org, MVC pattern, natural language processing, RFC: Request For Comment, RFID, supply-chain management, web application

[ 12 ] Chapter 1 Viewing response headers The server response header helps us to know about the software used by the origin server to handle the request. We can access the server response headers using r.headers: >>> r = requests.get('http://google.com') >>> r.headers CaseInsensitiveDict({'alternate-protocol': '80:quic', 'x-xss-protection': '1; mode=block', 'transfer-encoding': 'chunked', 'set-cookie': 'PREF=ID=3 c5de2786273fce1:FF=0:TM=1410378309:LM=1410378309:S=DirRRD4dRAxp2Q_3; ….. Requests for Comments (RFC) 7230 says that HTTP header names are not case-sensitive. This gives us a capability to access the headers with both capital and lower-case letters. >>> r.headers['Content-Type'] 'text/html; charset=ISO-8859-1' >>> r.headers.get('content-type') 'text/html; charset=ISO-8859-1' Accessing cookies with Requests We can access cookies from the response, if they exist: >>> url = 'http://somewebsite/some/cookie/setting/url' >>> r = requests.get(url) >>> r.cookies['some_cookie_name'] 'some_cookie_value' We can send our own cookies, as shown in the following example: >>> url = 'http://httpbin.org/cookies' >>> cookies = dict(cookies_are='working') >>> r = requests.get(url, cookies=cookies) >>> r.text '{"cookies": {"cookies_are": "working"}}' [ 13 ] Interacting with the Web Using Requests Tracking redirection of the request using request history Sometimes the URL that we are accessing may have been moved or it might get redirected to some other location.

[ 106 ] Index A Access tokens, Facebook API App Access Token 57 Client Token 57 obtaining 57 Page Access Token 57 User Access Token 56 Application Programming Interface (API) 1, 50 B base template 101 basic authentication about 29 advantages 29, 30 flow 30 using, with Requests 30 BeautifulSoup about 69 document parsers 69 installing 69 objects 69 tree, modifying 76 tree, navigating 73 tree, navigating back and forth 75 tree, navigating down 73 tree, navigating sideways 74, 75 tree, navigating up 75 tree, searching 73 web scraping tasks 71, 72 Body Content Workflow about 22 keep-alive facility 23 uploads, streaming 23 built-in response status codes viewing 11 C Chrome DevTools 68 Chunked Responses 46 chunk encoded Requests sending, with generator 24 cookies accessing, with Requests 13 custom authentication 38 custom headers about 8 URL 9 D data types 66 database instance, survey application creating 94 database models, querying 96, 97 model, defining 94, 95 tables, creating 96 Digest authentication about 31 using, with Requests 32 document parsers 69 E errors and exceptions ConnectionError 16 HTTPError 16 [ 107 ] Timeout 16 TooManyRedirects 16 URL 16 event hooks used, for obtaining request method arguments 24, 25 extensions 87 F Facebook API about 56 Access tokens 56 albums, retrieving 59 feed, retrieving 59 friends list, retrieving 58 key, obtaining 56, 57 user profile, getting 57, 58 FireBug Add-on 68 Flask about 87 application, creating 88, 89 features 88 installing 89, 90 required packages, installing with pip 90 Flask micro-framework 101 Flask-SQLAlchemy about 90, 93 used, for writing models 93 form-encoded data sending 9 G generator used, for sending chunk encoded Requests 24 Graduate Record Examinations (GRE) word lists 77 grant types, OAuth 2.0 about 38 Authorization code grant 38 Client credentials grant 38 Implicit grant 38 Resource owner password credentials grant 38 H HTTPAdapter 27 HTTP libraries 68 HTTP request about 1, 2 methods 2 Request Header fields 2, 3 Request URI 2 HTTPretty about 42 headers, setting 44 HTTP requests, mocking 45 installing 42 working with 42, 43 HTTP verbs DELETE method 26 GET method 26 HEAD method 26 OPTIONS method 27 PATCH method 27 POST method 26 PUT method 26 Hypertext Transfer Protocol (HTTP) 1 J Jinja2 88 K Kerberos authentication about 32-35 Authentication Server 32 Host Machine 32 Ticket Granting Server 32 ticket granting ticket (TGT) 33, 34 using, with Requests 35 L link headers used, for describing APIs 27 M micro framework 87 [ 108 ] model about 93 defining 93 Model-View-Controller (MVC) 91 multipart encoded files posting 10 O OAuth 2.0 about 37 grant types 38 OAuth authentication about 35 OAuth 1.0 36, 37 OAuth 1.0, using with Requests 37 OAuth 2.0 37, 38 Object Relational Mapper (ORM) 90 objects, BeautifulSoup BeautifulSoup object 70 comments 70 NavigableString 70 tags 69 P prepared Requests using 20, 21 productive usage checking, with timeout parameter 15 Python modules httplib2 3 Requests 3 urllib2 3 Python Package Index (PyPi) 42 R reddit API about 60 account 60 account information, modifying 61, 62 fullnames 60 listings 60 modhashes 60 new account, registering 60 parts 60 simple search, performing 62 subreddits, searching in 63 REpresentational State Transfer (REST) 50 Requests basic authentication, using with 30 creating 5, 6 Digest authentication, using with 32 essence 5 Kerberos authentication, using with 35 OAuth 1.0 authentication, using with 37 parameters, persisting with Session objects 18 redirection tracking, with request history 14 used, for accessing cookies 13 used, for verifying SSL certificate 21 versus urllib2 3-5 Requests for Comments (RFC) 13 Requests object, parameters auth 19 cookies 19 data 19 files 19 headers 19 hooks 19 Method 19 params 19 URL 19 response content about 6-8 custom headers 8 form-encoded data, sending 9 multipart encoded files, posting 10 types 8 response headers viewing 13 responses dynamic responses, through callbacks 47 rotating responses 45, 46 streaming responses 46, 47 structure 19, 20 RESTful API 50 retweet 54 [ 109 ] S scraping 67 semistructured data 67 Session objects used, for persisting parameters across Requests 18 SSL certificate verifying, with Requests 21 streaming API encoding 25 HTTP verbs 26, 27 iterating 25 Streaming Requests URL 25 structured data 66 survey application building 92 creating 90 database instance, creating 94 executing 104 file structure 91 models, defining 93 models, writing with Flask-SQLAlchemy 93 unit tests, writing 105, 106 URLs, designing 93 T tasks, web scraping semistructured document, modifying 68 semistructured document, navigating 68 semistructured document, searching 68 template about 101 base template 101 details of survey template, displaying 103 list of questions, displaying 102 new survey template, creating 102 vote template, casting 103 template inheritance 101 timeout parameter used, for checking productive usage 15 Transport Adapter 27 Twitter API about 50 authentication request, creating 52 favorite tweet, getting 52 followers list, accessing 54 key, obtaining 51 retweet 54 simple search, performing 53 trends, accessing 55 URL 51 user status, updating 55 types, of data semistructured data 67 structured data 66 unstructured data 66 U unit tests writing, to survey application 105, 106 unstructured data 66 urllib2 examples, URL 4 versus Requests 3-5 V view about 97 new survey, creating 98 new survey question, creating 98 new vote form, creating 100 survey, deleting 100 survey, displaying 99 survey questions, listing 98 survey, updating 99 vote, casting 100 virtual environment wrapper 89 W web scraping about 65-67 dos and don'ts 67 process 68 [ 110 ] requisites 68 tasks 68 web scraping bot about 77 building 76 data, discovering to scrape 80, 81 desired data, drawing 81-85 dos and don'ts 78 HTTP client, using 79 URL/URLs, identifying 78 web scraping tools about 68 utilizing 81 Web Server Gateway Interface (WSGI) protocol 88 Where on Earth ID (woeid) 55 [ 111 ] Thank you for buying Python Requests Essentials About Packt Publishing Packt, pronounced 'packed', published its first book, Mastering phpMyAdmin for Effective MySQL Management, in April 2004, and subsequently continued to specialize in publishing highly focused books on specific technologies and solutions.

Consider the following example taken from http://docs.python-requests.org/ en/latest/user/advanced/#streaming-requests: >>> import json >>> import requests >>> r = requests.get('http://httpbin.org/stream/4', stream=True) >>> for line in r.iter_lines(): ... ... if line: print(json.loads(line) ) In the preceding example, the response contains a stream of data. With the help of iter_lines(), we tried to print the data by iterating through every line. Encodings As specified in the HTTP protocol (RFC 7230), applications can request the server to return the HTTP responses in an encoded format. The process of encoding turns the response content into an understandable format which makes it easy to access it. When the HTTP header fails to return the type of encoding, Requests will try to assume the encoding with the help of chardet. [ 25 ] Digging Deep into Requests If we access the response headers of a request, it does contain the keys of content-type.

 

pages: 678 words: 159,840

The Debian Administrator's Handbook, Debian Wheezy From Discovery to Mastery by Raphaal Hertzog, Roland Mas

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

bash_history, Debian, distributed generation, en.wikipedia.org, failed state, Firefox, GnuPG, Google Chrome, Jono Bacon, NP-complete, QWERTY keyboard, RFC: Request For Comment, Richard Stallman, Skype, SpamAssassin, Valgrind, web application, x509 certificate, zero day, Zimmermann PGP

These include: * apt-get for retrieval of packages and information about them from authenticated sources and for installation, upgrade and removal of packages together with their dependencies * apt-cache for querying available information about installed as well as installable packages * apt-cdrom to use removable media as a source for packages * apt-config as an interface to the configuration settings * apt-key as an interface to manage authentication keys Description-md5: 9fb97a88cb7383934ef963352b53b4a7 Tag: admin::package-management, hardware::storage, hardware::storage:cd, implemented-in::c++, interface::commandline, network::client, protocol::ftp, protocol::http, protocol::ipv6, role::program, suite::debian, use::downloading, use::searching, works-with::software:package Section: admin Priority: important Filename: pool/main/a/apt/apt_0.9.7.9_amd64.deb Size: 1253524 MD5sum: 00a128b2eb2b08f4ecee7fe0d7e3c1c4 SHA1: 6a271487ceee6f6d7bc4c47a8a16f49c26e4ca04 SHA256: 3bba3b15fb5ace96df052935d7069e0d21ff1f5b496510ec9d2dc939eefad104 BACK TO BASICS RFC — Internet standards RFC is the abbreviation of “Request For Comments”. An RFC is generally a technical document that describes what will become an Internet standard. Before becoming standardized and frozen, these standards are submitted for public review (hence their name). The IETF (Internet Engineering Task Force) decides on the evolution of the status of these documents (proposed standard, draft standard, or standard). RFC 2026 defines the process for standardization of Internet protocols. → http://www.faqs.org/rfcs/rfc2026.html 5.2.1.1. Dependencies: the Depends Field The dependencies are defined in the Depends field in the package header.

It allows testing network connectivity with the ping command (which sends an ICMP echo request message, which the recipient is meant to answer with an ICMP echo reply message). It signals a firewall rejecting a packet, indicates an overflow in a receive buffer, proposes a better route for the next packets in the connection, and so on. This protocol is defined by several RFC documents; the initial RFC777 and RFC792 were soon completed and extended. → http://www.faqs.org/rfcs/rfc777.html → http://www.faqs.org/rfcs/rfc792.html For reference, a receive buffer is a small memory zone storing data between the time it arrives from the network and the time the kernel handles it. If this zone is full, new data cannot be received, and ICMP signals the problem, so that the emitter can slow down its transfer rate (which should ideally reach an equilibrium after some time).

Each connection coming from an internal machine then appears to the outside world as a connection coming from one of these reserved ports. CULTURE Private address range RFC 1918 defines three ranges of IPv4 addresses not meant to be routed on the Internet but only used in local networks. The first one, 10.0.0.0/8 (see sidebar BACK TO BASICS Essential network concepts (Ethernet, IP address, subnet, broadcast).), is a class-A range (with 224 IP addresses). The second one, 172.16.0.0/12, gathers 16 class-B ranges (172.16.0.0/16 to 172.31.0.0/16), each containing 216 IP addresses. Finally, 192.168.0.0/16 is a class-B range (grouping 256 class-C ranges, 192.168.0.0/24 to 192.168.255.0/24, with 256 IP addresses each). → http://www.faqs.org/rfcs/rfc1918.html The gateway can also perform two kinds of network address translation (or NAT for short). The first kind, Destination NAT (DNAT) is a technique to alter the destination IP address (and/or the TCP or UDP port) for a (generally) incoming connection.

 

pages: 349 words: 114,038

Culture & Empire: Digital Revolution by Pieter Hintjens

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

4chan, airport security, anti-communist, anti-pattern, barriers to entry, Bill Duvall, bitcoin, blockchain, business climate, business intelligence, business process, Chelsea Manning, clean water, congestion charging, Corn Laws, correlation does not imply causation, cryptocurrency, Debian, Edward Snowden, failed state, financial independence, Firefox, full text search, German hyperinflation, global village, GnuPG, Google Chrome, greed is good, Hernando de Soto, hiring and firing, informal economy, invisible hand, James Watt: steam engine, Jeff Rulifson, Julian Assange, Kickstarter, M-Pesa, mutually assured destruction, Naomi Klein, national security letter, new economy, New Urbanism, Occupy movement, offshore financial centre, packet switching, patent troll, peak oil, pre–internet, private military company, race to the bottom, rent-seeking, reserve currency, RFC: Request For Comment, Richard Feynman, Richard Feynman, Richard Stallman, Satoshi Nakamoto, security theater, Skype, slashdot, software patent, spectrum auction, Steve Crocker, Steve Jobs, Steven Pinker, Stuxnet, The Wealth of Nations by Adam Smith, The Wisdom of Crowds, trade route, transaction costs, union organizing, web application, WikiLeaks, Y2K, zero day, Zipf's Law

The event was the quiet and rarely celebrated publication of a "request for comments" on something called the "HOST software." The document, simply called "RFC001", says: During the summer of 1968, representatives from the initial four sites met several times to discuss the HOST software and initial experiments on the network. There emerged from these meetings a working group of three, Steve Carr from Utah, Jeff Rulifson from SRI, and Steve Crocker of UCLA, who met during the fall and winter. The most recent meeting was in the last week of March in Utah. Also present was Bill Duvall of SRI who has recently started working with Jeff Rulifson. Crocker, Carr, and Rulifson are not household names. Steve Crocker and his team invented the Requests for Comments, or RFC series. These documents became the laws of the Internet, specifying every standard in a clear form that was freely usable by all.

basis" than "We're a cartel of crooks, and we'd like to offer you a consultancy gig." The most potent and profitable standards are those that are not captured by any business. The Web is built on Requests for Comments (RFCs) that are open to all. Open standards create new markets. Closed standards extract rents from existing markets. Many firms forget or ignore this lesson, and aim to define standards as tools to control markets rather than create them. Standards for mobile phones, streaming music, video encoding, and so on, appear successful, yet they are all dead ends and survive only thanks to the patent system. The RFCs, a collection of thousands of open standards, are an immense asset. They are also brutally effective. In the decade before 2010, Microsoft especially spent a lot of money trying to hijack existing standards with patents, get its patents into new standards, or force its patented standards into government use.

These documents became the laws of the Internet, specifying every standard in a clear form that was freely usable by all. These were spectacularly successful standards by any measure. They were implemented in hundreds of thousands of products and have survived for forty years with no sign of decay. The RFC system did not only define standards for protocols, it also defined rules for the legislative process itself. Today, despite this success, it is becoming harder and harder to make new protocols and standards. There are too many billions that depend on controlling, taxing, and corrupting standards. Patents are a major threat. The calculation is simple: imagine if email had been patented -- how much money would the patent holder (let's call him the "inventor" or "job creator" for effect) have earned? If email had been patented -- which happily it was not -- then we would have suffered two decades of stagnation and suspension of cost gravity.

 

pages: 394 words: 108,215

What the Dormouse Said: How the Sixties Counterculture Shaped the Personal Computer Industry by John Markoff

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Any sufficiently advanced technology is indistinguishable from magic, Apple II, back-to-the-land, Bill Duvall, Bill Gates: Altair 8800, Buckminster Fuller, California gold rush, card file, computer age, computer vision, conceptual framework, cuban missile crisis, Douglas Engelbart, Dynabook, El Camino Real, general-purpose programming language, Golden Gate Park, Hacker Ethic, hypertext link, informal economy, information retrieval, invention of the printing press, Jeff Rulifson, John Nash: game theory, John von Neumann, Kevin Kelly, knowledge worker, Mahatma Gandhi, Menlo Park, Mother of all demos, Norbert Wiener, packet switching, Paul Terrell, popular electronics, QWERTY keyboard, RAND corporation, RFC: Request For Comment, Richard Stallman, Robert X Cringely, Sand Hill Road, Silicon Valley, Silicon Valley startup, South of Market, San Francisco, speech recognition, Steve Crocker, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, Ted Nelson, Thorstein Veblen, Turing test, union organizing, Vannevar Bush, Whole Earth Catalog, William Shockley: the traitorous eight

Meetings had begun the previous summer between representatives from the four initial sites, and they continued into the fall. After the March 1969 meeting, Steve Crocker, a member of the UCLA group, had drawn up a preliminary set of notes he referred to as “Request for Comments 1.” Such RFCs would become a rich Internet tradition and a simple and efficient way to produce technical standards for the network. The first RFC was based on the group’s discussions and outlined a set of understandings about how the host computers at the four sites would communicate through intermediate data processors known as IMPs, which had been developed for the new network at Bolt, Beranek and Newman in Cambridge. There was something even more revealing about RFC 1, which was essentially the founding document of what was to become the modern Internet. At the end of the paper, Crocker outlined two “experiments.” The first called for SRI to modify its NLS software so that it could be operated remotely by teletypes.

draft resistance in Free University in, see Free University Palo Alto Research Center (Xerox PARC) Alto computer developed at Augment and hobbyist movement and Kay at meetings at POLOS project at Shoch at team assembled at Tesler at Papert, Seymour Paradam Conference Parry program Paxton, Bill peace movement, see antiwar activism Pendery, Don Peninsula School Pentagon Advanced Research Projects Agency of, see ARPA Engelbart and Ingalls at Vallee and see also military Pentium People’s Computer Center People’s Computer Company (PCC) breakup of Perry Lane community Phillips, Michael phone phreaks Pitts, Bill PODAC Point Foundation politics SAIL and see also counterculture POLOS Pong Poniatoff, Alexander M. Poole, Dave Porat, Marc Portola Institute Positively Fourth Street (Hajdu) Princeton University Institute for Advanced Study Project Genie Project One proof-of-correctness problem psychodrama PUB Pynchon, Thomas Ram Dass RAND Corporation Rathbun, Emilia Rathbun, Harry Raymond, Dick Reddy, Raj Request for Comments (RFC) Reson, Sherry Resource One Reynolds, Walt Roberts, Ed Roberts, Larry robots Rogers, William P. Rolling Stone Rosen, Charlie Rosenbaum, Ron Roshi, Richard Baker Rossman, Michael Roszak, Theodore Rubin, Jeff Rulifson, Jeff Duvall and Runoff Russell, Stephen “Slug” Sack, Richard Sackman, Bob Sandperl, Ira San Francisco Chronicle San Francisco Midpeninsula Free University in, see Free University music scene in; see also Grateful Dead see also counterculture Sarnoff Laboratories Saunders, Wendell Savage, Charles scaling, see Moore’s Law Schaftel, Fanny Scientific Data Systems (SDS) search engines Seeger, Pete Selective Sequence Electronic Calculator (SSEC) semiconductors Sequoia Seminars Sharman, Henry B.

There it was, buried in the paper that was to launch a computer network that would stretch around the globe and tie together people in fundamentally new ways. Doug Engelbart’s NLS tool was intended to be the first “killer app.” The term would become popular a decade later. It referred to a software application that would drive a new wave of growth in the computing industry. But before that could happen, the low-level task of writing the software to permit remote log-ins and file transfers had to be written. Two days after Crocker’s RFC 1, Duvall wrote RFC 2. The document specified an “initial checkout” process to verify that the host computers at UCLA and SRI were actually talking to each other. At the time, Duvall didn’t realize he would also have to actually write the code that he described in the document. SRI had originally contracted the work out to Creative X, a small software-consulting company belonging to Alan Kay and another University of Utah graduate student, Steve Carr.

 

pages: 494 words: 142,285

The Future of Ideas: The Fate of the Commons in a Connected World by Lawrence Lessig

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

AltaVista, Andy Kessler, barriers to entry, business process, Cass Sunstein, computer age, dark matter, disintermediation, Erik Brynjolfsson, George Gilder, Hacker Ethic, Hedy Lamarr / George Antheil, Howard Rheingold, Hush-A-Phone, HyperCard, hypertext link, Innovator's Dilemma, invention of hypertext, inventory management, invisible hand, Jean Tirole, Jeff Bezos, Joseph Schumpeter, linked data, Menlo Park, Network effects, new economy, packet switching, price mechanism, profit maximization, RAND corporation, rent control, rent-seeking, RFC: Request For Comment, Richard Stallman, Richard Thaler, Ronald Coase, Search for Extraterrestrial Intelligence, SETI@home, Silicon Valley, smart grid, software patent, spectrum auction, Steve Crocker, Steven Levy, Stewart Brand, Ted Nelson, Telecommunications Act of 1996, The Chicago School, transaction costs

At various points in the history of the Net's development, there have been efforts at restating its principles. Something called “RFC 1958,” published in 1996, is perhaps the best formal effort. The Internet was built upon “re-quests for comments,” or RFCs. Researchers—essentially grad students—charged with the task of developing the protocols that would eventually build the Internet developed these protocols through these humble requests for comments. RFC 1 was written by Steve Crocker and outlined an understanding about the protocols for host (“IMP") software. Some RFCs specify particular Internet protocols; some wax philosophical. RFC 1958 is clearly in the latter camp—an “informational” document about the “Architectural Principles of the Internet.”35 According to RFC 1958, though “[m]any members of the Internet community would argue that there is no architecture,” this document reports that “the community” generally “believes” this about the Internet: “that the goal is connectivity, the tool is the Internet protocol and the intelligence is end-to-end rather than hidden in the network.”36 “The network's job is to transmit datagrams as efficiently and flexibly as possible.

I mean the term to be far more general—to refer to “both the Internet's technical protocols (e.g., TCP/IP) and its entrenched structures of governance and social patterns of usage that themselves are not easily changeable, at least not without coordinated action by many parties.” Lawrence Lessig and Paul Resnick, “Zoning Internet Speech,” Michigan Law Review 98 (1999): 395. 35 Network Working Group, “Request for Comments: 1958, Architectural Principles of the Internet,” Brian E. Carpenter, ed. (1996), available at http://www.ietf.org/rfc/ rfc1958.txt. 36 Ibid, §2.1. 37 Ibid. 38 Tim Berners-Lee, Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web by Its Inventor (San Francisco: HarperSanFrancisco, 1999), 99. 39 As background, see Peter Cukor and Lee McKnight, “Knowledge Networks, the Internet, and Development,” Fletcher Forum of World Affairs (Winter 2001): 43, 46; George Gilder, Telecosm: How Infinite Bandwidth Will Revolutionize Our World (New York: Free Press, 2000), 70-71. 40 Telephone interview with David Isenberg, February 14, 2001. 41 Or at least this is an ideal.

As Berners-Lee puts it, “There's a freedom about the Internet: as long as we accept the rules of sending packets around, we can send packets containing anything to anywhere.”43 New applications “can be brought to the Internet without the need for any changes to the underlying network.”44 The “architecture” of the network is designed to be “neutral with respect to applications and content.”45 By placing intelligence in the ends, the network has no intelligence to tell which functions or content are permitted or not. As RFC 1958 puts it, the job of the network is simply to “transmit datagrams.” As the NRC has recently concluded: Underlying the end-to-end argument is the idea that it is the system or application, not the network itself, that is in the best position to implement appropriate protection.46 In chapter 2, I introduced the idea of a commons. We can now see how the end-to-end principle renders the Internet an innovation commons, where innovators can develop and deploy new applications or content without the permission of anyone else.

 

pages: 523 words: 143,139

Algorithms to Live By: The Computer Science of Human Decisions by Brian Christian, Tom Griffiths

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

4chan, Ada Lovelace, Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Albert Einstein, algorithmic trading, anthropic principle, asset allocation, autonomous vehicles, Berlin Wall, Bill Duvall, bitcoin, Community Supported Agriculture, complexity theory, constrained optimization, cosmological principle, cryptocurrency, Danny Hillis, delayed gratification, dematerialisation, diversification, double helix, Elon Musk, fault tolerance, Fellow of the Royal Society, Firefox, first-price auction, Flash crash, Frederick Winslow Taylor, George Akerlof, global supply chain, Google Chrome, Henri Poincaré, information retrieval, Internet Archive, Jeff Bezos, John Nash: game theory, John von Neumann, knapsack problem, Lao Tzu, linear programming, martingale, Nash equilibrium, natural language processing, NP-complete, P = NP, packet switching, prediction markets, race to the bottom, RAND corporation, RFC: Request For Comment, Robert X Cringely, sealed-bid auction, second-price auction, self-driving car, Silicon Valley, Skype, sorting algorithm, spectrum auction, Steve Jobs, stochastic process, Thomas Malthus, traveling salesman, Turing machine, urban planning, Vickrey auction, Walter Mischel, Y Combinator

“no really good way to leave messages for people”: Ray Tomlinson, interviewed by Jesse Hicks, “Ray Tomlinson, the Inventor of Email: ‘I See Email Being Used, by and Large, Exactly the Way I Envisioned,’” Verge, May 2, 2012, http://www.theverge.com/2012/5/2/2991486/ray-tomlinson-email-inventor-interview-i-see-email-being-used. simply rejecting all incoming messages: One such approach was taken, for instance, by University of Sheffield cognitive scientist Tom Stafford. During his 2015 sabbatical, his automated email response read: “I am now on sabbatical until 12th June. Email sent to t.stafford@shef.ac.uk has been deleted.” Explicit Congestion Notification, or ECN: The Request for Comments (RFC) document for ECN is Ramakrishnan, Floyd, and Black, The Addition of Explicit Congestion Notification (ECN) to IP, which is a revision of Ramakrishnan and Floyd, A Proposal to Add Explicit Congestion Notification (ECN) to IP. Though the original proposal dates from the 1990s, ECN remains unimplemented in standard networking hardware today (Stuart Cheshire, personal interview, February 26, 2015).

a growing network becomes a virtue: For elaboration on this point, and a broader reflection on the history of networking (including its current problems), see Jacobson, “A New Way to Look at Networking.” a packet-switching network over “Avian Carriers”: See Waitzman, A Standard for the Transmission of IP Datagrams on Avian Carriers, Waitzman, IP Over Avian Carriers with Quality of Service, and Carpenter and Hinden, Adaptation of RFC 1149 for IPv6 for descriptions of the avian protocol, and see http://www.blug.linux.no/rfc1149 for details of the actual implementation performed in Bergen, Norway, on April 28, 2001. “No transmission can be 100 percent reliable”: Cerf and Kahn, “A Protocol for Packet Network Intercommunication.” the “Byzantine generals problem”: Lamport, Shostak, and Pease, “The Byzantine Generals Problem.” signal that the sequence has been restored: The process being described here is known as “fast retransmit.”

regulating the flow of information from speaker to listener: Tolins and Fox Tree, “Addressee Backchannels Steer Narrative Development.” “‘bad storytellers’ can at least partly blame their audience”: Jackson Tolins, personal correspondence, January 15, 2015. “misconceptions about the cause and meaning of queues”: Nichols and Jacobson, “Controlling Queue Delay.” the HTTP specification still in use today: That is HTTP 1.1, as articulated in the RFC 2616 document from June 1999, available at http://tools.ietf.org/html/rfc2616. “I happened to be copying, or rsyncing”: Jim Gettys, “Bufferbloat: Dark Buffers in the Internet,” Google Tech Talk, April 26, 2011. “not ‘Eureka!’ but ‘That’s funny’”: This quotation has appeared in countless publications with an attribution to Isaac Asimov, but its actual authorhip and provenance remain elusive. It seems to have first shown up—complete with the Asimov attribution—as part of the UNIX “fortune” program, which displays quotes or sayings in the style of a fortune cookie.

 

Multitool Linux: Practical Uses for Open Source Software by Michael Schwarz, Jeremy Anderson, Peter Curtis

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

business process, Debian, defense in depth, GnuPG, index card, indoor plumbing, optical character recognition, publish or perish, RFC: Request For Comment, Richard Stallman, SETI@home, slashdot, web application, x509 certificate

Not every Web browser supports JavaScript, and JavaScript has some painful variations between browser products. If you want to use this feature, I strongly advise you to get the Snort source code and customize the HTML embedded in sp_react.c. The port 80 limitation is another thing to bear in mind. Your users could find their way around it. [*] Request For Comments. These are the documents that exhaustively detail proposed Internet standards. Every Internet standard began life as an RFC. RFCs are relentlessly technical. You have to really want to know everything to enjoy reading them. There are a couple more things you can put in a Snort rules file. For one, you will use some of the same network address specifications over and over again. Instead of typing 10.0.0.0/24 all over the place, you may create a variable: var INTERNAL_NET 10.0.0.0/24 The other thing you can do is to "bring in" rules from other files with the include directive: include: "/var/lib/snort.rules" Attack Profiles Attacks fall into patterns.

It also showed that, once configured, Samba is an exceptional file and print server for your Unix and your MS Windows clients. It's robust, it scales remarkably well (after all, if you really need horsepower, you can throw a 16-processor IBM RS/6000 under it), and it's free. What more can you ask of server software? References More about NetBIOS and SMB/CIFS · NetBIOS specifications: http://www.faqs.org/rfc/rfc1001.txt http://www.faqs.org/rfc/rfc1002.txt · Online version of using Samba: http://samba.he.net/using_samba/ Samba · Homepage: http://www.samba.org/ · Download: http://www.samba.org/samba/ftp/samba-latest.tar.gz ftp://ftp.samba.org/pub/samba/samba-latest.tar.gz TkSmb · Homepage: http://www.rt.mipt.ru/frtk/ivan/TkSmb/ · Download: http://www.rt.mipt.ru/frtk/ivan/TkSmb/Arc/TkSmb-0.9.0.tar.gz xSMBrowser · Homepage: http://www.public.iastate.edu/~chadspen/ · Download: http://www.public.iastate.edu/~chadspen/xsmbrowser-2.4.0.tar.gz SMB2WWW · Homepage: http://www.samba.org/samba/smb2www/ Ghostscript · Homepage: http://www.cs.wisc.edu/~ghost/ · Download: http://www.cs.wisc.edu/~ghost/doc/gnu/index.htm Chapter 6.

When it receives a reply to one of these rewritten packets, it rewrites it once again, passing it back to the correct host on the hidden network. This means that for a single valid IP address, you can have dozens, hundreds, or even thousands of machines with full access to the other side—all while remaining completely hidden. NAT vs. IP Masquerade Some sources will tell you that NAT is different from IPMasquerading—including the IP Masquerade-HOWTO at http://www.linuxdoc.org/! They are, however, incorrect. As of RFC 2663, NAT and IP Masquerading are the same thing. Once upon a time, NAT required your own externally addressable subnet (you'd have had to pay for your own class A, B, or C address block). This is, however, no longer true. Official NAT is now more than happy to work with the nonrouted subnets of 192.168.x.x, 172.16.x.x, and 10.x.x.x . While I used to say that for all intents and purposes, NAT is IP Masquerading is NAT, I can now correctly say that they are indeed the same thing.

 

The Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal by M. Mitchell Waldrop

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Ada Lovelace, air freight, Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Albert Einstein, anti-communist, Apple II, battle of ideas, Berlin Wall, Bill Duvall, Bill Gates: Altair 8800, Byte Shop, Claude Shannon: information theory, computer age, conceptual framework, cuban missile crisis, double helix, Douglas Engelbart, Dynabook, experimental subject, fault tolerance, Frederick Winslow Taylor, friendly fire, From Mathematics to the Technologies of Life and Death, Haight Ashbury, Howard Rheingold, information retrieval, invisible hand, Isaac Newton, James Watt: steam engine, Jeff Rulifson, John von Neumann, Menlo Park, New Journalism, Norbert Wiener, packet switching, pink-collar, popular electronics, RAND corporation, RFC: Request For Comment, Silicon Valley, Steve Crocker, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, Ted Nelson, Turing machine, Turing test, Vannevar Bush, Von Neumann architecture, Wiener process

"I don't think any of us were prepared for that meeting," Crocker later wrote in his retrospective of those days, circulated as Request for Comments (RFC) 1000. "The BBN folks, led by Frank Heart, Bob Kahn, Severo Ornstein and Will Crowther, found themselves talking to a crew of graduate students they hadn't anticipated. And we found ourselves talking to people whose first concern was how to get bits to flow quickly and reliably but hadn't-of course-spent any time considering the thirty or forty layers of protocol above the link level." Clearly, says Crocker, the Wise Men of the East had to be somewhere else, and would announce themselves soon enough. But then came the second clue: in April, Crocker and his ad hoc group released that first, ever-so-carefully- worded Request for Comments circular about the brainstorming they'd done to date-and no Wise Men rose up to complain.

.), 139 pocket calculators, 428-29, 433 Pogran, Ken, 327 Poh, Susan, 328 POLOS (PARC On-Lme Office System), 362, 365, 368 Pong, 320 Popular Electromcs, 430-31, 433 Postel, John, 301, 321, 328 Posten, Daniel Q, 85 PostsCript, 450 Potter, Bob, 393-94, 445 Pnbram, Karl, 139 Pnnceton University, 41-42, 52, 59, 159 PrmClpia Mathematlca (Russell and Whitehead), 135 Proceedmgs of the London Mathe- matical SOCle y, 52 Programmed Data Processor, see PO P-l programmmg, 33-34, 37-40, 60-61, 62, 87, 160, 181, 232, 305,356 courses 10, 119-20 first language for, 40 graphical, 267 and halting problem, 51 heuristic, 138 as professIOn, 39-40 for SAGE, 118-19 structured, 171 top-down, 318 Project AGILE, 265n Project Athena, 454 Project Charles, 106 Project GenIe, 239, 257, 261,313, 341-42,346,353,364 Project Hartwell, 106 Project High, 117 Project Lincoln, see Lincoln Lab- oratory Project MAC, 4-5, 217-36, 241, 243-55,261,262,278,292, 307-20,345,353,412 Arpanet and, 304-24 freedom vs. responsIbility In, 236 IBM and, 244-48 Licklider as director of, 307-20,396 as target of protesters, 317n "Proposal for the Dartmouth Summer Research Project on ArtifiCIal Intelligence, A" (McCarthy), 161 "Protocol for Packet Network Interconnection, A" (Kahn and Cerf), 380 Psycho-Acoustic Laboratory, 8, 13-18, 22, 66, 67, 69-70, 105, 106 punch cards, 38-39, 46, 169 PUP (PARC UnIversal Packet), 381-82,416 purpose, In behavIOral theory, 53-59,74, 138 Q32 machines, 200, 207-9 queumg theory, 373 QUlktran, 292 R-7 Intercontinental balltstlc mis- sIle,196-200 radar, 18, 100-101 INDEX 499 RadIO-Electronics, 430 RAND Corporation, 91, 119, 133, 139,209,276,344, 359 random-access memory, 87 RAND Tablet, 209, 239, 255, 359 Rank-Xerox, 407 Rapid Selector, 27 RaskIn, Jef, 442 raster-scan displays, 366 Raytheon, 294 Rechtln, Eberhardt, 278, 279, 280,303,324 "Recursive Functions of Sym- boltc Expressions and Their Computation by Machine" (McCarthy), 172 reduced-Instruction-set comput- Ing, 419 Reeve, Chnstopher, 320 Regis McKenna, 434 relay CIrCUitS, 32-35 decIsion-makIng capabilities of, 33 parallel, 32-33 senes, 32 Remington Rand, 115-16 Request for Comments (RFC) 1000 (Crocker), 287, 300, 301 Requestfor Comments 675, 380 Research Character Generator, 385 Research Laboratory for Elec- trOnICS (RLE), 82, 101, 107, 121, 167, 189, 295 Rhelngold, Howard, 211 Rider, Ron, 362, 385 Ritchie, Dennis, 315, 425-27 RLE (Research Laboratory for Electronics), 82, 101, 107, 121, 167, 189,295 Roberts, H. Edward, 430-32 Roberts, Lawrence G., 267-77, 278,279,280,284,294,295, 296,303-4,314,321, 324-26, 327, 330-31, 345, 375-76,394-95,396 Rochester, Nathaniel, 133, 160, 161, 169n, 187,245 Rockefeller Analyzer, 26, 31 Rockefeller Foundation, 26, 161, 197 Rollmg Stone, 387-88 Rome Air Development Center, 288 Rosenbllth, Walter, 130, 311 Rosenblueth, Arturo, 56-57, 83-84 Ross, Douglas T., 173, 175, 221 routing, 269-77 RUlna, Jack, 198-202, 205, 221, 254,257 Rultfson, Jeff, 362 Russell, Bertrand, 20, 135 Russell, David, 397, 417, 419 Russell, Steve, 167 Saannen, Eero, 254 Sagan, Carl, 95 SAGE (Semi-Automated Ground EnvIronment), 99, 117-18, 119,120,121,126-27,142, 152, 164, 170, 177-78, 184, 200 Saltzer, Jerry, 231 Samson, Peter, 187-88 Samuel, Arthur, 160 Santa Barbara, University of Cal- ifornia at, 285, 304 "satisfiCing," 134-35, 136 Saturday Review of Lllerature, 95 Savin, 409 Scanlon, Dottie, 309-10 ScannIng Laser Output Terminal (SLOT), 384 Scantlebury, Roger, 275-76 Scherr, Allan, 231 Schrader, WIlliam, 464 Schwartz, Jules, 208, 223 SClentific American, 93 Scientific Data Systems (SDS), 301-2,333-35,341-42,346, 350, 382n Scientific Personal Integrated Computmg EnvIronment (SPICE), 438 "Scientist Rebels, A" (WIener), 85 SDC, see Systems Development Corporation SDS, see Scientific Data Systems S OS 930, 346 SDS 940, 294 Second Congress on Information System SCIences, 267-68 Second Self, The (Turkle), 64, 437 self-reproduction, by machines, 88-89 Selfndge, Oltver, 84, 93, 95, 122, 221,222,255 Semi-Automated Business- Related EnvIronment (SABRE), 120 Semi-Automated Ground EnvI- ronment, see SAGE semiconductors, 338-39, 367 sentences, 130-32 Shannon, Claude, 31-34, 75-82, 93-95, 161, 167,255 Shapiro, Elmer, 285 shareware, 233 Shaw,J.

But then came the second clue: in April, Crocker and his ad hoc group released that first, ever-so-carefully- worded Request for Comments circular about the brainstorming they'd done to date-and no Wise Men rose up to complain. Nor was there any protest in re- sponse to RFC 2, or RFC 3, or any of the numbers that followed. "We just got THE INTERGALACTIC NETWORK 301 more people wanting to play on our team," says Crocker. Soon, in fact, as the RFCs spread the word, meetings of their group were drawing upward of fifty people. Finally, says Crocker, at about that same time, BBN released its internal re- port number 1822, the document that formally defined what the IMP software would and would not do. Specifically, it stated that the software would do as lit- tle as possible. The network as installed by BBN would deliver the packets, pe- riod. Everything else would be the responsibility of the host computer. Now, admittedly, says Crocker, this did make for a clean interface, with mini- mal complication for BBN.

 

Pragmatic.Programming.Erlang.Jul.2007 by Unknown

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Debian, en.wikipedia.org, fault tolerance, finite state, full text search, RFC: Request For Comment, sorting algorithm

The answer is easy. All the major protocols for Internet services are defined in requests for comments (RFCs). HTTP/1.0 is defined in RFC 1945. The official website for all RFCs is http://www.ietf.org (home of the Internet Engineering Task Force). The other invaluable source of information is a packet sniffer. With a packet sniffer we can capture and analyze all the IP packets coming from and going to our application. Most packet sniffers include software that can decode and analyze the data in the packets and present the data in a meaningful manner. One of the most well-known and possibly the best is Wireshark (previously known as Ethereal), available from http://www.wireshark.org. Armed with a packet sniffer dump and the appropriate RFCs, we’re ready to write our next killer application. 249 U SING TCP To write this program (and indeed any program that runs over TCP/IP), we have to answer a few simple questions: • How is the data organized?

C and Java, 48 errors, 37 extracting values from a tuple, 36 guard sequences, 66 and guards, 65–68 match operator, 110–111 record fields, extracting, 71 terms, 41 see also Bit syntax Performance and distributed applications, 175 on multicore CPUs, 367 table type, 275, 276 tuple key and, 285 Periods, 24, 26, 51 perms, 64 515 Q () Persistent data, 274 Pessimistic locking, 319 phofs module, 381 PlanetLab, 300 pmap, 373–375 Port communication, 212f Ports creating, 213–214 interfacing with external C program, 214–220 C side, 215–217 Erlang side, 217–219 makefile, 219 protocol, 214 running, 219 linked-in drivers, 221–224 open_port, 220–221 Primary key, 318 Prime number server, 348 Primitives for concurrency, 142, 375 distribution, 182–185 error handling, 170–171 Process dictionary, 113–114 Processes client-server application, 144–148 example of code, 143–144 exceeding maximum number of, 150 keep-alive, 173 linking, 159f, 159–160 mailboxes for, 153 overview, 141 receive with a timeout, 150–153 registered, 154–155 sets of linked, 172f, 172 time involved in creating, 148–150 Profiling tools, 421–422 Progress reports, 342 Punctuation for binaries, 87 for comments, 104 formatting commands, 235 semicolons, 132 types of, 51 Pure message passing language, 141 pwd(), 47 Pythagorean triplets, 63 Q q(), 119 Q UICK SCRIPTING Quick scripting, 123 quicksort, 62 Quote marks and atoms, 34 and shell, 26 and strings, 40 R Race conditions, 173 Raising an exception, 77 RAM tables, 325 rb module, 345 read_file_info, 240 Reading files, 227–234 all terms in, 229 into a binary, 231 lines, one at a time, 231 with random access, 231–234 terms one at a time, 229–230 receive, 150–154 Receive loop, 156 Receive with a timeout, 150–153 Records, 69–72 creating and updating, 70 extracting fields, 71 in modules vs. shell, 69 pattern matching in functions, 71 as tuples, 71 Recursion, 156–157 References, 114 Registered processes, 154, 371 Remote error handling, 162 Remote spawning, 184–185 Request, 144 Response, 144 RFCs (requests for comments), 249 Rotating log, 341 rpc function, 145 rpc module, 185 Runtime diagnostics, 425 Rémond, Mickaël, 401 S Sadan, Yariv, 401 SASL (System Architecture Support Libraries), 341 Scalability, 175 Scope, 29 Search paths for loading code, 120 Security and cookies, 187 516 S EQUENTIAL PROGRAMMING and running client and server on Internet, 182 self(), 145, 198 Sellaprime company, see OTP (open telecom platform) system Semicolons, 51, 132 send, 153–154 Sequential bottlenecks, 371 Sequential code, parallelizing, 372–375 Sequential programming, 43–75 accumulators, 74–75 apply, 99 arithmetic expressions, 64, 65f, 65 attributes, 99–103 BIFs, 87 binaries, 87–89 bit syntax, 89–98 16-bit color example, 90 advanced examples, 92–98 expressions, 90–92 block expressions, 103 boolean expressions, 103 building lists in natural order, 73–74 case, 72–73 character set, 104 comments, 104 common errors, 58 epp, 105 escape sequences, 105, 106f expression sequences, 106 function references, 106–107 functions with same name, different arity, 52 funs, 52–57 guards, 68f, 65–68, 69f if, 73 include files, 107 list comprehensions, 61–64 list operators (++, –), 108 list processing, 58–60 macros, 108–110 match operator in patterns, 110–111 modules, 44–48 numbers (floats), 112 numbers (integers), 111–112 operator precedence, 112, 113f process dictionary, 113–114 records, 69–72 references, 114 shopping list example, 49–52 S EQUENTIAL SERVER short-circuit boolean expressions, 115 term comparisons, 115–116, 116f underscore variables, 116–117 Sequential server, 253–254 Server, 144, 292–301 basic, 292–294 become, 299–300 callback, 293 hot code swapping, 295–297 transaction semantics, 297 with transactions, 294–295 transactions and hot code swapping, 298 Sets, 275, 276 sets module, 279 Shadowed variables, 425 Shared memory and mutable states, 32 Shared state concurrency, 365 Shell arithmetic examples, 25–27 benefits of, 25 built-in commands, 135 command editing in, 130 and command numbers, 24, 26 multiple, starting and stopping, 26 not responding, 26, 133 pattern expressions, 42 starting, 24 starting/stopping, 118–119 stopping, 131 what can’t be typed in, 25 Windows installation, 397 Short-circuit boolean expressions described, 115 and guard expressions, 66, 67 SHOUTcast server, 265–272 how it works, 266 protocol, 265 pseudo code for, 266–268 running, 271–272 Shutdown, 119 Single assignment variables, 28, 29–31 Size variable, 91 SMP Erlang, 376–378, 379f Socket-based distribution, 176, 187–190 Sockets, 245–272 broadcasting to multiple machines, 263–264 and connection origins, 258 517 S UPERVISION TREE control issues, 256–258 active message reception, 256–257 hybrid approach (partial blocking), 258 passive message reception, 257 definition of, 245 error handling, 259–260 lib_chan application, 403–409, 409 access server over network, 405 challenge/response authentication, 409 client server communication, 408 code for server, 404 configuration file, 404 middle man, 407 start server, 405 structure, 406 lib_chan code, 409 lib_chan application middle-man, 407f libraries for, 245 listening, 251 modes, 256 and parallel server, 254 and sequential server, 254 SHOUTcast server, 265–272 how it works, 266 protocol, 265 pseudo code for, 266–268 running, 271–272 TCP, 246–255 fetching data from server, 246–248 improving server, 253–255 simple server, 248 writing a web server, 249 and UDP, 260–263 spawn, 148, 164 Spawning, 157–158 remote, 184–185 src directory, 230 Stack traces, 84–85, 426 Stages of mastery, 18 start_connector, 197 Strings, 40–41 character sets for, 40 and dollar syntax, 40 examples of, 40 sum, 58 Supervision tree, 351f, 351–354 all-for-one, 351 S UPERVISOR REPOR TS arguments for, 353 data structure, 353 one-on-one, 351 strategy, 355 worker specs, 353 Supervisor reports, 342 Symbolic constants, see Atoms Symmetric Multiprocessing, see SMP System processes, 160, 163 T Tables, see Ets (Erlang term storage); Dets (disk Erlang term storage); Mnesia Tail, of list, 38, 39 Tail-recursive, 156–157 Targets, 129 TCP (transmission control protocol), 245 fetching data from server, 246–248 improving server, 253–255 simple server, 248 writing a web server, 249 Term comparisons, 115–116, 116f and guard expressions, 66 term_to_binary, 88, 92, 225, 250, 252 Terms, 41 Test methods, 420 throw, 83 throw(Why), 77 Timeouts, 150–152 Timers, 152–154 total, 51, 59 Tracing, 431–435 Transaction semantics, 297 Transient data, 274 Trapping exit signals, 167f, 165–169 Trapping exits, 164, 172f Trigram example programs, 279–284 building tables, 281 defined, 279 iterator, 280 overview, 279 time (speed) involved, 281–284 Troubleshooting, 131–134 true guard, 68 Trusted environment, 176 try vs. case, 84 try...catch, 78–83 programming idioms with, 80 shortcuts, 80 518 VARIABLES try_to_connect, 197 ttb, 435 Tuples, 35–38 creating, 36 and data storage, 273 in DETS table, 284 extracting values from, 36–38 insert into tables, 274 inserted into tables, 277 and IP addresses, 258 keys, sets and bags, 275 and list comprehensions, 61 lookup in a table, 274 MFA, 432 nesting, 35 and records, 69–72 service, 404 supervisor tree, 352 in tables, 286 Type, 393 TypeExpression, 392 Types, 390–395 definitions in APIs, 394 input/output of a function, 392–394 notation, 390–392 tools for, 394–395 TypeVar, 393 U UDP (user datagram protocol), 245, 260–263 background, 263 factorial server, 261 server and client, 260 Unbound variables, 29, 423 Underscore variables, 116–117 Unix-based systems and escript, 125 help, 134 shell command, 24 starting/stopping shell, 118 Unsafe variables, 424 Unterminated strings, 424 Untrusted environment, 176 User-defined attributes, 101 V Value variable, 91 Variables changing value of, 31 introduced, 27–32 W EB SERVER naming conventions, 27 notation, 27 and pattern matching, 30 scope of, 29 single assignment, 28, 29–31 underscore, 116–117 unexpected values and, 32 W Web server, writing, 249 Websites for Armstrong’s doctoral thesis on Erlang, 400 for CEAN, 23 for connecting to standard input/output, 221n for cprof, 421 for Debugger reference manuals, 431 for DETS manual, 287 for emacs installation, 397 for Erlang (Windows download), 22 for Erlang 4.7 specs, 400n for Erlang application documentation, 399 for Erlang blogs, 401 for Erlang documentation, 399 for Erlang downloadable examples, 23n for Erlang error log, 136 for Erlang FAQs, 399 for Erlang forums, 401 for Erlang literature, 400n for Erlang manuals, 135, 399 for Erlang projects, 401 for Erlang release handling documentation, 308n for Erlang sources, 22n for Erlang style guide, 399 for ETS manual, 287 for Internet Engineering Task Force, 249 libraries for interfacing, 225 for Link collections, 400 for makefile overview, 127n for MatchSpec libraries, 432n 519 YECC for MinGW, 396 for MSYS, 397 for online financial services in Erlang, 301n for OTP behaviors, 363 for PlanetLab, 300n for purge_module documentation, 438n for SHOUTcast, 265n for SMP Erlang, 376 for Windows binary (Erlang installation), 396 for wireshark (a packet-sniffer), 249 Windows batch files, 124 binary distributions, 22 Command prompt, compiling and running from, 123 and directory navigation, 47 emacs installation, 397 Erlang installation, 21, 396–397 and escript, 125 help documentation, 135 and MinGW, 396 and MSYS, 397 MSYS Developer toolkit, 397 and name server example, 179n shell command, 24 starting/stopping shell, 118 and unpacking COFF data, 96 wireshark, 249 Word extraction, 387 Worker-supervisor model, 171 Writing to files, 235–239 lines, 236 list of terms, 235–236 in one operation, 237–238 random access, 239 X xref module, 421 Y yecc, 129

M ODULE : BASE 64 get_all_key(Application) -> {ok, Keys} | undefined Get the application specification keys. get_application(Pid | Module) -> {ok, Application} | undefined Get the name of an application containing a certain process or module. get_env(Application, Par) -> {ok, Val} | undefined Get the value of a configuration parameter. get_key(Application, Key) -> {ok, Val} | undefined Get the value of an application specification key. load(AppDescr, Distributed) -> ok | {error, Reason} Load an application. loaded_applications() -> [{Application, Description, Vsn}] Get the currently loaded applications. permit(Application, Bool) -> ok | {error, Reason} Change an application’s permission to run on a node. set_env(Application, Par, Val, Timeout) -> ok Set the value of a configuration parameter. start(Application, Type) -> ok | {error, Reason} Load and start an application. start_type() -> StartType | local | undefined Get the start type of an ongoing application start-up. stop(Application) -> ok | {error, Reason} Stop an application. takeover(Application, Type) -> ok | {error, Reason} Take over a distributed application. unload(Application) -> ok | {error, Reason} Unload an application. unset_env(Application, Par, Timeout) -> ok Unset the value of a configuration parameter. which_applications(Timeout) -> [{Application, Description, Vsn}] Get the currently running applications. F.2 Module: base64 Implements base 64 encode and decode; see RFC 2045. encode_to_string(Data) -> Base64String Encode data into base 64. mime_decode_string(Base64) -> DataString Decode a base 64–encoded string to data. 440 M ODULE : BEAM _ LIB F.3 Module: beam_lib An interface to the BEAM file format. chunks(Beam, [ChunkRef]) -> {ok, {Module, [ChunkData]}} | {error, beam_lib, Reason} Read selected chunks from a BEAM file or binary. chunks(Beam, [ChunkRef], [Option]) -> {ok, {Module, [ChunkResult]}} | {error, beam_lib, Reason} Read selected chunks from a BEAM file or binary. clear_crypto_key_fun() -> {ok, Result} Unregister the current crypto key fun. cmp(Beam1, Beam2) -> ok | {error, beam_lib, Reason} Compare two BEAM files. cmp_dirs(Dir1, Dir2) -> {Only1, Only2, Different} | {error, beam_lib, Reason1} Compare the BEAM files in two directories. crypto_key_fun(CryptoKeyFun) -> ok | {error, Reason} Register a fun that provides a crypto key. diff_dirs(Dir1, Dir2) -> ok | {error, beam_lib, Reason1} Compare the BEAM files in two directories. format_error(Reason) -> Chars Return an English description of a BEAM read error reply. info(Beam) -> [{Item, Info}] | {error, beam_lib, Reason1} Information about a BEAM file. md5(Beam) -> {ok, {Module, MD5}} | {error, beam_lib, Reason} Read the BEAM file’s module version. strip(Beam1) -> {ok, {Module, Beam2}} | {error, beam_lib, Reason1} Remove chunks not needed by the loader from a BEAM file. strip_files(Files) -> {ok, [{Module, Beam2}]} | {error, beam_lib, Reason1} Remove chunks not needed by the loader from BEAM files. strip_release(Dir) -> {ok, [{Module, Filename]}} | {error, beam_lib, Reason1} Remove chunks not needed by the loader from all BEAM files of a release. version(Beam) -> {ok, {Module, [Version]}} | {error, beam_lib, Reason} Read the BEAM file’s module version.

 

Paper Knowledge: Toward a Media History of Documents by Lisa Gitelman

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Andrew Keen, computer age, corporate governance, deskilling, Douglas Engelbart, East Village, en.wikipedia.org, information retrieval, Internet Archive, invention of movable type, Jaron Lanier, knowledge economy, Marshall McLuhan, Mikhail Gorbachev, national security letter, On the Economy of Machinery and Manufactures, optical character recognition, profit motive, RAND corporation, RFC: Request For Comment, Silicon Valley, Steve Jobs, The Structural Transformation of the Public Sphere, Turing test, Works Progress Administration

Engelbart, “Quarterly Technical Letter Report 6,” 28 November 1967, Box 2, Douglas C. Engelbart Papers, 1953–1998 (MO638), Stanford University Libraries, Stanford, CA. See also Kelty, Two Bits, 198. 62. Wikipedia, “Living Document,” accessed 1 July 2011, http://en.wikipedia.org /wiki/Living _document. “Functional documents” is the phrase used in Request for Comments 115: R. W. Watson and J. B. North, “Some Network Information Center Policies on Handling Documents,” April 1971, accessed 24 June 2013, http://www.rfc-­editor.org/rfc/rfc115.txt. 63. J. Brooks, “Profiles,” 47. 64. I’ve written elsewhere on documents as distinct from format, as Latourian “matters of concern,” made meaningful in the social networks of their potential circulation (Lisa Gitelman, Always Already New: Media, History, and the Data of Culture [Cambridge, MA: mit Press, 2006], chapter 4). 65.

 

pages: 496 words: 70,263

Erlang Programming by Francesco Cesarini

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

cloud computing, fault tolerance, finite state, loose coupling, revision control, RFC: Request For Comment, sorting algorithm, Turing test, type inference, web application

The following code shows the decode function and two sample packets: decode(Segment) -> case Segment of << SourcePort:16, DestinationPort:16, SequenceNumber:32, AckNumber:32, DataOffset:4, _Reserved:4, Flags:8, WindowSize:16, Checksum:16, UrgentPointer:16, Payload/binary>> when DataOffset>4 -> OptSize = (DataOffset - 5)*32, << Options:OptSize, Message/binary >> = Payload, <<CWR:1, ECE:1, URG:1, ACK:1, PSH:1, RST:1, SYN:1, FIN:1>> = <<Flags:8>>, %% Can now process the Message according to the %% Options (if any) and the flags CWR, ..., FIN. † TCP is described in a series of Requests for Comments (RFCs) from the Internet Engineering Task Force. An overview is provided in RFC 4614, “A Roadmap for Transmission Control Protocol (TCP) Specification Documents,” at http://tools.ietf.org/html/rfc4614. 206 | Chapter 9: More Data Types and High-Level Constructs binary_to_list(Message); _ -> {error, bad_segment} end. seg1() -> << 0:16, 0:16, 0:32, 0:32, 5:4, 0:4, 0:8, 0:16, 0:16, 0:16, "message">>. seg2() -> << 0:16, 0:16, 0:32, 0:32, 7:4, 0:4, 0:8, 0:16, 0:16, 0:16, 0:64, "message">>.

, 165 queue module, 80 quotation marks atom syntax, 19 include files and, 168 strings and, 23 R RabbitMQ protocol, 2 race conditions concurrent programming, 112–114 defined, 98 random module, 80 rd command, 161 read function, 175, 300 read/1 function, 57 reading objects, 300 receive ... after construct, 105 receive clause receiving messages, 94–97 requests supported, 123 timeouts, 105 receive flag, 358 receiving messages, 94–102, 115 records accessing, 159 chapter exercises, 168–169 defined, 158 Erlang shell and, 161 ETS tables and, 226 example, 158 functionality, 157 functions and, 160 implementing, 162–163 include files, 168 pattern matching, 160 tuple comparison, 158 with typed fields, 395 record_info function, 164 recursion controlling, 45 Erlang type notation, 397 functionality, 45, 59–63 Index | 465 iteration versus, 67 tail-recursive functions, 63–67, 108, 440 recv/1 function, 331 recv/2 function gen_tcp module, 328, 330, 331 gen_udp module, 326 recv/3 function gen_tcp module, 328, 330 gen_udp module, 326 reduction steps, 96 reference data type defined, 190, 210 EDoc support, 409 regexp module, 220 registered processes, 102–104 registry function, 342 regression testing, 411 regs shell command, 103 relational operators, 28 release handling, 287–290 rem operator, 17, 378 remote procedure call (RPC) interworking with Java, 339 overview, 256–258 remove_call/2 function, 257 request function, 141, 142 results fun expressions, 192 functions as, 193 return values, 424–425 return_to flag, 362 reverse function, 96 RFC 4614, 206 rl command, 161 robust systems, 6, 148–154 root_dir function, 180 round/1 function, 54, 378 RPC (remote procedure call) interworking with Java, 339 overview, 256–258 rpc module, 258 rr/1 shell command, 297 rtp function, 391 Ruby language, interworking with, 336, 351 running flag, 359 runtime errors match specifications and, 378 shell considerations, 68 466 | Index S safe_fixtable/2 function, 221, 236 Sagnonas, Kostis, 399 sasl directory, 186 scheduling, process, 96 schemas, 295 script2bootfile function, 290 secret cookies, 250 Secure Sockets Layer (SSL), 333 security cookie information and, 253 node communications, 250 node distribution and, 251 select function, 223, 225 selective receives, 98–99 self function exit signals, 141 guard support, 378 message passing, 92 receiving messages, 99 semaphore, 129, 154 semicolon (;), 52, 378 send flag, 358 send/1 function peer module, 334 ping module, 358, 367 tracing, 365 send_event function, 133 sequential programming built-in functions, 53–59 chapter exercises, 82–87 conditional evaluations, 46–50 debugging, 80 efficiency considerations, 437 error handling, 70–77 guards, 50–52 library modules, 77–80 recursion, 59–70 testing, 420 seq_trace module, 391 serialization, binary, 208, 413–415 setelement/3 function, 53 setopts function, 332 sets defined, 214 Dets tables, 229 ETS tables, 214 ordered, 214, 215, 219 storing, 215 set_env/1 function, 313 set_master_nodes function, 305 set_on_first_link flag, 361 set_on_first_spawn flag, 360, 367 set_on_link flag, 361, 367 set_on_spawn flag, 360, 367 set_on__first_link flag, 367 set_seq_token/2 function, 391 shell (see Erlang shell) Short Message Service (SMS), 117, 231 show function, 314 signal function, 129 SimpleDB database, 2 sin/1 function, 80 single assignment, 30 size qualification, 203 size/1 function, 378 sleep/1 function, 106 Smart, Julian, 309 SMP (symmetric multiprocessing) background, 9 benchmarking example, 106 SMS (Short Message Service), 117, 231 socket files, 373 socket programming additional information, 333 chapter exercises, 334 inet module, 331–333 overview, 323 TCP support, 327–331 UDP support, 323–327 software development, 426 (see also concurrent programming; sequential programming) application considerations, 421–426 coding strategies, 435–437 common mistakes, 442 concurrency considerations, 426–429 efficiency considerations, 437–442 module considerations, 421–426 process considerations, 426–429 stylistic conventions, 430–435 test-driven, 411–420 software upgrades backward compatibility, 186 behind the scenes, 176–179 chapter exercises, 186, 420 code server, 180 ERLANG file extension, 186 intermodule calls, 176 intromodule calls, 176 loading code, 179 modules and, 173 purging modules, 182 upgrading processes, 182 soft_purge function, 182 spawn function, 90, 107 spawn_link function process links and, 139, 146 RPC support, 257 supervisor example, 152 spawn_monitor function, 146 split function, 25 splits function, 200 split_binary function, 202 square brackets [ ], 22, 23 SSL (Secure Sockets Layer), 333 start function appmon module, 287 event manager, 132 gen_server module, 266, 267 manipulating applications, 285 mnesia module, 296 ping module, 365 process trace flags, 358 race condition example, 113 supervisor processes, 276 tcp module, 330 tracing, 365 tv module, 228 start_children/1 function, 153 start_link/0 function, 279 start_link/2 function, 276 start_link/4 function, 266, 267 sticky directories, 181 stick_dir function, 181 stop function application module, 296 dbg module, 368 event manager, 132 manipulating applications, 285 mnesia module, 296 stop_clear/0 function, 368 stop_trace_client function, 373 storage management automated, 6 ETS tables, 215 Mnesia and, 294 Index | 467 string module functionality, 80 to_lower/1 function, 220 strings atom comparison, 23 binaries and, 23 concatenating, 27 empty, 23 Erlang type notation, 397 representation, 22 subtraction (–) operator, 17, 378 success types, 399 supervision trees, 264 supervisors chapter exercises, 155 child specifications, 278 defined, 148, 264, 276 dynamic children, 280 error handling, 7 examples, 152–154, 279 generic behavior, 276 supervisor specifications, 277 symmetric multiprocessing (SMP) background, 9 benchmarking example, 106 sync function, 229 sys module, 291 systools module make_rel function, 288 script2bootfile function, 290 T T-Mobile, 2 tab2file function, 226 tab2list function, 226 tags, defined, 21 tail-recursive functions, 63–67, 108, 440 tan/1 function, 80 TCP (Transmission Control Protocol) decoding segments, 206 socket programming, 327–331 tcp module, 330 TDD (test-driven development), 411–420 term comparison, 28–29 terminate function event handlers, 135, 136 process pattern example, 125 stopping servers, 270 term_to_binary/1 function, 202, 343, 349 468 | Index test-driven development (TDD), 411–420 test/0 function, 349 test/1 function, 419 testing chapter exercises, 420 concurrent programs, 419, 420 EUnit support, 411–420 functional, 413–415 OTP behaviors, 420 regression, 411 sequential functions, 420 state-based systems, 418 tools supported, 14 Thompson, Simon, xvi threads, processes versus, 97 throw/1 function, 72, 76 tilde (~), 57 time module, 80 timeouts, 104–106 timestamp flag, 362 timestamps, 361 tl/1 function, 53, 378 to_lower/1 function, 220 tp/2 function, 367, 369, 376, 391 tpl/2 function, 369 trace BIFs background, 355 chapter exercises, 392 garbage collection and, 361 inheritance flags, 360 process trace flags, 358–360 timestamps, 361 trace/3 function, 357 trace_pattern/3 function, 362–365 trace events defined, 356 tracer process and, 357 trace facility, 356 trace flags (see process trace flags) trace/3 function, 357, 362 tracer process, 357 tracer/2 function, 372, 373 trace_client function, 373 trace_pattern/3 function, 362–365 trace_port function, 373 tracing functions, 369 tracing mechanism additional information, 391 chapter exercises, 392 dbg tracer, 365–374 fun2ms/1 function, 374–382 match specifications, 383–391 trace BIFs, 357–362 trace_pattern/3 function, 362–365 typical scenarios, 355–357 transaction function, 299 transactions, Mnesia chapter exercises, 306 defined, 299 deleting objects, 300 dirty operations, 302–304 indexing, 301 reading objects, 300 writing objects, 299 Transmission Control Protocol (TCP) decoding segments, 206 socket programming, 327–331 trapping exits, 142–144, 148 traps, 96 treeToList/1 function, 414 troubleshooting atom syntax, 19 concurrent programming, 112–114 epmd command support, 260 trunc/1 function, 54, 378 try...catch construct development considerations, 434 exit function, 145 functionality, 70–77 tuples disadvantages, 157 Erlang type notation, 397 ETS tables and, 213 overview, 21 processing, 24 record comparison, 158 supervisor specification, 277 tuple_size/1 function, 53 tuple_to_list/1 function, 54 Turing test, 340 Turing, Alan, 340 tv:start function, 228 type notation, 395–398 type qualification, 203 TypEr tool additional information, 399 Dialyzer support, 401 functionality, 32 options supported, 399 success types, 399 type inference, 400 U UDP (User Datagram Protocol), 323–327 ulimit command, 350 unary addition operator, 17 unary subtraction operator, 17 unbound variables, 34 undef conditional macro, 167 undef exception, 70 underscore (_), 19, 37 unit testing, 411–420 Universidad Politécnica de Madrid, 2 University of Kent, 2 unlink function, 146 unstick_dir function, 181 upgrade function, 182–186 upgrades (see software upgrades) Uppsala University, 2 useful modules, 79–80 User Datagram Protocol (UDP), 323–327 usr module documentation, 407 records with typed fields, 395 usr.erl module, 407 usr_db module, 266 usr_db.erl module, 403–405, 407 usr_sup module, 279 V v/1 shell command, 447 variables bound, 5, 30, 34, 97–99 don’t care, 37 dynamic typing, 30 environment, 284, 285 functionality, 30 functions and, 195 pattern matching, 33–38 scope considerations, 48 unbound, 34 Virding, Robert, 3 visualizing tables, 228 W wait function, 129 Index | 469 wait_for_tables function, 298 waterfall development model, 411 werl shell, 41 whereis function, 102, 113 which_applications function, 281, 283 Wikström, Claes, 293 wildcards don’t care variables, 37 pattern matching and, 35, 224 process trace flags, 363 Williams, Mike, 3, 14 Wings 3D modeler, 2 worker processes, 148 defined, 276 OTP behaviors and, 264 write/1 function io module, 57 mnesia module, 299, 302 write/3 function, 174 writing objects, 299 wtp function, 391 wx class get_env/0 function, 313 null function, 314 set_env/1 function, 313 wxClass:destroy/1 function, 313 wxErlang background, 310, 313 chapter exercises, 321 event handlers, 312 event types, 312 MicroBlog example, 314–316 MiniBlog example, 317–320 object identifiers, 312 objects and types, 311 obtaining, 321 running, 321 wxEvtHandler class, 313 wxFrame:show function, 314 wxMenu object, 311 wxObject class, 310 wxTextCtrl module, 319 wxWidgets additional information, 310 background, 309 chapter exercises, 321 fucnctionality, 310 functionality, 309, 313 wxWindow class, 310 470 | Index X XMPP (Extensible Messaging and Presence Protocol), 2 xor logical operator, 21 Y Yahoo!

 

pages: 587 words: 117,894

Cybersecurity: What Everyone Needs to Know by P. W. Singer, Allan Friedman

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

4chan, A Declaration of the Independence of Cyberspace, Apple's 1984 Super Bowl advert, barriers to entry, Berlin Wall, bitcoin, blood diamonds, borderless world, Brian Krebs, business continuity plan, Chelsea Manning, cloud computing, crowdsourcing, cuban missile crisis, data acquisition, Edward Snowden, energy security, failed state, Fall of the Berlin Wall, fault tolerance, global supply chain, Google Earth, Internet of things, invention of the telegraph, Julian Assange, Khan Academy, M-Pesa, mutually assured destruction, Network effects, packet switching, Peace of Westphalia, pre–internet, profit motive, RAND corporation, ransomware, RFC: Request For Comment, risk tolerance, rolodex, Silicon Valley, Skype, smart grid, Steve Jobs, Stuxnet, uranium enrichment, We are Anonymous. We are Legion, web application, WikiLeaks, zero day

Interestingly enough, it is this final category, the intersection of the technical and nontechnical aspect of naming, that has produced the most conflict. The operations of the Internet require independent actors to follow basic rules that guarantee interoperability, known as standards. This standards-based approach goes back to the beginning of the Internet, when the engineers building the initial systems published Requests For Comments (RFCs) to seek feedback on proposed standards. Over time, this group of network engineers and researchers grew into an international, voluntary standards organization called the Internet Engineering Task Force (IETF). The IETF develops new Internet standards and protocols and modifies existing ones for better performance. Everything developed by the IETF falls under specific working groups that concentrate on areas like routing, applications, and infrastructure.

Cory Doctorow “The FP Survey,” p. 116. PART III: WHAT CAN WE DO? DON’T GET FOOLED: WHY CAN’T WE JUST BUILD A NEW, MORE SECURE INTERNET? “the wily hacker” William R. Cheswick and Steven M. Bellovin, Firewalls and Internet Security: Repelling the Wily Hacker (Reading, MA: Addison-Wesley, 1994). “the packet has evil intent” Steven M. Bellovin, “The Security Flag in the IPv4 Header,” RFC Editor, April 1, 2003, http://www.ietf.org/rfc/rfc3514.txt. “better off without it” Robert Samuelson, “Beware the Internet and the Danger of Cyberattacks,” Washington Post, June 30, 2013, http://www.washingtonpost.com/opinions/robert-samuelson-of-internet-threats-and-cyberattacks/2013/06/30/df7bd42e-e1a9-11e2-a11e-c2ea876a8f30_story.html. consumer banks Aliya Sternstein, “Former CIA Director: Build a New Internet to Improve Cybersecurity,” National Journal, May 29, 2013, http://www.nationaljournal.com/nationalsecurity/former-cia-director-build-a-new-internet-to-improve-cybersecurity-20110707.

 

pages: 547 words: 160,071

Underground by Suelette Dreyfus

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

airport security, invisible hand, Julian Assange, Loma Prieta earthquake, packet switching, pirate software, profit motive, publish or perish, RFC: Request For Comment, Ronald Reagan, Stephen Hawking, Steven Levy, Stuxnet, uranium enrichment, urban decay, WikiLeaks, zero day

He believed the sister system and NIC might ‘trust’ each other – a trust he could exploit to get into NIC. And NIC did everything. NIC assigned domain names – the ‘.com’ or ‘.net’ at the end of an email address – for the entire Internet. NIC also controlled the US military’s own internal defence data network, known as MILNET. NIC also published the communication protocol standards for all of the Internet. Called RFCs (Request for Comments), these technical specifications allowed one computer on the Internet to talk to another. The Defense Data Network Security Bulletins, the US Department of Defense’s equivalent of CERT advisories, came from the NIC machine. Perhaps most importantly, NIC controlled the reverse look-up service on the Internet. Whenever someone connects to another site across the Internet, he or she typically types in the site name – say, ariel.unimelb.edu.au at the University of Melbourne.

See ACARB) COBE Cosmic Background Explorer project: a NASA research project DARPA Defense Advanced Research Projects Agency (US) DCL Digital Command Language, a computer programming language used on VMS computers DDN Defense Data Network DEC Digital Equipment Corporation DECNET A network protocol used to convey information between (primarily) VAX/VMS machines DEFCON (a) Defense Readiness Conditions, a system of progressive alert postures in the US; (b) the name of Force’s computer program which automatically mapped out computer networks and scanned for accounts DES Data Encryption Standard, an encryption algorithm developed by IBM, NSA and NIST Deszip Fast DES Unix password-cracking system developed by Matthew Bishop Dial-up Modem access point into a computer or computer network DMS-100 Computerised telephone switch (exchange) made by NorTel DOD Department of Defense (US) DOE Department of Energy (US) DPP Director of Public Prosecutions DST Direction de la Surveillance du Territoire – French secret service agency EASYNET Digital Equipment Corporation’s internal communication network (DECNET) GTN Global Telecommunications Network: Citibank’s international data network HEPNET High Energy Physics Network: DECNET-based network, primarily controlled by DOE, connected to NASA’s SPAN IID Internal Investigations Division. Both the Victoria Police and the AFP have an IID IP Internet Protocol (RFC791): a data communications protocol, used to transmit packets of data between computers on the Internet IS International Subversive (electronic magazine) ISU Internal Security Unit: anti-corruption unit of the Victoria Police ITU International Telecommunications Union, the international telecommunications standards body JANET Joint Academic Network (UK), a network of computers JPL Jet Propulsion Laboratory – a California-based NASA research centre affiliated with CalTech LLNL Lawrence Livermore National Laboratory (US) LOD Legion of Doom Lutzifer West German computer, connected to the X.25 network, which had a chat facility MFC Multi Frequency Code (Group III): inter-exchange telecommunications system used by Telstra (Telecom) MILNET Military Network: TCP/IP unclassified US DOD computer network MOD Masters of Deception (or Destruction) Modem Modulator De-modulator: a device used to transmit computer data over a regular telephone line NCA National Crime Authority Netlink A Primos/Dialcom command used to initiate a connection over an X.25 network NIST National Institute of Standards (US) NIC Network Information Center (US), run by DOD: a computer which assigned domain names for the Internet NRL Naval Research Laboratory (US) NSA National Security Agency (US) NUA Network User Address: the ‘telephone’ number of a computer on an X.25 network NUI Network User Identifier (or Identification): combined username/password used on X.25 networks for billing purposes NorTel Northern Telecom, Canadian manufacturer of telecommunications equipment PABX Private Automatic Branch Exchange PAD Packet Assembler Disassembler – ASCII gateway to X.25 networks PAR ‘PAR?’

– command on PAD to display PAD parameters RMIT Royal Melbourne Institute of Technology RTG Radioisotope Thermoelectric Generator, space probe Galileo’s plutonium-based power system RTM Robert Tappan Morris (Jr), the Cornell University student who wrote the Internet worm, also known as the RTM worm Scanner A program which scans and compiles information, such as a list of NUAs SPAN Space Physics Analysis Network: global DECNET- based network, primarily controlled by NASA Sprint US telecommunications company, an X.25 network provider Sprinter Word used by some Australian and English hackers to denote scanner. Derived from scanning attacks on Sprint communications Sprintnet X.25 network controlled by Sprint communications Sun Sun Microsystems – a major producer of Unix workstations TCP Transmission Control Protocol (RFC793): a standard for data connection between two computers on the Internet TELENET An X.25 network, DNIC 3110 Telnet A method of connection between two computers on the Internet or other TCP/IP networks Trojan A program installed by hackers to secretly gather information, such as passwords. Can also be a backdoor Tymnet An X.25 network controlled by MCI, DNIC 3106 Unix Multi-user computer operating system developed by AT&T and Berkeley CSRG VAX Virtual Address Extension: series of mini/mainframe computer systems produced by DEC VMS Virtual Memory System: computer operating system produced by DEC and used on its VAX machines WANK Worms Against Nuclear Killers: the title of DECNET/VMS-based worm released into SPAN/DEC/HEPNET in 1989 X.25 International data communications network, using the X.25 communications protocol.

 

pages: 398 words: 107,788

Coding Freedom: The Ethics and Aesthetics of Hacking by E. Gabriella Coleman

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

Benjamin Mako Hill, crowdsourcing, Debian, dumpster diving, en.wikipedia.org, financial independence, ghettoisation, Hacker Ethic, informal economy, Jacob Appelbaum, Jaron Lanier, Jason Scott: textfiles.com, Jean Tirole, knowledge economy, laissez-faire capitalism, Louis Pasteur, means of production, Paul Graham, pirate software, popular electronics, RFC: Request For Comment, Richard Stallman, rolodex, Ronald Reagan, Silicon Valley, Silicon Valley startup, slashdot, software patent, software studies, Steve Ballmer, Steven Levy, Ted Nelson, the scientific method, The Structural Transformation of the Public Sphere, web application, web of trust

During much of the 1980s, hackers and programmers did work together over long distances, especially on various FSF and other Unix applications. For example, while different versions of Unix were largely developed within the bounds of one institution (such as Berkeley, Sun Microsystems, or Bell Labs), collaborative development was important. Changes were made through the trading of patches” on newsgroups or tapes were traded via the mail. The developments of Arpanet and Internet protocols through the request for comment documents also represent an important long-distance collaborative effort (DeNardis 2009; Gitelman 2006) 18. For a typical example, see Dobrzynski 1999. A group of New York Times reporters gathered with Silicon Valley CEOs to discuss the trials and thrills of managing companies in the “Internet era.” 19. http://wp.netscape.com/newsref/pr/newsrelease558.html (accessed November 2002); http://blog.lizardwrangler.com/tag/netscape/ (accessed August 9, 2011). 20. http://www.catb.org/~esr/halloween/ (accessed September 25, 2010). 21. http://www.ussg.iu.edu/hypermail/linux/kernel/9904.0/0332.html (accessed August 9, 2011). 22.

Given the deep, bodily pleasures of laughter, the jovial atmosphere overcame most social barriers and sources of social discomfort, and allowed me to feel welcome among the hackers. It soon became clear to me, however, that this was not done for my benefit; humor saturates the social world of hacking. Hackers, I noticed, had an exhaustive ability to “misuse” most anything and turn it into grist for the humor mill. Once I began to master the esoteric and technical language of pointers, compilers, RFCs, i386, X86, AMD64, core dumps, shells, bash, man pages, PGP, GPG, gnupg, OpenPGP, pipes, world writeable, PCMCIA, chmod, syntactically significant white space, and so on (and really on and on), a rich terrain of jokes became sensible to me. My enjoyment of hacker humor thus provided a recursive sense of comfort to a novice ethnographer. Along with personally enjoying their joshing around, my comprehension of their jokes indicated a change in my outsider status, which also meant I was learning how to read joking in terms of pleasure, creativity, and modes of being.

Several [22] people are [23] discussing whether the [24] GNU Free Documentation License (GFDL) is a free license or not. If the GFDL is indeed considered a non-free license, this would [25] render almost all KDE and many other well known packages non-free since they use the GNU FDL for the documentation. Additionally, here’s an old [26] thread from debian-legal, which may shed some light on the issue.6 RFC: LaTeX Public Project License. Claire Connelly [4] reported that the LaTeX Project is in the process of considering changes to the LaTeX Project Public License. She tried to summarize some of the concerns that Debian people have expressed regarding the changes. Hence, Frank Mittelbach asked for reviews of the draft of version 1.3 of the [5] LaTeX Public Project License rather than of the current version (1.2).7 Enforcing Software Licenses.

 

pages: 464 words: 127,283

Smart Cities: Big Data, Civic Hackers, and the Quest for a New Utopia by Anthony M. Townsend

Amazon: amazon.comamazon.co.ukamazon.deamazon.fr

1960s counterculture, 4chan, A Pattern Language, Airbnb, Amazon Web Services, anti-communist, Apple II, Bay Area Rapid Transit, Burning Man, business process, call centre, carbon footprint, charter city, chief data officer, clean water, cleantech, cloud computing, computer age, congestion charging, connected car, crack epidemic, crowdsourcing, DARPA: Urban Challenge, data acquisition, Deng Xiaoping, East Village, Edward Glaeser, game design, garden city movement, Geoffrey West, Santa Fe Institute, George Gilder, ghettoisation, global supply chain, Grace Hopper, Haight Ashbury, Hedy Lamarr / George Antheil, hive mind, Howard Rheingold, interchangeable parts, Internet Archive, Internet of things, Jacquard loom, Jacquard loom, Jane Jacobs, jitney, John Snow's cholera map, Khan Academy, Kibera, knowledge worker, load shedding, M-Pesa, Mark Zuckerberg, megacity, mobile money, mutually assured destruction, new economy, New Urbanism, Norbert Wiener, Occupy movement, openstreetmap, packet switching, patent troll, place-making, planetary scale, popular electronics, RFC: Request For Comment, RFID, ride hailing / ride sharing, Robert Gordon, self-driving car, sharing economy, Silicon Valley, Skype, smart cities, Smart Cities: Big Data, Civic Hackers, and the Quest for a New Utopia, smart grid, smart meter, social graph, social software, social web, special economic zone, Steve Jobs, Steve Wozniak, Stuxnet, supply-chain management, technoutopianism, Ted Kaczynski, telepresence, The Death and Life of Great American Cities, too big to fail, trade route, Tyler Cowen: Great Stagnation, Upton Sinclair, uranium enrichment, urban decay, urban planning, urban renewal, Vannevar Bush, working poor, working-age population, X Prize, Y2K, zero day, Zipcar

The Internet, on the other hand, was being designed and deployed by small groups of researchers following the credo “rough consensus and running code,” coined by one of its chief architects, David Clark. Instead of a large inter-governmental agency, the standards of the Internet were stewarded by small organizations, which didn’t require permission or authority. It functioned by issuing the humbly named “Request for Comment” or RFCs as the way to propose simple and light-weight standards against which small groups of developers could work on the elements that together became the Internet.38 The telecommunications industry saw the design and construction of the next-generation Internet as a big breakthrough. The academics saw it as a combinatorial endeavor. TCP/IP, the protocol for transmitting data championed by the researchers, won out in the end.