RFC: Request For Comment

45 results back to index


pages: 570 words: 115,722

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

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

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?”

Fielding, and L. 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

Costello, “Internationalizing Domain Names in Applications (IDNA),” IETF Request for Comments 3490 (2003), http://www.ietf.org/rfc/rfc3490.txt. [103] A. Costello, “Punycode: A Bootstring Encoding of Unicode for Internationalized Domain Names in Applications (IDNA),” IETF Request for Comments 3492 (2003), http://www.ietf.org/rfc/rfc3492.txt. [104] E. Gabrilovich and A. 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.


pages: 287 words: 86,919

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

Ada Lovelace, airport security, Alvin Toffler, Berlin Wall, bioinformatics, Bretton Woods, Charles Babbage, computer age, Computer Lib, Craig Reynolds: boids flock, Dennis Ritchie, digital nomad, discovery of DNA, disinformation, Donald Davies, double helix, Douglas Engelbart, Douglas Engelbart, easy for humans, difficult for computers, Fall of the Berlin Wall, Free Software Foundation, Grace Hopper, Hacker Ethic, Hans Moravec, informal economy, John Conway, John Markoff, John Perry Barlow, Ken Thompson, Kevin Kelly, Kickstarter, late capitalism, Lewis Mumford, linear programming, macro virus, Marshall McLuhan, means of production, Menlo Park, moral panic, mutually assured destruction, Norbert Wiener, old-boy network, OSI model, packet switching, Panopticon Jeremy Bentham, phenotype, post-industrial society, profit motive, QWERTY keyboard, RAND corporation, Ray Kurzweil, Reflections on Trusting Trust, RFC: Request For Comment, Richard Stallman, semantic web, SETI@home, stem cell, Steve Crocker, Steven Levy, Stewart Brand, Ted Nelson, telerobotics, The future is already here, the market place, theory of mind, urban planning, Vannevar Bush, Whole Earth Review, working poor, Yochai Benkler

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.


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

Aaron Swartz, American ideology, animal electricity, barriers to entry, borderless world, Californian Ideology, Charles Babbage, Chelsea Manning, Compatible Time-Sharing System, computer age, Computer Lib, creative destruction, digital divide, disruptive innovation, Donald Davies, Dr. Strangelove, Edward Snowden, Evgeny Morozov, Frederick Winslow Taylor, Hacker Ethic, Herbert Marcuse, Howard Rheingold, Hush-A-Phone, interchangeable parts, invisible hand, Ivan Sutherland, John Markoff, John Perry Barlow, Joseph Schumpeter, Leonard Kleinrock, Lewis Mumford, means of production, Menlo Park, Network effects, new economy, Norbert Wiener, open economy, OSI model, packet switching, pre–internet, radical decentralization, RAND corporation, RFC: Request For Comment, Richard Stallman, Ronald Coase, Ronald Reagan, scientific management, Silicon Valley, Steve Crocker, Steven Levy, Stewart Brand, systems thinking, technological determinism, technoutopianism, Ted Nelson, The Nature of the Firm, Thomas L Friedman, Thorstein Veblen, transaction costs, vertical integration, web of trust, work culture

Charles Babbage Institute, University of Minnesota, Minneapolis. 17 Baran interview, IEEE History Center, 1999. 18 In this era, a “small” computer was about the size of a refrigerator. 19 Abbate, Inventing the Internet, 59–69. 20 See Nathan Ensmenger, The Computer Boys Take Over: Computers, Programmers, and the Politics of Technical Expertise (Cambridge, MA: The MIT Press, 2010); Thomas Haigh, “Software in the 1960s as Concept, Service, and Product,” IEEE Annals of the History of Computing 24 (2002): 5–13; Martin Campbell-Kelly, “The History of the History of Software,” IEEE Annals of the History of Computing 29 (2007): 40–51. 21 Stephen D. 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.

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.

Because NWG emerged from a closed research community and had no relevance to contemporary production networks, it had no reason to be connected to any recognized standards body, such as the International Federation for Information Processing (IFIP) or X3. In the absence of any obvious external authority, Crocker initiated a document series in 1969 – the Request for Comments (RFCs) – whose name and structure perfectly captured NWG’s informal and experimental ethos. Crocker later recalled, “Most of us were graduate students … we kept expecting that an official protocol design team would announce itself.” Crocker slowly realized that no such team was going to arrive.


pages: 352 words: 96,532

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

air freight, Bill Duvall, Charles Babbage, Compatible Time-Sharing System, computer age, conceptual framework, Donald Davies, Douglas Engelbart, Douglas Engelbart, fault tolerance, Hush-A-Phone, information retrieval, Ivan Sutherland, John Markoff, Kevin Kelly, Leonard Kleinrock, Marc Andreessen, Menlo Park, military-industrial complex, Multics, natural language processing, OSI model, packet switching, RAND corporation, RFC: Request For Comment, Robert Metcalfe, Ronald Reagan, seminal paper, Silicon Valley, Skinner box, speech recognition, Steve Crocker, Steven Levy, The Soul of a New Machine

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.

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.

(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.


UNIX® Network Programming, Volume 1: The Sockets Networking API, 3rd Edition by W. Richard Stevens, Bill Fenner, Andrew M. Rudoff

Dennis Ritchie, exponential backoff, failed state, fudge factor, global macro, history of Unix, information retrieval, OpenAI, OSI model, p-value, RFC: Request For Comment, Richard Stallman, UUNET, web application

., 876, 952 reliable datagram service, 597 – 608 remote procedure call, see RPC remote terminal protocol, see Telnet rename function, 366 Index 977 Request for Comments, see RFC RES_length member, 865 RES_offset member, 865 RES_USE_INET6 constant, 346 res_init function, 349 reserved port, 51 – 52, 101, 111, 122, 213 reset flag, TCP header, see RST resolver, 305 – 306, 317, 346, 359 – 360, 362, 597, 879 – 880, 933 resource discovery, 530 resource record, DNS, see RR retransmission ambiguity problem, definition of, 598 timeout, see RTO revents member, 183 – 185, 403 Reverse Address Resolution Protocol, see RARP rewind function, 400 Reynolds, J. K., 50 – 51, 953 RFC (Request for Comments), 34, 914, 947 768, 34, 952 791, 869, 952 792, 882, 952 793, 35, 213, 952 862, 61 863, 61 864, 61 867, 61 868, 61 950, 875, 951 1071, 753, 948 1108, 950 1112, 550, 564, 949 1122, 43, 237, 247, 532, 576, 589, 877, 948 1185, 44, 950 1191, 56, 951 1305, 579, 951 1323, 35, 38 – 39, 236, 497, 599, 885, 950 1337, 203, 948 1349, 215, 870, 948 1390, 550, 950 1469, 550, 952 1519, 874, 949 1546, 529, 952 1700, 50 – 51, 953 1812, 772, 948 1832, 150, 953 1886, 304, 954 1918, 876, 952 1981, 56, 951 2026, 28, 948 2030, 579, 951 2113, 710, 950 2133, 361, 949 2140, 294, 954 2292, 732, 953 2327, 571, 949 978 UNIX Network Programming 2365, 552 – 553, 951 2367, 511, 519, 951 2401, 511, 951 2402, 719, 951 2406, 719, 951 2409, 524, 949 2428, 360, 947 2460, 55, 216, 721, 726, 871, 873, 949 2463, 882, 948 2464, 551, 948 2467, 551, 948 2470, 551, 949 2471, 879, 949 2474, 215, 870 – 871, 948, 952 2553, 346 – 347, 949 2581, 35, 208, 948 2675, 57, 721, 948 2711, 721, 952 2719, 267, 952 2765, 880, 952 2893, 880, 949 2960, 36, 280, 954 2974, 571, 949 2988, 35, 952 3041, 879, 951 3056, 889, 948 3068, 889, 950 3152, 304, 948 3168, 215, 870 – 871, 948, 952 3232, 50, 953 3286, 36, 952 3306, 551, 949 3307, 552, 949 3309, 36 3376, 564, 948 3390, 35, 947 3484, 317, 949 3493, 28, 71, 216, 346 – 347, 504, 949 3513, 529, 877 – 879, 949 3542, 28, 216, 397, 719, 738, 744, 953 3587, 878, 949 Host Requirements, 948 obtaining, 914 RIP (Routing Information Protocol, routing protocol), 57, 62, 535 Ritchie, D.

It is normally provided with SVR4. Each Internet protocol is defined by one or more documents called a Request for Comments (RFC), which are their formal specifications. The solution to Exercise 2.1 shows how to obtain RFCs. We use the terms ‘‘IPv4/IPv6 host’’ and ‘‘dual-stack host’’ to denote hosts that support both IPv4 and IPv6. Additional details on the TCP/IP protocols themselves are in TCPv1. The 4.4BSD implementation of TCP/IP is described in TCPv2. 2.3 User Datagram Protocol (UDP) UDP is a simple transport-layer protocol. It is described in RFC 768 [Postel 1980]. The application writes a message to a UDP socket, which is then encapsulated in a UDP datagram, which is then further encapsulated as an IP datagram, which is then sent to its destination.

Figure A.7 shows the different values of the high-order bits and what type of address these bits imply. 878 IPv4, IPv6, ICMPv4, and ICMPv6 Allocation Unspecified Loopback Global unicast address Global NSAP-based address Aggregatable global unicast address Global unicast address Link-local unicast address Site-local unicast address Multicast address Appendix A Interface ID size Format prefix Reference n/a n/a any any 64-bit 64-bit 64-bit 64-bit 0000 0000 ... 0000 0000 (128 bits) 0000 0000 ... 0000 0001 (128 bits) 000 0000001 001 (anything not otherwise mentioned) RFC 3513 RFC 3513 RFC 3513 RFC 1888 RFC 3587 RFC 3513 1111 1110 10 1111 1110 11 RFC 3513 RFC 3513 1111 1111 RFC 3513 n/a Figure A.7 Meaning of high-order bits of IPv6 addresses. These high-order bits are called the format prefix. For example, if the high-order 3 bits are 001, the address is called a global unicast address. If the high-order 8 bits are 11111111 (0xff), it is a multicast address.


pages: 632 words: 223,899

Exim: The Mail Transfer Agent by Philip Hazel

Debian, end-to-end encryption, Philip Hazel, 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.

If you do this, and if you arrange for Exim’s spool and log files to have mode 0640, it gives the administrators read access to these files, which is necessary if they want to run the eximon monitor program or examine log files directly. RFC Conformance The main RFCs that define basic Internet mail services are now very old. RFCs 821 and 822 were published in 1982; some clarifications were published in RFC 1123 in 1989. Subsequent RFCs have mostly been concerned with adding functionality such as MIME and extending the SMTP protocol. The Internet has changed dramatically since 1982 and MTAs have had to change with it, in some cases adopting new conventions that are not in the RFCs, and in others choosing to ignore the RFCs’ recommendations or relax their restrictions. Some, but not all, of these changes have been incorporated into revised versions of RFCs 821 and 822.


pages: 612 words: 187,431

The Art of UNIX Programming by Eric S. Raymond

A Pattern Language, Albert Einstein, Apple Newton, barriers to entry, bioinformatics, Boeing 747, Clayton Christensen, combinatorial explosion, commoditize, Compatible Time-Sharing System, correlation coefficient, David Brooks, Debian, Dennis Ritchie, domain-specific language, don't repeat yourself, Donald Knuth, end-to-end encryption, Everything should be made as simple as possible, facts on the ground, finite state, Free Software Foundation, general-purpose programming language, George Santayana, history of Unix, Innovator's Dilemma, job automation, Ken Thompson, Larry Wall, level 1 cache, machine readable, macro virus, Multics, MVC pattern, Neal Stephenson, no silver bullet, OSI model, pattern recognition, Paul Graham, peer-to-peer, premature optimization, pre–internet, publish or perish, revision control, RFC: Request For Comment, Richard Stallman, Robert Metcalfe, Steven Levy, the Cathedral and the Bazaar, transaction costs, Turing complete, Valgrind, wage slave, web application

. -- The Internet Standards Process — Revision 3 (RFC 2026) All IETF standards pass through a stage as RFCs (Requests for Comment). The submission process for RFCs is deliberately informal. RFCs may propose standards, survey results, suggest philosophical bases for subsequent RFCs, or even make jokes. The appearance of the annual April 1st RFC is the closest equivalent of a high holy day observance among Internet hackers, and has produced such gems as A Standard for the Transmission of IP Datagrams on Avian Carriers (RFC 1149)[149] the The Hyper Text Coffee Pot Control Protocol (RFC 2324),[150] and The Security Flag in the IPv4 Header (RFC 3514).[151] But joke RFCs are about the only sort of submission that instantly becomes an RFC.

They used a variety of operating systems that have since passed into history: TOPS-10, TOPS-20, Multics, ITS, SAIL. They programmed in assembler and dialects of Lisp. PDP-10 hackers took over running the ARPANET itself because nobody else wanted the job. Later, they became the founding cadre of the Internet Engineering Task Force (IETF) and originated the tradition of standardization through Requests For Comment (RFCs). Socially, they were young, exceptionally bright, almost entirely male, dedicated to programming to the point of addiction, and tended to have streaks of stubborn nonconformism — what years later would be called ‘geeks’. They, too, tended to be shaggy hippies and hippie-wannabes. They, too, had a vision of computers as community-building devices.

Possibly the single most successful minicomputer design in history; first shipped in 1970, last shipped in 1990, and the immediate ancestor of the VAX. The PDP-11 was the first major Unix platform. PNG Portable Network Graphics. The World Wide Web Consortium's standard and recommended format for bitmap graphics images. An elegantly designed binary graphics format described in Chapter 5. RFC Request For Comment. An Internet standard. The name arose at a time when the documents were regarded as proposals to be submitted to a then-nonexistent but anticipated formal approval process of some sort. The formal approval process never materialized. RPC Remote Procedure Call. Use of IPC methods that attempt to create the illusion that the processes exchanging them are running in the same address space, so they can cheaply (a) share complex structures, and (b) call each other like function libraries, ignoring latency and other performance considerations.


Principles of Protocol Design by Robin Sharp

accounting loophole / creative accounting, business process, discrete time, exponential backoff, fault tolerance, finite state, functional programming, Gödel, Escher, Bach, information retrieval, loose coupling, MITM: man-in-the-middle, OSI model, packet switching, quantum cryptography, RFC: Request For Comment, stochastic process

Many of them are now available without charge from ITU-T’s web site at: 374 Appendix B http://www.itu.int/ The others can be purchased via the website or by contacting ITU-T. 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.

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 826: Ethernet Address Resolution Protocol: Or converting network protocol addresses to 48-bit Ethernet address for transmission on Ethernet hardware (1982) 215. Internet: RFC 959: File Transfer Protocol (FTP) (1985) 216. Internet: RFC 977: Network News Transfer Protocol (1986) 217. Internet: RFC 1034: Domain Names – Concepts and Facilities (1987) 218. Internet: RFC 1035: Domain Names – Implementation and Specification (1987) 219. Internet: RFC 1157: Simple Network Management Protocol (SNMP) (1990) 220. Internet: RFC 1321: The MD5 Message-Digest Algorithm (1992) 221. Internet: RFC 1591: Domain Name System Structure and Delegation (1994) 222. Internet: RFC 1939: Post Office Protocol – Version 3 (1996) 223. Internet: RFC 2026: The Internet Standards Process – Revision 3 (1996) References 387 224.


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

Apple II, augmented reality, Bill Duvall, Charles Babbage, classic study, Compatible Time-Sharing System, Computing Machinery and Intelligence, conceptual framework, Donald Davies, Douglas Engelbart, Douglas Engelbart, Dynabook, experimental subject, Grace Hopper, hiring and firing, hypertext link, index card, information retrieval, invention of hypertext, Ivan Sutherland, Jaron Lanier, Jeff Rulifson, John von Neumann, knowledge worker, Leonard Kleinrock, Menlo Park, military-industrial complex, Mother of all demos, Multics, new economy, Norbert Wiener, Norman Mailer, packet switching, Project Xanadu, QWERTY keyboard, Ralph Waldo Emerson, RAND corporation, RFC: Request For Comment, Sapir-Whorf hypothesis, 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, work culture

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?

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.

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.


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

Debian, OSI model, peer-to-peer, pirate software, RFC: Request For Comment

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.

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.

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.


pages: 996 words: 180,520

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

business process, Chuck Templeton: OpenTable:, Debian, en.wikipedia.org, Firefox, Free Software Foundation, RFC: Request For Comment, web application

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.

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 ...

[318] http://www.innovation.ch/personal/ronald/ntlm.html, in more detail at http://davenport.sourceforge.net/ntlm.html [319] http://rfc.sunsite.dk/rfc/rfc4559.html [320] http://rfc.sunsite.dk/rfc/rfc4178.html [321] In general, Kerberos provides authentication on both sides, so the server must also authenticate itself with the client. E.2 Kerberos Authentication with mod_auth_kerb The module mod_auth_kerb integrates Apache into an existing Kerberos environment and allows authentication through two procedures: simple authentication with the Basic method or the negotiation procedure SP-NEGO, described in RFC 4559. Both procedures are shown in Figure E-1. For an authentication via negotiate (only Kerberos v5), the client fetches a ticket from the Kerberos server (1), which it forwards to the Web server (2).


pages: 629 words: 142,393

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

A Declaration of the Independence of Cyberspace, algorithmic bias, Amazon Mechanical Turk, Andy Kessler, barriers to entry, behavioural economics, book scanning, Brewster Kahle, Burning Man, c2.com, call centre, Cass Sunstein, citizen journalism, Citizen Lab, Clayton Christensen, clean water, commoditize, commons-based peer production, corporate governance, Daniel Kahneman / Amos Tversky, digital divide, disruptive innovation, distributed generation, en.wikipedia.org, end-to-end encryption, Firefox, folksonomy, Free Software Foundation, game design, Hacker Ethic, Howard Rheingold, Hush-A-Phone, illegal immigration, index card, informal economy, information security, Internet Archive, jimmy wales, John Markoff, John Perry Barlow, license plate recognition, loose coupling, mail merge, Morris worm, national security letter, old-boy network, One Laptop per Child (OLPC), OSI model, packet switching, peer-to-peer, post-materialism, pre–internet, price discrimination, profit maximization, radical decentralization, Ralph Nader, RFC: Request For Comment, RFID, Richard Stallman, Richard Thaler, risk tolerance, Robert Bork, Robert X Cringely, SETI@home, Silicon Valley, Skype, slashdot, software patent, Steve Ballmer, Steve Jobs, Ted Nelson, Telecommunications Act of 1996, the Cathedral and the Bazaar, the long tail, The Nature of the Firm, The Wisdom of Crowds, Tragedy of the Commons, web application, wikimedia commons, Yochai Benkler, zero-sum game

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.

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.


Nagios: System and Network Monitoring by Wolfgang Barth

Chuck Templeton: OpenTable:, Debian, en.wikipedia.org, Firefox, RFC: Request For Comment, web application

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 cross-links, 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.

Further development on the second version, SNMPv2, was intended to solve problems concerning the display of value ranges, error events, and the performance if there are mass requests (RFC 1905). This RFC was never fully implemented, however. The only relatively complete implementation that was used in practice is known as the Community-based SNMPv2, or SNMPv2c for short (RFC 1901– 1908). The current version, SNMPv3 (RFC 3411–3418), has the status of an Internet standard. Agents with SNMPv3 implementations always understand requests from SNMPv1. Apart from extended protocol operations, there are no fundamental differences between SNMPv1 and SNMPv2c.

If you do not maintain SAP authorizations yourself, you can skip this section. 20.2 Monitoring with SAP’s Own Monitoring System (CCMS) When maintaining permissions, the following permission objects are added manually: S_RFC, S_XMI_LOG, and S_XMI_LOG (see also Figure 20.3). Whether these permissions are sufficient or not can be tested with the plugin check_sap_cons described in Section 20.2.4, page 394 check_sap_cons. If a function group (such as SALG) is missing from the permission object S_RFC, the plugin shows name of this in plain text in the error message. The login data is stored on the Nagios server in the file /etc/sapmon/login.cfg. When doing this, various target hosts (called RFC destinations in SAP) can be configured simultaneously. Such a login configuration for a target system is called an RFC template in the language of the CCMS plugins (Section 20.2.4, page 394).


Smart Grid Standards by Takuro Sato

business cycle, business process, carbon footprint, clean water, cloud computing, data acquisition, decarbonisation, demand response, distributed generation, electricity market, energy security, exponential backoff, factory automation, Ford Model T, green new deal, green transition, information retrieval, information security, Intergovernmental Panel on Climate Change (IPCC), Internet of things, Iridium satellite, iterative process, knowledge economy, life extension, linear programming, low earth orbit, machine readable, market design, MITM: man-in-the-middle, off grid, oil shale / tar sands, OSI model, packet switching, performance metric, RFC: Request For Comment, RFID, smart cities, smart grid, smart meter, smart transportation, Thomas Davenport

HomePlug MAC layer is compatible with Ethernet, IEEE 802.3 frame formats, and utilizes Logical Link Control (LLC) sublayer, IEEE 802.2 [21], which represents an IPv6 Networking Layer IEEE 802.2, RFC 2464 Network layer RFC 4944 consistent with goals in RFC 4919 Adaptation layer IEEE 802.15.4 other PHY/MAC technologies Link layer IEEE 802.3 IEEE 802.11 HomePlug Figure 5.8 Overview of an adaptation layer Smart Energy Consumption 211 interface to Internet Protocol (IP) Network Layer. Specification of IPv6 packet transmission over Ethernet is provided in Request for Comments (RFC), 2464 [22]. Other Networks The Adaptation Layer of other networks actually depends on the used PHY/MAC technology.

Smart Energy Consumption 199 Table 5.2 Standard list of smart home and building automation ISO/IEC Information Technology-Home Electronic System (HES) Function field Standard name Short introduction HES architecture ISO/IEC 14543-2 series, 14543-3 series, 14543-4 series, 14543-5 series HES gateway ISO/IEC 15045-1, 15045-2 HES application model ISO/IEC 15067-1, 15067-2, 15067-3, 15067-4 HES overview ISO/IEC JTC 1/SC 25/WG 1 N 1516 HES interoperability ISO/IEC 18012-1, 18012-2 HES WiBEEM standard ISO/IEC 29145 series ZigBee/HomePlug Smart Energy Profile 2.0 HAN ZigBee/HomePlug SEP 2.0 Link layer GSM/CDMA Link layer IEEE 802.3 series Link layer Link layer IEEE 802.11 series IEEE 802.15.4 Link layer IEEE P1901 series Link layer IEEE P1775 Link layer IEEE P1905 Link layer ITU G.9960/9961 (G.hn) Standards specify the HES architecture, including the communication layer, user process, system management, media and media-dependent layers, and intelligent grouping and resource sharing Standards specify the architecture and requirements for the HES residential gateway Standards specify the HES application services and protocol, lighting and security models, and energy-management model An overview of standards developed by WG 1 related to the Smart Grid Standards specify requirements for interoperability and application model Standards specify the WiBEEM standard for HES, including physical layer, MAC layer, and network layer specifications Technical requirements for implementing SEP 2.0 on ZigBee, HomePlug, Wi-Fi, Ethernet, and other IP capable platforms The second-generation telecommunication standards (2G) Defines the PHY/MAC layers of wired Ethernet Standards for implementing WLAN MAC/PHY specifications for WPANs Standard for broadband over power line networks Standard for power line communication equipment Standards for interoperable hybrid HAN Defines networking over power lines, phone lines, and coaxial cables with data rates up to 1 Gbit/s (continued overleaf) Smart Grid Standards 200 Table 5.2 (continued) ISO/IEC Information Technology-Home Electronic System (HES) Function field Standard name Short introduction Link layer ITU G.9954 (HomePNA) Link layer Link layer HomePlug series LTE Link layer Adaptation layer WiMAX/WCDMA/CDMA2000/ TD-SCDMA, Time Division Synchronous Code Division Multiple Access ID-6ND Adaptation layer IEEE 802.2 Adaptation layer RFC 2464 Adaptation layer RFC 4919 Adaptation layer RFC 4944 Network layer Network layer Network layer Network layer Network layer Network layer RFC 1042 RFC 4291 RFC 2460 RFC 4443 RFC 4861 RFC 4862 Application architecture Application requirements REST Application protocol Application protocol Data model EXI 1.0 Data model IEC 61970-301 ZigBee/HomePlug MRD RFC 2616 IEC 61850 series Describes the generic transport architecture for HAN and interfaces to a provider’s access network PLC specifications for HAN The OFDM-based next-generation telecommunication standard The third-generation (3G) telecommunication standard 6LoWPAN Neighbor Discovery Standard Local and metropolitan area networks part 2: Logical Link Control Transmission of IPv6 packets over Ethernet networks IPv6 over low-power wireless personal area networks (6LoWPANs) Transmission of IPv6 packets over IEEE 802.15.4 networks IP datagrams IETF IPv6 addressing architecture Internet protocol version 6 IETF ICMPv6 services IPv6 Neighbor Discovery IPv6 stateless address autoconfiguration Representational state transfer Marketing requirements document (MRD) for SEP and the next-generation smart energy use cases Efficient XML interchange (EXI) Format 1.0 Hypertext transfer protocol-HTTP/1.1 Specifies the design of electricity substation automation CIM for energy management system application program interface (API) Smart Energy Consumption 201 Table 5.2 (continued) ISO/IEC Information Technology-Home Electronic System (HES) Function field Standard name Short introduction Data model IEC 61968 series PEV application requirements SAE J2836 series PEV application requirements SAE J2847 series Prepayment IEC 62055 Security RFC 2409 Security RFC 4279 Security RFC 4302 Security RFC 4303 Security RFC 4347 Security RFC 4492 Security RFC 5238 Security Security RFC 5246 RFC 5247 Security RFC 5288 Security ANSI series Security FIPS, Federal Information Processing Standards, series Defines the system interface for distribution management Defines use cases for communication between PEV and utility grid, supply equipment, customers, and so on Defines communications between PEV and utility grid, supply equipment, and a utility grid for reverse power flow Electricity metering – payment systems Provides security associations between network nodes Preshared key cipher suites for transport layer security (TLS) Provides data integrity, data origin authentication, and protection against replay attacks Provides confidentiality, data integrity, data-origin authentication, and protection against replay attacks Datagram transport layer security (DTLS) Elliptic curve cryptography (ECC) cipher suites for TLS DTLS over the datagram congestion control protocol (DCCP) TLS protocol version 1.2 Extensible authentication protocol (EAP) key management framework (KMF) AES Galois counter mode (GCM) cipher suites for TLS Public key cryptography for financial services industry NIST standards that define cryptographic modules, hash, advanced encryption, Hash-based Message Authentication Code (HMAC), and so on (continued overleaf) Smart Grid Standards 202 Table 5.2 (continued) ISO/IEC Information Technology-Home Electronic System (HES) Function field Standard name Short introduction Security SEC-1, SEC-4 Standards define efficient cryptography group and ECQV, Elliptic Curve Qu-Vanstone, scheme OpenHAN 2.0 HAN UCAIug HAN SRS V2.0 A specification developed by UCAIug that provides common architecture, language, and requirements for HAN Z-Wave HAN Z-Wave A wireless mesh networking protocol developed by the Z-Wave Alliance for HAN ECHONET HAN ECHONET ZigBee Home Automation Public Application Profile Home automation ZigBee home automation public application profile BACnet Building automation ANSI/ASHRAE standard 135-2008 Building automation LONWORKS Building automation Building automation ISO 16484 series Building automation ISO/IEC DIS 14908 series Building automation Building automation IEEE 1473-L Building automation LONTALK Building automation LONMAKER ANSI/EIA-852 ANSI/CEA-709.1 LONWORKS A Japanese standard suite for HAN ZigBee standard for controlling of home appliances, lighting, environment, energy use, and security A building automation and control networking protocol developed by ASHRAE Standards for building automation and control systems Enhanced IP-tunneling channel specification The standard accepted by ANSI for control networking based on LONTALK Standards for interconnection of information technology equipment The control network protocol for rail car network Building automation standards developed by Echelon Corporation An open control protocol for networking devices over various media A software package for development of local control networks Smart Energy Consumption 203 Table 5.2 (continued) ISO/IEC Information Technology-Home Electronic System (HES) Function field Standard name Short introduction INSTEON Building automation Building automation KNX Building automation Building automation INSTEON compared 2006 INSTEON the details 2005 KNXVol1 KNXVol2 Building automation KNXVol3 Building automation Building automation KNXVol4 Building automation KNXVol6 Building automation Building automation Building automation Building automation KNXVol7 Building automation Building automation GB/Z 20965 KNXVol5 KNXVol8 KNXVol9 KNXVol10 En 500090 A white paper compares INSTEON technology with X10, UPB, Universal Power line Bus, LONWORKS, HomePlug, INTELLEON, CEBus, ZigBee, Wi-Fi, Bluetooth, and so on A white paper explains INSTEON overview, messaging, signaling details, network usage, and application development A general overview of the whole KNX system Provides sufficient detail about how to develop the products based on the KNX technology Provides the information about hardware and software development of products Requirements for the KNX devices Provides the requirements, steps, and procedures of products or services for obtaining the KNX trademark Profiles that define a set of minimum requirements for each of the system specification categories Function block specifications for different application fields Specifies system conformance test Specifies standardized components, devices, and tests Provides the application-domain-specific standards that are primarily the HVAC easy extension (HEE) parts Chinese standard for building automation based on KNX European norm for Home and Building Electronic Systems (HBESs) (continued overleaf) Smart Grid Standards 204 Table 5.2 (continued) ISO/IEC Information Technology-Home Electronic System (HES) Function field Standard name Short introduction ONE-NET Building automation ONE-NET specification V1.6.2 2011 Building automation ONE-NET device payload format V1.6.2 2010 Open specification for designing a low-cost and low-bandwidth wireless control network Provides various formats of ONE-NET device payloads WLAN, Wireless Local Area Network, OFDM, Orthogonal Frequency Division Multiplexing, WCDMA, Wideband Code Division Multiple Access.

Smart Energy Consumption 199 Table 5.2 Standard list of smart home and building automation ISO/IEC Information Technology-Home Electronic System (HES) Function field Standard name Short introduction HES architecture ISO/IEC 14543-2 series, 14543-3 series, 14543-4 series, 14543-5 series HES gateway ISO/IEC 15045-1, 15045-2 HES application model ISO/IEC 15067-1, 15067-2, 15067-3, 15067-4 HES overview ISO/IEC JTC 1/SC 25/WG 1 N 1516 HES interoperability ISO/IEC 18012-1, 18012-2 HES WiBEEM standard ISO/IEC 29145 series ZigBee/HomePlug Smart Energy Profile 2.0 HAN ZigBee/HomePlug SEP 2.0 Link layer GSM/CDMA Link layer IEEE 802.3 series Link layer Link layer IEEE 802.11 series IEEE 802.15.4 Link layer IEEE P1901 series Link layer IEEE P1775 Link layer IEEE P1905 Link layer ITU G.9960/9961 (G.hn) Standards specify the HES architecture, including the communication layer, user process, system management, media and media-dependent layers, and intelligent grouping and resource sharing Standards specify the architecture and requirements for the HES residential gateway Standards specify the HES application services and protocol, lighting and security models, and energy-management model An overview of standards developed by WG 1 related to the Smart Grid Standards specify requirements for interoperability and application model Standards specify the WiBEEM standard for HES, including physical layer, MAC layer, and network layer specifications Technical requirements for implementing SEP 2.0 on ZigBee, HomePlug, Wi-Fi, Ethernet, and other IP capable platforms The second-generation telecommunication standards (2G) Defines the PHY/MAC layers of wired Ethernet Standards for implementing WLAN MAC/PHY specifications for WPANs Standard for broadband over power line networks Standard for power line communication equipment Standards for interoperable hybrid HAN Defines networking over power lines, phone lines, and coaxial cables with data rates up to 1 Gbit/s (continued overleaf) Smart Grid Standards 200 Table 5.2 (continued) ISO/IEC Information Technology-Home Electronic System (HES) Function field Standard name Short introduction Link layer ITU G.9954 (HomePNA) Link layer Link layer HomePlug series LTE Link layer Adaptation layer WiMAX/WCDMA/CDMA2000/ TD-SCDMA, Time Division Synchronous Code Division Multiple Access ID-6ND Adaptation layer IEEE 802.2 Adaptation layer RFC 2464 Adaptation layer RFC 4919 Adaptation layer RFC 4944 Network layer Network layer Network layer Network layer Network layer Network layer RFC 1042 RFC 4291 RFC 2460 RFC 4443 RFC 4861 RFC 4862 Application architecture Application requirements REST Application protocol Application protocol Data model EXI 1.0 Data model IEC 61970-301 ZigBee/HomePlug MRD RFC 2616 IEC 61850 series Describes the generic transport architecture for HAN and interfaces to a provider’s access network PLC specifications for HAN The OFDM-based next-generation telecommunication standard The third-generation (3G) telecommunication standard 6LoWPAN Neighbor Discovery Standard Local and metropolitan area networks part 2: Logical Link Control Transmission of IPv6 packets over Ethernet networks IPv6 over low-power wireless personal area networks (6LoWPANs) Transmission of IPv6 packets over IEEE 802.15.4 networks IP datagrams IETF IPv6 addressing architecture Internet protocol version 6 IETF ICMPv6 services IPv6 Neighbor Discovery IPv6 stateless address autoconfiguration Representational state transfer Marketing requirements document (MRD) for SEP and the next-generation smart energy use cases Efficient XML interchange (EXI) Format 1.0 Hypertext transfer protocol-HTTP/1.1 Specifies the design of electricity substation automation CIM for energy management system application program interface (API) Smart Energy Consumption 201 Table 5.2 (continued) ISO/IEC Information Technology-Home Electronic System (HES) Function field Standard name Short introduction Data model IEC 61968 series PEV application requirements SAE J2836 series PEV application requirements SAE J2847 series Prepayment IEC 62055 Security RFC 2409 Security RFC 4279 Security RFC 4302 Security RFC 4303 Security RFC 4347 Security RFC 4492 Security RFC 5238 Security Security RFC 5246 RFC 5247 Security RFC 5288 Security ANSI series Security FIPS, Federal Information Processing Standards, series Defines the system interface for distribution management Defines use cases for communication between PEV and utility grid, supply equipment, customers, and so on Defines communications between PEV and utility grid, supply equipment, and a utility grid for reverse power flow Electricity metering – payment systems Provides security associations between network nodes Preshared key cipher suites for transport layer security (TLS) Provides data integrity, data origin authentication, and protection against replay attacks Provides confidentiality, data integrity, data-origin authentication, and protection against replay attacks Datagram transport layer security (DTLS) Elliptic curve cryptography (ECC) cipher suites for TLS DTLS over the datagram congestion control protocol (DCCP) TLS protocol version 1.2 Extensible authentication protocol (EAP) key management framework (KMF) AES Galois counter mode (GCM) cipher suites for TLS Public key cryptography for financial services industry NIST standards that define cryptographic modules, hash, advanced encryption, Hash-based Message Authentication Code (HMAC), and so on (continued overleaf) Smart Grid Standards 202 Table 5.2 (continued) ISO/IEC Information Technology-Home Electronic System (HES) Function field Standard name Short introduction Security SEC-1, SEC-4 Standards define efficient cryptography group and ECQV, Elliptic Curve Qu-Vanstone, scheme OpenHAN 2.0 HAN UCAIug HAN SRS V2.0 A specification developed by UCAIug that provides common architecture, language, and requirements for HAN Z-Wave HAN Z-Wave A wireless mesh networking protocol developed by the Z-Wave Alliance for HAN ECHONET HAN ECHONET ZigBee Home Automation Public Application Profile Home automation ZigBee home automation public application profile BACnet Building automation ANSI/ASHRAE standard 135-2008 Building automation LONWORKS Building automation Building automation ISO 16484 series Building automation ISO/IEC DIS 14908 series Building automation Building automation IEEE 1473-L Building automation LONTALK Building automation LONMAKER ANSI/EIA-852 ANSI/CEA-709.1 LONWORKS A Japanese standard suite for HAN ZigBee standard for controlling of home appliances, lighting, environment, energy use, and security A building automation and control networking protocol developed by ASHRAE Standards for building automation and control systems Enhanced IP-tunneling channel specification The standard accepted by ANSI for control networking based on LONTALK Standards for interconnection of information technology equipment The control network protocol for rail car network Building automation standards developed by Echelon Corporation An open control protocol for networking devices over various media A software package for development of local control networks Smart Energy Consumption 203 Table 5.2 (continued) ISO/IEC Information Technology-Home Electronic System (HES) Function field Standard name Short introduction INSTEON Building automation Building automation KNX Building automation Building automation INSTEON compared 2006 INSTEON the details 2005 KNXVol1 KNXVol2 Building automation KNXVol3 Building automation Building automation KNXVol4 Building automation KNXVol6 Building automation Building automation Building automation Building automation KNXVol7 Building automation Building automation GB/Z 20965 KNXVol5 KNXVol8 KNXVol9 KNXVol10 En 500090 A white paper compares INSTEON technology with X10, UPB, Universal Power line Bus, LONWORKS, HomePlug, INTELLEON, CEBus, ZigBee, Wi-Fi, Bluetooth, and so on A white paper explains INSTEON overview, messaging, signaling details, network usage, and application development A general overview of the whole KNX system Provides sufficient detail about how to develop the products based on the KNX technology Provides the information about hardware and software development of products Requirements for the KNX devices Provides the requirements, steps, and procedures of products or services for obtaining the KNX trademark Profiles that define a set of minimum requirements for each of the system specification categories Function block specifications for different application fields Specifies system conformance test Specifies standardized components, devices, and tests Provides the application-domain-specific standards that are primarily the HVAC easy extension (HEE) parts Chinese standard for building automation based on KNX European norm for Home and Building Electronic Systems (HBESs) (continued overleaf) Smart Grid Standards 204 Table 5.2 (continued) ISO/IEC Information Technology-Home Electronic System (HES) Function field Standard name Short introduction ONE-NET Building automation ONE-NET specification V1.6.2 2011 Building automation ONE-NET device payload format V1.6.2 2010 Open specification for designing a low-cost and low-bandwidth wireless control network Provides various formats of ONE-NET device payloads WLAN, Wireless Local Area Network, OFDM, Orthogonal Frequency Division Multiplexing, WCDMA, Wideband Code Division Multiple Access.


pages: 2,054 words: 359,149

The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities by Justin Schuh

address space layout randomization, Albert Einstein, Any sufficiently advanced technology is indistinguishable from magic, bash_history, business logic, business process, database schema, Debian, defense in depth, en.wikipedia.org, Firefox, information retrieval, information security, iterative process, Ken Thompson, loose coupling, MITM: man-in-the-middle, Multics, MVC pattern, off-by-one error, operational security, OSI model, RFC: Request For Comment, slashdot, SQL injection, web application

Next Generation Security Software. http://www.nextgenss.com/research/papers/. OpenBSD Project. OpenBSD Manual (www.openbsd.org/cgi-bin/man.cgi), 2006. Paxon, V. Personal Web site (www.icir.org/vern/). Postel, J. “Request for Comments (RFC) 0768: User Datagram Protocol.” Internet Engineering Task Force (IETF), 1980. Postel, J. “Request for Comments (RFC) 0791: Internet Protocol.” Internet Engineering Task Force (IETF), 1981. Postel, J. “Request for Comments (RFC) 0793: Transmission Control Protocol.” Internet Engineering Task Force (IETF), 1981. Quinlan, D., Russell, P.R., and Yeoh, C. “Filesystem Hierarchy Standard.”

Blackhat Briefings, 2000 . Maughan, D., et al. “Request for Comments (RFC) 2408: Internet Security Association & Key Management Protocol (ISAKMP).” Internet Engineering Task Force (IETF), 1998. McConnell, S. Code Complete: A Practical Handbook of Software Construction. Microsoft Press, 2004 . Menezes, A., van Oorschot, P., and Vanstone, S. Handbook of Applied Cryptography. CRC Press, 2000 . Microsoft Developer Network (MSDN) Library. http://msdn.microsoft.com/library/, 2006. Mockapetris, P. “Request for Comments (RFC) 1035: Domain Names—Implementation & Specification.”

Standards Documentation If you’re asked to examine an application that uses standardized network protocols or file formats, a good understanding of how those protocols and file formats are structured is necessary to know how the application should function and what deficiencies might exist. Therefore, acquiring any published standards and related documentation created by researchers and authors is a good idea. Typically, Internet-related standards documents are available as requests for comments (RFCs, available at www.ietf.org/rfc/). Open-source implementations of the same standards can be particularly useful in clarifying ambiguities you might encounter when researching the technology a target application uses. Source Profiling Access to source code can be extremely helpful when you’re trying to gather information on an application.


pages: 312 words: 93,504

Common Knowledge?: An Ethnography of Wikipedia by Dariusz Jemielniak

Andrew Keen, barriers to entry, Benevolent Dictator For Life (BDFL), citation needed, collaborative consumption, collaborative editing, commons-based peer production, conceptual framework, continuous integration, crowdsourcing, Debian, deskilling, digital Maoism, disinformation, en.wikipedia.org, Filter Bubble, Free Software Foundation, Gabriella Coleman, Google Glasses, Guido van Rossum, 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, selection bias, Silicon Valley, Skype, slashdot, social software, Stewart Brand, the Cathedral and the Bazaar, The Hackers Conference, The Nature of the Firm, the strength of weak ties, The Wisdom of Crowds, transaction costs, Wayback Machine, WikiLeaks, wikimedia commons, Wikivoyage, Yochai Benkler, zero-sum game

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]].

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.

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]]).


pages: 1,025 words: 150,187

ZeroMQ by Pieter Hintjens

AGPL, anti-pattern, behavioural economics, carbon footprint, cloud computing, Debian, distributed revision control, domain-specific language, eat what you kill, Eben Moglen, exponential backoff, factory automation, fail fast, fault tolerance, fear of failure, finite state, Internet of things, iterative process, no silver bullet, power law, premature optimization, profit motive, pull request, revision control, RFC: Request For Comment, Richard Stallman, Skype, smart transportation, software patent, Steve Jobs, Valgrind, WebSocket

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.

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.

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.


pages: 720 words: 197,129

The Innovators: How a Group of Inventors, Hackers, Geniuses and Geeks Created the Digital Revolution by Walter Isaacson

1960s counterculture, Ada Lovelace, AI winter, Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Albert Einstein, AltaVista, Alvin Toffler, Apollo Guidance Computer, Apple II, augmented reality, back-to-the-land, beat the dealer, Bill Atkinson, Bill Gates: Altair 8800, bitcoin, Bletchley Park, Bob Noyce, Buckminster Fuller, Byte Shop, c2.com, call centre, Charles Babbage, citizen journalism, Claude Shannon: information theory, Clayton Christensen, commoditize, commons-based peer production, computer age, Computing Machinery and Intelligence, content marketing, crowdsourcing, cryptocurrency, Debian, desegregation, Donald Davies, Douglas Engelbart, Douglas Engelbart, Douglas Hofstadter, driverless car, Dynabook, El Camino Real, Electric Kool-Aid Acid Test, en.wikipedia.org, eternal september, Evgeny Morozov, Fairchild Semiconductor, financial engineering, Firefox, Free Software Foundation, Gary Kildall, Google Glasses, Grace Hopper, Gödel, Escher, Bach, Hacker Ethic, Haight Ashbury, Hans Moravec, Howard Rheingold, Hush-A-Phone, HyperCard, hypertext link, index card, Internet Archive, Ivan Sutherland, Jacquard loom, Jaron Lanier, Jeff Bezos, jimmy wales, John Markoff, John von Neumann, Joseph-Marie Jacquard, Leonard Kleinrock, Lewis Mumford, linear model of innovation, Marc Andreessen, Mark Zuckerberg, Marshall McLuhan, Menlo Park, Mitch Kapor, Mother of all demos, Neil Armstrong, new economy, New Journalism, Norbert Wiener, Norman Macrae, packet switching, PageRank, Paul Terrell, pirate software, popular electronics, pre–internet, Project Xanadu, punch-card reader, RAND corporation, Ray Kurzweil, reality distortion field, RFC: Request For Comment, Richard Feynman, Richard Stallman, Robert Metcalfe, Rubik’s Cube, Sand Hill Road, Saturday Night Live, self-driving car, Silicon Valley, Silicon Valley startup, Skype, slashdot, speech recognition, Steve Ballmer, Steve Crocker, Steve Jobs, Steve Wozniak, Steven Levy, Steven Pinker, Stewart Brand, Susan Wojcicki, technological singularity, technoutopianism, Ted Nelson, Teledyne, the Cathedral and the Bazaar, The Coming Technological Singularity, The Nature of the Firm, The Wisdom of Crowds, Turing complete, Turing machine, Turing test, value engineering, Vannevar Bush, Vernor Vinge, Von Neumann architecture, Watson beat the top human players on Jeopardy!, Whole Earth Catalog, Whole Earth Review, wikimedia commons, William Shockley: the traitorous eight, Yochai Benkler

“To emphasize the informal nature, I hit upon this silly little idea of calling every one of them a ‘Request for Comments’—no matter whether it really was a request.” It was the perfect phrase to encourage Internet-era collaboration—friendly, not bossy, inclusive, and collegial. “It probably helped that in those days we avoided patents and other restrictions; without any financial incentive to control the protocols, it was much easier to reach agreement,” Crocker wrote forty years later.97 The first RFC went out on April 7, 1969, mailed in old-fashioned envelopes through the postal system. (There was no such thing as email, since they hadn’t invented the network yet.)

Apple, ref1 Internet and, ref1 Jobs’s idea for, ref1 Kay’s prediction of, ref1, ref2, ref3 software for, ref1 technology needed for, ref1, ref2 Philco, ref1, ref2 Philips, Thomas, ref1 phone circuits, ref1 phone signals, ref1 photovoltaic effect, ref1 Physics and Technology of Semiconductor Devices (Grove), ref1 PicoSpan, ref1 Pierce, John, ref1 Pinker, Steven, ref1 Pitts, Bill, ref1, ref2 Pixar, ref1, ref2 planar process, ref1 planimeter, ref1 plutonium-239, ref1 p-n junction, ref1 PNP transistor, ref1 Poggio, Tomaso, ref1 Polaris, ref1 Pong, ref1, ref2, ref3, ref4 Popular Electronics, ref1, ref2, ref3, ref4, ref5, ref6, ref7 Post Office Research Station, ref1, ref2 Practice of Management, The (Drucker), ref1 Presley, Elvis, ref1 Princeton University, ref1, ref2, ref3 printing press, ref1 private enterprise, ref1, ref2 PRNET, ref1, ref2, ref3 Processor Technology, ref1 Procter & Gamble, ref1, ref2 Prodigy, ref1, ref2, ref3 programming, ref1, ref2 as Babbage’s conceptual leap, ref1 of ENIAC, ref1 Lovelace’s exploration of, ref1, ref2, ref3, ref4, ref5 as true value of computers, ref1 von Neumann’s work on, ref1 on Z1, ref1 “Protocol for Packet Network Interconnection, A” (Kahn and Cerf), ref1 p-type, ref1 punch cards, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, ref10, ref11, ref12, ref13, ref14 Pyra Labs, ref1, ref2 QDOS, ref1 Q-Link, ref1 Qualcomm, ref1 Quantum, ref1 Quantum 2000, ref1 quantum physics, ref1, ref2, ref3 queuing theory, ref1 QuickWeb, ref1 radar, ref1, ref2 radio, ref1 transistors for, ref1 Railway Express Agency, ref1 Ralls, John, ref1 Ram Dass, ref1 RAND Corporation, ref1, ref2, ref3, ref4, ref5, ref6, ref7, ref8 RankDex, ref1 Raskin, Jef, ref1 Raymond, Eric, ref1, ref2, ref3, ref4 Raytheon, ref1, ref2 RCA, ref1, ref2, ref3, ref4, ref5 rebel entrepreneurs, ref1 Regency TR-1, ref1 Reich, Charles, ref1 Reid, T. R, ref1, ref2 relays, ref1, ref2, ref3, ref4 on Z1, ref1 Remington Rand, ref1, ref2, ref3 Remote Procedure Cell, ref1 “Report on an Electronic Diff. Analyzer” (Mauchly and Eckert), ref1 Requests for Comments (RFC), ref1, ref2, ref3 Resource One, ref1 Rheingold, Howard, ref1, ref2, ref3, ref4, ref5 Riordan, Michael, ref1 Roberts, Ed, ref1, ref2, ref3, ref4, ref5, ref6, ref7 background of, ref1 Roberts, Larry, ref1, ref2, ref3, ref4, ref5, ref6, ref7 ARPA funding raised by, ref1 ARPA hiring of, ref1 bids solicited for ARPANET minicomputers, ref1 decentralized network favored by, ref1 gambling by, ref1 Kleinrock hired by, ref1 on nuclear weapons myth of Internet origin, ref1 personality of, ref1 robot, ref1 robots, navigating by, ref1 Robot Wisdom, ref1 Rock, Arthur, ref1, ref2, ref3, ref4, ref5 Intel money raised by, ref1, ref2 venture capital and, ref1 Rockefeller, John D., Jr, ref1 Rockefeller, Laurence, ref1, ref2, ref3 Rolling Stone, ref1, ref2, ref3, ref4 Rometty, Ginni, ref1, ref2, ref3 Roosevelt, Franklin, ref1 Rosen, Ben, ref1 Rosenberg, Scott, ref1 Rosenblatt, Frank, ref1 “Rosencrantz and Ethernet” (Cerf), ref1 Rosenfeld, Jeremy, ref1 Rossetto, Louis, ref1, ref2 routers, ref1, ref2, ref3, ref4 Rubenstein, David, ref1 Russell, Bertrand, ref1 Russell, Steve, ref1, ref2, ref3, ref4, ref5 St.

O’Neill, Oct. 24, 1991, Charles Babbage Institute, University of Minnesota; Stephen Crocker, “How the Internet Got Its Rules,” New York Times, Apr. 6, 2009; Cade Metz, “Meet the Man Who Invented the Instructions for the Internet,” Wired, May 18, 2012; Steve Crocker, “The Origins of RFCs,” in “The Request for Comments Guide,” RFC 1000, Aug. 1987, http://www.rfc-editor.org/rfc/rfc1000.txt; Steve Crocker, “The First Pebble: Publication of RFC 1,” RFC 2555, Apr. 7, 1999. 96. Author’s interview with Steve Crocker. 97. Crocker, “How the Internet Got Its Rules.” 98. Stephen Crocker, “Host Software,” RFC 1, Apr. 7, 1969, http://tools.ietf.org/html/rfc1. 99. Crocker, “How the Internet Got Its Rules.” 100. Vint Cerf, “The Great Conversation,” RFC 2555, Apr. 7, 1999, http://www.rfc-editor.org/rfc/rfc2555.txt. 101. “The IMP Log: October 1969 to April 1970,” Kleinrock Center for Internet Studies, UCLA, http://internethistory.ucla.edu/the-imp-log-october-1969-to-april-1970/; Segaller, Nerds, 92; Hafner and Lyon, Where Wizards Stay Up Late, 2336. 102.


Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services by Robert Daigneau

Amazon Web Services, business intelligence, business logic, business process, continuous integration, create, read, update, delete, en.wikipedia.org, fault tolerance, loose coupling, machine readable, MITM: man-in-the-middle, MVC pattern, OSI model, pull request, RFC: Request For Comment, Ruby on Rails, software as a service, web application

They often run in a “sandbox” and cannot directly access the hardware subsystems of their host. Postel’s Law—This principle was posited by John Postel, a computer scientist and pioneer who played a significant role in the development of the Internet and its standards. Postel’s Law has been found in many Request For Comments (RFCs) as early as RFC 760 in 1980 (re: http://tools.ietf.org/html/ rfc760, section 3.2). RFC 1122 (re: http://tools.ietf.org/html/rfc1122#page-12) suggests that one should “Be liberal in what you accept, and conservative in what you send”. Other wordings for this principle have arisen over time. For more information, see The Postel Center, www.postel.org/postel.html.

They treat the web as an unwelcome but nonetheless necessary narrow gateway through which to access objects and procedures. Adjust your xiii xiv F OREWORD gaze, and you’ll see that some services are on the web; that is, they treat HTTP not as a brute transport, but rather as the robust coordination and transfer protocol described in RFC 2616. Last, you’ll see some (very few) that are of the web. These use the web’s founding technologies—in particular, URIs and HTTP and generalized hypermedia representation formats such as HTML—to present a web of data, including data that describes how to access and manipulate more data, to consumers.

Response times are also minimized because the receiver can consume the data as it arrives rather than having to wait for the entire dataset to be transferred. However, this option is best used for the transfer of large documents or messages rather than for realtime delivery of large multimedia files like video and audio. For situations like these, protocols such as Real Time Streaming Protocol (RTSP, www.ietf.org/rfc/rfc2326.txt), Real Time Transport Protocol (RTP, http:// tools.ietf.org/html/rfc3550), and Real Time Control Protocol (RTCP, http:// tools.ietf.org/html/rfc3605) are usually more appropriate than HTTP. Services and the Promise of Loose Coupling Services are often described as being loosely coupled.


pages: 268 words: 76,702

The System: Who Owns the Internet, and How It Owns Us by James Ball

"World Economic Forum" Davos, behavioural economics, Big Tech, Bill Duvall, bitcoin, blockchain, Cambridge Analytica, Chelsea Manning, cryptocurrency, digital divide, don't be evil, Donald Trump, Douglas Engelbart, Edward Snowden, en.wikipedia.org, fake news, financial engineering, Firefox, Frank Gehry, Internet of things, invention of movable type, Jeff Bezos, jimmy wales, John Gilmore, John Perry Barlow, Julian Assange, Kickstarter, Laura Poitras, Leonard Kleinrock, lock screen, Marc Andreessen, Mark Zuckerberg, Menlo Park, military-industrial complex, Minecraft, Mother of all demos, move fast and break things, Network effects, Oculus Rift, packet switching, patent troll, Peter Thiel, pre–internet, ransomware, RFC: Request For Comment, risk tolerance, Ronald Reagan, Rubik’s Cube, self-driving car, Shoshana Zuboff, Silicon Valley, Silicon Valley startup, Skype, Snapchat, Steve Crocker, Stuxnet, surveillance capitalism, systems thinking, The Chicago School, the long tail, undersea cable, uranium enrichment, WikiLeaks, yield management, zero day

‘So I hit upon this silly trick of saying well, we’ll just call every one of them, no matter what they are – They might be super formal or they might be completely informal. But we’ll just call every one of them a “request for comment”, as a matter of form. And I thought that this was a temporary device that would last a few months until the network was built and we had organized manuals and documentation and so forth. ‘So here we are more than forty years later, Requests For Comments are still the lingua franca for the standards process.’ Crocker wrote the first Requests For Comment in April 1969 – and fifty years later, RFCs are still the governing system issuing the protocols by which the internet works. The process for issuing and agreeing them has become more complex – and the stakes much higher (as examined in The Custodians) – but there’s still no one institution in charge.

This is not an exaggeration: this is how it actually worked on the internet, right through into the mid-1980s – the file was called HOSTS.TXT.2 Other computers on the network made a copy of that file at certain intervals, to make sure they were up to date. A system like this is clearly just about good enough for a few dozen machines, but the prospect of someone having to keep such a list up to date now that there are several billion online devices is not so much impractical as downright impossible. That’s why in 1987 an RFC – the passive-aggressive ‘requests for comment’ that make up the internet’s protocols – was issued suggesting a new system, the DNS, which would replace this list with something that updated dynamically, rather than manually, and would be distributed, rather than sitting on just one machine. The system has been refined a few times since 1987, but now essentially works by specialist servers playing something like a game of telephone, asking each other whether they have the information they need – a bit like someone in an office standing up and shouting ‘Does anyone have the phone number for Gavin in IT?’

A key principle of the internet is that all packets are treated the same. protocol: the term for the rules and procedures that govern how particular types of data transmission are handled. ‘HTTP’, or ‘HyperText Transfer Protocol’, governs how web traffic works; ‘SMTP’, or ‘Simple Mail Transfer Protocol’, handles email; and so on. RFC: short for Request For Comment, which despite the unassuming name is how new core protocols for how the internet functions are introduced and communicated. router: a device that routes traffic across different networks, effectively enabling the function of the internet. The (usually wireless) box in your house which enables your internet is a router.


pages: 371 words: 93,570

Broad Band: The Untold Story of the Women Who Made the Internet by Claire L. Evans

4chan, Ada Lovelace, air gap, Albert Einstein, Bletchley Park, British Empire, Charles Babbage, colonial rule, Colossal Cave Adventure, computer age, crowdsourcing, D. B. Cooper, dark matter, dematerialisation, Doomsday Book, Douglas Engelbart, Douglas Engelbart, Douglas Hofstadter, East Village, Edward Charles Pickering, game design, glass ceiling, Grace Hopper, Gödel, Escher, Bach, Haight Ashbury, Harvard Computers: women astronomers, Honoré de Balzac, Howard Rheingold, HyperCard, hypertext link, index card, information retrieval, Internet Archive, Jacquard loom, John von Neumann, Joseph-Marie Jacquard, junk bonds, knowledge worker, Leonard Kleinrock, machine readable, Mahatma Gandhi, Mark Zuckerberg, Menlo Park, military-industrial complex, Mondo 2000, Mother of all demos, Network effects, old-boy network, On the Economy of Machinery and Manufactures, packet switching, PalmPilot, pets.com, rent control, RFC: Request For Comment, rolodex, San Francisco homelessness, semantic web, side hustle, Silicon Valley, Skype, South of Market, San Francisco, Steve Jobs, Steven Levy, Stewart Brand, subscription business, tech worker, technoutopianism, Ted Nelson, telepresence, The Soul of a New Machine, Wayback Machine, Whole Earth Catalog, Whole Earth Review, women in the workforce, Works Progress Administration, Y2K

Using her networked terminal, she connected with colleagues across the lab—through screen-based chatting they called “linking”—and at sites across the country, often talking to people she’d never met in the flesh. She joined technical conversations on the Request for Comments (RFC), an ongoing interoffice memo authored collectively by researchers across the ARPANET. Although the first RFCs were print memos, once the NIC put them online, they became a shared hangout, much like a bulletin board. As the importance of the RFCs became clear, Jake, her colleague Joyce Reynolds, and a group of ARPANET researchers calling themselves the Network Working Group edited them into the Internet’s official technical notes, defining conventions that we still use today. The RFCs are relics of a time when the Internet was still small enough that nearly everyone online could be involved in a single conversation.

Aarseth, Espen, 92 Abbate, Janet, 78, 177 Aberdeen Proving Ground, 41, 43, 54–55, 58 ACM SIGCHI Bulletin, 169 Activision, 226 Adams, Douglas, Hitchhiker’s Guide to the Galaxy, 171, 174 Advanced Research Projects Agency (ARPA), 110, 130; see also ARPANET Adventure, 89–94 advertising, 193, 194, 201, 205, 214 women’s Web and, 214–16, 218, 219, 221 Aerosmith, 186 Aiken, Howard, 31–36, 52, 54, 57–58, 63, 117 AIMACO, 70 “Algorhyme” (Perlman), 127–28 Allen, Madeline Gonzales, 131 Allen, Paul, 227, 235 All New Gen, 240 American Girl, 233, 235 American Laser Games, 233 American Totalisator, 60 Analytical Engine, 13, 18–23, 19, 42, 74 Anderson, Laurie, 192 AOL, 153, 209, 211, 216, 217 Apple, 161, 162, 224, 226 HyperCard, 165, 168, 169, 183, 184 Applied Mathematics Panel, 24 Aquanet, 155, 166, 170 Aristotle, 226 Army, U.S., 10, 39, 40, 41, 42, 47, 49, 51, 55, 56, 73 ARPANET, 86–87, 97, 109–23, 129–31, 133, 153 Adventure and, 89, 90 Directory for, 113, 118–19 Host Table registry of, 113, 114, 120 mix of people using, 119 NIC and, see Network Information Center Requests for Comments (RFCs), 117–18, 120, 129 Resource Handbook for, 112–13, 118 artificial intelligence, 174, 226 Asimov, Isaac, 171 Association for Computing Machinery, 67 astronomy, 9–11, 23, 27 AT&T, 130, 131 Atari, 225, 226, 234 atomic bomb, 36, 55 Babbage, Charles, 10, 12–23, 32, 42, 52 Backus, John, 64 Balzac, Honoré de, 200 Banham, Reyner, 129 Bank of America, 100 Barbie, 212, 230, 233–35 Barratt, Virginia, 237, 238, 241 Barron’s, 198 Bay Area, 95–98, 100–102, 104–6, 107, 109, 132, 135, 154, 179, 205 BBC, 156 Bel Ami (Maupassant), 200 Berkeley Barb, 97, 102 Berners-Lee, Tim, 167–69, 172, 173 Bernoulli numbers, 21 Big Sky Telegraph, 131 Bilas, Frances, 39, 45 Bishop, Stephen, 83–85, 91 BITCH, 142 Blanch, Gertrude, 25 Bloch, Richard, 33–37 Bloom, Betty, 92, 93 Bolt, Beranek and Newman (BBN), 86, 87, 90, 91, 110, 114, 125 Bolton, Charlie, 104–5 Borges, Jorge Luis, 154 Boulder Community Network, 131 Bowe, John, 189 Bowe, Marisa, 137, 142, 148, 178–81, 184–85, 188–94, 199–200, 202 Brand, Stewart, 100–101, 106, 132, 133, 137 Brilliant, Larry, 132, 137 Brooks, Frederick, 76 Brown University, 161–62 browsers, 135, 164, 168, 172, 183, 191 bookmarks and, 162 Mosaic, 172, 186, 209 Netscape, 172, 191, 209, 215 NIC Resource Handbook, 112–13, 118 URLs and, 215 Brucker, Roger, 88 Buckles, Mary Ann, 92 bugs, 35–36 bulletin board systems (BBS), 130–32, 134, 135, 143, 148, 179, 184, 189, 214 Echo, see Echo sysops of, 130, 131 WELL, The, 132–35, 140, 149, 153, 179–80, 205–6, 209 Women’s WIRE, 206–12, 214 Burns, Red, 182 Bush, George, 194 Butterworth, Nicholas, 192 Byron, Annabella, 14–17, 20–22 Byron, George Gordon, Lord, 12–17, 21–23, 65 Caillau, Robert, 168 CalTech, 163 Cannon, Annie Jump, 23 Carmen San Diego, 235 Carnegie Mellon University, 110 Carpenter, Candice, 216–17, 219 Catlin, Karen, 162 Cave Research Foundation, 84–90 caves, 83–88, 90–92, 94 CERN, 168 Chapline, Joe, 41 ChickClick, 216 Civil War, 23–24 Clark, Naomi, 193, 194 Clinton, Bill, 136, 207 Clinton, Hillary, 140, 207 COBOL, 71–73 CODASYL (Conference on Data Systems and Language), 70–72 Collins, Floyd, 87 communities, 102, 119, 129–31, 177, 179, 202, 218 iVillage, 216–17 Purple Moon, 231–32, 235 Women’s WIRE, 205–15 see also bulletin board systems Community Memory, 101–4, 109, 129, 130, 132, 179, 215 CompuServe, 153, 209, 211–12 computer(s): change in definition of, 25 color of, 59 electromechanical, 38 electronic, 38, 41 first, 31, 38, 79 first use of word in print, 9 general-purpose, 18, 20, 38, 42 hardware for, see hardware marketing of, 228 men’s vs. women’s view of, 229 operating systems terms in, 223 personal, 59, 111, 157, 178, 222–23, 224, 225, 226, 228 programming of, see programming software for, see software computer games, 226, 228–36 Adventure, 89–94 All New Gen, 240 Barbie, 230, 233–35 for boys, 228–30, 234 for girls, 233–35 marketing of, 228 mastery in, 229 Purple Moon, 227–36 Rockett, 230–36 Secret Paths, 232, 236 Computer History Museum, 103 computers, human, 9–11, 23–26, 40, 42, 52, 66, 79, 80, 115, 222 computer science, 93, 97, 100, 101, 104, 107, 110, 124, 155, 157, 159, 162, 165, 222 Control Data Corporation, 178 Cosmopolitan, 75, 76, 77, 216, 217 Cosmo Virtual Makeover, 233 Courant, Richard, 28, 31, 32 Cronkite, Walter, 60 Cross, Katherine, 241 Crowther, Patricia, 84–94, 110 Crowther, Will, 86–94, 110 Curtis, Pavel, 143 “cyber,” 239 cyberfeminism, 237–42 Cyberfeminist Manifesto for the 21st Century, 237–38, 239 Cybergrrl.com, 131, 214 Cyber Rag, 182–85, 183, 188, 195 CyberSlacker (cartoon), 197–99 CyberSlacker parties, 186, 187, 192 Cyberville (Horn), 134, 150, 151 CyberVision, 224–25 cypherpunks, 102 da Rimini, Francesca, 237, 239 Darwin, Charles, 16 data, 174 metadata, 159, 174 Dateline, 195 Davidson, Deborah, 73 Deadheads, 133, 134, 140, 180 Defense Advanced Research Projects Agency (DARPA), 110, 130; see also ARPANET Defense Communications Agency, 130 De Morgan, Augustus, 16 Department of Defense (DoD), 69–71, 110, 112, 115 Advanced Research Projects Agency, 110, 130; see also ARPANET Dickens, Charles, 16 Difference Engine, 13, 16–18, 42, 74 differential analyzer, 40, 41 Digital Equipment Corporation (DEC), 125, 126 Dijkstra, Edsger W., 71 Disney, 232 Distributed Link Service, 173 domains, 120–21 Domesday Book, 155–56, 158 Domesday Discs, 156–58 dot-com bubble, 146, 186, 189, 191, 192, 193, 204, 205, 241 FuckedCompany.com and, 218–19 stock market crash and, 198–200, 201 Duncan, Theresa, 233 Dungeons & Dragons (D&D), 88, 89 Echo, 134–52, 138, 153, 178, 180–81, 187, 202–3, 205, 209 BITCH, 142 Bowe and, 180–81, 188 Embraceable Ewe and, 142, 144 hosts of, 148–49 simulcasting on, 150 Women in Telecommunications (WIT), 141–42, 144, 205 Eckert, J.

., 29–31, 70, 75 Nehru, Jawaharlal, 160 Nelson, Ted, 154 Netscape, 172, 191, 209, 215 network effect, 172 Network Information Center (NIC), 112–19, 114, 121, 122, 166 Reference Desk of, 113 WHOIS, 119–20 networks, 25 packets in, 110, 126, 202 spanning-tree protocol for, 126–28 Network Working Group, 117 Neustrup, Chris, 97–98 Newsweek, 183, 184, 191 New York, 187, 210 New York City: 9/11 attack in, 150, 200–201 Silicon Alley in, 146, 182, 184, 186–88, 191–94, 196–201, 218, 219 New-York Historical Society, 150–51 New York Times, 9–10, 50, 136, 191, 194, 199, 218, 235 New York University (NYU), 134, 195, 196 Interactive Telecommunications Program, 182 NeXT, 168 Nightline, 233 9/11 terrorist attacks, 150, 200–201, 204 NLS (oNLine System), 111–12, 115, 116, 154, 210 NoteCards, 164–66, 168, 170 nuclear bombs, 36, 55 nuclear submarines, 76 Old Boys’ Network, 239–40 online publishing, see electronic publishing OS/360 operating system, 76 Oxygen Media, 216 Pack, Ellen, 205–13, 215, 216, 219–20 packets, 110, 126, 202 PDQ Committee, 71, 73 Pearce, Naomi, 133, 208 Pearl, Amy, 162 Pearl Harbor attack, 27–29, 32 People’s Computer, 98, 119 Perlman, Radia, 123–28 Phiber Optik, 136, 187 Pickering, Edward Charles, 23 PicoSpan, 132, 135 Pierce, Julianne, 237 Plant, Sadie, 11, 21, 80, 238 PLATO (Programmed Logic for Automatic Teaching Operations), 178–81 Pleasant Company, 235 Poetics (Aristotle), 226 Pollock, Scarlet, 239 Powers, Richard, 88 presidential election of 1952, 60 programming, 25, 26, 46, 52, 64–74, 75–80, 91–92, 106, 122–24, 162, 226 and association between women and software, 51–52 automatic, 65–69, 73, 119 caving compared with, 88 compilers in, 66–69, 73 computer-written programs, 59–60, 68 conference on crisis in, 77 Cosmopolitan article about, 75, 76, 77 debugging and, 66, 68, 74 decline in women in, 76–78, 93 distinction between operating and, 52 documentation in, 37, 65, 69 Editing Generator and, 73 educational requirements for, 78, 93 EMCC and, 56, 57 ENIAC and, 44–52, 79 first programs, 21 flowcharts and, 59 hardware development and, 77 Lovelace and, 20 machine code in, 66–68 magnetic-tape, 60–62, 79, 110 Mark I and, 32–33, 46, 59 perfection required in, 76–77 professionalization and masculinization of, 76–78, 93, 222, 228 punch cards and tapes in, 12–13, 32–33, 35–36, 39, 46, 47, 60–62, 79, 110 renamed software engineering, 77–78, 93 shortage in programmers, 76 social skills and, 78–79 Sort-Merge Generator and, 59, 68, 73 subroutines in, 37, 65, 67, 68 UNIVAC and, 58–59, 65 see also software programming languages, 46, 65–73, 79, 108 COBOL, 71–73 FORTRAN, 70, 88, 89, 93 Project One, 95–108, 119 Prose, Francine, 218 Pseudo, 186–87, 199 publishing, see electronic publishing punch cards and tapes, 12–13, 32–33, 35–36, 39, 46, 47, 60–62, 79, 110 Purple Moon, 227–36 Radio Corporation of America (RCA), 69 Radio Shack, 225 Raisch, Charles, 96 Razorfish, 191, 197–99 Reddit, 149 Reed, Lou, 192 Remington Rand, 60–63, 65–70, 73 Requests for Comments (RFCs), 117–18, 120, 129 Reson, Sherry, 95, 96, 103–7 Resource One, 96–108, 109, 130, 132, 215, 242 Resource One Generalized Information Retrieval System (ROGIRS), 98 Reynolds, Joyce, 117 Rheingold, Howard, 148–49 Rhine, Nancy, 132–33, 205–12 Richardson, Ann, 75 Rockett games, 230–36 Rolling Stone, 99 routers, 86, 93 routing algorithms, 124–28 Salon, 218 Sammet, Jean E., 70, 72, 73 San Francisco Bay Area, 95–98, 100–102, 104–6, 109, 135, 179 San Francisco Public Library, 106 San Francisco Switchboard, 97 Scientific Data Systems 940 (SDS-940), 96–99, 101, 103–5, 107, 109–10 search engines, 115, 154 Sears, 225 Secret Paths games, 232, 236 Sega, 233 Semantic Web, 174 Seneca Falls Conference on the Rights of Women, 11 September 11 terrorist attacks, 150, 200–201, 204 Sharp, Elliot, 187 Shepard, Alan, 24 Sherman, Aliza, 131–32, 140, 143, 214 Shirky, Clay, 181 Shone, Mya, 96, 104–6 Silicon Alley, 146, 182, 184, 186–88, 191–94, 196–201, 218, 219 Silicon Alley Reporter, 198–99 Simpson, O.


pages: 678 words: 159,840

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

bash_history, Debian, distributed generation, do-ocracy, en.wikipedia.org, end-to-end encryption, failed state, Firefox, Free Software Foundation, GnuPG, Google Chrome, Jono Bacon, MITM: man-in-the-middle, Neal Stephenson, NP-complete, precautionary principle, QWERTY keyboard, RFC: Request For Comment, Richard Stallman, Skype, SpamAssassin, SQL injection, Valgrind, web application, 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).

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).


pages: 134 words: 29,488

Python Requests Essentials by Rakesh Vidya Chandra, Bala Subrahmanyam Varanasi

business logic, create, read, update, delete, en.wikipedia.org, Kickstarter, machine readable, MITM: man-in-the-middle, MVC pattern, natural language processing, RFC: Request For Comment, RFID, supply-chain management, web application

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.


Applied Cryptography: Protocols, Algorithms, and Source Code in C by Bruce Schneier

active measures, cellular automata, Claude Shannon: information theory, complexity theory, dark matter, Donald Davies, Donald Knuth, dumpster diving, Dutch auction, end-to-end encryption, Exxon Valdez, fault tolerance, finite state, heat death of the universe, information security, invisible hand, John von Neumann, knapsack problem, MITM: man-in-the-middle, Multics, NP-complete, OSI model, P = NP, packet switching, quantum cryptography, RAND corporation, RFC: Request For Comment, seminal paper, software patent, telemarketer, traveling salesman, Turing machine, web of trust, Zimmermann PGP

It was initially designed by the Internet Research Task Force (IRTF) Privacy and Security Research Group (PSRG), and then handed over to the Internet Engineering Task Force (IETF) PEM Working Group. The PEM protocols provide for encryption, authentication, message integrity, and key management. The complete PEM protocols were initially detailed in a series of RFCs (Requests for Comment) in [977] and then revised in [978]. The third iteration of the protocols [979, 827, 980] is summarized in [177, 178]. The protocols were modified and improved, and the final protocols are detailed in another series of RFCs [981, 825, 76, 802]. Another paper by Matthew Bishop [179] details the changes. Reports of attempts to implement PEM include [602, 1505, 1522, 74, 351, 1366, 1367]. See also [1394].

Linn, “Privacy Enhancement for Internet Electronic Mail: Part I—Message Encipherment and Authentication Procedures,” RFC 989, Feb 1987. 978. J. Linn, “Privacy Enhancement for Internet Electronic Mail: Part I—Message Encipherment and Authentication Procedures,” RFC 1040, Jan 1988. 979. J. Linn, “Privacy Enhancement for Internet Electronic Mail: Part I—Message Encipherment and Authentication Procedures,” RFC 1113, Aug 1989. 980. J. Linn, “Privacy Enhancement for Internet Electronic Mail: Part III—Algorithms, Modes, and Identifiers,” RFC 1115, Aug 1989. 981. J. Linn, “Privacy Enhancement for Internet Electronic Mail: Part I—Message Encipherment and Authentication Procedures,” RFC 1421, Feb 1993. 982.

., 480 Mimic functions, 10 Minimum-disclosure proofs, 108 MITRENET, 562–563 Miyaguchi, Shoji, 308 MMB, 325–327 m*n-bit S box, 349 Modular arithmetic, 242–245 Modular Multiplication-based Block cipher, 325–327 Modular reduction, 242 Modulo, inverses, 246–248 Monoalphabetic cipher, 10 Montgomery’s method, 244 Moore’s Law, 153 m-sequence, 374 MSP, 584 Muller, Winfried, 481 Multiparty unconditionally secure protocols, 137 Multiple-bit generator, 421 Multiple encryption, 357 quintuple, 366 Multiple Identity Fraud, 111 Multiple-key public-key cryptography, 527–528 Multiple signatures, 39–40 Multiplier, 369 Multispeed inner-product generator, 386–387 Mush, 392 Mutual shrinking generator, 392 MYK-80, 593–594 Mykotronx Clipper chip, 328 MYK-78T, 591–593 Nanoteq, 390 National Bureau of Standards, see National Institute of Standards and Technology National Computer Security Center, 599–600 National Institute of Standards and Technology, 600–603 DES development, 265–267 Memorandum of Understanding, 601–603 National Security Agency, 597–599 DES development, 266–267 export of cryptography, 614–615 Memorandum of Understanding, 601–603 S-box development role, 278, 280 Navy Research Laboratory, protocol analyzer, 67–68 Needham, Roger, 58, 66, 216 Needham-Schroeder protocol, 58–59 Networks, large, key distribution, 177 Neuman-Stubblebine protocol, 60–62 Neural networks, breaking algorithms, 155 NewDES, 306–308 N-Hash, 433–435 Niederreiter, Harald, 501 Niederreiter algorithm, 480 Niemi cryptosystem, 466 Nobauer, Wilfried, 481 Noise, random, using as random-sequence generator, 423–424 Nonce-verification rule, 66 Non-Interactive Key Sharing systems, 115 Nonlinear-feedback shift registers, 412–413 Nonlinear keyspace, 175–176 Nonrepudiation, 2 Notz, Bill, 266 NP-complete problem, 240–242 graph isomorphism, 104 knapsack algorithms, 462 McEliece algorithm, 479 solving, 163–164 NRL Protocol Analyzer, 67–68 NSDD-145, 268 Nuclear Non-Proliferation Act, 610 Number field sieve, 256 Numbers: 2–adic, 404 large, 17–18 Number theory, 242–255 Barrett’s algorithm, 244 Blum integers, 253 Chinese remainder theorem, 249–250 Euclid’s algorithm, 245 Euler totient function, 248–249 extended Euclidean algorithm, 246–248 Fermat’s little theorem, 248 Galois field, computing in, 254–255 generators, 253–254 greatest common divisor, 245–246 inverses modulo a number, 246–248 Jacobi symbol, 252–253 Legendre symbol, 251 modular arithmetic, 242–245 Montgomery’s method, 244 prime numbers, 245 quadratic residues, 250–251 solving for coefficients, 248 Nyberg, Kaisa, 348 Oblivious transfer, 116–117, 550 Oblivous signatures, 117 OFB, see Output-feedback mode Ohta, Kazuo, 146, 501 Ohta-Okamoto identification scheme, 508 Okamoto, Tatsuaki, 146, 501 1/p generator, 414 One-time pad, 15–17 hiding ciphertext in ciphertext, 227–228 One-time tape, 418 One-way accumulators, 95–96, 543 One-way function, 29–30 authentication using, 52 bit commitment using, 87–88 coin flipping using, 90 trap-door, 158 One-way hash functions, 30–31, 351–354 background, 429–431 birthday attacks, 165–166, 430 choosing, 455 cipher security, 353–354 compression function, 431 encryption speeds, 456 HAVAL, 445–446 improved arbitrated solution, 76 Karn, 351–352 length, 430–431 Luby-Rackoff, 352–353 MD2, 441 MD3, 446 MD4, 435–436 MD5, 436–441 MD-strengthening, 431 message authentication codes, 455–459 Message Digest Cipher, 353–354 multiple signatures, 40 N-Hash, 433–435 RIPE-MD, 445 Secure Hash Algorithm, 442–445signing documents with, 38–39 Snefru, 432 as unbiased random-bit generator, 107 using public-key algorithms, 455 using symmetric block algorithms, 446–455 AR hash function, 453 GOST hash function, 454 hash length equals block size, 447–449 LOKI Double-Block, 451 MDC-2 and MDC-4, 452–454 modified Davies-Meyer, 449–450 parallel Davies-Meyer, 451 Preneel-Bosselaers-Govaerts-Vandewalle, 450 Quisquater-Girault, 450 tandem and abreast Davies-Meyer, 451–452 Ong-Schnorr-Shamir, 498–499, 531–532 Orange Book, 599–600 Otway-Rees protocol, 59–60 Outerbridge, Richard, 363 Outer-CBC, 360 Output-feedback mode, 203–205, 208–210 combined with ECB, 364 DES, 277 with a nonlinear function, 208 Overtake, 598 Overwriting, 229 Padding: cipher block chaining mode, 195 electronic codebook mode, 190–191 MD5, 436 Secure Hash Algorithm, 442 triple encryption with, 362 Painvin, Georges, 12 Pass phrases, 174–175 Passive attack, 27 Passive cheaters, 27 Patents, 609–610; See also specific algorithms P-boxes: design criteria, 294 permutation, 275, 277, 316 PEM, see Privacy-Enhanced Mail Perfect secrecy, 235 Period, 11 shift register, 373 Permutation, 237 key, DES, 272–273 PES, 319, 324 Pike, 391–392 PKZIP, 394–395 Plaintext, 1–2 Plaintext block chaining mode, 208 Plaintext feedback mode, 208 Plaintext pair, right and wrong pairs, 287 Pless generator, 413–414 p-NEW scheme, 498 Pohlig, Stephen, 262 Pohlig-Hellman encryption scheme, 474 Polarized photons, 555 Pollard’s Monte Carlo algorithm, 256 Polyalphabetic substitution cipher, 10–11 Polygram substitution cipher, 10–11 Polynomials: degree, shift register length, 374 dense, 378 irreducible, 255, 481 sparse, 378 Pomerance, Carl, 257 Powerline System, 466 Pre-image, 30 Preneel, Bart, 457 Preneel-Bosselaers-Govaerts-Vandewalle, 450 Pretty Good Privacy, 584–587 Price, William, 562 Prime numbers, 245 generation, 258–261 DSA, 488–490 practical considerations, 260–260 relatively prime, 245 strong, 261 Primitive, 253 Principal square root, 251 Privacy-Enhanced Mail, 577–584 certificates, 579 documents, 578 messages, 579–582 RIPEM, 583–584 security, 582–583 TIS/PEM, 583 Private key, 5 creating public key from, 464 for public-key cryptography, lifetime, 184 Probabilistic encryption, 552–554 Problems: complexity, 239–241 EXPTIME, 241 hard, 239 intractable, 239 PSPACE, 241 Problems (Cont.) tractable, 239 undecidable, 240 See also NP-complete problem Processing complexity, 9 Product cipher, 347 Proofs of Membership, 111 Propagating cipher block chaining mode, 207 Proposed Encryption Standard, 319 Protocols, 21, 47 adjudicated, 26, 70–71 all-or-nothing disclosure of secrets, 96 analysis, approaches, 65–66 anonymous message broadcast, 137–139 arbitrated, 23–26 attacks against, 27 authentication, 576–577 authentication and key-exchange, formal analysis, 65–68 BAN logic, 66–67 basic zero-knowledge, 102–104 bit commitment, 86–88 blind signatures, 112–115 characteristics, 21 cryptographic, 22 DASS, 62 definition, 21 Denning-Sacco, 63 digital cash, see Digital cash digital certified mail, 122–123 digital signatures, 40 distributed, timestamping, 77–78 fair coin flips, 89–92 IBM Common Cryptographic Architecture, 573–574 IBM secret-key management, 561–562 identity-based public-key cryptography, 115 interactive, 103 interlock, 49–50, 54–55 Kerberos, 60, 566–571 key escrow, 97–100 key exchange, 47–52 KryptoKnight, 571–572 lessons, 64–65 mental poker, 92–95 multiparty unconditionally secure, 137 Needham-Schroeder, 58 Neuman-Stubblebine, 60–62 oblivious signatures, 117 oblivious transfer, 116–117 one-way accumulators, 95–96 Otway-Rees, 59–60 purpose, 22–23 secret splitting, 70–71 secure circuit evaluation, 137 secure elections, see Secure elections secure multiparty computation, 134–137 self-enforcing, 26–27 SESAME, 572 simultaneous contract signing, 118–122 simultaneous exchange of secrets, 123–124 subliminal channel, 79–80 timestamping, 75–79 types, 24 Wide-Mouth Frog, 56–57 Woo-Lam, 63–64 Yahalom, 57–58 See also Authentication; Zero-knowledge proofs Pseudo-Hadamard Transform, 340 Pseudo-random function family, SEAL, 398–399 Pseudo-random-number generator, 78, 416 Pseudo-random sequence, 44–45 Pseudo-random-sequence generator, 44 bit commitment using, 88 generating multiple streams, 420–421 linear congruential generators, 369–372 linear feedback shift registers, 372–379 PSPACE, 241 Public key, 5 certificates, 185–187 creating from private key, 464 key length, 158–165 recommended lengths, 161–163 key management, 185–187 Public-key algorithms, 4–5, 33, 500–502 background, 461–462 based on linear error-correcting codes, 480 Diffie-Hellman, 513 ElGamal, 476–479 elliptic curve cryptosystems, 480–481 finite automaton cryptosystems, 482 knapsack algorithms, 462–466 LUC, 481 McEliece, 479–480 one-way hash functions using, 455 Pohlig-Hellman, 474 Rabin, 475–476 RSA, see RSA security, 461–462 strength, 502 Public-key cryptography: attacks against, 43–44 authentication using, 53–54 coin flipping using, 90–91 communications using, 31–34 identity-based, 115 key exchange with, 48 multiple-key, 68–69 private keys, lifetime, 184 signing documents with, 37–38 one-way hash functions, 38–39 versus symmetric cryptography, 216–217 Public-Key Cryptography Standards, 588–589 Public Key Partners, 604–605 Public-key ring, 585 Purchase-key attack, 7 Quadratic nonresidues, 251 Quadratic residues, 250–251 generator, 417 Quadratic sieve, 256 factoring, 159 Quantum computing, 164–165 Quantum cryptography, 554–557 Quintuple encryption, 366 Quisquater, Jean-Jacques, 102, 508 Quisquater-Girault, 450 Rabin, 475–476 Rabin, Michael, 103, 259, 518, 550 Rabin-Miller algorithm, 259–260 RACE Integrity Primitives Evaluation, 605–606 Rackoff, Charles, 352 Rainbow Books, 600 Rambutan, 390 Random keys, 173–174 Random noise, as random-sequence generator, 423–424 Random-number generation, 44 Random-sequence generators, 421–428 biases and correlations, 425–426 computer clock, 424 distilling randomness, 426–428 keyboard latency measurement, 424–425 RAND tables, 422–423 using random noise, 423–424 Random sequences, real, 45–46 Randomized approach, stream ciphers, 415 Randomized stream cipher, 419 Randomness, distilling, 426–428 RAND tables, 422–423 Rao-Nam algorithm, 346 Rate of the language, 234 RC2, 318–319 RC4, 319, 397–398 RC5, 344–346 source code, 659–662 RDES, 297–298 Receipt, resending message as, 42–43 REDOC II, 311–313 REDOC III, 313 Redundancy, of language, 234 Reeds, Jim, 369 Related-key cryptanalysis, 290 Renji, Tao, 482 Renting Passports, 111 Replay attacks, 58–59 Research and Development in Advanced Communication Technologies, Integrity Primitives Evaluation, 605–606 Resend attack, foiling, 43 Residue, 242 quadratic, 250–251 reduced set, 248 Restricted algorithms, 3 RFC 1421, 578 RFC 1422, 578 RFC 1423, 578 RFC 1424, 578 Richter, Manfield, 423 Riordan, Mark, 583–584 RIPE, 605–606 RIPEM, 583–584 RIPE-MAC, 457–458 RIPE-MD, 445 Rip van Winkle cipher, 418–419 Rivest, Ron, 159, 163, 318–319, 344, 397, 435, 440–441, 444, 446, 467 Rivest Cipher, 318 Robshaw, Matt, 342 Rogaway, Phil, 398 ROM key, 181 ROT13, 11 Rotor machines, 12–13 RSA, 17, 466–474 ability to break, zero-knowledge proofs, 548–549 attack on encrypting and signing with, 473–474 blind signatures, 548 chosen ciphertext attack, 471–472 common modulus attack, 472 compared to DSA, 485 computation time comparison with DSA, 489 as de facto standard, 485–486 EKE implementation, 519 encryption, 468 with DSA, 491 in hardware, 469 low decryption exponent attack, 473 low encryption exponent attack, 472–473 patents, 474 restrictions on use, 473 security, 470–471 speed, 469 standards, 474 RSA Data Security, Inc., 295, 603–604 RSA Factoring Challenge, 257 RSA generator, 417 Rubber-hose cryptanalysis, 7 Rueppel, Ranier, 385–386 Running-key cipher, 12 SAFER K-64, 339–341 SAFER K-128, 341 Salt, 52–53 S-boxes: alternate, DES, 296–298 Blowfish, 336 Boolean functions in, 350 DES, key-dependent, 298, 300 design criteria, 294 security questions, 284 theory, 349–351 Lucifer, 303 NSA role, 278, 280 substitution, 274–276 Scherbius, Arthur, 13 Schlafly, Roger, 394 Schneier, Bruce, 336, 346 Schnorr, Claus, 418, 446, 510 Schnorr authentication and signature scheme, 510–512 Schroeder, Michael, 58, 216 Schwartau, Winn, 300 Sci.crypt, 608–609 Scott, Robert, 306 SEAL, 398–400 source code, 667–673 Secrecy: ideal, 236 perfect, 235 Secrets, simultaneous exchange, 123–124 Secret sharing, 71–73 without adjudication, 72 with cheaters, 72 with disenrollment, 73 without revealing shares, 73 schemes with prevention, 73 verifiable, 73 Secret-sharing algorithms, 528–531 advanced threshold schemes, 530–531 Asmuth-Bloom, 529–530 cheater detection, 531 Karnin-Greene-Hellman, 530 LaGrange interpolating polynomial scheme, 528–529 vector scheme, 529 Secret splitting, 70–71 digital cash, 142–145 Secure and Fast Encryption Routine, 339 Secure circuit evaluation, 137 Secure elections, 125–134 divided protocols, 133 multiple-key ciphers, 133 simplistic voting protocols, 125–126 voting with blind signatures, 126–127 single central facility, 128–130 two central facilities, 127–128 Secure elections (Cont.) voting without central tabulating facility, 130–133 Secure European System for Applications in a Multivendor Environment, 572 Secure Hash Algorithm, 442–445 Secure multiparty computation, 134–137, 551–552 Secure Telephone Unit, 565 Security: of algorithms, 8–9 Blowfish, 339 cipher block chaining mode, 196–197 ciphers based on one-way hash functions, 353–354 cryptosystem, 234–235 DES, 278, 280–285 algebraic structure, 282–283 current, 300–301 key length, 283–284 weak keys, 280–281 DSA, 491–492 ESIGN, 500 Kerberos, 571 knapsack algorithms, 465 MD5, 440–441 MMB, 326–327 output-feedback mode, 205 PKZIP, 395 Privacy-Enhanced Mail, 582–583 requirements for different information, 167 RSA, 470–471 SEAL, 400 Secure Hash Algorithm, 444–445 self-synchronizing stream cipher, 199 Selector string, 143 Self-decimated generator, 385–387 Self-enforcing protocols, 26–27 Self-recovering, cipher block chaining mode, 196 Self-shrinking generator, 388 Self-synchronizing stream cipher, 198–199 Selmer, E.


pages: 394 words: 108,215

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

Any sufficiently advanced technology is indistinguishable from magic, Apple II, back-to-the-land, beat the dealer, Bill Duvall, Bill Gates: Altair 8800, Buckminster Fuller, California gold rush, card file, computer age, Computer Lib, computer vision, conceptual framework, cuban missile crisis, different worldview, digital divide, Donald Knuth, Douglas Engelbart, Douglas Engelbart, Dynabook, Edward Thorp, El Camino Real, Electric Kool-Aid Acid Test, Fairchild Semiconductor, General Magic , general-purpose programming language, Golden Gate Park, Hacker Ethic, Hans Moravec, hypertext link, informal economy, information retrieval, invention of the printing press, Ivan Sutherland, Jeff Rulifson, John Markoff, John Nash: game theory, John von Neumann, Kevin Kelly, knowledge worker, Lewis Mumford, Mahatma Gandhi, Menlo Park, military-industrial complex, Mother of all demos, Norbert Wiener, packet switching, Paul Terrell, popular electronics, punch-card reader, 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, technological determinism, Ted Nelson, The Hackers Conference, The Theory of the Leisure Class by Thorstein Veblen, Thorstein Veblen, Turing test, union organizing, Vannevar Bush, We are as Gods, Whole Earth Catalog, William Shockley: the traitorous eight

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.

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.

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

AltaVista, Andy Kessler, AOL-Time Warner, barriers to entry, Bill Atkinson, business process, Cass Sunstein, commoditize, computer age, creative destruction, dark matter, decentralized internet, Dennis Ritchie, disintermediation, disruptive innovation, Donald Davies, Erik Brynjolfsson, Free Software Foundation, Garrett Hardin, George Gilder, Hacker Ethic, Hedy Lamarr / George Antheil, history of Unix, Howard Rheingold, Hush-A-Phone, HyperCard, hypertext link, Innovator's Dilemma, invention of hypertext, inventory management, invisible hand, Jean Tirole, Jeff Bezos, John Gilmore, John Perry Barlow, Joseph Schumpeter, Ken Thompson, Kenneth Arrow, Larry Wall, Leonard Kleinrock, linked data, Marc Andreessen, Menlo Park, Mitch Kapor, Network effects, new economy, OSI model, packet switching, peer-to-peer, peer-to-peer model, price mechanism, profit maximization, RAND corporation, rent control, rent-seeking, RFC: Request For Comment, Richard Stallman, Richard Thaler, Robert Bork, Ronald Coase, Search for Extraterrestrial Intelligence, SETI@home, Silicon Valley, smart grid, software patent, spectrum auction, Steve Crocker, Steven Levy, Stewart Brand, systematic bias, Ted Nelson, Telecommunications Act of 1996, the Cathedral and the Bazaar, The Chicago School, tragedy of the anticommons, Tragedy of the Commons, transaction costs, vertical integration, Yochai Benkler, zero-sum game

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.

., 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.

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. Everything else should be done at the fringes.”37 This design has important consequences for innovation—indeed, we can count three: o First, because applications run on computers at the edge of the network, innovators with new applications need only connect their computers to the network to let their applications run.


pages: 349 words: 114,038

Culture & Empire: Digital Revolution by Pieter Hintjens

4chan, Aaron Swartz, airport security, AltaVista, anti-communist, anti-pattern, barriers to entry, Bill Duvall, bitcoin, blockchain, Boeing 747, bread and circuses, business climate, business intelligence, business process, Chelsea Manning, clean water, commoditize, congestion charging, Corn Laws, correlation does not imply causation, cryptocurrency, Debian, decentralized internet, disinformation, Edward Snowden, failed state, financial independence, Firefox, full text search, gamification, German hyperinflation, global village, GnuPG, Google Chrome, greed is good, Hernando de Soto, hiring and firing, independent contractor, informal economy, intangible asset, invisible hand, it's over 9,000, James Watt: steam engine, Jeff Rulifson, Julian Assange, Kickstarter, Laura Poitras, M-Pesa, mass immigration, mass incarceration, mega-rich, military-industrial complex, MITM: man-in-the-middle, mutually assured destruction, Naomi Klein, national security letter, Nelson Mandela, new economy, New Urbanism, no silver bullet, Occupy movement, off-the-grid, offshore financial centre, packet switching, patent troll, peak oil, power law, pre–internet, private military company, race to the bottom, real-name policy, rent-seeking, reserve currency, RFC: Request For Comment, Richard Feynman, Richard Stallman, Ross Ulbricht, Russell Brand, Satoshi Nakamoto, security theater, selection bias, 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, twin studies, union organizing, wealth creators, web application, WikiLeaks, Y2K, zero day, Zipf's Law

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. 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.

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.

The rapid global spread of digital technology is a principal cause of the growth in global prosperity over the last decade. The First Law The Internet -- the fabric of digital society -- was born on 7 April 1969, a few years after Gordon Moore coined his 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.


Ubuntu 15.04 Server with systemd: Administration and Reference by Richard Petersen

Amazon Web Services, bash_history, cloud computing, Debian, Firefox, lock screen, Mark Shuttleworth, MITM: man-in-the-middle, OpenAI, operational security, RFC: Request For Comment, SpamAssassin, web application

The ISOC oversees several groups responsible for different areas of Internet development, such as the Internet Assigned Numbers Authority (IANA), which is responsible for Internet addressing (see Table 18-1 ). Over the years, TCP/IP protocol standards and documentation have been issued in the form of Request for Comments (RFC) documents. Check the most recent RFCs for current developments at the IETF Web site at http://www.ietf.org. TCP/IP Protocol Suite The TCP/IP protocol suite consists of several different protocols, each designed for a specific task in a TCP/IP network. The three basic protocols are the Transmission Control Protocol (TCP), which handles receiving and sending out communications, the Internet Protocol (IP), which handles the actual transmissions, and the User Datagram Protocol (UDP), which also handles receiving and sending packets.

Several methods are used for tunneling, as shown here, as well as direct manual manipulation: 6-over-4 Used within a network to use IPv4 multicasting to implement a virtual LAN to support IPv6 hosts, without an IPv6 router (RFC 2529) 6-to-4 Used to allow IPv6 networks to connect to and through a larger IPv4 network (the Internet), using the IPv4 network address as an IPv6 network prefix (RFC 3056) Tunnel brokers Web-based services that create tunnels (RFC 3053) TCP/IP Configuration Files A set of configuration files in the /etc directory, shown in Table 18-6 , are used to set up and manage your TCP/IP network. These configuration files specify such network information as host and domain names, IP addresses, and interface options.

You can obtain the addresses from your system administrator (often more than one address exists). Even if you are using an ISP, you must know the address of the domain name servers your ISP operates for the Internet. IPv6 Addressing IPv6 addressing introduces major changes into the format and method of addressing systems under the Internet Protocol (see RFC 3513 at www.ietf.org/rfc or www.faqs.org for more details). There are several different kinds of addressing with different fields for the network segment. The host segment has been expanded to a 64-bit address, allowing direct addressing for a far larger number of systems. Each address begins with a type field specifying the kind of address, which will then determine how its network segment is organized.


pages: 1,136 words: 73,489

Working in Public: The Making and Maintenance of Open Source Software by Nadia Eghbal

Amazon Web Services, Apollo 11, barriers to entry, Benevolent Dictator For Life (BDFL), Big Tech, bitcoin, Clayton Christensen, cloud computing, commoditize, commons-based peer production, context collapse, continuous integration, crowdsourcing, cryptocurrency, David Heinemeier Hansson, death of newspapers, Debian, disruptive innovation, Dunbar number, en.wikipedia.org, eternal september, Ethereum, Firefox, Free Software Foundation, Guido van Rossum, Hacker Ethic, Hacker News, Induced demand, informal economy, information security, Jane Jacobs, Jean Tirole, Kevin Kelly, Kickstarter, Kubernetes, leftpad, Mark Zuckerberg, Menlo Park, Neal Stephenson, Network effects, node package manager, Norbert Wiener, pirate software, pull request, RFC: Request For Comment, Richard Stallman, Ronald Coase, Ruby on Rails, side project, Silicon Valley, Snapchat, social graph, software as a service, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, tacit knowledge, the Cathedral and the Bazaar, The Death and Life of Great American Cities, The Nature of the Firm, TikTok, Tragedy of the Commons, transaction costs, two-sided market, urban planning, web application, wikimedia commons, Yochai Benkler, Zimmermann PGP

Before they merge a change in, they must also consider how it will be received by other contributors and users. Bigger projects often use a formal “request for comments” (RFC) process to allow communities to discuss these changes before they are merged. In Python, for example, these requests are called Python Enhancement Proposals (PEPs),68 while in Go, another programming language, a formal proposal is called a “design document.”69 On smaller projects, the RFC process might just look like an informal discussion thread on an open pull request. Conversely, there are also maintainers who are socially viewed as leaders and are influential to the project, but also don’t have commit access.

These contributors, in turn, make decisions for a broader constituency of passive users. As their contributor community grows, federations typically “shard” contributors into smaller working groups, where maintainers specialize in certain areas of a project, such as infrastructure or community. Federations also often employ an RFC (request for comments) process, similar to a ballot initiative, to manage major change proposals to the project. Eventually, however, these working groups can experience the same bottleneck issues that the entire project did beforehand, with a lead maintainer serving as a point of failure for their subdomain.

(Reading: Addison-Wesley, 1995), 32. 141 “Teams,” Django Software Foundation, accessed March 31, 2020, https://www.djangoproject.com/foundation/teams/. 142 Caddyserver / Caddy, GitHub, accessed March 31, 2020, https://github.com/caddyserver/caddy. 143 Spencer Heath MacCallum, The Art of Community (Menlo Park, CA: Institute for Humane Studies, 1970), 63–67. 144 MacCallum, The Art of Community, 63. 145 “Meet the Team,” Babel, accessed March 31, 2020, https://babeljs.io/team. 146 Jacob Kaplan-Moss, “Retiring as BDFLs,” Jacob Kaplan-Moss (blog), January 13, 2014, https://jacobian.org/2014/jan/13/retiring-as-bdfls/. 147 Urllib3, GitHub, accessed March 13, 2020, https://github.com/urllib3/urllib3/. 148 Andrey Petrov, “How to Hand over an Open Source Project to a New Maintainer,” Medium, February 9, 2018, https://medium.com/@shazow/how-to-hand-over-an-open-source-project-to-a-new-maintainer-db433aaf57e8. 149 Klint Finley, “Giving Open-Source Projects Life after a Developer’s Death,” Wired, November 6, 2017, https://www.wired.com/story/giving-open-source-projects-life-after-a-developers-death/. 150 Alanna Irving, “Funding Open Source: How Webpack Reached $400k+/Year,” Open Collective, October 23, 2017, https://medium.com/open-collective/funding-open-source-how-webpack-reached-400k-year-dfb6d8384e19. 151 Christopher Hiller, Nadia Eghbal, and Mikeal Rogers, “Maintaining a Popular Project and Managing Burnout with Christopher Hiller,” Request for Commits, podcast audio, November 1, 2017, https://changelog.com/rfc/15. 152 Ayrton Sparling (FallingSnow), “I Dont Know What to Say,” Event-stream Issues, GitHub, November 20, 2018, https://github.com/dominictarr/event-stream/issues/116. 153 Dominic Tarr (dominictarr), “Statement on Event-Stream Compromise,” Dominictarr / Readme.md Code, GitHub, November 26, 2018, https://gist.github.com/dominictarr/9fd9c1024c94592bc7268d36b8d83b3a. 154 Felix Geisendörfer, “The Pull Request Hack,” Felix Geisendörfer (blog), March 11, 2013, https://felixge.de/2013/03/11/the-pull-request-hack.html. 155 Na Sun, Patrick Pei-Luen Rau, and Liang Ma, “Understanding Lurkers in Online Communities: A Literature Review,” Computers in Human Behavior, no. 38 (September 2014): 110–117, https://www.sciencedirect.com/science/article/pii/S0747563214003008. 156 Kraut and Resnick, Building Successful Online Communities, 63. 157 Andrew J.


pages: 523 words: 143,139

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

4chan, Ada Lovelace, Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Albert Einstein, algorithmic bias, algorithmic trading, anthropic principle, asset allocation, autonomous vehicles, Bayesian statistics, behavioural economics, Berlin Wall, Big Tech, Bill Duvall, bitcoin, Boeing 747, Charles Babbage, cognitive load, Community Supported Agriculture, complexity theory, constrained optimization, cosmological principle, cryptocurrency, Danny Hillis, data science, David Heinemeier Hansson, David Sedaris, delayed gratification, dematerialisation, diversification, Donald Knuth, Donald Shoup, double helix, Dutch auction, Elon Musk, exponential backoff, fault tolerance, Fellow of the Royal Society, Firefox, first-price auction, Flash crash, Frederick Winslow Taylor, fulfillment center, Garrett Hardin, Geoffrey Hinton, George Akerlof, global supply chain, Google Chrome, heat death of the universe, Henri Poincaré, information retrieval, Internet Archive, Jeff Bezos, Johannes Kepler, John Nash: game theory, John von Neumann, Kickstarter, knapsack problem, Lao Tzu, Leonard Kleinrock, level 1 cache, linear programming, martingale, multi-armed bandit, Nash equilibrium, natural language processing, NP-complete, P = NP, packet switching, Pierre-Simon Laplace, power law, prediction markets, race to the bottom, RAND corporation, RFC: Request For Comment, Robert X Cringely, Sam Altman, scientific management, sealed-bid auction, second-price auction, self-driving car, Silicon Valley, Skype, sorting algorithm, spectrum auction, Stanford marshmallow experiment, Steve Jobs, stochastic process, Thomas Bayes, Thomas Malthus, Tragedy of the Commons, traveling salesman, Turing machine, urban planning, Vickrey auction, Vilfredo Pareto, Walter Mischel, Y Combinator, zero-sum game

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).

Cabell, James Branch. The Silver Stallion. New York: Robert M. McBride, 1926. Campbell, Donald T. “Blind Variation and Selective Retention in Creative Thought as in Other Knowledge Processes.” Psychological Review 67 (1960): 380–400. Carpenter, Brian, and Robert Hinden. Adaptation of RFC 1149 for IPv6. Technical report. RFC 6214, April 2011. Carroll, Lewis. Sylvie and Bruno Concluded. London: Macmillan, 1893. Carstensen, Laura L. “Social and Emotional Patterns in Adulthood: Support for Socioemotional Selectivity Theory.” Psychology and Aging 7 (1992): 331–338. Cassady, C. Richard, and John E. Kobza.

“Appraising the Brain’s Energy Budget.” Proceedings of the National Academy of Sciences 99, no. 16 (2002): 10237–10239. Ramakrishnan, Kadangode, and Sally Floyd. A Proposal to Add Explicit Congestion Notification (ECN) to IP. Technical report. RFC 2481, January 1999. Ramakrishnan, Kadangode, Sally Floyd, and David Black. The Addition of Explicit Congestion Notification (ECN) to IP. Technical report. RFC 3168, September 2001. Ramscar, Michael, Peter Hendrix, Cyrus Shaoul, Petar Milin, and Harald Baayen. “The Myth of Cognitive Decline: Non-Linear Dynamics of Lifelong Learning.” Topics in Cognitive Science 6, no. 1 (2014): 5–42.


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

business process, Debian, defense in depth, Free Software Foundation, GnuPG, index card, indoor plumbing, Larry Ellison, Larry Wall, MITM: man-in-the-middle, optical character recognition, PalmPilot, publish or perish, RFC: Request For Comment, Richard Stallman, seminal paper, SETI@home, slashdot, the Cathedral and the Bazaar, two and twenty, web application

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.

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.

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 .


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

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 Atkinson, Bill Duvall, Bill Gates: Altair 8800, Bletchley Park, Boeing 747, Byte Shop, Charles Babbage, Claude Shannon: information theory, Compatible Time-Sharing System, computer age, Computing Machinery and Intelligence, conceptual framework, cuban missile crisis, Dennis Ritchie, do well by doing good, Donald Davies, double helix, Douglas Engelbart, Douglas Engelbart, Dynabook, experimental subject, Fairchild Semiconductor, fault tolerance, Frederick Winslow Taylor, friendly fire, From Mathematics to the Technologies of Life and Death, functional programming, Gary Kildall, Haight Ashbury, Howard Rheingold, information retrieval, invisible hand, Isaac Newton, Ivan Sutherland, James Watt: steam engine, Jeff Rulifson, John von Neumann, Ken Thompson, Leonard Kleinrock, machine translation, Marc Andreessen, Menlo Park, Multics, New Journalism, Norbert Wiener, packet switching, pink-collar, pneumatic tube, popular electronics, RAND corporation, RFC: Request For Comment, Robert Metcalfe, Silicon Valley, Skinner box, Steve Crocker, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, Ted Nelson, The Soul of a New Machine, Turing machine, Turing test, Vannevar Bush, Von Neumann architecture, Wiener process, zero-sum game

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. 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.

The first clue came on Valentine's Day of 1969, when representatives from the first four host sites were invited to BBN to meet the people who had just won the bid to build the net- work. "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."

.), 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.


Pragmatic.Programming.Erlang.Jul.2007 by Unknown

Debian, en.wikipedia.org, fault tolerance, finite state, full text search, functional programming, higher-order functions, Planet Labs, RFC: Request For Comment

In our example code that fetched a web page, how did we know that we had to open port 80, and how did we know that we had to send a GET / HTTP/1.0\r\n\r\n command to the server? 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.

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

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? How do we know how much data makes up a single request or response? • How is the data within a request or the response encoded and decoded?


Mastering Blockchain, Second Edition by Imran Bashir

3D printing, altcoin, augmented reality, autonomous vehicles, bitcoin, blockchain, business logic, business process, carbon footprint, centralized clearinghouse, cloud computing, connected car, cryptocurrency, data acquisition, Debian, disintermediation, disruptive innovation, distributed ledger, Dogecoin, domain-specific language, en.wikipedia.org, Ethereum, ethereum blockchain, fault tolerance, fiat currency, Firefox, full stack developer, general-purpose programming language, gravity well, information security, initial coin offering, interest rate swap, Internet of things, litecoin, loose coupling, machine readable, MITM: man-in-the-middle, MVC pattern, Network effects, new economy, node package manager, Oculus Rift, peer-to-peer, platform as a service, prediction markets, QR code, RAND corporation, Real Time Gross Settlement, reversible computing, RFC: Request For Comment, RFID, ride hailing / ride sharing, Satoshi Nakamoto, seminal paper, single page application, smart cities, smart contracts, smart grid, smart meter, supply-chain management, transaction costs, Turing complete, Turing machine, Vitalik Buterin, web application, x509 certificate

.): $ openssl ecparam -list_curves secp112r1 : SECG/WTLS curve over a 112 bit prime field secp112r2 : SECG curve over a 112 bit prime field secp128r1 : SECG curve over a 128 bit prime field secp128r2 : SECG curve over a 128 bit prime field secp160k1 : SECG curve over a 160 bit prime field secp160r1 : SECG curve over a 160 bit prime field secp160r2 : SECG/WTLS curve over a 160 bit prime field secp192k1 : SECG curve over a 192 bit prime field secp224k1 : SECG curve over a 224 bit prime field secp224r1 : NIST/SECG curve over a 224 bit prime field secp256k1 : SECG curve over a 256 bit prime field secp384r1 : NIST/SECG curve over a 384 bit prime field secp521r1 : NIST/SECG curve over a 521 bit prime field prime192v1: NIST/X9.62/SECG curve over a 192 bit prime field . . . . brainpoolP384r1: RFC 5639 curve over a 384 bit prime field brainpoolP384t1: RFC 5639 curve over a 384 bit prime field brainpoolP512r1: RFC 5639 curve over a 512 bit prime field brainpoolP512t1: RFC 5639 curve over a 512 bit prime field In the following example, secp256k1 is employed to demonstrate ECC usage. Private key generation To generate the private key, execute the following command: $ openssl ecparam -name secp256k1 -genkey -noout -out ec-privatekey.pem $ cat ec-privatekey.pem -----BEGIN EC PRIVATE KEY----- MHQCAQEEIJHUIm9NZAgfpUrSxUk/iINq1ghM/ewn/RLNreuR52h/oAcGBSuBBAAK oUQDQgAE0G33mCZ4PKbg5EtwQjk6ucv9Qc9DTr8JdcGXYGxHdzr0Jt1NInaYE0GG ChFMT5pK+wfvSLkYl5ul0oczwWKjng== -----END EC PRIVATE KEY----- The file named ec-privatekey.pem now contains the Elliptic Curve (EC) private key that is generated based on the secp256k1 curve.

Recently ICOs have also been offered via platforms other than Ethereum, such as NEM (https://nem.io) and Stellar (https://www.stellar.org). ERC20 tokens ERC20 token is an interface which defines various functions dictating the requirements of the token. It does not, however, provide implementation details and has been left to the implementer to decide. ERC is basically an abbreviation of Ethereum Request for Comments which is equivalent to Bitcoin's BIPs for suggesting improvements in Ethereum blockchain. This is defined under EIP 20, which you can read more about here https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md. Ethereum is becoming a platform for choice for ICOs due to its ability to create new tokens and with ERC20 standard, it has become even more accessible.

Interledger Interledger is a simple protocol that is composed of four layers: Application, Transport, Interledger, and Ledger. Each layer is responsible for performing various functions under certain protocols. These functions and protocols are described in the following section. The specifications of this protocol are available at: https://interledger.org/rfcs/0003-interledger-protocol/draft-9.html Application layer Protocols running on this layer govern the key attributes of a payment transaction. Examples of application layer protocols include Simple Payment Setup Protocol (SPSP) and Open Web Payment Scheme (OWPS). SPSP is an Interledger protocol that allows secure payment across different ledgers by creating connectors between them.


pages: 483 words: 145,225

Rebel Code: Linux and the Open Source Revolution by Glyn Moody

barriers to entry, business logic, commoditize, Compatible Time-Sharing System, Debian, Dennis Ritchie, Donald Knuth, Eben Moglen, Free Software Foundation, ghettoisation, Guido van Rossum, history of Unix, hypertext link, Johann Wolfgang von Goethe, John Gilmore, Ken Thompson, Kickstarter, Larry Ellison, Larry Wall, Marc Andreessen, MITM: man-in-the-middle, Multics, Network effects, new economy, packet switching, RFC: Request For Comment, Richard Stallman, Silicon Valley, skunkworks, slashdot, SoftBank, Steve Ballmer, Steve Jobs, Steven Levy, the Cathedral and the Bazaar, thinkpad, VA Linux

“I think it was something that had shared a lot of similarities to the IETF process,” Behlendorf says; “you use rough consensus and running code.” The IETF is the Internet Engineering Task Force, whose specialist working groups, open to all, publish what are known as RFCs, Requests For Comments. These documents lay out suggested technical standards. Although there is no body to enforce them, the “rough consensus” amongst those in the working groups, together with the hard-won authority of the IETF, means that the most important RFCs are usually adopted by the Internet community in due course. Behlendorf says this method is successful partly because, in the world of software, “things either work or they don’t work.

and the GNU Emacs General Public License and University of California at Berkeley and X license mixed free and proprietary Cox, Alan and Apple computers and multiprocessor support for Linux Crusoe processor Cryptozilla Currie, Peter Cutler, Dave Cygnus Solutions Daemon Dawes, David D’Cruze, Patrick Debian (computer program) de Icaza, Miguel DeCSS Delivermail (computer program) Dell Demetriou, Chris de Raadt, Theo Digital (company) Ditzel, Dave Document Object Model (DOM) Domain Name System (DNS) Dougan, Cort Duck Pond, the Duval, Gaël DVDs Dyroff, Roland Eazel (company) Eckhardt, Drew eCos EGCS Eich, Brendan Ellison, Larry Emacs (Editing Macros) E-mail see also Sendmail Eng, Eirik Ericsson (company) Espinosa, Arturo Ettrich, Matthias European Center for Nuclear Research Evans, Bruce Ewel, Jim Ewing, Larry Ewing, Marc eXtensible Markup Language (XML) File Transfer Protocol (FTP) and development of Linux Filo, Dave Finland Fintronic Flagship (computer program) Forbes Foresight Institute Forking see Code-forking Freax FreeBSD Freely Redistributable Software Conference Freenet Free Software Foundation (FSF) Free software and code-forking and DVDs and IBM and Netscape and networking and Open Source Definition and proprietary software and Slashdot.org and Trolltech (company) Apache Eric Allman and finding coders of image manipulation making money from Netscape Communications and Sendmail see also Shareware Freeware Summit Freshmeat (Web site) Future of Linux Meeting Gardner, Ray Garloff, Kurt Gates, Bill see also Microsoft Gateway computers Gecko General Image Manipulation Program (GIMP) Germany Ghostscript Gilmore, John GNU Image Manipulation Program GNU/Linux adaptations of, to different applications advantages over other operating systems advantages over Windows after Linus Torvalds and Alan Cox and Caldera (company) and CD-ROMs and code-forking and embedded systems and Hewlett-Packard (HP) and IBM and image manipulation and networking and Oracle and proprietary software and Red Hat (company) and Samba and Ted Ts’o and the Internet and Virtual Memory (VM) and Wine (computer program) and XFree86 and X Window system boot and root disks bug fixes business services commercial ventures competition with Berkeley Systems Distribution (BSD) competition with Minix contributions to, by other hackers control of control of, by Torvalds copyright corporate applications cost of operating customers distribution by Manchester Computing Centre (MCC) Documentation Project document processor early development of Eric Raymond on flexibility of fragmentation of and problems with growth in applications and distribution of growth of High Availability in Germany in India in Japan in Mexico installation instructions integration with Debian integration with Minix International kernel development Kernel Version History Kongress logo and mascot making money from management of Mandrake 5.1 marketing Matthias Ettrich on Mobile multiarchitecture support multiprocessor support myths Network File System (NFS) networking code Networking-Howto patches portability of Pro Redundant Array of Inexpensive Discs (RAID) code release frequency security Softlanding Linux System (SLS) releases of software availability Standard Base (LSB) technical support testing against Windows Torvalds’s plan for Turbo upgrades users version 0.01 version 0.02 version 0.10 version 0.11 version 0.12 version 0.95 version 1.0 version 1.2 version 2.0 version 2.2 Video and DVD Project (LiViD) GNU Network Object Model Environment (GNOME) GNU project and commercial software and Cygnus and GNUPro and Miguel de Icaza and Netscape Public License (NPL) and open source code and the GNU Emacs General Public License Hurd integration with Linux Gnutella Google Gophers Graphical user interfaces Greenblatt, Richard Gtk+ toolkit Hackers and code-forking and DVDs and Helix Code (company) and Initial Public Offerings (IPOs) and Linux source code and Mindcraft (company) and proprietary software and source code and SourceXchange and VA Linux contributions to Linux by employment of management of Hackers (the book) Hahn, Eric Hall, Jon Harnois, Michael Hecker, Frank Helix Code (company) Helsinki (Finland) Henkel-Wallace, David Hertzfeld, Andy Hewlett-Packard (HP) Hohndel, Dirk Homer, Mike Homesteading the Noosphere HotBot (Web site) HotWired magazine Hubbard, Jordan Hurd (computer program) HyperText Markup Language (HTML) and Emacs early development of tags HyperText Transport Protocol (HTTP) HyperText Transport Protocol daemon (HTTPd) IA–64 processor IBM and Linux OS/2 Warp operating system S/390 mainframes Image manipulation India Informix Infoworld Initial Public Offerings (IPOs) and Caldera (company) hackers and and Pacific HiTech and Red Hat and SuSE and VA Linux see also Venture capital Intel 80386 processor and development of Linux and Red Hat (company) Itanium chip (IA–64) Internet and Sendmail, Inc. and source code and TurboLinux Internet Engineering Task Force (IETF) Internet Explorer Internet, the and Domain Name System (DNS) and free software and HyperText Transport Protocol (HTTP) and Internet Engineering Task Force (IETF) and Requests for Comments (RFCs) and the development of Linux and the success of Linux development of Jakarta (computer program) Japan Jargon File Java (computer program) Jeeves (computer program) Jikes (computer program) Jobs, Steve Johnson, Michael Jolitz, Bill Jolitz, Lynne Journalism, open Joy, Bill Julliard, Alexandre Junius, Martin Katz, Roberta K Desktop Environment (KDE) and KDE Free Qt Foundation Kerbango Radio Kerberos Kernels design Linux monolithic versus micro Kimball, Spencer Kirch, Olaf Kleiner Perkins Knuth, Donald Lai, Glenn Le Duke, Dave Le Marois, Jacques Lemmke, Ari Levy, Steven Licenses see Copyright Lieber, Derek LiGNUx Lineo (company) Linux see GNU/Linux see also VA Linux Linuxcare (company) Linux Journal Linux Kernel Version History Linux Network Administrator’s Guide Linux News Linux Today Lisp (List Processing) Machine Incorporated (LMI) Literate Programming Lonnroth, Magnus Love, Ransom Lu, H.J.

Lycos (Web site) LyX (computer program) MacDonald, Peter Macmillan Publishing Mailing lists, electronic Apache Linux-kernel WWW-Talk Malda, Rob Manchester Computing Centre (MCC) MandrakeSoft (company) Mares, Martin Massachusetts Institute of Technology (MIT) and X license see also Stallman, Richard Mattis, Peter McCool, Robert McNealy, Scott McVoy, Larry Media attention Metzenthen, Bill Mexico Microsoft ActiveX and Kerberos and Mindcraft (company) and Red Hat (company) and ResNova and SMB protocol and Transmeta browsers competition with Red Hat Internet Information Server myths about Linux Office Suite response to Hewlett-Packard support of Linux security success of support for World Wide Web Consortium standards use of Linux by Windows emulators see also Windows Miller, Cliff Miller, Dave Mindcraft (company) Miner, Allen Minix (computer program) and Linux version 0.02 and the Intel 8086 chip competition with Linux complaints about, by Linus Torvalds Mockapetris, Paul Moglen, Eben Molnar, Ingo Monni, Tove Mosaic (computer program) Communications company Netscape browser see also National Center for Supercomputing Applications (NCSA) Motif (computer program) Motorola Mozilla and America Online and distribution of Mozilla and Mozilla Stabilization Schedule party Mozilla Public License (MPL) MS-DOS (operating system) advantages of GNU/Linux over Multiarchitecture support Multiprocessor support Multisoft Murdock, Ian Murphy, Tim Mythical Man-Month, The National Center for Supercomputing Applications (NCSA) see also Mosaic (computer program) Natural languages Navigator (computer program) see Netscape Communications NetBench NetBSD Netscape Communications and Caldera (company) and distribution of Mozilla and IBM and Netscape Public License (NPL) and the Open Directory browser source code Communicator Heresy documents Navigator browser support for World Wide Web Consortium standards Network File System (NFS) Networking and electronic mail and Linux and Windex program New Hacker’s Dictionary, The Newsgroups and development of Linux and Mindcraft (company) and Perl New York Unix NeXT computer Next Generation Layout (NGL) Noorda, Ray Nord, Haavard Novell. 229–231, 232, 249 Ockman, Sam Olson, Greg OpenBSD Open Directory, The OpenProjects (Web site) Open source code see also Source code Open Source Solutions Operation (OSSO) Operating Systems: Design and Implementation Oracle O’Reilly & Associates O’Reilly, Tim Ousterhout, John Pacific HiTech (company) Palmisano, Sam Patch (computer program) Patches Pathworks Pauling, Linus PC Magazine PC Week Penguin mascot PenguinRadio Perens, Bruce Perl (computer program) Peterson, Christine Plattner, Hasso Posix standards Prince of Persia (computer game) Programming as an art form employment Eric Raymond on philosophies profitability of Unix Python (computer program) Qt (computer program) Quarter Century of Unix, A Quasar Technologies Raymond, Eric Red Hat (company) and Compaq Computer Corporation and embedded systems and GNU Network Object Model Environment (GNOME) and Hewlett-Packard (HP) and MandrakeSoft and open source code and proprietary software competition with Microsoft employment of hackers by growth of initial public offering profitability of promotion of GNU/Linux by software marketing by Reisler, Kurt Requests for Comments (RFCs) ResNova (company) Richter, Adam Ritchie, Dennis rn newsreader Roell, Thomas Running Linux Rutgers University Safford, Dave Salus, Peter Salzenberg, Chip Samba (computer program) San Francisco Gate Santa Cruz Operation, The (SCO) SAP (company) Schneier, Bruce SCO (company) Screen Phone, The Scriptics (company) Security, computer Sendmail (computer program) and proprietary software early development of marketing Sequoia Capital Server Message Block (SMB) SGI Shan, Yen-Ping Shareware Shearer, Dan Shields, David Sifry, Dave Silicon Graphics, Inc.


pages: 587 words: 117,894

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

4chan, A Declaration of the Independence of Cyberspace, air gap, Apple's 1984 Super Bowl advert, barriers to entry, Berlin Wall, bitcoin, blood diamond, borderless world, Brian Krebs, business continuity plan, Chelsea Manning, cloud computing, cognitive load, crowdsourcing, cuban missile crisis, data acquisition, do-ocracy, Dr. Strangelove, drone strike, Edward Snowden, energy security, failed state, fake news, Fall of the Berlin Wall, fault tolerance, Free Software Foundation, global supply chain, Google Earth, information security, Internet of things, invention of the telegraph, John Markoff, John Perry Barlow, Julian Assange, Khan Academy, M-Pesa, military-industrial complex, MITM: man-in-the-middle, mutually assured destruction, Network effects, packet switching, Peace of Westphalia, pre–internet, profit motive, RAND corporation, ransomware, RFC: Request For Comment, risk tolerance, rolodex, Seymour Hersh, Silicon Valley, Skype, smart grid, SQL injection, Steve Jobs, Stuxnet, Twitter Arab Spring, uranium enrichment, vertical integration, We are Anonymous. We are Legion, web application, WikiLeaks, Yochai Benkler, zero day, zero-sum game

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.

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.


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

Alvin Toffler, An Inconvenient Truth, Andrew Keen, Charles Babbage, computer age, corporate governance, Dennis Ritchie, deskilling, Douglas Engelbart, Douglas Engelbart, East Village, en.wikipedia.org, information retrieval, Internet Archive, invention of movable type, Ivan Sutherland, Jaron Lanier, Ken Thompson, knowledge economy, Lewis Mumford, machine translation, Marshall McLuhan, Mikhail Gorbachev, military-industrial complex, national security letter, Neal Stephenson, On the Economy of Machinery and Manufactures, optical character recognition, profit motive, QR code, RAND corporation, RFC: Request For Comment, scientific management, Shoshana Zuboff, Silicon Valley, Steve Jobs, tacit knowledge, technological determinism, The Structural Transformation of the Public Sphere, Turing test, WikiLeaks, Works Progress Administration

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: 561 words: 157,589

WTF?: What's the Future and Why It's Up to Us by Tim O'Reilly

"Friedman doctrine" OR "shareholder theory", 4chan, Affordable Care Act / Obamacare, Airbnb, AlphaGo, Alvin Roth, Amazon Mechanical Turk, Amazon Robotics, Amazon Web Services, AOL-Time Warner, artificial general intelligence, augmented reality, autonomous vehicles, barriers to entry, basic income, behavioural economics, benefit corporation, Bernie Madoff, Bernie Sanders, Bill Joy: nanobots, bitcoin, Blitzscaling, blockchain, book value, Bretton Woods, Brewster Kahle, British Empire, business process, call centre, Capital in the Twenty-First Century by Thomas Piketty, Captain Sullenberger Hudson, carbon tax, Carl Icahn, Chuck Templeton: OpenTable:, Clayton Christensen, clean water, cloud computing, cognitive dissonance, collateralized debt obligation, commoditize, computer vision, congestion pricing, corporate governance, corporate raider, creative destruction, CRISPR, crowdsourcing, Danny Hillis, data acquisition, data science, deep learning, DeepMind, Demis Hassabis, Dennis Ritchie, deskilling, DevOps, Didi Chuxing, digital capitalism, disinformation, do well by doing good, Donald Davies, Donald Trump, Elon Musk, en.wikipedia.org, Erik Brynjolfsson, fake news, Filter Bubble, Firefox, Flash crash, Free Software Foundation, fulfillment center, full employment, future of work, George Akerlof, gig economy, glass ceiling, Glass-Steagall Act, Goodhart's law, Google Glasses, Gordon Gekko, gravity well, greed is good, Greyball, Guido van Rossum, High speed trading, hiring and firing, Home mortgage interest deduction, Hyperloop, income inequality, independent contractor, index fund, informal economy, information asymmetry, Internet Archive, Internet of things, invention of movable type, invisible hand, iterative process, Jaron Lanier, Jeff Bezos, jitney, job automation, job satisfaction, John Bogle, John Maynard Keynes: Economic Possibilities for our Grandchildren, John Maynard Keynes: technological unemployment, John Zimmer (Lyft cofounder), Kaizen: continuous improvement, Ken Thompson, Kevin Kelly, Khan Academy, Kickstarter, Kim Stanley Robinson, knowledge worker, Kodak vs Instagram, Lao Tzu, Larry Ellison, Larry Wall, Lean Startup, Leonard Kleinrock, Lyft, machine readable, machine translation, Marc Andreessen, Mark Zuckerberg, market fundamentalism, Marshall McLuhan, McMansion, microbiome, microservices, minimum viable product, mortgage tax deduction, move fast and break things, Network effects, new economy, Nicholas Carr, Nick Bostrom, obamacare, Oculus Rift, OpenAI, OSI model, Overton Window, packet switching, PageRank, pattern recognition, Paul Buchheit, peer-to-peer, peer-to-peer model, Ponzi scheme, post-truth, race to the bottom, Ralph Nader, randomized controlled trial, RFC: Request For Comment, Richard Feynman, Richard Stallman, ride hailing / ride sharing, Robert Gordon, Robert Metcalfe, Ronald Coase, Rutger Bregman, Salesforce, Sam Altman, school choice, Second Machine Age, secular stagnation, self-driving car, SETI@home, shareholder value, Silicon Valley, Silicon Valley startup, skunkworks, Skype, smart contracts, Snapchat, Social Responsibility of Business Is to Increase Its Profits, social web, software as a service, software patent, spectrum auction, speech recognition, Stephen Hawking, Steve Ballmer, Steve Jobs, Steven Levy, Stewart Brand, stock buybacks, strong AI, synthetic biology, TaskRabbit, telepresence, the built environment, the Cathedral and the Bazaar, The future is already here, The Future of Employment, the map is not the territory, The Nature of the Firm, The Rise and Fall of American Growth, The Wealth of Nations by Adam Smith, Thomas Davenport, Tony Fadell, Tragedy of the Commons, transaction costs, transcontinental railway, transportation-network company, Travis Kalanick, trickle-down economics, two-pizza team, Uber and Lyft, Uber for X, uber lyft, ubercab, universal basic income, US Airways Flight 1549, VA Linux, warehouse automation, warehouse robotics, Watson beat the top human players on Jeopardy!, We are the 99%, web application, Whole Earth Catalog, winner-take-all economy, women in the workforce, Y Combinator, yellow journalism, zero-sum game, Zipcar

Any group that wanted to propose a new protocol or data format published a “Request for Comment” (RFC) describing the proposed technology. It would be examined and voted on by a community of peers who, starting in January 1986, gathered under the name of the Internet Engineering Task Force (IETF). There were no formal membership requirements. In 1992, MIT computer science professor Dave Clark described the IETF’s guiding philosophy: “We reject: kings, presidents, and voting. We believe in: rough consensus and running code.” And there was this naive, glorious statement by Jon Postel in RFC 761: “TCP implementation should follow a general principle of robustness.

See also http://www.smallpieces.com. 106 “a working simple system”: John Gall, Systemantics: How Systems Work and Especially How They Fail (New York: Quadrangle, 1977), 52. 107 “rough consensus and running code”: Paulina Borsook, “How Anarchy Works,” Wired, October 1, 1995, https://www.wired.com/1995/10/ietf/. 108 “Be liberal in what you accept from others”: Jon Postel, “RFC 761: Transmission Control Protocol, January 1980,” IETF, https://tools.ietf.org/html/rfc761. 108 “TCP/IP promises to allow for easy migration to OSI”: Robert A. Moskowitz, “TCP/IP: Stairway to OSI,” Computer Decisions, April 22, 1986. CHAPTER 6: THINKING IN PROMISES 110 to pitch Jeff on the idea: Tim O’Reilly, “Amazon.com’s Web Services Opportunity,” PowerPoint deck March 8, 2001, uploaded to SlideShare March 30, 2017, https://www.slideshare.net/timoreilly/amazoncoms-web-services-opportunity. 110 Amazon all-hands meeting in May 2003: Tim O’Reilly, “Amazon.com and the Next Generation of Computing,” PowerPoint deck May 20, 2003, uploaded to SlideShare March 30, 2017, https://www.slideshare.net/timoreilly/amazoncom-and-the-next-generation-of-computing. 111 “coordination between those two groups”: Om Malik, “Interview: Amazon CEO Jeff Bezos,” GigaOm, June 17, 2008, http://www.i3businesssolutions.com/2008/06/interview-amazon-ceo-jeff-bezos-gigaom/. 112 “Anyone who doesn’t do this will be fired”: Steve Yegge, “Stevey’s Google Platform Rant.”


pages: 496 words: 70,263

Erlang Programming by Francesco Cesarini

cloud computing, fault tolerance, finite state, functional programming, higher-order functions, loose coupling, revision control, RFC: Request For Comment, social bookmarking, 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: 398 words: 107,788

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

activist lawyer, Benjamin Mako Hill, commoditize, Computer Lib, crowdsourcing, Debian, disinformation, Donald Knuth, dumpster diving, Eben Moglen, en.wikipedia.org, financial independence, Free Software Foundation, Gabriella Coleman, ghettoisation, GnuPG, Hacker Conference 1984, Hacker Ethic, Hacker News, Herbert Marcuse, informal economy, information security, Jacob Appelbaum, Jaron Lanier, Jason Scott: textfiles.com, Jean Tirole, knowledge economy, laissez-faire capitalism, Larry Wall, Louis Pasteur, machine readable, means of production, Multics, Neal Stephenson, Paul Graham, peer-to-peer, 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, tacit knowledge, technological determinism, Ted Nelson, the Cathedral and the Bazaar, The Hackers Conference, the scientific method, The Soul of a New Machine, The Structural Transformation of the Public Sphere, web application, web of trust, Yochai Benkler

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.

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.

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: 518 words: 49,555

Designing Social Interfaces by Christian Crumlish, Erin Malone

A Pattern Language, Amazon Mechanical Turk, anti-pattern, barriers to entry, c2.com, carbon footprint, cloud computing, collaborative editing, commons-based peer production, creative destruction, crowdsourcing, en.wikipedia.org, Firefox, folksonomy, Free Software Foundation, game design, ghettoisation, Howard Rheingold, hypertext link, if you build it, they will come, information security, lolcat, Merlin Mann, Nate Silver, Network effects, Potemkin village, power law, recommendation engine, RFC: Request For Comment, semantic web, SETI@home, Skype, slashdot, social bookmarking, social graph, social software, social web, source of truth, stealth mode startup, Stewart Brand, systems thinking, tacit knowledge, telepresence, the long tail, the strength of weak ties, The Wisdom of Crowds, web application, Yochai Benkler

inline=nyt-org) physicists wanted to publish a lot of information in a way that people could easily get to it and add to it, they simply built and tested their ideas. Because of the groundwork we’d laid in the R.F.C.’s, they did not have to ask permission, or make any changes to the core operations of the Internet. Others soon copied them—hundreds of thousands of computer users, then hundreds of millions, creating and sharing content and technology. That’s the Web. —Stephen D. Crocker, author of the first RFC (Request for Comments) building block of the Internet, from an Op-Ed in the New York Times (http://www.nytimes. com/2009/04/07/opinion/07crocker.html) Play Well with Others A friend of a friend told me that “APIs are the biz dev of Web 2.0,” and there’s some real truth to that, especially if you mean open APIs.


pages: 447 words: 111,991

Exponential: How Accelerating Technology Is Leaving Us Behind and What to Do About It by Azeem Azhar

"Friedman doctrine" OR "shareholder theory", "World Economic Forum" Davos, 23andMe, 3D printing, A Declaration of the Independence of Cyberspace, Ada Lovelace, additive manufacturing, air traffic controllers' union, Airbnb, algorithmic management, algorithmic trading, Amazon Mechanical Turk, autonomous vehicles, basic income, Berlin Wall, Bernie Sanders, Big Tech, Bletchley Park, Blitzscaling, Boeing 737 MAX, book value, Boris Johnson, Bretton Woods, carbon footprint, Chris Urmson, Citizen Lab, Clayton Christensen, cloud computing, collective bargaining, computer age, computer vision, contact tracing, contact tracing app, coronavirus, COVID-19, creative destruction, crowdsourcing, cryptocurrency, cuban missile crisis, Daniel Kahneman / Amos Tversky, data science, David Graeber, David Ricardo: comparative advantage, decarbonisation, deep learning, deglobalization, deindustrialization, dematerialisation, Demis Hassabis, Diane Coyle, digital map, digital rights, disinformation, Dissolution of the Soviet Union, Donald Trump, Double Irish / Dutch Sandwich, drone strike, Elon Musk, emotional labour, energy security, Fairchild Semiconductor, fake news, Fall of the Berlin Wall, Firefox, Frederick Winslow Taylor, fulfillment center, future of work, Garrett Hardin, gender pay gap, general purpose technology, Geoffrey Hinton, gig economy, global macro, global pandemic, global supply chain, global value chain, global village, GPT-3, Hans Moravec, happiness index / gross national happiness, hiring and firing, hockey-stick growth, ImageNet competition, income inequality, independent contractor, industrial robot, intangible asset, Jane Jacobs, Jeff Bezos, job automation, John Maynard Keynes: Economic Possibilities for our Grandchildren, John Maynard Keynes: technological unemployment, John Perry Barlow, Just-in-time delivery, Kickstarter, Kiva Systems, knowledge worker, Kodak vs Instagram, Law of Accelerating Returns, lockdown, low skilled workers, lump of labour, Lyft, manufacturing employment, Marc Benioff, Mark Zuckerberg, megacity, Mitch Kapor, Mustafa Suleyman, Network effects, new economy, NSO Group, Ocado, offshore financial centre, OpenAI, PalmPilot, Panopticon Jeremy Bentham, Peter Thiel, Planet Labs, price anchoring, RAND corporation, ransomware, Ray Kurzweil, remote working, RFC: Request For Comment, Richard Florida, ride hailing / ride sharing, Robert Bork, Ronald Coase, Ronald Reagan, Salesforce, Sam Altman, scientific management, Second Machine Age, self-driving car, Shoshana Zuboff, Silicon Valley, Social Responsibility of Business Is to Increase Its Profits, software as a service, Steve Ballmer, Steve Jobs, Stuxnet, subscription business, synthetic biology, tacit knowledge, TaskRabbit, tech worker, The Death and Life of Great American Cities, The Future of Employment, The Nature of the Firm, Thomas Malthus, TikTok, Tragedy of the Commons, Turing machine, Uber and Lyft, Uber for X, uber lyft, universal basic income, uranium enrichment, vertical integration, warehouse automation, winner-take-all economy, workplace surveillance , Yom Kippur War

The internet is built on standards created in this manner, developed by the academic researchers who stewarded the network until the early 1990s. The email protocol – the set of rules describing what an email is, and how sending and receiving computers should process it, is described in two documents: the RFC (Request for Comments) 82132 and the RFC 822.33 Both date from 1982, and were written by the late Jon Postel of the University of Southern California and David Crocker, then of the University of Delaware, respectively. The web protocol became established as a de facto standard within a couple of years of its development by Tim Berners-Lee in 1989.


pages: 349 words: 102,827

The Infinite Machine: How an Army of Crypto-Hackers Is Building the Next Internet With Ethereum by Camila Russo

4chan, Airbnb, Alan Greenspan, algorithmic trading, altcoin, always be closing, Any sufficiently advanced technology is indistinguishable from magic, Asian financial crisis, Benchmark Capital, Big Tech, bitcoin, blockchain, Burning Man, Cambridge Analytica, Cody Wilson, crowdsourcing, cryptocurrency, distributed ledger, diversification, Dogecoin, Donald Trump, East Village, Ethereum, ethereum blockchain, Flash crash, Free Software Foundation, Google Glasses, Google Hangouts, hacker house, information security, initial coin offering, Internet of things, Mark Zuckerberg, Maui Hawaii, mobile money, new economy, non-fungible token, off-the-grid, peer-to-peer, Peter Thiel, pets.com, Ponzi scheme, prediction markets, QR code, reserve currency, RFC: Request For Comment, Richard Stallman, Robert Shiller, Sand Hill Road, Satoshi Nakamoto, semantic web, sharing economy, side project, Silicon Valley, Skype, slashdot, smart contracts, South of Market, San Francisco, the Cathedral and the Bazaar, the payments system, too big to fail, tulip mania, Turing complete, Two Sigma, Uber for X, Vitalik Buterin

So in November, Ethereum developer Fabian Vogelsteller took Vitalik’s initial token standard draft, wrote a proper specification explaining each function and action, and created an issue on Ethereum’s GitHub EIP repository. He called it “ERC: Token standard.” ERC stood for Ethereum Request for Comment, and followed a common practice among internet engineers and researchers who use RFCs, or Request for Comments. The standard was later known as ERC20, because it was the twentieth issue being discussed.4 It was a very simple document consisting of just six commonly used functions for tokens, and two events to trigger after certain functions are invoked.


The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise by Martin L. Abbott, Michael T. Fisher

always be closing, anti-pattern, barriers to entry, Bernie Madoff, business climate, business continuity plan, business intelligence, business logic, business process, call centre, cloud computing, combinatorial explosion, commoditize, Computer Numeric Control, conceptual framework, database schema, discounted cash flows, Dunning–Kruger effect, en.wikipedia.org, fault tolerance, finite state, friendly fire, functional programming, hiring and firing, Infrastructure as a Service, inventory management, machine readable, new economy, OSI model, packet switching, performance metric, platform as a service, Ponzi scheme, power law, RFC: Request For Comment, risk tolerance, Rubik’s Cube, Search for Extraterrestrial Intelligence, SETI@home, shareholder value, Silicon Valley, six sigma, software as a service, the scientific method, transaction costs, Vilfredo Pareto, web application, Y2K

A typical HTTP response header could look like this: HTTP/1.x 200 OK Date: Tue, 24 Feb 2009 19:52:41 GMT Server: Apache/2.2.3 (CentOS) Last-Modified: Mon, 26 Jan 2009 23:03:35 GMT Etag: "1189c0-249a-bf8d9fc0" Accept-Ranges: bytes Content-Length: 9370 p3p: policyref="/w3c/p3p.xml", CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV" Connection: close Cache-Control: no-cache Content-Type: image/gif Notice the Cache-Control header identifying no-cache. In accordance with the Request For Comments (RFC) 2616 Section 14 defining the HTTP 1.1 protocol, this header must be obeyed by all caching mechanisms along the request/response chain. Another header that is useful in managing caching is the Etag and Last-Modified tags. These are used to validate the freshness of the page by the caching mechanisms.

Although it might work well for a year or two given some rate of change within your environment, as you grow in complexity, rate of change, and rate of transactions, it very likely will need tweaking to continue to meet your needs. As we discussed in Chapter 7, Understanding Why Processes Are Critical to Scale, no process is right for every stage of your company. Change Management Checklist Your change management process has, at a minimum, the following phases: • Change Proposal (the ITIL Request for Change or RFC) • Change Approval • Change Scheduling • Change Implementation and Logging • Change Validation • Change Review Your change management meeting should be comprised of representatives from all teams within technology and members of the business responsible for working with your customers or stakeholders.


pages: 464 words: 127,283

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

1960s counterculture, 4chan, A Pattern Language, Adam Curtis, air gap, Airbnb, Amazon Web Services, anti-communist, Apple II, Bay Area Rapid Transit, Big Tech, bike sharing, Boeing 747, Burning Man, business process, call centre, carbon footprint, charter city, chief data officer, clean tech, clean water, cloud computing, company town, computer age, congestion charging, congestion pricing, connected car, crack epidemic, crowdsourcing, DARPA: Urban Challenge, data acquisition, Deng Xiaoping, digital divide, digital map, Donald Davies, East Village, Edward Glaeser, Evgeny Morozov, food desert, game design, garden city movement, General Motors Futurama, gentrification, Geoffrey West, Santa Fe Institute, George Gilder, ghettoisation, global supply chain, Grace Hopper, Haight Ashbury, Hedy Lamarr / George Antheil, Herman Kahn, hive mind, Howard Rheingold, interchangeable parts, Internet Archive, Internet of things, Jacquard loom, Jane Jacobs, Jevons paradox, jitney, John Snow's cholera map, Joi Ito, Khan Academy, Kibera, Kickstarter, knowledge worker, Lewis Mumford, load shedding, lolcat, M-Pesa, machine readable, Mark Zuckerberg, megacity, megaproject, messenger bag, mobile money, mutually assured destruction, new economy, New Urbanism, Norbert Wiener, Occupy movement, off grid, One Laptop per Child (OLPC), openstreetmap, packet switching, PalmPilot, Panopticon Jeremy Bentham, Parag Khanna, patent troll, Pearl River Delta, place-making, planetary scale, popular electronics, power law, RFC: Request For Comment, RFID, ride hailing / ride sharing, Robert Gordon, scientific management, self-driving car, sharing economy, Shenzhen special economic zone , Silicon Valley, SimCity, Skype, smart cities, smart grid, smart meter, social graph, social software, social web, SpaceShipOne, 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, Twitter Arab Spring, Tyler Cowen, Tyler Cowen: Great Stagnation, undersea cable, 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.


Howard Rheingold by The Virtual Community Homesteading on the Electronic Frontier-Perseus Books (1993)

"hyperreality Baudrillard"~20 OR "Baudrillard hyperreality", Alvin Toffler, Apple II, bread and circuses, Brewster Kahle, Buckminster Fuller, commoditize, conceptual framework, disinformation, Do you want to sell sugared water for the rest of your life?, Douglas Engelbart, Douglas Engelbart, Electric Kool-Aid Acid Test, experimental subject, General Magic , George Gilder, global village, Gregor Mendel, Hacker Ethic, Haight Ashbury, Howard Rheingold, HyperCard, intentional community, Ivan Sutherland, John Gilmore, John Markoff, Kevin Kelly, knowledge worker, license plate recognition, loose coupling, Marshall McLuhan, megaproject, Menlo Park, meta-analysis, Mitch Kapor, Morris worm, multilevel marketing, packet switching, Panopticon Jeremy Bentham, profit motive, RAND corporation, Ray Oldenburg, rent control, RFC: Request For Comment, Ronald Reagan, Saturday Night Live, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, technoutopianism, Ted Nelson, telepresence, The Great Good Place, The Hackers Conference, the strength of weak ties, urban decay, UUNET, Whole Earth Catalog, Whole Earth Review, young professional

In the September 1991 issue of Scientific American, then-senator Albert Gore noted an estimate that has been supported by others: for the past five years, Internet alone has been growing in numbers of users at around 10 percent per month. The hosts on Internet are the individual computer communities. Some hosts, like the WELL, have thousands of users; a few have tens and hundreds of thousands of users. On Internet, in a publicly available document known as an RFC (Request for Comment), is a graph of the rate of growth of Internet hosts for the 1980s (see page 81). Obviously, these rates of growth have to level off eventually. There aren't enough people in the world to sustain growth rates like that. But cyberspace cartographer John Quarterman, in his article "How Big Is the Matrix?"


pages: 547 words: 160,071

Underground by Suelette Dreyfus

airport security, Free Software Foundation, invisible hand, John Markoff, Julian Assange, Loma Prieta earthquake, military-industrial complex, packet switching, PalmPilot, pirate software, profit motive, publish or perish, RFC: Request For Comment, Ronald Reagan, Stephen Hawking, Steven Levy, Strategic Defense Initiative, Stuxnet, uranium enrichment, urban decay, WikiLeaks, zero day

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.