Communications Protocol
Communications Protocol
1 Algorithm 1
1.1 Informal definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Formalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 Expressing algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Computer algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.1 Algorithm example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.2 Euclid’s algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.3 Testing the Euclid algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5.4 Measuring and improving the Euclid algorithms . . . . . . . . . . . . . . . . . . . . . . . 8
1.6 Algorithmic analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6.1 Formal versus empirical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.6.2 Execution efficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7 Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.7.1 By implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.7.2 By design paradigm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.7.3 Optimization problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7.4 By field of study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7.5 By complexity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.8 Continuous algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.9 Legal issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.10 Etymology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.11 History: Development of the notion of “algorithm” . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.11.1 Ancient Near East . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.11.2 Discrete and distinguishable symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.11.3 Manipulation of symbols as “place holders” for numbers: algebra . . . . . . . . . . . . . . 12
1.11.4 Mechanical contrivances with discrete states . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.11.5 Mathematics during the 19th century up to the mid-20th century . . . . . . . . . . . . . . 13
1.11.6 Emil Post (1936) and Alan Turing (1936–37, 1939) . . . . . . . . . . . . . . . . . . . . . 13
1.11.7 J. B. Rosser (1939) and S. C. Kleene (1943) . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.11.8 History after 1950 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
i
ii CONTENTS
2 Analogy 22
2.1 Usage of the terms “source” and “target” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2 Models and theories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1 Identity of relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 Shared abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.3 Special case of induction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.4 Shared structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.5 High-level perception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.6 Analogy and Complexity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3 Applications and types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.1 In language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.2 In science . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.3 In normative matters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.4 In teaching strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.6 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.7 External links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 AppleTalk 30
3.1 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.1 AppleNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.2 AppleBus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.3 AppleBus networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.1.4 AppleTalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.5 PhoneNet and other adaptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.6 EtherTalk, TokenTalk and AppleShare . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1.7 AppleTalk Phase II and other developments . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1.8 The capital-I Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1.9 Legacy and abandonment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4 Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4.1 AppleTalk Address Resolution Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4.2 AppleTalk Data Stream Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
CONTENTS iii
4 ARPANET 38
4.1 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.1.1 Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1.2 Debate on design goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1.3 ARPANET deployed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1.4 Growth and evolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1.5 Rules and etiquette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.1.6 Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2 Software and protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2.1 Network applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.2 Password protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.3 ARPANET in popular culture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.4 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.6 Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.6.1 Oral histories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.6.2 Detailed technical reference works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.7 External links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6 AX.25 53
6.1 Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.2 Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.2.1 KISS-mode framing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.4 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.5 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.6 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
6.7 Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8 Communication 63
8.1 Nonverbal communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2 Verbal communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3 Written communication and its historical development . . . . . . . . . . . . . . . . . . . . . . . . 64
8.4 Business communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.5 Family communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.6 Interpersonal communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.7 Barriers to effective human communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.7.1 Cultural aspects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.8 Nonhuman communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.8.1 Animals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.8.2 Plants and fungi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.8.3 Bacteria quorum sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.9 Models of communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.10 Noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.11 Communication as academic discipline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.12 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.13 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.14 Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
9 Communications protocol 72
9.1 Communicating systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.2 Basic requirements of protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.3 Protocols and programming languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
9.4 Universal protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.5 Protocol design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.5.1 A basis for protocol design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.5.2 Layering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
9.5.3 Formal specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
9.6 Protocol development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
9.6.1 The need for protocol standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.6.2 Standards organizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.6.3 The standardization process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.6.4 Future of standardization (OSI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.7 Taxonomies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.8 Examples of protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.9 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.10 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
9.11 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
9.12 External links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
10 Communications system 85
vi CONTENTS
10.1 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
10.1.1 By media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
10.1.2 By Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
10.1.3 By Application area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
10.2 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
10.3 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
10.4 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
11 Compiler 87
11.1 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
11.1.1 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
11.1.2 Compilers in education . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
11.2 Compiler output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
11.2.1 Compiled versus interpreted languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
11.2.2 Special type of compilers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
11.3 Compiler construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
11.3.1 One-pass versus multi-pass compilers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
11.3.2 Three phases compiler structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
11.3.3 Front end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
11.3.4 Back end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
11.3.5 Compiler correctness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
11.4 Conferences and organizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
11.5 Related techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
11.6 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
11.7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
11.8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
11.9 External links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
12 Computer hardware 95
12.1 Von Neumann architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
12.2 Sales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
12.3 Different systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
12.3.1 Personal computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
12.3.2 Mainframe computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
12.3.3 Departmental computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
12.3.4 Supercomputer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
12.4 Hardware upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
12.5 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
12.6 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
12.7 External links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
13 Concurrent computing 99
CONTENTS vii
13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
13.1.1 Coordinating access to shared resources . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
13.1.2 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
13.2 Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
13.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
13.3.1 Interaction and communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
13.4 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
13.5 Prevalence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
13.6 Languages supporting it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
13.7 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
13.8 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
13.9 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
13.10Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
13.11External links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
26 HTML 147
26.1 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
26.1.1 Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
CONTENTS xi
28 Implementation 168
28.1 Industry-specific definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
28.1.1 Computer science . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
28.1.2 Information technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
28.1.3 Political science . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
28.1.4 Social and health sciences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
28.1.5 Water and natural resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
28.2 Role of end users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
28.2.1 User concerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
28.2.2 Designer concerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
28.3 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
28.4 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
29 Information 170
29.1 Etymology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
29.2 Information theory approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
29.3 As sensory input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
29.4 As representation and complexity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
29.5 As an influence which leads to a transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
29.6 As a property in physics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
29.7 The application of information study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
29.8 Technologically mediated information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
29.9 As records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
29.10Semiotics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
29.11See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
29.12Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
29.13References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
29.14External links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
34 Internet 195
34.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
34.2 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
34.3 Governance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
34.4 Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
34.4.1 Routing and service tiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
34.4.2 Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
34.4.3 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
34.5 Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
34.6 Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
34.6.1 World Wide Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
34.6.2 Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
34.6.3 Data transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
34.7 Social impact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
34.7.1 Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
34.7.2 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
34.7.3 Social networking and entertainment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
34.7.4 Electronic business . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
34.7.5 Telecommuting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
34.7.6 Crowdsourcing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
34.7.7 Collaborative publishing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
34.7.8 Politics and political revolutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
34.7.9 Philanthropy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
34.8 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
34.8.1 Surveillance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
34.8.2 Censorship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
34.9 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
34.9.1 Outages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
34.9.2 Energy use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
CONTENTS xv
40 Internetworking 237
40.1 Interconnection of networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
40.2 Networking models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
40.3 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
40.4 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
41 IPX/SPX 239
41.1 Protocol layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
41.2 Implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
41.2.1 DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
41.2.2 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
41.2.3 Other . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
41.3 Legacy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
41.4 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
41.5 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
55 Radio 305
xxii CONTENTS
56 Semantics 316
56.1 Linguistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
56.2 Montague grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
56.3 Dynamic turn in semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
56.4 Prototype theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
56.5 Theories in semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
56.5.1 Model theoretic semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
56.5.2 Formal (or truth-conditional) semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
56.5.3 Lexical and conceptual semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
56.5.4 Lexical semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
56.5.5 Computational semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
56.6 Computer science . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
56.6.1 Programming languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
56.6.2 Semantic models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
56.7 Psychology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
56.8 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
CONTENTS xxiii
57 SOAP 322
57.1 Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
57.2 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
57.3 Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
57.3.1 Processing model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
57.4 SOAP building blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
57.5 Transport methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
57.6 Message format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
57.7 Example message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
57.8 Technical critique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
57.8.1 Advantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
57.8.2 Disadvantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
57.9 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
57.10References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
57.11Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
57.12External links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
58 Software 326
58.1 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
58.2 Types of software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
58.2.1 Purpose, or domain of use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
58.2.2 Nature or domain of execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
58.2.3 Programming tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
58.3 Software topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
58.3.1 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
58.3.2 Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
58.3.3 Quality and reliability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
58.3.4 License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
58.3.5 Patents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
58.4 Design and implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
58.5 Industry and organizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
58.6 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
58.7 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
58.8 External links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
xxiv CONTENTS
60 Syntax 333
60.1 Etymology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
60.2 Sequencing of subject, verb, and object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
60.3 Early history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
60.4 Modern theories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
60.4.1 Generative grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
60.4.2 Categorial grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
60.4.3 Dependency grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
60.4.4 Stochastic/probabilistic grammars/network theories . . . . . . . . . . . . . . . . . . . . . 335
60.4.5 Functionalist grammars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
60.5 See also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
60.5.1 Syntactic terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
60.6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
60.7 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
60.8 Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
60.9 External links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
62 Telecommunication 341
62.1 Etymology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
62.2 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
62.2.1 Beacons and pigeons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
62.2.2 Telegraph and telephone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
62.2.3 Radio and television . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
62.2.4 Computers and the Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
62.3 Key concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
62.3.1 Basic elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
CONTENTS xxv
70 X.25 386
70.1 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
70.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
70.2.1 Relation to the OSI Reference Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
70.2.2 User device support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
70.2.3 Error control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
70.3 Addressing and virtual circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
70.4 Billing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
70.5 X.25 packet types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
70.6 X.25 details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
xxviii CONTENTS
Algorithm
For other uses, see Algorithm (disambiguation). cisely defines a sequence of operations.”[11] which would
In mathematics and computer science, an algorithm include all computer programs, including programs that
( i /ˈælɡərɪðəm/ AL-gə-ri-dhəm) is a self-contained step- do not perform numeric calculations. Generally, a pro-
by-step set of operations to be performed. Algorithms gram is only an algorithm if it stops eventually.[12]
perform calculation, data processing, and/or automated
A prototypical example of an algorithm is Euclid’s algo-
reasoning tasks. rithm to determine the maximum common divisor of two
The words 'algorithm' and 'algorism' come from the integers; an example (there are others) is described by the
name al-Khwārizmī. Al-Khwārizmī (Persian: ﺧﻮارزﻣﯽ, flow chart above and as an example in a later section.
c. 780–850) was a Persian mathematician, astronomer, Boolos & Jeffrey (1974, 1999) offer an informal meaning
geographer, and scholar. of the word in the following quotation:
An algorithm is an effective method that can be ex-
pressed within a finite amount of space and time[1]
No human being can write fast enough, or
and in a well-defined formal language[2] for calculat-
long enough, or small enough† ( †"smaller and
ing a function.[3] Starting from an initial state and ini-
smaller without limit ...you'd be trying to write
tial input (perhaps empty),[4] the instructions describe
on molecules, on atoms, on electrons”) to list
a computation that, when executed, proceeds through a
all members of an enumerably infinite set by
finite[5] number of well-defined successive states, eventu-
writing out their names, one after another, in
ally producing “output”[6] and terminating at a final end-
some notation. But humans can do something
ing state. The transition from one state to the next is
equally useful, in the case of certain enumer-
not necessarily deterministic; some algorithms, known as
ably infinite sets: They can give explicit instruc-
randomized algorithms, incorporate random input.[7]
tions for determining the nth member of the set,
The concept of algorithm has existed for centuries; how- for arbitrary finite n. Such instructions are to
ever, a partial formalization of what would become be given quite explicitly, in a form in which they
the modern algorithm began with attempts to solve the could be followed by a computing machine, or
Entscheidungsproblem (the “decision problem”) posed by a human who is capable of carrying out only
by David Hilbert in 1928. Subsequent formalizations very elementary operations on symbols.[13]
were framed as attempts to define "effective calculabil-
ity"[8] or “effective method";[9] those formalizations in-
An “enumerably infinite set” is one whose elements can
cluded the Gödel–Herbrand–Kleene recursive functions
be put into one-to-one correspondence with the integers.
of 1930, 1934 and 1935, Alonzo Church's lambda cal-
Thus, Boolos and Jeffrey are saying that an algorithm im-
culus of 1936, Emil Post's "Formulation 1" of 1936,
plies instructions for a process that “creates” output inte-
and Alan Turing's Turing machines of 1936–7 and 1939.
gers from an arbitrary “input” integer or integers that, in
Giving a formal definition of algorithms, corresponding
theory, can be arbitrarily large. Thus an algorithm can be
to the intuitive notion, remains a challenging problem.[10]
an algebraic equation such as y = m + n – two arbitrary
“input variables” m and n that produce an output y. But
various authors’ attempts to define the notion indicate that
1.1 Informal definition the word implies much more than this, something on the
order of (for the addition example):
For a detailed presentation of the various points of
view on the definition of “algorithm”, see Algorithm Precise instructions (in language understood
characterizations. by “the computer”)[14] for a fast, efficient,
“good”[15] process that specifies the “moves” of
An informal definition could be “a set of rules that pre- “the computer” (machine or human, equipped
1
2 CHAPTER 1. ALGORITHM
yes
2 B = 0?
1.2 Formalization
no
Algorithms are essential to the way computers process
data. Many computer programs contain algorithms that
yes detail the specific instructions a computer should perform
3 A > B?
(in a specific order) to carry out a specified task, such
as calculating employees’ paychecks or printing students’
no (< or =)
report cards. Thus, an algorithm can be considered to
4 B B-A be any sequence of operations that can be simulated by
a Turing-complete system. Authors who assert this the-
5 GOTO 2
sis include Minsky (1967), Savage (1987) and Gurevich
(2000):
6 A A-B
Minsky: “But we will also maintain, with
7 GOTO 2 Turing . . . that any procedure which could
“naturally” be called effective, can in fact be
realized by a (simple) machine. Although this
may seem extreme, the arguments . . . in its
8 PRINT A favor are hard to refute”.[19]
listed explicitly, and are described as starting “from the 1.3 Implementation
top” and going “down to the bottom”, an idea that is de-
scribed more formally by flow of control.
So far, this discussion of the formalization of an algo- Vcc
rithm has assumed the premises of imperative program-
ming. This is the most common conception, and it at-
tempts to describe a task in discrete, “mechanical” means.
Unique to this conception of formalized algorithms is the
assignment operation, setting the value of a variable. It Q
derives from the intuition of "memory" as a scratchpad.
There is an example below of such an assignment.
A
For some alternate conceptions of what constitutes an al-
gorithm see functional programming and logic program-
B
ming.
GND
1.2.1 Expressing algorithms
Logical NAND algorithm implemented electronically in 7400
Algorithms can be expressed in many kinds of notation, chip
including natural languages, pseudocode, flowcharts,
drakon-charts, programming languages or control tables Most algorithms are intended to be implemented as
(processed by interpreters). Natural language expressions computer programs. However, algorithms are also im-
of algorithms tend to be verbose and ambiguous, and are plemented by other means, such as in a biological neural
rarely used for complex or technical algorithms. Pseu- network (for example, the human brain implementing
docode, flowcharts, drakon-charts and control tables are arithmetic or an insect looking for food), in an electrical
structured ways to express algorithms that avoid many of circuit, or in a mechanical device.
the ambiguities common in natural language statements.
Programming languages are primarily intended for ex-
pressing algorithms in a form that can be executed by a 1.4 Computer algorithms
computer, but are often used as a way to define or docu-
ment algorithms.
In computer systems, an algorithm is basically an instance
There is a wide variety of representations possible and of logic written in software by software developers to be
one can express a given Turing machine program as effective for the intended “target” computer(s) to produce
a sequence of machine tables (see more at finite state output from given (perhaps null) input. An optimal al-
machine, state transition table and control table), as gorithm, even running in old hardware, would produce
flowcharts and drakon-charts (see more at state diagram), faster results than a non-optimal (higher time complex-
or as a form of rudimentary machine code or assembly ity) algorithm for the same purpose, running in more ef-
code called “sets of quadruples” (see more at Turing ma- ficient hardware; that is why algorithms, like computer
chine). hardware, are considered technology.
Representations of algorithms can be classed into three “Elegant” (compact) programs, “good” (fast) programs :
accepted levels of Turing machine description:[21] The notion of “simplicity and elegance” appears infor-
mally in Knuth and precisely in Chaitin:
1 High-level description "...prose to describe an algo-
rithm, ignoring the implementation details. At this Knuth: ". . .we want good algorithms in some
level we do not need to mention how the machine loosely defined aesthetic sense. One criterion .
manages its tape or head.” . . is the length of time taken to perform the al-
gorithm . . .. Other criteria are adaptability of
2 Implementation description "...prose used to define the algorithm to computers, its simplicity and
the way the Turing machine uses its head and the elegance, etc”[22]
way that it stores data on its tape. At this level we do
not give details of states or transition function.” Chaitin: " . . . a program is 'elegant,' by which
I mean that it’s the smallest possible program
3 Formal description Most detailed, “lowest level”, for producing the output that it does”[23]
gives the Turing machine’s “state table”.
Chaitin prefaces his definition with: “I'll show you can't
For an example of the simple algorithm “Add m+n” de- prove that a program is 'elegant'"—such a proof would
scribed in all three levels, see Algorithm#Examples. solve the Halting problem (ibid).
4 CHAPTER 1. ALGORITHM
observe that, while “undisciplined” use of unconditional this follows a simple algorithm, which can be stated in a
GOTOs and conditional IF-THEN GOTOs can result in high-level description English prose, as:
"spaghetti code", a programmer can write structured pro- High-level description:
grams using only these instructions; on the other hand “it
is also possible, and not too hard, to write badly structured
programs in a structured language”.[38] Tausworthe aug- 1. If there are no numbers in the set then there is no
ments the three Böhm-Jacopini canonical structures: [39] highest number.
SEQUENCE, IF-THEN-ELSE, and WHILE-DO, with
two more: DO-WHILE and CASE.[40] An additional 2. Assume the first number in the set is the largest num-
benefit of a structured program is that it lends itself to ber in the set.
[41]
proofs of correctness using mathematical induction.
3. For each remaining number in the set: if this number
Canonical flowchart symbols[42] : The graphical aide is larger than the current largest number, consider
called a flowchart offers a way to describe and document this number to be the largest number in the set.
an algorithm (and a computer program of one). Like pro-
gram flow of a Minsky machine, a flowchart always starts 4. When there are no numbers left in the set to iterate
at the top of a page and proceeds down. Its primary sym- over, consider the current largest number to be the
bols are only four: the directed arrow showing program largest number of the set.
flow, the rectangle (SEQUENCE, GOTO), the diamond
(IF-THEN-ELSE), and the dot (OR-tie). The Böhm– (Quasi-)formal description: Written in prose but much
Jacopini canonical structures are made of these primitive closer to the high-level language of a computer program,
shapes. Sub-structures can “nest” in rectangles, but only the following is the more formal coding of the algorithm
if a single exit occurs from the superstructure. The sym- in pseudocode or pidgin code:
bols, and their use to build the canonical structures, are
shown in the diagram. Algorithm LargestNumber Input: A list of numbers L.
Output: The largest number in the list L. if L.size = 0
return null largest ← L[0] for each item in L, do if item
> largest, then largest ← item return largest
1.5 Examples
• "←" is a shorthand for “changes to”. For instance, "largest
Further information: List of algorithms ← item" means that the value of largest changes to the
value of item.
Euclid’s original proof adds a third requirement: the two 3 [Ensure the smaller of the two numbers is in S and the
lengths must not be prime to one another. Euclid stipu- larger in R]: IF R > S THEN the contents of L is the
lated this so that he could construct a reductio ad absur- larger number so skip over the exchange-steps 4, 5 and
dum proof that the two numbers’ common measure is in 6: GOTO step 6 ELSE swap the contents of R and S. 4
fact the greatest.[46] While Nicomachus’ algorithm is the L ← R (this first step is redundant, but is useful for later
same as Euclid’s, when the numbers are prime to one an- discussion). 5 R ← S 6 S ← L
other, it yields the number “1” for their common measure. E1: [Find remainder]: Until the remaining length r in
So, to be precise, the following is really Nicomachus’ al- R is less than the shorter length s in S, repeatedly subtract
gorithm. the measuring number s in S from the remaining length r
in R.
7 IF S > R THEN done measuring so GOTO 10 ELSE
measure again, 8 R ← R − S 9 [Remainder-loop]: GOTO
7.
E2: [Is the remainder zero?]: EITHER (i) the last mea-
sure was exact, the remainder in R is zero, and the pro-
gram can halt, OR (ii) the algorithm must continue: the
last measure left a remainder in R less than measuring
number in S.
10 IF R = 0 THEN done so GOTO step 15 ELSE CON-
TINUE TO step 11,
A graphical expression of Euclid’s algorithm to find the greatest E3: [Interchange s and r]: The nut of Euclid’s algo-
common divisor for 1599 and 650. rithm. Use remainder r to measure what was previously
1599 = 650×2 + 299 650 = 299×2 + 52 299 = 52×5 + 39 52 smaller number s; L serves as a temporary location.
= 39×1 + 13 39 = 13×3 + 0
11 L ← R 12 R ← S 13 S ← L 14 [Repeat the measuring
process]: GOTO 7
1.5. EXAMPLES 7
of a program be the length of its correctness proof.[49] not counted, or O(n) if it is counted.
Different algorithms may complete the same task with a
different set of instructions in less or more time, space,
1.5.4 Measuring and improving the Euclid or 'effort' than others. For example, a binary search al-
algorithms gorithm (with cost O(log n) ) outperforms a sequential
search (cost O(n) ) when used for table lookups on sorted
Elegance (compactness) versus goodness (speed): With lists or arrays.
only six core instructions, “Elegant” is the clear winner,
compared to “Inelegant” at thirteen instructions. How-
ever, “Inelegant” is faster (it arrives at HALT in fewer
steps). Algorithm analysis[50] indicates why this is the
case: “Elegant” does two conditional tests in every sub- 1.6.1 Formal versus empirical
traction loop, whereas “Inelegant” only does one. As the
algorithm (usually) requires many loop-throughs, on av- Main articles: Empirical algorithmics, Profiling (com-
erage much time is wasted doing a “B = 0?" test that is puter programming), and Program optimization
needed only after the remainder is computed.
Can the algorithms be improved?: Once the programmer The analysis and study of algorithms is a discipline of
judges a program “fit” and “effective”—that is, it com- computer science, and is often practiced abstractly with-
putes the function intended by its author—then the ques- out the use of a specific programming language or im-
tion becomes, can it be improved? plementation. In this sense, algorithm analysis resem-
The compactness of “Inelegant” can be improved by bles other mathematical disciplines in that it focuses on
the elimination of five steps. But Chaitin proved that the underlying properties of the algorithm and not on
compacting an algorithm cannot be automated by a the specifics of any particular implementation. Usually
generalized algorithm;[51] rather, it can only be done pseudocode is used for analysis as it is the simplest and
heuristically; i.e., by exhaustive search (examples to be most general representation. However, ultimately, most
found at Busy beaver), trial and error, cleverness, in- algorithms are usually implemented on particular hard-
sight, application of inductive reasoning, etc. Observe ware / software platforms and their algorithmic efficiency
that steps 4, 5 and 6 are repeated in steps 11, 12 and is eventually put to the test using real code. For the solu-
13. Comparison with “Elegant” provides a hint that these tion of a “one off” problem, the efficiency of a particular
steps, together with steps 2 and 3, can be eliminated. This algorithm may not have significant consequences (unless
reduces the number of core instructions from thirteen to n is extremely large) but for algorithms designed for fast
eight, which makes it “more elegant” than “Elegant”, at interactive, commercial or long life scientific usage it may
nine steps. be critical. Scaling from small n to large n frequently ex-
poses inefficient algorithms that are otherwise benign.
The speed of “Elegant” can be improved by moving the
“B=0?" test outside of the two subtraction loops. This Empirical testing is useful because it may uncover unex-
change calls for the addition of three instructions (B = 0?, pected interactions that affect performance. Benchmarks
A = 0?, GOTO). Now “Elegant” computes the example- may be used to compare before/after potential improve-
numbers faster; whether this is always the case for any ments to an algorithm after program optimization.
given A, B and R, S would require a detailed analysis.
It is frequently important to know how much of a par- To illustrate the potential improvements possible even in
ticular resource (such as time or storage) is theoretically well established algorithms, a recent significant innova-
required for a given algorithm. Methods have been devel- tion, relating to FFT algorithms (used heavily in the field
oped for the analysis of algorithms to obtain such quanti- of image processing), can decrease processing time up
tative answers (estimates); for example, the sorting algo- to 1,000 times for applications like medical imaging.[52]
rithm above has a time requirement of O(n), using the big In general, speed improvements depend on special prop-
O notation with n as the length of the list. At all times the erties of the problem, which are very common in prac-
algorithm only needs to remember two values: the largest tical applications.[53] Speedups of this magnitude enable
number found so far, and its current position in the input computing devices that make extensive use of image pro-
list. Therefore, it is said to have a space requirement of cessing (like digital cameras and medical equipment) to
O(1), if the space required to store the input numbers is consume less power.
1.7. CLASSIFICATION 9
such problems. This category also includes search such a problem if it can be proved that all restric-
algorithms, branch and bound enumeration and tions for integer values are superficial, i.e., the solu-
backtracking. tions satisfy these restrictions anyway. In the general
case, a specialized algorithm or an algorithm that
Randomized algorithm Such algorithms make some finds approximate solutions is used, depending on
choices randomly (or pseudo-randomly). They can the difficulty of the problem.
be very useful in finding approximate solutions for
problems where finding exact solutions can be im- Dynamic programming When a problem shows
practical (see heuristic method below). For some optimal substructures — meaning the optimal
of these problems, it is known that the fastest ap- solution to a problem can be constructed from op-
proximations must involve some randomness.[56] timal solutions to subproblems — and overlapping
Whether randomized algorithms with polynomial subproblems, meaning the same subproblems are
time complexity can be the fastest algorithms for used to solve many different problem instances,
some problems is an open question known as the P a quicker approach called dynamic programming
versus NP problem. There are two large classes of avoids recomputing solutions that have already
such algorithms: been computed. For example, Floyd–Warshall
algorithm, the shortest path to a goal from a
1. Monte Carlo algorithms return a correct answer with vertex in a weighted graph can be found by using
high-probability. E.g. RP is the subclass of these the shortest path to the goal from all adjacent
that run in polynomial time. vertices. Dynamic programming and memoization
go together. The main difference between dynamic
2. Las Vegas algorithms always return the correct an- programming and divide and conquer is that sub-
swer, but their running time is only probabilistically problems are more or less independent in divide and
bound, e.g. ZPP. conquer, whereas subproblems overlap in dynamic
programming. The difference between dynamic
Reduction of complexity This technique involves solv- programming and straightforward recursion is in
ing a difficult problem by transforming it into a bet- caching or memoization of recursive calls. When
ter known problem for which we have (hopefully) subproblems are independent and there is no repe-
asymptotically optimal algorithms. The goal is to tition, memoization does not help; hence dynamic
find a reducing algorithm whose complexity is not programming is not a solution for all complex
dominated by the resulting reduced algorithm’s. For problems. By using memoization or maintaining
example, one selection algorithm for finding the me- a table of subproblems already solved, dynamic
dian in an unsorted list involves first sorting the list programming reduces the exponential nature of
(the expensive portion) and then pulling out the mid- many problems to polynomial complexity.
dle element in the sorted list (the cheap portion).
The greedy method A greedy algorithm is similar to a
This technique is also known as transform and con-
dynamic programming algorithm in that it works
quer.
by examining substructures, in this case not of the
problem but of a given solution. Such algorithms
start with some solution, which may be given or
1.7.3 Optimization problems have been constructed in some way, and improve it
by making small modifications. For some problems
For optimization problems there is a more specific clas-
they can find the optimal solution while for others
sification of algorithms; an algorithm for such problems
they stop at local optima, that is, at solutions that
may fall into one or more of the general categories de-
cannot be improved by the algorithm but are not op-
scribed above as well as into one of the following:
timum. The most popular use of greedy algorithms
is for finding the minimal spanning tree where find-
Linear programming When searching for optimal so- ing the optimal solution is possible with this method.
lutions to a linear function bound to linear equal- Huffman Tree, Kruskal, Prim, Sollin are greedy al-
ity and inequality constraints, the constraints of the gorithms that can solve this optimization problem.
problem can be used directly in producing the op-
timal solutions. There are algorithms that can solve The heuristic method In optimization problems,
any problem in this category, such as the popular heuristic algorithms can be used to find a solu-
simplex algorithm.[57] Problems that can be solved tion close to the optimal solution in cases where
with linear programming include the maximum flow finding the optimal solution is impractical. These
problem for directed graphs. If a problem addition- algorithms work by getting closer and closer to the
ally requires that one or more of the unknowns must optimal solution as they progress. In principle, if
be an integer then it is classified in integer program- run for an infinite amount of time, they will find
ming. A linear programming algorithm can solve the optimal solution. Their merit is that they can
1.8. CONTINUOUS ALGORITHMS 11
find a solution very close to the optimal solution p. 107). This is closely related to the study of methods
in a relatively short time. Such algorithms include of hypercomputation.
local search, tabu search, simulated annealing, and
genetic algorithms. Some of them, like simulated
annealing, are non-deterministic algorithms while 1.8 Continuous algorithms
others, like tabu search, are deterministic. When a
bound on the error of the non-optimal solution is
known, the algorithm is further categorized as an The adjective “continuous” when applied to the word “al-
approximation algorithm. gorithm” can mean:
widely read mathematician in Europe in the late Middle 1.11.4 Mechanical contrivances with dis-
Ages, primarily through his other book, the Algebra.[62] crete states
In late medieval Latin, algorismus, English 'algorism', the
corruption of his name, simply meant the “decimal num- The clock: Bolter credits the invention of the weight-
ber system”. In the 15th century, under the influence driven clock as “The key invention [of Europe in the Mid-
of the Greek word ἀριθμός 'number' (cf. 'arithmetic'), dle Ages]", in particular the verge escapement[68] that
the Latin word was altered to algorithmus, and the corre- provides us with the tick and tock of a mechanical clock.
sponding English term 'algorithm' is first attested in the “The accurate automatic machine”[69] led immediately
17th century; the modern sense was introduced in the to “mechanical automata" beginning in the 13th century
19th century.[63] and finally to “computational machines”—the difference
engine and analytical engines of Charles Babbage and
Countess Ada Lovelace, mid-19th century.[70] Lovelace
1.11 History: Development of the is credited with the first creation of an algorithm intended
for processing on a computer – Babbage’s analytical en-
notion of “algorithm” gine, the first device considered a real Turing-complete
computer instead of just a calculator – and is sometimes
1.11.1 Ancient Near East called “history’s first programmer” as a result, though a
full implementation of Babbage’s second device would
Algorithms were used in ancient Greece. Two exam- not be realized until decades after her lifetime.
ples are the Sieve of Eratosthenes, which was described
Logical machines 1870—Stanley Jevons' “logical abacus”
in Introduction to Arithmetic by Nicomachus,[64][65]:Ch 9.2
and “logical machine”: The technical problem was to re-
and the Euclidean algorithm, which was first described
duce Boolean equations when presented in a form similar
in Euclid’s Elements (c. 300 BC).[65]:Ch 9.1 Babylonian
to what are now known as Karnaugh maps. Jevons (1880)
clay tablets describe and employ algorithmic procedures
describes first a simple “abacus” of “slips of wood fur-
to compute the time and place of significant astronomical
[66] nished with pins, contrived so that any part or class of the
events.
[logical] combinations can be picked out mechanically .
. . More recently however I have reduced the system to a
1.11.2 Discrete and distinguishable sym- completely mechanical form, and have thus embodied the
whole of the indirect process of inference in what may be
bols called a Logical Machine" His machine came equipped
with “certain moveable wooden rods” and “at the foot are
Tally-marks: To keep track of their flocks, their sacks
21 keys like those of a piano [etc] . . .”. With this ma-
of grain and their money the ancients used tallying: accu-
chine he could analyze a "syllogism or any other simple
mulating stones or marks scratched on sticks, or making
logical argument”.[71]
discrete symbols in clay. Through the Babylonian and
Egyptian use of marks and symbols, eventually Roman This machine he displayed in 1870 before the Fellows of
numerals and the abacus evolved (Dilson, p. 16–41). the Royal Society.[72] Another logician John Venn, how-
Tally marks appear prominently in unary numeral system ever, in his 1881 Symbolic Logic, turned a jaundiced eye
arithmetic used in Turing machine and Post–Turing ma- to this effort: “I have no high estimate myself of the in-
chine computations. terest or importance of what are sometimes called log-
ical machines ... it does not seem to me that any con-
trivances at present known or likely to be discovered re-
1.11.3 Manipulation of symbols as “place ally deserve the name of logical machines"; see more at
holders” for numbers: algebra Algorithm characterizations. But not to be outdone he
too presented “a plan somewhat analogous, I apprehend,
The work of the ancient Greek geometers (Euclidean al- to Prof. Jevon’s abacus ... [And] [a]gain, correspond-
gorithm), the Indian mathematician Brahmagupta, and ing to Prof. Jevons’s logical machine, the following con-
the Islamic mathematics Al-Khwarizmi (from whose trivance may be described. I prefer to call it merely a
name the terms "algorism" and “algorithm” are derived), logical-diagram machine ... but I suppose that it could do
and Western European mathematicians culminated in very completely all that can be rationally expected of any
Leibniz's notion of the calculus ratiocinator (ca 1680): logical machine”.[73]
Jacquard loom, Hollerith punch cards, telegraphy and
A good century and a half ahead of his telephony—the electromechanical relay: Bell and Newell
time, Leibniz proposed an algebra of logic, an (1971) indicate that the Jacquard loom (1801), precursor
algebra that would specify the rules for manip- to Hollerith cards (punch cards, 1887), and “telephone
ulating logical concepts in the manner that or- switching technologies” were the roots of a tree lead-
dinary algebra specifies the rules for manipu- ing to the development of the first computers.[74] By the
lating numbers.[67] mid-19th century the telegraph, the precursor of the tele-
1.11. HISTORY: DEVELOPMENT OF THE NOTION OF “ALGORITHM” 13
phone, was in use throughout the world, its discrete and succeed). In rapid succession the following appeared:
distinguishable encoding of letters as “dots and dashes” a Alonzo Church, Stephen Kleene and J.B. Rosser's λ-
common sound. By the late 19th century the ticker tape calculus[80] a finely honed definition of “general recur-
(ca 1870s) was in use, as was the use of Hollerith cards sion” from the work of Gödel acting on suggestions
in the 1890 U.S. census. Then came the teleprinter (ca. of Jacques Herbrand (cf. Gödel’s Princeton lectures
1910) with its punched-paper use of Baudot code on tape. of 1934) and subsequent simplifications by Kleene.[81]
Telephone-switching networks of electromechanical Church’s proof[82] that the Entscheidungsproblem was
relays (invented 1835) was behind the work of George unsolvable, Emil Post's definition of effective calcu-
lability as a worker mindlessly following a list of in-
Stibitz (1937), the inventor of the digital adding device.
As he worked in Bell Laboratories, he observed the structions to move left or right through a sequence of
rooms and while there either mark or erase a paper or
“burdensome' use of mechanical calculators with gears.
“He went home one evening in 1937 intending to test observe the paper and make a yes-no decision about
the next instruction.[83] Alan Turing’s proof of that the
his idea... When the tinkering was over, Stibitz had
constructed a binary adding device”.[75] Entscheidungsproblem was unsolvable by use of his “a-
[automatic-] machine”[84] —in effect almost identical to
Davis (2000) observes the particular importance of the Post’s “formulation”, J. Barkley Rosser's definition of
electromechanical relay (with its two “binary states” open “effective method” in terms of “a machine”.[85] S. C.
and closed): Kleene's proposal of a precursor to "Church thesis" that
he called “Thesis I”,[86] and a few years later Kleene’s
It was only with the development, beginning in renaming his Thesis “Church’s Thesis”[87] and proposing
the 1930s, of electromechanical calculators us- “Turing’s Thesis”.[88]
ing electrical relays, that machines were built
having the scope Babbage had envisioned.”[76]
1.11.6 Emil Post (1936) and Alan Turing
(1936–37, 1939)
1.11.5 Mathematics during the 19th cen-
tury up to the mid-20th century Here is a remarkable coincidence of two men not know-
ing each other but describing a process of men-as-
Symbols and rules: In rapid succession the mathematics computers working on computations—and they yield vir-
of George Boole (1847, 1854), Gottlob Frege (1879), tually identical definitions.
and Giuseppe Peano (1888–1889) reduced arithmetic to
Emil Post (1936) described the actions of a “computer”
a sequence of symbols manipulated by rules. Peano’s The
(human being) as follows:
principles of arithmetic, presented by a new method (1888)
was “the first attempt at an axiomatization of mathemat-
ics in a symbolic language”.[77] "...two concepts are involved: that of a symbol
space in which the work leading from problem
But Heijenoort gives Frege (1879) this kudos: Frege’s is
to answer is to be carried out, and a fixed unal-
“perhaps the most important single work ever written in
terable set of directions.
logic. ... in which we see a " 'formula language', that
is a lingua characterica, a language written with special
symbols, “for pure thought”, that is, free from rhetorical His symbol space would be
embellishments ... constructed from specific symbols that
are manipulated according to definite rules”.[78] The work “a two way infinite sequence of spaces or
of Frege was further simplified and amplified by Alfred boxes... The problem solver or worker is to
North Whitehead and Bertrand Russell in their Principia move and work in this symbol space, being ca-
Mathematica (1910–1913). pable of being in, and operating in but one box
The paradoxes: At the same time a number of disturb- at a time.... a box is to admit of but two possi-
ing paradoxes appeared in the literature, in particular the ble conditions, i.e., being empty or unmarked,
Burali-Forti paradox (1897), the Russell paradox (1902– and having a single mark in it, say a vertical
03), and the Richard Paradox.[79] The resultant consid- stroke.
erations led to Kurt Gödel's paper (1931)—he specifi-
cally cites the paradox of the liar—that completely re- “One box is to be singled out and called the
duces rules of recursion to numbers. starting point. ...a specific problem is to be
Effective calculability: In an effort to solve the given in symbolic form by a finite number
Entscheidungsproblem defined precisely by Hilbert in of boxes [i.e., INPUT] being marked with a
1928, mathematicians first set about to define what was stroke. Likewise the answer [i.e., OUTPUT]
meant by an “effective method” or “effective calculation” is to be given in symbolic form by such a con-
or “effective calculability” (i.e., a calculation that would figuration of marked boxes....
14 CHAPTER 1. ALGORITHM
“A set of directions applicable to a general of states of mind which need be taken into ac-
problem sets up a deterministic process when count is finite...
applied to each specific problem. This process
terminates only when it comes to the direc- “Let us imagine that the operations performed
tion of type (C ) [i.e., STOP]".[89] See more by the computer to be split up into 'simple op-
at Post–Turing machine erations’ which are so elementary that it is not
easy to imagine them further divided.”[93]
[6] “An algorithm has one or more outputs, i.e. quanti- [27] A “robot": “A computer is a robot that performs any task
ties which have a specified relation to the inputs” (Knuth that can be described as a sequence of instructions.” cf
1973:5). Stone 1972:3
[7] Whether or not a process with random interior processes [28] Lambek’s “abacus” is a “countably infinite number of lo-
(not including the input) is an algorithm is debatable. cations (holes, wires etc.) together with an unlimited sup-
Rogers opines that: “a computation is carried out in a dis- ply of counters (pebbles, beads, etc). The locations are
crete stepwise fashion, without use of continuous methods distinguishable, the counters are not”. The holes have
or analogue devices . . . carried forward deterministically, unlimited capacity, and standing by is an agent who un-
without resort to random methods or devices, e.g., dice” derstands and is able to carry out the list of instructions”
Rogers 1987:2. (Lambek 1961:295). Lambek references Melzak who de-
fines his Q-machine as “an indefinitely large number of
[8] Kleene 1943 in Davis 1965:274 locations . . . an indefinitely large supply of counters
distributed among these locations, a program, and an op-
[9] Rosser 1939 in Davis 1965:225
erator whose sole purpose is to carry out the program”
[10] Moschovakis, Yiannis N. (2001). “What is an algo- (Melzak 1961:283). B-B-J (loc. cit.) add the stipula-
rithm?". In Engquist, B.; Schmid, W. Mathematics Un- tion that the holes are “capable of holding any number of
limited — 2001 and beyond. Springer. pp. 919–936 (Part stones” (p. 46). Both Melzak and Lambek appear in The
II). ISBN 9783540669135. Canadian Mathematical Bulletin, vol. 4, no. 3, September
1961.
[11] Stone 1973:4
[29] If no confusion results, the word “counters” can be
[12] Stone simply requires that “it must terminate in a finite dropped, and a location can be said to contain a single
number of steps” (Stone 1973:7–8). “number”.
[13] Boolos and Jeffrey 1974,1999:19 [30] “We say that an instruction is effective if there is a proce-
dure that the robot can follow in order to determine pre-
[14] cf Stone 1972:5 cisely how to obey the instruction.” (Stone 1972:6)
[15] Knuth 1973:7 states: “In practice we not only want algo- [31] cf Minsky 1967: Chapter 11 “Computer models” and
rithms, we want good algorithms ... one criterion of good- Chapter 14 “Very Simple Bases for Computability” pp.
ness is the length of time taken to perform the algorithm 255–281 in particular
... other criteria are the adaptability of the algorithm to
computers, its simplicity and elegance, etc.” [32] cf Knuth 1973:3.
[16] cf Stone 1973:6 [33] But always preceded by IF–THEN to avoid improper sub-
traction.
[17] Stone 1973:7–8 states that there must be, "...a procedure
that a robot [i.e., computer] can follow in order to deter- [34] However, a few different assignment instruc-
mine precisely how to obey the instruction.” Stone adds tions (e.g. DECREMENT, INCREMENT and
finiteness of the process, and definiteness (having no am- ZERO/CLEAR/EMPTY for a Minsky machine)
biguity in the instructions) to this definition. are also required for Turing-completeness; their exact
specification is somewhat up to the designer. The uncon-
[18] Knuth, loc. cit ditional GOTO is a convenience; it can be constructed
by initializing a dedicated location to zero e.g. the
[19] Minsky 1967, p. 105 instruction " Z ← 0 "; thereafter the instruction IF Z=0
THEN GOTO xxx is unconditional.
[20] Gurevich 2000:1, 3
[35] Knuth 1973:4
[21] Sipser 2006:157
[36] Stone 1972:5. Methods for extracting roots are not trivial:
[22] Knuth 1973:7
see Methods of computing square roots.
[23] Chaitin 2005:32
[37] Leeuwen, Jan (1990). Handbook of Theoretical Computer
[24] Rogers 1987:1–2 Science: Algorithms and complexity. Volume A. Elsevier.
p. 85. ISBN 978-0-444-88071-0.
[25] In his essay “Calculations by Man and Machine: Con-
ceptual Analysis” Seig 2002:390 credits this distinction [38] John G. Kemeny and Thomas E. Kurtz 1985 Back to
to Robin Gandy, cf Wilfred Seig, et al., 2002 Reflections Basic: The History, Corruption, and Future of the Lan-
on the foundations of mathematics: Essays in honor of guage, Addison-Wesley Publishing Company, Inc. Read-
Solomon Feferman, Association for Symbolic Logic, A. ing, MA, ISBN 0-201-13433-0.
K Peters Ltd, Natick, MA. [39] Tausworthe 1977:101
[26] cf Gandy 1980:126, Robin Gandy Church’s Thesis and [40] Tausworthe 1977:142
Principles for Mechanisms appearing on pp. 123–148 in
J. Barwise et al. 1980 The Kleene Symposium, North- [41] Knuth 1973 section 1.2.1, expanded by Tausworthe 1977
Holland Publishing Company. at pages 100ff and Chapter 9.1
1.13. NOTES 17
[42] cf Tausworthe 1977 [60] Oaks, Jeffrey A. “Was al-Khwarizmi an applied alge-
braist?". University of Indianapolis. Retrieved 2008-05-
[43] Heath 1908:300; Hawking’s Dover 2005 edition derives 30.
from Heath.
[61] Brezina, Corona (2006). Al-Khwarizmi: The Inventor Of
[44] " 'Let CD, measuring BF, leave FA less than itself.' This is Algebra. The Rosen Publishing Group. ISBN 978-1-
a neat abbreviation for saying, measure along BA succes- 4042-0513-0.
sive lengths equal to CD until a point F is reached such that
the length FA remaining is less than CD; in other words, [62] Foremost mathematical texts in history, according to Carl
let BF be the largest exact multiple of CD contained in B. Boyer.
BA” (Heath 1908:297)
[63] Oxford English Dictionary, Third Edition, 2012 s.v.
[45] For modern treatments using division in the algorithm,
see Hardy and Wright 1979:180, Knuth 1973:2 (Volume [64] “Eratosthenes”.
1), plus more discussion of Euclid’s algorithm in Knuth
1969:293–297 (Volume 2). [65] Cooke, Roger L. (2005). The History of Mathematics: A
Brief Course. John Wiley & Sons. ISBN 9781118460290.
[46] Euclid covers this question in his Proposition 1.
[66] Aaboe, Asger (2001), Episodes from the Early History of
[47] “Euclid’s Elements, Book VII, Proposition 2”. Astronomy, New York: Springer, pp. 40–62, ISBN 0-
Aleph0.clarku.edu. Retrieved May 20, 2012. 387-95136-9
[58] Tsypkin (1971). Adaptation and learning in automatic sys- [80] cf. footnote in Alonzo Church 1936a in Davis 1965:90
tems. Academic Press. p. 54. ISBN 978-0-08-095582-7. and 1936b in Davis 1965:110
[59] Hogendijk, Jan P. (1998). “al-Khwarzimi”. Pythagoras. [81] Kleene 1935–6 in Davis 1965:237ff, Kleene 1943 in
38 (2): 4–5. Archived from the original on April 12, 2009. Davis 1965:255ff
18 CHAPTER 1. ALGORITHM
[82] Church 1936 in Davis 1965:88ff • Church, Alonzo (1936a). “An Unsolvable Prob-
lem of Elementary Number Theory”. The Amer-
[83] cf. “Formulation I”, Post 1936 in Davis 1965:289–290
ican Journal of Mathematics. 58 (2): 345–363.
[84] Turing 1936–7 in Davis 1965:116ff doi:10.2307/2371045. JSTOR 2371045. Reprinted
in The Undecidable, p. 89ff. The first expression of
[85] Rosser 1939 in Davis 1965:226
“Church’s Thesis”. See in particular page 100 (The
[86] Kleene 1943 in Davis 1965:273–274 Undecidable) where he defines the notion of “effec-
tive calculability” in terms of “an algorithm”, and he
[87] Kleene 1952:300, 317 uses the word “terminates”, etc.
[88] Kleene 1952:376
• Church, Alonzo (1936b). “A Note on the Entschei-
[89] Turing 1936–7 in Davis 1965:289–290 dungsproblem”. The Journal of Symbolic Logic.
1 (1): 40–41. doi:10.2307/2269326. JSTOR
[90] Turing 1936 in Davis 1965, Turing 1939 in Davis
2269326. Church, Alonzo (1936). “Correction
1965:160
to a Note on the Entscheidungsproblem”. The
[91] Hodges, p. 96 Journal of Symbolic Logic. 1 (3): 101–102.
doi:10.2307/2269030. JSTOR 2269030. Reprinted
[92] Turing 1936–7:116
in The Undecidable, p. 110ff. Church shows that
[93] Turing 1936–7 in Davis 1965:136 the Entscheidungsproblem is unsolvable in about 3
pages of text and 3 pages of footnotes.
[94] Turing 1939 in Davis 1965:160
• Daffa', Ali Abdullah al- (1977). The Muslim con-
tribution to mathematics. London: Croom Helm.
1.14 References ISBN 0-85664-464-1.
• Axt, P (1959). “On a Subrecursive Hierarchy • Davis, Martin (1965). The Undecidable: Basic Pa-
and Primitive Recursive Degrees”. Transactions of pers On Undecidable Propositions, Unsolvable Prob-
the American Mathematical Society. 92: 85–105. lems and Computable Functions. New York: Raven
doi:10.2307/1993169. Press. ISBN 0-486-43228-9. Davis gives commen-
tary before each article. Papers of Gödel, Alonzo
• Bell, C. Gordon and Newell, Allen (1971), Com- Church, Turing, Rosser, Kleene, and Emil Post are
puter Structures: Readings and Examples, McGraw– included; those cited in the article are listed here by
Hill Book Company, New York. ISBN 0-07- author’s name.
004357-4.
• Davis, Martin (2000). Engines of Logic: Mathemati-
• Bellah, Robert Neelly (1985). Habits of the Heart: cians and the Origin of the Computer. New York:
Individualism and Commitment in American Life. W. W. Nortion. ISBN 0-393-32229-7. Davis of-
Berkeley: University of California Press. ISBN fers concise biographies of Leibniz, Boole, Frege,
978-0-520-25419-0. Cantor, Hilbert, Gödel and Turing with von Neu-
• Blass, Andreas; Gurevich, Yuri (2003). mann as the show-stealing villain. Very brief bios
“Algorithms: A Quest for Absolute Defini- of Joseph-Marie Jacquard, Babbage, Ada Lovelace,
tions” (PDF). Bulletin of European Association for Claude Shannon, Howard Aiken, etc.
Theoretical Computer Science. 81. Includes an
• This article incorporates public domain ma-
excellent bibliography of 56 references.
terial from the NIST document: Black, Paul E.
• Boolos, George; Jeffrey, Richard (1999) [1974]. “algorithm”. Dictionary of Algorithms and Data
Computability and Logic (4th ed.). Cambridge Uni- Structures.
versity Press, London. ISBN 0-521-20402-X.: cf.
Chapter 3 Turing machines where they discuss “cer- • Dean, Tim (2012). “Evolution and moral diver-
tain enumerable sets not effectively (mechanically) sity”. Baltic International Yearbook of Cognition,
enumerable”. Logic and Communication. 7.
• Burgin, Mark (2004). Super-Recursive Algorithms. • Dennett, Daniel (1995). Darwin’s Dangerous Idea.
Springer. ISBN 978-0-387-95569-8. New York: Touchstone/Simon & Schuster. ISBN
0-684-80290-2.
• Campagnolo, M.L., Moore, C., and Costa, J.F.
(2000) An analog characterization of the subrecur- • Yuri Gurevich, Sequential Abstract State Machines
sive functions. In Proc. of the 4th Conference on Capture Sequential Algorithms, ACM Transactions
Real Numbers and Computers, Odense University, on Computational Logic, Vol 1, no 1 (July 2000),
pp. 91–109 pages 77–111. Includes bibliography of 33 sources.
1.14. REFERENCES 19
• Hertzke, Allen D.; McRorie, Chris (1998). “The [QA248.M2943 Dartmouth College library. U.S.
Concept of Moral Ecology”. In Lawler, Peter Au- Dept. of Commerce, Office of Technical Services,
gustine; McConkey, Dale. Community and Political number OTS 60-51085.]
Thought Today. Westport, CT: Praeger.
• Minsky, Marvin (1967). Computation: Finite and
• Kleene, Stephen C. (1936). “General Re- Infinite Machines (First ed.). Prentice-Hall, Engle-
cursive Functions of Natural Numbers”. wood Cliffs, NJ. ISBN 0-13-165449-7. Minsky
Mathematische Annalen. 112 (5): 727–742. expands his "...idea of an algorithm—an effective
doi:10.1007/BF01565439. Presented to the procedure...” in chapter 5.1 Computability, Effective
American Mathematical Society, September 1935. Procedures and Algorithms. Infinite machines.
Reprinted in The Undecidable, p. 237ff. Kleene’s
definition of “general recursion” (known now as • Post, Emil (1936). “Finite Combinatory Processes,
mu-recursion) was used by Church in his 1935 pa- Formulation I”. The Journal of Symbolic Logic.
per An Unsolvable Problem of Elementary Number 1 (3): 103–105. doi:10.2307/2269031. JSTOR
Theory that proved the “decision problem” to be 2269031. Reprinted in The Undecidable, p. 289ff.
“undecidable” (i.e., a negative result). Post defines a simple algorithmic-like process of a
man writing marks or erasing marks and going from
• Kleene, Stephen C. (1943). “Recursive Pred- box to box and eventually halting, as he follows a
icates and Quantifiers”. American Mathemat- list of simple instructions. This is cited by Kleene as
ical Society Transactions. 54 (1): 41–73. one source of his “Thesis I”, the so-called Church–
doi:10.2307/1990131. JSTOR 1990131. Reprinted Turing thesis.
in The Undecidable, p. 255ff. Kleene refined his
definition of “general recursion” and proceeded in • Rogers, Jr, Hartley (1987). Theory of Recursive
his chapter “12. Algorithmic theories” to posit Functions and Effective Computability. The MIT
“Thesis I” (p. 274); he would later repeat this thesis Press. ISBN 0-262-68052-1.
(in Kleene 1952:300) and name it “Church’s The-
• Rosser, J.B. (1939). “An Informal Exposition of
sis"(Kleene 1952:317) (i.e., the Church thesis).
Proofs of Godel’s Theorem and Church’s Theo-
• Kleene, Stephen C. (1991) [1952]. Introduc- rem”. Journal of Symbolic Logic. 4: 53–60.
tion to Metamathematics (Tenth ed.). North- doi:10.2307/2269059. Reprinted in The Undecid-
Holland Publishing Company. ISBN 0-7204-2103- able, p. 223ff. Herein is Rosser’s famous defini-
9. Excellent—accessible, readable—reference tion of “effective method": "...a method each step
source for mathematical “foundations”. of which is precisely predetermined and which is
certain to produce the answer in a finite number of
• Knuth, Donald (1997). Fundamental Algorithms, steps... a machine which will then solve any problem
Third Edition. Reading, Massachusetts: Addison– of the set with no human intervention beyond insert-
Wesley. ISBN 0-201-89683-4. ing the question and (later) reading the answer” (p.
225–226, The Undecidable)
• Knuth, Donald (1969). Volume 2/Seminumerical Al-
gorithms, The Art of Computer Programming First • Santos-Lang, Christopher (2014). “Moral Ecol-
Edition. Reading, Massachusetts: Addison–Wesley. ogy Approaches to Machine Ethics”. In van Ry-
sewyk, Simon; Pontier, Matthijs. Machine Medical
• Kosovsky, N. K. Elements of Mathematical Logic
Ethics (PDF). Switzerland: Springer. pp. 111–127.
and its Application to the theory of Subrecursive Al-
doi:10.1007/978-3-319-08108-3_8.
gorithms, LSU Publ., Leningrad, 1981
• Scott, Michael L. (2009). Programming Language
• Kowalski, Robert (1979). “Algo-
Pragmatics (3rd ed.). Morgan Kaufmann Publish-
rithm=Logic+Control”. Communications
ers/Elsevier. ISBN 978-0-12-374514-9.
of the ACM. 22 (7): 424–436.
doi:10.1145/359131.359136. • Sipser, Michael (2006). Introduction to the Theory
of Computation. PWS Publishing Company. ISBN
• A. A. Markov (1954) Theory of algorithms. [Trans-
0-534-94728-X.
lated by Jacques J. Schorr-Kon and PST staff] Im-
print Moscow, Academy of Sciences of the USSR, • Sober, Elliott; Wilson, David Sloan (1998). Unto
1954 [i.e., Jerusalem, Israel Program for Scien- Others: The Evolution and Psychology of Unselfish
tific Translations, 1961; available from the Of- Behavior. Cambridge: Harvard University Press.
fice of Technical Services, U.S. Dept. of Com-
merce, Washington] Description 444 p. 28 cm. • Stone, Harold S. (1972). Introduction to Com-
Added t.p. in Russian Translation of Works of the puter Organization and Data Structures (1972 ed.).
Mathematical Institute, Academy of Sciences of the McGraw-Hill, New York. ISBN 0-07-061726-0.
USSR, v. 42. Original title: Teoriya algerifmov. Cf. in particular the first chapter titled: Algorithms,
20 CHAPTER 1. ALGORITHM
Turing Machines, and Programs. His succinct infor- 1.15 Further reading
mal definition: "...any sequence of instructions that
can be obeyed by a robot, is called an algorithm" (p. • Jean Luc Chabert (1999). A History of Algorithms:
4). From the Pebble to the Microchip. Springer Verlag.
ISBN 978-3-540-63369-3.
• Tausworthe, Robert C (1977). Standardized Devel-
opment of Computer Software Part 1 Methods. En- • Algorithmics.: The Spirit of Computing. Addison-
glewood Cliffs NJ: Prentice–Hall, Inc. ISBN 0-13- Wesley. 2004. ISBN 978-0-321-11784-7.
842195-1.
• Knuth, Donald E. (2000). Selected Papers on Anal-
• Turing, Alan M. (1936–37). “On Computable ysis of Algorithms. Stanford, California: Center for
Numbers, With An Application to the Entschei- the Study of Language and Information.
dungsproblem”. Proceedings of the London
Mathematical Society, Series 2. 42: 230–265. • Knuth, Donald E. (2010). Selected Papers on Design
doi:10.1112/plms/s2-42.1.230.. Corrections, ibid, of Algorithms. Stanford, California: Center for the
vol. 43(1937) pp. 544–546. Reprinted in The Study of Language and Information.
Undecidable, p. 116ff. Turing’s famous paper
completed as a Master’s dissertation while at King’s • Berlinski, David (2001). The Advent of the Al-
College Cambridge UK. gorithm: The 300-Year Journey from an Idea to
the Computer. Harvest Books. ISBN 978-0-15-
• Turing, Alan M. (1939). “Systems of Logic Based 601391-8.
on Ordinals”. Proceedings of the London Mathemat-
ical Society. 45: 161–228. doi:10.1112/plms/s2- • Thomas H. Cormen; Charles E. Leiserson; Ronald
45.1.161. Reprinted in The Undecidable, p. 155ff. L. Rivest; Clifford Stein (2009). Introduction To
Turing’s paper that defined “the oracle” was his PhD Algorithms, Third Edition. MIT Press. ISBN 978-
thesis while at Princeton USA. 0262033848.
Lecture notes
Analogy
For other uses, see Analogy (disambiguation). metaphors, similes, allegories, and parables, but not
metonymy. Phrases like and so on, and the like, as
if, and the very word like also rely on an analogical
Analogy (from Greek ἀναλογία, analogia,
“proportion”[1][2] ) is a cognitive process of transfer- understanding by the receiver of a message including
them. Analogy is important not only in ordinary lan-
ring information or meaning from a particular subject
(the analogue or source) to another (the target), or a guage and common sense (where proverbs and idioms
give many examples of its application) but also in
linguistic expression corresponding to such a process. In
a narrower sense, analogy is an inference or an argument science, philosophy, and the humanities. The concepts of
association, comparison, correspondence, mathematical
from one particular to another particular, as opposed to
deduction, induction, and abduction, where at least one and morphological homology, homomorphism, iconicity,
of the premises or the conclusion is general. The word isomorphism, metaphor, resemblance, and similarity are
analogy can also refer to the relation between the source closely related to analogy. In cognitive linguistics, the no-
and the target themselves, which is often, though not tion of conceptual metaphor may be equivalent to that of
necessarily, a similarity, as in the biological notion of analogy.
analogy. Analogy has been studied and discussed since classical
antiquity by philosophers, scientists, and lawyers. The
Increasing energy last few decades have shown a renewed interest in anal-
n =3 of orbits ogy, most notably in cognitive science.
n =2
2.1 Usage of the terms “source”
n =1
and “target”
With respect to the terms source and target there are two
distinct traditions of usage:
22
2.2. MODELS AND THEORIES 23
2.2.1 Identity of relation necessarily a relation, but also an idea, a pattern, a reg-
ularity, an attribute, an effect or a philosophy. These
In ancient Greek the word αναλογια (analogia) origi- authors also accepted that comparisons, metaphors and
nally meant proportionality, in the mathematical sense, “images” (allegories) could be used as arguments, and
and it was indeed sometimes translated to Latin as pro- sometimes they called them analogies. Analogies should
portio. From there analogy was understood as identity of also make those abstractions easier to understand and give
relation between any two ordered pairs, whether of math- confidence to the ones using them.
ematical nature or not. Kant’s Critique of Judgment held
The Middle Age saw an increased use and theorization of
to this notion. Kant argued that there can be exactly the
analogy. Roman lawyers had already used analogical rea-
same relation between two completely different objects.
soning and the Greek word analogia. Medieval lawyers
The same notion of analogy was used in the US-based
distinguished analogia legis and analogia iuris (see be-
SAT tests, that included “analogy questions” in the form
low). In Islamic logic, analogical reasoning was used for
“A is to B as C is to what?" For example, “Hand is to palm
the process of qiyas in Islamic sharia law and fiqh ju-
as foot is to ____?" These questions were usually given in
risprudence. In Christian theology, analogical arguments
the Aristotelian format: HAND : PALM : : FOOT : ____
were accepted in order to explain the attributes of God.
While most competent English speakers will immediately
Aquinas made a distinction between equivocal, univocal
give the right answer to the analogy question (sole), it is
and analogical terms, the last being those like healthy that
more difficult to identify and describe the exact relation
have different but related meanings. Not only a person
that holds both between pairs such as hand and palm, and
can be “healthy”, but also the food that is good for health
between foot and sole. This relation is not apparent in
(see the contemporary distinction between polysemy and
some lexical definitions of palm and sole, where the for-
homonymy). Thomas Cajetan wrote an influential trea-
mer is defined as the inner surface of the hand, and the
tise on analogy. In all of these cases, the wide Pla-
latter as the underside of the foot. Analogy and abstraction
tonic and Aristotelian notion of analogy was preserved.
are different cognitive processes, and analogy is often an
James Francis Ross in Portraying Analogy (1982), the
easier one. This analogy is not comparing all the proper-
first substantive examination of the topic since Cajetan’s
ties between a hand and a foot, but rather comparing the
De Nominum Analogia, demonstrated that analogy is a
relationship between a hand and its palm to a foot and its
systematic and universal feature of natural languages,
sole.[4] While a hand and a foot have many dissimilarities,
with identifiable and law-like characteristics which ex-
the analogy focuses on their similarity in having an inner
plain how the meanings of words in a sentence are in-
surface. A computer algorithm has achieved human-level
terdependent.
performance on multiple-choice analogy questions from
the SAT test. The algorithm measures the similarity of
relations between pairs of words (e.g., the similarity be- 2.2.3 Special case of induction
tween the pairs HAND:PALM and FOOT:SOLE) by sta-
tistical analysis of a large collection of text. It answers On the contrary, Ibn Taymiyya,[7][8][9] Francis Bacon and
SAT questions by selecting the choice with the highest later John Stuart Mill argued that analogy is simply a
relational similarity.[5] special case of induction.[6] In their view analogy is an
inductive inference from common known attributes to an-
other probable common attribute, which is known only
2.2.2 Shared abstraction about the source of the analogy, in the following form:
Premises a is C, D, E, F, G
b is C, D, E, F
Conclusion b is probably G.
Rhetoric Mathematics
• An analogy is a spoken or textual comparison be- Some types of analogies can have a precise mathematical
tween two words (or sets of words) to highlight some formulation through the concept of isomorphism. In de-
form of semantic similarity between them. Such tail, this means that given two mathematical structures of
analogies can be used to strengthen political and the same type, an analogy between them can be thought
philosophical arguments, even when the semantic of as a bijection between them which preserves some or
similarity is weak or non-existent (if crafted care- all of the relevant structure. For example, R2 and C are
fully for the audience). Analogies are sometimes isomorphic as vector spaces, but the complex numbers,
used to persuade those that cannot detect the flawed C , have more structure than R2 does: C is a field as well
or non-existent arguments. as a vector space.
26 CHAPTER 2. ANALOGY
Category theory takes the idea of mathematical analogy his Conversation Theory asserts there exists an analogy
much further with the concept of functors. Given two cat- exhibiting both similarities and differences between any
egories C and D, a functor F from C to D can be thought pair of the participants’ internal models or concepts.
of as an analogy between C and D, because F has to map
objects of C to objects of D and arrows of C to arrows
of D in such a way that the compositional structure of
the two categories is preserved. This is similar to the 2.3.3 In normative matters
structure mapping theory of analogy of Dedre Gentner, in
that it formalizes the idea of analogy as a function which Morality
satisfies certain conditions.
Analogical reasoning plays a very important part in
morality. This may be in part because morality is sup-
Artificial intelligence
posed to be impartial and fair. If it is wrong to do some-
thing in a situation A, and situation B is analogous to A in
Steven Phillips and William H. Wilson [22][23] use
all relevant features, then it is also wrong to perform that
category theory to mathematically demonstrate how the
action in situation B. Moral particularism accepts analog-
analogical reasoning in the human mind, that is free of the
ical moral reasoning, rejecting both deduction and induc-
spurious inferences that plague conventional artificial in-
tion, since only the former can do without moral princi-
telligence models, (called systematicity), could arise nat-
ples.
urally from the use of relationships between the internal
arrows that keep the internal structures of the categories
rather than the mere relationships between the objects
(called “representational states”). Thus, the mind may use Law
analogies between domains whose internal structures fit
according with a natural transformation and reject those In law, analogy is used to resolve issues on which there is
that do not. no previous authority. A distinction has to be made be-
See also case-based reasoning. tween analogous reasoning from written law and analogy
to precedent case law.
Anatomy
See also: Analogy (biology) Analogies from codes and statutes In civil law sys-
tems, where the preeminent source of law is legal codes
and statutes, a lacuna (a gap) arises when a specific issue
In anatomy, two anatomical structures are considered to is not explicitly dealt with in written law. Judges will try
be analogous when they serve similar functions but are to identify a provision whose purpose applies to the case
not evolutionarily related, such as the legs of vertebrates at hand. That process can reach a high degree of sophis-
and the legs of insects. Analogous structures are the re- tication, as judges sometimes not only look at a specific
sult of convergent evolution and should be contrasted with provision to fill lacunae (gaps), but at several provisions
homologous structures. (from which an underlying purpose can be inferred) or
at general principles of the law to identify the legislator's
value judgement from which the analogy is drawn. Be-
Engineering
sides the not very frequent filling of lacunae, analogy is
very commonly used between different provisions in or-
Often a physical prototype is built to model and represent
der to achieve substantial coherence. Analogy from pre-
some other physical object. For example, wind tunnels
vious judicial decisions is also common, although these
are used to test scale models of wings and aircraft, which
decisions are not binding authorities.
act as an analog to full-size wings and aircraft.
For example, the MONIAC (an analog computer) used
the flow of water in its pipes as an analog to the flow of
money in an economy. Analogies from precedent case law By contrast, in
common law systems, where precedent cases are the pri-
mary source of law, analogies to codes and statutes are
Cybernetics rare (since those are not seen as a coherent system, but
as incursions into the common law). Analogies are thus
Where there is dependence and hence interaction be- usually drawn from precedent cases: The judge finds that
tween a pair or more of biological or physical partici- the facts of another case are similar to the one at hand to
pants communication occurs and the stresses produced an extent that the analogous application of the rule estab-
describe internal models inside the participants. Pask in lished in the previous case is justified.
2.4. SEE ALSO 27
In gender science build critical thinking skills with analogies as one of the
main themes revolving around it. While Glynn focuses on
In the 19th century, there was increased attention to dif- using analogies to teach science, The Private Eye Project
ferences in gender. Scientists started to use an analogy can be used for any subject including writing, math, art,
between race and gender to explain gender differences. social studies, and invention. It is now used by thousands
In gender, the female represents a lower race than the of schools around the country.[28] There are also vari-
male. Researchers record the data of women’s bodies for ous pedagogic innovations now emerging that use visual
analysis. Nancy Leys Stepan believes that the analogy is analogies for cross-disciplinary teaching and research, for
so crucial in science that it shapes and influences scien- instance between science and the humanities.[29]
tific study. In her article “Race and Gender: The Role of
Analogy in Science”,[24] she states “The analogy guided
research, generated new hypotheses, and helped dissem- 2.4 See also
inate new, usually technical vocabularies. The analogy
defined what was problematic about these social groups,
• Conceptual metaphor
what aspects of them needed further investigation, and
which kinds of measurements and what data would be • Conceptual blending
significant for scientific inquiry.”
• Argument from analogy
• Metaphor
Analogies as defined in rhetoric are a comparison be-
tween words, but an analogy can be used in teaching as • Simile
well. An analogy as used in teaching would be compar-
ing a topic that students are already familiar with, with • Hypocatastasis
a new topic that is being introduced so that students can
• Allegory
get a better understanding of the topic and relate back
to previous knowledge. Shawn Glynn, a professor in the • Argumentum e contrario
department of educational psychology and instructional
technology at the University of Georgia,[25] developed a • Parable
theory on teaching with analogies and developed steps to
explain the process of teaching with this method. The • Casuistry • Case-based reasoning
steps for teaching with analogies are as follows: Step one • Abductive reasoning
is introducing the new topic that is about to be taught and
giving some general knowledge on the subject. Step two • Duck test
is reviewing the concept that the students already know to
ensure they have the proper knowledge to assess the sim- • I know it when I see it
ilarities between the two concepts. Step three is finding
• Commonsense reasoning
relevant features within the analogy of the two concepts.
Step four is finding similarities between the two concepts
so students are able to compare and contrast them in or-
der to understand. Step five is indicating where the anal- 2.5 Notes
ogy breaks down between the two concepts. And finally,
step six is drawing a conclusion about the analogy and [1] ἀναλογία, Henry George Liddell, Robert Scott, A Greek-
comparison of the new material with the already learned English Lexicon, on Perseus Digital Library
material. Typically this method is used to learn topics in
[2] analogy, Online Etymology Dictionary
science.[26]
In 1989 Kerry Ruef, a teacher, began an entire program, [3] Hofstadter in Gentner et al. 2001.
which she titled The Private Eye Project. It is a method of [4] , Michael A. Martin, The Use of Analogies and Heuristics
teaching that revolves around using analogies in the class- in Teaching Introductory Statistical Methods
room to better explain topics. She thought of the idea to
use analogies as a part of curriculum because she was ob- [5] Turney 2006
serving objects once and she said, “my mind was noting
[6] Shelley 2003
what else each object reminded me of...” This led her to
teach with the question, “what does [the subject or topic] [7] Hallaq, Wael B. (1985–1986). “The Logic of Legal Rea-
remind you of?" The idea of comparing subjects and con- soning in Religious and Non-Religious Cultures: The
cepts led to the development of The Private Eye Project Case of Islamic Law and the Common Law”. Cleveland
as a method of teaching.[27] The program is designed to State Law Review. 34: 79–96 [93–5]
28 CHAPTER 2. ANALOGY
[8] Ruth Mas (1998). “Qiyas: A Study in Islamic Logic” [28] The Private Eye Project. The Private Eye Project. 2013.
(PDF). Folia Orientalia. 34: 113–128. ISSN 0015-5675.
[29] Mario Petrucci. “Crosstalk, Mutation, Chaos: bridge-
[9] John F. Sowa; Arun K. Majumdar (2003). “Analogical building between the sciences and literary studies using
reasoning”. Conceptual Structures for Knowledge Creation Visual Analogy”.
and Communication, Proceedings of ICCS 2003. Berlin:
Springer-Verlag., pp. 16–36
[27] Johnson, Katie. Educational Leadership: Exploring the • Holyoak, K.J., and Thagard, P. (1995). Mental
World with the Private Eye. September 1995. 16 October Leaps: Analogy in Creative Thought. Cambridge,
2013 . MA, MIT Press, ISBN 0-262-58144-2.
2.7. EXTERNAL LINKS 29
• Holyoak, K.J., and Thagard, P. (1997). The Ana- • Ross, J.F., (1958), A Critical Analysis of the Theory
logical Mind. of Analogy of St Thomas Aquinas, (Ann Arbor, MI:
University Microfilms Inc).
• Hummel, J.E., and Holyoak, K.J. (2005). Relational
Reasoning in a Neurally Plausible Cognitive Archi- • Shelley, C. (2003). Multiple analogies in Science
tecture and Philosophy. Amsterdam/Philadelphia: John
Benjamins Publishing Company.
• Itkonen, E. (2005). Analogy as Structure and Pro-
cess. Amsterdam/Philadelphia: John Benjamins • Turney, P.D.; Littman, M.L. (2005). “Corpus-
Publishing Company. based learning of analogies and semantic rela-
tions”. Machine Learning. 60 (1–3): 251–278.
• Juthe, A. (2005). “Argument by Analogy”, in Ar- doi:10.1007/s10994-005-0913-1.
gumentation (2005) 19: 1–27.
• Turney, P.D. (2006). “Similarity of semantic rela-
• Keane, M.T. Ledgeway; Duff, S (1994). “Con- tions”. Computational Linguistics. 32 (3): 379–416.
straints on analogical mapping: a comparison of doi:10.1162/coli.2006.32.3.379.
three models”. Cognitive Science. 18: 287–334.
doi:10.1016/0364-0213(94)90015-9.
• Keane, M.T. (1997). “What makes an analogy dif- 2.7 External links
ficult? The effects of order and causal structure in
analogical mapping”. Journal of Experimental Psy- • Stanford Encyclopedia of Philosophy “Analogy and
chology: Learning, Memory and Cognition. 123: Analogical Reasoning”, by Paul Bartha.
946–967.
• Stanford Encyclopedia of Philosophy “Medieval
• Kokinov, B. (1994). “A hybrid model of reasoning Theories of Analogy”, by E. Jennifer Ashworth.
by analogy.”
• Stanford Encyclopedia of Philosophy “Precedent and
• Kokinov, B. and Petrov, A. (2001). “Integration of Analogy in Legal Reasoning”, by Grant Lamond.
Memory and Reasoning in Analogy-Making.”
• Dictionary of the History of Ideas Analogy in Early
• Lamond, G. (2006). Precedent and Analogy in Le- Greek Thought.
gal Reasoning, in Stanford Encyclopedia of Philos-
• Dictionary of the History of Ideas Analogy in Patris-
ophy.
tic and Medieval Thought.
• Langacker, Ronald W. (1987). Foundations of Cog-
• Dedre Gentner’s publications page, most of them on
nitive grammar. Vol. I, Theoretical prerequisites.
analogy and available for download.
Stanford: Stanford University Press.
• Shawn Glynn’s publications page, all on teaching
• Little, J (2000). “Analogy in Science: Where Do with analogies and some available for download.
We Go From Here?". Rhetoric Society Quarterly.
30: 69–92. doi:10.1080/02773940009391170. • Keith Holyoak’s publications page, many on analogy
and available for download.
• Little, J (2008). “The Role of Analogy in
George Gamow’s Derivation of Drop Energy”. • Boicho Kokinov’s publications page, most of them
Technical Communication Quarterly. 17: 1–19. on analogy and available for download.
doi:10.1080/10572250701878876.
• The Private Eye Project’s publications page, all on
• Morrison, C., and Dietrich, E. (1995). Structure- teaching with analogies (and thinking by analogy)
Mapping vs. High-level Perception. and some available for download.
• Ross, J.F., (1982), Portraying Analogy. Cambridge: • jMapper – Java Library for Analogy/Metaphor Gen-
Cambridge University Press. eration
• Ross, J.F. (October 1970). “Analogy and The • Analogy games – Analogy used as the basis for a
Resolution of Some Cognitivity Problems”. The cultural game
Journal of Philosophy. 67 (20): 725–746.
doi:10.2307/2024008. JSTOR 2024008.
AppleTalk
AppleTalk was a proprietary suite of networking proto- were jockeying for position in the market, but even at this
cols developed by Apple Inc. for their Macintosh com- time Ethernet’s widespread acceptance suggested it was
puters. AppleTalk includes a number of features that al- to become a de facto standard.[3] It was at this show that
low local area networks to be connected with no prior Steve Jobs asked Gursharan Sidhu a seemingly innocuous
setup or the need for a centralized router or server of any question, “Why has networking not caught on?"[4]
sort. Connected AppleTalk-equipped systems automati-
Four months later, in October, AppleNet was cancelled.
cally assign addresses, update the distributed namespace, At the time, they announced that “Apple realized that
and configure any required inter-networking routing. It is
it’s not in the business to create a networking system.
a plug-n-play system. We built and used AppleNet in-house, but we realized
AppleTalk was released in 1985, and was the primary that if we had shipped it, we would have seen new stan-
protocol used by Apple devices through the 1980s and dards coming up.”[5] In January, Jobs announced that they
1990s. Versions were also released for the IBM PC and would instead be supporting IBM's Token Ring, which he
compatibles and the Apple IIGS. AppleTalk support was expected to come out in a “few months”.[5]
also available in most networked printers (especially laser
printers), some file servers, and a number of routers.
3.1.2 AppleBus
The rise of TCP/IP during the 1990s led to a reimplemen-
tation of most of these types of support on that protocol, Through this period, Apple was deep in development of
and AppleTalk became unsupported as of the release of the Macintosh computer. During development, engineers
Mac OS X v10.6 in 2009. Many of AppleTalk’s more had made the decision to use the Zilog 8530 serial con-
advanced autoconfiguration features have since been in- troller chip (SCC) instead of the lower cost and more
troduced in Bonjour, while Universal Plug and Play serves common UART to provide serial port connections.[6]
similar needs. The SCC cost about $5 more than a UART, but offered
much higher speeds up to 250 kilobits per second (or
higher with additional hardware) and internally supported
3.1 History a number of basic networking-like protocols like IBM’s
Bisync.[7]
3.1.1 AppleNet The SCC was chosen because it would allow multiple de-
vices to be attached to the port. Peripherals equipped
After the release of the Apple Lisa computer in January with similar SCCs could communicate using the built-in
1983, Apple invested considerable effort in the develop- protocols, interleaving their data with other peripherals
ment of a local area networking (LAN) system for the on the same bus. This would eliminate the need for more
machines. Known as AppleNet, it was based on the sem- ports on the back of the machine, and allowed for the
inal Xerox XNS protocol stack[1] but running on a cus- elimination of expansion slots for supporting more com-
tom 1 Mbit/s coaxial cable system rather than Xerox’s plex devices. The initial concept was known as Apple-
2.94 Mbit/s Ethernet. AppleNet was announced early in Bus, envisioning a system controlled by the host Macin-
1983 with a fall introduction at the target price of $500 tosh polling “dumb” devices in a fashion similar to the
for plug-in AppleNet cards for the Lisa and the Apple modern Universal Serial Bus.[8]
II.[2]
At that time, early LAN systems were just coming to 3.1.3 AppleBus networking
market, including Ethernet, Token Ring and ARCNET.
This was a topic of major commercial effort at the time, The Macintosh team had already begun work on what
dominating shows like the National Computer Confer- would become the LaserWriter, and had considered a
ence (NCC) in Anaheim in May 1983. All of the systems number of other options of how to share these expensive
30
3.1. HISTORY 31
machines and other resources. A series of memos from dressing system allowed for expansion to 255 nodes in a
Bob Belleville clarified these concepts, outlining the Mac, LAN (although only 32 could be used at that time), and
LaserWriter and a file server system which would become by using “bridges” (which came to be known as “routers”,
Macintosh Office.[4] By late 1983 it was clear that IBM’s although technically not the same) one could interconnect
Token Ring would not be ready in time for the launch of LANs into larger collections. “Zones” allowed devices to
the Mac, and might miss the launch of these other prod- be addressed within a bridge-connected internet. Addi-
ucts as well. In the end, Token Ring would not ship until tionally, AppleTalk was designed from the start to allow
October 1985.[9] use with any potential underlying physical link.[14]
Jobs’ earlier question to Sidhu had already sparked a num- The main advantage of AppleTalk was that it was com-
ber of ideas. When AppleNet was cancelled in Octo- pletely maintenance-free. To join a device to a net-
ber, Sidhu led an effort to develop a new networking sys- work, you simply plugged the adaptor into the machine,
tem based on the AppleBus hardware. This new system then connected a cable from it to any free port on any
would not have to conform to any existing preconcep- other adaptor. AppleTalk’s internal protocols negotiated
tions, and was designed to be worthy of the Mac - a sys- a working network address number, automatically gave
tem that was user-installable, had zero-configuration, and the computer a human-readable name, and collected up
no fixed network addresses - in short, a true plug-and- a list of the names and types of other machines on the
play network.[10] Considerable effort was needed, but by network so the user could browse the devices through
the time the Mac was released, the basic concepts had the GUI-based Chooser. AppleTalk was so easy to use
been outlined, and some of the low-level protocols were that ad-hoc networks tended to appear whenever multiple
on their way to completion. Sidhu mentioned the work to Macs were in the same room.[15] Apple would later use
Belleville only two hours after the Mac was announced.[4] this in an advertisement showing a network being created
The “new” AppleBus was announced in early 1984,[N 1] between two seats in an airplane.[16]
allowing direct connection from the Mac or Lisa through
a small box that plugged into the serial port and con-
nected via cables to the next computer upstream and
downstream. Adaptors for Apple II and Apple III were
also announced.[11] Apple also announced that AppleBus
networks could be attached to, and would appear to be 3.1.5 PhoneNet and other adaptors
a single node within, a Token Ring system.[5] Details of
how this would work were sketchy.[5] A thriving 3rd party market for AppleTalk devices devel-
oped over the next few years. One particularly notable
example was an alternate adaptor designed by BMUG
3.1.4 AppleTalk and commercialized by Farallon as PhoneNet in 1987.[17]
This was essentially a replacement for Apple’s connec-
Just prior to its release in early 1985, AppleBus was re- tor that had conventional phone jacks instead of Apple’s
named AppleTalk. The system had a number of limita- round connectors. PhoneNet allowed AppleTalk net-
tions, including a speed of only 230.4 kbit/s, a maximum
works to be connected together using normal telephone
distance of 1000 feet from end to end, and only 32 nodes wires, and with very little extra work, could run analog
per LAN.[12] But as the basic hardware was built into the
phones and AppleTalk on a single four-conductor phone
Mac, adding nodes only cost about $50 for the adaptor cable.
box. In comparison, Ethernet or Token Ring cards cost
hundreds or thousands of dollars. Additionally, the en- Other companies took advantage of the SCC’s ability to
tire networking stack required only about 6 kB of RAM, read external clocks in order to support higher transmis-
allowing it to run on any Mac.[13] sion speeds, up to 1 Mbit/s. In these systems the external
adaptor also included its own clock, and used that to sig-
The relatively slow speed of AppleTalk allowed further nal the SCC’s clock input pins. The best known such sys-
reductions in cost. Instead of using RS-422's balanced tem was Centram’s FlashTalk, which ran at 768 kbit/s,
transmit and receive circuits, the AppleTalk Personal and was intended to be used with their TOPS network-
Network cabling used a single common electrical ground, ing system.[18] A similar solution was the 850 kbit/s Day-
which limited speeds to about 500 kbit/s, but allowed naTalk, which used a separate box that plugged in be-
one conductor to be removed. This meant that com- tween the computer and a normal LocalTalk/PhoneNet
mon three-conductor cables could be used for wiring. box. Dayna also offered a PC expansion card that
Additionally, the adaptors were designed to be “self- ran up to 1.7 Mbit/s when talking to other Dayna PC
terminating”, meaning that nodes at the end of the net- cards.[19][20] Several other systems also existed with even
work could simply leave their last connector unconnected. higher performance, but these often required special ca-
There was no need for the wires to be connected back to- bling that was incompatible with LocalTalk/PhoneNet,
gether into a loop, nor the need for hubs or other devices. and also required patches to the networking stack that of-
The system was designed for future expansion; the ad- ten caused problems.
32 CHAPTER 3. APPLETALK
3.1.6 EtherTalk, TokenTalk and Apple- device in the “2nd Floor” zone to indicate its physical lo-
Share cation. Phase II also included changes to the underlying
inter-networking protocols to make them less “chatty”,
By 1987 Ethernet was clearly winning the standards bat- which had previously been a serious problem on networks
[25]
tle over Token Ring, and in the middle of that year that bridged over wide-area networks.
Apple introduced EtherTalk 1.0 for the newly released By this point Apple had a wide variety of commu-
Macintosh II computer. The package included both a nications products under development, and many of
NuBus card with Ethernet ports and a new Network these were announced along with AppleTalk Phase II.
control panel that allowed the user to select which physi- These included updates to EtherTalk and TokenTalk, Ap-
cal connection to use for networking (from “Built-in” or pleTalk software and LocalTalk hardware for the IBM
“EtherTalk”). The release’s new networking stack also PC, EtherTalk for Apple’s A/UX operating system allow-
expanded the system to allow a full 255 nodes per LAN. ing it to use LaserPrinters and other network resources,
With its release, AppleTalk Personal Network was re- and the Mac X.25 and MacX products.
named LocalTalk.[21] Token Ring would eventually be
supported with the similar TokenTalk product, which Ethernet had become almost universal by 1990, and it was
used the same Network control panel and underlying soft- time to build Ethernet into Macs direct from the factory.
ware. Many third party companies would introduce com- However, the physical wiring used by these networks was
patible Ethernet and Token Ring cards that used these not yet completely standardized. Apple solved this prob-
same drivers. lem using a single port on the back of the computer into
which the user could plug an adaptor for any given ca-
The appearance of EtherTalk also led to a problem: Net- bling system. This FriendlyNet system was based on
works with new and old Macs needed some way to com- the industry-standard Attachment Unit Interface or AUI,
municate between each other. This could be as sim- but deliberately chose a non-standard connector that was
ple as a network of Ethernet Mac IIs trying to talk to a smaller and easier to use, which they called “Apple AUI”,
LaserWriter. Apple had considered the problem, and Ap- or AAUI. FriendlyNet was first introduced on the Quadra
pleTalk included the possibility for a low-cost LocalTalk- 700 and Quadra 900 computers, and used across much of
to-Ethernet bridge, but they felt it would be a low-volume the Mac line for some time.[26] As with LocalTalk, a num-
product and left it to third parties.[22] A number of com- ber of 3rd party FriendlyNet adaptors quickly appeared.
panies responded, both existing communications vendors
like Hayes and Cisco Systems, as well as newly formed As 10BASE-T became the de facto cabling system for
companies like Kinetics. Contrary to Apple’s belief these Ethernet, second-generation Power Macintosh machines
would be low-volume, by the end of 1987, 130,000 such added a 10BASE-T port in addition to the AAUI, and
systems were in use. AppleTalk was at that time the most eventually dropped AAUI on Macs with the New World
used networking system in the world, with over three ROM, and 10BASE-T was then universal.
times the installations of any other vendor.[23]
1987 also marked the introduction of the AppleShare 3.1.8 The capital-I Internet
product, a dedicated file server that ran on any Mac with
512 kB of RAM or more. A common AppleShare ma- In 1988 Apple had released MacTCP, a system that al-
chine was the Mac Plus with an external SCSI hard drive. lowed the Mac to support TCP/IP on machines with
AppleShare was the #3 network operating system in the suitable Ethernet hardware. However, this left many
late 1980s, behind Novell NetWare and Microsoft’s MS- universities with the problem of supporting IP on their
Net.[24] AppleShare was effectively the replacement for many LocalTalk-equipped Macs. Stanford University pi-
the failed Macintosh Office efforts, which had been based oneered development of MacIP, which allowed IP pack-
on a dedicated file server device. ets to be routed over LocalTalk networks with the support
of a suitable “gateway” machine. These were initially cus-
tom devices, but it was soon common to include MacIP
3.1.7 AppleTalk Phase II and other devel- support in LocalTalk-to-Ethernet bridges.[26] MacTCP
opments would not become a standard part of the Mac OS un-
til 1994,[27] by which time it also supported SNMP and
A significant re-design was released in 1989 as Ap- PPP.
pleTalk Phase II. In many ways, Phase II can be con- For some time in the early 1990s, the Mac was a pri-
sidered an effort to make the earlier version (never called mary client on the rapidly expanding Internet. Among
Phase I) more generic. LANs could now support more the better known programs in wide use were Fetch, Eu-
than 255 nodes, and zones were no longer associated with dora, eXodus, NewsWatcher and the NCSA packages, es-
physical networks, but were entirely virtual constructs pecially NCSA Mosaic and its offspring, Netscape Navi-
used simply to organize nodes. For instance, one could gator.[28] Additionally, a number of server products ap-
now make a “Printers” zone that would list all the printers peared that allowed the Mac to host Internet content.
in an organization, or one might want to place that same Through this period, Macs had about 2 to 3 times as many
3.3. ADDRESSING 33
clients connected to the Internet as any other platform,[29] concept was to allow routers to provide the information
despite the relatively small overall marketshare. or “hardwire” the system to known addresses and names.
As the world quickly moved to IP for both LAN and On larger networks where AARP could cause problems
WAN uses, Apple was faced with maintaining two in- as new nodes searched for free addresses, the addition of
creasingly outdated code bases on an ever-wider group a router could reduce “chattiness.” Together AARP and
of machines as well as the introduction of the PowerPC NBP made AppleTalk an easy-to-use networking system.
based machines. This led to the Open Transport efforts, New machines were added to the network by plugging
which re-implemented both MacTCP and AppleTalk on them and optionally giving them a name. The NBP lists
were examined and displayed by a program known as the
an entirely new code base adapted from the Unix standard
STREAMS. Early versions had problems and did not be- Chooser which would display a list of machines on the lo-
cal network, divided into classes such as file-servers and
come stable for some time.[30] By that point, Apple was
deep in their ultimately doomed Copland efforts. printers.
refer to the service, but there is no way of guaranteeing Macintosh HFS filesystem. AFP is still in use in Mac
that users will follow such a convention. Some newer pro- OS X, even though most other AppleTalk protocols have
tocols, such as Kerberos and Active Directory use DNS been deprecated.
SRV records to identify services by name, which is much
closer to the AppleTalk model.
3.4.4 AppleTalk Session Protocol
3.4 Protocols ASP was an intermediate protocol, built on top of ATP,
which in turn was the foundation of AFP. It provided
3.4.1 AppleTalk Address Resolution Pro- basic services for requesting responses to arbitrary com-
tocol mands d performing out-of-band status queries. It also
allowed the server to send asynchronous attention mes-
AARP resolves AppleTalk addresses to link layer, usually sages to the client.
MAC, addresses. It is functionally equivalent to ARP.
AARP is a fairly simple system. When powered on, an
AppleTalk machine broadcasts an AARP probe packet 3.4.5 Datagram Delivery Protocol
asking for a network address, intending to hear back from
controllers such as routers. If no address is provided, one DDP was the lowest-level data-link-independent trans-
is picked at random from the “base subnet”, 0. It then port protocol. It provided a datagram service with no
broadcasts another packet saying “I am selecting this ad- guarantees of delivery. All application-level protocols,
dress”, and then waits to see if anyone else on the net- including the infrastructure protocols NBP, RTMP and
work complains. If another machine has that address, it ZIP, were built on top of DDP. AppleTalk’s DDP corre-
will pick another address, and keep trying until it finds sponds closely to the Network layer of the Open Systems
a free one. On a network with many machines it may Interconnection (OSI) communication model.
take several tries before a free address is found, so for
performance purposes the successful address is “written
down” in NVRAM and used as the default address in the
future. This means that in most real-world setups where
3.4.6 Name Binding Protocol
machines are added a few at a time, only one or two tries
are needed before the address effectively become con- Name Binding Protocol was a dynamic, distributed sys-
stant. tem for managing AppleTalk names. When a service
started up on a machine, it registered a name for itself
as chosen by a human administrator. At this point, NBP
3.4.2 AppleTalk Data Stream Protocol provided a system for checking that no other machine had
already registered the same name. Later, when a client
This was a comparatively late addition to the AppleTalk wanted to access that service, it used NBP to query ma-
protocol suite, done when it became clear that a TCP- chines to find that service. NBP provided browseability
style reliable connection-oriented transport was needed. (“what are the names of all the services available?") as
Significant differences from TCP were: well as the ability to find a service with a particular name.
Names were human readable, containing spaces, upper
• a connection attempt could be rejected and lower case letters, and including support for search-
ing.
• there were no “half-open” connections; once one
end initiated a tear-down of the connection, the
whole connection would be closed (i.e., ADSP is
full-duplex, not dual simplex). 3.4.7 AppleTalk Echo Protocol
In addition, Columbia University released the Columbia [16] “Apple Computer Ad - Powerbook Networking”
AppleTalk Package (CAP) which implemented the pro-
[17] Oppenheimer 2004, Slide 28.
tocol suite for various Unix flavors including Ultrix,
SunOS, *BSD and IRIX. This package is no longer ac- [18] Tim Brown, “AppleTalk Made Faster”, Network World,
tively maintained. 26 October 1987, p. 27
3.12. EXTERNAL LINKS 37
3.11.2 Bibliography
• Sidhu, Gursharan; Andrews, Richard; Oppenheiner,
Alan (1989). Inside AppleTalk, Second Edition
(PDF). Addison-Wesley. ISBN 0-201-55021-0.
ARPANET
For the producer, see Gerald Donald. For the seventh ing, as in the traditional telephone circuit, wherein each
episode of the second season of the television series The telephone call is allocated a dedicated, end to end, elec-
Americans, see Arpanet (The Americans). tronic connection between the two communicating sta-
See also: History of the Internet tions. Such stations might be telephones or computers.
The (temporarily) dedicated line is typically composed
The Advanced Research Projects Agency Network of many intermediary lines which are assembled into a
chain that stretches all the way from the originating station
(ARPANET) was an early packet switching network
and the first network to implement the protocol suite to the destination station. With packet switching, a data
system could use a single communication link to com-
TCP/IP. Both technologies became the technical foun-
dation of the Internet. ARPANET was initially funded municate with more than one machine by collecting data
by the Advanced Research Projects Agency (ARPA) of into datagrams and transmitting these as packets onto the
the United States Department of Defense.[1][2][3][4][5] attached network link, as soon as the link becomes idle.
Thus, not only can the link be shared, much as a single
The packet switching methodology employed in the post box can be used to post letters to different desti-
ARPANET was based on concepts and designs by Amer- nations, but each packet can be routed independently of
icans Leonard Kleinrock and Paul Baran, British scien- other packets.[7]
tist Donald Davies, and Lawrence Roberts of the Lincoln
Laboratory.[6] The TCP/IP communications protocols The earliest ideas for a computer network intended to al-
were developed for ARPANET by computer scientists low general communications among computer users were
Robert Kahn and Vint Cerf, and incorporated concepts formulated by computer scientist J. C. R. Licklider of
by Louis Pouzin for the French CYCLADES project. Bolt, Beranek and Newman (BBN), in April 1963, in
memoranda discussing the concept of the "Intergalactic
As the project progressed, protocols for internetworking Computer Network". Those ideas encompassed many
were developed by which multiple separate networks of the features of the contemporary Internet. In Octo-
could be joined into a network of networks. Access to ber 1963, Licklider was appointed head of the Behavioral
the ARPANET was expanded in 1981 when the National Sciences and Command and Control programs at the De-
Science Foundation (NSF) funded the Computer Sci- fense Department’s Advanced Research Projects Agency
ence Network (CSNET). In 1982, the Internet protocol (ARPA). He convinced Ivan Sutherland and Bob Taylor
suite (TCP/IP) was introduced as the standard network- that this network concept was very important and mer-
ing protocol on the ARPANET. In the early 1980s the ited development, although Licklider left ARPA before
NSF funded the establishment for national supercomput- any contracts were assigned for development.[8]
ing centers at several universities, and provided intercon-
nectivity in 1986 with the NSFNET project, which also Sutherland and Taylor continued their interest in cre-
created network access to the supercomputer sites in the ating the network, in part, to allow ARPA-sponsored
United States from research and education organizations. researchers at various corporate and academic locales
ARPANET was decommissioned in 1990. to utilize computers provided by ARPA, and, in part,
to quickly distribute new software and other computer
science results.[9] Taylor had three computer terminals
in his office, each connected to separate computers,
4.1 History which ARPA was funding: one for the System Develop-
ment Corporation (SDC) Q-32 in Santa Monica, one for
Project Genie at the University of California, Berkeley,
Packet switching—today the dominant basis for data and another for Multics at the Massachusetts Institute of
communications worldwide—was a new concept at the Technology. Taylor recalls the circumstance: “For each
time of the conception of the ARPANET. Prior to the of these three terminals, I had three different sets of user
advent of packet switching, both voice and data commu- commands. So, if I was talking online with someone at
nications had been based on the idea of circuit switch-
38
4.1. HISTORY 39
S.D.C., and I wanted to talk to someone I knew at Berke- magnetic-core memory, and a 16-channel Direct Multi-
ley, or M.I.T., about this, I had to get up from the S.D.C. plex Control (DMC) direct memory access unit.[23] The
terminal, go over and log into the other terminal and get DMC established custom interfaces with each of the host
in touch with them. I said, “Oh Man!", it’s obvious what computers and modems. In addition to the front-panel
to do: If you have these three terminals, there ought to lamps, the DDP-516 computer also features a special set
be one terminal that goes anywhere you want to go. That of 24 indicator lamps showing the status of the IMP com-
idea is the ARPANET”.[10] munication channels. Each IMP could support up to four
Meanwhile, since the early 1960s, Paul Baran at the local hosts, and could communicate with up to six remote
IMPs via leased lines. The network connected one com-
RAND Corporation had been researching systems that
could survive nuclear war and developed the idea of puter in Utah with three in California. Later, the De-
partment of Defense allowed the universities to join the
distributed adaptive message block switching.[11] Donald
Davies at the United Kingdom’s National Physical Labo- network for sharing hardware and software resources.
ratory (NPL) independently invented the same concept in
1965.[12][13] His work, presented by a colleague, initially
4.1.2 Debate on design goals
caught the attention of ARPANET developers at a con-
ference in Gatlinburg, Tennessee, in October 1967.[14]
In A Brief History of the Internet, the Internet Society de-
He gave the first public demonstration, having coined the
nies that ARPANET was designed to survive a nuclear
term packet switching, on 5 August 1968 and incorporated
attack:
it into the NPL network in England.[15] Larry Roberts
at ARPA applied Davies’ concepts of packet switching
for the ARPANET.[16] The NPL network followed by It was from the RAND study that the false ru-
ARPANET were the first two networks in the world to use mor started, claiming that the ARPANET was
packet switching,[17][18] and were themselves connected somehow related to building a network resis-
together in 1973.[19][20] The NPL network was using line tant to nuclear war. This was never true of the
speeds of 768 kbit/s, and the proposed line speed for ARPANET; only the unrelated RAND study
ARPANET was upgraded from 2.4 kbit/s to 50 kbit/s.[21] on secure voice considered nuclear war. How-
ever, the later work on Internetting did empha-
size robustness and survivability, including the
4.1.1 Creation capability to withstand losses of large portions
of the underlying networks.[24]
By mid-1968, Taylor had prepared a complete plan for
a computer network, and, after ARPA’s approval, a The RAND study was conducted by Paul Baran and pio-
Request for Quotation (RFQ) was issued for 140 poten- neered packet switching.[11] In an interview he confirmed
tial bidders. Most computer science companies regarded that while ARPANET did not exactly share his project’s
the ARPA–Taylor proposal as outlandish, and only twelve goal, his work had greatly contributed to the develop-
submitted bids to build a network; of the twelve, ARPA ment of ARPANET.[25] Minutes taken by Elmer Shapiro
regarded only four as top-rank contractors. At year’s end, of Stanford Research Institute at the ARPANET design
ARPA considered only two contractors, and awarded the meeting of 9–10 Oct. 1967 indicate that a version of
contract to build the network to BBN Technologies on 7 Baran’s routing method and suggestion of using a fixed
April 1969. The initial, seven-person BBN team were packet size was expected to be employed.[26]
much aided by the technical specificity of their response
to the ARPA RFQ, and thus quickly produced the first According to Stephen J. Lukasik, who as Deputy Direc-
working system. This team was led by Frank Heart. The tor and Director of DARPA (1967–1974) was “the per-
BBN-proposed network closely followed Taylor’s ARPA son who signed most of the checks for Arpanet’s devel-
plan: a network composed of small computers called opment":
Interface Message Processors (or IMPs), similar to the
later concept of routers, that functioned as gateways in- The goal was to exploit new computer tech-
terconnecting local resources. At each site, the IMPs nologies to meet the needs of military com-
performed store-and-forward packet switching functions, mand and control against nuclear threats,
and were interconnected with leased lines via telecom- achieve survivable control of US nuclear
munication data sets (modems), with initial data rates forces, and improve military tactical and man-
of 56kbit/s. The host computers were connected to the agement decision making.[27]
IMPs via custom serial communication interfaces. The
system, including the hardware and the packet switching
The ARPANET incorporated distributed computation
software, was designed and installed in nine months.[22]
(and frequent re-computation) of routing tables. This
The first-generation IMPs were built by BBN Technolo- was a major contribution to the survivability of the
gies using a rugged computer version of the Honeywell ARPANET in the face of significant destruction - even
DDP-516 computer configured with 24KB of expandable by a nuclear attack. Such auto-routing was technically
40 CHAPTER 4. ARPANET
quite challenging to construct at the time. The fact that it NLS system, a very important early hypertext sys-
was incorporated into the early ARPANET made many tem, and would run the Network Information Cen-
believe that this had been a design goal. ter (NIC), with the SDS 940 that ran NLS, named
The ARPANET was designed to survive subordinate- “Genie”, being the first host attached;
network losses, since the principal reason was that the • University of California, Santa Barbara (UCSB),
switching nodes and network links were unreliable, even with the Culler-Fried Interactive Mathematics Cen-
without any nuclear attacks. Resource scarcity supported ter’s IBM 360/75, running OS/MVT being the ma-
the creation of the ARPANET, according to Charles chine attached;
Herzfeld, ARPA Director (1965–1967):
• The University of Utah's Computer Science Depart-
ment, where Ivan Sutherland had moved, running a
The ARPANET was not started to create a
DEC PDP-10 operating on TENEX.
Command and Control System that would sur-
vive a nuclear attack, as many now claim. To
build such a system was, clearly, a major mili-The first successful message on the ARPANET was sent
tary need, but it was not ARPA’s mission to do by UCLA student programmer Charley Kline, at 10:30
pm on 29 October 1969, from Boelter Hall 3420.[32]
this; in fact, we would have been severely crit-
icized had we tried. Rather, the ARPANET Kline transmitted from the university’s SDS Sigma 7 Host
computer to the Stanford Research Institute’s SDS 940
came out of our frustration that there were only
a limited number of large, powerful research Host computer. The message text was the word login; on
computers in the country, and that many re- an earlier attempt the l and the o letters were transmitted,
search investigators, who should have access but the system then crashed. Hence, the literal first mes-
to them, were geographically separated from sage over the ARPANET was lo. About an hour later,
them.[28] after the programmers repaired the code that caused the
crash, the SDS Sigma 7 computer effected a full login.
The first permanent ARPANET link was established on
The ARPANET was operated by the military during the 21 November 1969, between the IMP at UCLA and the
two decades of its existence, until 1990.[29][30] IMP at the Stanford Research Institute. By 5 December
1969, the entire four-node network was established.[33]
and military networks reduced the 113-node ARPANET ... it is somewhat fitting to end on the note that
by 68 nodes. The MILNET later became the NIPRNet. the ARPANET program has had a strong and
direct feedback into the support and strength
of computer science, from which the network,
4.1.5 Rules and etiquette itself, sprang.[44]
Because of its government funding, certain forms of traf- In the wake of ARPANET being formally decom-
fic were discouraged or prohibited. A 1982 handbook missioned on 28 February 1990, Vinton Cerf wrote
on computing at MIT’s AI Lab stated regarding network the following lamentation, entitled “Requiem of the
etiquette:[38] ARPANET":[45]
It is considered illegal to use the ARPANet It was the first, and being first, was best,
for anything which is not in direct support of
Government business ... personal messages but now we lay it down to ever rest.
to other ARPANet subscribers (for example,
to arrange a get-together or check and say Now pause with me a moment, shed some
a friendly hello) are generally not considered tears.
harmful ... Sending electronic mail over the For auld lang syne, for love, for years and years
ARPANet for commercial profit or political
purposes is both anti-social and illegal. By of faithful service, duty done, I weep.
sending such messages, you can offend many Lay down thy packet, now, O friend, and sleep.
people, and it is possible to get MIT in serious -Vinton Cerf
trouble with the Government agencies which
manage the ARPANet. Senator Albert Gore, Jr. began to craft the High Per-
formance Computing and Communication Act of 1991
(commonly referred to as “The Gore Bill”) after hearing
4.1.6 Technology the 1988 report toward a National Research Network sub-
mitted to Congress by a group chaired by Leonard Klein-
Support for inter-IMP circuits of up to 230.4 kbit/s was rock, professor of computer science at UCLA. The bill
added in 1970, although considerations of cost and IMP was passed on 9 December 1991 and led to the National
processing power meant this capability was not actively Information Infrastructure (NII) which Al Gore called the
used. "information superhighway". ARPANET was the subject
[46][47]
1971 saw the start of the use of the non-ruggedized (and of two IEEE Milestones, both dedicated in 2009.
therefore significantly lighter) Honeywell 316 as an IMP.
It could also be configured as a Terminal Interface Pro-
cessor (TIP), which provided terminal server support for 4.2 Software and protocols
up to 63 ASCII serial terminals through a multi-line con-
troller in place of one of the hosts.[39] The 316 featured a The starting point for host-to-host communication on the
greater degree of integration than the 516, which made it ARPANET in 1969 was the 1822 protocol, which defined
less expensive and easier to maintain. The 316 was con- the transmission of messages to an IMP.[48] The message
figured with 40 kB of core memory for a TIP. The size of format was designed to work unambiguously with a broad
core memory was later increased, to 32 kB for the IMPs, range of computer architectures. An 1822 message es-
and 56 kB for TIPs, in 1973. sentially consisted of a message type, a numeric host ad-
In 1975, BBN introduced IMP software running on the dress, and a data field. To send a data message to another
Pluribus multi-processor. These appeared in a few sites. host, the transmitting host formatted a data message con-
In 1981, BBN introduced IMP software running on its taining the destination host’s address and the data mes-
own C/30 processor product. sage being sent, and then transmitted the message through
the 1822 hardware interface. The IMP then delivered the
In 1983, TCP/IP protocols replaced NCP as the message to its destination address, either by delivering
ARPANET’s principal protocol, and the ARPANET then it to a locally connected host, or by delivering it to an-
became one subnet of the early Internet.[40][41] other IMP. When the message was ultimately delivered
The original IMPs and TIPs were phased out as the to the destination host, the receiving IMP would transmit
ARPANET was shut down after the introduction of the a Ready for Next Message (RFNM) acknowledgement to
NSFNet, but some IMPs remained in service as late as the sending, host IMP.
July 1990.[42][43] Unlike modern Internet datagrams, the ARPANET was
The ARPANET Completion Report, jointly published by designed to reliably transmit 1822 messages, and to in-
BBN and ARPA, concludes that: form the host computer when it loses a message; the
42 CHAPTER 4. ARPANET
contemporary IP is unreliable, whereas the TCP is re- 4.3 ARPANET in popular culture
liable. Nonetheless, the 1822 protocol proved inade-
quate for handling multiple connections among differ-
• Computer Networks: The Heralds of Resource Shar-
ent applications residing in a host computer. This prob-
ing, a 30-minute documentary film[50] featuring
lem was addressed with the Network Control Program
Fernando J. Corbato, J.C.R. Licklider, Lawrence
(NCP), which provided a standard method to establish
G. Roberts, Robert Kahn, Frank Heart, William
reliable, flow-controlled, bidirectional communications
R. Sutherland, Richard W. Watson, John R. Pasta,
links among different processes in different host com-
Donald W. Davies, and economist, George W.
puters. The NCP interface allowed application soft-
Mitchell.
ware to connect across the ARPANET by implementing
higher-level communication protocols, an early example
• “Scenario”, a February 1985 episode of the U.S.
of the protocol layering concept incorporated to the OSI
television sitcom Benson (season 6, episode 20), was
model.[40]
the first incidence of a popular TV show directly
In 1983, TCP/IP protocols replaced NCP as the referencing the Internet or its progenitors. The
ARPANET’s principal protocol, and the ARPANET then show includes a scene in which the ARPANET is
became one component of the early Internet.[41] accessed.[51]
4.4 See also [12] Scantlebury, Roger (25 June 2013). "Internet pioneers air-
brushed from history". The Guardian. Retrieved 1 August
2015.
• .arpa, a top-level domain used exclusively for tech-
nical infrastructure purposes [13] "Packets of data were the key...". NPL. Retrieved 1 Au-
gust 2015.
• AMPRNet, AMateur Packet Radio Network
[14] Isaacson, Walter (2014). The Innovators: How a Group of
• Computer Networks: The Heralds of Resource Shar- Hackers, Geniuses, and Geeks Created the Digital Revolu-
ing—1972 documentary film tion. Simon & Schuster. p. 237. ISBN 9781476708690.
• NPL network [15] “The accelerator of the modern age”. BBC News. 5 Au-
gust 2008. Retrieved 19 May 2009.
• Project Cybersyn—1970 Chilean national net
[16] Cambell-Kelly, Martin (Autumn 2008). “Pioneer Pro-
project
files: Donald Davies”. Computer Resurrection (44). ISSN
• Usenet, “A Poor Man’s ARPAnet” 0958-7403.
[3] K.G. Coffman & A.M. Odlyzco - Optical Fiber Telecom- [21] “Brief History of the Internet”. Internet Society. Re-
munications IV-B: Systems and Impairments published by trieved April 9, 2016.
Academic Press 22 May 2002, 1022 pages, Optics and [22] “IMP – Interface Message Processor”, Living Internet
Photonics, ISBN 0080513190, (edited by I. Kaminow &
T. Li) [Retrieved 2015-08-15] [23] Wise, Adrian. “Honeywell DDP-516”. Old-
Computers.com. Retrieved 21 September 2008.
[4] R. Oppliger. Internet and Intranet Security (p.12). Artech
House, 1 Jan 2001, 403 pages, Artech House computer se- [24] “A Brief History of the Internet”. Internet Society.
curity series, ISBN 1580531660. Retrieved 2015-08-15. Archived from the original on 18 September 2008. Re-
trieved 20 September 2008.
[5] (ed. by H. Bidgoli). The Internet Encyclopedia, G – O.
published by John Wiley & Sons 11 May 2004, 840 pages, [25] Brand, Stewart (March 2001). “Founding Father”. Wired
ISBN 0471689963, Volume 2 of The Internet Encyclope- (9.03). Retrieved 31 December 2011.
dia. Retrieved 2015-08-15.
[26] “Shapiro: Computer Network Meeting of October 9-10,
[6] “Lawrence Roberts Manages The ARPANET Program”. 1967”. stanford.edu.
Living Internet.com. Retrieved 6 November 2008.
[27] Lukasik, Stephen J. (2011). “Why the Arpanet Was
[7] “Packet Switching History”, Living Internet, retrieved 26 Built”. IEEE Annals of the History of Computing. 33 (3):
August 2012 4–20. doi:10.1109/MAHC.2010.11.
[33] Chris Sutton (2 September 2004). “Internet Began 35 [53] Season 2, Episode 11 “2πR”
Years Ago at UCLA with First Message Ever Sent Be-
tween Two Computers”. UCLA. Archived from the orig- [54] Season 3, Episode 12 “Aletheia”
inal on 8 March 2008.
[55] “BBC News - SCI/TECH - Hacking: A history”.
[34] “NORSAR and the Internet”. NORSAR (Norway Seis- bbc.co.uk.
mic Array Research). Retrieved 25 August 2012.
[56] “Hobbes’ Internet Timeline - the definitive ARPAnet &
[35] DEFENSE DATA NETWORK NEWSLETTER DDN- Internet history”. zakon.org.
NEWS 26, 6 May 1983
[50] Steven King (Producer), Peter Chvany (Director/Editor) • “Oral history interview with Robert E. Kahn”. Uni-
(1972). Computer Networks: The Heralds of Resource versity of Minnesota, Minneapolis: Charles Bab-
Sharing. Retrieved 20 December 2011. bage Institute. 24 April 1990. Retrieved 15 May
2008. Focuses on Kahn’s role in the development of
[51] “Scenario”, Benson, Season 6, Episode 132 of 158, Amer-
computer networking from 1967 through the early
ican Broadcasting Company (ABC), Witt/Thomas/Harris
Productions, 22 February 1985 1980s. Beginning with his work at Bolt Beranek and
Newman (BBN), Kahn discusses his involvement
[52] The X-Files Season 5, Ep. 3 “Unusual Suspects”. as the ARPANET proposal was being written and
4.7. EXTERNAL LINKS 45
then implemented, and his role in the public demon- Sharing. Proceedings of the Spring Joint Computer
stration of the ARPANET. The interview continues Conference, Atlantic City, New Jersey.
into Kahn’s involvement with networking when he
moves to IPTO in 1972, where he was responsible • Heart, Frank; Kahn, Robert; Ornstein, Severo;
for the administrative and technical evolution of the Crowther, William; Walden, David (1970). The
ARPANET, including programs in packet radio, the Interface Message Processor for the ARPA Com-
development of a new network protocol (TCP/IP), puter Network (PDF). 1970 Spring Joint Computer
and the switch to TCP/IP to connect multiple net- Conference. AFIPS Proc. 36. pp. 551–567.
works. doi:10.1145/1476936.1477021.
• “Oral history interview with Vinton Cerf”. Univer- • Carr, Stephen; Crocker, Stephen; Cerf, Vinton
sity of Minnesota, Minneapolis: Charles Babbage (1970). Host-Host Communication Protocol in the
Institute. 24 April 1990. Retrieved 1 July 2008. ARPA Network. 1970 Spring Joint Computer
Cerf describes his involvement with the ARPA net- Conference. AFIPS Proc. 36. pp. 589–598.
work, and his relationships with Bolt Beranek and doi:10.1145/1476936.1477024. RFC 33 .
Newman, Robert Kahn, Lawrence Roberts, and the
Network Working Group. • Ornstein, Severo; Heart, Frank; Crowther, William;
Russell, S. B.; Rising, H. K.; Michel, A. (1972).
• “Oral history interview with Paul Baran”. University The Terminal IMP for the ARPA Computer Network.
of Minnesota, Minneapolis: Charles Babbage Insti- 1972 Spring Joint Computer Conference. AFIPS
tute. 5 March 1990. Retrieved 1 July 2008. Baran Proc. 40. pp. 243–254.
describes his work at RAND, and discusses his in-
teraction with the group at ARPA who were respon- • McQuillan, John; Crowther, William; Cosell,
sible for the later development of the ARPANET. Bernard; Walden, David; Heart, Frank (1972).
Improvements in the Design and Performance of the
• “Oral history interview with Leonard Kleinrock”.
ARPA Network. 1972 Fall Joint Computer Confer-
University of Minnesota, Minneapolis: Charles
ence part II. AFIPS Proc. 41. pp. 741–754.
Babbage Institute. 3 April 1990. Retrieved 1
July 2008. Kleinrock discusses his work on the • Feinler, Elizabeth J.; Postel, Jonathan B. (January
ARPANET. 1978). ARPANET Protocol Handbook, NIC 7104.
Menlo Park: Network Information Center (NIC),
• “Oral history interview with Larry Roberts”. Uni-
SRI International. ASIN B000EN742K.
versity of Minnesota, Minneapolis: Charles Bab-
bage Institute. 4 April 1989. Retrieved 1 July 2008.
• Roberts, Larry (November 1978). “The
• “Oral history interview with Stephen Lukasik”. Uni- Evolution of Packet Switching”. Proceed-
versity of Minnesota, Minneapolis: Charles Bab- ings of the IEEE. 66 (11): 1307–1313.
bage Institute. 17 October 1991. Retrieved 1 July doi:10.1109/PROC.1978.11141.
2008. Lukasik discusses his tenure at the Advanced
• Roberts, Larry (September 1986). “The
Research Projects Agency (ARPA), the develop-
ARPANET & Computer Networks”. ACM.
ment of computer networks and the ARPANET.
• Roberts, Larry; Wessler, Barry (May 1970). • “Paul Baran and the Origins of the Internet”. RAND
Computer Network Development to Achieve Resource Corporation. Retrieved 3 September 2005.
46 CHAPTER 4. ARPANET
47
48 CHAPTER 5. ASYNCHRONOUS TRANSFER MODE
carrying voice traffic, because the conversion of digitized payloads because the small size (and therefore short trans-
voice into an analogue audio signal is an inherently real- mission times) simplify voice applications with respect to
time process, and to do a good job, the decoder (codec) echo cancellation. Most of the European parties eventu-
that does this needs an evenly spaced (in time) stream of ally came around to the arguments made by the Ameri-
data items. If the next data item is not available when it cans, but France and a few others held out for a shorter
is needed, the codec has no choice but to produce silence cell length. With 32 bytes, France would have been able
or guess — and if the data is late, it is useless, because to implement an ATM-based voice network with calls
the time period when it should have been converted to a from one end of France to the other requiring no echo
signal has already passed. cancellation. 48 bytes (plus 5 header bytes = 53) was
At the time of the design of ATM, 155 Mbit/s chosen as a compromise between the two sides. 5-byte
headers were chosen because it was thought that 10% of
Synchronous Digital Hierarchy (SDH) with 135 Mbit/s
payload was considered a fast optical network link, and the payload was the maximum price to pay for routing
information.[2] ATM multiplexed these 53-byte cells in-
many plesiochronous digital hierarchy (PDH) links in the
digital network were considerably slower, ranging from stead of packets which reduced worst-case cell contention
jitter by a factor of almost 30, reducing the need for echo
1.544 to 45 Mbit/s in the USA, and 2 to 34 Mbit/s in
Europe. cancellers.
If the msbit of the PT bit is 1, this is a management cell,least 576 bytes. SAR performance limits mean that the
and the other two bits indicate the type. (Network man- fastest IP router ATM interfaces are STM16 - STM64
agement segment, network management end-to-end, re- which actually compares, while as of 2004 POS can op-
source management, and reserved for future use.) erate at OC-192 (STM64) with higher speeds expected
Several ATM link protocols use the HEC field to drive in the future.
a CRC-based framing algorithm, which allows locating On slower or congested links (622 Mbit/s and be-
the ATM cells with no overhead beyond what is other- low), ATM does make sense, and for this reason most
wise needed for header protection. The 8-bit CRC is asymmetric digital subscriber line (ADSL) systems use
used to correct single-bit header errors and detect multi- ATM as an intermediate layer between the physical link
bit header errors. When multi-bit header errors are de- layer and a Layer 2 protocol like PPP or Ethernet.
tected, the current and subsequent cells are dropped until At these lower speeds, ATM provides a useful ability to
a cell with no header errors is found. carry multiple logical circuits on a single physical or vir-
A UNI cell reserves the GFC field for a local flow con- tual medium, although other techniques exist, such as
trol/submultiplexing system between users. This was in- Multi-link PPP and Ethernet VLANs, which are optional
tended to allow several terminals to share a single network in VDSL implementations. DSL can be used as an ac-
connection, in the same way that two Integrated Services cess method for an ATM network, allowing a DSL ter-
Digital Network (ISDN) phones can share a single basic mination point in a telephone central office to connect to
rate ISDN connection. All four GFC bits must be zero many internet service providers across a wide-area ATM
by default. network. In the United States, at least, this has allowed
The NNI cell format replicates the UNI format almost DSL providers to provide DSL access to the customers
exactly, except that the 4-bit GFC field is re-allocated to of many internet service providers. Since one DSL ter-
mination point can support multiple ISPs, the economic
the VPI field, extending the VPI to 12 bits. Thus, a sin-
gle NNI ATM interconnection is capable of addressing feasibility of DSL is substantially improved.
almost 212 VPs of up to almost 216 VCs each (in practice
some of the VP and VC numbers are reserved).
5.1.4 Why virtual circuits?
ATM operates as a channel-based transport layer, using
5.1.3 Cells in practice
virtual circuits (VCs). This is encompassed in the con-
ATM supports different types of services via AALs. cept of the Virtual Paths (VP) and Virtual Channels. Ev-
Standardized AALs include AAL1, AAL2, and AAL5, ery ATM cell has an 8- or 12-bit Virtual Path Identifier
and the rarely used AAL3 and AAL4. AAL1 is used for (VPI) and 16-bit Virtual Channel Identifier (VCI) pair
constant bit rate (CBR) services and circuit emulation. defined in its header.[7] The VCI, together with the VPI,
Synchronization is also maintained at AAL1. AAL2 is used to identify the next destination of a cell as it passes
through AAL4 are used for variable bitrate (VBR) ser- through a series of ATM switches on its way to its desti-
vices, and AAL5 for data. Which AAL is in use for a nation. The length of the VPI varies according to whether
the cell is sent on the user-network interface (on the edge
given cell is not encoded in the cell. Instead, it is nego-
tiated by or configured at the endpoints on a per-virtual- of the network), or if it is sent on the network-network
interface (inside the network).
connection basis.
Following the initial design of ATM, networks have be- As these cells traverse an ATM network, switching takes
come much faster. A 1500 byte (12000-bit) full-size place by changing the VPI/VCI values (label swapping).
Ethernet frame takes only 1.2 µs to transmit on a 10 Although the VPI/VCI values are not necessarily consis-
Gbit/s network, reducing the need for small cells to re- tent from one end of the connection to the other, the con-
duce jitter due to contention. Some consider that this cept of a circuit is consistent (unlike IP, where any given
makes a case for replacing ATM with Ethernet in the packet could get to its destination by a different route than
network backbone. However, it should be noted that the the others).[8] ATM switches use the VPI/VCI fields to
increased link speeds by themselves do not alleviate jit- identify the Virtual Channel Link (VCL) of the next net-
ter due to queuing. Additionally, the hardware for im- work that a cell needs to transit on its way to its final des-
plementing the service adaptation for IP packets is ex- tination. The function of the VCI is similar to that of the
pensive at very high speeds. Specifically, at speeds of data link connection identifier (DLCI) in frame relay and
OC-3 and above, the cost of segmentation and reassem- the Logical Channel Number & Logical Channel Group
bly (SAR) hardware makes ATM less competitive for IP Number in X.25.
than Packet Over SONET (POS); because of its fixed 48- Another advantage of the use of virtual circuits comes
byte cell payload, ATM is not suitable as a data link layer with the ability to use them as a multiplexing layer, al-
directly underlying IP (without the need for SAR at the lowing different services (such as voice, Frame Relay,
data link level) since the OSI layer on which IP operates n* 64 channels, IP). The VPI is useful for reducing the
must provide a maximum transmission unit (MTU) of at switching table of some virtual circuits which have com-
50 CHAPTER 5. ASYNCHRONOUS TRANSFER MODE
mon paths. single cell will invalidate the whole packet). As a result,
schemes such as Partial Packet Discard (PPD) and Early
Packet Discard (EPD) have been created that will discard
5.1.5 Using cells and virtual circuits for a whole series of cells until the next packet starts. This
traffic engineering reduces the number of useless cells in the network, sav-
ing bandwidth for full packets. EPD and PPD work with
Another key ATM concept involves the traffic contract. AAL5 connections as they use the end of packet marker:
When an ATM circuit is set up each switch on the circuit the ATM User-to-ATM User (AUU) Indication bit in the
is informed of the traffic class of the connection. Payload Type field of the header, which is set in the last
ATM traffic contracts form part of the mechanism by cell of a SAR-SDU.
which "quality of service" (QoS) is ensured. There are
four basic types (and several variants) which each have a Traffic shaping
set of parameters describing the connection.
Traffic shaping usually takes place in the network inter-
1. CBR - Constant bit rate: a Peak Cell Rate (PCR) is face card (NIC) in user equipment, and attempts to ensure
specified, which is constant. that the cell flow on a VC will meet its traffic contract,
i.e. cells will not be dropped or reduced in priority at the
2. VBR - Variable bit rate: an average or Sustainable UNI. Since the reference model given for traffic policing
Cell Rate (SCR) is specified, which can peak at a in the network is the GCRA, this algorithm is normally
certain level, a PCR, for a maximum interval before used for shaping as well, and single and dual leaky bucket
being problematic. implementations may be used as appropriate.
3. ABR - Available bit rate: a minimum guaranteed
rate is specified.
5.1.6 Types of virtual circuits and paths
4. UBR - Unspecified bit rate: traffic is allocated to all
remaining transmission capacity. ATM can build virtual circuits and virtual paths either
statically or dynamically. Static circuits (permanent vir-
VBR has real-time and non-real-time variants, and serves tual circuits or PVCs) or paths (permanent virtual paths or
for “bursty” traffic. Non-real-time is sometimes abbrevi- PVPs) require that the circuit is composed of a series of
ated to vbr-nrt. segments, one for each pair of interfaces through which
it passes.
Most traffic classes also introduce the concept of Cell
Delay Variation Tolerance (CDVT), which defines the PVPs and PVCs, though conceptually simple, require sig-
“clumping” of cells in time. nificant effort in large networks. They also do not support
the re-routing of service in the event of a failure. Dynam-
ically built PVPs (soft PVPs or SPVPs) and PVCs (soft
Traffic policing PVCs or SPVCs), in contrast, are built by specifying the
characteristics of the circuit (the service “contract”) and
To maintain network performance, networks may apply the two end points.
traffic policing to virtual circuits to limit them to their
Finally, ATM networks create and remove switched vir-
traffic contracts at the entry points to the network, i.e. the
tual circuits (SVCs) on demand when requested by an
user–network interfaces (UNIs) and network-to-network
end piece of equipment. One application for SVCs is to
interfaces (NNIs): Usage/Network Parameter Control
carry individual telephone calls when a network of tele-
(UPC and NPC).[9] The reference model given by the
phone switches are inter-connected using ATM. SVCs
ITU-T and ATM Forum for UPC and NPC is the generic
were also used in attempts to replace local area networks
cell rate algorithm (GCRA),[10][11] which is a version of
with ATM.
the leaky bucket algorithm. CBR traffic will normally be
policed to a PCR and CDVt alone, whereas VBR traffic
will normally be policed using a dual leaky bucket con- 5.1.7 Virtual circuit routing
troller to a PCR and CDVt and an SCR and Maximum
Burst Size (MBS). The MBS will normally be the packet Most ATM networks supporting SPVPs, SPVCs, and
(SAR-SDU) size for the VBR VC in cells. SVCs use the Private Network Node Interface or the
If the traffic on a virtual circuit is exceeding its traffic Private Network-to-Network Interface (PNNI) protocol.
contract, as determined by the GCRA, the network can PNNI uses the same shortest-path-first algorithm used by
either drop the cells or mark the Cell Loss Priority (CLP) OSPF and IS-IS to route IP packets to share topology in-
bit (to identify a cell as potentially redundant). Basic formation between switches and select a route through a
policing works on a cell by cell basis, but this is sub- network. PNNI also includes a very powerful summa-
optimal for encapsulated packet traffic (as discarding a rization mechanism to allow construction of very large
5.4. SEE ALSO 51
networks, as well as a call admission control (CAC) al- cells are transmitted from base stations to mobile termi-
gorithm which determines the availability of sufficient nals. Mobility functions are performed at an ATM switch
bandwidth on a proposed route through a network in or- in the core network, known as “crossover switch”,[18]
der to satisfy the service requirements of a VC or VP. which is similar to the MSC (mobile switching center) of
GSM Networks. The advantage of Wireless ATM is its
high bandwidth and high speed handoffs done at Layer
5.1.8 Call admission and connection estab- 2. In the early 1990s, Bell Labs and NEC[19] Research
lishment Labs worked actively in this field. Andy Hopper from
Cambridge University Computer Laboratory also worked
A network must establish a connection before two par- in this area.[20] There was a Wireless ATM Forum formed
ties can send cells to each other. In ATM this is called to standardize the technology behind Wireless ATM Net-
a virtual circuit (VC). It can be a permanent virtual cir- works. The forum was supported by several telecom-
cuit (PVC), which is created administratively on the end munication companies, including NEC, Fujitsu, AT&T,
points, or a switched virtual circuit (SVC), which is cre- etc. Mobile ATM aimed to provide high speed multi-
ated as needed by the communicating parties. SVC cre- media communications technology, capable of delivering
ation is managed by signaling, in which the requesting broadband mobile communications beyond that of GSM
party indicates the address of the receiving party, the type and WLANs.
of service requested, and whatever traffic parameters may
be applicable to the selected service. “Call admission” is
then performed by the network to confirm that the re- 5.4 See also
quested resources are available and that a route exists for
the connection.
• VoATM
Wireless ATM,[17] or Mobile ATM, consists of an ATM [11] ATM Forum, The User Network Interface (UNI), v. 3.1,
core network with a wireless access network. ATM ISBN 0-13-393828-X, Prentice Hall PTR, 1995.
52 CHAPTER 5. ASYNCHRONOUS TRANSFER MODE
[12] “Guide to ATM Technology for the Catalyst 8540 MSR, 5.7 External links
Catalyst 8510 MSR, and LightStream 1010 ATM Switch
Routers” (PDF). Customer Order Number: DOC-786275. • “ATM forum”. Archived from the original on 1 July
Cisco Systems. 2000. Retrieved 19 July 2011.
2005.
[13] Steve Steinberg (October 1996). “Netheads vs Bellheads”. • ATM Info and resources
Wired. 4 (10). Retrieved 24 September 2011.
• ATM ChipWeb - Chip and NIC database
[14] “What’s in store for FORE?". Network World. 16
• A tutorial from Juniper web site
September 1996. p. 12. Retrieved 24 September 2011.
• ATM Tutorial
[15] “Optical Ethernet firms brave stormy industry seas”. Net-
work World. 7 May 2001. p. 14. Retrieved 24 September • Vuskovic Marko, Broadband Communication Net-
2011. works Lectures, San Diego State University.
[16] “About the Broadband Forum: Forum History”. Re- • ATM at Cisco DocWiki
trieved 24 September 2011.
5.6 References
AX.25
AX.25 (Amateur X.25) is a data link layer protocol de- repeaters, receiving, decoding and retransmitting packets
rived from the X.25 protocol suite and designed for use from local stations. They allow multi-hop connections to
by amateur radio operators.[1] It is used extensively on be established between two stations unable to communi-
amateur packet radio networks. cate directly.
AX.25 v2.0 and later occupies the data link layer, the sec- The AX.25 specification does define a complete, al-
ond layer of the OSI model. It is mainly responsible for beit point to point only network layer protocol, but this
establishing connections and transferring data encapsu- has seen little use outside of keyboard-to-keyboard or
lated in frames between nodes and detecting errors in- keyboard-to-BBS connections. NET/ROM, ROSE, and
troduced by the communications channel. As AX.25 is TexNet exist to provide routing between nodes. In princi-
a pre-OSI-model protocol, the original specification was ple, a variety of layer 3 protocols can be used with AX.25,
not written to cleanly separate into OSI layers. This was including the ubiquitous Internet protocol. This approach
rectified with version 2.0 (1984), which assumes compli- is used by AMPRNet, which is an amateur radio TCP/IP
ance with OSI level 2. network using AX.25 UI-frames at the datalink layer.
In practice, it is not uncommon to find an AX.25 data
link layer as the transport for some other network layer,
such as IPv4, with TCP used on top of that. Note that, 6.2 Implementations
like Ethernet, AX.25 frames are not engineered to sup-
port switching. For this reason, AX.25 supports a some- Traditionally, amateur radio operators have connected to
what limited form of source routing. Although possible AX.25 networks through the use of a terminal node con-
to build AX.25 switches in a manner not unlike how Eth- troller, which contains a microprocessor and an imple-
ernet switches work, this has not yet been accomplished. mentation of the protocol in firmware. These devices al-
low network resources to be accessed using only a dumb
terminal and a transceiver.
6.1 Specification More recently, AX.25 implementations have appeared
for personal computers. For example, the Linux kernel
AX.25 does not define a physical layer implementation. includes native support for AX.25 networking.[4]
In practice 1200 baud Bell 202 tones and 9600 baud
G3RUH DFSK[2] are almost exclusively used on VHF
and UHF. On HF the standard transmission mode is 300 6.2.1 KISS-mode framing
baud Bell 103 tones, although very little use of AX.25 on
HF exists today. At the physical layer, AX.25 defines only See full article at KISS (TNC)
a “physical layer state machine” and some timers related
to transmitter and receiver switching delays. AX.25 is often used with a TNC that implements the
KISS[5] framing as a low-cost alternative to using expen-
At the datalink level, AX.25 specifies HDLC (ISO sive and uncommon HDLC controller cards.
3309)[3] frames transmitted with NRZI encoding. Media
access control follows the Carrier sense multiple access The KISS framing is not part of the AX.25 protocol itself
approach with collision recovery (CSMA/CR). nor is it sent over the air. It merely serves to encapsulate
the protocol frames in a way that can successfully pass
AX.25 supports both virtual-circuit connected and over a serial link to the TNC. The KISS framing is de-
datagram-style connectionless modes of operation. The rived from SLIP, and makes many of the same assump-
latter is used to great effect by the Automatic Packet Re- tions, such as there only being two “endpoints” involved
porting System. in the conversation. With SLIP, these were the two SLIP-
A simple source routing mechanism using digipeaters is connected hosts; with KISS, it is assumed that the KISS
available at the datalink level. Digipeaters act as simplex framing link is over serial with only the host computer
53
54 CHAPTER 6. AX.25
and the PC involved. Among other things, this makes it • new radio level modulations would need different
awkward to address multiple TNCs without having mul- radio gear than what is currently in use and the re-
tiple (serial) data channels. sulting system would be incompatible with the ex-
Alternatives to KISS do exist that address these limita- isting one – thus requiring a large initial investment
tions, such as 6PACK.[6] in new radio gear,
In computer science, communicating sequential pro- X to the COPY process, and east to the ASSEMBLE pro-
cesses (CSP) is a formal language for describing patterns cess, and executes these three processes concurrently.[5]
of interaction in concurrent systems.[1] It is a member
Following the publication of the original version of CSP,
of the family of mathematical theories of concurrency Hoare, Stephen Brookes, and A. W. Roscoe developed
known as process algebras, or process calculi, based on
and refined the theory of CSP into its modern, process
message passing via channels. CSP was highly influential algebraic form. The approach taken in developing CSP
in the design of the occam programming language,[1][2]
into a process algebra was influenced by Robin Milner's
and also influenced the design of programming languages work on the Calculus of Communicating Systems (CCS),
such as Limbo[3] and Go.[4]
and vice versa. The theoretical version of CSP was ini-
CSP was first described in a 1978 paper by Tony Hoare,[5] tially presented in a 1984 article by Brookes, Hoare,
but has since evolved substantially.[6] CSP has been prac- and Roscoe,[12] and later in Hoare’s book Communicat-
tically applied in industry as a tool for specifying and ver- ing Sequential Processes,[10] which was published in 1985.
ifying the concurrent aspects of a variety of different sys- In September 2006, that book was still the third-most
tems, such as the T9000 Transputer,[7] as well as a secure cited computer science reference of all time according
ecommerce system.[8] The theory of CSP itself is also to Citeseer (albeit an unreliable source due to the nature
still the subject of active research, including work to in- of its sampling). The theory of CSP has undergone a
crease its range of practical applicability (e.g., increasing few minor changes since the publication of Hoare’s book.
the scale of the systems that can be tractably analyzed).[9] Most of these changes were motivated by the advent of
automated tools for CSP process analysis and verification.
Roscoe’s The Theory and Practice of Concurrency[1] de-
scribes this newer version of CSP.
7.1 History
The version of CSP presented in Hoare’s original 1978 7.1.1 Applications
paper was essentially a concurrent programming language
rather than a process calculus. It had a substantially dif- An early and important application of CSP was its use
ferent syntax than later versions of CSP, did not possess for specification and verification of elements of the IN-
mathematically defined semantics,[10] and was unable to MOS T9000 Transputer, a complex superscalar pipelined
represent unbounded nondeterminism.[11] Programs in processor designed to support large-scale multiprocess-
the original CSP were written as a parallel composition ing. CSP was employed in verifying the correctness of
of a fixed number of sequential processes communicat- both the processor pipeline, and the Virtual Channel Pro-
ing with each other strictly through synchronous message- cessor which managed off-chip communications for the
passing. In contrast to later versions of CSP, each process processor.[7]
was assigned an explicit name, and the source or destina-
tion of a message was defined by specifying the name of Industrial application of CSP to software design has usu-
the intended sending or receiving process. For example, ally focused on dependable and safety-critical systems.
the process For example, the Bremen Institute for Safe Systems and
Daimler-Benz Aerospace modeled a fault management
COPY = *[c:character; west?c → east!c] system and avionics interface (consisting of some 23,000
repeatedly receives a character from the process named lines of code) intended for use on the International Space
west, and then sends that character to process named east. Station in CSP, and analyzed the model to confirm that
The parallel composition their design was free of deadlock and livelock.[13][14] The
modeling and analysis process was able to uncover a num-
[west::DISASSEMBLE || X::COPY || east::ASSEMBLE] ber of errors that would have been difficult to detect using
assigns the names west to the DISASSEMBLE process, testing alone. Similarly, Praxis High Integrity Systems
56
7.2. INFORMAL DESCRIPTION 57
applied CSP modeling and analysis during the develop- Prefix The prefix operator combines an event and a pro-
ment of software (approximately 100,000 lines of code) cess to produce a new process. For example,
for a secure smart-card Certification Authority to verify
that their design was secure and free of deadlock. Praxis
claims that the system has a much lower defect rate than
comparable systems.[8] a→P
Since CSP is well-suited to modeling and analyzing sys-
tems that incorporate complex message exchanges, it has is the process which is willing to communicate
also been applied to the verification of communications a with its environment, and, after a , behaves
and security protocols. A prominent example of this like the process P .
sort of application is Lowe’s use of CSP and the FDR
refinement-checker to discover a previously unknown at- Deterministic Choice The deterministic (or external)
tack on the Needham-Schroeder public-key authentica- choice operator allows the future evolution of a pro-
tion protocol, and then to develop a corrected protocol cess to be defined as a choice between two compo-
able to defeat the attack.[15] nent processes, and allows the environment to re-
solve the choice by communicating an initial event
for one of the processes. For example,
7.2 Informal description
As its name suggests, CSP allows the description of sys- (a → P ) □ (b → Q)
tems in terms of component processes that operate in-
dependently, and interact with each other solely through is the process which is willing to communicate
message-passing communication. However, the “Sequen- the initial events a and b , and subsequently
tial” part of the CSP name is now something of a mis- behaves as either P or Q depending on which
nomer, since modern CSP allows component processes to initial event the environment chooses to com-
be defined both as sequential processes, and as the parallel municate. If both a and b were communicated
composition of more primitive processes. The relation- simultaneously the choice would be resolved
ships between different processes, and the way each pro- nondeterministically.
cess communicates with its environment, are described
using various process algebraic operators. Using this al- Nondeterministic Choice The nondeterministic (or in-
gebraic approach, quite complex process descriptions can ternal) choice operator allows the future evolution
be easily constructed from a few primitive elements. of a process to be defined as a choice between two
component processes, but does not allow the envi-
ronment any control over which one of the compo-
7.2.1 Primitives nent processes will be selected. For example,
is equivalent to
7.2.2 Algebraic operators
and X be a set of events. Then the basic syntax of CSP where Σ∗ is the set of all possible finite sequences of
can be defined as: events.
The stable failures model extends the traces model with
refusal sets, which are sets of events X ⊆ Σ that a pro-
P roc ::= STOP
cess can refuse to perform. A failure is a pair (s, X) ,
| SKIP
consisting of a trace s , and a refusal set X which iden-
| e → Proc (prefixing)
tifies the events that a process may refuse once it has
| Proc □ Proc (external choice)
executed the trace s . The observed behavior of a pro-
| Proc ⊓ Proc (nondeterministic choice)
cess in the stable failures model is described by the pair
| Proc ||| Proc (interleaving)
(traces (P ) , failures (P )) . For example,
| Proc |[{X}]| Proc (interface parallel)
| Proc \ X (hiding) • failures ((a → STOP) □ (b → STOP)) =
| Proc; Proc (sequential composition) {(⟨⟩, ∅) , (⟨a⟩, {a, b}) , (⟨b⟩, {a, b})}
| if b then Proc else P roc (boolean conditional)
• failures ((a → STOP) ⊓ (b → STOP)) =
| Proc ▷ Proc (timeout)
{(⟨⟩, {a}) , (⟨⟩, {b}) , (⟨a⟩, ∅) , (⟨b⟩, ∅) , (⟨a⟩, {a, b}) , (⟨b⟩, {a, b
| Proc △ Proc (interrupt)
Note that, in the interests of brevity, the syntax presented The failures/divergence model further extends the fail-
above omits the div process, which represents divergence, ures model to handle divergence. The semantics of
as well as various operators such as alphabetized parallel, a process in the failures/divergences model is a pair
piping, and indexed choices. (failures⊥ (P ) , divergences (P )) where divergences (P )
is defined as the set of all traces that can lead to di-
vergent behavior and failures⊥ (P ) = failures (P ) ∪
7.3.2 Formal semantics {(s, X) | s ∈ divergences (P )} .
[13] Buth, B.; M. Kouvaras; J. Peleska; H. Shi (December [27] Origins of Go concurrency style. Talk by Rob Pike at OS-
1997). “Deadlock analysis for a fault-tolerant system”. CON’s Emerging Languages Camp 2010.
Proceedings of the 6th International Conference on Alge-
braic Methodology and Software Technology (AMAST’97).
pp. 60–75.
7.10 External links
[14] Buth, B.; J. Peleska; H. Shi (January 1999). “Combin-
ing methods for the livelock analysis of a fault-tolerant • A PDF version of Hoare’s CSP book - Copyright re-
system”. Proceedings of the 7th International Confer- striction apply, see the page text before download-
ence on Algebraic Methodology and Software Technology
ing.
(AMAST’98). pp. 124–139.
[21] Sun, Jun; Liu, Yang; Dong, Jin Song (2009). “PAT:
Towards Flexible Verification under Fairness” (PDF).
Proceedings of the 20th International Conference on
Computer-Aided Verification (CAV 2009). Lecture Notes
in Computer Science. Springer. Retrieved 2009-06-16.
[22] Sun, Jun; Liu, Yang; Dong, Jin Song (2008). “Model
Checking CSP Revisited: Introducing a Process Analy-
sis Toolkit” (PDF). Proceedings of the Third International
Symposium on Leveraging Applications of Formal Meth-
ods, Verification and Validation (ISoLA 2008). Commu-
nications in Computer and Information Science. Springer.
pp. 307–322. Retrieved 2009-01-15.
[23] Sun, Jun; Liu, Yang; Dong, Jin Song; Chen, Chun-
qing (2009). “Integrating Specifications and Programs
for System Specification and Verification” (PDF). IEEE
Int. Conf. on Theoretical Aspects of Software Engineering
TASE '09. Retrieved 2009-04-13.
Communication
Communication (from Latin commūnicāre, meaning “to Nonverbal communication describes the process of con-
share”[1] ) is the act of conveying intended meanings from
veying meaning in the form of non-word messages. Ex-
one entity or group to another through the use of mutually
amples of nonverbal communication include haptic com-
understood signs and semiotic rules. munication, chronemic communication, gestures, body
The basic steps of communication are: language, facial expression, eye contact, and how one
dresses. Nonverbal communication also relates to in-
tent of a message. Examples of intent are voluntary,
1. the forming of communicative intent intentional movements like shaking a hand or winking,
as well as involuntary, such as sweating.[2] Speech also
2. message composition contains nonverbal elements known as paralanguage, e.g.
rhythm, intonation, tempo, and stress. There may even
3. message encoding and decoding.
be a pheromone component. Research has shown that
4. transmission of the encoded message as a sequence up to 55% of human communication may occur through
of signals using a specific channel or medium non-verbal facial expressions, and a further 38% through
para-language.[3] It affects communication most at the
5. reception of signals subconscious level and establishes trust. Likewise, writ-
ten texts include nonverbal elements such as handwrit-
6. reconstruction of the original message ing style, spatial arrangement of words and the use of
emoticons to convey emotion.
7. interpretation and making sense of the reconstructed
Nonverbal communication demonstrates one of Wazlaw-
message.
ick’s laws: you cannot not communicate. Once proximity
has formed awareness, living creatures begin interpreting
The study of communication can be divided into: any signals received.[4] Some of the functions of nonver-
bal communication in humans are to complement and il-
• information theory which studies the quantification, lustrate, to reinforce and emphasize, to replace and sub-
storage, and communication of information in gen- stitute, to control and regulate, and to contradict the de-
eral; notative message.
63
64 CHAPTER 8. COMMUNICATION
though there are exceptions. There is no defined line be- of tautologies in the universe.[7] This process, which re-
tween a language and a dialect. Constructed languages quires a vast repertoire of skills in interpersonal process-
such as Esperanto, programming languages, and various ing, listening, observing, speaking, questioning, analyz-
mathematical formalism is not necessarily restricted to ing, gestures, and evaluating enables collaboration and
the properties shared by human languages. Communica- cooperation.[8]
tion is two-way process not merely one way Misunderstandings can be anticipated and solved through
An Effective Communication Process*: formulations, questions and answers, paraphrasing, ex-
amples, and stories of strategic talk. Written commu-
1. Use standard terminology when communicating in- nication can be clarified by planning follow-up talks on
formation. critical written communication as part of the everyday
way of doing business. A few minutes spent talking in
2. Request and provide clarification when needed. the present will save valuable time later by avoiding mis-
understandings in advance. A frequent method for this
3. Ensure statements are direct and unambiguous.
purpose is reiterating what one heard in one’s own words
4. Inform the appropriate individuals when the mission and asking the other person if that really was what was
or plans change. meant (paraphrasing).[9]
Over time the forms of and ideas about communication Companies with limited resources may choose to engage
have evolved through the continuing progression of tech- in only a few of these activities, while larger organizations
nology. Advances include communications psychology may employ a full spectrum of communications. Since it
and media psychology, an emerging field of study. is difficult to develop such a broad range of skills, com-
munications professionals often specialize in one or two
The progression of written communication can be divided of these areas but usually have at least a working knowl-
into three “information communication revolutions":[6] edge of most of them. By far, the most important qual-
ifications communications professionals can possess are
1. Written communication first emerged through the excellent writing ability, good 'people' skills, and the ca-
use of pictographs. The pictograms were made in pacity to think critically and strategically.
stone, hence written communication was not yet mo-
bile. Pictograms began to develop standardized and
simplified forms.
8.5 Family communication
2. The next step occurred when writing began to ap-
pear on paper, papyrus, clay, wax, and other me- Family communication is the study and of the communi-
dia with common shared writing systems, leading to cation perspective in a broadly defined family, with inti-
adaptable alphabets. Communication became mo- macy and trusting relationship.[10] The main goal of fam-
bile. ily communication is to understand the interactions of
3. The final stage is characterized by the trans- family and the pattern of behaviors of family members
fer of information through controlled waves of in different circumstances.
electromagnetic radiation (i.e., radio, microwave, Family communication study looks at topics such as fam-
infrared) and other electronic signals. ily rules, family roles or family dialectics and how those
factors could affect the communication between family
Communication is thus a process by which meaning is members. Researchers develop theories to understand
assigned and conveyed in an attempt to create shared un- communication behaviors. Family communication study
derstanding. Gregory Bateson called it “the replication also digs deep into certain time periods of family life such
8.7. BARRIERS TO EFFECTIVE HUMAN COMMUNICATION 65
as marriage, parenthood or divorce and how communica- • System design. System design faults refer to prob-
tion stands in those situations. It is important for family lems with the structures or systems in place in an
members to understand communication as a trusted way organization. Examples might include an organiza-
which leads to a well constructed family. tional structure which is unclear and therefore makes
it confusing to know whom to communicate with.
Other examples could be inefficient or inappropriate
information systems, a lack of supervision or train-
8.6 Interpersonal communication ing, and a lack of clarity in roles and responsibilities
which can lead to staff being uncertain about what
In simple terms, interpersonal communication is the com- is expected of them.
munication between one person and another (or others).
It is often referred to as face-to-face communication be- • Attitudinal barriers. Attitudinal barriers come
tween two (or more) people. Both verbal and nonverbal about as a result of problems with staff in an organi-
communication, or body language, play a part in how one zation. These may be brought about, for example, by
person understands another. In verbal interpersonal com- such factors as poor management, lack of consulta-
munication there are two types of messages being sent: a tion with employees, personality conflicts which can
content message and a relational message. Content mes- result in people delaying or refusing to communi-
sages are messages about the topic at hand and relational cate, the personal attitudes of individual employees
messages are messages about the relationship itself.[11] which may be due to lack of motivation or dissatis-
This means that relational messages come across in how faction at work, brought about by insufficient train-
one says something and it demonstrates a person’s feel- ing to enable them to carry out particular tasks, or
ings, whether positive or negative, towards the individ- simply resistance to change due to entrenched atti-
ual they are talking to, indicating not only how they feel tudes and ideas.
about the topic at hand, but also how they feel about their
• Ambiguity of words/phrases. Words sounding the
relationship with the other individual.[11] When texting or
same but having different meaning can convey a dif-
posting something on social media the relational message
ferent meaning altogether. Hence the communica-
is lost and can cause people to misinterpret the message.
tor must ensure that the receiver receives the same
Computer-mediated communication is a largely studied
meaning. It is better if such words are avoided by
topic for this reason along with many others.
using alternatives whenever possible.
with others. With the ever-constant presence of an- • Paralinguistics are the voice involved in communi-
other “world” in one’s pocket, individuals are multi- cation other than actual language and involves tones,
tasking both physically and cognitively as constant pitch, vocal cues etc. It also include sounds from
reminders of something else happening somewhere throat and all these are greatly influenced by cultural
else bombard them. Though perhaps too new of an differences across borders.
advancement to yet see long-term effects, this is a
• Proxemics deals with the concept of space element
notion currently explored by such figures as Sherry
in communication. Proxemics explains four zones
Turkle.[15]
of spaces namely intimate personal, social and pub-
lic. This concept differs with different culture as the
• Fear of being criticized. This is a major factor that
permissible space vary in different countries.
prevents good communication. If we exercise sim-
ple practices to improve our communication skill, • Artifactics studies about the non verbal signals or
we can become effective communicators. For ex- communication which emerges from personal ac-
ample, read an article from the newspaper or collect cessories such as dresses or fashion accessories worn
some news from the television and present it in front and it varies with culture as people of different coun-
of the mirror. This will not only boost your confi- tries follow different dressing codes.
dence, but also improve your language and vocabu-
lary. • Chronemics deal with the time aspects of com-
munication and also include importance given to
the time. some issues explaining this conceptpt
are pauses, silences and response lag during an
8.7.1 Cultural aspects interaction. This aspect of communication is also
influenced by cultural differences as it is well known
Cultural differences exist within countries that there is a great difference in the value given by
(tribal/regional differences, dialects etc.), between different cultures to time.
religious groups and in organisations or at an organisa-
tional level - where companies, teams and units may have • Kinesics mainly deals with the body languages such
different expectations, norms and idiolects. Families as postures, gestures, head nods, leg movements etc.
and family groups may also experience the effect of In different countiessame gestures and postures are
cultural barriers to communication within and between used to convey different messages. Sometimes even
different family members or groups. For example: a particular kinesic indicating something good in a
words, colours and symbols have different meanings in country may have a negative meaning in any other
different cultures. In most parts of the world, nodding culture.
your head means agreement, shaking your head means
no, except in some parts of the world.[16] So in order to have an effective communication across
world it is desirable to have a knowledge of cultural vari-
Communication to a great extent is influenced by cul-
ables effecting communication.
ture and cultural variables.[17][18][19][20] Understanding
cultural aspects of communication refers to having knowl- According to Michael Walsh and Ghil'ad Zuckermann,
edge of different cultures in order to communicate ef- Western conversational interaction is typically “dyadic”,
fectively with cross culture people. Cultural aspects of between two particular people, where eye contact is im-
communication are of great relevance in today’s world portant and the speaker controls the interaction; and
which is now a global village, thanks to globalisation. “contained” in a relatively short, defined time frame.
Cultural aspects of communication are the cultural dif- However, traditional Aboriginal conversational interac-
ferences which influences communication across borders. tion is “communal”, broadcast to many people, eye con-
Impact of cultural differences on communication compo- tact is not important, the listener controls the interaction;
nents are explained below: and “continuous”, spread over a longer, indefinite time
frame.[21][22]
1) Verbal communication refers to form of communica-
tion which uses spoken and written words for expressing
and transferring views and ideas. Language is the most
important tool of verbal communication and it is the area 8.8 Nonhuman communication
where cultural difference play its role. All countries have
different languages and to have a better understanding of See also: Biocommunication (science), Interspecies
different culture it is required to have knowledge of lan- communication, and Biosemiotics
guages of different countries.
2) Non verbal communication is a very wide concept and Every information exchange between living organisms —
it includes all the other forms of communication which i.e. transmission of signals that involve a living sender
do not uses written or spoken words. Non verbal com- and receiver can be considered a form of communi-
munication takes following forms: cation; and even primitive creatures such as corals are
8.9. MODELS OF COMMUNICATION 67
competent to communicate. Nonhuman communication organism to react. This implies that fungal organisms can
also include cell signaling, cellular communication, and differentiate between molecules taking part in biotic mes-
chemical transmissions between primitive organisms like sages and similar molecules being irrelevant in the situa-
bacteria and within the plant and fungal kingdoms. tion. So far five different primary signalling molecules are
known to coordinate different behavioral patterns such as
filamentation, mating, growth, and pathogenicity. Behav-
8.8.1 Animals ioral coordination and production of signaling substances
is achieved through interpretation processes that enables
The broad field of animal communication encompasses the organism to differ between self or non-self, a biotic
most of the issues in ethology. Animal communication indicator, biotic message from similar, related, or non-
can be defined as any behavior of one animal that af- related species, and even filter out “noise”, i.e. similar
fects the current or future behavior of another animal. molecules without biotic content.[26]
The study of animal communication, called zoo semiotics
(distinguishable from anthroposemiotics, the study of hu-
man communication) has played an important part in the 8.8.3 Bacteria quorum sensing
development of ethology, sociobiology, and the study of
animal cognition. Animal communication, and indeed Communication is not a tool used only by humans, plants
the understanding of the animal world in general, is a and animals, but it is also used by microorganisms like
rapidly growing field, and even in the 21st century so bacteria. The process is called quorum sensing. Through
far, a great share of prior understanding related to di- quorum sensing, bacteria are able to sense the density of
verse fields such as personal symbolic name use, animal cells, and regulate gene expression accordingly. This can
emotions, animal culture and learning, and even sexual be seen in both gram positive and gram negative bacte-
conduct, long thought to be well understood, has been ria. This was first observed by Fuqua et al. in marine
[27]
revolutionized. A special field of animal communication microorganisms like V. harveyi and V. fischeri.
has been investigated in more detail such as vibrational
communication.[23]
8.9 Models of communication
8.8.2 Plants and fungi Main article: Models of communication
The first major model for communication was intro-
Communication is observed within the plant organism,
i.e. within plant cells and between plant cells, between
plants of the same or related species, and between plants
and non-plant organisms, especially in the root zone.
Plant roots communicate with rhizome bacteria, fungi,
and insects within the soil. These interactions are gov-
erned by syntactic, pragmatic, and semantic rules, and
are possible because of the decentralized “nervous sys-
tem” of plants. The original meaning of the word “neu-
ron” in Greek is “vegetable fiber” and recent research has
shown that most of the microorganism plant communica-
tion processes are neuron-like.[24] Plants also communi- Shannon and Weaver Model of Communication
cate via volatiles when exposed to herbivory attack behav-
ior, thus warning neighboring plants.[25] In parallel they duced by Claude Shannon and Warren Weaver for Bell
produce other volatiles to attract parasites which attack Laboratories in 1949[28] The original model was designed
these herbivores. In stress situations plants can overwrite to mirror the functioning of radio and telephone tech-
the genomes they inherited from their parents and revert nologies. Their initial model consisted of three primary
to that of their grand- or great-grandparents. parts: sender, channel, and receiver. The sender was the
Fungi communicate to coordinate and organize their part of a telephone a person spoke into, the channel was
growth and development such as the formation of the telephone itself, and the receiver was the part of the
Marcelia and fruiting bodies. Fungi communicate with phone where one could hear the other person. Shannon
their own and related species as well as with non fungal and Weaver also recognized that often there is static that
organisms in a great variety of symbiotic interactions, es- interferes with one listening to a telephone conversation,
pecially with bacteria, unicellular eukaryote, plants and which they deemed noise.
insects through biochemicals of biotic origin. The bio- In a simple model, often referred to as the transmission
chemicals trigger the fungal organism to react in a spe- model or standard view of communication, information
cific manner, while if the same chemical molecules are or content (e.g. a message in natural language) is sent in
not part of biotic messages, they do not trigger the fungal some form (as spoken language) from an emisor/ sender/
68 CHAPTER 8. COMMUNICATION
The semantic problem: how precisely is the secondary phenomena that followed the primary acquisi-
meaning 'conveyed'? tion of communicative competences within social inter-
actions.
The effectiveness problem: how effectively
does the received meaning affect behavior? In light of these weaknesses, Barnlund (2008) proposed
a transactional model of communication.[32] The basic
Daniel Chandler[29] critiques the transmission model by premise of the transactional model of communication is
stating: that individuals are simultaneously engaging in the send-
ing and receiving of messages.
It assumes communicators are isolated individ- In a slightly more complex form a sender and a receiver
uals. are linked reciprocally. This second attitude of commu-
nication, referred to as the constitutive model or construc-
No allowance for differing purposes. tionist view, focuses on how an individual communicates
No allowance for differing interpretations. as the determining factor of the way the message will be
interpreted. Communication is viewed as a conduit; a
No allowance for unequal power relations. passage in which information travels from one individual
No allowance for situational contexts. to another and this information becomes separate from
the communication itself. A particular instance of com-
munication is called a speech act. The sender’s personal
In 1960, David Berlo expanded on Shannon and Weaver’s
filters and the receiver’s personal filters may vary depend-
(1949) linear model of communication and created
ing upon different regional traditions, cultures, or gen-
the SMCR Model of Communication.[30] The Sender-
der; which may alter the intended meaning of message
Message-Channel-Receiver Model of communication
contents. In the presence of "communication noise" on
separated the model into clear parts and has been ex-
the transmission channel (air, in this case), reception and
panded upon by other scholars.
decoding of content may be faulty, and thus the speech
Communication is usually described along a few major act may not achieve the desired effect. One problem
dimensions: Message (what type of things are commu- with this encode-transmit-receive-decode model is that
nicated), source / emisor / sender / encoder (by whom), the processes of encoding and decoding imply that the
form (in which form), channel (through which medium), sender and receiver each possess something that functions
destination / receiver / target / decoder (to whom), and as a codebook, and that these two code books are, at the
Receiver. Wilbur Schram (1954) also indicated that we very least, similar if not identical. Although something
should also examine the impact that a message has (both like code books is implied by the model, they are nowhere
desired and undesired) on the target of the message.[31] represented in the model, which creates many conceptual
Between parties, communication includes acts that confer difficulties.
knowledge and experiences, give advice and commands,
Theories of coregulation describe communication as a
and ask questions. These acts may take many forms, in
creative and dynamic continuous process, rather than
one of the various manners of communication. The form
a discrete exchange of information. Canadian media
depends on the abilities of the group communicating. To-
scholar Harold Innis had the theory that people use dif-
gether, communication content and form make messages
ferent types of media to communicate and which one
that are sent towards a destination. The target can be one-
they choose to use will offer different possibilities for the
self, another person or being, another entity (such as a
shape and durability of society (Wark, McKenzie 1997).
corporation or group of beings).
His famous example of this is using ancient Egypt and
Communication can be seen as processes of information looking at the ways they built themselves out of media
transmission with three levels of semiotic rules: with very different properties stone and papyrus. Pa-
pyrus is what he called 'Space Binding'. it made possible
1. Pragmatic (concerned with the relations between the transmission of written orders across space, empires
signs/expressions and their users) and enables the waging of distant military campaigns and
colonial administration. The other is stone and 'Time
2. Semantic (study of relationships between signs and Binding', through the construction of temples and the
symbols and what they represent) and pyramids can sustain their authority generation to gen-
eration, through this media they can change and shape
3. Syntactic (formal properties of signs and symbols). communication in their society (Wark, McKenzie 1997).
• Augmentative and alternative communication [13] What Should Be Included in a Project Plan - Retrieved
December 18th, 2009
• Communication rights
[14] J. Scott Armstrong (1980). “Bafflegab Pays” (PDF). Psy-
• Data communication chology Today: 12.
8.14. FURTHER READING 71
[15] “Technology can sometimes hinder communication, TR [32] Barnlund, D. C. (2008). A transactional model of com-
staffers observe - The Collegian”. The Collegian. Re- munication. In. C. D. Mortensen (Eds.), Communication
trieved 2016-01-11. theory (2nd ed., pp47-57). New Brunswick, New Jersey:
Transaction.
[16] Nageshwar Rao, Rajendra P.Das, Communication skills,
Himalaya Publishing House, 9789350516669, p.48 [33] Roy M. Berko, et al., Communicating. 11th ed. (Boston,
MA: Pearson Education, Inc., 2010) 9-12
[17] http://expertscolumn.com/content/
communication-and-cognitive-components-culture
Communications protocol
72
9.3. PROTOCOLS AND PROGRAMMING LANGUAGES 73
bitstrings are exchanged. The bitstrings are divided a permanently broken link, the retransmission has no
in fields and each field carries information relevant effect so the number of retransmissions is limited.
to the protocol. Conceptually the bitstring is divided Exceeding the retry limit is considered an error.[18]
into two parts called the header area and the data
area. The actual message is stored in the data area, • Direction of information flow needs to be addressed
so the header area contains the fields with more rel- if transmissions can only occur in one direction at a
evance to the protocol. Bitstrings longer than the time as on half-duplex links. This is known as Media
maximum transmission unit (MTU) are divided in Access Control. Arrangements have to be made to
pieces of appropriate size.[13] accommodate the case when two parties want to gain
control at the same time.[19]
• Address formats for data exchange. Addresses are
used to identify both the sender and the intended • Sequence control. We have seen that long bitstrings
receiver(s). The addresses are stored in the header are divided in pieces, and then sent on the net-
area of the bitstrings, allowing the receivers to deter- work individually. The pieces may get lost or de-
mine whether the bitstrings are intended for them- layed or take different routes to their destination on
selves and should be processed or should be ignored. some types of networks. As a result, pieces may
A connection between a sender and a receiver can be arrive out of sequence. Retransmissions can result
identified using an address pair (sender address, re- in duplicate pieces. By marking the pieces with se-
ceiver address). Usually some address values have quence information at the sender, the receiver can
special meanings. An all-1s address could be taken determine what was lost or duplicated, ask for nec-
to mean an addressing of all stations on the network, essary retransmissions and reassemble the original
so sending to this address would result in a broad- message.[20]
cast on the local network. The rules describing the
• Flow control is needed when the sender transmits
meanings of the address value are collectively called
faster than the receiver or intermediate network
an addressing scheme.[14]
equipment can process the transmissions. Flow con-
• Address mapping. Sometimes protocols need to map trol can be implemented by messaging from receiver
addresses of one scheme on addresses of another to sender.[21]
scheme. For instance to translate a logical IP ad-
dress specified by the application to an Ethernet Getting the data across a network is only part of the prob-
hardware address. This is referred to as address lem for a protocol. The data received has to be evalu-
mapping.[15] ated in the context of the progress of the conversation,
so a protocol has to specify rules describing the context.
• Routing. When systems are not directly connected, These kind of rules are said to express the syntax of the
intermediary systems along the route to the intended communications. Other rules determine whether the data
receiver(s) need to forward messages on behalf of is meaningful for the context in which the exchange takes
the sender. On the Internet, the networks are con- place. These kind of rules are said to express the seman-
nected using routers. This way of connecting net- tics of the communications.
works is called internetworking.
the region of program text in which a binding is effective gle universal protocol would be very hard to design and
is known as its scope.[23] The computational state is kept implement correctly. Instead, the IETF decided to reduce
using two components: the environment, used as a record complexity by assuming a relatively simple network ar-
of identifier bindings, and the store, which is used as a chitecture allowing decomposition of the single universal
record of the effects of assignments.[24] networking protocol into two generic protocols, TCP and
In communications, message values are transferred using IP, and two classes of specific protocols, one dealing with
transmission media. By analogy, the equivalent of a store the low-level network details and one dealing with the
would be a collection of transmission media, instead of high-level details of common network applications (re-
mote login, file transfer, email and web browsing). ISO
a collection of memory locations. A valid assignment
in a protocol (as an analog of programming language) choose a similar but more general path, allowing other
network architectures, to standardize protocols.
could be Ethernet:='message' , meaning a message is to
be broadcast on the local ethernet.
On a transmission medium there can be many receivers.
For instance a mac-address identifies an ether network 9.5 Protocol design
card on the transmission medium (the 'ether'). In
our imaginary protocol, the assignment ethernet[mac- Communicating systems operate in parallel. The pro-
address]:=message value could therefore make sense.[25] gramming tools and techniques for dealing with parallel
By extending the assignment statement of an existing pro- processes are collectively called concurrent programming.
gramming language with the semantics described, a pro- Concurrent programming only deals with the synchro-
tocolling language could easily be imagined. nization of communication. The syntax and semantics of
the communication governed by a low-level protocol usu-
Operating systems provide reliable communication and
ally have modest complexity, so they can be coded with
synchronization facilities for communicating objects con-
relative ease. High-level protocols with relatively large
fined to the same system by means of system libraries. A
complexity could however merit the implementation of
programmer using a general purpose programming lan-
language interpreters. An example of the latter case is
guage (like C or ADA) can use the routines in the libraries
the HTML language.
to implement a protocol, instead of using a dedicated pro-
Concurrent programming has traditionally been a topic
tocolling language.
in operating systems theory texts.[28] Formal verifica-
tion seems indispensable, because concurrent programs
are notorious for the hidden and sophisticated bugs
9.4 Universal protocols they contain.[29] A mathematical approach to the study
of concurrency and communication is referred to as
Despite their numbers, networking protocols show little Communicating Sequential Processes (CSP).[30] Concur-
variety, because all networking protocols use the same rency can also be modelled using finite state machines
underlying principles and concepts, in the same way. like Mealy and Moore machines. Mealy and Moore ma-
So, the use of a general purpose programming language chines are in use as design tools in digital electronics sys-
would yield a large number of applications only differ- tems, which we encounter in the form of hardware used in
ing in the details.[27] A suitably defined (dedicated) pro- telecommunications or electronic devices in general.[31]
tocolling language would therefore have little syntax, per-
This kind of design can be a bit of a challenge to say
haps just enough to specify some parameters or optional
the least, so it is important to keep things simple. For
modes of operation, because its virtual machine would
the Internet protocols, in particular and in retrospect, this
have incorporated all possible principles and concepts
meant a basis for protocol design was needed to allow de-
making the virtual machine itself a universal protocol.
composition of protocols into much simpler, cooperating
The protocolling language would have some syntax and
protocols.
a lot of semantics describing this universal protocol and
would therefore in effect be a protocol, hardly differing
from this universal networking protocol. In this (net- 9.5.1 A basis for protocol design
working) context a protocol is a language.
The notion of a universal networking protocol provides Systems do not use a single protocol to handle a trans-
a rationale for standardization of networking protocols; mission. Instead they use a set of cooperating protocols,
assuming the existence of a universal networking proto- sometimes called a protocol family or protocol suite.[9] To
col, development of protocol standards using a consensus cooperate the protocols have to communicate with each
model (the agreement of a group of experts) might be a other, so some kind of conceptual framework is needed to
viable way to coordinate protocol design efforts. make this communication possible. Also note that soft-
Networking protocols operate in very heterogeneous en- ware is needed to implement both the 'xfer-mechanism'
vironments consisting of very different network technolo- and a protocol (no protocol, no communication).
gies and a (possibly) very rich set of applications, so a sin- In literature there are numerous references to the analo-
9.5. PROTOCOL DESIGN 75
9.5.2 Layering
TCP/IP - model
HTTP POP3
Application
UDP
Transport
TCP
Figure 3. Message flows using a protocol suite. Black loops show
Internet the actual messaging loops, red loops are the effective communi-
IP
cations between layers enabled by the lower layers.
Network interface
Ethernet protocol Protocol layering now forms the basis of protocol
design.[8] It allows the decomposition of single, complex
protocols into simpler, cooperating protocols, but it is
Figure 2. The TCP/IP model or Internet layering scheme and its also a functional decomposition, because each protocol
relation to some common protocols. belongs to a functional class, called a protocol layer.[34]
The protocol layers each solve a distinct class of commu-
The communications protocols in use on the Internet are nication problems. The Internet protocol suite consists
designed to function in very diverse and complex settings. of the following layers: application-, transport-, internet-
To ease design, communications protocols are structured and network interface-functions.[10] Together, the layers
using a layering scheme as a basis. Instead of using a sin- make up a layering scheme or model.
gle universal protocol to handle all transmission tasks, a
set of cooperating protocols fitting the layering scheme In computations, we have algorithms and data, and in
is used.[34] The layering scheme in use on the Internet is communications, we have protocols and messages, so the
called the TCP/IP model. The actual protocols are col- analog of a data flow diagram would be some kind of mes-
lectively called the Internet protocol suite. The group re- sage flow diagram.[22] To visualize protocol layering and
sponsible for this design is called the Internet Engineering protocol suites, a diagram of the message flows in and
Task Force (IETF). between two systems, A and B, is shown in figure 3.
The systems both make use of the same protocol suite.
Typically, a hardware delivery mechanism layer is used
to build a connectionless packet delivery system on top of The vertical flows (and protocols) are in system and the
horizontal message flows (and protocols) are between sys-
which a reliable transport layer is built, on top of which is
the application software. Layers below and above these tems. The message flows are governed by rules, and data
can be defined, and protocols are very often stacked to formats specified by protocols. The blue lines therefore
give tunnelling, for example the internet protocol can be mark the boundaries of the (horizontal) protocol layers.
tunnelled across an ATM network protocol to provide The vertical protocols are not layered because they don't
connectivity by layering the internet protocol on top of obey the protocol layering principle which states that a
the ATM protocol transport layer. layered protocol is designed so that layer n at the destina-
The number of layers of a layering scheme and the way tion receives exactly the same object sent by layer n at the
the layers are defined can have a drastic impact on the source. The horizontal protocols are layered protocols and
protocols involved. This is where the analogies come all belong to the protocol suite. Layered protocols allow
into play for the TCP/IP model, because the designers the protocol designer to concentrate on one layer at a time,
of TCP/IP employed the same techniques used to con- without worrying about how other layers perform.[33]
quer the complexity of programming language compilers The vertical protocols need not be the same protocols on
(design by analogy) in the implementation of its protocols both systems, but they have to satisfy some minimal as-
and its layering scheme.[35] sumptions to ensure the protocol layering principle holds
76 CHAPTER 9. COMMUNICATIONS PROTOCOL
chooses a path over which data will be sent.[50] ate. The bottom module directly interacts with the bot-
It is also possible to use TCP/IP protocols on tom module of system B, so the message is sent across.
connection oriented systems. Connection oriented On the receiving system B the reverse happens, so ulti-
systems build up virtual circuits (paths for exclusive mately (and assuming there were no transmission errors
use) between senders and receivers. Once built or protocol violations etc.) the message gets delivered in
up the IP datagrams are sent as if they were data its original form to the topmodule of system B.[54]
through the virtual circuits and forwarded (as data) On protocol errors, a receiving module discards the piece
to the IP protocol modules. This technique, called it has received and reports back the error condition to the
tunneling, can be used on X.25 networks and ATM original source of the piece on the same layer by handing
networks.[51] the error message down or in case of the bottom module
sending it across.[55]
• A reliable stream transport service using the unre- The division of the message or stream of data into pieces
liable connectionless packet delivery service is de- and the subsequent reassembly are handled in the layer
fined by the transmission control protocol (TCP). that introduced the division/reassembly. The reassembly
The services are layered as well and the application is done at the destination (i.e. not on any intermediate
programs residing in the layer above it, called the routers).[56]
application services, can make use of TCP.[52] Pro-
[57]
grams wishing to interact with the packet delivery TCP/IP software is organized in four layers.
system itself can do so using the user datagram pro-
tocol (UDP).[53] • Application layer. At the highest layer, the services
available across a TCP/IP internet are accessed by
application programs. The application chooses the
Software layering
style of transport to be used which can be a sequence
of individual messages or a continuous stream of
Having established the protocol layering and the proto-
bytes. The application program passes data to the
cols, the protocol designer can now resume with the soft-
transport layer for delivery.
ware design. The software has a layered organization and
its relationship with protocol layering is visualized in fig- • Transport layer. The transport layer provides com-
ure 5. munication from one application to another. The
transport layer may regulate flow of information and
provide reliable transport, ensuring that data arrives
without error and in sequence. To do so, the re-
A B ceiving side sends back acknowledgments and the
A B sending side retransmits lost pieces called packets.
The stream of data is divided into packets by the
module and each packet is passed along with a des-
tination address to the next layer for transmission.
The layer must accept data from many applications
concurrently and therefore also includes codes in the
packet header to identify the sending and receiving
application program.
• Network interface layer. The network interface layer TCP/IP model, in other words some of the protocols be-
is responsible for accepting IP datagrams and trans- have in ways not described by the model.[62] To improve
mitting them over a specific network. A network in- on the model, an offending protocol could, perhaps be
terface may consist of a device driver or a complex split up into two protocols, at the cost of one or two extra
subsystem that uses its own data link protocol. layers, but there is a hidden caveat, because the model is
also used to provide a conceptual view on the suite for
Program translation has been divided into four subprob- the intended users. There is a trade-off to be made here
lems: compiler, assembler, link editor, and loader. As a between preciseness [63]
for the designer and clarity for the
result, the translation software is layered as well, allowing intended user.
the software layers to be designed independently. Noting
that the ways to conquer the complexity of program trans-
lation could readily be applied to protocols because of the 9.5.3 Formal specification
analogy between programming languages and protocols,
the designers of the TCP/IP protocol suite were keen on Formal ways for describing the syntax of the communica-
imposing the same layering on the software framework. tions are Abstract Syntax Notation One (an ISO standard)
This can be seen in the TCP/IP layering by considering or Augmented Backus-Naur form (an IETF standard).
the translation of a pascal program (message) that is com- Finite state machine models[64][65] and communicating
piled (function of the application layer) into an assem- finite-state machines[66] are used to formally describe the
bler program that is assembled (function of the transport possible interactions of the protocol.
layer) to object code (pieces) that is linked (function of the
Internet layer) together with library object code (routing
table) by the link editor, producing relocatable machine
code (datagram) that is passed to the loader which fills in 9.6 Protocol development
the memory locations (ethernet addresses) to produce ex-
ecutable code (network frame) to be loaded (function of For communication to take place, protocols have to be
the network interface layer) into physical memory (trans- agreed upon. Recall that in digital computing systems,
mission medium). To show just how closely the analogy the rules can be expressed by algorithms and datastruc-
fits, the terms between parentheses in the previous sen- tures, raising the opportunity for hardware independence.
tence denote the relevant analogs and the terms written Expressing the algorithms in a portable programming lan-
cursively denote data representations. Program transla- guage, makes the protocol software operating system in-
tion forms a linear sequence, because each layer’s out- dependent. The source code could be considered a pro-
put is passed as input to the next layer. Furthermore, the tocol specification. This form of specification, however
translation process involves multiple data representations. is not suitable for the parties involved.
We see the same thing happening in protocol software For one thing, this would enforce a source on all parties
where multiple protocols define the data representations and for another, proprietary software producers would
of the data passed between the software modules.[35] not accept this. By describing the software interfaces of
The network interface layer uses physical addresses and the modules on paper and agreeing on the interfaces, im-
all the other layers only use IP addresses. The bound- plementers are free to do it their way. This is referred to
ary between network interface layer and Internet layer is as source independence. By specifying the algorithms on
called the high-level protocol address boundary.[58] The paper and detailing hardware dependencies in an unam-
modules below the application layer are generally con- biguous way, a paper draft is created, that when adhered
sidered part of the operating system. Passing data be- to and published, ensures interoperability between soft-
tween these modules is much less expensive than passing ware and hardware.
data between an application program and the transport Such a paper draft can be developed into a protocol stan-
layer. The boundary between application layer and trans- dard by getting the approval of a standards organization.
port layer is called the operating system boundary.[59] To get the approval the paper draft needs to enter and
successfully complete the standardization process. This
Strict layering activity is referred to as protocol development. The mem-
bers of the standards organization agree to adhere to the
Strictly adhering to a layered model, a practice known standard on a voluntary basis. Often the members are in
as strict layering, is not always the best approach to control of large market-shares relevant to the protocol and
networking.[60] Strict layering, can have a serious impact in many cases, standards are enforced by law or the gov-
on the performance of the implementation, so there is at ernment, because they are thought to serve an important
least a trade-off between simplicity and performance.[61] public interest, so getting approval can be very important
Another, perhaps more important point can be shown by for the protocol.
considering the fact that some of the protocols in the It should be noted though that in some cases protocol stan-
Internet Protocol Suite cannot be expressed using the dards are not sufficient to gain widespread acceptance i.e.
9.6. PROTOCOL DEVELOPMENT 79
sometimes the source code needs to be disclosed and en- tions also do research and development for standards of
forced by law or the government in the interest of the the future. In practice, the standards organizations men-
public. tioned, cooperate closely with each other.[67]
9.6.1 The need for protocol standards 9.6.3 The standardization process
The need for protocol standards can be shown by look- The standardization process starts off with ISO commis-
ing at what happened to the bi-sync protocol (BSC) in- sioning a sub-committee workgroup. The workgroup is-
vented by IBM. BSC is an early link-level protocol used sues working drafts and discussion documents to inter-
to connect two separate nodes. It was originally not in- ested parties (including other standards bodies) in order
tended to be used in a multinode network, but doing so re- to provoke discussion and comments. This will generate
vealed several deficiencies of the protocol. In the absence a lot of questions, much discussion and usually some dis-
of standardization, manufacturers and organizations felt agreement on what the standard should provide and if it
free to 'enhance' the protocol, creating incompatible ver- can satisfy all needs (usually not). All conflicting views
sions on their networks. In some cases, this was delib- should be taken into account, often by way of compro-
erately done to discourage users from using equipment mise, to progress to a draft proposal of the working group.
from other manufacturers. There are more than 50 vari- The draft proposal is discussed by the member coun-
ants of the original bi-sync protocol. One can assume, tries’ standard bodies and other organizations within each
that a standard would have prevented at least some of this country. Comments and suggestions are collated and na-
from happening.[6] tional views will be formulated, before the members of
In some cases, protocols gain market dominance with- ISO vote on the proposal. If rejected, the draft proposal
out going through a standardization process. Such pro- has to consider the objections and counter-proposals to
tocols are referred to as de facto standards. De facto create a new draft proposal for another vote. After a lot
standards are common in emerging markets, niche mar- of feedback, modification, and compromise the proposal
kets, or markets that are monopolized (or oligopolized). reaches the status of a draft international standard, and
They can hold a market in a very negative grip, especially ultimately an international standard.
when used to scare away competition. From a historical The process normally takes several years to complete.
perspective, standardization should be seen as a measure The original paper draft created by the designer will dif-
to counteract the ill-effects of de facto standards. Posi- fer substantially from the standard, and will contain some
tive exceptions exist; a 'de facto standard' operating sys- of the following 'features’:
tem like GNU/Linux does not have this negative grip on
its market, because the sources are published and main-
• Various optional modes of operation, for example
tained in an open way, thus inviting competition. Stan-
to allow for setup of different packet sizes at startup
dardization is therefore not the only solution for open sys-
time, because the parties could not reach consensus
tems interconnection.
on the optimum packet size.
• Parameters that are left undefined or allowed to take
9.6.2 Standards organizations on values of a defined set at the discretion of the
implementor. This often reflects conflicting views
Some of the standards organizations of relevance for of some of the members.
communications protocols are the International Orga-
nization for Standardization (ISO), the International • Parameters reserved for future use, reflecting that
Telecommunication Union (ITU), the Institute of Elec- the members agreed the facility should be provided,
trical and Electronics Engineers (IEEE), and the Internet but could not reach agreement on how this should be
Engineering Task Force (IETF). The IETF maintains the done in the available time.
protocols in use on the Internet. The IEEE controls many
• Various inconsistencies and ambiguities will in-
software and hardware protocols in the electronics in-
evitably be found when implementing the standard.
dustry for commercial and consumer devices. The ITU
is an umbrella organization of telecommunication engi-
neers designing the public switched telephone network International standards are reissued periodically to han-
(PSTN), as well as many radio communications systems. dle the [68] deficiencies and reflect changing views on the
For marine electronics the NMEA standards are used. subject.
The World Wide Web Consortium (W3C) produces pro-
tocols and standards for Web technologies.
9.6.4 Future of standardization (OSI)
International standards organizations are supposed to be
more impartial than local organizations with a national or A lesson learned from ARPANET (the predecessor of
commercial self-interest to consider. Standards organiza- the Internet) is that standardization of protocols is not
80 CHAPTER 9. COMMUNICATIONS PROTOCOL
enough, because protocols also need a framework to op- • The session layer may provide the following ser-
erate. It is therefore important to develop a general- vices to the presentation layer: establishment and re-
purpose, future-proof framework suitable for structured lease of session connections, normal and expedited
protocols (such as layered protocols) and their standard- data exchange, a quarantine service which allows the
ization. This would prevent protocol standards with over- sending presentation entity to instruct the receiving
lapping functionality and would allow clear definition of session entity not to release data to its presentation
the responsibilities of a protocol at the different levels entity without permission, interaction management
(layers).[69] This gave rise to the OSI Open Systems Inter- so presentation entities can control whose turn it is to
connection reference model (RM/OSI), which is used as a perform certain control functions, resynchronization
framework for the design of standard protocols and ser- of a session connection, reporting of unrecoverable
vices conforming to the various layer specifications.[70] exceptions to the presentation entity.[74]
In the OSI model, communicating systems are assumed
• The transport layer provides reliable and transpar-
to be connected by an underlying physical medium pro-
ent data transfer in a cost-effective way as required
viding a basic (and unspecified) transmission mechanism.
by the selected quality of service. It may support the
The layers above it are numbered (from one to seven); the
multiplexing of several transport connections on to
nth layer is referred to as (n)-layer. Each layer provides
one network connection or split one transport con-
service to the layer above it (or at the top to the applica-
nection into several network connections.[75]
tion process) using the services of the layer immediately
below it. The layers communicate with each other by
• The network layer does the setup, maintenance and
means of an interface, called a service access point. Cor-
release of network paths between transport peer en-
responding layers at each system are called peer entities.
tities. When relays are needed, routing and relay
To communicate, two peer entities at a given layer use an
functions are provided by this layer. The quality
(n)-protocol, which is implemented by using services of
of service is negotiated between network and trans-
the (n-1)-layer. When systems are not directly connected,
port entities at the time the connection is set up.
intermediate peer entities (called relays) are used. An ad-
This layer is also responsible for network congestion
dress uniquely identifies a service access point. The ad-
control.[76]
dress naming domains need not be restricted to one layer,
so it is possible to use just one naming domain for all • The data link layer does the setup, maintenance and
layers.[71] For each layer there are two types of standards: release of data link connections. Errors occurring in
protocol standards defining how peer entities at a given the physical layer are detected and may be corrected.
layer communicate, and service standards defining how a Errors are reported to the network layer. The ex-
given layer communicates with the layer above it. change of data link units (including flow control) is
In the original version of RM/OSI, the layers and their defined by this layer.[77]
functionality are (from highest to lowest layer):
• The physical layer describes details like the electri-
cal characteristics of the physical connection, the
• The application layer may provide the following transmission techniques used, and the setup, main-
services to the application processes: identification tenance and clearing of physical connections.[78]
of the intended communication partners, establish-
ment of the necessary authority to communicate,
determination of availability and authentication of In contrast to the TCP/IP layering scheme, which as-
the partners, agreement on privacy mechanisms for sumes a connectionless network, RM/OSI assumed a
the communication, agreement on responsibility for connection-oriented network. Connection-oriented net-
error recovery and procedures for ensuring data in- works are more suitable for wide area networks and con-
tegrity, synchronization between cooperating appli- nectionless networks are more suitable for local area
cation processes, identification of any constraints on networks. Using connections to communicate implies
syntax (e.g. character sets and data structures), de- some form of session and (virtual) circuits, hence the
termination of cost and acceptable quality of ser- (in the TCP/IP model lacking) session layer. The con-
vice, selection of the dialogue discipline, including stituent members of ISO were mostly concerned with
required logon and logoff procedures.[72] wide area networks, so development of RM/OSI concen-
trated on connection oriented networks and connection-
• The presentation layer may provide the following less networks were only mentioned in an addendum to
services to the application layer: a request for the RM/OSI.[79] At the time, the IETF had to cope with this
establishment of a session, data transfer, negotiation and the fact that the Internet needed protocols which sim-
of the syntax to be used between the application lay- ply were not there. As a result, the IETF developed its
ers, any necessary syntax transformations, format- own standardization process based on “rough consensus
ting and special purpose transformations (e.g. data and running code”.[80]
compression and data encryption).[73] The standardization process is described by RFC2026.
9.9. NOTES 81
Nowadays, the IETF has become a standards organiza- • File Transfer Protocol (FTP)
tion for the protocols in use on the Internet. RM/OSI has
extended its model to include connectionless services and • Internet Message Access Protocol (IMAP)
because of this, both TCP and IP could be developed into
international standards. Other instances of high level interaction protocols are:
9.8 Examples of protocols [9] Comer 2000, Sect. 11.2 - The Need For Multiple Proto-
cols, p. 177, states the same.
Main article: Lists of network protocols [10] Comer 2000, Sect. 11.3 - The Conceptual Layers Of Pro-
tocol Software, p. 178, “Each layer takes responsibility for
handling one part of the problem.”
The Internet Protocol is used in concert with other proto-
cols within the Internet Protocol Suite. Prominent mem- [11] Comer 2000, Sect. 11.11 - The Basic Idea Behind Multi-
bers of which include: plexing And Demultiplexing, p. 192, states the same.
[15] Marsden 1986, Section 14.3 - Layering concepts and gen- [34] Comer 2000, Sect. 11.2 - The Need For Multiple Proto-
eral definitions, p. 187, explains address mapping. cols, p. 177, introduces the decomposition in layers.
[16] Marsden 1986, Section 3.2 - Detection and transmission [35] Comer 2000, Sect. 11.2 - The need for multiple proto-
errors, p. 27, explains the advantages of backward error cols, p. 178, explains similarities protocol software and
correction. compiler, assembler, linker, loader.
[17] Marsden 1986, Section 3.3 - Acknowledgement, p. 28- [36] Comer 2000, Glossary of Internetworking terms, p.686:
33, explains the advantages of positive only acknowledge- term encapsulation.
ment and mentions datagram protocols as exceptions.
[37] Comer 2000, Sect. 11.5.1 - The TCP/IP 5-Layer Ref-
[18] Marsden 1986, Section 3.4 - Loss of information - time- erence Model, p. 184, Describes the transformations of
outs and retries, p. 33-34. messages or streams that can be observed in the protocol
layers.
[19] Marsden 1986, Section 3.5 - Direction of information
flow, p. 34-35, explains master/slave and the negotiations [38] Comer 2000, Sect. 2.4.10 - Ethernet Frame Format, p.
to gain control. 30, Ethernet frames are used as an example for adminis-
trative data for the protocol itself.
[20] Marsden 1986, Section 3.6 - Sequence control, p. 35-36,
explains how packets get lost and how sequencing solves [39] Comer 2000, Sect. 11.4 - Functionality Of The Layers, p.
this. 181, states the same about the software organization.
[21] Marsden 1986, Section 3.7 - Flow control, p. 36-38. [40] Comer 2000, Sect. 3.3 - Network-Level Interconnection,
p. 55, explains universal interconnection and internet-
[22] Comer 2000, Sect. 1.3 - Internet Services, p. 3, “Proto- working.
cols are to communication what algorithms are to compu-
tation” [41] Comer 2000, Sect. 4.4 - Addresses Specify Network Con-
nections, p. 86, explains this.
[23] Tennent 1981, Section 2.3.1 - Definitions, p.15, defines
scope and binding. [42] Comer 2000, Sect. 4.3 - The Original Classful Addressing
Scheme, p. 64, explains the address scheme, netid and
[24] Tennent 1981, Section 2.3.2 Environments and stores,
routing.
p.16, the semantics of blocks and definitions are de-
scribed using environments and stores. [43] Comer 2000, Sect. 5.13 - Summary, p. 86, explains ARP.
[25] Hoare (1985), Ch. 4 - Communication, p. 133, In the [44] Comer 2000, Sect. 2.11 - Other Technologies Over
introduction: a communication is an event described by a Which TCP/IP Has Been Used, p. 46, states the same.
pair c.v where c is the name of the communication channel
and v is the value of the message. [45] Comer 2000, Sect. 8.3.2 - Indirect Delivery, p. 118, states
the same.
[26] Tanenbaum, Andrew S. (2003). Computer networks.
Prentice Hall Professional. p. 235. ISBN 978-0-13- [46] Comer 2000, Sect. 8.5 - Next-Hop Routing, p. 120, gives
066102-9. Retrieved 22 June 2011. details on the routing table.
[27] Comer 2000, Foreword To The First Edition By The Late [47] Comer 2000, Sect. 8.6 - Default Routes, p. 121, explains
Jon Postel, xxv, “The principles of architecture, layering, default routing and its use.
multiplexing, encapsulation, addressing and address map-
ping, routing, and naming are quite similar in any protocol [48] Comer 2000, Sect. 3.8 - All Networks Are Equal, p. 59,
suite, though of course, different in detail.”. states the same.
[28] Ben-Ari 1982, in his preface, p. xiii. [49] Comer 2000, Sect. 7.5 - Connectionless Delivery System,
p. 97, explains the delivery system.
[29] Ben-Ari 1982, in his preface, p. xiv.
[50] Comer 2000, Sect. 7.6 - Purposes Of The Internet Proto-
[30] Hoare 1985, Chapter 4 - Communication, p. 133, deals col, p. 97, states the same.
with communication.
[51] Comer 2000, Sect. 2.11.1 - X25NET And Tunnels, p.
[31] S. Srinivasan, NPTEL courses:::: Electronics & Com- 46-47, explains tunneling X.25 and mentions ATM.
munication Engineering :: Digital Circuits and Sys-
tems, available online: http://nptel.iitm.ac.in/video.php? [52] Comer 2000, Sect. 13.1 - Introduction, p. 209, introduces
courseId=1005&p=3 TCP.
[32] Comer 2000, Sect. 11.2 - The Need For Multiple Pro- [53] Comer 2000, Sect. 12.10 - Summary, p. 206, explains
tocols, p. 177, states more or less the same, using other UDP.
analogies.
[54] Comer 2000, Sect. 11.3 - The Conceptual Layers Of Pro-
[33] Comer 2000, Sect. 11.7 - The Protocol Layering Princi- tocol Software, p. 179, the first two paragraphs describe
ple, p. 187, explains layered protocols. the sending of a message through successive layers.
9.10. REFERENCES 83
[55] Comer 2000, Sect. 9.3 - Error Reporting vs. Error Cor- [76] Marsden 1986, Section 14.8 - The network layer, p. 192,
rection, p. 131, describes the ICMP protocol that is used explains this.
to handle datagram errors.
[77] Marsden 1986, Section 14.9 - The data link layer, p. 194,
[56] Comer 2000, Sect. 7.7.5 - Reassembly Of Fragments, p. explains this.
104, describes reassembly of datagrams.
[78] Marsden 1986, Section 14.10 - The physical layer, p. 195,
[57] Comer 2000, Sect. 11.5.1 - The TCP/IP 5-Layer Refer- explains this.
ence Model, p. 184, explains functionality of the layers.
[79] Marsden 1986, Section 14.11 - Connectionless mode and
[58] Comer 2000, Sect. 11.9.1 - High-Level Protocol Bound- RM/OSI, p. 195, mentions this.
ary, p. 191, describes the boundary.
[80] Comer 2000, Section 1.9 - Internet Protocols And Stan-
[59] Comer 2000, Sect. 11.9.1 - Operating System Boundary, dardization, p. 12, explains why the IETF did not use ex-
p. 192, describes the operating system boundary. isting protocols.
[60] IETF 1989, Sect 1.3.1 - Organization, p. 15, 2nd para-
[81] Comer 2000, Sect. 11.5.1 - The TCP/IP 5-Layer Refer-
graph: many design choices involve creative “breaking”
ence Model, p. 183, states the same.
of strict layering.
Communications system
85
86 CHAPTER 10. COMMUNICATIONS SYSTEM
Defense Communications System (DCS). [7] John Stone Stone, U.S. Patent 577,214
A tactical communications system is a communications [10] John Stone Stone, U.S. Patent 714,756
system that (a) is used within, or in direct support of
[11] John Stone Stone, U.S. Patent 716,955
tactical forces (b) is designed to meet the requirements
of changing tactical situations and varying environmental
conditions, (c) provides securable communications, such
as voice, data, and video, among mobile users to facilitate 10.4 References
command and control within, and in support of, tactical
forces, and (d) usually requires extremely short installa- • Hansell, Clarence W., U.S. Patent 2,389,432, "Com-
tion times, usually on the order of hours, in order to meet munication system by pulses through the Earth".
the requirements of frequent relocation.
• This article incorporates public domain material
An Emergency communication system is any system (typ- from the General Services Administration document
ically computer based) that is organized for the pri- “Federal Standard 1037C” (in support of MIL-STD-
mary purpose of supporting the two way communica- 188).
tion of emergency messages between both individuals and
groups of individuals. These systems are commonly de-
signed to integrate the cross-communication of messages
between are variety of communication technologies.
An Automatic call distributor (ACD) is a communication
system that automatically queues, assigns and connects
callers to handlers. This is used often in customer ser-
vice (such as for product or service complaints), ordering
by telephone (such as in a ticket office), or coordination
services (such as in air traffic control).
A Voice Communication Control System (VCCS) is es-
sentially an ACD with characteristics that make it more
adapted to use in critical situations (no waiting for dial-
tone, or lengthy recorded announcements, radio and tele-
phone lines equally easily connected to, individual lines
immediately accessible etc..)
10.3 Notes
[1] Schwartz, M., Bennett, W. R., & Stein, S. (1996). Com-
munication systems and techniques. New York: IEEE
Press.
Compiler
This article is about the computing term. For the anime, code generation, and code optimization. Program faults
see Compiler (anime). caused by incorrect compiler behavior can be very diffi-
“Compile” and “compiling” redirect here. For the cult to track down and work around; therefore, compiler
software company, see Compile (publisher). For other implementors invest significant effort to ensure compiler
uses, see Compilation. correctness.
87
88 CHAPTER 11. COMPILER
first autocode and its compiler were developed by Alick spite of its simplicity, the PL/0 compiler introduced sev-
Glennie in 1952 for the Mark 1 computer at the Univer- eral influential concepts to the field:
sity of Manchester and is considered by some to be the
first compiled programming language.[2] The FORTRAN 1. Program development by stepwise refinement (also
team led by John Backus at IBM is generally credited as the title of a 1971 paper by Wirth)[8]
having introduced the first complete compiler in 1957.
COBOL was an early language to be compiled on multi- 2. The use of a recursive descent parser
ple architectures, in 1960.[3]
3. The use of Extended Backus–Naur Form (EBNF) to
In many application domains the idea of using a higher specify the syntax of a language
level language quickly caught on. Because of the expand-
ing functionality supported by newer programming lan- 4. A code generator producing portable P-code
guages and the increasing complexity of computer archi-
5. The use of tombstone diagrams in the formal de-
tectures, compilers have become more complex.
scription of the bootstrapping problem.
Early compilers were written in assembly language. The
first self-hosting compiler – capable of compiling its own
source code in a high-level language – was created in 11.2 Compiler output
1962 for Lisp by Tim Hart and Mike Levin at MIT.[4]
Since the 1970s it has become common practice to im-
One classification of compilers is by the platform on
plement a compiler in the language it compiles, although
which their generated code executes. This is known as
both Pascal and C have been popular choices for imple-
the target platform.
mentation language. Building a self-hosting compiler is a
bootstrapping problem—the first such compiler for a lan- A native or hosted compiler is one which output is in-
guage must be compiled either by hand or by a compiler tended to directly run on the same type of computer and
written in a different language, or (as in Hart and Levin’s operating system that the compiler itself runs on. The
Lisp compiler) compiled by running the compiler in an output of a cross compiler is designed to run on a different
interpreter. platform. Cross compilers are often used when develop-
ing software for embedded systems that are not intended
to support a software development environment.
11.1.1 Compilation The output of a compiler that produces code for a virtual
machine (VM) may or may not be executed on the same
Compilers enabled the development of programs that platform as the compiler that produced it. For this reason
are machine-independent. Before the development of such compilers are not usually classified as native or cross
FORTRAN, the first high-level language, in the 1950s,[5] compilers.
machine-dependent assembly language was widely used.
While assembly language produces more abstraction than The lower level language that is the target of a compiler
machine code on the same architecture, just as with ma- may itself be a high-level programming language. C, of-
chine code, it has to be modified or rewritten if the pro- ten viewed as some sort of portable assembler, can also be
gram is to be executed on different computer hardware the target language of a compiler. E.g.: Cfront, the orig-
architecture. inal compiler for C++ used C as target language. The
C created by such a compiler is usually not intended to
With the advent of high-level programming languages be read and maintained by humans. So indent style and
that followed FORTRAN, such as COBOL, C, and pretty C intermediate code are irrelevant. Some features
BASIC, programmers could write machine-independent of C turn it into a good target language. E.g.: C code with
source programs. A compiler translates the high-level #line directives can be generated to support debugging of
source programs into target programs in machine lan- the original source.
guages for the specific hardware. Once the target pro-
gram is generated, the user can execute the program.
11.2.1 Compiled versus interpreted lan-
guages
11.1.2 Compilers in education
Higher-level programming languages usually appear with
Compiler construction and compiler optimization are a type of translation in mind: either designed as compiled
taught at universities and schools as part of a computer language or interpreted language. However, in practice
science curriculum.[6] Such courses are usually supple- there is rarely anything about a language that requires it
mented with the implementation of a compiler for an to be exclusively compiled or exclusively interpreted, al-
educational programming language. A well-documented though it is possible to design languages that rely on re-
example is Niklaus Wirth's PL/0 compiler, which Wirth interpretation at run time. The categorization usually re-
used to teach compiler construction in the 1970s.[7] In flects the most popular or widespread implementations of
11.3. COMPILER CONSTRUCTION 89
a language — for instance, BASIC is sometimes called an bytecode is then compiled using a JIT com-
interpreted language, and C a compiled one, despite the piler to native machine code just when the ex-
existence of BASIC compilers and C interpreters. ecution of the program is required.[9]
Interpretation does not replace compilation completely.
It only hides it from the user and makes it gradual. Even • hardware compilers (also known as syntheses tools)
though an interpreter can itself be interpreted, a directly are compilers whose output is a description of the
executed program is needed somewhere at the bottom of hardware configuration instead of a sequence of in-
the stack (see machine language). Modern trends toward structions.
just-in-time compilation and bytecode interpretation at
times blur the traditional categorizations of compilers and • The output of these compilers target computer
interpreters. hardware at a very low level, for example
a field-programmable gate array (FPGA) or
Some language specifications spell out that implementa- structured application-specific integrated cir-
tions must include a compilation facility; for example, cuit (ASIC).[10] Such compilers are said to be
Common Lisp. However, there is nothing inherent in the hardware compilers, because the source code
definition of Common Lisp that stops it from being inter- they compile effectively controls the final con-
preted. Other languages have features that are very easy figuration of the hardware and how it operates.
to implement in an interpreter, but make writing a com- The output of the compilation is only an inter-
piler much harder; for example, APL, SNOBOL4, and connection of transistors or lookup tables.
many scripting languages allow programs to construct ar-
bitrary source code at runtime with regular string opera- • An example of hardware compiler is
tions, and then execute that code by passing it to a spe- XST,[11][12] the Xilinx Synthesis Tool used
cial evaluation function. To implement these features in for configuring FPGAs. Similar tools are
a compiled language, programs must usually be shipped available from Altera,[13] Synplicity, Synopsys
with a runtime library that includes a version of the com- and other hardware vendors.
piler itself.
11.3.1 One-pass versus multi-pass compil- checking by collecting type information. Generates
ers errors and warnings, if any, highlighting them on the
source code. Aspects of the front end include lex-
Classifying compilers by number of passes has its back- ical analysis, syntax analysis, and semantic analy-
ground in the hardware resource limitations of comput- sis. Eventually generates an intermediate represen-
ers. Compiling involves performing lots of work and tation or IR of the source code for processing by the
early computers did not have enough memory to contain middle-end. This IR is usually a lower level of repre-
one program that did all of this work. So compilers were sentation of the program with respect to the source
split up into smaller programs which each made a pass code.
over the source (or some representation of it) performing
some of the required analysis and translations. • The middle end performs optimizations on a form
other than the source code or machine code. This
The ability to compile in a single pass has classically been source code/machine code independence is intended
seen as a benefit because it simplifies the job of writing a to enable generic optimizations to be shared be-
compiler and one-pass compilers generally perform com- tween versions of the compiler supporting differ-
pilations faster than multi-pass compilers. Thus, partly ent languages and target processors. Examples of
driven by the resource limitations of early systems, many middle end optimizations are removal of useless
early languages were specifically designed so that they or unreachable code, discovery and propagation of
could be compiled in a single pass (e.g., Pascal). constant values, relocation of computation to a less
In some cases the design of a language feature may re- frequently executed place (e.g., out of a loop), or
quire a compiler to perform more than one pass over the specialization of computation based on the context.
source. For instance, consider a declaration appearing on Eventually it may generate another IR for to be used
line 20 of the source which affects the translation of a in the back end.
statement appearing on line 10. In this case, the first pass
needs to gather information about declarations appearing • The back end takes the output from the middle end.
after statements that they affect, with the actual transla- It may perform more analysis, transformations and
tion happening during a subsequent pass. optimizations that are for a particular computer.
Generates the target-dependent assembly code, per-
The disadvantage of compiling in a single pass is that forming register allocation in process. Performs op-
it is not possible to perform many of the sophisticated timizations of the target code utilization of the hard-
optimizations needed to generate high quality code. It ware, like figuring out how to keep parallel execution
can be difficult to count exactly how many passes an op- units busy by filling delay slots. Although most
timizing compiler makes. For instance, different phases algorithms for optimization are NP-hard, heuristic
of optimization may analyse one expression many times techniques are well-developed and currently imple-
but only analyse another expression once. mented in production-quality compilers.[14] Typi-
Splitting a compiler up into small programs is a technique cally the output of a back end is machine code spe-
used by researchers interested in producing provably cor- cialized for a particular processor and operating sys-
rect compilers. Proving the correctness of a set of small tem.
programs often requires less effort than proving the cor-
rectness of a larger, single, equivalent program. This front/middle/back-end approach makes it possible
to combine front ends for different languages with back
ends for different CPUs. Practical examples of this ap-
11.3.2 Three phases compiler structure proach are the GNU Compiler Collection, LLVM,[15] and
the Amsterdam Compiler Kit, which have multiple front-
Regardless of the exact number of stages which a com-
ends, shared analysis and multiple back-ends.
piler is built of, it is common practice to classify them
into three phases. These phases are named after the
Production Quality Compiler-Compiler Project phases
11.3.3 Front end
mentioned before.
The compiler frontend analyzes the source code to build
an internal representation of the program, called the
intermediate representation or IR. It also manages the
symbol table, a data structure mapping each symbol in
Compiler design
the source code to associated information such as loca-
tion, type and scope.
While the frontend can be a single monolithic function or
• The front end verifies syntax and semantics accord- program, as in a scannerless parser, it is more commonly
ing to a specific source language. Performs type implemented and analyzed as several phases, which may
11.3. COMPILER CONSTRUCTION 91
from the input; data-flow analysis is used to build according to its language specification.[16] Techniques in-
use-define chains, together with dependence analy- clude developing the compiler using formal methods and
sis, alias analysis, pointer analysis, escape analysis, using rigorous testing (often called compiler validation)
etc. Accurate analysis is the basis for any compiler on an existing compiler.
optimization. The call graph and control flow graph
are usually also built during the analysis phase.
2. Optimization: the intermediate language represen- 11.4 Conferences and organiza-
tation is transformed into functionally equivalent but tions
faster (or smaller) forms. Popular optimizations are
inline expansion, dead code elimination, constant
propagation, loop transformation, register allocation A number of conferences in the field of programming lan-
and even automatic parallelization. guages present advances in compiler construction as one
of their main topics.
3. Code generation: the transformed intermediate lan-
ACM SIGPLAN supports a number of conferences, in-
guage is translated into the output language, usually
cluding:
the native machine language of the system. This in-
volves resource and storage decisions, such as de-
ciding which variables to fit into registers and mem- • Programming Language Design and Implementa-
ory and the selection and scheduling of appropriate tion (PLDI)
machine instructions along with their associated ad-
dressing modes (see also Sethi-Ullman algorithm). • Principles of Programming Languages (POPL)
Debug data may also need to be generated to facili-
• Object-Oriented Programming, Systems, Lan-
tate debugging.
guages, and Applications (OOPSLA)
Compiler analysis is the prerequisite for any compiler op- • International Conference on Functional Program-
timization, and they tightly work together. For example, ming (ICFP)
dependence analysis is crucial for loop transformation.
In addition, the scope of compiler analysis and optimiza- The European Joint Conferences on Theory and Practice
tions vary greatly, from as small as a basic block to the of Software (ETAPS) sponsors the International Confer-
procedure/function level, or even over the whole program ence on Compiler Construction, with papers from both
(interprocedural optimization). Obviously, a compiler the academic and industrial sectors.[17]
can potentially do a better job using a broader view. But
that broad view is not free: large scope analysis and op- Asian Symposium on Programming Languages and Sys-
timizations are very costly in terms of compilation time tems (APLAS) is organized by the Asian Association for
and memory space; this is especially true for interproce- Foundation of Software (AAFS).
dural analysis and optimizations.
Interprocedural analysis and optimizations are common
in modern commercial compilers from HP, IBM, SGI, 11.5 Related techniques
Intel, Microsoft, and Sun Microsystems. The open source
GCC was criticized for a long time for lacking powerful Main article: Translator (computing)
interprocedural optimizations, but it is changing in this
respect. Another open source compiler with full analy- Assembly language is a type of low-level language and
sis and optimization infrastructure is Open64, which is a program that compiles it is more commonly known
used by many organizations for research and commercial as an assembler, with the inverse program known as a
purposes. disassembler.
Due to the extra time and space needed for compiler anal- A program that translates from a low level language to a
ysis and optimizations, some compilers skip them by de- higher level one is a decompiler.
fault. Users have to use compilation options to explicitly
tell the compiler which optimizations should be enabled. A program that translates between high-level languages
is usually called a language translator, source to source
translator, language converter, or language rewriter. The
11.3.5 Compiler correctness last term is usually applied to translations that do not in-
volve a change of language.
Main article: Compiler correctness A program that translates into an object code format that
is not supported on the compilation machine is called a
Compiler correctness is the branch of software engineer- cross compiler and is commonly used to prepare code for
ing that deals with trying to show that a compiler behaves embedded applications.
11.8. REFERENCES 93
11.6 See also [12] Xilinx® Inc. “XST Synthesis Overview”. Xilinx.com.
Xilinx® Inc. Retrieved 20 June 2016.
• Abstract interpretation [13] Altera Corporation. “Spectra-Q™ Engine”. altera.com.
Altera Corporation. Retrieved 20 June 2016.
• Binary recompiler
[14] LLVM community. “The LLVM Target-Independent
• Bottom-up parsing Code Generator”. LLVM Documentation. Retrieved 17
June 2016.
• Compile and go loader
[15] Lattner, Chris. “LLVM”. In Brown, Amy; Wilson, Greg.
• Compile farm The Architecture of Open Source Applications (1 ed.).
• List of compilers [16] Chlipala, Adam. “Syntactic Proofs of Compositional
Compiler Correctness” (PDF). Harvard University Cam-
• List of important publications in computer science bridge, Massachusetts, USA.
§ Compilers
[17] ETAPS - European Joint Conferences on Theory and
• Metacompilation Practice of Software. Cf. “CC” (Compiler Construction)
subsection.
11.7 Notes
11.8 References
[1] “Definition of:compiler". PC Magazine.
1. Compiler textbook references A collection of refer-
[2] Knuth, D. E., & Pardo, L. T. (1980). The early develop- ences to mainstream Compiler Construction Text-
ment of programming languages. A history of computing
books
in the twentieth century, 197-273.
[8] “The ACM Digital Library”. 6. Appel, Andrew Wilson (1998). Modern Compiler
Implementation in ML. Cambridge University Press.
[9] Aycock, John (June 2003). “A Brief History of Just-in- ISBN 0-521-58274-1.
time”. ACM Comput. Surv. New York, NY, USA. 35 (2):
93–113. doi:10.1145/857076.857077. 7. Bornat, Richard (1979). Understanding and Writ-
ing Compilers: A Do It Yourself Guide (PDF).
[10] Swartz, Jordan S.; Betz, Vaugh; Rose, Jonathan. “A Fast
Routability-Driven Router for FPGAs” (PDF). Depart- Macmillan Publishing. ISBN 0-333-21732-2.
ment of Electrical and Computer Engineering, University
8. Cooper, Keith D.; Torczon, Linda (2004). Engi-
of Toronto.
neering a Compiler. Morgan Kaufmann. ISBN 1-
[11] Lysaght, Patrick; Blodget, Brandon; Mason, Jeff; Young, 55860-699-8.
Jay; Bridgford, Brendan (2006). “Invited paper: En-
hanced architectures, design methodologies and cad tools 9. Leverett, Bruce W.; Cattell, R. G. G.; Newcomer,
for dynamic reconfiguration of xilinx fpgas”. 2006 In- Joseph M.; Hobbs, S.O.; Reiner, A.H.; Schatz, B.R.;
ternational Conference on Field Programmable Logic and Wulf, W.A. (August 1980). “An Overview of the
Applications. IEEE. Production – Quality Compiler – Compiler Project”.
94 CHAPTER 11. COMPILER
Computer hardware
95
96 CHAPTER 12. COMPUTER HARDWARE
12.3 Different systems computers are usually small enough to fit under a desk;
however, in recent years more compact designs have be-
There are a number of different types of computer system come more commonplace, such as the all-in-one style de-
in use today. signs from Apple, namely the iMac. A case can be either
big or small, but the form factor of motherboard for which
it is designed matters more. Laptops are computers that
12.3.1 Personal computer usually come in a clamshell form factor; however, in more
recent years, deviations from this form factor, such as
2
laptops that have a detachable screen that become tablet
8 computers in their own right, have started to emerge.
3
4
5 10 Power supply
9
12 Main article: Power supply unit (computer)
6 11 16
15
7
14 A power supply unit (PSU) converts alternating current
1
13 (AC) electric power to low-voltage DC power for the in-
ternal components of the computer. Laptops are capable
of running from a built-in battery, normally for a period
Basic hardware components of a modern personal computer, of hours.[6]
including a monitor, a motherboard, a CPU, a RAM, two
expansion cards, a power supply, an optical disc drive, a hard
disk drive, a keyboard and a mouse Mainboard
• Read-Only Memory (ROM), which stores the usefulness depends on being readable by other systems;
BIOS that runs when the computer is powered on the majority of machines have an optical disk drive, and
or otherwise begins execution, a process known as virtually all have a USB port.
Bootstrapping, or "booting" or “booting up.” The
BIOS (Basic Input Output System) includes boot
firmware and power management firmware. Newer Input and output peripherals
motherboards use Unified Extensible Firmware In-
terface (UEFI) instead of BIOS. Main article: Peripheral
Expansion cards
Output device Output devices display information in
Main article: Expansion card a human readable form. Such devices could include
printers, speakers, monitors or a Braille embosser.
An expansion card in computing is a printed circuit board
that can be inserted into an expansion slot of a computer 12.3.2 Mainframe computer
motherboard or backplane to add functionality to a com-
puter system via the expansion bus. Expansions cards can
be used to obtain or expand on features not offered by the
motherboard.
Storage devices
12.6 References
12.3.4 Supercomputer
[1] “Parts of computer”. Microsoft. Retrieved 5 December
2013.
Main article: Supercomputer
[2] Smither, Roger. “Use of computers in audiovisual
A supercomputer is superficially similar to a mainframe, archives”. UNESCO. Retrieved 5 December 2013.
but is instead intended for extremely demanding compu- [3] von Neumann, John (1945). “First Draft of a Report on
tational tasks. As of June 2016, the fastest supercom- the EDVAC” (PDF).
puter in the world is the Sunway TaihuLight, in Jiangsu,
China.[7] [4] Markgraf, Joey D. (2007). “The Von Neumann bottle-
neck”. Archived from the original on 2011-06-09. Re-
The term supercomputer does not refer to a specific tech- trieved 24 August 2011.
nology. Rather it indicates the fastest computers avail-
able at any given time. In mid 2011, the fastest super- [5] “US B2B Channel sales reach nearly $62 Billion in 2013,
computers boasted speeds exceeding one petaflop, or 1 According to The NPD Group”. NPD Group. February
4, 2014.
quadrillion (10^15 or 1,000 trillion) floating point opera-
tions per second. Super computers are fast but extremely [6] “How long should a laptop battery last?". Computer Hope.
costly so they are generally used by large organizations to Retrieved 9 December 2013.
execute computationally demanding tasks involving large
data sets. Super computers typically run military and sci- [7] Alba, Davey. “China’s Tianhe-2 Caps Top 10 Supercom-
puters”. IEEE. Retrieved 9 December 2013.
entific applications. Although they cost millions of dol-
lars, they are also being used for commercial applica-
tions where huge amounts of data must be analyzed. For
example, large banks employ supercomputers to calcu- 12.7 External links
late the risks and returns of various investment strategies,
and healthcare organizations use them to analyze giant • Media related to Computer hardware at Wikimedia
databases of patient data to determine optimal treatments Commons
for various diseases and problems incurring to the coun-
try. • Learning materials related to Computer hardware at
Wikiversity
Concurrent computing
For a more theoretical discussion, see Concurrency be useful for tackling complexity, regardless of whether
(computer science). the parts can be executed in parallel.[4]:1
For example, concurrent processes can be executed on
Concurrent computing is a form of computing in which one core by interleaving the execution steps of each pro-
several computations are executed during overlapping cess via time-sharing slices: only one process runs at a
time periods —concurrently— instead of sequentially time, and if it does not complete during its time slice, it is
(one completing before the next starts). This is a prop- paused, another process begins or resumes, and then later
erty of a system —this may be an individual program, the original process is resumed. In this way, multiple pro-
a computer, or a network— and there is a separate exe- cesses are part-way through execution at a single instant,
cution point or “thread of control” for each computation but only one process is being executed at that instant.
(“process”). A concurrent system is one where a compu- Concurrent computations may be executed in
tation can advance without waiting for all other computa-
parallel,[2][5] for example by assigning each process
tions to complete; where more than one computation can to a separate processor or processor core, or distributing
advance at the same time.[1] a computation across a network, but in general, the lan-
As a programming paradigm, concurrent computing is a guages, tools and techniques for parallel programming
form of modular programming, namely factoring an over- may not be suitable for concurrent programming, and
all computation into subcomputations that may be exe- vice versa.
cuted concurrently. Pioneers in the field of concurrent
The exact timing of when tasks in a concurrent system
computing include Edsger Dijkstra, Per Brinch Hansen, are executed depend on the scheduling, and tasks need
and C.A.R. Hoare.
not always be executed concurrently. For example, given
two tasks, T1 and T2:
13.1 Introduction
• T1 may be executed and finished before T2 or vice
versa (serial and sequential);
See also: Parallel computing
Concurrent computing is related to but distinct from • T1 and T2 may be executed alternately (serial and
parallel computing, though these concepts are frequently concurrent);
confused,[2][3] and both can be described as “multiple
processes executing during the same period of time".
In parallel computing, execution occurs at the same • T1 and T2 may be executed simultaneously at the
physical instant, for example on separate processors same instant of time (parallel and concurrent).
of a multi-processor machine, with the goal of speed-
ing up computations—parallel computing is impossi-
ble on a (one-core) single processor, as only one com- The word “sequential” is used as an antonym for both
putation can occur at any instant (during any single “concurrent” and “parallel"; when these are explicitly dis-
clock cycle).[lower-alpha 1] By contrast, concurrent comput- tinguished, concurrent/sequential and parallel/serial are
ing consists of process lifetimes overlapping, but execu- used as opposing pairs.[6] A schedule in which tasks ex-
tion need not happen at the same instant. The goal here ecute one at a time (serially, no parallelism), without in-
is to model processes in the outside world that happen terleaving (sequentially, no concurrency: no task begins
concurrently, such as multiple clients accessing a server until the prior task ends) is called a serial schedule. A
at the same time. Structuring software systems as com- set of tasks that can be scheduled serially is serializable,
posed of multiple concurrent, communicating parts can which simplifies concurrency control.
99
100 CHAPTER 13. CONCURRENT COMPUTING
Concurrency is pervasive in computing, occurring from • Alef—concurrent, with threads and message pass-
low-level hardware on a single chip to world-wide net- ing, for system programming in early versions of
works. Examples follow. Plan 9 from Bell Labs
At the programming language level: • Alice—extension to Standard ML, adds support for
concurrency via futures
• Channel
• Ateji PX—extension to Java with parallel primitives
• Coroutine inspired from π-calculus
• C++—std::thread
• Computer multitasking, including both cooperative
multitasking and preemptive multitasking • Cω (C omega)—for research, extends C#, uses
asynchronous communication
• Time-sharing, which replaced sequential batch
processing of jobs with concurrent use of a • C#—supports concurrent computing since version
system 5.0 using lock, yield, async and await keywords
102 CHAPTER 13. CONCURRENT COMPUTING
• Clojure—modern Lisp for the JVM • Join Java—concurrent, based on Java language
• Concurrent Clean—functional programming, simi- • Joule—dataflow-based, communicates by message
lar to Haskell passing
• Eiffel—through its SCOOP mechanism based on • Node.js—a server-side runtime environment for
the concepts of Design by Contract JavaScript
• Erlang—uses asynchronous message passing with • occam-π—a modern variant of occam, which
nothing shared incorporates ideas from Milner’s π-calculus
• Chu space
Connection-oriented communication
105
106 CHAPTER 14. CONNECTION-ORIENTED COMMUNICATION
14.3 Examples
Examples of connection-oriented packet mode commu-
nication, i.e. virtual circuit mode communication:
Connectionless communication
Connectionless communication, often referred to as (and hence cache) routing-related information, avoiding
CL-mode communication,[1] is a data transmission re-computation for every packet. Network components
method used in packet switching networks by which each could also reserve capacity for the transfer of the subse-
data unit is individually addressed and routed based on quent data units of a video download, for example.
information carried in each unit, rather than in the setup Distinction between connectionless and connection-
information of a prearranged, fixed data channel as in
oriented transmission may take place at several layers of
connection-oriented communication. the OSI Reference Model:
Under connectionless communication between two net-
work end points, a message can be sent from one end • Transport Layer: TCP is a connection-oriented
point to another without prior arrangement. The device at transport protocol. UDP is connectionless.
one end of the communication transmits data addressed
to the other, without first ensuring that the recipient is • Network Layer.
available and ready to receive the data. Some proto-
cols allow for error correction by requested retransmis- • Data Link Layer: The IEEE 802.2 protocol at the
sion. Internet Protocol (IP) and User Datagram Protocol Logical Link Control sublayer of the data link layer
(UDP) are connectionless protocols. may provide both connectionless and connection-
oriented services. In fact, some network protocols
A packet transmitted in a connectionless mode is fre- (such as SNA's Path Control in its early stages) re-
quently called a datagram. quire a connection-oriented data link layer. Others
Connectionless protocols are usually described as (like IP) do not. (After the appearance of APPN,
stateless protocols because the end points have no SNA could operate on a connectionless data link ser-
protocol-defined way to remember where they are in a vice as well.)
“conversation” of message exchanges.
In connection-oriented communication the communicat-
ing peers must first establish a logical or physical data 15.1 Notable connectionless proto-
channel or connection in a dialog preceding the exchange cols
of user data.
The connectionless communications has the advantage • Internet Protocol (IP)
over connection-oriented communications in that it has
low overhead. It also allows for multicast and broadcast • User Datagram Protocol (UDP)
operations in which the same data are transmitted to sev-
• Internet Control Message Protocol (ICMP)
eral recipients in a single transmission.
In connectionless transmissions the service provider usu- • Internetwork Packet Exchange (IPX)
ally cannot guarantee that there will be no loss, error in- • TIPC
sertion, misdelivery, duplication, or out-of-sequence de-
livery of the packet. However, the effect of errors may • NetBEUI
be reduced by implementing error correction within an
application protocol. • Hypertext Transfer Protocol (HTTP)
In connectionless mode no optimizations are possible
when sending several data units between the same two
peers. By establishing a connection at the beginning of 15.2 References
such a data exchange the components (routers, bridges)
along the network path would be able to pre-compute [1] Information Processing Systems - Open Systems Inter-
connection, “Transport Service Definition - Addendum
107
108 CHAPTER 15. CONNECTIONLESS COMMUNICATION
16.2 Theory
Function
A data flow diagram (DFD) is a graphical representa-
tion of the “flow” of data through an information system,
modelling its process aspects. A DFD is often used as
a preliminary step to create an overview of the system,
which can later be elaborated.[2] DFDs can also be used
for the visualization of data processing (structured de-
sign). File/Database
A DFD shows what kind of information will be input to
and output from the system, where the data will come
from and go to, and where the data will be stored. It does
not show information about the timing of process or infor-
mation about whether processes will operate in sequence
or in parallel (which is shown on a flowchart). Input/Output
16.1 History
Flow
Larry Constantine, the original developer of structured
design,[3] based on Martin and Estrin’s “Data Flow
Data flow diagram - Yourdon/DeMarco notation
Graph” model of computation.
Starting in the 1970s, data flow diagrams (DFD) became Data flow diagrams are also known as bubble charts.[5]
a popular way to visualize the major steps and data in- DFD is a designing tool used in the top-down approach
volved in software system processes. DFDs were usually to Systems Design. This context-level DFD is next “ex-
used to show data flow in a computer system, although ploded”, to produce a Level 1 DFD that shows some of
they could in theory be applied to business process mod- the detail of the system being modeled. The Level 1 DFD
eling. DFD were useful to document the major data flows shows how the system is divided into sub-systems (pro-
or to explore a new high-level design in terms of data cesses), each of which deals with one or more of the data
flow.[4] flows to or from an external agent, and which together
109
110 CHAPTER 16. DATA FLOW DIAGRAM
• Business Process Model and Notation • Case study "Current physical dataflow diagram for
Acme Fashion Supplies" ..and accompanying ele-
• Control flow diagram mentary process descriptions
16.6. EXTERNAL LINKS 111
Data structure
17.1 Overview
hash
keys function buckets Data structures are generally based on the ability of a
00 computer to fetch and store data at any place in its mem-
01 521-8976 ory, specified by a pointer—a bit string, representing a
John Smith memory address, that can be itself stored in memory and
02 521-1234
03
manipulated by the program. Thus, the array and record
Lisa Smith data structures are based on computing the addresses of
: :
data items with arithmetic operations; while the linked
13
Sandra Dee data structures are based on storing addresses of data
14 521-9655 items within the structure itself. Many data structures use
15 both principles, sometimes combined in non-trivial ways
(as in XOR linking).
A hash table. The implementation of a data structure usually requires
writing a set of procedures that create and manipulate in-
stances of that structure. The efficiency of a data struc-
ture cannot be analyzed separately from those operations.
This observation motivates the theoretical concept of an
abstract data type, a data structure that is defined indi-
Not to be confused with data type. rectly by the operations that may be performed on it, and
the mathematical properties of those operations (includ-
In computer science, a data structure is a particular ing their space and time cost).
way of organizing data in a computer so that it can be
used efficiently.[1][2] Data structures can implement one
or more particular abstract data types (ADT), which spec- 17.2 Examples
ify the operations that can be performed on a data struc-
ture and the computional complexity of those operations.
Main article: List of data structures
In comparison, a data structure is a concrete implemen-
tation of the specification provided by an ADT.
There are numerous types of data structures, generally
Different kinds of data structures are suited to differ-
built upon simpler primitive data types:
ent kinds of applications, and some are highly special-
ized to specific tasks. For example, relational databases
commonly use B-tree indexes for data retrieval,[3] while • An array is a number of elements in a specific order,
compiler implementations usually use hash tables to look typically all of the same type. Elements are accessed
up identifiers. using an integer index to specify which element is
required (Depending on the language, individual el-
Data structures provide a means to manage large amounts ements may either all be forced to be the same type,
of data efficiently for uses such as large databases and or may be of almost any type). Typical implementa-
internet indexing services. Usually, efficient data struc- tions allocate contiguous memory words for the ele-
tures are key to designing efficient algorithms. Some for- ments of arrays (but this is not always a necessity).
mal design methods and programming languages empha- Arrays may be fixed-length or resizable.
size data structures, rather than algorithms, as the key or-
ganizing factor in software design. Data structures can be • A linked list (also just called list) is a linear collection
used to organize the storage and retrieval of information of data elements of any type, called nodes, where
stored in both main memory and secondary memory. each node has itself a value, and points to the next
112
17.4. SEE ALSO 113
node in the linked list. The principal advantage of a such as C++, Java and Smalltalk may use classes for this
linked list over an array, is that values can always be purpose.
efficiently inserted and removed without relocating Many known data structures have concurrent versions that
the rest of the list. Certain other operations, such allow multiple computing threads to access the data struc-
as random access to a certain element, are however ture simultaneously.
slower on lists than on arrays.
De facto standard
A de facto standard is a custom, convention, product, music distribution, then replaced it — it is now
or system that has achieved a dominant position by pub- supported by the vast majority of music play-
lic acceptance or market forces (such as early entrance to ers, audio transport, audio storage and non-
the market). De facto is a Latin phrase that means in fact commercial media. WAV and MP3 are also
(literally by or from fact) in the sense of “in practice but "de jure ISO formats”.
not necessarily ordained by law” or “in practice or actual-
ity, but not officially established”, as opposed to de jure. • with consolidation by uniqueness and efficiency:
The term de facto standard is used in contrast with oblig- • HTML (computer file format) started as "de
atory standards (also known as "de jure standards”); or to facto" (1993-1995) and became the "de jure"
express the dominant voluntary standard, when there is standard (1995–present day).
more than one standard available for the same use. • PDF (computer file format) was first created
In social sciences, a voluntary standard that is also a de in 1993 by Adobe. Adobe internal standards
facto standard is a typical solution to a coordination prob- were part of its software quality systems, but
lem.[1] The choice of a de facto standard tends to be stable they were neither published nor coordinated by
in situations in which all parties can realize mutual gains, a standards body. With the Acrobat Reader
but only by making mutually consistent decisions. In con- program available for free, and continued sup-
trast, an enforced "de jure standard” is a solution to the port of the format, PDF eventually became the
prisoner’s problem.[1] de facto standard for printable documents. In
2005, PDF/A became a de jure standard as
ISO 19005-1:2005.[3] In 2008 Adobe’s PDF
1.7 became ISO 32000-1:2008.[4][5]
18.1 Examples
Examples of long-time de facto but never de jure stan-
A selection of well-known and illustrative examples of de dards (for computer file formats):
facto and de jure standards are:
• AutoCAD DXF: a de facto ASCII format for import
• with consolidation by tradition of use: and export of CAD drawings and fragments in the
1980s and 1990s. In the 2000s, XML based stan-
• The driver’s seat side in a given country starts dards emerged as de facto standards.
as a user/industry preference, turning to a local
tradition, then a traffic code local norm. • Microsoft Word DOC (over all other old PC word
processors): one of the best known de facto stan-
• The QWERTY system was one of several op-
dards. Due to the market dominance of Word, it
tions for the layout of letters on typewriter (and
is supported by all office applications that intend to
later keyboard) keys. It was developed to pre-
compete with it, typically by reverse engineering the
vent adjacent keys from jamming on early and
undocumented file format. Microsoft has repeatedly
later mechanical typewriters, often attributed
internally changed the file specification between ver-
to the typist’s speed.[2] It became a de facto
sions of Word to suit their own needs, while contin-
standard because it was used on the most com-
uing to reuse the same file extension identifier for
mercially successful early typewriters.
different versions.
• The ASCII text character set, standardized in
1963 is still in use. Document files containing Other examples:
ASCII usually have the TXT extension.
• The MP3 audio format started as an alterna- • Most American-made spark plugs require a 13/16-
tive to CD WAV (lossless format) for Internet inch socket to remove or install.
115
116 CHAPTER 18. DE FACTO STANDARD
• The 1/2-inch (12.7 mm) spacing of the rollers in a 18.3 See also
bicycle chain.
• Dominant design
• The IBM Personal Computer (PC). By one year
after its 1981 release, John Dvorak described • Free market
the PC as rapidly becoming a “de facto stan- • Format war
dard microcomputer”.[6] With the MS-DOS and
Microsoft Windows operating systems, it gained a • Monopoly
large share of the personal computer market. Be-
cause of the great influence of the IBM PC on the • Real versus nominal value
personal computer market, competing products like
the Rainbow 100 were eventually withdrawn.
18.4 References
• Interpreted programming languages such as PHP
that have multiple implementations tend to also have [1] Ullmann-Margalit, Edna (1977). The Emergence of
a de facto standard. In PHP’s case the de facto stan- Norms. Oxford: Clarendon Press. ISBN 0-19-824411-
dard is the binaries available from php.net, rather 8.
than the Phalanger implementation for example. [2] QWERTY
“Dcom” redirects here. For the doctoral degree, see won out over both of them. Microsoft, at one point, at-
Doctor of Commerce. For other uses, see DCOM tempted and failed to head this off by adding an extra http
(disambiguation). transport to DCE/RPC called ncacn_http (Network Com-
puting Architecture connection-oriented protocol). This
Distributed Component Object Model (DCOM) is was later resurrected to support a Microsoft Exchange
2003 connection over HTTP.
a proprietary Microsoft technology for communica-
tion among software components distributed across net- DCOM is supported natively in Windows NT 4.0, Win-
worked computers. DCOM, which originally was called dows 2000, Windows XP, and Windows Server 2003, as
“Network OLE", extends Microsoft's COM, and provides well as Windows 7, Windows 8, Windows 10, Windows
the communication substrate under Microsoft's COM+ Server 2008, Windows Server 2008 R2, Windows Server
application server infrastructure. 2012, Windows Server 2012 R2 and the Windows Server
The addition of the “D” to COM was due to exten- 2016 Technical Preview.
sive use of DCE/RPC (Distributed Computing Environ-
ment/Remote Procedure Calls) – more specifically Mi-
crosoft’s enhanced version, known as MSRPC. 19.1 Hardening
In terms of the extensions it added to COM, DCOM had
to solve the problems of As part of the initiative that began at Microsoft as part
of Secure Development Lifecycle to re-architect inse-
cure code, DCOM saw some significant security-focused
• Marshalling – serializing and deserializing the argu-
changes in Windows XP Service Pack 2.[1]
ments and return values of method calls “over the
wire”.
• Distributed garbage collection – ensuring that refer- 19.2 Alternative versions and im-
ences held by clients of interfaces are released when,
for example, the client process crashed, or the net- plementations
work connection was lost.
COMsource: Its source code is available, along with full
• It had to combine Hundreds/Tens of Thousands of and complete documentation, sufficient to use and also
objects held in the client’s browser with a single implement an interoperable version of DCOM. Accord-
transmission in order to minimize bandwidth utiliza- ing to that documentation, COMsource comes directly
tion. from the Windows NT 4.0 source code, and even includes
the source code for a Windows NT Registry Service.
One of the key factors in solving these problems is the
use of DCE/RPC as the underlying RPC mechanism be- The Wine Team is also implementing DCOM for binary
hind DCOM. DCE/RPC has strictly defined rules regard- interoperability purposes; they are not currently inter-
ing marshalling and who is responsible for freeing mem- ested in the networking side of DCOM, which is provided
ory. by MSRPC. They are restricted to implementing NDR
(Network Data Representation) through Microsoft’s API,
DCOM was a major competitor to CORBA. Proponents but are committed to making it as compatible as possible
of both of these technologies saw them as one day be- with MSRPC.
coming the model for code and service-reuse over the
Internet. However, the difficulties involved in getting ei- TangramCOM is a separate project from Wine, fo-
ther of these technologies to work over Internet firewalls, cusing on implementing DCOM on Linux-based smart-
and on unknown and insecure machines, meant that nor- phones.
mal HTTP requests in combination with web browsers The Samba Team is also implementing DCOM for
117
118 CHAPTER 19. DISTRIBUTED COMPONENT OBJECT MODEL
19.4 References
[1] DCOM Security Enhancements
• TangramCOM
• EntireX DCOM
Chapter 20
Duplex (telecommunications)
119
120 CHAPTER 20. DUPLEX (TELECOMMUNICATIONS)
the hardware. Thus, there is no waste of the channel for capacity is available in both directions because the send
switching. For example, station A on one end of the data and receive functions are separate. Third, since there is
link could be allowed to transmit for exactly one second, only one transmitter on each twisted pair, stations (nodes)
then station B on the other end could be allowed to trans- do not need to wait for others to complete their transmis-
mit for exactly one second, and then the cycle repeats. sions.
In half-duplex systems, if more than one party transmits Some computer-based systems of the 1960s and 1970s
at the same time, a collision occurs, resulting in lost mes- required full-duplex facilities, even for half-duplex opera-
sages. tion, since their poll-and-response schemes could not tol-
erate the slight delays in reversing the direction of trans-
mission in a half-duplex line.
20.2 Full-duplex
20.3 Full-duplex emulation
Where channel access methods are used in point-to-
multipoint networks (such as cellular networks) for divid-
ing forward and reverse communication channels on the
same physical communications medium, they are known
A simple illustration of a full-duplex communication system.
as duplexing methods, such as time-division duplexing and
Full-duplex is not common in handheld radios as shown here due frequency-division duplexing.
to the cost and complexity of common duplexing methods, but is
used in telephones, cellphones and cordless phones.
20.3.1 Time-division duplexing
A full-duplex (FDX) system, or sometimes called double-
duplex, allows communication in both directions, and, Time-division duplexing (TDD) is the application of time-
unlike half-duplex, allows this to happen simultaneously. division multiplexing to separate outward and return sig-
Land-line telephone networks are full-duplex, since they nals. It emulates full duplex communication over a half
allow both callers to speak and be heard at the same duplex communication link.
time, with the transition from four to two wires being Time-division duplexing has a strong advantage in the
achieved by a hybrid coil in a telephone hybrid. Modern case where there is asymmetry of the uplink and downlink
cell phones are also full-duplex.[1] data rates. As the amount of uplink data increases, more
A good analogy for a full-duplex system is a two-lane road communication capacity can be dynamically allocated,
with one lane for each direction. Moreover, in most full- and as the traffic load becomes lighter, capacity can be
duplex mode systems carrying computer data, transmit- taken away. The same applies in the downlink direction.
ted data does not appear to be sent until it has been re- For radio systems that aren't moving quickly, another ad-
ceived and an acknowledgment is sent back by the other vantage is that the uplink and downlink radio paths are
party; that way, such systems implement reliable trans- likely to be very similar. This means that techniques such
mission methods. as beamforming work well with TDD systems.
Two-way radios can be designed as full-duplex systems, Examples of time-division duplexing systems are:
transmitting on one frequency and receiving on another;
this is also called frequency-division duplex. Frequency-
• UMTS 3G supplementary air interfaces TD-CDMA
division duplex systems can extend their range by using
for indoor mobile telecommunications.
sets of simple repeater stations because the communica-
tions transmitted on any single frequency always travel in • The Chinese TD-LTE 4-G, TD-SCDMA 3-G mo-
the same direction. bile communications air interface.
Full-duplex Ethernet connections work by making simul- • DECT wireless telephony
taneous use of two physical twisted pairs inside the same
jacket, which are directly connected to each networked • Half-duplex packet switched networks based on
device: one pair is for receiving packets, while the other carrier sense multiple access, for example 2-wire or
pair is for sending packets. This effectively makes the hubbed Ethernet, Wireless local area networks and
cable itself a collision-free environment and doubles the Bluetooth, can be considered as time-division du-
maximum total transmission capacity supported by each plexing systems, albeit not TDMA with fixed frame-
Ethernet connection. lengths.
Full-duplex has also several benefits over the use of half- • IEEE 802.16 WiMAX
duplex. First, there are no collisions so time is not wasted
by having to retransmit frames. Second, full transmission • PACTOR
20.4. SEE ALSO 121
• ISDN BRI U interface, variants using the time- sound coming out of the speaker, originating from the
compression multiplex (TCM) line system far end, re-enters the microphone and is sent back to the
far end. The sound then reappears at the original source
• G.fast, a digital subscriber line (DSL) standard un- end, but delayed. This feedback path may be acoustic,
der development by the ITU-T through the air, or it may be mechanically coupled, for
example in a telephone handset. Echo cancellation is a
signal-processing operation that subtracts the far-end sig-
20.3.2 Frequency-division duplexing
nal from the microphone signal before it is sent back over
the network.
Frequency-division duplexing (FDD) means that the
transmitter and receiver operate at different carrier fre- Echo cancellation is important to the V.32, V.34, V.56,
quencies. The term is frequently used in ham radio opera- and V.90 modem standards.[2]
tion, where an operator is attempting to contact a repeater Echo cancelers are available as both software and hard-
station. The station must be able to send and receive a ware implementations. They can be independent compo-
transmission at the same time, and does so by slightly al- nents in a communications system or integrated into the
tering the frequency at which it sends and receives. This communication system’s central processing unit. Devices
mode of operation is referred to as duplex mode or offset that do not eliminate echo sometimes will not produce
mode. good full-duplex performance.
Uplink and downlink sub-bands are said to be separated
by the frequency offset. Frequency-division duplexing
can be efficient in the case of symmetric traffic. In this 20.4 See also
case time-division duplexing tends to waste bandwidth
during the switch-over from transmitting to receiving, has • Duplex mismatch
greater inherent latency, and may require more complex
circuitry. • Four-wire circuit
Another advantage of frequency-division duplexing is • Multiplexing
that it makes radio planning easier and more efficient,
since base stations do not “hear” each other (as they trans- • Duplexer
mit and receive in different sub-bands) and therefore will
normally not interfere with each other. On the converse, • Communications channel
with time-division duplexing systems, care must be taken • Crossband operation
to keep guard times between neighboring base stations
(which decreases spectral efficiency) or to synchronize • Push to talk
base stations, so that they will transmit and receive at
the same time (which increases network complexity and • Simplex communication
therefore cost, and reduces bandwidth allocation flexibil- • Radio resource management
ity as all base stations and sectors will be forced to use
the same uplink/downlink ratio)
Examples of frequency-division duplexing systems are: 20.5 References
• ADSL and VDSL [1] “Cell phone Frequencies”. HowStuffWorks.
• Most cellular systems, including the [2] Greenstein, Shane; Stango, Victor (2006). Standards and
UMTS/WCDMA use frequency-division duplexing Public Policy. Cambridge University Press. pp. 129–132.
mode and the cdma2000 system. ISBN 978-1-139-46075-0.
In computing, Dynamic Data Exchange (DDE) is a was established by a simple, three-segment model. Each
method of interprocess communication under Microsoft program was known to DDE by its “application” name.
Windows or OS/2. It allows one program to subscribe Each application could further organize information by
to items made available by another program, for example groups known as “topic” and each topic could serve up
a cell in a Microsoft Excel spreadsheet, and be notified individual pieces of data as an “item”. For example, if a
whenever that item changes. DDE was partially super- user wanted to pull a value from Microsoft Excel which
seded by Object Linking and Embedding (OLE), but re- was contained in a spreadsheet called “Book1.xls” in the
mains used for simple interprocess communication tasks. cell in the first row and first column, the application would
be “Excel”, the topic “Book1.xls” and the item “r1c1”.
A common use of DDE is for custom-developed appli-
21.1 History cations to control off-the-shelf software. For example,
a custom in-house application might use DDE to open a
Microsoft Excel spreadsheet and fill it with data, by open-
Dynamic Data Exchange was first introduced in 1987
ing a DDE conversation with Excel and sending it DDE
with the release of Windows 2.0 as a method of
commands. Today, however, one could also use the Excel
interprocess communication so that one program could
object model with OLE Automation (part of COM). The
communicate with or control another program, somewhat
technique is, however, still in use, particularly for distri-
like Sun’s RPC (Remote Procedure Call).[1] It used the
bution of financial data.[2] DDE has also been widely used
“Windows Messaging Layer” functionality within Win-
in the SAS programming language for manipulating Ex-
dows. DDE continues to work even in modern versions
cel and transferring data between SAS and Excel and can
of Windows, but has been superseded by newer technolo-
be used to format Excel workbooks from within a SAS
gies. Windows for Workgroups introduced a remoting
program.
version called NetDDE.
OLE and OLE Automation are more advanced than
DDE, but have proven to be bulky and difficult to code.
OLE is far more sophisticated and capable than DDE be- 21.3 NetDDE
cause it is built on top of Microsoft’s Component Object
Model, but also suffers from COM’s problems of a higher California-based company Wonderware (acquired by
performance penalty and a much steeper learning curve. French company Schneider Electric from Invensys Plc
COM that works between networked machines is known in January 2014) developed an extension for DDE called
as DCOM (Distributed COM). .NET Remoting provides NetDDE that could be used to initiate and maintain the
a layered architecture for interprocess communication in network connections needed for DDE conversations be-
the .NET Framework. However, legacy DDE is still used tween DDE-aware applications running on different com-
in several places inside Windows, e.g. for Shell file asso- puters in a network and transparently exchange data. A
ciations and for the copy, cut and paste functions. DDE conversation is an interaction between client and
server applications. NetDDE could be used along with
DDE and the DDE management library (DDEML) in ap-
plications.
21.2 Overview
/Windows/SYSTEM32 DDESHARE.EXE (DDE Share
The primary function of DDE is to allow Windows appli- Manager) NDDEAPIR.EXE (NDDEAPI Server Side)
cations to share data. For example, a cell in Microsoft Ex- NDDENB32.DLL (Network DDE NetBIOS Interface)
cel could be linked to a value in another application and NETDDE.EXE (Network DDE - DDE Communication)
when the value changed, it would be automatically up- Microsoft licensed a basic (NetBIOS Frames protocol
dated in the Excel spreadsheet. The data communication only) version of the product for inclusion in various ver-
122
21.7. EXTERNAL LINKS 123
• Microsoft .NET
• Object Linking and Embedding (OLE)
• Observer pattern
21.5 Notes
[1] Net DDE to DOT NET Remoting 12 Jan, 2006
21.6 References
• Charles Petzold. “Dynamic Data Exchange” in Pro-
gramming for Windows 95. Microsoft Press.
Not to be confused with error handling. data, and attaches a fixed number of check bits (or par-
ity data), which are derived from the data bits by some
deterministic algorithm. If only error detection is re-
In information theory and coding theory with applications
in computer science and telecommunication, error de- quired, a receiver can simply apply the same algorithm
tection and correction or error control are techniques to the received data bits and compare its output with the
that enable reliable delivery of digital data over unreliablereceived check bits; if the values do not match, an error
communication channels. Many communication chan- has occurred at some point during the transmission. In a
nels are subject to channel noise, and thus errors may be system that uses a non-systematic code, the original mes-
introduced during transmission from the source to a re- sage is transformed into an encoded message that has at
ceiver. Error detection techniques allow detecting such least as many bits as the original message.
errors, while error correction enables reconstruction of Good error control performance requires the scheme to
the original data in many cases. be selected based on the characteristics of the com-
munication channel. Common channel models include
memory-less models where errors occur randomly and
22.1 Definitions with a certain probability, and dynamic models where
errors occur primarily in bursts. Consequently, error-
detecting and correcting codes can be generally distin-
The general definitions of the terms are as follows:
guished between random-error-detecting/correcting and
burst-error-detecting/correcting. Some codes can also be
• Error detection is the detection of errors caused suitable for a mixture of random errors and burst errors.
by noise or other impairments during transmission
from the transmitter to the receiver. If the channel capacity cannot be determined, or is highly
variable, an error-detection scheme may be combined
• Error correction is the detection of errors and recon- with a system for retransmissions of erroneous data. This
struction of the original, error-free data. is known as automatic repeat request (ARQ), and is most
notably used in the Internet. An alternate approach for
error control is hybrid automatic repeat request (HARQ),
22.2 History which is a combination of ARQ and error-correction cod-
ing.
The modern development of error-correcting codes in
1947 is due to Richard W. Hamming.[1] A description of
Hamming’s code appeared in Claude Shannon's A Mathe- 22.4 Implementation
matical Theory of Communication[2] and was quickly gen-
eralized by Marcel J. E. Golay.[3] Error correction may generally be realized in two differ-
ent ways:
124
22.5. ERROR DETECTION SCHEMES 125
error correction, and enabled the spacecraft’s extended archive formats, include a checksum (most often CRC32)
journey to Uranus and Neptune. Both craft use V2 RSV to detect corruption and truncation and can employ re-
coding due to ECC system upgrades after 1989. dundancy and/or parity files to recover portions of cor-
The CCSDS currently recommends usage of error cor- rupted data. Reed Solomon codes are used in compact
rection codes with performance similar to the Voyager discs to correct errors caused by scratches.
2 RSV code as a minimum. Concatenated codes are in- Modern hard drives use CRC codes to detect and Reed–
creasingly falling out of favor with space missions, and are Solomon codes to correct minor errors in sector reads,
replaced by more powerful codes such as Turbo codes or and to recover data from sectors that have “gone bad” and
LDPC codes. store that data in the spare sectors.[10] RAID systems use
The different kinds of deep space and orbital missions a variety of error correction techniques to correct errors
that are conducted suggest that trying to find a “one size when a hard drive completely fails. Filesystems such as
fits all” error correction system will be an ongoing prob- ZFS or Btrfs, as well as some RAID implementations,
lem for some time to come. For missions close to Earth support data scrubbing and resilvering, which allows bad
the nature of the channel noise is different from that blocks to be detected and (hopefully) recovered before
which a spacecraft on an interplanetary mission expe- they are used. The recovered data may be re-written to
riences. Additionally, as a spacecraft increases its dis- exactly the same physical location, to spare blocks else-
tance from Earth, the problem of correcting for noise gets where on the same piece of hardware, or to replacement
larger. hardware.
• QPSK coupled with traditional Reed Solomon and Error-correcting memory controllers traditionally use
Viterbi codes have been used for nearly 20 years for Hamming codes, although some use triple modular re-
the delivery of digital satellite TV. dundancy.
Interleaving allows distributing the effect of a single cos-
• Higher order modulation schemes such as 8PSK,
mic ray potentially upsetting multiple physically neigh-
16QAM and 32QAM have enabled the satellite in-
boring bits across multiple words by associating neighbor-
dustry to increase transponder efficiency by several
ing bits to different words. As long as a single event upset
orders of magnitude.
(SEU) does not exceed the error threshold (e.g., a sin-
• This increase in the information rate in a transpon- gle error) in any particular word between accesses, it can
der comes at the expense of an increase in the carrier be corrected (e.g., by a single-bit error correcting code),
power to meet the threshold requirement for existing and the illusion of an error-free memory system may be
antennas. maintained.[11]
• Tests conducted using the latest chipsets demon- In addition to hardware providing features required for
strate that the performance achieved by using Turbo ECC memory to operate, operating systems usually con-
Codes may be even lower than the 0.8 dB figure as- tain related reporting facilities that are used to provide
sumed in early designs. notifications when soft errors are transparently recov-
ered. An increasing rate of soft errors might indicate
that a DIMM module needs replacing, and such feed-
22.7.4 Data storage back information would not be easily available without
the related reporting capabilities. An example is the
Error detection and correction codes are often used to Linux kernel's EDAC subsystem (previously known as
improve the reliability of data storage media. A “parity bluesmoke), which collects the data from error-checking-
track” was present on the first magnetic tape data stor- enabled components inside a computer system; beside
age in 1951. The “Optimal Rectangular Code” used in collecting and reporting back the events related to ECC
group code recording tapes not only detects but also cor- memory, it also supports other checksumming errors, in-
rects single-bit errors. Some file formats, particularly cluding those detected on the PCI bus.[12][13][14]
22.10. FURTHER READING 129
A few systems also support memory scrubbing. [13] “EDAC Project”. bluesmoke.sourceforge.net. Retrieved
2014-08-12.
• Berger code
• Burst error-correcting code 22.10 Further reading
• Forward error correction • Shu Lin; Daniel J. Costello, Jr. (1983). Error
Control Coding: Fundamentals and Applications.
• Link adaptation
Prentice Hall. ISBN 0-13-283796-X.
• List of algorithms for error detection and correction
• List of error-correcting codes
22.11 External links
• List of hash functions
• The on-line textbook: Information Theory, In-
• Reliability (computer networking)
ference, and Learning Algorithms, by David J.C.
MacKay, contains chapters on elementary error-
correcting codes; on the theoretical limits of
22.9 References error-correction; and on the latest state-of-the-
art error-correcting codes, including low-density
[1] Thompson, Thomas M. (1983), From Error-Correcting parity-check codes, turbo codes, and fountain codes.
Codes through Sphere Packings to Simple Groups, The
Carus Mathematical Monographs (#21), The Mathemati- • Compute parameters of linear codes – an on-line
cal Association of America, p. vii, ISBN 0-88385-023-0 interface for generating and computing parameters
(e.g. minimum distance, covering radius) of linear
[2] Shannon, C.E. (1948), “A Mathematical Theory of Com-
error-correcting codes.
munication”, Bell System Tech. Journal, p. 418, 27
“FTP” redirects here. For other uses, see FTP (disam- 23.2.1 Communication and data transfer
biguation).
PC1 21
The File Transfer Protocol (FTP) is a standard network
protocol used to transfer computer files between a client PASV
and server on a computer network. A S
FTP is built on a client-server model architecture and uses
separate control and data connections between the client PC2
and the server.[1] FTP users may authenticate themselves
with a clear-text sign-in protocol, normally in the form of PC1 21
a username and password, but can connect anonymously
if the server is configured to allow it. For secure trans- PORT PS1
mission that protects the username and password, and en- A S
crypts the content, FTP is often secured with SSL/TLS
(FTPS). SSH File Transfer Protocol (SFTP) is sometimes PC2 PS1
also used instead, but is technologically different.
The first FTP client applications were command-line pro- PC1 21
grams developed before operating systems had graphical
user interfaces, and are still shipped with most Windows,
Unix, and Linux operating systems.[2][3] Many FTP A S
clients and automation utilities have since been developed
for desktops, servers, mobile devices, and hardware, and PC2 PS1
FTP has been incorporated into productivity applications,
such as web page editors. Illustration of starting a passive connection using port 21
130
23.2. PROTOCOL OVERVIEW 131
the client then uses to open a data connection from Some FTP software also implements a DEFLATE-based
an arbitrary client port to the server IP address and compressed mode, sometimes called “Mode Z” after the
server port number received.[7] command that enables it. This mode was described in an
Internet Draft, but not standardized.[9]
Both modes were updated in September 1998 to support
IPv6. Further changes were introduced to the passive
mode at that time, updating it to extended passive mode.[8] 23.2.2 Login
The server responds over the control connection with
FTP login utilizes a normal username and password
three-digit status codes in ASCII with an optional text
scheme for granting access.[2] The username is sent to
message. For example, “200” (or “200 OK”) means that
the server using the USER command, and the password is
the last command was successful. The numbers represent
sent using the PASS command.[2] If the information pro-
the code for the response and the optional text represents
vided by the client is accepted by the server, the server
a human-readable explanation or request (e.g. <Need ac-
will send a greeting to the client and the session will
count for storing file>).[1] An ongoing transfer of file data
commence.[2] If the server supports it, users may log in
over the data connection can be aborted using an interrupt
without providing login credentials, but the same server
message sent over the control connection.
may authorize only limited access for such sessions.[2]
While transferring data over the network, four data rep-
resentations can be used:[2][3][4]
23.2.3 Anonymous FTP
• ASCII mode: Used for text. Data is converted,
if needed, from the sending host’s character repre- A host that provides an FTP service may provide
sentation to “8-bit ASCII” before transmission, and anonymous FTP access.[2] Users typically log into the ser-
(again, if necessary) to the receiving host’s charac- vice with an 'anonymous’ (lower-case and case-sensitive
ter representation. As a consequence, this mode is in some FTP servers) account when prompted for user
inappropriate for files that contain data other than name. Although users are commonly asked to send their
plain text. email address instead of a password,[3] no verification is
actually performed on the supplied data.[10] Many FTP
• Image mode (commonly called Binary mode): The hosts whose purpose is to provide software updates will
sending machine sends each file byte for byte, and allow anonymous logins.[3]
the recipient stores the bytestream as it receives it.
(Image mode support has been recommended for all
implementations of FTP).
23.2.4 NAT and firewall traversal
• EBCDIC mode: Used for plain text between hosts
using the EBCDIC character set. FTP normally transfers data by having the server connect
back to the client, after the PORT command is sent by
• Local mode: Allows two computers with identical the client. This is problematic for both NATs and fire-
setups to send data in a proprietary format without walls, which do not allow connections from the Internet
the need to convert it to ASCII. towards internal hosts.[11] For NATs, an additional com-
plication is that the representation of the IP addresses and
For text files, different format control and record structure port number in the PORT command refer to the internal
options are provided. These features were designed to host’s IP address and port, rather than the public IP ad-
facilitate files containing Telnet or ASA. dress and port of the NAT.
Data transfer can be done in any of three modes:[1][2] There are two approaches to this problem. One is that
the FTP client and FTP server use the PASV command,
which causes the data connection to be established from
• Stream mode: Data is sent as a continuous stream, the FTP client to the server.[11] This is widely used by
relieving FTP from doing any processing. Rather, modern FTP clients. Another approach is for the NAT
all processing is left up to TCP. No End-of-file in- to alter the values of the PORT command, using an
dicator is needed, unless the data is divided into application-level gateway for this purpose.[11]
records.
FTP has a stateful control connection which maintains a tion of the username and password that must be used to
current working directory and other flags, and each trans- access this resource.
fer requires a secondary connection through which the More details on specifying a username and password may
data are transferred. In “passive” mode this secondary be found in the browsers’ documentation (e.g., Firefox[13]
connection is from client to server, whereas in the default and Internet Explorer[14] ). By default, most web browsers
“active” mode this connection is from server to client. use passive (PASV) mode, which more easily traverses
This apparent role reversal when in active mode, and ran- end-user firewalls.
dom port numbers for all transfers, is why firewalls and
NAT gateways have such a hard time with FTP. HTTP
is stateless and multiplexes control and data over a single
connection from client to server on well-known port num- 23.4 Security
bers, which trivially passes through NAT gateways and is
simple for firewalls to manage. FTP was not designed to be a secure protocol, and has
many security weaknesses.[15] In May 1999, the authors
Setting up an FTP control connection is quite slow due
of RFC 2577 listed a vulnerability to the following prob-
to the round-trip delays of sending all of the required
lems:
commands and awaiting responses, so it is customary to
bring up a control connection and hold it open for multiple
• Brute force attack
file transfers rather than drop and re-establish the session
afresh each time. In contrast, HTTP originally dropped • FTP bounce attack
the connection after each transfer because doing so was so
cheap. While HTTP has subsequently gained the ability • Packet capture
to reuse the TCP connection for multiple transfers, the • Port stealing
conceptual model is still of independent requests rather
than a session. • Spoofing attack
When FTP is transferring over the data connection, the • Username protection
control connection is idle. If the transfer takes long
enough, the firewall or NAT may decide that the control FTP does not encrypt its traffic; all transmissions are in
connection is dead and stop tracking it, effectively break- clear text, and usernames, passwords, commands and data
ing the connection and confusing the download. The can be read by anyone able to perform packet capture
single HTTP connection is only idle between requests (sniffing) on the network.[2][15] This problem is common
and it is normal and expected for such connections to be to many of the Internet Protocol specifications (such as
dropped after a time-out. SMTP, Telnet, POP and IMAP) that were designed prior
to the creation of encryption mechanisms such as TLS or
SSL.[4]
23.3 Web browser support Common solutions to this problem include:
Most common web browsers can retrieve files hosted on 1. Using the secure versions of the insecure protocols,
FTP servers, although they may not support protocol ex- e.g., FTPS instead of FTP and TelnetS instead of
tensions such as FTPS.[3][12] When an FTP—rather than Telnet.
an HTTP—URL is supplied, the accessible contents on
the remote server are presented in a manner that is sim- 2. Using a different, more secure protocol that can
ilar to that used for other web content. A full-featured handle the job, e.g. SSH File Transfer Protocol or
FTP client can be run within Firefox in the form of an Secure Copy Protocol.
extension called FireFTP.
3. Using a secure tunnel such as Secure Shell (SSH) or
virtual private network (VPN).
23.3.1 Syntax
23.4.1 FTP over SSH
FTP URL syntax is described in RFC 1738, tak-
ing the form: ftp://{[}user{[}:password{]}@{]}host{[}: FTP over SSH is the practice of tunneling a normal FTP
port{]}/url-path (the bracketed parts are optional). session over a Secure Shell connection.[15] Because FTP
For example, the URL ftp://public.ftp-servers.example. uses multiple TCP connections (unusual for a TCP/IP
com/mydirectory/myfile.txt represents the file my- protocol that is still in use), it is particularly difficult to
file.txt from the directory mydirectory on the server tunnel over SSH. With many SSH clients, attempting to
public.ftp-servers.example.com as an FTP resource. The set up a tunnel for the control channel (the initial client-to-
URL ftp://user001:[email protected]. server connection on port 21) will protect only that chan-
example.com/mydirectory/myfile.txt adds a specifica- nel; when data is transferred, the FTP software at either
23.6. FTP COMMANDS 133
end sets up new TCP connections (data channels) and thus 23.5.4 Simple File Transfer Protocol
have no confidentiality or integrity protection.
Simple File Transfer Protocol (the first protocol abbrevi-
Otherwise, it is necessary for the SSH client software to
ated SFTP), as defined by RFC 913, was proposed as an
have specific knowledge of the FTP protocol, to mon-
(unsecured) file transfer protocol with a level of complex-
itor and rewrite FTP control channel messages and au-
ity intermediate between TFTP and FTP. It was never
tonomously open new packet forwardings for FTP data
widely accepted on the Internet, and is now assigned His-
channels. Software packages that support this mode in-
toric status by the IETF. It runs through port 115, and
clude:
often receives the initialism of SFTP. It has a command
• Tectia ConnectSecure (Win/Linux/Unix) of SSH set of 11 commands and support three types of data trans-
[16]
Communications Security's software suite mission: ASCII, binary and continuous. For systems with
a word size that is a multiple of 8 bits, the implementa-
tion of binary and continuous is the same. The proto-
col also supports login with user ID and password, hier-
23.5 Derivatives archical folders and file management (including rename,
delete, upload, download, download with overwrite, and
23.5.1 FTPS download with append).
23.5.3 Trivial File Transfer Protocol • x0z – Syntax. These replies refer to syntax errors.
Main article: Trivial File Transfer Protocol • x1z – Information. Replies to requests for informa-
tion.
Trivial File Transfer Protocol (TFTP) is a simple, lock- • x2z – Connections. Replies referring to the control
step FTP that allows a client to get from or put a file onto a and data connections.
remote host. One of its primary uses is in the early stages
of booting from a local area network, because TFTP is • x3z – Authentication and accounting. Replies for
very simple to implement. TFTP lacks security and most the login process and accounting procedures.
of the advanced features offered by more robust file trans- • x4z – Not defined.
fer protocols such as File Transfer Protocol. TFTP was
first standardized in 1981 and the current specification for • x5z – File system. These replies relay status codes
the protocol can be found in RFC 1350. from the server file system.
134 CHAPTER 23. FILE TRANSFER PROTOCOL
The third digit of the reply code is used to provide ad- [9] Preston, J. (January 2005). Deflate transmission mode for
ditional detail for each of the categories defined by the FTP. IETF. I-D draft-preston-ftpext-deflate-03.txt. https:
second digit. //tools.ietf.org/html/draft-preston-ftpext-deflate-03.txt.
Retrieved 27 January 2016.
Finite-state machine
“State machine” redirects here. For infinite state ma- FSMs are studied in the more general field of automata
chines, see State transition system. For fault-tolerance theory.
methodology, see State machine replication.
“SFSM” redirects here. For the Italian railway company,
see Circumvesuviana.
“Finite Automata” redirects here. For the electro-
24.1 Example: coin-operated turn-
industrial group, see Finite Automata (band). stile
A finite-state machine (FSM) or finite-state automa-
ton (FSA, plural: automata), or simply a state machine,
is a mathematical model of computation used to design Push Coin
136
24.3. REPRESENTATIONS 137
24.3 Representations
A turnstile
E: open
door 24.3.4 Other state diagrams
There are a large number of variants to represent an FSM
transition such as the one in figure 3.
close
open
24.4 Usage
In addition to their use in modeling reactive systems
transition condition
presented here, finite state automata are significant
in many different areas, including electrical engineer-
ing, linguistics, computer science, philosophy, biology,
2
mathematics, and logic. Finite state machines are a class
closed
of automata studied in automata theory and the theory of
E: close computation. In computer science, finite state machines
entry action door are widely used in modeling of application behavior, de-
sign of hardware digital systems, software engineering,
compilers, network protocols, and the study of computa-
tion and languages.
Fig. 3 Example of a simple finite state machine
6 7
A machine could also be described as defining a language, Classifier is a generalization that, similar to acceptor,
that would contain every string accepted by the machine produces single output when terminates but has more than
but none of the rejected ones; that language is “accepted” two terminal states.
by the machine. By definition, the languages accepted by
FSMs are the regular languages—; a language is regular
if there is some FSM that accepts it. 24.5.2 Transducers
The problem of determining the language accepted by
a given FSA is an instance of the algebraic path prob-
1
lem—itself a generalization of the shortest path problem opened
to graphs with edges weighted by the elements of an (ar-
bitrary) semiring.[5][6][7]
close
sensor opened
Start state
open
4 2
The start state is usually shown drawn with an arrow opening closing
“pointing at it from any where” (Sipser (2006) p. 34).
close
Accept states (also referred to as accepting or final Moore machine The FSM uses only entry actions, i.e.,
states) are those at which the machine reports that the output depends only on the state. The advantage
input string, as processed so far, is a member of the lan- of the Moore model is a simplification of the be-
guage it accepts. Accepting states are usually represented haviour. Consider an elevator door. The state ma-
by double circles. chine recognizes two commands: “command_open”
The start state can also be an accepting state, in which and “command_close”, which trigger state changes.
case the automaton accepts the empty string. If the start The entry action (E:) in state “Opening” starts a mo-
state is not an accepting state and there are no connecting tor opening the door, the entry action in state “Clos-
edges to any of the accepting states, then the automaton ing” starts a motor in the other direction closing the
is accepting nothing. door. States “Opened” and “Closed” stop the mo-
tor when fully opened or closed. They signal to the
An example of an accepting state appears in Fig.5: outside world (e.g., to other state machines) the sit-
a deterministic finite automaton (DFA) that detects uation: “door is open” or “door is closed”.
whether the binary input string contains an even number
of 0s.
S 1 (which is also the start state) indicates the state at Mealy machine The FSM uses only input actions, i.e.,
which an even number of 0s has been input. S1 is there- output depends on input and state. The use of a
fore an accepting state. This machine will finish in an Mealy FSM leads often to a reduction of the num-
accept state, if the binary string contains an even number ber of states. The example in figure 7 shows a
of 0s (including any binary string containing no 0s). Ex- Mealy FSM implementing the same behaviour as in
amples of strings accepted by this DFA are ε (the empty the Moore example (the behaviour depends on the
string), 1, 11, 11…, 00, 010, 1010, 10110, etc… implemented FSM execution model and will work,
140 CHAPTER 24. FINITE-STATE MACHINE
I: I:
24.5.4 Determinism
Output
A further distinction is between deterministic (DFA)
and non-deterministic (NFA, GNFA) automata. In de- conditions
terministic automata, every state has exactly one tran-
sition for each possible input. In non-deterministic au-
tomata, an input can lead to one, more than one or no
transition for a given state. This distinction is relevant in OUTPUTS
practice, but not in theory, as there exists an algorithm
(the powerset construction) that can transform any NFA Fig. 8 FSM Logic (Mealy)
into a more complex DFA with identical functionality.
The next state and output of an FSM is a function of the
The FSM with only one state is called a combinatorial
input and of the current state. The FSM logic is shown in
FSM and uses only input actions. This concept is useful
Figure 8.
in cases where a number of FSM are required to work
together, and where it is convenient to consider a purely
combinatorial part as a form of FSM to suit the design
tools.[8] 24.8 Mathematical model
In accordance with the general classification, the follow-
24.6 Alternative semantics ing formal definitions are found:
would be δ : S × Σ → P(S) , i.e., δ would Optimizing an FSM means finding the machine with
return a set of states). the minimum number of states that performs the same
• F is the set of final states, a (possibly empty) function. The fastest known algorithm doing this is
subset of S . the Hopcroft minimization algorithm.[15][16] Other tech-
niques include using an implication table, or the Moore
For both deterministic and non-deterministic FSMs, it reduction procedure. Additionally, acyclic FSAs can be
is conventional to allow δ to be a partial function, i.e. minimized in linear time.[17]
δ(q, x) does not have to be defined for every combina-
tion of q ∈ S and x ∈ Σ . If an FSM M is in a state
q , the next symbol is x and δ(q, x) is not defined, then 24.10 Implementation
M can announce an error (i.e. reject the input). This is
useful in definitions of general state machines, but less
useful when transforming the machine. Some algorithms 24.10.1 Hardware applications
in their default form may require total functions.
A finite-state machine is a restricted Turing machine
where the head can only perform “read” operations, and
always moves from left to right.[13]
• Artificial intelligence (AI) [5] Pouly, Marc; Kohlas, Jürg (2011). Generic Inference: A
Unifying Theory for Automated Reasoning. John Wiley &
• Abstract State Machine Language (AsmL) Sons. Chapter 6. Valuation Algebras for Path Problems,
p. 223 in particular. ISBN 978-1-118-01086-0.
• Behavior model
[6] Storer, J. A. (2001). An Introduction to Data Structures
• Communicating finite-state machine and Algorithms. Springer Science & Business Media. p.
337. ISBN 978-0-8176-4253-2.
• Control system
[7] http://www.iam.unibe.ch/~{}run/talks/
• Control table 2008-06-05-Bern-Jonczy.pdf, p. 34
• Decision tables [8] Brutscheck, M., Berger, S., Franke, M., Schwarzbacher,
A., Becker, S.: Structural Division Procedure for Effi-
• DEVS: Discrete Event System Specification
cient IC Analysis. IET Irish Signals and Systems Con-
• Extended finite-state machine (EFSM) ference, (ISSC 2008), pp.18-23. Galway, Ireland, 18–19
June 2008.
• Finite state machine with datapath
[9] Tiwari, A. (2002). Formal Semantics and Analysis Meth-
• Hidden Markov model ods for Simulink Stateflow Models.
• Sequential logic [12] Alur, R., Kanade, A., Ramesh, S., & Shashidhar, K. C.
(2008). Symbolic analysis for improving simulation cov-
• Specification and Description Language erage of Simulink/Stateflow models. International Con-
ference on Embedded Software (pp. 89–98). Atlanta,
• State diagram GA: ACM.
• State pattern [13] Black, Paul E (12 May 2008). “Finite State Machine”.
Dictionary of Algorithms and Data Structures. U.S.
• SCXML
National Institute of Standards and Technology.
• Transition system
[14] Anderson, James Andrew; Head, Thomas J. (2006).
• Tree automaton Automata theory with modern applications. Cambridge
University Press. pp. 105–108. ISBN 978-0-521-84887-
• Turing machine 9.
• UML state machine [15] Hopcroft, John E. (1971). An n log n algorithm for mini-
mizing states in a finite automaton (PDF) (Technical Re-
• YAKINDU Statechart Tools port). CS-TR-71-190. Stanford Univ.
24.13. FURTHER READING 143
[16] Almeida, Marco; Moreira, Nelma; Reis, Rogerio (2007). • Ginsburg, S., An Introduction to Mathematical Ma-
On the performance of automata minimization algorithms chine Theory. Addison-Wesley, 1962.
(PDF) (Technical Report). DCC-2007-03. Porto Univ.
[19] Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D. (1986). • Bobrow, Leonard S.; Arbib, Michael A. (1974).
Compilers: Principles, Techniques, and Tools (1st ed.). Discrete Mathematics: Applied Algebra for Computer
Addison-Wesley. ISBN 978-0-201-10088-4. and Information Science (1st ed.). Philadelphia: W.
B. Saunders Company, Inc. ISBN 0-7216-1768-9.
• Linz, Peter (2006). Formal Languages and Au- • McCluskey, E. J. (1965). Introduction to the Theory
tomata (4th ed.). Sudbury, MA: Jones and Bartlett. of Switching Circuits (1st ed.). New York: McGraw-
ISBN 978-0-7637-3798-6. Hill Book Company, Inc. Library of Congress Card
Catalog Number 65-17394.
• Minsky, Marvin (1967). Computation: Finite and
Infinite Machines (1st ed.). New Jersey: Prentice- • Hill, Fredrick J.; Peterson, Gerald R. (1965). Intro-
Hall. duction to the Theory of Switching Circuits (1st ed.).
New York: McGraw-Hill Book Company. Library
• Papadimitriou, Christos (1993). Computational of Congress Card Catalog Number 65-17394.
Complexity (1st ed.). Addison Wesley. ISBN 0-201-
53082-1.
24.13.6 Finite Markov chain processes
• Pippenger, Nicholas (1997). Theories of Com-
putability (1st ed.). Cambridge, England: Cam- “We may think of a Markov chain
bridge University Press. ISBN 0-521-55380-6. as a process that moves successively
through a set of states s1 , s2 , …, sr.
• Rodger, Susan; Finley, Thomas (2006). JFLAP: An … if it is in state si it moves on to
Interactive Formal Languages and Automata Pack- the next stop to state sj with prob-
age (1st ed.). Sudbury, MA: Jones and Bartlett. ability pij. These probabilities can
ISBN 0-7637-3834-4. be exhibited in the form of a tran-
sition matrix” (Kemeny (1959), p.
• Sipser, Michael (2006). Introduction to the Theory 384)
of Computation (2nd ed.). Boston Mass: Thomson
Course Technology. ISBN 0-534-95097-3.
Finite Markov-chain processes are also known as
• Wood, Derick (1987). Theory of Computation (1st subshifts of finite type.
ed.). New York: Harper & Row, Publishers, Inc.
ISBN 0-06-047208-1. • Booth, Taylor L. (1967). Sequential Machines and
Automata Theory (1st ed.). New York: John Wiley
and Sons, Inc. Library of Congress Card Catalog
24.13.3 Abstract state machines in theo- Number 67-25924.
retical computer science • Kemeny, John G.; Mirkil, Hazleton; Snell, J. Lau-
rie; Thompson, Gerald L. (1959). Finite Mathe-
• Gurevich, Yuri (July 2000). “Sequential Abstract matical Structures (1st ed.). Englewood Cliffs, N.J.:
State Machines Capture Sequential Algorithms” Prentice-Hall, Inc. Library of Congress Card Cat-
(PDF). ACM Transactions on Computational Logic. alog Number 59-12841. Chapter 6 “Finite Markov
1 (1): 77–111. doi:10.1145/343369.343384. Chains”.
• Mitchell, Tom M. (1997). Machine Learning (1st • Finite State Automata at DMOZ
ed.). New York: WCB/McGraw-Hill Corporation. • Modeling a Simple AI behavior using a Finite State
ISBN 0-07-042807-7. Machine Example of usage in Video Games
• Booth, Taylor L. (1967). Sequential Machines and • Interactive FSM: Control Circuit, demonstrates the
Automata Theory (1st ed.). New York: John Wiley logic flow of the Finite State Machines.
and Sons, Inc. Library of Congress Card Catalog
• FSM simulator, simulates DFAs, NFAs and ε-
Number 67-25924.
NFAs, including generated by regular expression.
• Booth, Taylor L. (1971). Digital Networks and Com-
puter Systems (1st ed.). New York: John Wiley and
Sons, Inc. ISBN 0-471-08840-4.
Chapter 25
145
146 CHAPTER 25. GENERAL INTER-ORB PROTOCOL
HTML
147
148 CHAPTER 26. HTML
the Web by extending HTML features.”[13] • XHTML 1.0,[49] published January 26, 2000, as a
W3C Recommendation, later revised and repub-
January 2008 HTML5 was published as a Working lished August 1, 2002. It offers the same three
Draft (link) by the W3C.[38] variations as HTML 4.0 and 4.01, reformulated in
XML, with minor restrictions.
Although its syntax closely resembles that of SGML,
HTML5 has abandoned any attempt to be an SGML
application and has explicitly defined its own “html” • XHTML 1.1,[50] published May 31, 2001, as a W3C
serialization, in addition to an alternative XML- Recommendation. It is based on XHTML 1.0 Strict,
based XHTML5 serialization.[39] but includes minor changes, can be customized, is
reformulated using modules from Modularization of
2011 HTML5 – Last Call On 14 February 2011, the XHTML, which was published April 10, 2001, as a
W3C extended the charter of its HTML Working W3C Recommendation.
Group with clear milestones for HTML5. In May
2011, the working group advanced HTML5 to “Last
• XHTML 2.0 was a working draft, but work on it was
Call”, an invitation to communities inside and out-
abandoned in 2009 in favor of work on HTML5 and
side W3C to confirm the technical soundness of the
XHTML5.[51][52][53] XHTML 2.0 was incompatible
specification. The W3C developed a comprehen-
with XHTML 1.x and, therefore, would be more ac-
sive test suite to achieve broad interoperability for
curately characterized as an XHTML-inspired new
the full specification by 2014, which was the target
language than an update to XHTML 1.x.
date for recommendation.[40] In January 2011, the
WHATWG renamed its “HTML5” living standard
to “HTML”. The W3C nevertheless continues its • An XHTML syntax, known as “XHTML5.1”, is
project to release HTML5.[41] being defined alongside HTML5 in the HTML5
draft.[54]
2012 HTML5 – Candidate Recommendation In July
2012, WHATWG and W3C decided on a degree of
separation. W3C will continue the HTML5 specifi-
cation work, focusing on a single definitive standard,
which is considered as a “snapshot” by WHATWG.
26.2 Markup
The WHATWG organization will continue its work
with HTML5 as a “Living Standard”. The con- HTML markup consists of several key components, in-
cluding those called tags (and their attributes), character-
cept of a living standard is that it is never complete
based data types, character references and entity refer-
and is always being updated and improved. New
ences. HTML tags most commonly come in pairs like
features can be added but functionality will not be
removed.[42] <h1> and </h1>, although some represent empty elements
and so are unpaired, for example <img>. The first tag in
In December 2012, W3C designated HTML5 as a such a pair is the start tag, and the second is the end tag
Candidate Recommendation.[43] The criterion (they are also called opening tags and closing tags).
for advancement to W3C Recommendation is
Another important component is the HTML document
“two 100% complete and fully interoperable
type declaration, which triggers standards mode render-
implementations”.[44][45]
ing.
The following is an example of the classic Hello
2014 HTML5 – Proposed Recommendation and Recommendation
In September 2014, W3C moved HTML5 to Pro- world program, a common test employed for comparing
posed Recommendation.[46] programming languages, scripting languages and markup
languages. This example is made using 9 lines of code:
On 28 October 2014, HTML5 was released as a stable
<!DOCTYPE html> <html> <head> <title>This is
W3C Recommendation,[47] meaning the specifica-
[48] a title</title> </head> <body> <p>Hello world!</p>
tion process is complete.
</body> </html>
XHTML versions (The text between <html> and </html> describes the web
page, and the text between <body> and </body> is the
Main article: XHTML visible page content. The markup text "<title>This is a ti-
tle</title>" defines the browser page title.)
XHTML is a separate language that began as a reformula- The Document Type Declaration <!DOCTYPE html> is
tion of HTML 4.01 using XML 1.0. It is no longer being for HTML5. If a declaration is not included, various
developed as a separate standard. browsers will revert to "quirks mode" for rendering.[55]
26.2. MARKUP 151
elements have become deprecated under the HTML may be specified; for example class="notation im-
4.0 specification in favor of using CSS for styling. portant” puts the element into both the “notation”
and the “important” classes.
Hypertext markup makes parts of a document into
links to other documents • An author may use the style attribute to assign pre-
An anchor element creates a hyperlink in the doc- sentational properties to a particular element. It is
ument and its href attribute sets the link’s target considered better practice to use an element’s id or
URL. For example, the HTML markup, <a class attributes to select the element from within a
href="http://www.google.com/">Wikipedia</a>, stylesheet, though sometimes this can be too cum-
will render the word "Wikipedia" as a hyperlink. bersome for a simple, specific, or ad hoc styling.
To render an image as a hyperlink, an “img”
element is inserted as content into the “a” el- • The title attribute is used to attach subtextual expla-
ement. Like “br”, “img” is an empty element nation to an element. In most browsers this attribute
with attributes but no content or closing tag. <a is displayed as a tooltip.
href="http://example.org"><img src="image.gif”
alt="descriptive text” width="50” height="50” • The lang attribute identifies the natural language
border="0"></a>. of the element’s contents, which may be different
from that of the rest of the document. For example,
in an English-language document:
Attributes <p>Oh well, <span lang="fr">c'est la vie</span>,
as they say in France.</p>
Main article: HTML attribute
Most of the attributes of an element are name-value pairs, The abbreviation element, abbr, can be used to demon-
separated by "=" and written within the start tag of an strate some of these attributes :
element after the element’s name. The value may be en- <abbr id="anId” class="jargon” style="color:purple;"
closed in single or double quotes, although values consist- title="Hypertext Markup Language">HTML</abbr>
ing of certain characters can be left unquoted in HTML
(but not XHTML) .[58][59] Leaving attribute values un-
quoted is considered unsafe.[60] In contrast with name- This example displays as HTML; in most browsers, point-
value pair attributes, there are some attributes that af- ing the cursor at the abbreviation should display the title
fect the element simply by their presence in the start tag text “Hypertext Markup Language.”
of the element,[6] like the ismap attribute for the imgMost elements take the language-related attribute dir to
element.[61] specify text direction, such as with “rtl” for right-to-left
[62]
There are several common attributes that may appear in text in, for example, Arabic, Persian or Hebrew.
many elements :
26.2.2 Character and entity references
• The id attribute provides a document-wide unique
identifier for an element. This is used to identify See also: List of XML and HTML character entity
the element so that stylesheets can alter its presen- references and Unicode and HTML
tational properties, and scripts may alter, animate
or delete its contents or presentation. Appended to
As of version 4.0, HTML defines a set of 252 character
the URL of the page, it provides a globally unique
entity references and a set of 1,114,050 numeric charac-
identifier for the element, typically a sub-section
ter references, both of which allow individual characters
of the page. For example, the ID “Attributes” in
to be written via simple markup, rather than literally. A
http://en.wikipedia.org/wiki/HTML#Attributes
literal character and its markup counterpart are consid-
• The class attribute provides a way of classifying ered equivalent and are rendered identically.
similar elements. This can be used for semantic The ability to “escape” characters in this way allows for
or presentation purposes. For example, an HTML the characters < and & (when written as < and &,
document might semantically use the designation respectively) to be interpreted as character data, rather
class="notation” to indicate that all elements with than markup. For example, a literal < normally indicates
this class value are subordinate to the main text of the start of a tag, and & normally indicates the start of
the document. In presentation, such elements might a character entity reference or numeric character refer-
be gathered together and presented as footnotes on ence; writing it as & or & or & allows &
a page instead of appearing in the place where they to be included in the content of an element or in the value
occur in the HTML source. Class attributes are used of an attribute. The double-quote character ("), when not
semantically in microformats. Multiple class values used to quote an attribute value, must also be escaped as
26.3. SEMANTIC HTML 153
" or " or " when it appears within the at- An example of an HTML 4 doctype
tribute value itself. Equivalently, the single-quote charac- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML
ter ('), when not used to quote an attribute value, must also 4.01//EN” "http://www.w3.org/TR/html4/strict.dtd">
be escaped as ' or ' (or as ' in HTML5
or XHTML documents[63][64] ) when it appears within the
attribute value itself. If document authors overlook the This declaration references the DTD for the “strict” ver-
need to escape such characters, some browsers can be sion of HTML 4.01. SGML-based validators read the
very forgiving and try to use context to guess their in- DTD in order to properly parse the document and to per-
tent. The result is still invalid markup, which makes the form validation. In modern browsers, a valid doctype ac-
document less accessible to other browsers and to other tivates standards mode as opposed to quirks mode.
user agents that may try to parse the document for search In addition, HTML 4.01 provides Transitional and
and indexing purposes for example. Frameset DTDs, as explained below. Transitional type
Escaping also allows for characters that are not eas- is the most inclusive, incorporating current tags as well as
ily typed, or that are not available in the document’s older or “deprecated” tags, with the Strict DTD exclud-
character encoding, to be represented within element and ing deprecated tags. Frameset has all tags necessary to
attribute content. For example, the acute-accented e (é), make frames on a page along with the tags included in
a character typically found only on Western European transitional type.
and South American keyboards, can be written in any
HTML document as the entity reference é or as
the numeric references é or é, using charac-
ters that are available on all keyboards and are supported
26.3 Semantic HTML
in all character encodings. Unicode character encodings
such as UTF-8 are compatible with all modern browsers Main article: Semantic HTML
and allow direct access to almost all the characters of the
world’s writing systems.[65] Semantic HTML is a way of writing HTML that empha-
sizes the meaning of the encoded information over its pre-
sentation (look). HTML has included semantic markup
26.2.3 Data types from its inception,[67] but has also included presentational
markup, such as <font>, <i> and <center> tags. There are
HTML defines several data types for element content, also the semantically neutral span and div tags. Since the
such as script data and stylesheet data, and a plethora of late 1990s when Cascading Style Sheets were beginning
types for attribute values, including IDs, names, URIs, to work in most browsers, web authors have been encour-
numbers, units of length, languages, media descriptors, aged to avoid the use of presentational HTML markup
colors, character encodings, dates and times, and so on. with a view to the separation of presentation and con-
All of these data types are specializations of character tent.[68]
data.
In a 2001 discussion of the Semantic Web, Tim Berners-
Lee and others gave examples of ways in which intelli-
26.2.4 Document type declaration gent software “agents” may one day automatically crawl
the web and find, filter and correlate previously unrelated,
[69]
HTML documents are required to start with a Document published facts for the benefit of human users. Such
Type Declaration (informally, a “doctype”). In browsers, agents are not commonplace even now, but some of the
the doctype helps to define the rendering mode— ideas of Web 2.0, mashups and price comparison web-
particularly whether to use quirks mode. sites may be coming close. The main difference between
these web application hybrids and Berners-Lee’s seman-
The original purpose of the doctype was to enable pars- tic agents lies in the fact that the current aggregation and
ing and validation of HTML documents by SGML tools hybridization of information is usually designed in by web
based on the Document Type Definition (DTD). The developers, who already know the web locations and the
DTD to which the DOCTYPE refers contains a machine- API semantics of the specific data they wish to mash,
readable grammar specifying the permitted and prohib- compare and combine.
ited content for a document conforming to such a DTD.
Browsers, on the other hand, do not implement HTML as An important type of web agent that does crawl and
an application of SGML and by consequence do not read read web pages automatically, without prior knowledge
the DTD. of what it might find, is the web crawler or search-engine
spider. These software agents are dependent on the se-
HTML5 does not define a DTD; therefore, in HTML5 the mantic clarity of web pages they find as they use various
doctype declaration is simpler and shorter:[66] techniques and algorithms to read and index millions of
<!DOCTYPE html> web pages a day and provide web users with search fa-
cilities without which the World Wide Web’s usefulness
154 CHAPTER 26. HTML
standards existed in the early years of the language. formed XHTML 1.0 document that adheres to Appendix
Though its creators originally conceived of HTML as C (see below) into a valid HTML 4.01 document. To
a semantic language devoid of presentation details,[76] make this translation requires the following steps:
practical uses pushed many presentational elements and
attributes into the language, driven largely by the vari- 1. The language for an element should be specified
ous browser vendors. The latest standards surrounding with a lang attribute rather than the XHTML
HTML reflect efforts to overcome the sometimes chaotic xml:lang attribute. XHTML uses XML’s built in
development of the language[77] and to create a ratio- language-defining functionality attribute.
nal foundation for building both meaningful and well-
presented documents. To return HTML to its role as a se- 2. Remove the XML namespace (xmlns=URI).
mantic language, the W3C has developed style languages HTML has no facilities for namespaces.
such as CSS and XSL to shoulder the burden of presenta-
tion. In conjunction, the HTML specification has slowly 3. Change the document type declaration from
reined in the presentational elements. XHTML 1.0 to HTML 4.01. (see DTD section for
There are two axes differentiating various variations of further explanation).
HTML as currently specified: SGML-based HTML ver-
4. If present, remove the XML declaration. (Typ-
sus XML-based HTML (referred to as XHTML) on one
ically this is: <?xml version="1.0” encoding="utf-
axis, and strict versus transitional (loose) versus frameset
8"?>).
on the other axis.
5. Ensure that the document’s MIME type is set
26.5.1 SGML-based versus XML-based to text/html. For both HTML and XHTML, this
comes from the HTTP Content-Type header sent by
HTML the server.
One difference in the latest HTML specifications lies 6. Change the XML empty-element syntax to an
in the distinction between the SGML-based specifica- HTML style empty element (<br/> to <br>).
tion and the XML-based specification. The XML-based
specification is usually called XHTML to distinguish it
clearly from the more traditional definition. However, Those are the main changes necessary to translate a doc-
the root element name continues to be “html” even in the ument from XHTML 1.0 to HTML 4.01. To translate
XHTML-specified HTML. The W3C intended XHTML from HTML to XHTML would also require the addition
1.0 to be identical to HTML 4.01 except where limi- of any omitted opening or closing tags. Whether coding
tations of XML over the more complex SGML require in HTML or XHTML it may just be best to always in-
workarounds. Because XHTML and HTML are closely clude the optional tags within an HTML document rather
related, they are sometimes documented in parallel. In than remembering which tags can be omitted.
such circumstances, some authors conflate the two names A well-formed XHTML document adheres to all the syn-
as (X)HTML or X(HTML). tax requirements of XML. A valid document adheres to
Like HTML 4.01, XHTML 1.0 has three sub- the content specification for XHTML, which describes
specifications: strict, transitional and frameset. the document structure.
Aside from the different opening declarations for a doc- The W3C recommends several conventions to ensure an
ument, the differences between an HTML 4.01 and easy migration between HTML and XHTML (see HTML
XHTML 1.0 document—in each of the corresponding Compatibility Guidelines). The following steps can be
DTDs—are largely syntactic. The underlying syntax of applied to XHTML 1.0 documents only:
HTML allows many shortcuts that XHTML does not,
such as elements with optional opening or closing tags, • Include both xml:lang and lang attributes on any el-
and even empty elements which must not have an end ements assigning language.
tag. By contrast, XHTML requires all elements to have an
opening tag and a closing tag. XHTML, however, also in- • Use the empty-element syntax only for elements
troduces a new shortcut: an XHTML tag may be opened specified as empty in HTML.
and closed within the same tag, by including a slash before
the end of the tag like this: <br/>. The introduction of • Include an extra space in empty-element tags: for
this shorthand, which is not used in the SGML declaration example <br /> instead of <br>.
for HTML 4.01, may confuse earlier software unfamiliar
• Include explicit close tags for elements that per-
with this new convention. A fix for this is to include a
mit content but are left empty (for example,
space before closing the tag, as such: <br />.[78]
<div></div>, not <div />).
To understand the subtle differences between HTML and
XHTML, consider the transformation of a valid and well- • Omit the XML declaration.
156 CHAPTER 26. HTML
By carefully following the W3C’s compatibility guide- • align (Deprecated. use CSS instead.), border,
lines, a user agent should be able to interpret the docu- vspace and hspace attributes on img and ob-
ment equally as HTML or XHTML. For documents that ject (caution: the object element is only sup-
are XHTML 1.0 and have been made compatible in this ported in Internet Explorer (from the major
way, the W3C permits them to be served either as HTML browsers)) elements
(with a text/html MIME type), or as XHTML (with an
• align (Deprecated. use CSS instead.) attribute
application/xhtml+xml or application/xml MIME type).
on legend and caption elements
When delivered as XHTML, browsers should use an
XML parser, which adheres strictly to the XML speci- • align (Deprecated. use CSS instead.) and bg-
fications for parsing the document’s contents. color (Deprecated. use CSS instead.) on table
element
• nowrap (Obsolete), bgcolor (Deprecated. use
26.5.2 Transitional versus strict
CSS instead.), width, height on td and th ele-
ments
HTML 4 defined three different versions of the language:
Strict, Transitional (once called Loose) and Frameset. • bgcolor (Deprecated. use CSS instead.) at-
The Strict version is intended for new documents and tribute on tr element
is considered best practice, while the Transitional and • clear (Obsolete) attribute on br element
Frameset versions were developed to make it easier to
transition documents that conformed to older HTML • compact attribute on dl, dir and menu elements
specification or didn't conform to any specification to a • type (Deprecated. use CSS instead.), com-
version of HTML 4. The Transitional and Frameset ver- pact (Deprecated. use CSS instead.) and start
sions allow for presentational markup, which is omitted (Deprecated. use CSS instead.) attributes on
in the Strict version. Instead, cascading style sheets are ol and ul elements
encouraged to improve the presentation of HTML docu-
ments. Because XHTML 1 only defines an XML syntax • type and value attributes on li element
for the language defined by HTML 4, the same differ- • width attribute on pre element
ences apply to XHTML 1 as well.
• Additional elements in Transitional specification
The Transitional version allows the following parts of the
vocabulary, which are not included in the Strict version: • menu (Deprecated. use CSS instead.) list
(no substitute, though unordered list is recom-
• A looser content model
mended)
• Inline elements and plain text are allowed di-
• dir (Deprecated. use CSS instead.) list (no
rectly in: body, blockquote, form, noscript and
substitute, though unordered list is recom-
noframes
mended)
• Presentation related elements • isindex (Deprecated.) (element requires
• underline (u)(Deprecated. can confuse a visi- server-side support and is typically added to
tor with a hyperlink.) documents server-side, form and input ele-
• strike-through (s) ments can be used as a substitute)
• center (Deprecated. use CSS instead.) • applet (Deprecated. use the object element in-
• font (Deprecated. use CSS instead.) stead.)
• basefont (Deprecated. use CSS instead.)
• The language (Obsolete) attribute on script ele-
• Presentation related attributes ment (redundant with the type attribute).
• background (Deprecated. use CSS instead.) • Frame related entities
and bgcolor (Deprecated. use CSS instead.)
attributes for body (required element accord- • iframe
ing to the W3C.) element.
• noframes
• align (Deprecated. use CSS instead.) at-
tribute on div, form, paragraph (p) and head- • target (Deprecated in the map, link and form
ing (h1...h6) elements elements.) attribute on a, client-side image-
• align (Deprecated. use CSS instead.), noshade map (map), link, form and base elements
(Deprecated. use CSS instead.), size (Depre-
cated. use CSS instead.) and width (Depre- The Frameset version includes everything in the Transi-
cated. use CSS instead.) attributes on hr ele- tional version, as well as the frameset element (used in-
ment stead of body) and the frame element.
26.7. HYPERTEXT FEATURES NOT IN HTML 157
26.5.3 Frameset versus transitional other, i.e., the work on HTML5 started with an older
WHATWG draft, and later the WHATWG living stan-
In addition to the above transitional differences, the dard was based on HTML5 drafts in 2011.[79][80]
frameset specifications (whether XHTML 1.0 or HTML
4.01) specify a different content model, with frameset re-
placing body, that contains either frame elements, or op- 26.7 Hypertext features not in
tionally noframes with a body.
HTML
26.5.4 Summary of specification versions HTML lacks some of the features found in earlier hy-
pertext systems, such as source tracking, fat links and
As this list demonstrates, the loose versions of the specifi- others.[81] Even some hypertext features that were in early
cation are maintained for legacy support. However, con- versions of HTML have been ignored by most popular
trary to popular misconceptions, the move to XHTML web browsers until recently, such as the link element and
does not imply a removal of this legacy support. Rather in-browser Web page editing.
the X in XML stands for extensible and the W3C is
modularizing the entire specification and opening it up Sometimes Web services or browser manufacturers rem-
to independent extensions. The primary achievement edy these shortcomings. For instance, wikis and content
in the move from XHTML 1.0 to XHTML 1.1 is the management systems allow surfers to edit the Web pages
modularization of the entire specification. The strict they visit.
version of HTML is deployed in XHTML 1.1 through
a set of modular extensions to the base XHTML 1.1
specification. Likewise, someone looking for the loose 26.8 WYSIWYG editors
(transitional) or frameset specifications will find simi-
lar extended XHTML 1.1 support (much of it is con- There are some WYSIWYG editors (What You See Is
tained in the legacy or frame modules). The modu- What You Get), in which the user lays out everything as it
larization also allows for separate features to develop is to appear in the HTML document using a graphical user
on their own timetable. So for example, XHTML 1.1 interface (GUI), often similar to word processors. The
will allow quicker migration to emerging XML standards editor renders the document rather than show the code,
such as MathML (a presentational and semantic math so authors do not require extensive knowledge of HTML.
language based on XML) and XForms—a new highly
advanced web-form technology to replace the existing The WYSIWYG editing model has been criticized,[82][83]
HTML forms. primarily because of the low quality of the gener-
ated code; there are voices advocating a change to the
In summary, the HTML 4 specification primarily reined WYSIWYM model (What You See Is What You Mean).
in all the various HTML implementations into a single
clearly written specification based on SGML. XHTML WYSIWYG editors remain a controversial topic because
1.0, ported this specification, as is, to the new XML de- of their perceived flaws such as:
fined specification. Next, XHTML 1.1 takes advantage
of the extensible nature of XML and modularizes the • Relying mainly on layout as opposed to meaning, of-
whole specification. XHTML 2.0 was intended to be the ten using markup that does not convey the intended
first step in adding new features to the specification in a meaning but simply copies the layout.[84]
standards-body-based approach.
• Often producing extremely verbose and redundant
code that fails to make use of the cascading nature
26.6 HTML5 variations of HTML and CSS.
• Comparison of HTML parsers they were specifications. Internet-Drafts are focal points
for discussion, usually in a working group... Once an
• Dynamic web page Internet-Draft has been published with an RFC number,
it is a specification to which implementers may claim con-
• HTML decimal character rendering formance. It is expected that the authors of the RFC and
the community at large will begin correcting the specifi-
• List of document markup languages
cation with field experience.
• List of XML and HTML character entity references
[11] “HTML+ Internet-Draft — Abstract”. Browser writers
• Microdata (HTML) are experimenting with extensions to HTML and it is now
appropriate to draw these ideas together into a revised
• Microformat document format. The new format is designed to allow a
gradual roll over from HTML, adding features like tables,
• Polyglot HTML captioned figures and fill-out forms for querying remote
databases or mailing questionnaires.
• Semantic HTML
[12] Berners-Lee, Tim; Connelly, Daniel (November 1995).
• W3C (X)HTML Validator “RFC 1866 – Hypertext Markup Language – 2.0”. Inter-
net Engineering Task Force. Retrieved 1 December 2010.
This document thus defines an HTML 2.0 (to distinguish
26.10 References it from the previous informal specifications). Future (gen-
erally upwardly compatible) versions of HTML with new
features will be released with higher version numbers.
[1] Flanagan, David. JavaScript - The definitive guide (6 ed.).
p. 1. JavaScript is part of the triad of technologies that [13] Raggett, Dave (1998). Raggett on HTML 4. Retrieved July
all Web developers must learn: HTML to specify the con- 9, 2007.
tent of web pages, CSS to specify the presentation of web
pages, and JavaScript to specify the behaviour of web [14] “HTML5 – Hypertext Markup Language – 5.0”. Internet
pages. Engineering Task Force. 28 October 2014. Retrieved 25
November 2014. This document recommends HTML 5.0
[2] “HTML 4.0 Specification — W3C Recommendation after completion.
— Conformance: requirements and recommendations”.
World Wide Web Consortium. December 18, 1997. Re- [15] “HTML 3.2 Reference Specification”. World Wide Web
trieved July 6, 2015. Consortium. January 14, 1997. Retrieved November 16,
2008.
[3] Tim Berners-Lee, “Information Management: A Pro-
posal.” CERN (March 1989, May 1990). W3.org [16] “IETF HTML WG”. Retrieved June 16, 2007. Note: This
working group is closed
[4] Tim Berners-Lee, “Design Issues”
[17] Arnoud Engelfriet. “Introduction to Wilbur”. Web De-
[5] Tim Berners-Lee, “Design Issues” sign Group. Retrieved June 16, 2007.
[6] “Tags used in HTML”. World Wide Web Consortium. [18] “HTML 4.0 Specification”. World Wide Web Consor-
November 3, 1992. Retrieved November 16, 2008. tium. December 18, 1997. Retrieved November 16,
2008.
[7] “First mention of HTML Tags on the www-talk mailing
list”. World Wide Web Consortium. October 29, 1991. [19] “HTML 4 – 4 Conformance: requirements and recom-
Retrieved April 8, 2007. mendations”. Retrieved December 30, 2009.
[8] “Index of elements in HTML 4”. World Wide Web Con- [20] “HTML 4.0 Specification”. World Wide Web Consor-
sortium. December 24, 1999. Retrieved April 8, 2007. tium. April 24, 1998. Retrieved November 16, 2008.
[9] Tim Berners-Lee (December 9, 1991). “Re:
[21] “HTML 4.01 Specification”. World Wide Web Consor-
SGML/HTML docs, X Browser (archived www-
tium. December 24, 1999. Retrieved November 16,
talk mailing list post)". Retrieved June 16, 2007. SGML
2008.
is very general. HTML is a specific application of the
SGML basic syntax applied to hypertext documents with [22] ISO (2000). “ISO/IEC 15445:2000 – Information tech-
simple structure. nology – Document description and processing languages
– HyperText Markup Language (HTML)". Retrieved De-
[10] Raymond, Eric. “IETF and the RFC Standards Process”.
cember 26, 2009.
The Art of Unix Programming. In IETF tradition, stan-
dards have to arise from experience with a working proto- [23] Cs.Tcd.Ie. Cs.Tcd.Ie (2000-05-15). Retrieved on 2012-
type implementation — but once they become standards, 02-16.
code that does not conform to them is considered broken
and mercilessly scrapped. ...Internet-Drafts are not spec- [24] “HTML5: A vocabulary and associated APIs for HTML
ifications; software implementers and vendors are specif- and XHTML”. World Wide Web Consortium. 28 Octo-
ically barred from claiming compliance with them as if ber 2014. Retrieved 31 October 2014.
26.10. REFERENCES 159
[25] “Open Web Platform Milestone Achieved with HTML5 [43] “HTML5”. W3.org. 2012-12-17. Retrieved 2013-06-15.
Recommendation” (Press release). World Wide Web
Consortium. 28 October 2014. Retrieved 31 October [44] “When Will HTML5 Be Finished?". FAQ. WHAT Work-
2014. ing Group. Retrieved 29 November 2009.
[26] Connolly, Daniel (6 June 1992). “MIME as a hypertext [45] “HTML5: A vocabulary and associated APIs for HTML
architecture”. CERN. Retrieved 24 October 2010. and XHTML (Editor’s Draft).”. World Wide Web Con-
sortium. Retrieved 12 April 2010.
[27] Connolly, Daniel (15 July 1992). “HTML DTD en-
closed”. CERN. Retrieved 24 October 2010. [46] “Call for Review: HTML5 Proposed Recommendation
Published W3C News”. W3.org. 2014-09-16. Retrieved
[28] Connolly, Daniel (18 August 1992). “document type dec- 2014-09-27.
laration subset for Hyper Text Markup Language as de-
fined by the World Wide Web project”. CERN. Retrieved [47] “Open Web Platform Milestone Achieved with HTML5
24 October 2010. Recommendation”. W3C. 28 October 2014. Retrieved
29 October 2014.
[29] Connolly, Daniel (24 November 1992). “Document Type
Definition for the Hyper Text Markup Language as used [48] “HTML5 specification finalized, squabbling over specs
by the World Wide Web application”. CERN. Retrieved continues”. Ars Technica. 2014-10-29. Retrieved 2014-
24 October 2010. See section “Revision History” 10-29.
[30] Berners-Lee, Tim; Connolly, Daniel (June 1993). “Hyper [49] “XHTML 1.0: The Extensible HyperText Markup Lan-
Text Markup Language (HTML) Internet Draft version guage (Second Edition)". World Wide Web Consortium.
1.1”. IETF IIIR Working Group. Retrieved 18 September January 26, 2000. Retrieved November 16, 2008.
2010. [50] “XHTML 1.1 – Module-based XHTML — Second Edi-
[31] Berners-Lee, Tim; Connolly, Daniel (June 1993). tion”. World Wide Web Consortium. February 16, 2007.
“Hypertext Markup Language (HTML) Internet Draft Retrieved November 16, 2008.
version 1.2”. IETF IIIR Working Group. Retrieved 18 [51] “XHTM 2.0”. World Wide Web Consortium. July 26,
September 2010. 2006. Retrieved November 16, 2008.
[32] Berners-Lee, Tim; Connolly, Daniel (28 November [52] “XHTML 2 Working Group Expected to Stop Work End
1994). “HyperText Markup Language Specification – of 2009, W3C to Increase Resources on HTML5”. World
2.0 INTERNET DRAFT”. IETF. Retrieved 24 October Wide Web Consortium. July 17, 2009. Retrieved Novem-
2010. ber 16, 2008.
[33] “HTML 3.0 Draft (Expired!) Materials”. World Wide [53] “W3C XHTML FAQ”.
Web Consortium. December 21, 1995. Retrieved
November 16, 2008. [54] “HTML5”. W3C. 19 October 2013.
[34] “HyperText Markup Language Specification Version 3.0”. [55] Activating Browser Modes with Doctype. Hsivonen.iki.fi.
Retrieved June 16, 2007. Retrieved on 2012-02-16.
[35] Raggett, Dave (28 March 1995). “HyperText Markup [56] “HTML Elements”. w3schools. Retrieved 16 March
Language Specification Version 3.0”. HTML 3.0 Internet 2015.
Draft Expires in six months. World Wide Web Consor-
tium. Retrieved 17 June 2010. [57] “CSS Introduction”. W3schools. Retrieved 16 March
2015.
[36] Bowers, Neil. “Weblint: Just Another Perl Hack”.
[58] “On SGML and HTML”. World Wide Web Consortium.
[37] Lie, Håkon Wium; Bos, Bert (April 1997). Cascading Retrieved November 16, 2008.
style sheets: designing for the Web. Addison Wesley Long-
man. p. 263. Retrieved 9 June 2010. [59] “XHTML 1.0 – Differences with HTML 4”. World Wide
Web Consortium. Retrieved November 16, 2008.
[38] “HTML5”. World Wide Web Consortium. June 10,
2008. Retrieved November 16, 2008. [60] Korpela, Jukka (July 6, 1998). “Why attribute values
should always be quoted in HTML”. Cs.tut.fi. Retrieved
[39] “HTML5, one vocabulary, two serializations”. Retrieved November 16, 2008.
February 25, 2009.
[61] “Objects, Images, and Applets in HTML documents”.
[40] “W3C Confirms May 2011 for HTML5 Last Call, Targets World Wide Web Consortium. December 24, 1999. Re-
2014 for HTML5 Standard”. World Wide Web Consor- trieved November 16, 2008.
tium. 14 February 2011. Retrieved 18 February 2011.
[62] “H56: Using the dir attribute on an inline element to re-
[41] Hickson, Ian. “HTML Is the New HTML5”. Retrieved solve problems with nested directional runs”. Techniques
21 January 2011. for WCAG 2.0. W3C. Retrieved 18 September 2010.
[42] “HTML5 gets the splits.”. netmagazine.com. Retrieved [63] “Character Entity Reference Chart”. World Wide Web
23 July 2012. Consortium. October 24, 2012.
160 CHAPTER 26. HTML
[64] “The Named Character Reference '". World Wide [79] Hickson, Ian (2011-01-19). “HTML is the new HTML5”.
Web Consortium. January 26, 2000. The WHATWG blog. Retrieved 2013-01-14.
[65] “The Unicode Standard: A Technical Introduction”. Re- [80] “HTML5 — Smile, it’s a Snapshot!". W3C Blog. 2012-
trieved 2010-03-16. 12-17. Retrieved 2013-01-14.
[66] “HTML: The Markup Language (an HTML language ref- [81] Jakob Nielsen (January 3, 2005). “Reviving Advanced
erence)". Retrieved 2013-08-19. Hypertext”. Retrieved June 16, 2007.
[67] Berners-Lee, Tim; Fischetti, Mark (2000). Weaving the [82] Sauer, C.: WYSIWIKI – Questioning WYSIWYG in the
Web: The Original Design and Ultimate Destiny of the Internet Age. In: Wikimania (2006)
World Wide Web by Its Inventor. San Francisco: Harper.
ISBN 978-0-06-251587-2. [83] Spiesser, J., Kitchen, L.: Optimization of HTML auto-
matically generated by WYSIWYG programs. In: 13th
[68] Raggett, Dave (2002). “Adding a touch of style”. W3C. International Conference on World Wide Web, pp. 355—
Retrieved October 2, 2009. This article notes that pre- 364. WWW '04. ACM, New York, NY (New York, NY,
sentational HTML markup may be useful when targeting U.S., May 17–20, 2004)
browsers “before Netscape 4.0 and Internet Explorer 4.0”.
See the list of web browsers to confirm that these were [84] XHTML Reference: blockquote. Xhtml.com. Retrieved
both released in 1997. on 2012-02-16.
[69] Tim Berners-Lee, James Hendler and Ora Lassila (2001). [85] Doug Engelbart’s INVISIBLE REVOLUTION . Invisi-
“The Semantic Web”. Scientific American. Retrieved blerevolution.net. Retrieved on 2012-02-16.
October 2, 2009.
The Hypertext Transfer Protocol (HTTP) is an ample, may be the client and an application running on
application protocol for distributed, collaborative, a computer hosting a web site may be the server. The
hypermedia information systems.[1] HTTP is the foun- client submits an HTTP request message to the server.
dation of data communication for the World Wide The server, which provides resources such as HTML files
Web. and other content, or performs other functions on behalf
of the client, returns a response message to the client. The
Hypertext is structured text that uses logical links
(hyperlinks) between nodes containing text. HTTP is the response contains completion status information about
the request and may also contain requested content in its
protocol to exchange or transfer hypertext.
message body.
Development of HTTP was initiated by Tim Berners-
Lee at CERN in 1989. Standards development of HTTP A web browser is an example of a user agent (UA). Other
was coordinated by the Internet Engineering Task Force types of user agent include the indexing software used by
(IETF) and the World Wide Web Consortium (W3C), search providers (web crawlers), voice browsers, mobile
culminating in the publication of a series of Requests for apps, and other software that accesses, consumes, or dis-
Comments (RFCs). The first definition of HTTP/1.1, plays web content.
the version of HTTP in common use, occurred in RFC HTTP is designed to permit intermediate network el-
2068 in 1997, although this was obsoleted by RFC 2616 ements to improve or enable communications between
in 1999. clients and servers. High-traffic websites often bene-
A later version, the successor HTTP/2, was standardized fit from web cache servers that deliver content on be-
half of upstream servers to improve response time. Web
in 2015, and is now supported by major web servers.
browsers cache previously accessed web resources and
reuse them when possible to reduce network traffic.
HTTP proxy servers at private network boundaries can
27.1 Technical overview facilitate communication for clients without a globally
routable address, by relaying messages with external
servers.
HTTP is an application layer protocol designed within
the framework of the Internet Protocol Suite. Its defini-
tion presumes an underlying and reliable transport layer
protocol,[2] and Transmission Control Protocol (TCP) is
commonly used. However HTTP can be adapted to use
unreliable protocols such as the User Datagram Protocol
(UDP), for example in HTTPU and Simple Service Dis-
covery Protocol (SSDP).
HTTP resources are identified and located on the network
by uniform resource locators (URLs), using the uniform
resource identifier (URI) schemes http and https. URIs
and hyperlinks in Hypertext Markup Language (HTML)
documents form inter-linked hypertext documents.
URL beginning with the HTTP scheme and the WWW domain HTTP/1.1 is a revision of the original HTTP (HTTP/1.0).
name label. In HTTP/1.0 a separate connection to the same server
is made for every resource request. HTTP/1.1 can
HTTP functions as a request–response protocol in the reuse a connection multiple times to download images,
client–server computing model. A web browser, for ex- scripts, stylesheets, etc after the page has been deliv-
161
162 CHAPTER 27. HYPERTEXT TRANSFER PROTOCOL
ered. HTTP/1.1 communications therefore experience were HTTP/1.1 compliant.[9] The HTTP/1.1 standard as
less latency as the establishment of TCP connections defined in RFC 2068 was officially released in January
presents considerable overhead. 1997. Improvements and updates to the HTTP/1.1 stan-
dard were released under RFC 2616 in June 1999.
In 2007, the HTTPbis Working Group was formed, in
27.2 History part, to revise and clarify the HTTP/1.1 specification. In
June 2014, the WG released an updated six-part specifi-
cation obsoleting RFC 2616:
value string, if present, is combined with the canonical written in response headers, without having to trans-
root URI to form the protection space component of the port the entire content.
challenge. This in effect allows the server to define sepa-
rate authentication scopes under one root URI[10] POST The POST method requests that the server ac-
cept the entity enclosed in the request as a new sub-
ordinate of the web resource identified by the URI.
The data POSTed might be, for example, an annota-
27.5 Request methods tion for existing resources; a message for a bulletin
board, newsgroup, mailing list, or comment thread;
a block of data that is the result of submitting a web
form to a data-handling process; or an item to add
to a database.[14]
GET The GET method requests a representation of the Some of the methods (for example, HEAD, GET, OP-
specified resource. Requests using GET should only TIONS and TRACE) are, by convention, defined as safe,
retrieve data and should have no other effect. (This which means they are intended only for information re-
is also true of some other HTTP methods.)[1] The trieval and should not change the state of the server. In
W3C has published guidance principles on this dis- other words, they should not have side effects, beyond
tinction, saying, "Web application design should be relatively harmless effects such as logging, caching, the
serving of banner advertisements or incrementing a web
informed by the above principles, but also by the rel-
evant limitations.”[13] See safe methods below. counter. Making arbitrary GET requests without regard
to the context of the application’s state should therefore
HEAD The HEAD method asks for a response identical be considered safe. However, this is not mandated by the
to that of a GET request, but without the response standard, and it is explicitly acknowledged that it cannot
body. This is useful for retrieving meta-information be guaranteed.
164 CHAPTER 27. HYPERTEXT TRANSFER PROTOCOL
Version 1.1 of the protocol also made bandwidth op- 27.11 Response message
timization improvements to HTTP/1.0. For example,
HTTP/1.1 introduced chunked transfer encoding to allow The response message consists of the following:
content on persistent connections to be streamed rather
than buffered. HTTP pipelining further reduces lag time, • A status line which includes the status code and rea-
allowing clients to send multiple requests before waiting son message (e.g., HTTP/1.1 200 OK, which indi-
for each response. Another addition to the protocol was cates that the client’s request succeeded).
byte serving, where a server transmits just the portion of
a resource explicitly requested by a client. • Response header fields (e.g., Content-Type:
text/html).
• An empty line.
27.8 HTTP session state • An optional message body.
HTTP is a stateless protocol. A stateless protocol does The status line and other header fields must all end
not require the HTTP server to retain information or sta- with <CR><LF>. The empty line must consist of only
tus about each user for the duration of multiple requests. <CR><LF> and no other whitespace.[27] This strict re-
However, some web applications implement states or quirement for <CR><LF> is relaxed somewhat within
server side sessions using for instance HTTP cookies or message bodies for consistent use of other system line-
hidden variables within web forms. breaks such as <CR> or <LF> alone.[29]
Content-Type specifies the Internet media type of the data • List of HTTP header fields
conveyed by the HTTP message, while Content-Length
indicates its length in bytes. The HTTP/1.1 webserver • List of HTTP status codes
publishes its ability to respond to requests for certain byte • Representational state transfer (REST)
ranges of the document by setting the field Accept-Ranges:
bytes. This is useful, if the client needs to have only cer- • Variant object
tain portions[30] of a resource sent by the server, which
• Waka (protocol) – An HTTP replacement proposed
is called byte serving. When Connection: close is sent, it
by Roy Fielding
means that the web server will close the TCP connection
immediately after the transfer of this response. • Web cache
Most of the header lines are optional. When Content-
• WebSocket
Length is missing the length is determined in other ways.
Chunked transfer encoding uses a chunk size of 0 to mark • Wireshark
the end of the content. Identity encoding without Content-
Length reads content until the socket is closed.
A Content-Encoding like gzip can be used to compress the 27.15 Notes
transmitted data.
[1] Fielding, Roy T.; Gettys, James; Mogul, Jeffrey C.;
Nielsen, Henrik Frystyk; Masinter, Larry; Leach, Paul J.;
Berners-Lee, Tim (June 1999). Hypertext Transfer Proto-
27.13 Similar protocols col -- HTTP/1.1. IETF. RFC 2616. https://tools.ietf.org/
html/rfc2616.
The Gopher protocol was a content delivery protocol that
was displaced by HTTP in the early 1990s. The SPDY [2] “Overall Operation”. p. 12. sec. 1.4. RFC 2616. https:
//tools.ietf.org/html/rfc2616#section-1.4.
protocol is an alternative to HTTP developed at Google,
it is superseded by the new HTTP protocol, HTTP/2. [3] Berners-Lee, Tim. “HyperText Transfer Protocol”.
World Wide Web Consortium. Retrieved 31 August
2010.
27.14 See also [4] Tim Berners-Lee. “The Original HTTP as defined in
1991”. World Wide Web Consortium. Retrieved 24 July
• Basic access authentication 2010.
• Constrained Application Protocol – A semantically [5] Raggett, Dave. “Dave Raggett’s Bio”. World Wide Web
similar protocol to HTTP but used UDP or UDP- Consortium. Retrieved 11 June 2010.
like messages targeted for devices with limited pro- [6] Raggett, Dave; Berners-Lee, Tim. “Hypertext Transfer
cessing capability. Re-uses HTTP and other internet Protocol Working Group”. World Wide Web Consor-
concepts like Internet media type and web linking tium. Retrieved 29 September 2010.
(RFC 5988)[31]
[7] Raggett, Dave. “HTTP WG Plans”. World Wide Web
• Content negotiation Consortium. Retrieved 29 September 2010.
• Curl-loader – HTTP/S loading and testing open- [8] Simon Spero. “Progress on HTTP-NG”. World Wide
source software Web Consortium. Retrieved 11 June 2010.
• HTTPS [13] Jacobs, Ian (2004). “URIs, Addressability, and the use
of HTTP GET and POST”. Technical Architecture Group
• List of file transfer protocols finding. W3C. Retrieved 26 September 2010.
27.17. EXTERNAL LINKS 167
[14] “POST”. p. 54. sec. 9.5. RFC 2616. https://tools.ietf. 27.17 External links
org/html/rfc2616#section-9.5.
[15] “PUT”. p. 55. sec. 9.6. RFC 2616. https://tools.ietf.org/ • “Change History for HTTP”. W3.org. Retrieved
html/rfc2616#section-9.6. 2010-08-01. A detailed technical history of HTTP.
[16] “CONNECT”. Hypertext Transfer Protocol -- HTTP/1.1. • “Design Issues for HTTP”. W3.org. Retrieved
IETF. June 1999. p. 57. sec. 9.9. RFC 2616. https: 2010-08-01. Design Issues by Berners-Lee when he
//tools.ietf.org/html/rfc2616#section-9.9. Retrieved 23 was designing the protocol.
February 2014.
• “Classic HTTP Documents”. W3.org. 1998-05-14.
[17] Khare, Rohit; Lawrence, Scott (May 2000). Upgrading Retrieved 2010-08-01. list of other classic docu-
to TLS Within HTTP/1.1. IETF. RFC 2817. https://tools. ments recounting the early protocol history
ietf.org/html/rfc2817.
27.16 References
• HTTP 0.9 – As Implemented in 1991
Chapter 28
Implementation
Implementation is the realization of an application, or methodology and enlisting professional advice can help
execution of a plan, idea, model, design, specification, but often it is the number of tasks, poor planning and
standard, algorithm, or policy. inadequate resourcing that causes problems with an im-
plementation project, rather than any of the tasks being
particularly difficult. Similarly with the cultural issues it
is often the lack of adequate consultation and two-way
28.1 Industry-specific definitions communication that inhibits achievement of the desired
results.
28.1.1 Computer science
168
28.3. SEE ALSO 169
Types: • What are the most efficient ways of storing this data?
Information
For the criminal process, see Information (formal crimi- content of a message.
nal charge). Information can be encoded into various forms for
Information (shortened as info) is that which informs.
transmission and interpretation (for example, information
may be encoded into a sequence of signs, or transmitted
111 0000 tion, but other units such as the nat may be used. Exam-
ple: information in one “fair” coin flip: log2 (2/1) = 1 bit,
110 0101 and in two fair coin flips is log2 (4/1) = 2 bits.
110 0100 The concept that information is the message has dif-
ferent meanings in different contexts.[2] Thus the con-
170
29.4. AS REPRESENTATION AND COMPLEXITY 171
or even concept. uses the information to guide the bee to the flower, where
The ancient Greek word for information is πληροφορία, the bee often finds nectar or pollen, which are causal in-
which transliterates (plērophoria) from πλήρης (plērēs) puts, serving a nutritional function.
“fully” and φέρω (phorein) frequentative of (pherein) to
carry-through. It literally means “fully bears” or “conveys
fully”. In modern Greek language the word Πληροφορία 29.4 As representation and com-
is still in daily use and has the same meaning as the word
information in English. Unfortunately biblical scholars plexity
have translated (plērophoria) into “full assurance” creat-
ing a connotative meaning of the word. In addition to its The cognitive scientist and applied mathematician
primary meaning, the word Πληροφορία as a symbol has Ronaldo Vigo argues that information is a concept that in-
deep roots in Aristotle’s semiotic triangle. In this regard it volves at least two related entities in order to make quan-
can be interpreted to communicate information to the one titative sense. These are, any dimensionally defined cate-
decoding that specific type of sign. This is something that gory of objects S, and any of its subsets R. R, in essence,
occurs frequently with the etymology of many words in is a representation of S, or, in other words, conveys rep-
ancient and modern Greek language where there is a very resentational (and hence, conceptual) information about
strong denotative relationship between the signifier, e.g. S. Vigo then defines the amount of information that R
the word symbol that conveys a specific encoded interpre- conveys about S as the rate of change in the complexity
tation, and the signified, e.g. a concept whose meaning of S whenever the objects in R are removed from S. Un-
the interpreter attempts to decode. der “Vigo information”, pattern, invariance, complexity,
representation, and information—five fundamental con-
structs of universal science—are unified under a novel
framework.[5][6][7] Among other things, the
29.2 Information theory approach mathematical framework aims to overcome the limitations of Shannon-
Weaver information when attempting to characterize and
Main article: Information theory measure subjective information.
discipline of knowledge management. In this practice, cosmic void can be conceived of as the absence of mate-
tools and processes are used to assist a knowledge worker rial information in space (setting aside the virtual particles
in performing research and making decisions, including that pop in and out of existence due to quantum fluctu-
steps such as: ations, as well as the gravitational field and the dark en-
ergy). Nothingness can be understood then as that within
• reviewing information in order to effectively derive which no space, time, energy, matter, or any other type
value and meaning of information could exist, which would be possible if
symmetry and structure break within the manifold of the
• referencing metadata if any is available multiverse (i.e. the manifold would have tears or holes).
• establishing a relevant context, often selecting from Another link is demonstrated by the Maxwell’s demon
many possible contexts thought experiment. In this experiment, a direct relation-
• deriving new knowledge from the information ship between information and another physical property,
entropy, is demonstrated. A consequence is that it is im-
• making decisions or recommendations from the re- possible to destroy information without increasing the en-
sulting knowledge. tropy of a system; in practical terms this often means gen-
erating heat. Another more philosophical outcome is that
Stewart (2001) argues that the transformation of informa- information could be thought of as interchangeable with
tion into knowledge is a critical one, lying at the core of energy. Toyabe et al. experimentally showed in nature
value creation and competitive advantage for the modern that information can be converted into work.[12] Thus, in
enterprise. the study of logic gates, the theoretical lower bound of
The Danish Dictionary of Information Terms [11]
argues thermal energy released by an AND gate is higher than
that information only provides an answer to a posed ques- for the NOT gate (because information is destroyed in an
tion. Whether the answer provides knowledge depends AND gate and simply converted in a NOT gate). Physical
on the informed person. So a generalized definition of information is of particular importance in the theory of
the concept should be: “Information” = An answer to a quantum computers.
specific question”. In Thermodynamics, information is any kind of event that
When Marshall McLuhan speaks of media and their ef- affects the state of a dynamic system that can interpret the
fects on human cultures, he refers to the structure of information.
artifacts that in turn shape our behaviors and mindsets.
Also, pheromones are often said to be “information” in
this sense. 29.7 The application of informa-
tion study
29.6 As a property in physics The information cycle (addressed as a whole or
in its distinct components) is of great concern to
Main article: Physical information Information Technology, Information Systems, as well
as Information Science. These fields deal with
Information has a well-defined meaning in physics. In those processes and techniques pertaining to informa-
2003 J. D. Bekenstein claimed that a growing trend in tion capture (through sensors) and generation (through
physics was to define the physical world as being made computation, formulation or composition), processing
up of information itself (and thus information is defined (including encoding, encryption, compression, pack-
in this way) (see Digital physics). Examples of this in- aging), transmission (including all telecommunication
clude the phenomenon of quantum entanglement, where methods), presentation (including visualization / display
particles can interact without reference to their separation methods), storage (such as magnetic or optical, including
or the speed of light. Material information itself cannot holographic methods), etc. Information does not cease to
travel faster than light even if that information is transmit-exist, it may only get scrambled beyond any possibility of
ted indirectly. This could lead to all attempts at physically retrieval (within Information Theory, see lossy compres-
observing a particle with an “entangled” relationship to sion; in Physics, the black hole information paradox gets
another being slowed down, even though the particles are solved with the aid of the holographic principle).
not connected in any other way other than by the infor- Information Visualization (shortened as InfoVis) de-
mation they carry. pends on the computation and digital representation of
The mathematical universe hypothesis suggests a new data, and assists users in pattern recognition and anomaly
paradigm, in which virtually everything, from particles detection.
and fields, through biological entities and consciousness,
to the multiverse itself, could be described by mathe- • Partial map of the Internet, with nodes representing
matical patterns of information. By the same token, the IP addresses
29.10. SEMIOTICS 173
• Galactic (including dark) matter distribution in a cu- may also be retained for their informational value. Sound
bic section of the Universe records management ensures that the integrity of records
is preserved for as long as they are required.
• Information embedded in an abstract mathematical
object with symmetry breaking nucleus The international standard on records management, ISO
15489, defines records as “information created, received,
• Visual representation of a strange attractor, with and maintained as evidence and information by an orga-
converted data of its fractal structure nization or person, in pursuance of legal obligations or in
the transaction of business”. The International Commit-
Information Security (shortened as InfoSec) is the on- tee on Archives (ICA) Committee on electronic records
going process of exercising due diligence to protect in- defined a record as, “a specific piece of recorded infor-
formation, and information systems, from unauthorized mation generated, collected or received in the initiation,
access, use, disclosure, destruction, modification, disrup- conduct or completion of an activity and that comprises
tion or distribution, through algorithms and procedures sufficient content, context and structure to provide proof
focused on monitoring and detection, as well as incident or evidence of that activity”.
response and repair. Records may be maintained to retain corporate mem-
Information Analysis is the process of inspecting, trans- ory of the organization or to meet legal, fiscal or
forming, and modelling information, by converting accountability requirements imposed on the organiza-
raw data into actionable knowledge, in support of the tion. Willis (2005) expressed the view that sound
decision-making process. management of business records and information deliv-
ered "...six key requirements for good corporate gover-
Information Quality (InfoQ) is the potential of a dataset nance...transparency; accountability; due process; com-
to achieve a specific (scientific or practical) goal using a pliance; meeting statutory and common law require-
given empirical analysis method.. ments; and security of personal and corporate informa-
Information Communication represents the convergence tion.”
of informatics, telecommunication and audio-visual me-
dia & content.
29.10 Semiotics
29.8 Technologically mediated in- Beynon-Davies[15][16] explains the multi-faceted concept
formation of information in terms of signs and signal-sign systems.
Signs themselves can be considered in terms of four inter-
It is estimated that the world’s technological capacity to dependent levels, layers or branches of semiotics: prag-
store information grew from 2.6 (optimally compressed) matics, semantics, syntax, and empirics. These four lay-
exabytes in 1986 – which is the informational equivalent ers serve to connect the social world on the one hand with
to less than one 730-MB CD-ROM per person (539 MB the physical or technical world on the other.
per person) – to 295 (optimally compressed) exabytes in Pragmatics is concerned with the purpose of communica-
2007.[13] This is the informational equivalent of almost tion. Pragmatics links the issue of signs with the context
61 CD-ROM per person in 2007.[14] within which signs are used. The focus of pragmatics is
The world’s combined technological capacity to receive on the intentions of living agents underlying communica-
information through one-way broadcast networks was the tive behaviour. In other words, pragmatics link language
informational equivalent of 174 newspapers per person to action.
per day in 2007.[13] Semantics is concerned with the meaning of a message
The world’s combined effective capacity to exchange in- conveyed in a communicative act. Semantics considers
formation through two-way telecommunication networks the content of communication. Semantics is the study of
was the informational equivalent of 6 newspapers per per- the meaning of signs - the association between signs and
son per day in 2007.[14] behaviour. Semantics can be considered as the study of
the link between symbols and their referents or concepts
– particularly the way in which signs relate to human be-
havior.
29.9 As records
Syntax is concerned with the formalism used to represent
Records are specialized forms of information. Essen- a message. Syntax as an area studies the form of commu-
tially, records are information produced consciously or nication in terms of the logic and grammar of sign sys-
as by-products of business activities or transactions and tems. Syntax is devoted to the study of the form rather
retained because of their value. Primarily, their value is than the content of signs and sign-systems.
as evidence of the activities of the organization but they Empirics[17] is the study of the signals used to carry a
174 CHAPTER 29. INFORMATION
• Luciano Floridi, (2005). 'Is Information Meaningful [10] Bateson, Gregory (1972). ^ Form, Substance, and Dif-
Data?', Philosophy and Phenomenological Research, ference, in Steps to an Ecology of Mind. University of
70 (2), pp. 351 – 370. Available online at PhilSci Chicago Press. pp. 448–466.
Archive [11] Informationsordbogen.dk
• Luciano Floridi, (2005). 'Semantic Conceptions of [12] http://www.nature.com/news/2010/101114/full/news.
Information', The Stanford Encyclopedia of Philos- 2010.606.html
ophy (Winter 2005 Edition), Edward N. Zalta (ed.).
Available online at Stanford University [13] “The World’s Technological Capacity to Store, Commu-
nicate, and Compute Information”, Martin Hilbert and
• Luciano Floridi, (2010). Information: A Very Short Priscila López (2011), Science (journal), 332(6025), 60-
Introduction, Oxford University Press, Oxford. 65; free access to the article through here: martinhilbert.
net/WorldInfoCapacity.html
• Sandro Nielsen: 'The Effect of Lexicographical In-
formation Costs on Dictionary Making and Use', [14] “video animation on The World’s Technological Capacity
Lexikos 18/2008, 170-189. to Store, Communicate, and Compute Information from
1986 to 2010
• Stewart, Thomas, (2001). Wealth of Knowledge.
[15] Beynon-Davies P. (2002). Information Systems: an in-
Doubleday, New York, NY, 379 p.
troduction to informatics in Organisations. Palgrave, Bas-
• Young, Paul. The Nature of Information (1987). ingstoke, UK. ISBN 0-333-96390-3
Greenwood Publishing Group, Westport, Ct. ISBN [16] Beynon-Davies P. (2009). Business Information Systems.
0-275-92698-2. Palgrave, Basingstoke. ISBN 978-0-230-20368-6
[17] en.wikiversity.org/wiki/Semiotics
29.13 References
[1] http://www.merriam-webster.com/dictionary/ 29.14 External links
information
• Semantic Conceptions of Information Review by
[2] A short overview is found in: Luciano Floridi (2010). Luciano Floridi for the Stanford Encyclopedia of
Information - A Very Short Introduction. Oxford Univer-
Philosophy
sity Press. ISBN 0-19-160954-4. The goal of this volume
is to provide an outline of what information is... • Principia Cybernetica entry on negentropy
[3] Stephen B. Wicker, Saejoon Kim (2003). Fundamentals • Fisher Information, a New Paradigm for Science:
of Codes, Graphs, and Iterative Decoding. Springer. pp.
Introduction, Uncertainty principles, Wave equa-
1 ff. ISBN 1-4020-7264-3.
tions, Ideas of Escher, Kant, Plato and Wheeler.
[4] Dusenbery, David B. (1992). Sensory Ecology. W.H. This essay is continually revised in the light of on-
Freeman., New York. ISBN 0-7167-2333-6. going research.
[5] Vigo, R. (2011). “Representational information: • How Much Information? 2003 an attempt to es-
a new general notion and measure of informa- timate how much new information is created each
tion”. Information Sciences. 181: 4847–4859. year (study was produced by faculty and students at
doi:10.1016/j.ins.2011.05.020. the School of Information Management and Systems
[6] Vigo, R (2013). “Complexity over Uncertainty in Gen- at the University of California at Berkeley)
eralized Representational Information Theory (GRIT): A
Structure-Sensitive General Theory of Information”. In-
• (Danish) Informationsordbogen.dk The Danish Dic-
formation. 4 (1): 1–30. doi:10.3390/info4010001. tionary of Information Terms / Informationsordbo-
gen
[7] Vigo, R. (2014). Mathematical Principles of Human
Conceptual Behavior: The Structural Nature of Concep-
tual Representation and Processing. Scientific Psychol-
ogy Series, Routledge, New York and London; ISBN
0415714362.
30.1 Name
IEEE stands for the “Institute of Electrical and Electron-
ics Engineers”. The association is chartered under this
full legal name. IEEE’s membership has long been com-
posed of engineers and scientists. Allied professionals The IEEE corporate office is on the 17th floor of 3 Park Avenue
who are members include computer scientists, software in New York City
developers, information technology professionals, physi-
cists, and medical doctors, in addition to IEEE’s electrical
tems. The IRE concerned mostly radio engineering, and
and electronics engineering core. For this reason the or-
was formed from two smaller organizations, the Society
ganization no longer goes by the full name, except on legal
of Wireless and Telegraph Engineers and the Wireless In-
business documents, and is referred to simply as IEEE.
stitute. With the rise of electronics in the 1930s, electron-
The IEEE is dedicated to advancing technological inno- ics engineers usually became members of the IRE, but the
vation and excellence. It has about 430,000 members in applications of electron tube technology became so ex-
about 160 countries, slightly less than half of whom reside tensive that the technical boundaries differentiating the
in the United States.[3][4] IRE and the AIEE became difficult to distinguish. Af-
ter World War II, the two organizations became increas-
ingly competitive, and in 1961, the leadership of both the
30.2 History IRE and the AIEE resolved to consolidate the two orga-
nizations. The two organizations formally merged as the
The major interests of the AIEE were wire communica- IEEE on January 1, 1963.
tions (telegraphy and telephony) and light and power sys- Notable presidents of IEEE and its founding organi-
176
30.4. PUBLICATIONS 177
zations include Elihu Thomson (AIEE, 1889–1890), by various engineering societies as a formal repository
Alexander Graham Bell (AIEE, 1891–1892), Charles of topic articles, oral histories, first-hand histories, Land-
Proteus Steinmetz (AIEE, 1901–1902), Robert H. Mar- marks + Milestones and archival documents. The IEEE
riott (IRE, 1912), Lee De Forest (IRE, 1930), Frederick History Center is annexed to Stevens University Hobo-
E. Terman (IRE, 1941), William R. Hewlett (IRE, 1954), ken, NJ.
Ernst Weber (IRE, 1959; IEEE, 1963), and Ivan Getting In 2016, the IEEE acquired GlobalSpec, adding the pro-
(IEEE, 1978). vision of engineering data for a profit to its organizational
portfolio.[7]
30.3 Organization
30.4 Publications
The IEEE is incorporated under the Not-for-Profit Cor-
poration Law of the state of New York.[5] It was formed
Main article: List of Institute of Electrical and Electron-
in 1963 by the merger of the Institute of Radio Engineers
ics Engineers publications
(IRE, founded 1912) and the American Institute of Elec-
trical Engineers (AIEE, founded 1884).
IEEE produces over 30% of the world’s literature in the
IEEE’s Constitution defines the purposes of the organi-
electrical and electronics engineering and computer sci-
zation as “scientific and educational, directed toward the
ence fields, publishing well over 100 peer-reviewed jour-
advancement of the theory and practice of Electrical,
nals.[8]
Electronics, Communications and Computer Engineer-
ing, as well as Computer Science, the allied branches The published content in these journals as well as the con-
of engineering and the related arts and sciences.”[1] In tent from several hundred annual conferences sponsored
pursuing these goals, the IEEE serves as a major pub- by the IEEE are available in the IEEE online digital li-
lisher of scientific journals and organizer of conferences, brary, IEEE Xplore, for subscription-based access and in-
workshops, and symposia (many of which have associ- dividual publication purchases.[9]
ated published proceedings). It is also a leading standards In addition to journals and conference proceedings, the
development organization for the development of indus- IEEE also publishes tutorials and the standards that are
trial standards (having developed over 900 active indus- produced by its standardization committees.
try technical standards) in a broad range of disciplines,
including electric power and energy, biomedical technol-
ogy and healthcare, information technology, information
assurance, telecommunications, consumer electronics,
30.5 Educational activities
transportation, aerospace, and nanotechnology. IEEE de-
velops and participates in educational activities such as The IEEE provides learning opportunities within the en-
accreditation of electrical engineering programs in insti- gineering sciences, research, and technology. The goal
tutes of higher learning. The IEEE logo is a diamond- of the IEEE education programs is to ensure the growth
shaped design which illustrates the right hand grip rule of skill and knowledge in the electricity-related technical
embedded in Benjamin Franklin's kite, and it was created professions and to foster individual commitment to con-
at the time of the 1963 merger.[6] tinuing education among IEEE members, the engineering
and scientific communities, and the general public.
IEEE has a dual complementary regional and technical
structure – with organizational units based on geogra- IEEE offers educational opportunities such as IEEE e
[10] [11]
phy (e.g., the IEEE Philadelphia Section, the IEEE Bue- Learning Library, the Education Partners Program,
[12]
naventura Section, IEEE South Africa Section ) and tech- Standards in Education and Continuing Education
[13]
nical focus (e.g., the IEEE Computer Society). It man- Units (CEUs).
ages a separate organizational unit (IEEE-USA) which IEEE eLearning Library is a collection of online edu-
recommends policies and implements programs specifi- cational courses designed for self-paced learning. Ed-
cally intended to benefit the members, the profession and ucation Partners, exclusive for IEEE members, offers
the public in the United States. on-line degree programs, certifications and courses at a
The IEEE includes 39 technical Societies, organized 10% discount. The Standards in Education website ex-
around specialized technical fields, with more than 300 plains what standards are and the importance of devel-
local organizations that hold regular meetings. oping and using them. The site includes tutorial mod-
ules and case illustrations to introduce the history of stan-
The IEEE Standards Association is in charge of the stan- dards, the basic terminology, their applications and im-
dardization activities of the IEEE. pact on products, as well as news related to standards,
The IEEE History Center became a feeder organiza- book reviews and links to other sites that contain in-
tion to the Engineering and Technology History Wiki formation on standards. Currently, twenty-nine states
(ETHW) in 2015. The new ETHW is a cooperative effort in the United States require Professional Development
178 CHAPTER 30. INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS
Hours (PDH) to maintain a Professional Engineering li- 802.11 Wireless Networking standard.
cense, encouraging engineers to seek Continuing Educa-
tion Units (CEUs) for their participation in continuing
education programs. CEUs readily translate into Pro- 30.8 Membership and member
fessional Development Hours (PDHs), with 1 CEU be-
ing equivalent to 10 PDHs. Countries outside the United grades
States, such as South Africa, similarly require continuing
professional development (CPD) credits, and it is antic- Most IEEE members are electrical and electronics en-
ipated that IEEE Expert Now courses will feature in the gineers, but the organization’s wide scope of interests
CPD listing for South Africa. has attracted people in other disciplines as well (e.g.,
IEEE also sponsors a website [14]
designed to help young computer science, software engineering, mechanical
people better understand engineering, and how an engi- engineering, civil engineering, biology, physics, and
neering career can be made part of their future. Stu- mathematics).
dents of age 8–18, parents, and teachers can explore An individual can join the IEEE as a student member,
the site to prepare for an engineering career, ask experts professional member, or associate member. In order to
engineering-related questions, play interactive games, ex- qualify for membership, the individual must fulfill certain
plore curriculum links, and review lesson plans. This academic or professional criteria and abide to the code of
website also allows students to search for accredited engi- ethics and bylaws of the organization. There are several
neering degree programs in Canada and the United States; categories and levels of IEEE membership and affiliation:
visitors are able to search by state/province/territory,
country, degree field, tuition ranges, room and board • Student Members: Student membership is avail-
ranges, size of student body, and location (rural, subur- able for a reduced fee to those who are enrolled in
ban, or urban). an accredited institution of higher education as un-
Through the Student Activities Committee, IEEE facili- dergraduate or graduate students in technology or
tates partnership between student activities and all other engineering.
IEEE entities.[15]
• Graduate Student Members: Graduate Student
Membership is discounted but members at this level
have greater privileges than do Student Members.
30.6 IEEE Conferences
• Members: Ordinary or professional Membership
requires that the individual have graduated from a
The Institute of Electrical and Electronics Engineers technology or engineering program of an appropri-
sponsors more than 1,600 annual conferences and meet- ately accredited institution of higher education or
ings worldwide. IEEE is also highly involved in the tech- have demonstrated professional competence in tech-
nical program development of numerous events includ- nology or engineering through at least six years of
ing trade events, training workshops, job fairs, and other professional work experience. An associate mem-
programs.[16] bership is available to an individual whose area of
expertise falls outside the scope of the IEEE or who
does not, at the time of enrollment, meet all the re-
30.7 Standards and development quirements for full membership. Students and As-
sociates have all the privileges of members, except
process the right to vote and hold certain offices.
Main article: IEEE Standards Association • Society Affiliates: Some IEEE Societies also allow
a person who is not an IEEE member to become a
Society Affiliate of a particular Society within the
IEEE is one of the leading standards-making organiza- IEEE, which allows a limited form of participation
tions in the world. IEEE performs its standards mak- in the work of a particular IEEE Society.
ing and maintaining functions through the IEEE Stan-
dards Association (IEEE-SA). IEEE standards affect a • Senior Members: Upon meeting certain require-
wide range of industries including: power and energy, ments, a professional member can apply for Senior
biomedical and healthcare, Information Technology (IT), Membership, which is the highest level of recogni-
telecommunications, transportation, nanotechnology, in- tion that a professional member can directly apply
formation assurance, and many more. In 2013, IEEE had for. Applicants for Senior Member must have at
over 900 active standards, with over 500 standards under least three letters of recommendation from Senior,
development. One of the more notable IEEE standards is Fellow, or Honorary members and fulfill other rig-
the IEEE 802 LAN/MAN group of standards which in- orous requirements of education, achievement, re-
cludes the IEEE 802.3 Ethernet standard and the IEEE markable contribution, and experience in the field.
30.9. AWARDS 179
The Senior Members are a selected group, and cer- • IEEE Medal for Environmental and Safety Tech-
tain IEEE officer positions are available only to Se- nologies
nior (and Fellow) Members. Senior Membership is
also one of the requirements for those who are nom- • IEEE Medal in Power Engineering
inated and elevated to the grade IEEE Fellow, a dis- • IEEE Richard W. Hamming Medal (for information
tinctive honor. technology)
• Fellow Members: The Fellow grade of member- • IEEE Heinrich Hertz Medal (for electromagnetics)
ship is the highest level of membership, and cannot
be applied for directly by the member – instead the • IEEE Jun-ichi Nishizawa Medal for materials and
candidate must be nominated by others. This grade device sciences
of membership is conferred by the IEEE Board of
Directors in recognition of a high level of demon- • IEEE John von Neumann Medal (for computer-
strated extraordinary accomplishment. related technology)
• Honorary Members: Individuals who are not • IEEE Jack S. Kilby Signal Processing Medal
IEEE members but have demonstrated exceptional • IEEE Dennis J. Picard Medal for Radar Technolo-
contributions, such as being a recipient of an IEEE gies and Applications
Medal of Honor, may receive Honorary Membership
from the IEEE Board of Directors. • IEEE Robert N. Noyce Medal (for microelectron-
ics)
• Life Members , Life Senior Members and Life
Fellows: Members who have reached the age of • IEEE Medal for Innovations in Healthcare Technol-
65 and whose number of years of membership plus ogy
their age in years adds up to at least 100 are recog-
nized as Life Members , Life Senior Members or Life • IEEE/RSE Wolfson James Clerk Maxwell Award
Fellows, as appropriate. • IEEE Centennial Medal
• IEEE Koji Kobayashi Computers and Communica- • IEEE Donald G. Fink Prize Paper Award
tions Award • IEEE W.R.G. Baker Award
• IEEE William E. Newell Power Electronics Award
30.9.5 Scholarships
• IEEE Daniel E. Noble Award (for emerging tech-
nologies) • IEEE Life Members Graduate Study Fellowship
in Electrical Engineering was established by the
• IEEE Donald O. Pederson Award in Solid-State Cir-
IEEE in 2000. The fellowship is awarded annually
cuits
to a first year, full-time graduate student obtaining
• IEEE Frederik Philips Award (for management of their masters for work in the area of electrical engi-
research and development) neering, at an engineering school/program of recog-
nized standing worldwide.[17]
• IEEE Photonics Award • IEEE Charles LeGeyt Fortescue Graduate
Scholarship was established by the IRE in 1939
• IEEE Emanuel R. Piore Award (for information
to commemorate Charles Legeyt Fortescue's contri-
processing systems in computer science)
butions to electrical engineering. The scholarship
• IEEE Judith A. Resnik Award (for space engineer- is awarded for one year of full-time graduate work
ing) obtaining their masters in electrical engineering an
ANE engineering school of recognized standing in
• IEEE Robotics and Automation Award the United States.[18]
• IEEE Kiyo Tomiyasu Award (for technologies hold- Various technical areas are addressed by IEEE’s 39 soci-
ing the promise of innovative applications) eties, each one focused on a certain knowledge area. They
provide specialized publications, conferences, business
• IEEE Transportation Technologies Award networking and sometimes other services.[19][20]
30.11. TECHNICAL COUNCILS 181
• IEEE Aerospace and Electronic Systems Society • IEEE Systems, Man & Cybernetics Society
• IEEE Antennas & Propagation Society • IEEE Ultrasonics, Ferroelectrics & Frequency Con-
trol Society
• IEEE Broadcast Technology Society
• IEEE Technology and Engineering Management
• IEEE Circuits and Systems Society Society
• IEEE Communications Society • IEEE Vehicular Technology Society
• IEEE Components, Packaging & Manufacturing
Technology Society
30.11 Technical councils
• IEEE Computational Intelligence Society
• IEEE Computer Society IEEE technical councils are collaborations of several
IEEE societies on a broader knowledge area. There are
• IEEE Consumer Electronics Society currently seven technical councils:[19][21]
• IEEE Control Systems Society
• IEEE Biometrics Council
• IEEE Dielectrics & Electrical Insulation Society
• IEEE Council on Electronic Design Automation
• IEEE Education Society
• IEEE Nanotechnology Council
• IEEE Electromagnetic Compatibility Society
• IEEE Sensors Council
• IEEE Electron Devices Society
• IEEE Council on Superconductivity
• IEEE Engineering in Medicine and Biology Society
• IEEE Systems Council
• IEEE Geoscience and Remote Sensing Society
• IEEE Council on RFID (CRFID)
• IEEE Industrial Electronics Society
• IEEE Industry Applications Society
30.12 Technical committees
• IEEE Information Theory Society
To allow a quick response to new innovations, IEEE
• IEEE Instrumentation & Measurement Society
can also organize technical committees on top of their
• IEEE Intelligent Transportation Systems Society societies and technical councils. There are currently two
such technical committees:[19]
• IEEE Magnetics Society
• IEEE Microwave Theory and Techniques Society • IEEE Committee on Earth Observation (ICEO)
donations increased beyond what was necessary for this [13] IEEE – IEEE Continuing Education Units
purpose, and the scope was broadened. In addition to so-
[14] Welcome to TryEngineering.org
liciting and administering unrestricted funds, the founda-
tion also administers donor-designated funds supporting [15] http://www.ieee.org/membership_services/membership/
particular educational, humanitarian, historical preserva- students/activities_committee.html
tion, and peer recognition programs of the IEEE.[22] As
of the end of 2014, the foundation’s total assets were [16] “IEEE Conferences & Events”. www.ieee.org. Retrieved
2015-10-22.
nearly $45 million, split equally between unrestricted and
donor-designated funds.[23] [17] IEEE Life Member Graduate Study Fellowship. Re-
trieved on 2010-01-23.
• Glossary of electrical and electronics engineering [19] “IEEE Societies & Communities”. IEEE. Retrieved
November 7, 2010.
• Certified Software Development Professional
[20] “IEEE Society Memberships”. IEEE. Retrieved Novem-
(CSDP) Program of the IEEE Computer Society
ber 7, 2010.
• Eta Kappa Nu, the electrical and computer engi- [21] “IEEE Technical Councils”. IEEE. Retrieved November
neering honor society of the IEEE 8, 2010.
• Institution of Engineering and Technology [22] IEEE Foundation Home page
• Association of Scientists, Developers and Faculties [23] IEEE Foundation Overview page
[6] “IEEE – Master Brand and Logos”. www.ieee.org. Re- • IEEE eLearning Library – an online library of more
trieved 2011-01-28. than 200 self-study multimedia short courses and tu-
torials in technical fields of interest to the IEEE.
[7] “IEEE Acquires GlobalSpec and the Engineering360 Plat-
form from IHS to Create Powerful New Resource for the
Global Engineering Community”. IEEE. April 29, 2016.
Retrieved 2016-04-29.
Interaction protocol
183
Chapter 32
“ISO” redirects here. For other uses, see ISO (disam- 32.2 Name and abbreviations
biguation).
The three official languages of the ISO are English,
The International Organization for Standardization French, and Russian.[3] The name of the organization
(ISO) is an international standard-setting body composed in French is Organisation internationale de normalisa-
of representatives from various national standards orga- tion, and in Russian, Международная организация по
nizations. стандартизации. According to the ISO, as its name
in different languages would have different abbreviations
Founded on 23 February 1947, the organization pro-
(“IOS” in English, “OIN” in French, etc.), the organiza-
motes worldwide proprietary, industrial and commercial
tion adopted “ISO” as its abbreviated name in reference
standards. It is headquartered in Geneva, Switzerland,[4]
to the Greek word isos (ἴσος, meaning equal).[6] How-
and as of 2015 works in 196 countries.[5]
ever, during the founding meetings of the new organiza-
It was one of the first organizations granted general con- tion, this Greek word was not invoked, so this explanation
sultative status with the United Nations Economic and So- may have been imagined later.[7]
cial Council.
Both the name “ISO” and the logo are registered trade-
marks, and their use is restricted.[8]
32.3 History
32.1 Overview
184
32.6. FINANCING 185
32.4 Structure
ISO is a voluntary organization whose members are rec-
ognized authorities on standards, each one representing
one country. Members meet annually at a General As-
sembly to discuss ISO’s strategic objectives. The orga- ISO member countries with a national standards body and ISO
nization is coordinated by a Central Secretariat based in voting rights.
Geneva.[11] Correspondent members (countries without a national standards
body).
A Council with a rotating membership of 20 member
Subscriber members (countries with small economies).
bodies provides guidance and governance, including set- Non-member countries with ISO 3166-1 codes.
[11][12]
ting the Central Secretariat’s annual budget.
The Technical Management Board is responsible for
over 250 technical committees, who develop the ISO
• Member bodies are national bodies considered the
standards.[11][13][14][15]
most representative standards body in each country.
These are the only members of ISO that have voting
rights.
32.4.1 IEC joint committees
• Correspondent members are countries that do not
ISO has formed joint committees with the International have their own standards organization. These mem-
Electrotechnical Commission (IEC) to develop standards bers are informed about ISO’s work, but do not par-
and terminology in the areas of electrical, electronic and ticipate in standards promulgation.
related technologies.
• Subscriber members are countries with small
economies. They pay reduced membership fees,
ISO/IEC JTC 1 but can follow the development of standards.
Information technology
Participating members are called “P” members, as op-
posed to observing members, who are called “O” mem-
Main article: ISO/IEC JTC 1 bers.
ISO’s main products are international standards. ISO also to existing standards due to minor technical flaws,
publishes technical reports, technical specifications, pub- usability improvements, or limited-applicability ex-
licly available specifications, technical corrigenda, and tensions. They are generally issued with the expec-
guides.[19][20] tation that the affected standard will be updated or
withdrawn at its next scheduled review.[19]
International standards These are designated using
the format ISO[/IEC] [/ASTM] [IS] nnnnn[- ISO guides
p]:[yyyy] Title, where nnnnn is the number of the
standard, p is an optional part number, yyyy is the
These are meta-standards covering “matters related to in-
year published, and Title describes the subject.
ternational standardization”.[19] They are named using the
IEC for International Electrotechnical Commission
format “ISO[/IEC] Guide N:yyyy: Title”.
is included if the standard results from the work
For example:
of ISO/IEC JTC1 (the ISO/IEC Joint Technical
Committee). ASTM (American Society for Testing
and Materials) is used for standards developed in • ISO/IEC Guide 2:2004 Standardization and related
cooperation with ASTM International. yyyy and activities — General vocabulary
IS are not used for an incomplete or unpublished • ISO/IEC Guide 65:1996 General requirements for
standard and may under some circumstances be left bodies operating product certification
off the title of a published work.
Technical reports These are issued when a technical A standard published by ISO/IEC is the last stage
committee or subcommittee has collected data of a of a long process that commonly starts with the pro-
different kind from that normally published as an In- posal of new work within a committee. Here are
ternational Standard,[19] such as references and ex- some abbreviations used for marking a standard with its
planations. The naming conventions for these are status:[21][22][23][24][25][26][27]
the same as for standards, except TR prepended in-
stead of IS in the report’s name. • PWI – Preliminary Work Item
For example:
• NP or NWIP – New Proposal / New Work Item Pro-
posal (e.g., ISO/IEC NP 23007)
• ISO/IEC TR 17799:2000 Code of Practice for In-
formation Security Management • AWI – Approved new Work Item (e.g., ISO/IEC
• ISO/TR 19033:2000 Technical product documenta- AWI 15444-14)
tion — Metadata for construction documentation • WD – Working Draft (e.g., ISO/IEC WD 27032)
Technical and publicly available specifications • CD – Committee Draft (e.g., ISO/IEC CD 23000-
Technical specifications may be produced when 5)
“the subject in question is still under development
or where for any other reason there is the future • FCD – Final Committee Draft (e.g., ISO/IEC FCD
but not immediate possibility of an agreement to 23000-12)
publish an International Standard”. A publicly • DIS – Draft International Standard (e.g., ISO/IEC
available specification is usually “an intermediate DIS 14297)
specification, published prior to the development
of a full International Standard, or, in IEC may be • FDIS – Final Draft International Standard (e.g.,
a 'dual logo' publication published in collaboration ISO/IEC FDIS 27003)
with an external organization”.[19] By convention,
both types of specification are named in a manner • PRF – Proof of a new International Standard (e.g.,
similar to the organization’s technical reports. ISO/IEC PRF 18018)
For example: • IS – International Standard (e.g., ISO/IEC 13818-
1:2007)
• ISO/TS 16952-1:2006 Technical product documen-
tation — Reference designation system — Part 1:
General application rules Abbreviations used for
amendments:[21][22][23][24][25][26][27][28]
• ISO/PAS 11154:2006 Road vehicles — Roof load
carriers • NP Amd – New Proposal Amendment (e.g.,
ISO/IEC 15444-2:2004/NP Amd 3)
Technical corrigenda ISO also sometimes issues “tech-
nical corrigenda” (where “corrigenda” is the plu- • AWI Amd – Approved new Work Item Amendment
ral of corrigendum). These are amendments made (e.g., ISO/IEC 14492:2001/AWI Amd 4)
32.7. INTERNATIONAL STANDARDS AND OTHER PUBLICATIONS 187
• WD Amd – Working Draft Amendment (e.g., ISO The TC/SC may set up working groups (WG) of experts
11092:1993/WD Amd 1) for the preparation of a working drafts. Subcommittees
may have several working groups, which can have several
• CD Amd / PDAmd – Committee Draft Amend- Sub Groups (SG).[31]
ment / Proposed Draft Amendment (e.g., ISO/IEC
13818-1:2007/CD Amd 6) It is possible to omit certain stages, if there is a docu-
ment with a certain degree of maturity at the start of a
• FPDAmd / DAM (DAmd) – Final Proposed Draft standardization project, for example a standard developed
Amendment / Draft Amendment (e.g., ISO/IEC by another organization. ISO/IEC directives allow also
14496-14:2003/FPDAmd 1) the so-called “Fast-track procedure”. In this procedure a
document is submitted directly for approval as a draft In-
• FDAM (FDAmd) – Final Draft Amendment (e.g., ternational Standard (DIS) to the ISO member bodies or
ISO/IEC 13818-1:2007/FDAmd 4) as a final draft International Standard (FDIS) if the doc-
ument was developed by an international standardizing
• PRF Amd – (e.g., ISO 12639:2004/PRF Amd 1)
body recognized by the ISO Council.[23]
• Amd – Amendment (e.g., ISO/IEC 13818- The first step—a proposal of work (New Proposal)
1:2007/Amd 1:2007) is approved at the relevant subcommittee or techni-
cal committee (e.g., SC29 and JTC1 respectively in
Other abbreviations:[25][26][28][29] the case of Moving Picture Experts Group - ISO/IEC
JTC1/SC29/WG11). A working group (WG) of experts
is set up by the TC/SC for the preparation of a working
• TR – Technical Report (e.g., ISO/IEC TR
draft. When the scope of a new work is sufficiently clar-
19791:2006)
ified, some of the working groups (e.g., MPEG) usually
• DTR – Draft Technical Report (e.g., ISO/IEC DTR make open request for proposals—known as a “call for
19791) proposals”. The first document that is produced for exam-
ple for audio and video coding standards is called a ver-
• TS – Technical Specification (e.g., ISO/TS ification model (VM) (previously also called a “simula-
16949:2009) tion and test model”). When a sufficient confidence in the
stability of the standard under development is reached, a
• DTS – Draft Technical Specification (e.g., ISO/DTS working draft (WD) is produced. This is in the form of
11602-1) a standard but is kept internal to working group for revi-
sion. When a working draft is sufficiently solid and the
• PAS – Publicly Available Specification
working group is satisfied that it has developed the best
• TTA – Technology Trends Assessment (e.g., technical solution to the problem being addressed, it be-
ISO/TTA 1:1994) comes committee draft (CD). If it is required, it is then
sent to the P-members of the TC/SC (national bodies) for
• IWA – International Workshop Agreement (e.g., ballot.
IWA 1:2005)
The CD becomes final committee draft (FCD) if the
• Cor – Technical Corrigendum (e.g., ISO/IEC number of positive votes is above the quorum. Succes-
13818-1:2007/Cor 1:2008) sive committee drafts may be considered until consensus
is reached on the technical content. When it is reached,
• Guide – a guidance to technical committees for the the text is finalized for submission as a draft International
preparation of standards Standard (DIS). The text is then submitted to national
bodies for voting and comment within a period of five
International Standards are developed by ISO technical months. It is approved for submission as a final draft In-
committees (TC) and subcommittees (SC) by a process ternational Standard (FDIS) if a two-thirds majority of
with six steps:[23][30] the P-members of the TC/SC are in favour and not more
than one-quarter of the total number of votes cast are neg-
ative. ISO will then hold a ballot with National Bodies
• Stage 1: Proposal stage where no technical changes are allowed (yes/no ballot),
• Stage 2: Preparatory stage within a period of two months. It is approved as an In-
ternational Standard (IS) if a two-thirds majority of the
• Stage 3: Committee stage P-members of the TC/SC is in favour and not more than
one-quarter of the total number of votes cast are nega-
• Stage 4: Enquiry stage tive. After approval, only minor editorial changes are in-
troduced into the final text. The final text is sent to the
• Stage 5: Approval stage
ISO Central Secretariat, which publishes it as the Inter-
• Stage 6: Publication stage national Standard.[21][23]
188 CHAPTER 32. INTERNATIONAL ORGANIZATION FOR STANDARDIZATION
32.8 Products named after ISO of Office Open XML process by saying “I think it de-
values the confidence people have in the standards set-
The fact that many of the ISO-created standards are ubiq- ting process,” and Shuttleworth alleged that ISO did not
uitous has led, on occasion, to common use of “ISO” to carry out its responsibility. He also noted that Microsoft
describe the actual product that conforms to a standard. had intensely lobbied many countries that traditionally
Some examples of this are: had not participated in ISO and stacked technical com-
mittees with Microsoft employees, solution providers and
resellers sympathetic to Office Open XML.
• Many CD images end in the file extension "ISO" to
signify that they are using the ISO 9660 standard
file system as opposed to another file system—hence When you have a process built on trust and
CD images are commonly referred to as “ISOs”. when that trust is abused, ISO should halt the
Virtually all computers with CD-ROM drives that process... ISO is an engineering old boys club
can read CDs use this standard. Some DVD-ROMs and these things are boring so you have to have
also use ISO 9660 file systems. a lot of passion … then suddenly you have an
investment of a lot of money and lobbying and
• Photographic film’s sensitivity to light (its "film you get artificial results. The process is not
speed") is described by ISO 6, ISO 2240 and ISO set up to deal with intensive corporate lobbying
5800. Hence, the film’s speed is often referred to as and so you end up with something being a stan-
by its ISO number. dard that is not clear.[36]
[12] “Council”. International Organization for Standardiza- [30] ISO (2008), ISO/IEC Directives, Part 1 - Procedures for the
tion. Archived from the original on 3 November 2012. technical work, Sixth edition, 2008 (PDF), archived (PDF)
from the original on 14 July 2010
[13] “Technical committees”. International Organization for
Standardization. Archived from the original on 19 [31] ISO, IEC (5 November 2009). “ISO/IEC JTC 1/SC 29,
September 2012. SC 29/WG 11 Structure (ISO/IEC JTC 1/SC 29/WG 11 -
Coding of Moving Pictures and Audio)". Archived from
[14] “Who develops ISO standards?". International Organiza- the original on 28 January 2001.
tion for Standardization. Archived from the original on 19
September 2012. [32] “Freely Available Standards”. ISO. 1 February 2011.
[15] “Governance of technical work”. International Organiza- [33] “Shopping FAQs”. ISO. Archived from the original on 5
tion for Standardization. Archived from the original on 19 October 2007.
September 2012.
[34] Jelliffe, Rick (1 August 2007). “Where to get ISO Stan-
[16] “ISO/IEC JTC 1”. International Organization for Stan- dards on the Internet free”. oreillynet.com. Archived
dardization. Archived from the original on 15 December from the original on 24 November 2007. The lack of free
2011. online availability has effectively made ISO standard ir-
relevant to the (home/hacker section of the) Open Source
[17] “ISO/IEC JPC 2 Joint Project Committee - Energy effi- community
ciency and renewable energy sources - Common termi-
nology”. International Organization for Standardization. [35] “Report on WG1 activity for December 2007 Meeting
Archived from the original on 6 October 2012. of ISO/IEC JTC1/SC34/WG1 in Kyoto”. iso/jtc1 sc34.
Archived from the original on 12 August 2007.
[18] “General information on ISO”. ISO. Archived from the
original on 5 October 2007. [36] “Ubuntu’s Shuttleworth blames ISO for OOXML’s win”.
ZDNet.com. 1 April 2008. Archived from the original on
[19] The ISO directives are published in two distinct parts: 4 April 2008.
• “ISO/IEC Directives, Part 1: Procedures for the
technical work” (PDF). ISO/IEC. 2012. Archived
(PDF) from the original on 13 June 2012. 32.12 Further reading
• “ISO/IEC Directives, Part 2: Rules for the structure
and drafting of International Standards” (PDF). • JoAnne Yates and Craig N. Murphy, “Coordinating
ISO/IEC. 2011. Archived (PDF) from the original International Standards: The Formation of the
on 16 October 2011. ISO” (PDF). Archived (PDF) from the original on
22 September 2010. MIT Innovations and En-
[20] ISO. “ISO/IEC Directives and ISO supplement”.
Archived from the original on 16 May 2008.
trepreneurship Seminar Series, Fall 2006.
[21] “About MPEG”. chiariglione.org. Archived from the • Kuert, Willy (1997). “Friendship Among Equals
original on 21 February 2010. - Recollections from ISO’s first fifty years” (PDF).
ISO. Archived (PDF) from the original on 26 Octo-
[22] ISO. “International harmonized stage codes”. Archived ber 2012.
from the original on 4 October 2007.
“ITU” redirects here. For other uses, see ITU (disam- ITU also organizes worldwide and regional exhibitions
biguation). and forums, such as ITU TELECOM WORLD, bringing
For the hospital department, see Intensive care unit. together representatives of government and the telecom-
The International Telecommunication Union (ITU; munications and ICT industry to exchange ideas, knowl-
edge and technology.
ITU, based in Geneva, Switzerland, is a member of the
United Nations Development Group.[2] ITU has been
an intergovernmental public-private partnership organi-
zation since its inception. Its membership includes 193
Member States and around 700 public and private sector
companies as well as international and regional telecom-
munication entities, known as Sector Members and As-
sociates, which undertake most of the work of each
Sector.[3]
33.1 History
190
33.4. LEADERSHIP 191
33.4 Leadership
The ITU is headed by a Secretary-General, who is elected
to a four-year term by the member states at the ITU
Plenipotentiary Conference.
On 23 October 2014 Houlin Zhao was elected 19th
Secretary-General of the ITU at the Plenipotentiary Con-
ference in Busan, Republic of Korea. His four-year man-
International Telecommunication Union – 100th anniversary. date started on 1 January 2015, and he was formally in-
U.S. stamp, 1965. augurated on 15 January 2015.[10]
33.6 Membership
ers, funding bodies, research and development organiza- (WCIT-12) in Dubai. WCIT-12 was a treaty-
tions and international and regional telecommunication level conference to address International Telecom-
organizations, which may join ITU as non-voting Sector munications Regulations, the international rules for
Members.[11] telecommunications, including international tariffs.[17]
There are 193 Member States of the ITU, which are all The previous conference to update [18] the Regulations
UN member states, plus Vatican City. [12]
The most re- (ITRs) was held in Melbourne in 1988.
cent member state to join the ITU is South Sudan, which In August 2012, ITU called for a public consultation on a
became a member on 14 July 2011.[13] draft document ahead of the conference.[19] It is claimed
The Republic of China (Taiwan) was blocked from mem- the proposal would allow government restriction or block-
bership by the People’s Republic of China, but never- ing of information disseminated via the internet and cre-
theless received a country code, being listed as “Tai- ate a global regime of monitoring internet communica-
wan, China”.[14] Palestine was admitted as an observer tions, including the demand that those who send and re-
in 2010.[15] ceive information identify themselves. It would also allow
governments to shut down the internet if there is the be-
lief that it may interfere in the internal affairs of other
33.6.1 Regional groupings states or that information of a sensitive nature might be
shared.[20]
Member states of the ITU are organized into six regional Telecommunications ministers from 193 countries at-
groups: tended the conference in Dubai.[20]
33.10 References [22] “Russia calls for internet revolution”. Indrus.in. 29 May
2012. Retrieved 12 October 2012.
[1] International Telecommunication Union [23] Internet Society. International Telecommunication Regu-
[2] “UNDG Members”. Undg.org. Retrieved 15 May 2012. lations
[12] “International Telecommunication Union Member [31] “House approves resolution to keep Internet control out of
States”. International Telecommunication Union. UN hands”. The Hill. 5 December 2012.
Retrieved 18 July 2013.
[32] “U.S. Rejects Telecommunications Treaty”. The New
[13] New Country, New Number – Country code 211 officially York Times. 14 December 2012.
assigned to South Sudan ITU Pressroom, 14 July 2011 [33] “Japan, West snub rules for Net curbs”. Japan Times. 16
[14] “ITU-T : International Numbering Resources : National December 2012.
Numbering Plans : China, Taiwan”. Itu.int. 26 January [34] “WCIT-12 Final Acts Signatories”. International
2007. Retrieved 15 May 2012. Telecommunication Union. Retrieved 16 December
2012.
[15] “Palestine ITU status”. Itu.int. 20 October 2010. Re-
trieved 15 May 2012. [35] Siy, Sherwin. (14 December 2012) On the Results at the
WCIT. Public Knowledge. Retrieved on 28 April 2014.
[16] “World Summit on the Information Society”. itu.int. Re-
trieved 11 October 2012. [36] “Convention of the ITU”. Itu.int. Retrieved 12 October
2012.
[17] “World Conference on International Telecommunications
2012”. Itu.int. Retrieved 12 October 2012. [37] “EFF Joins Coalition Denouncing Secretive WCIT Plan-
ning Process”. Eff.org. 17 May 2012. Retrieved 12 Oc-
[18] “International Telecommunication Regulations” (PDF).
tober 2012.
Retrieved 12 October 2012.
[38] “Ryan/Glick: The ITU Treaty Negotiations: A Call for
[19] “ITU opens public consultation on internet regulation Openness and Participation”. Ssrn.com. Retrieved 12
treaty”. 16 August 2012. Retrieved November 2012. October 2012.
Check date values in: |access-date= (help)
Internet
This article is about the worldwide computer network. email, Internet telephony, Internet television music, dig-
For other uses, see Internet (disambiguation). ital newspapers, and video streaming websites. News-
Not to be confused with the World Wide Web. paper, book, and other print publishing are adapting to
website technology, or are reshaped into blogging, web
The Internet is the global system of interconnected feeds and online news aggregators (e.g., Google News).
computer networks that use the Internet protocol suite The entertainment industry was initially the fastest grow-
(TCP/IP) to link billions of devices worldwide. It is a net- ing segment on the Internet. The Internet has enabled and
work of networks that consists of millions of private, pub- accelerated new forms of personal interactions through
lic, academic, business, and government networks of lo- instant messaging, Internet forums, and social network-
cal to global scope, linked by a broad array of electronic, ing. Online shopping has grown exponentially both for
wireless, and optical networking technologies. The Inter- major retailers and small businesses and entrepreneurs, as
net carries an extensive range of information resources it enables firms to extend their "bricks and mortar" pres-
and services, such as the inter-linked hypertext docu- ence to serve a larger market or even sell goods and ser-
ments and applications of the World Wide Web (WWW), vices entirely online. Business-to-business and financial
electronic mail, voice over IP telephony, and peer-to-peer services on the Internet affect supply chains across entire
networks for file sharing. industries.
The origins of the Internet date back to research com- The Internet has no centralized governance in either tech-
missioned by the United States federal government in nological implementation or policies for access and us-
the 1960s to build robust, fault-tolerant communication age; each constituent network sets its own policies.[7]
Only the overreaching definitions of the two principal
via computer networks.[1] The primary precursor net-
work, the ARPANET, initially served as a backbone for name spaces in the Internet, the Internet Protocol address
space and the Domain Name System (DNS), are directed
interconnection of regional academic and military net-
works in the 1980s. The funding of the National Science by a maintainer organization, the Internet Corporation
for Assigned Names and Numbers (ICANN). The tech-
Foundation Network as a new backbone in the 1980s,
as well as private funding for other commercial exten- nical underpinning and standardization of the core proto-
cols is an activity of the Internet Engineering Task Force
sions, led to worldwide participation in the development
of new networking technologies, and the merger of many (IETF), a non-profit organization of loosely affiliated in-
networks.[2] The linking of commercial networks and ternational participants that anyone may associate with by
enterprises by the early 1990s marks the beginning of contributing technical expertise.[8]
the transition to the modern Internet,[3] and generated
a sustained exponential growth as generations of institu-
tional, personal, and mobile computers were connected 34.1 Terminology
to the network. Although the Internet was widely used by
academia since the 1980s, the commercialization incor- See also: Capitalization of “Internet”
porated its services and technologies into virtually every
aspect of modern life.
The term Internet, when used to refer to the specific global
Internet use grew rapidly in the West from the mid-1990s system of interconnected Internet Protocol (IP) networks,
and from the late 1990s in the developing world.[4] In the is a proper noun[9] and may be written with an initial
20 years since 1995, Internet use has grown 100-times, capital letter. In common use and the media, it is of-
measured for the period of one year, to over one third ten not capitalized, viz. the internet. Some guides specify
of the world population.[5][6] Most traditional commu- that the word should be capitalized when used as a noun,
nications media, including telephony, radio, television, but not capitalized when used as an adjective.[10] The In-
paper mail and newspapers are being reshaped or rede- ternet is also often referred to as the Net, as a short form
fined by the Internet, giving birth to new services such as of network. Historically, as early as 1849, the word inter-
195
196 CHAPTER 34. INTERNET
34.2 History
T3 NSFNET Backbone, c. 1992.
Main articles: History of the Internet and History of the
World Wide Web TCP/IP network access expanded again in 1986 when
the National Science Foundation Network (NSFNet) pro-
Research into packet switching started in the early vided access to supercomputer sites in the United States
1960s,[15] and packet switched networks such as the for researchers, first at speeds of 56 kbit/s and later at
ARPANET, CYCLADES,[16][17] the Merit Network,[18] 1.5 Mbit/s and 45 Mbit/s.[30] Commercial Internet ser-
NPL network,[19] Tymnet, and Telenet, were devel- vice providers (ISPs) emerged in the late 1980s and early
oped in the late 1960s and 1970s using a variety of 1990s. The ARPANET was decommissioned in 1990.
protocols.[20] The ARPANET project led to the develop- By 1995, the Internet was fully commercialized in the
ment of protocols for internetworking, by which multiple U.S. when the NSFNet was decommissioned, removing
separate networks could be joined into a single network the last restrictions on use of the Internet to carry com-
of networks.[21] ARPANET development began with two mercial traffic.[31] The Internet rapidly expanded in Eu-
network nodes which were interconnected between the rope and Australia in the mid to late 1980s[32][33] and to
Network Measurement Center at the University of Cali- Asia in the late 1980s and early 1990s.[34] The beginning
fornia, Los Angeles (UCLA) Henry Samueli School of of dedicated transatlantic communication between the
Engineering and Applied Science directed by Leonard NSFNET and networks in Europe was established with
34.3. GOVERNANCE 197
a low-speed satellite relay between Princeton University all telecommunicated information was carried over the
and Stockholm, Sweden in December 1988.[35] Although Internet.[46]
other network protocols such as UUCP had global reach
well before this time, this marked the beginning of the
Internet as an intercontinental network. 34.3 Governance
Slightly over a year later in March 1990, the first high-
speed T1 (1.5 Mbit/s) link between the NSFNET and Main article: Internet governance
Europe was installed between Cornell University and The Internet is a global network comprising many vol-
CERN, allowing much more robust communications than
were capable with satellites.[36] Six months later Tim
Berners-Lee would begin writing WorldWideWeb, the
first web browser after two years of lobbying CERN man-
agement. By Christmas 1990, Berners-Lee had built all
the tools necessary for a working Web: the HyperText
Transfer Protocol (HTTP) 0.9,[37] the HyperText Markup
Language (HTML), the first Web browser (which was
also a HTML editor and could access Usenet news-
groups and FTP files), the first HTTP server software
(later known as CERN httpd), the first web server (http:
//info.cern.ch), and the first Web pages that described the
project itself. Public commercial use of the Internet be-
gan in mid-1989 with the connection of MCI Mail and
Compuserve's email capabilities to the 500,000 users of
the Internet. [38] Just months later on January 1, 1990,
PSInet launched an alternate Internet backbone for com- ICANN headquarters in the Playa Vista neighborhood of Los An-
mercial use; one of the networks that would grow into geles, California, United States.
the commercial Internet we know today. In 1991 the
Commercial Internet eXchange was founded, allowing untarily interconnected autonomous networks. It oper-
PSInet to communicate with the other commercial net- ates without a central governing body. The technical
works CERFnet and Alternet. Since 1995 the Internet underpinning and standardization of the core protocols
has tremendously impacted culture and commerce, in- (IPv4 and IPv6) is an activity of the Internet Engineering
cluding the rise of near instant communication by email, Task Force (IETF), a non-profit organization of loosely
instant messaging, telephony (Voice over Internet Pro- affiliated international participants that anyone may asso-
tocol or VoIP), two-way interactive video calls, and the ciate with by contributing technical expertise. To main-
World Wide Web[39] with its discussion forums, blogs, tain interoperability, the principal name spaces of the
social networking, and online shopping sites. Increas- Internet are administered by the Internet Corporation
ing amounts of data are transmitted at higher and higher for Assigned Names and Numbers (ICANN). ICANN
speeds over fiber optic networks operating at 1-Gbit/s, is governed by an international board of directors drawn
10-Gbit/s, or more. from across the Internet technical, business, academic,
The Internet continues to grow, driven by ever greater and other non-commercial communities. ICANN coor-
amounts of online information and knowledge, com- dinates the assignment of unique identifiers for use on
merce, entertainment and social networking.[42] During the Internet, including domain names, Internet Protocol
the late 1990s, it was estimated that traffic on the pub- (IP) addresses, application port numbers in the transport
lic Internet grew by 100 percent per year, while the protocols, and many other parameters. Globally unified
mean annual growth in the number of Internet users was name spaces are essential for maintaining the global reach
thought to be between 20% and 50%.[43] This growth of the Internet. This role of ICANN distinguishes it as
is often attributed to the lack of central administration, perhaps the only central coordinating body for the global
which allows organic growth of the network, as well Internet.[47]
as the non-proprietary nature of the Internet protocols, Regional Internet Registries (RIRs) allocate IP addresses:
which encourages vendor interoperability and prevents
any one company from exerting too much control over • African Network Information Center (AfriNIC) for
the network.[44] As of 31 March 2011, the estimated to- Africa
tal number of Internet users was 2.095 billion (30.2%
of world population).[45] It is estimated that in 1993 • American Registry for Internet Numbers (ARIN)
the Internet carried only 1% of the information flowing for North America
through two-way telecommunication, by 2000 this fig-
ure had grown to 51%, and by 2007 more than 97% of • Asia-Pacific Network Information Centre (APNIC)
for Asia and the Pacific region
198 CHAPTER 34. INTERNET
Tier 2 Networks
Caribbean region
Transit
Peering
PoP #2 PoP #1
IXP Tier 2 ISP
• Réseaux IP Européens – Network Coordination Transit
Transit
Many hotels also have public terminals, though these are simply informative, experimental, or historical, or doc-
usually fee-based. These terminals are widely accessed ument the best current practices (BCP) when implement-
for various usages, such as ticket booking, bank deposit, ing Internet technologies.
or online payment. Wi-Fi provides wireless access to the The Internet standards describe a framework known as
Internet via local computer networks. Hotspots provid- the Internet protocol suite. This is a model architec-
ing such access include Wi-Fi cafes, where users need to ture that divides methods into a layered system of proto-
bring their own wireless devices such as a laptop or PDA. cols, originally documented in RFC 1122 and RFC 1123.
These services may be free to all, free to customers only, The layers correspond to the environment or scope in
or fee-based.
which their services operate. At the top is the application
Grassroots efforts have led to wireless community net- layer, space for the application-specific networking meth-
works. Commercial Wi-Fi services covering large city ods used in software applications. For example, a web
areas are in place in New York, London, Vienna, Toronto, browser program uses the client-server application model
San Francisco, Philadelphia, Chicago and Pittsburgh. and a specific protocol of interaction between servers and
The Internet can then be accessed from such places as clients, while many file-sharing systems use a peer-to-
a park bench.[53] Apart from Wi-Fi, there have been ex- peer paradigm. Below this top layer, the transport layer
periments with proprietary mobile wireless networks like connects applications on different hosts with a logical
Ricochet, various high-speed data services over cellu- channel through the network with appropriate data ex-
lar phone networks, and fixed wireless services. High- change methods.
end mobile phones such as smartphones in general come Underlying these layers are the networking technologies
with Internet access through the phone network. Web that interconnect networks at their borders and hosts via
browsers such as Opera are available on these advanced the physical connections. The Internet layer enables com-
handsets, which can also run a wide variety of other In- puters to identify and locate each other via Internet Pro-
ternet software. More mobile phones have Internet access tocol (IP) addresses, and routes their traffic via interme-
than PCs, though this is not as widely used.[54] An Inter- diate (transit) networks. Last, at the bottom of the archi-
net access provider and protocol matrix differentiates the tecture is the link layer, which provides connectivity be-
methods used to get online. tween hosts on the same network link, such as a physical
connection in the form of a local area network (LAN) or a
dial-up connection. The model, also known as TCP/IP, is
34.4.3 Structure designed to be independent of the underlying hardware,
which the model, therefore, does not concern itself with
Many computer scientists describe the Internet as a in any detail. Other models have been developed, such
“prime example of a large-scale, highly engineered, yet as the OSI model, that attempt to be comprehensive in
highly complex system”.[55] The structure was found to be every aspect of communications. While many similar-
highly robust to random failures,[56] yet, very vulnerable ities exist between the models, they are not compatible
to intentional attacks.[57] The Internet structure and its us- in the details of description or implementation; indeed,
age characteristics have been studied extensively and the TCP/IP protocols are usually included in the discussion
possibility of developing alternative structures has been of OSI networking.
investigated.[58]
Data Application
34.5 Protocols
UDP UDP Transport
header data
While the hardware components in the Internet infras-
tructure can often be used to support other software sys- IP
IP data Internet
tems, it is the design and the standardization process of header
the software that characterizes the Internet and provides
the foundation for its scalability and success. The respon- Frame Frame
Frame data Link
header footer
sibility for the architectural design of the Internet soft-
ware systems has been assumed by the Internet Engineer-
ing Task Force (IETF).[59] The IETF conducts standard- As user data is processed through the protocol stack, each ab-
setting work groups, open to any individual, about the straction layer adds encapsulation information at the sending
various aspects of Internet architecture. Resulting contri- host. Data is transmitted over the wire at the link level between
butions and standards are published as Request for Com- hosts and routers. Encapsulation is removed by the receiving host.
ments (RFC) documents on the IETF web site. The prin- Intermediate relays update link encapsulation at each hop, and
cipal methods of networking that enable the Internet are inspect the IP layer for routing purposes.
contained in specially designated RFCs that constitute the
Internet Standards. Other less rigorous documents are The most prominent component of the Internet model is
200 CHAPTER 34. INTERNET
from, for example, Facebook and Twitter currently have no “extra features” may be line-powered only and oper-
large followings. These operations often brand them- ate during a power failure; VoIP can never do so without a
selves as social network services rather than simply as web backup power source for the phone equipment and the In-
page hosts. ternet access devices. VoIP has also become increasingly
Advertising on popular web pages can be lucrative, and popular for gaming applications, as a form of commu-
e-commerce or the sale of products and services directly nication between players. Popular VoIP clients for gam-
via the Web continues to grow. ing include Ventrilo and Teamspeak. Modern video game
consoles also offer VoIP chat features.
When the Web developed in the 1990s, a typical web
page was stored in completed form on a web server, for-
matted in HTML, complete for transmission to a web 34.6.3 Data transfer
browser in response to a request. Over time, the process
of creating and serving web pages has become dynamic, File sharing is an example of transferring large amounts
creating a flexible design, layout, and content. Websites of data across the Internet. A computer file can be
are often created using content management software emailed to customers, colleagues and friends as an attach-
with, initially, very little content. Contributors to these ment. It can be uploaded to a website or File Transfer
systems, who may be paid staff, members of an organiza- Protocol (FTP) server for easy download by others. It can
tion or the public, fill underlying databases with content be put into a “shared location” or onto a file server for in-
using editing pages designed for that purpose while ca- stant use by colleagues. The load of bulk downloads to
sual visitors view and read this content in HTML form. many users can be eased by the use of "mirror" servers
There may or may not be editorial, approval and secu- or peer-to-peer networks. In any of these cases, access
rity systems built into the process of taking newly entered to the file may be controlled by user authentication, the
content and making it available to the target visitors. transit of the file over the Internet may be obscured by
encryption, and money may change hands for access to
the file. The price can be paid by the remote charging of
34.6.2 Communication funds from, for example, a credit card whose details are
also passed – usually fully encrypted – across the Inter-
Email is an important communications service available net. The origin and authenticity of the file received may
on the Internet. The concept of sending electronic text be checked by digital signatures or by MD5 or other mes-
messages between parties in a way analogous to mail- sage digests. These simple features of the Internet, over
ing letters or memos predates the creation of the Inter- a worldwide basis, are changing the production, sale, and
net. Pictures, documents, and other files are sent as email distribution of anything that can be reduced to a com-
attachments. Emails can be cc-ed to multiple email ad- puter file for transmission. This includes all manner of
dresses. print publications, software products, news, music, film,
Internet telephony is another common communications video, photography, graphics and the other arts. This in
service made possible by the creation of the Internet. turn has caused seismic shifts in each of the existing in-
VoIP stands for Voice-over-Internet Protocol, referring dustries that previously controlled the production and dis-
to the protocol that underlies all Internet communication. tribution of these products.
The idea began in the early 1990s with walkie-talkie-like Streaming media is the real-time delivery of digital me-
voice applications for personal computers. In recent years dia for the immediate consumption or enjoyment by
many VoIP systems have become as easy to use and as end users. Many radio and television broadcasters pro-
convenient as a normal telephone. The benefit is that, vide Internet feeds of their live audio and video produc-
as the Internet carries the voice traffic, VoIP can be free tions. They may also allow time-shift viewing or listening
or cost much less than a traditional telephone call, espe- such as Preview, Classic Clips and Listen Again features.
cially over long distances and especially for those with These providers have been joined by a range of pure In-
always-on Internet connections such as cable or ADSL. ternet “broadcasters” who never had on-air licenses. This
VoIP is maturing into a competitive alternative to tradi- means that an Internet-connected device, such as a com-
tional telephone service. Interoperability between differ- puter or something more specific, can be used to ac-
ent providers has improved and the ability to call or re- cess on-line media in much the same way as was pre-
ceive a call from a traditional telephone is available. Sim- viously possible only with a television or radio receiver.
ple, inexpensive VoIP network adapters are available that The range of available types of content is much wider,
eliminate the need for a personal computer. from specialized technical webcasts to on-demand popu-
Voice quality can still vary from call to call, but is of- lar multimedia services. Podcasting is a variation on this
ten equal to and can even exceed that of traditional calls. theme, where – usually audio – material is downloaded
Remaining problems for VoIP include emergency tele- and played back on a computer or shifted to a portable
phone number dialing and reliability. Currently, a few media player to be listened to on the move. These tech-
VoIP providers provide an emergency service, but it is niques using simple equipment allow anybody, with little
not universally available. Older traditional phones with censorship or licensing control, to broadcast audio-visual
202 CHAPTER 34. INTERNET
material worldwide.
Others - 17%
Chinese - 4%
English - 55%
70
percent of Europe countries population using the Inter-
73
76
78*
27
30
32* of the Internet, as well as the language’s role as a lingua
24 24
20
17
16
18
21
23
15
17
21 franca. Early computer systems were limited to the char-
14
10 11
5
7 8
11
12
6
7
8 9
12
acters in the American Standard Code for Information
3 4
0
1996
2
0 1
1998
1
2
2000
3
developed enough in recent years, especially in the use doctoral is available from websites. Examples range from
of Unicode, that good facilities are available for develop- CBeebies, through school and high-school revision guides
ment and communication in the world’s widely used lan- and virtual universities, to access to top-end scholarly lit-
guages. However, some glitches such as mojibake (incor- erature through the likes of Google Scholar. For distance
rect display of some languages’ characters) still remain. education, help with homework and other assignments,
In an American study in 2005, the percentage of men us- self-guided learning, whiling away spare time, or just
ing the Internet was very slightly ahead of the percentage looking up more detail on an interesting fact, it has never
of women, although this difference reversed in those un- been easier for people to access educational information
at any level from anywhere. The Internet in general and
der 30. Men logged on more often, spent more time on-
line, and were more likely to be broadband users, whereas the World Wide Web in particular are important enablers
of both formal and informal education. Further, the In-
women tended to make more use of opportunities to com-
municate (such as email). Men were more likely to use ternet allows universities, in particular, researchers from
the social and behavioral sciences, to conduct research re-
the Internet to pay bills, participate in auctions, and for
recreation such as downloading music and videos. Men motely via virtual laboratories, with profound changes in
reach and generalizability of findings as well as in com-
and women were equally likely to use the Internet for
shopping and banking.[74] More recent studies indicate munication between scientists and in the publication of
that in 2008, women significantly outnumbered men on results.[86]
most social networking sites, such as Facebook and Mys- The low cost and nearly instantaneous sharing of ideas,
pace, although the ratios varied with age.[75] In addition, knowledge, and skills have made collaborative work dra-
women watched more streaming content, whereas men matically easier, with the help of collaborative software.
downloaded more.[76] In terms of blogs, men were more Not only can a group cheaply communicate and share
likely to blog in the first place; among those who blog, ideas but the wide reach of the Internet allows such groups
men were more likely to have a professional blog, whereas more easily to form. An example of this is the free
women were more likely to have a personal blog.[77] software movement, which has produced, among other
According to forecasts by Euromonitor International, things, Linux, Mozilla Firefox, and OpenOffice.org. In-
44% of the world’s population will be users of the In- ternet chat, whether using an IRC chat room, an instant
ternet by 2020.[78] Splitting by country, in 2012 Iceland, messaging system, or a social networking website, allows
Norway, Sweden, the Netherlands, and Denmark had the colleagues to stay in touch in a very convenient way while
highest Internet penetration by the number of users, with working at their computers during the day. Messages can
be exchanged even more quickly and conveniently than
93% or more of the population with access.[79]
via email. These systems may allow files to be exchanged,
Several neologisms exist that refer to Internet users: drawings and images to be shared, or voice and video con-
Netizen (as in as in “citizen of the net”)[80] refers to tact between team members.
those actively involved in improving online communi-
ties, the Internet in general or surrounding political af- Content management systems allow collaborating teams
fairs and rights such as free speech,[81][82] Internaut refers to work on shared sets of documents simultaneously with-
to operators or technically highly capable users of the out accidentally destroying each other’s work. Business
Internet,[83][84] digital citizen refers to a person using the and project teams can share calendars as well as docu-
Internet in order to engage in society, politics, and gov- ments and other information. Such collaboration occurs
ernment participation.[85] in a wide variety of areas including scientific research,
software development, conference planning, political ac-
tivism and creative writing. Social and political collabo-
34.7.2 Usage ration is also becoming more widespread as both Internet
access and computer literacy spread.
The Internet allows greater flexibility in working hours The Internet allows computer users to remotely access
and location, especially with the spread of unmetered other computers and information stores easily from any
high-speed connections. The Internet can be accessed al- access point. Access may be with computer security,
most anywhere by numerous means, including through i.e. authentication and encryption technologies, depend-
mobile Internet devices. Mobile phones, datacards, ing on the requirements. This is encouraging new ways of
handheld game consoles and cellular routers allow users working from home, collaboration and information shar-
to connect to the Internet wirelessly. Within the limita- ing in many industries. An accountant sitting at home
tions imposed by small screens and other limited facilities can audit the books of a company based in another coun-
of such pocket-sized devices, the services of the Inter- try, on a server situated in a third country that is remotely
net, including email and the web, may be available. Ser- maintained by IT specialists in a fourth. These accounts
vice providers may restrict the services offered and mo- could have been created by home-working bookkeepers,
bile data charges may be significantly higher than other in other remote locations, based on information emailed
access methods. to them from offices all over the world. Some of these
Educational material at all levels from pre-school to post- things were possible before the widespread use of the In-
204 CHAPTER 34. INTERNET
ternet, but the cost of private leased lines would have ticular has been criticised in the past for not doing enough
made many of them infeasible in practice. An office to aid victims of online abuse.[88]
worker away from their desk, perhaps on the other side For organizations, such a backlash can cause overall
of the world on a business trip or a holiday, can access brand damage, especially if reported by the media. How-
their emails, access their data using cloud computing, or ever, this is not always the case, as any brand damage
open a remote desktop session into their office PC us- in the eyes of people with an opposing opinion to that
ing a secure virtual private network (VPN) connection presented by the organization could sometimes be out-
on the Internet. This can give the worker complete ac- weighed by strengthening the brand in the eyes of others.
cess to all of their normal files and data, including email
Furthermore, if an organization or individual gives in to
and other applications, while away from the office. It has demands that others perceive as wrong-headed, that can
been referred to among system administrators as the Vir-
then provoke a counter-backlash.
tual Private Nightmare,[87] because it extends the secure
perimeter of a corporate network into remote locations Some websites, such as Reddit, have rules forbidding
and its employees’ homes. the posting of personal information of individuals (also
known as doxxing), due to concerns about such postings
leading to mobs of large numbers of Internet users direct-
ing harassment at the specific individuals thereby identi-
34.7.3 Social networking and entertain- fied. In particular, the Reddit rule forbidding the post-
ment ing of personal information is widely understood to imply
that all identifying photos and names must be censored in
See also: Social networking service § Social impact Facebook screenshots posted to Reddit. However, the in-
terpretation of this rule in relation to public Twitter posts
Many people use the World Wide Web to access news, is less clear, and in any case, like-minded people online
weather and sports reports, to plan and book vacations have many other ways they can use to direct each other’s
and to pursue their personal interests. People use chat, attention to public social media posts they disagree with.
messaging and email to make and stay in touch with Children also face dangers online such as cyberbullying
friends worldwide, sometimes in the same way as some and approaches by sexual predators, who sometimes pose
previously had pen pals. Social networking websites such as children themselves. Children may also encounter ma-
as Facebook, Twitter, and Myspace have created new terial which they may find upsetting, or material which
ways to socialize and interact. Users of these sites are their parents consider to be not age-appropriate. Due to
able to add a wide variety of information to pages, to naivety, they may also post personal information about
pursue common interests, and to connect with others. It themselves online, which could put them or their fam-
is also possible to find existing acquaintances, to allow ilies at risk unless warned not to do so. Many parents
communication among existing groups of people. Sites choose to enable Internet filtering, and/or supervise their
like LinkedIn foster commercial and business connec- children’s online activities, in an attempt to protect their
tions. YouTube and Flickr specialize in users’ videos and children from inappropriate material on the Internet. The
photographs. While social networking sites were initially most popular social networking websites, such as Face-
for individuals only, today they are widely used by busi- book and Twitter, commonly forbid users under the age
nesses and other organizations to promote their brands, of 13. However, these policies are typically trivial to cir-
to market to their customers and to encourage posts to cumvent by registering an account with a false birth date,
"go viral". “Black hat” social media techniques are also and a significant number of children aged under 13 join
employed by some organizations, such as spam accounts such sites anyway. Social networking sites for younger
and astroturfing. children, which claim to provide better levels of protec-
[89]
A risk for both individuals and organizations writing posts tion for children, also exist.
(especially public posts) on social networking websites, is The Internet has been a major outlet for leisure activity
that especially foolish or controversial posts occasionally since its inception, with entertaining social experiments
lead to an unexpected and possibly large-scale backlash such as MUDs and MOOs being conducted on university
on social media from other Internet users. This is also servers, and humor-related Usenet groups receiving much
a risk in relation to controversial offline behavior, if it traffic. Today, many Internet forums have sections de-
is widely made known. The nature of this backlash can voted to games and funny videos. Over 6 million people
range widely from counter-arguments and public mock- use blogs or message boards as a means of communica-
ery, through insults and hate speech, to, in extreme cases, tion and for the sharing of ideas. The Internet pornogra-
rape and death threats. The online disinhibition effect de- phy and online gambling industries have taken advantage
scribes the tendency of many individuals to behave more of the World Wide Web, and often provide a significant
stridently or offensively online than they would in per- source of advertising revenue for other websites.[90] Al-
son. A significant number of feminist women have been though many governments have attempted to restrict both
the target of various forms of harassment in response to industries’ use of the Internet, in general, this has failed
posts they have made on social media, and Twitter in par-
34.7. SOCIAL IMPACT 205
to stop their widespread popularity.[91] processes spanning the entire value chain: purchasing,
Another area of leisure activity on the Internet is supply chain management, marketing, sales, customer
multiplayer gaming.[92] This form of recreation creates service, and business relationship. E-commerce seeks to
communities, where people of all ages and origins en- add revenue streams using the Internet to build and en-
joy the fast-paced world of multiplayer games. These hance relationships with clients and partners. Accord-
range from MMORPG to first-person shooters, from ing to International Data Corporation, the size of world-
role-playing video games to online gambling. While on- wide e-commerce, when global business-to-business and
line gaming has been around since the 1970s, modern -consumer transactions are combined, equate to $16 tril-
lion for 2013. A report by Oxford Economics adds those
modes of online gaming began with subscription services
such as GameSpy and MPlayer.[93] Non-subscribers were two together to estimate the total size of the digital econ-
omy at $20.4 trillion, equivalent to roughly 13.8% of
limited to certain types of game play or certain games.
Many people use the Internet to access and download global sales.[99]
music, movies and other works for their enjoyment and While much has been written of the economic advantages
relaxation. Free and fee-based services exist for all of of Internet-enabled commerce, there is also evidence that
these activities, using centralized servers and distributed some aspects of the Internet such as maps and location-
peer-to-peer technologies. Some of these sources exer- aware services may serve to reinforce economic inequal-
cise more care with respect to the original artists’ copy- ity and the digital divide.[100] Electronic commerce may
rights than others. be responsible for consolidation and the decline of mom-
Internet usage has been correlated to users’ loneliness. [94] and-pop, brick and mortar businesses resulting in in-
[101][102][103]
Lonely people tend to use the Internet as an outlet for their creases in income inequality.
feelings and to share their stories with others, such as in Author Andrew Keen, a long-time critic of the social
the "I am lonely will anyone speak to me" thread. transformations caused by the Internet, has recently fo-
Cybersectarianism is a new organizational form which cused on the economic effects of consolidation from In-
ternet businesses. Keen cites a 2013 Institute for Lo-
involves: “highly dispersed small groups of practition-
ers that may remain largely anonymous within the larger cal Self-Reliance report saying brick-and-mortar retail-
ers employ 47 people for every $10 million in sales while
social context and operate in relative secrecy, while still
linked remotely to a larger network of believers who share Amazon employs only 14. Similarly, the 700-employee
room rental start-up Airbnb was valued at $10 billion in
a set of practices and texts, and often a common devo-
tion to a particular leader. Overseas supporters provide 2014, about half as much as Hilton Hotels, which em-
funding and support; domestic practitioners distribute ploys 152,000 people. And car-sharing Internet startup
tracts, participate in acts of resistance, and share infor- Uber employs 1,000 full-time employees and is valued
mation on the internal situation with outsiders. Collec- at $18.2 billion, about the same valuation as Avis and
tively, members and practitioners of such sects construct Hertz combined,
[104]
which together employ almost 60,000
viable virtual communities of faith, exchanging personal people.
testimonies and engaging in the collective study via email,
on-line chat rooms, and web-based message boards.”[95]
34.7.5 Telecommuting
In particular, the British government has raised concerns
about the prospect of young British Muslims being indoc-
Telecommuting is the performance within a traditional
trinated into Islamic extremism by material on the Inter-
worker and employer relationship when it is facilitated
net, being persuaded to join terrorist groups such as the
by tools such as groupware, virtual private networks,
so-called "Islamic State", and then potentially committing
conference calling, videoconferencing, and voice over IP
acts of terrorism on returning to Britain after fighting in
(VOIP) so that work may be performed from any loca-
Syria or Iraq.
tion, most conveniently the worker’s home. It can be
Cyberslacking can become a drain on corporate re- efficient and useful for companies as it allows workers
sources; the average UK employee spent 57 minutes a day to communicate over long distances, saving significant
surfing the Web while at work, according to a 2003 study amounts of travel time and cost. As broadband Internet
by Peninsula Business Services.[96] Internet addiction dis- connections become commonplace, more workers have
order is excessive computer use that interferes with daily adequate bandwidth at home to use these tools to link
life.[97] Psychologist, Nicolas Carr believe that Internet their home to their corporate intranet and internal com-
use has other effects on individuals, for instance improv- munication networks.
ing skills of scan-reading and interfering with the deep
thinking that leads to true creativity.[98]
34.7.6 Crowdsourcing
34.7.4 Electronic business The Internet provides a particularly good venue for
crowdsourcing, because individuals tend to be more open
Electronic business (e-business) encompasses business in web-based projects where they are not being physically
206 CHAPTER 34. INTERNET
judged or scrutinized and thus can feel more comfortable his 2004 thesis:
sharing.
As the globally evolving Internet provides
ever new access points to virtual discourse
34.7.7 Collaborative publishing forums, it also promotes new civic relations
and associations within which communicative
Wikis have also been used in the academic community
power may flow and accumulate. Thus, tradi-
for sharing and dissemination of information across in-
[105] tionally … national-embedded peripheries get
stitutional and international boundaries. In those set-
entangled into greater, international periph-
tings, they have been found useful for collaboration on
eries, with stronger combined powers... The
grant writing, strategic planning, departmental documen-
Internet, as a consequence, changes the topol-
tation, and committee work.[106] The United States Patent
ogy of the “centre-periphery” model, by stim-
and Trademark Office uses a wiki to allow the public to
ulating conventional peripheries to interlink
collaborate on finding prior art relevant to examination
into “super-periphery” structures, which en-
of pending patent applications. Queens, New York has
close and “besiege” several centres at once.[113]
used a wiki to allow citizens to collaborate on the design
and planning of a local park.[107] The English Wikipedia
has the largest user base among wikis on the World Wide Berdal, therefore, extends the Habermasian notion of the
Web[108] and ranks in the top 10 among all Web sites in public sphere to the Internet, and underlines the inher-
terms of traffic.[109] ent global and civic nature that interwoven Internet tech-
nologies provide. To limit the growing civic potential of
the Internet, Berdal also notes how “self-protective mea-
34.7.8 Politics and political revolutions sures” are put in place by those threatened by it:
See also: Internet censorship, Culture of fear, and Mass If we consider China’s attempts to filter
surveillance “unsuitable material” from the Internet, most
The Internet has achieved new relevance as a politi- of us would agree that this resembles a self-
protective measure by the system against the
growing civic potentials of the Internet. Never-
theless, both types represent limitations to “pe-
ripheral capacities”. Thus, the Chinese govern-
ment tries to prevent communicative power to
build up and unleash (as the 1989 Tiananmen
Square uprising suggests, the government may
find it wise to install “upstream measures”).
Even though limited, the Internet is proving
to be an empowering tool also to the Chinese
periphery: Analysts believe that Internet pe-
titions have influenced policy implementation
in favour of the public’s online-articulated will
…[113]
Banner in Bangkok during the 2014 Thai coup d'état, inform- Incidents of politically motivated Internet censorship
ing the Thai public that 'like' or 'share' activities on social media
have now been recorded in many countries, including
could result in imprisonment (observed June 30, 2014).
western democracies.
cal tool. The presidential campaign of Howard Dean
in 2004 in the United States was notable for its success
34.7.9 Philanthropy
in soliciting donation via the Internet. Many political
groups use the Internet to achieve a new method of or- The spread of low-cost Internet access in developing
ganizing for carrying out their mission, having given rise
countries has opened up new possibilities for peer-to-
to Internet activism, most notably practiced by rebels in
peer charities, which allow individuals to contribute
the Arab Spring.[110][111] The New York Times suggested small amounts to charitable projects for other individu-
that social media websites, such as Facebook and Twit- als. Websites, such as DonorsChoose and GlobalGiving,
ter, helped people organize the political revolutions inallow small-scale donors to direct funds to individual
Egypt, by helping activists organize protests, communi- projects of their choice. A popular twist on Internet-
cate grievances, and disseminate information.[112] based philanthropy is the use of peer-to-peer lending for
The potential of the Internet as a civic tool of commu- charitable purposes. Kiva pioneered this concept in 2005,
nicative power was explored by Simon R. B. Berdal in offering the first web-based service to publish individual
34.8. SECURITY 207
loan profiles for funding. Kiva raises funds for local in- Assistance For Law Enforcement Act, all phone calls
termediary microfinance organizations which post stories and broadband Internet traffic (emails, web traffic, in-
and updates on behalf of the borrowers. Lenders can con- stant messaging, etc.) are required to be available for
tribute as little as $25 to loans of their choice, and receive unimpeded real-time monitoring by Federal law enforce-
their money back as borrowers repay. Kiva falls short of ment agencies.[118][119][120] Packet capture is the moni-
being a pure peer-to-peer charity, in that loans are dis- toring of data traffic on a computer network. Comput-
bursed before being funded by lenders and borrowers do ers communicate over the Internet by breaking up mes-
not communicate with lenders themselves.[114][115] sages (emails, images, videos, web pages, files, etc.) into
small chunks called “packets”, which are routed through a
However, the recent spread of low-cost Internet access
in developing countries has made genuine international network of computers, until they reach their destination,
where they are assembled back into a complete “message”
person-to-person philanthropy increasingly feasible. In
2009, the US-based nonprofit Zidisha tapped into this again. Packet Capture Appliance intercepts these pack-
ets as they are traveling through the network, in order to
trend to offer the first person-to-person microfinance
platform to link lenders and borrowers across interna- examine their contents using other programs. A packet
capture is an information gathering tool, but not an anal-
tional borders without intermediaries. Members can fund
loans for as little as a dollar, which the borrowers then ysis tool. That is it gathers “messages” but it does not ana-
use to develop business activities that improve their fam- lyze them and figure out what they mean. Other programs
ilies’ incomes while repaying loans to the members with are needed to perform traffic analysis and sift through in-
interest. Borrowers access the Internet via public cyber- tercepted data looking for important/useful information.
cafes, donated laptops in village schools, and even smart Under the Communications Assistance For Law Enforce-
phones, then create their own profile pages through which ment Act all U.S. telecommunications providers are re-
they share photos and information about themselves and quired to install packet sniffing technology to allow Fed-
their businesses. As they repay their loans, borrowers eral law enforcement and intelligence agencies to inter-
continue to share updates and dialogue with lenders via cept all of their customers’ broadband Internet and voice
their profile pages. This direct web-based connection al- over Internet protocol (VoIP) traffic.[121]
lows members themselves to take on many of the com- The large amount of data gathered from packet captur-
munication and recording tasks traditionally performed ing requires surveillance software that filters and reports
by local organizations, bypassing geographic barriers and relevant information, such as the use of certain words
dramatically reducing the cost of microfinance services or phrases, the access of certain types of web sites, or
to the entrepreneurs.[116] communicating via email or chat with certain parties.[122]
Agencies, such as the Information Awareness Office,
NSA, GCHQ and the FBI, spend billions of dollars per
34.8 Security year to develop, purchase, implement, and operate sys-
tems for interception and analysis of data.[123] Similar
systems are operated by Iranian secret police to identify
Main article: Internet security
and suppress dissidents. The required hardware and soft-
ware was allegedly installed by German Siemens AG and
Internet resources, hardware, and software components Finnish Nokia.[124]
are the target of malicious attempts to gain unauthorized
control to cause interruptions or access private infor-
mation. Such attempts include computer viruses which 34.8.2 Censorship
copy with the help of humans, computer worms which
copy themselves automatically, denial of service attacks, Main articles: Internet censorship and Internet freedom
ransomware, botnets, and spyware that reports on the ac- See also: Culture of fear
tivity and typing of users. Usually, these activities con-
stitute cybercrime. Defense theorists have also specu-
lated about the possibilities of cyber warfare using similar Some governments, such as those of Burma, Iran, North
methods on a large scale. Korea, the Mainland China, Saudi Arabia and the United
Arab Emirates restrict access to content on the Internet
within their territories, especially to political and religious
34.8.1 Surveillance content, with domain name and keyword filters.[129]
In Norway, Denmark, Finland, and Sweden, major Inter-
Main article: Computer and network surveillance net service providers have voluntarily agreed to restrict
See also: Signals intelligence and Mass surveillance access to sites listed by authorities. While this list of for-
bidden resources is supposed to contain only known child
The vast majority of computer surveillance involves the pornography sites, the content of the list is secret.[130]
monitoring of data and traffic on the Internet.[117] In the Many countries, including the United States, have en-
United States for example, under the Communications acted laws against the possession or distribution of certain
208 CHAPTER 34. INTERNET
Pervasive
Substantial 34.10 See also
Selective
Changing situation • Darknet
Little or none
Not classified or no data • Deep web
• Freenet
• Index of Internet-related articles
material, such as child pornography, via the Internet, but • Internet metaphors
do not mandate filter software. Many free or commer-
cially available software programs, called content-control • "Internets"
software are available to users to block offensive websites
• Open Systems Interconnection
on individual computers or networks, in order to limit ac-
cess by children to pornographic material or depiction of • Outline of the Internet
violence.
34.11 References
34.9 Performance [1] “IPTO -- Information Processing Techniques Office”, The
Living Internet, Bill Stewart (ed), January 2000.
As the Internet is a heterogeneous network, the physi- [2] “Internet History -- One Page Summary”, The Living In-
ternet, Bill Stewart (ed), January 2000.
cal characteristics, including for example the data trans-
fer rates of connections, vary widely. It exhibits emergent [3] “So, who really did invent the Internet?", Ian Peter, The
phenomena that depend on its large-scale organization. Internet History Project, 2004. Retrieved 27 June 2014.
[10] “7.76 Terms like 'web' and 'Internet'", Chicago Manual [26] “NORSAR and the Internet”. NORSAR. Archived from
of Style, University of Chicago, 16th edition (registration the original on 2012-12-17.
required)
[27] "#3 1982: the ARPANET community grows” in 40 maps
[11] “internetted”. Oxford English Dictionary (3rd ed.). that explain the internet, Timothy B. Lee, Vox Conversa-
Oxford University Press. September 2005. (Subscription tions, 2 June 2014. Retrieved 27 June 2014.
or UK public library membership required.) nineteenth-
century use as an adjective. [28] Kirstein, Peter T. “Early experiences with the ARPANET
and Internet in the UK”. Department of Computer Sci-
[12] “internetwork”. Oxford English Dictionary (3rd ed.). ence, Systems and Networks Research Group, University
Oxford University Press. September 2005. (Subscription College London. Retrieved 13 April 2016; Cade Metz
or UK public library membership required.) (25 December 2012). “How the Queen of England Beat
Everyone to the Internet”. Wired Magazine. Retrieved 27
[13] “HTML 4.01 Specification”. HTML 4.01 Specification.
June 2014.
World Wide Web Consortium. Retrieved August 13,
2008. [T]he link (or hyperlink, or Web link) [is] the basic [29] Leiner, Barry M.; Cerf, Vinton G.; Clark, David D.;
hypertext construct. A link is a connection from one Web Kahn, Robert E.; Kleinrock, Leonard; Lynch, Daniel C.;
resource to another. Although a simple concept, the link Postel, Jon; Roberts, Larry G.; Wolff, Stephen (2003).
has been one of the primary forces driving the success of
“A Brief History of Internet”: 1011. arXiv:cs/9901011 .
the Web.
Bibcode:1999cs........1011L. Retrieved 28 May 2009.
[14] “The Difference Between the Internet and the World
Wide Web”. Webopedia.com. QuinStreet Inc. 2010-06- [30] NSFNET: A Partnership for High-Speed Networking, Final
24. Retrieved 2014-05-01. Report 1987–1995, Karen D. Frazer, Merit Network, Inc.,
1995
[15] “Brief History of the Internet”. Internet Society. Re-
trieved 9 April 2016. It happened that the work at MIT [31] Harris, Susan R.; Gerich, Elise (April 1996). “Retiring
(1961-1967), at RAND (1962-1965), and at NPL (1964- the NSFNET Backbone Service: Chronicling the End of
1967) had all proceeded in parallel without any of the an Era”. ConneXions. 10 (4).
researchers knowing about the other work. The word
“packet” was adopted from the work at NPL [32] Ben Segal (1995). “A Short History of Internet Protocols
at CERN”.
[16] “A Technical History of CYCLADES”. Technical Histo-
ries of the Internet & other Network Protocols. Computer [33] Réseaux IP Européens (RIPE)
Science Department, University of Texas Austin. 11 June
2002. Archived from the original on 1 September 2013. [34] “Internet History in Asia”. 16th APAN Meet-
ings/Advanced Network Conference in Busan. Retrieved
[17] Zimmermann, H. (August 1977). “The Cyclades Expe- 25 December 2005.
rience: Results and Impacts”. Proc. IFIP'77 Congress.
Toronto: 465–469. [35] The History of NORDUnet
[18] A Chronicle of Merit’s Early History, John Mulcahy, 1989, [36] ftp://ftp.cuhk.edu.hk/pub/doc/internet/Internet.
Merit Network, Ann Arbor, Michigan Monthly.Report/imr9002.txt
[19] Ward, Mark (29 October 2009). “Celebrating 40 years of [37] Berners-Lee, Tim. “The Original HTTP as defined in
the net”. BBC News. 1991”. W3C.org.
[25] “Events in British Telecomms History”. Events in British [41] ICT Facts and Figures 2005, 2010, 2014, Telecommuni-
TelecommsHistory. Archived from the original on 5 April cation Development Bureau, International Telecommuni-
2003. Retrieved 25 November 2005. cation Union (ITU). Retrieved 24 May 2015.
210 CHAPTER 34. INTERNET
[42] “Brazil, Russia, India and China to Lead Internet Growth [57] R. Cohen, K. Erez, D. ben-Avraham, S. Havlin;
Through 2011”. Clickz.com. Archived from the original Erez, K; Ben-Avraham, D; Havlin, S (2001).
on 4 October 2008. Retrieved 28 May 2009. “Breakdown of the Internet under intentional attack”.
Phys. Rev. Lett. 86 (16): 3682–5. arXiv:cond-
[43] Coffman, K. G; Odlyzko, A. M. (2 October 1998). “The
mat/0010251 . Bibcode:2001PhRvL..86.3682C.
size and growth rate of the Internet” (PDF). AT&T Labs.
doi:10.1103/PhysRevLett.86.3682. PMID 11328053.
Retrieved 21 May 2007.
[44] Comer, Douglas (2006). The Internet book. Prentice Hall. [58] Jesdanun, Anick (16 April 2007). “Internet Makeover?
p. 64. ISBN 0-13-233553-0. Some argue it’s time”. Seattletimes.nwsource.com. Re-
trieved 8 August 2011.
[45] “World Internet Users and Population Stats”. Internet
World Stats. Miniwatts Marketing Group. 22 June 2011. [59] “IETF Home Page”. Ietf.org. Retrieved 20 June 2009.
Retrieved 23 June 2011.
[60] Huston, Geoff. “IPv4 Address Report, daily generated”.
[46] Hilbert, Martin; López, Priscila (April 2011). “The Retrieved 20 May 2009.
World’s Technological Capacity to Store, Commu-
nicate, and Compute Information” (PDF). Science. [61] “Notice of Internet Protocol version 4 (IPv4) Address De-
332 (6025): 60–65. Bibcode:2011Sci...332...60H. pletion” (PDF). Retrieved 7 August 2009.
doi:10.1126/science.1200970. PMID 21310967.
[62] "World Wide Web Timeline". Pews Research Center. 11
[47] Klein, Hans. (2004). “ICANN and Non-Territorial March 2014. Retrieved 1 August 2015.
Sovereignty: Government Without the Nation State.” In-
ternet and Public Policy Project. Georgia Institute of [63] "Website Analytics Tool". Retrieved 1 August 2015.
Technology.
[64] Morrison, Geoff (18 November 2010). “What to know
[48] Packard, Ashley (2010). Digital Media Law. Wiley- before buying a 'connected' TV – Technology & science
Blackwell. p. 65. ISBN 978-1-4051-8169-3. – Tech and gadgets – Tech Holiday Guide”. MSNBC. Re-
trieved 8 August 2011.
[49] “Bush administration annexes internet”, Kieren Mc-
Carthy, The Register, 1 July 2005 [65] “YouTube Fact Sheet”. YouTube, LLC. Archived from
the original on 4 July 2010. Retrieved 20 January 2009.
[50] Mueller, Milton L. (2010). Networks and States: The
Global Politics of Internet Governance. MIT Press. p. 61. [66] “Individuals using the Internet 2005 to 2014”, Key ICT
ISBN 978-0-262-01459-5. indicators for developed and developing countries and
the world (totals and penetration rates), International
[51] “Internet Society (ISOC) All About The Internet: History
Telecommunication Union (ITU). Retrieved 25 May
of the Internet”. ISOC. Retrieved 2013-12-19.
2015.
[52] A. L. Barab´asi, R. Albert; Barabási, Albert-László
(2002). “Statistical mechanics of complex net- [67] “Internet users per 100 inhabitants 1997 to 2007”, ICT
works”. Rev. Mod. Phys. 74: 47–94. arXiv:cond- Data and Statistics (IDS), International Telecommunica-
tion Union (ITU). Retrieved 25 May 2015.
mat/0106096 . Bibcode:2002RvMP...74...47A.
doi:10.1103/RevModPhys.74.47. [68] “Number of Internet Users by Language”, Internet World
Stats, Miniwatts Marketing Group, 31 May 2011. Re-
[53] Pasternak, Sean B. (7 March 2006). “Toronto Hy-
trieved 22 April 2012
dro to Install Wireless Network in Downtown Toronto”.
Bloomberg. Retrieved 8 August 2011. [69] “Usage of content languages for websites”. W3Techs.com.
[54] “By 2013, mobile phones will overtake PCs as the most Retrieved 26 April 2013.
common Web access device worldwide”, according to a
[70] Internet users graphs, Market Information and Statistics,
forecast in “Gartner Highlights Key Predictions for IT Or-
International Telecommunications Union
ganizations and Users in 2010 and Beyond”, Gartner, Inc.,
13 January 2010 [71] “Google Earth demonstrates how technology benefits RI`s
[55] Willinger, Walter; Govindan, Ramesh; Jamin, Sugih; civil society, govt”. Antara News. 2011-05-26. Retrieved
Paxson, Vern; Shenker, Scott (2002). “Scaling phe- 2012-11-19.
nomena in the Internet: Critically examining critical-
[72] Steve Dent. “There are now 3 billion internet users, mostly
ity”. Proceedings of the National Academy of Sciences.
in rich countries”. Retrieved 25 November 2014.
99 (99): 2573–2580. Bibcode:2002PNAS...99.2573W.
doi:10.1073/pnas.012583099. [73] World Internet Usage Statistics News and Population Stats
[56] R. Cohen, K. Erez, D. ben-Avraham, S. Havlin; Erez, updated for 30 June 2010. Retrieved 20 February 2011.
Keren; Ben-Avraham, Daniel; Havlin, Shlomo (2000). [74] How men and women use the Internet Pew Research Cen-
“Resilience of the Internet to random breakdowns”. ter 28 December 2005
Phys. Rev. Lett. 85 (21): 4625. arXiv:cond-
mat/0007048 . Bibcode:2000PhRvL..85.4626C. [75] “Rapleaf Study on Social Network Users”. Archived from
doi:10.1103/PhysRevLett.85.4626. the original on 20 March 2009.
34.11. REFERENCES 211
[76] “Women Ahead Of Men In Online Tv, Dvr, Games, And [95] Patricia M. Thornton, “The New Cybersects: Resistance
Social Media.”. Entrepreneur.com. 1 May 2008. Re- and Repression in the Reform era. " In Elizabeth Perry
trieved 8 August 2011. and Mark Selden, eds., Chinese Society: Change, Conflict
and Resistance (second edition) (London and New York:
[77] “Technorati’s State of the Blogosphere”. Technorati. Re- Routledge, 2003), pp. 149–50.
trieved 8 August 2011.
[96] “Net abuse hits small city firms”. The Scotsman. Edin-
[78] “Special Report: The Telecom Consumer in 2020”, Pavel burgh. 11 September 2003. Retrieved 7 August 2009.
Marceux, Euromonitor International, 27 August 2013.
[97] Prieto-Gutierrez, J.J. y Moreno-Cámara, A. Las Redes
Retrieved 7 June 2015.
Sociales de Internet, ¿Una nueva adicción? / The use of
Social Networking Websites is a New Addiction? Revista
[79] “Percentage of Individuals using the Internet 2000-2012”,
Argentina de Clínica Psicológica 24 (II), 149-156[3]
International Telecommunications Union (Geneva), June
2013, retrieved 22 June 2013 [98] The Shallows: What the Internet Is Doing to Our Brains,
Nicholas Carr, W. W. Norton, 7 June 2010, 276 pp.,
[80] Seese, Michael. Scrappy Information Security. p. 130. ISBN 0-393-07222-3, ISBN 978-0-393-07222-8
ISBN 978-1-60005-132-6. Retrieved 5 June 2015.
[99] “The New Digital Economy: How it will transform busi-
[81] netizen, Dictionary.com ness”, Oxford Economics, 2 July 2011
[82] The Net and Netizens by Michael Hauben, Columbia Uni- [100] Badger, Emily (6 February 2013). “How the Internet Re-
versity. inforces Inequality in the Real World”. The Atlantic. Re-
trieved 2013-02-13.
[83] A Brief History of the Internet from the Internet Society
[101] “E-commerce will make the shopping mall a retail waste-
[84] “Oxford Dictionaries – internaut”. oxforddictionar- land” ZDNet, 17 January 2013
ies.com. Retrieved 6 June 2015. [102] "‘Free Shipping Day’ Promotion Spurs Late-Season On-
line Spending Surge, Improving Season-to-Date Growth
[85] Mossberger, Karen. “Digital Citizenship – The Internet,
Rate to 16 Percent vs. Year Ago” Comscore, 23 Decem-
Society and Participation” By Karen Mossberger, Caro-
ber 2012
line J. Tolbert, and Ramona S. McNeal.” 23 Nov. 2011.
ISBN 978-0-8194-5606-9 [103] “The Death of the American Shopping Mall” The Atlantic
— Cities, 26 December 2012
[86] Reips, U.-D. (2008). How Internet-mediated research
changes science. In A. Barak (Ed.), Psychological aspects [104] Harris, Michael (January 2, 2015). “Book review: 'The
of cyberspace: Theory, research, applications (pp. 268- Internet Is Not the Answer' by Andrew Keen”. Washing-
294). Cambridge: Cambridge University Press. ISBN ton Post. Retrieved 25 January 2015.
978-0-521-69464-3. Retrieved 22 July 2014.
[105] MM Wanderley; D Birnbaum; J Malloch (2006). New In-
[87] “The Virtual Private Nightmare: VPN”. Librenix. 4 Au- terfaces For Musical Expression. IRCAM – Centre Pom-
gust 2004. Retrieved 21 July 2010. pidou. p. 180. ISBN 2-84426-314-3.
[94] Carole Hughes; Boston College. “The Relationship Be- [112] Kirkpatrick, David D. (9 February 2011). “Wired and
tween Internet Use and Loneliness Among College Stu- Shrewd, Young Egyptians Guide Revolt”. The New York
dents”. Boston College. Retrieved 11 August 2011. Times.
212 CHAPTER 34. INTERNET
[113] Berdal, S.R.B. (2004). “Public deliberation on the Web: [129] Access Controlled: The Shaping of Power, Rights, and Rule
A Habermasian inquiry into online discourse” (PDF). in Cyberspace, Ronald J. Deibert, John G. Palfrey, Rafal
Oslo: University of Oslo. Rohozinski, and Jonathan Zittrain (eds), MIT Press, April
2010, ISBN 0-262-51435-4, ISBN 978-0-262-51435-4
[114] Kiva Is Not Quite What It Seems, by David Roodman, Cen-
ter for Global Development, 2 October 2009, as accessed [130] “Finland censors anti-censorship site”. The Register. 18
2 & 16 January 2010 February 2008. Retrieved 19 February 2008.
[115] Strom, Stephanie (9 November 2009). “Confusion on [131] “Georgian woman cuts off web access to whole of Arme-
Where Money Lent via Kiva Goes”. The New York Times. nia”. The Guardian. 6 April 2011. Retrieved 11 April
p. 6. 2012.
[116] ""Zidisha Set to “Expand” in Peer-to-Peer Microfi- [132] Cowie, James. “Egypt Leaves the Internet”. Renesys.
nance"". Microfinance Focus. 7 February 2010. Archived from the original on 28 January 2011. Retrieved
Archived from the original on 28 February 2010. 28 January 2011.
[117] Diffie, Whitfield; Susan Landau (August 2008). “Internet [133] “Egypt severs internet connection amid growing unrest”.
Eavesdropping: A Brave New World of Wiretapping”. BBC News. 28 January 2011.
Scientific American. Retrieved 2009-03-13. [134] “Internet responsible for 2 per cent of global energy us-
age”, Jim Giles, New Scientist (Reed Business Information
[118] “CALEA Archive -- Electronic Frontier Foundation”.
Ltd.), 26 October 2011.
Electronic Frontier Foundation (website). Retrieved 2009-
03-14. [135] “The Energy and Emergy of the Internet”, Barath Ragha-
van (ICSI) and Justin Ma (UC Berkeley), in Proceedings
[119] “CALEA: The Perils of Wiretapping the Internet”. Elec-
of the 10th ACM Workshop on Hot Topics in Networks, 14–
tronic Frontier Foundation (website). Retrieved 2009-03-
15 November 2011, Cambridge, MA, USA. ACM SIG-
14.
COMM. ISBN 978-1-4503-1059-8/11/11.
[120] “CALEA: Frequently Asked Questions”. Electronic Fron-
tier Foundation (website). Retrieved 2009-03-14.
[126] Due to legal concerns the OpenNet Initiative does not • The Internet Explained, Vincent Zegna & Mike Pep-
check for filtering of child pornography and because their per, Sonet Digital, November 2005, Pages 1 – 7.
classifications focus on technical filtering, they do not in-
clude other types of censorship. • “How Much Does The Internet Weigh?", by Stephen
Cass, Discover, 2007
[127] “Internet Enemies”, Enemies of the Internet 2014: Enti-
ties at the heart of censorship and surveillance, Reporters • “The Internet spreads its tentacles”, Julie Rehmeyer,
Without Borders (Paris), 11 March 2014. Retrieved 24 Science News, Vol. 171, No. 25, pp. 387–388, 23
June 2014. June 2007
[128] Internet Enemies, Reporters Without Borders (Paris), 12 • Internet, Lorenzo Cantoni & Stefano Tardini, Rout-
March 2012 ledge, 2006, ISBN 978-0-203-69888-4
34.13. EXTERNAL LINKS 213
This article is about the protocol as used with Internet TTL header fields, and looking for ICMP Time to live ex-
Protocol version 4. For the protocol as used with Internet ceeded in transit (above) and “Destination unreachable”
Protocol version 6, see ICMPv6. messages generated in response. The related ping util-
ity is implemented using the ICMP “Echo request” and
“Echo reply” messages.
The Internet Control Message Protocol (ICMP) is one
of the main protocols of the internet protocol suite. It is
used by network devices, like routers, to send error mes-
sages indicating, for example, that a requested service is 35.2 ICMP datagram structure
not available or that a host or router could not be reached.
ICMP can also be used to relay query messages.[1] It is as- 35.2.1 Header
signed protocol number 1.[2] ICMP[3] differs from trans-
port protocols such as TCP and UDP in that it is not The ICMP header starts after the IPv4 header and is iden-
typically used to exchange data between systems, nor is tified by IP protocol number '1'. All ICMP packets have
it regularly employed by end-user network applications an 8-byte header and variable-sized data section. The first
(with the exception of some diagnostic tools like ping and 4 bytes of the header have fixed format, while the last 4
traceroute). bytes depend on the type/code of that ICMP packet.[1]
214
35.3. CONTROL MESSAGES 215
35.3 Control messages and a direct path from the host to R2 is available (that is,
the host and R2 are on the same Ethernet segment), then
R1 will send a redirect message to inform the host that the
35.3.1 Source quench
best route for the destination is via R2. The host should
then send packets for the destination directly to R2. The
Source Quench requests that the sender decrease the rate
router will still send the original datagram to the intended
of messages sent to a router or host. This message may
destination.[8] However, if the datagram contains routing
be generated if a router or host does not have sufficient
information, this message will not be sent even if a better
buffer space to process the request, or may occur if the
route is available. RFC 1122 states that redirects should
router or host buffer is approaching its limit.
only be sent by gateways and should not be sent by Inter-
Data is sent at a very high speed from a host or from net hosts.
several hosts at the same time to a particular router on
Where:
a network. Although a router has buffering capabilities,
the buffering is limited to within a specified range. The
router cannot queue any more data than the capacity of Type must be set to 5.
the limited buffering space. Thus if the queue gets filled Code specifies the reason for the redirection,
up, incoming data is discarded until the queue is no longer may be one of the following:
full. But as no acknowledgement mechanism is present
in the network layer, the client does not know whether
the data has reached the destination successfully. Hence IP address is the 32-bit address of the gateway
some remedial measures should be taken by the network to which the redirection should be sent.
layer to avoid these kind of situations. These measures are
referred to as source quench. In a source quench mecha- IP header and additional data is included to al-
nism, the router sees that the incoming data rate is much low the host to match the reply with the request
faster than the outgoing data rate, and sends an ICMP that caused the redirection reply.
message to the clients, informing them that they should
slow down their data transfer speeds or wait for a cer- 35.3.3 Time exceeded
tain amount of time before attempting to send more data.
When a client receives this message, it will automatically Time Exceeded is generated by a gateway to inform the
slow down the outgoing data rate or wait for a sufficient source of a discarded datagram due to the time to live
amount of time, which enables the router to empty the field reaching zero. A time exceeded message may also
queue. Thus the source quench ICMP message acts as be sent by a host if it fails to reassemble a fragmented
flow control in the network layer. datagram within its time limit.
Since research suggested that “ICMP Source Quench Time exceeded messages are used by the traceroute utility
[was] an ineffective (and unfair) antidote for to identify gateways on the path between two hosts.
congestion”,[7] routers’ creation of source quench
messages was deprecated in 1995 by RFC 1812. Fur- Where:
thermore, forwarding of and any kind of reaction to (flow
control actions) source quench messages was deprecated Type must be set to 11
from 2012 by RFC 6633. Code specifies the reason for the time ex-
Where: ceeded message, include the following:
• Smurf attack
• TCP
35.5 References
[1] Forouzan, Behrouz A. (2007). Data Communications And
Networking (Fourth ed.). Boston: McGraw-Hill. pp.
621–630. ISBN 0-07-296775-7.
[4] https://tools.ietf.org/html/rfc792
[7] https://tools.ietf.org/html/rfc6633
35.6 RFCs
• RFC 792, Internet Control Message Protocol
“IETF” redirects here. For other uses, see IETF (disam- (AD), with most areas having two co-ADs. The ADs
biguation). are responsible for appointing working group chairs. The
area directors, together with the IETF Chair, form the
The Internet Engineering Task Force (IETF) devel- Internet Engineering Steering Group (IESG), which is re-
sponsible for the overall operation of the IETF.
ops and promotes voluntary Internet standards, in par-
ticular the standards that comprise the Internet protocol The IETF is overseen by the Internet Architecture Board
suite (TCP/IP). It is an open standards organization, with (IAB), which oversees its external relationships, and re-
no formal membership or membership requirements. All lations with the RFC Editor.[6] The IAB is also jointly
participants and managers are volunteers, though their responsible for the IETF Administrative Oversight Com-
work is usually funded by their employers or sponsors. mittee (IAOC), which oversees the IETF Administrative
The IETF started out as an activity supported by the U.S. Support Activity (IASA), which provides logistical, etc.
federal government, but since 1993 it has operated as a support for the IETF. The IAB also manages the Internet
standards development function under the auspices of the Research Task Force (IRTF), with which the IETF has a
Internet Society, an international membership-based non- number of cross-group relations.
profit organization. A Nominating Committee (NomCom) of ten randomly
chosen volunteers who participate regularly at meetings is
vested with the power to appoint, reappoint, and remove
36.1 Organization members of the IESG, IAB, IASA, and the IAOC.[7] To
date, no one has been removed by a NomCom, although
several people have resigned their positions, requiring re-
The IETF is organized into a large number of working placements.
groups and informal discussion groups (BoFs, or Birds of
a Feather), each dealing with a specific topic and operates In 1993 the IETF changed from an activity supported
in a bottom-up task creation mode, largely driven by these by the U.S. government to an independent, international
working groups.[3] Each working group has an appointed activity associated with the Internet Society, an interna-
[8]
chairperson (or sometimes several co-chairs), along with tional membership-based non-profit organization. Be-
a charter that describes its focus, and what and when it is cause the IETF itself does not have members, nor is it an
expected to produce. It is open to all who want to par- organization per se, the Internet Society provides the fi-
ticipate, and holds discussions on an open mailing list or nancial and legal framework for the activities of the IETF
at IETF meetings, where the entry fee in July 2014 was and its sister bodies (IAB, IRTF, …). IETF activities are
USD $650 per person.[4] funded by meeting fees, meeting sponsors and by the In-
ternet Society via its organizational membership and the
Rough consensus is the primary basis for decision mak- proceeds of the Public Interest Registry.[9]
ing. There are no formal voting procedures. Because
the majority of the IETF’s work is done via mailing In December 2005 the IETF Trust was established
lists, meeting attendance is not required for contributors. to manage the copyrighted materials produced by the
[10]
Each working group is intended to complete work on its IETF.
topic and then disband. In some cases, the WG will in-
stead have its charter updated to take on new tasks as
appropriate.[3] 36.2 Meetings
The working groups are organized into areas by sub-
ject matter. Current areas are Applications, General, The first IETF meeting was attended by 21 U.S.-
Internet, Operations and Management, Real-time Ap- government-funded researchers on 16 January 1986. It
plications and Infrastructure, Routing, Security, and was a continuation of the work of the earlier GADS Task
Transport.[5] Each area is overseen by an area director Force. Representatives from non-governmental entities
218
36.4. CHAIRS 219
were invited to attend starting with the fourth IETF meet- is also considerable resistance to any change that is not
ing in October 1986. Since that time all IETF meetings fully backwards compatible. Work within the IETF on
have been open to the public.[3] ways to improve the speed of the standards-making pro-
Initially, the IETF met quarterly, but from 1991, it has cess is ongoing but, because the number of volunteers
been meeting three times a year. The initial meetings with opinions on it is very great, consensus on improve-
were very small, with fewer than 35 people in attendance ments has been slow to develop.
at each of the first five meetings. The maximum atten- The IETF cooperates with the W3C, ISO/IEC, ITU, and
dance during the first 13 meetings was only 120 attendees. other standards bodies.[8]
This occurred at the 12th meeting held during January Statistics are available that show who the top contribu-
1989. These meetings have grown in both participation tors by RFC publication are.[13] While the IETF only al-
and scope a great deal since the early 1990s; it had a max- lows for participation by individuals, and not by corpo-
imum attendance of 2,810 at the December 2000 IETF rations or governments, sponsorship information is avail-
held in San Diego, CA. Attendance declined with indus- able from these statistics.
try restructuring during the early 2000s, and is currently
around 1,200.[11][3]
The location for IETF meetings vary greatly. A list of past
and future meeting locations can be found on the IETF
36.4 Chairs
meetings page.[12] The IETF strives to hold its meetings
near where most of the IETF volunteers are located. For The IETF Chairperson is selected by the Nominating
many years, the goal was three meetings a year, with two Committee (NomCom) process for a 2-year renewable
in North America and one in either Europe or Asia, alter- term.[14] Before 1993, the IETF Chair was selected by
nating between them every other year. The current goal the IAB.[15]
is to hold three meetings in North America, two in Eu-
rope and one in Asia during a two-year period. However, • Mike Corrigan (1986)
corporate sponsorship of the meetings is also an impor-
tant factor and the schedule has been modified from time • Phill Gross (1986–1994)
to time in order to decrease operational costs.
• Paul Mockapetris (1994–1996)
36.6 References
[1] “Internet Engineering Task Force (IETF)". RIPE NCC.
10 August 2012. Retrieved 13 October 2012.
[8] “IETF and the Internet Society”, Vint Cerf, Internet So-
ciety, 18 July 1995. Retrieved 21 July 2014.
“IMAP” redirects here. For the antipsychotic, see user retrieves the messages with an e-mail client that uses
Fluspirilene. one of a number of e-mail retrieval protocols. Some
clients and servers preferentially use vendor-specific,
In computing, the Internet Message Access Protocol proprietary protocols, but most support SMTP for send-
ing e-mail and POP and IMAP for retrieving e-mail,
(IMAP) is an Internet standard protocol used by e-mail
clients to retrieve e-mail messages from a mail server over allowing interoperability with other servers and clients.
For example, Microsoft's Outlook client uses MAPI, a
a TCP/IP connection.[1] IMAP is defined by RFC 3501.
Microsoft proprietary protocol, to communicate with a
IMAP was designed with the goal of permitting complete Microsoft Exchange Server. IBM's Notes client works
management of an email box by multiple email clients, in a similar fashion when communicating with a Domino
therefore clients generally leave messages on the server server. All of these products also support POP, IMAP,
until the user explicitly deletes them. An IMAP server and outgoing SMTP. Support for the Internet standard
typically listens on port number 143. IMAP over SSL protocols allows many e-mail clients such as Pegasus Mail
(IMAPS) is assigned the port number 993. or Mozilla Thunderbird to access these servers, and al-
Virtually all modern e-mail clients and servers support lows the clients to be used with other servers.
IMAP. IMAP and the earlier POP3 (Post Office Pro-
tocol) are the two most prevalent standard protocols for
email retrieval,[2] with many webmail service providers 37.2 History
such as Gmail, Outlook.com and Yahoo! Mail also pro-
viding support for either IMAP or POP3. IMAP was designed by Mark Crispin in 1986 as a remote
mailbox protocol, in contrast to the widely used POP, a
protocol for retrieving the contents of a mailbox.[5]
37.1 E-mail protocols IMAP was previously known as Internet Mail Ac-
cess Protocol, Interactive Mail Access Protocol (RFC
[6]
The Internet Message Access Protocol is an Application 1064), and Interim Mail Access Protocol.
Layer Internet protocol that allows an e-mail client to ac-
cess e-mail on a remote mail server. The current version,
IMAP version 4 revision 1 (IMAP4rev1), is defined by
37.2.1 Original IMAP
RFC 3501. An IMAP server typically listens on well-
The original Interim Mail Access Protocol was imple-
known port 143. IMAP over SSL (IMAPS) is assigned
mented as a Xerox Lisp machine client and a TOPS-20
well-known port number 993.
server.
IMAP supports both on-line and off-line modes of opera-
No copies of the original interim protocol specification or
tion. E-mail clients using IMAP generally leave messages
its software exist.[7] Although some of its commands and
on the server until the user explicitly deletes them. This
responses were similar to IMAP2, the interim protocol
and other characteristics of IMAP operation allow mul-
lacked command/response tagging and thus its syntax was
tiple clients to manage the same mailbox. Most e-mail
incompatible with all other versions of IMAP.
clients support IMAP in addition to Post Office Protocol
(POP) to retrieve messages; however, fewer e-mail ser-
vices support IMAP.[3] IMAP offers access to the mail
37.2.2 IMAP2
storage. Clients may store local copies of the messages,
but these are considered to be a temporary cache.[4] The interim protocol was quickly replaced by the Inter-
Incoming e-mail messages are sent to an e-mail server active Mail Access Protocol (IMAP2), defined in RFC
that stores messages in the recipient’s e-mail box. The 1064 (in 1988) and later updated by RFC 1176 (in 1990).
221
222 CHAPTER 37. INTERNET MESSAGE ACCESS PROTOCOL
IMAP2 introduced the command/response tagging and 37.3.2 Multiple clients simultaneously
was the first publicly distributed version. connected to the same mailbox
The POP protocol requires the currently connected client
37.2.3 IMAP3 to be the only client connected to the mailbox. In con-
trast, the IMAP protocol specifically allows simultane-
IMAP3 is an extremely rare variant of IMAP.[8] It was ous access by multiple clients and provides mechanisms
published as RFC 1203 in 1991. It was written specifi- for clients to detect changes made to the mailbox by
cally as a counter proposal to RFC 1176, which itself pro- other, concurrently connected, clients. See for example
posed modifications to IMAP2.[9] IMAP3 was never ac- RFC3501 section 5.2 which specifically cites “simulta-
cepted by the marketplace.[10][11] The IESG reclassified neous access to the same mailbox by multiple agents” as
RFC1203 “Interactive Mail Access Protocol - Version an example.
3” as a Historic protocol in 1993. The IMAP Working
Group used RFC1176 (IMAP2) rather than RFC1203
(IMAP3) as its starting point.[12][13]
37.3.3 Access to MIME message parts and
partial fetch
Usually all Internet e-mail is transmitted in MIME for-
37.2.4 IMAP2bis mat, allowing messages to have a tree structure where the
leaf nodes are any of a variety of single part content types
With the advent of MIME, IMAP2 was extended to and the non-leaf nodes are any of a variety of multipart
support MIME body structures and add mailbox man- types. The IMAP4 protocol allows clients to retrieve any
agement functionality (create, delete, rename, message of the individual MIME parts separately and also to re-
upload) that was absent from IMAP2. This exper- trieve portions of either individual parts or the entire mes-
imental revision was called IMAP2bis; its specifica- sage. These mechanisms allow clients to retrieve the text
tion was never published in non-draft form. An in- portion of a message without retrieving attached files or
ternet draft of IMAP2bis was published by the IETF to stream content as it is being fetched.
IMAP Working Group in October 1993. This draft
was based upon the following earlier specifications:
unpublished IMAP2bis.TXT document, RFC1176, and 37.3.4 Message state information
RFC1064 (IMAP2).[14] The IMAP2bis.TXT draft docu-
mented the state of extensions to IMAP2 as of December Through the use of flags defined in the IMAP4 proto-
1992.[15] Early versions of Pine were widely distributed col, clients can keep track of message state: for exam-
with IMAP2bis support[8] (Pine 4.00 and later supports ple, whether or not the message has been read, replied
IMAP4rev1). to, or deleted. These flags are stored on the server, so
different clients accessing the same mailbox at differ-
ent times can detect state changes made by other clients.
37.2.5 IMAP4 POP provides no mechanism for clients to store such
state information on the server so if a single user ac-
An IMAP Working Group formed in the IETF in the cesses a mailbox with two different POP clients (at differ-
early 1990s took over responsibility for the IMAP2bis ent times), state information—such as whether a message
design. The IMAP WG decided to rename IMAP2bis has been accessed—cannot be synchronized between the
to IMAP4 to avoid confusion. clients. The IMAP4 protocol supports both predefined
system flags and client-defined keywords. System flags
indicate state information such as whether a message has
been read. Keywords, which are not supported by all
37.3 Advantages over POP IMAP servers, allow messages to be given one or more
tags whose meaning is up to the client. IMAP keywords
should not be confused with proprietary labels of web-
37.3.1 Connected and disconnected modes based e-mail services which are sometimes translated into
of operation IMAP folders by the corresponding proprietary servers.
shared and public folders. The IMAP4 Access Control List ing a copy in a server-side folder with a base-level IMAP
(ACL) Extension (RFC 4314) may be used to regulate ac- client requires transmitting the message content twice,
cess rights. once to SMTP for delivery and a second time to IMAP
to store in a sent mail folder. This is remedied by a set
of extensions defined by the IETF LEMONADE Work-
37.3.6 Server-side searches ing Group for mobile devices: URLAUTH (RFC 4467)
and CATENATE (RFC 4469) in IMAP and BURL (RFC
IMAP4 provides a mechanism for a client to ask the 4468) in SMTP-SUBMISSION. POP servers don't sup-
server to search for messages meeting a variety of crite- port server-side folders so clients have no choice but to
ria. This mechanism avoids requiring clients to download store sent items on the client. Many IMAP clients can
every message in the mailbox in order to perform these be configured to store sent mail in a client-side folder, or
searches. to BCC oneself and then filter the incoming mail instead
of saving a copy in a folder directly. In addition to the
LEMONADE “trio”, Courier Mail Server offers a non-
37.3.7 Built-in extension mechanism
standard method of sending using IMAP by copying an
outgoing message to a dedicated outbox folder.[18]
Reflecting the experience of earlier Internet protocols,
IMAP4 defines an explicit mechanism by which it may be
extended. Many IMAP4 extensions to the base protocol
have been proposed and are in common use. IMAP2bis 37.5 Security
did not have an extension mechanism, and POP now has
one defined by RFC 2449. STARTTLS can be used to provide secure communica-
tions between the MUA communicating with the MSA or
MTA implementing the SMTP Protocol.
37.4 Disadvantages
While IMAP remedies many of the shortcomings of 37.6 Dialog example
POP, this inherently introduces additional complexity.
Much of this complexity (e.g., multiple clients accessing This is an example IMAP connection as taken from RFC
the same mailbox at the same time) is compensated for 3501 section 8:
by server-side workarounds such as Maildir or database
backends. C: <open connection> S: * OK IMAP4rev1 Service
Ready C: a001 login mrc secret S: a001 OK LOGIN
The IMAP specification has been criticised for being in- completed C: a002 select inbox S: * 18 EXISTS
sufficiently strict and allowing behaviours that effectively S: * FLAGS (\Answered \Flagged \Deleted \Seen
negate its usefulness. For instance, the specification states \Draft) S: * 2 RECENT S: * OK [UNSEEN 17]
that each message stored on the server has a “unique id” Message 17 is the first unseen message S: * OK [UID-
to allow the clients to identify the messages they have al- VALIDITY 3857529045] UIDs valid S: a002 OK
ready seen between sessions. However, the specification [READ-WRITE] SELECT completed C: a003 fetch 12
also allows these UIDs to be invalidated with no restric- full S: * 12 FETCH (FLAGS (\Seen) INTERNALDATE
tions, practically defeating their purpose.[16] “17-Jul-1996 02:44:25 −0700” RFC822.SIZE 4286
Unless the mail storage and searching algorithms on the ENVELOPE (“Wed, 17 Jul 1996 02:23:25 −0700
server are carefully implemented, a client can potentially (PDT)" “IMAP4rev1 WG mtg summary and minutes”
consume large amounts of server resources when search- ((“Terry Gray” NIL “gray” “cac.washington.edu”))
ing massive mailboxes. ((“Terry Gray” NIL “gray” “cac.washington.edu”))
((“Terry Gray” NIL “gray” “cac.washington.edu”))
IMAP4 clients need to maintain a TCP/IP connection to ((NIL NIL “imap” “cac.washington.edu”)) ((NIL NIL
the IMAP server in order to be notified of the arrival of “minutes” “CNRI.Reston.VA.US”) (“John Klensin”
new mail. Notification of mail arrival is done through NIL “KLENSIN” “MIT.EDU”)) NIL NIL "<B27397-
in-band signaling, which contributes to the complexity of [email protected]>") BODY (“TEXT”
client-side IMAP protocol handling somewhat.[17] A pri- “PLAIN” (“CHARSET” “US-ASCII”) NIL NIL “7BIT”
vate proposal, push IMAP, would extend IMAP to imple- 3028 92)) S: a003 OK FETCH completed C: a004 fetch
ment push e-mail by sending the entire message instead 12 body[header] S: * 12 FETCH (BODY[HEADER]
of just a notification. However, push IMAP has not been {342} S: Date: Wed, 17 Jul 1996 02:23:25 −0700 (PDT)
generally accepted and current IETF work has addressed S: From: Terry Gray <[email protected]>
the problem in other ways (see the Lemonade Profile for S: Subject: IMAP4rev1 WG mtg summary and
more information). minutes S: To: [email protected] S:
Unlike some proprietary protocols which combine send- cc: [email protected], John Klensin
ing and retrieval operations, sending a message and sav- <[email protected]> S: Message-Id: <B27397-
224 CHAPTER 37. INTERNET MESSAGE ACCESS PROTOCOL
[email protected]> S: MIME-Version: 1.0 [11] “IMAP Overview, History, Versions and Standards”. Re-
S: Content-Type: TEXT/PLAIN; CHARSET=US- trieved 2010-08-21.
ASCII S: S: ) S: a004 OK FETCH completed C a005
[12] “Protocol Action: Interactive Mail Access Protocol - Ver-
store 12 +flags \deleted S: * 12 FETCH (FLAGS sion 3 to Historic (IETF mail archive)". 1993. Retrieved
(\Seen \Deleted)) S: a005 OK +FLAGS completed C: 2010-08-21.
a006 logout S: * BYE IMAP4rev1 server terminating
connection S: a006 OK LOGOUT completed [13] “Innosoft and POP/IMAP protocols? (mail archive)".
1993. Retrieved 2010-08-21.
• Post Office Protocol (POP) [17] “IMAP IDLE: The best approach for 'push' e-mail”.
Isode.com. Retrieved 2009-07-30.
• Push-IMAP
[18] “Courier-IMAP: Sending mail via an IMAP connection”.
• Simple Mail Access Protocol Double Precision, Inc. Retrieved 2013-09-24.
• Webmail
• IMAP IDLE
37.9 Further reading
• Heinlein, P; Hartleben, P (2008). The Book of
IMAP: Building a Mail Server with Courier and
37.8 References Cyrus. No Starch Press. ISBN 1-59327-177-8.
[1] Dean, Tamara (2010). Network+ Guide to Networks. Del- • Hughes, L (1998). Internet e-mail Protocols, Stan-
mar. p. 519. dards and Implementation. Artech House Publish-
ers. ISBN 0-89006-939-5.
[2] Komarinski, Mark (2000). Red Hat Linux System Admin-
istration Handbook. Prentice Hall. p. 179. • Johnson, K (2000). Internet E-mail Protocols: A
Developer’s Guide. Addison-Wesley Professional.
[3] Mullet, Diana (2000). Managing IMAP. O'Reilly. p. 25. ISBN 0-201-43288-9.
ISBN 0-596-00012-X.
• Loshin, P (1999). Essential E-mail Standards: RFCs
[4] See e.g. Timo Sirainen, Dave Cridland. “IMAP Client
and Protocols Made Practical. John Wiley & Sons.
Coding HOWTO”.
ISBN 0-471-34597-0.
[5] The IMAP Connection - IMAP Status and History
• Mullet, K (2000). Managing IMAP. O'Reilly Media.
[6] Service Name and Transport Protocol Port Number Reg- ISBN 0-596-00012-X.
istry. Iana.org (2013-07-12). Retrieved on 2013-07-17.
• Rhoton, J (1999). Programmer’s Guide to Inter-
[7] Crispin, Mark (13 February 2012). “Re: net Mail: SMTP, POP, IMAP, and LDAP. Elsevier.
[imap5] Designing a new replacement proto- ISBN 1-55558-212-5.
col for IMAP”. imap5 (Mailing list). Usenet:
• Wood, D (1999). Programming Internet Mail.
[email protected].
Retrieved 26 November 2014. Knowledge of the original O'Reilly. ISBN 1-56592-479-7.
IMAP (before IMAP2) exists primarily in my mind as
all the original IMAP specifications and implementations
were replaced with IMAP2. 37.10 External links
[8] “RFC 2061 - IMAP4 COMPATIBILITY WITH
IMAP2BIS”. IETF. 1996. Retrieved 2010-08-21. • “IMAP Protocol Mailing List”.
[9] “INTERACTIVE MAIL ACCESS PROTOCOL - VER- • RFC 3501 - specification of IMAP version 4 revi-
SION 3”. IETF. 1991. Retrieved 2010-08-21. sion 1
[10] “IMAP2, IMAP2bis, IMAP3, IMAP4, IMAP4rev1 • RFC 2683 - IMAP Implementation Suggestions
(LAN Mail Protocols)". Retrieved 2010-08-21. RFC
37.10. EXTERNAL LINKS 225
Internet Protocol
226
38.4. VERSION HISTORY 227
or transmission medium and is dynamic in terms of avail- the Internet Control Message Protocol (ICMP) disre-
ability of links and nodes. No central monitoring or per- gard MTU size, thereby forcing IP to fragment oversized
formance measurement facility exists that tracks or main- datagrams.[5]
tains the state of the network. For the benefit of reduc-
ing network complexity, the intelligence in the network
is purposely located in the end nodes. 38.4 Version history
As a consequence of this design, the Internet Protocol
only provides best-effort delivery and its service is charac- The versions currently relevant are IPv4 and IPv6.
terized as unreliable. In network architectural language,
In May 1974, the Institute of Electrical and Electronic
it is a connectionless protocol, in contrast to connection-
Engineers (IEEE) published a paper entitled “A Proto-
oriented communications. Various error conditions may
col for Packet Network Intercommunication”.[6] The pa-
occur, such as data corruption, packet loss, duplication
per’s authors, Vint Cerf and Bob Kahn, described an in-
and out-of-order delivery. Because routing is dynamic,
ternetworking protocol for sharing resources using packet
meaning every packet is treated independently, and be-
switching among network nodes. A central control com-
cause the network maintains no state based on the path
ponent of this model was the “Transmission Control Pro-
of prior packets, different packets may be routed to the
gram” that incorporated both connection-oriented links
same destination via different paths, resulting in out-of-
and datagram services between hosts. The monolithic
order sequencing at the receiver.
Transmission Control Program was later divided into a
IPv4 provides safeguards to ensure that the IP packet modular architecture consisting of the Transmission Con-
header is error-free. A routing node calculates a trol Protocol at the transport layer and the Internet Proto-
checksum for a packet. If the checksum is bad, the rout- col at the network layer. The model became known as the
ing node discards the packet. Although the Internet Con- Department of Defense (DoD) Internet Model and Internet
trol Message Protocol (ICMP) allows such notification, Protocol Suite, and informally as TCP/IP.
the routing node is not required to notify either end node
IP versions 0 to 3 were experimental versions, used be-
of these errors. By contrast, in order to increase perfor-
tween 1977 and 1979. The following Internet Experi-
mance, and since current link layer technology is assumed
ment Note (IEN) documents describe versions of the In-
to provide sufficient error detection,[2] the IPv6 header
ternet Protocol prior to the modern version of IPv4:
has no checksum to protect it.[3]
All error conditions in the network must be detected and • IEN 2 (Comments on Internet Protocol and TCP),
compensated by the end nodes of a transmission. The dated August 1977 describes the need to separate
upper layer protocols of the internet protocol suite are re- the TCP and Internet Protocol functionalities (which
sponsible for resolving reliability issues. For example, a were previously combined.) It proposes the first ver-
host may buffer network data to ensure correct ordering sion of the IP header, using 0 for the version field.
before the data is delivered to an application.
• IEN 26 (A Proposed New Internet Header Format),
dated February 1978 describes a version of the IP
header that uses a 1-bit version field.
38.3 Link capacity and capability
• IEN 28 (Draft Internetwork Protocol Description
Version 2), dated February 1978 describes IPv2.
The dynamic nature of the Internet and the diversity of
its components provide no guarantee that any particular • IEN 41 (Internetwork Protocol Specification Version
path is actually capable of, or suitable for, performing the 4), dated June 1978 describes the first protocol to
data transmission requested, even if the path is available be called IPv4. The IP header is different from the
and reliable. One of the technical constraints is the size modern IPv4 header.
of data packets allowed on a given link. An application
must assure that it uses proper transmission characteris- • IEN 44 (Latest Header Formats), dated June 1978
tics. Some of this responsibility lies also in the upper layer describes another version of IPv4, also with a header
protocols. Facilities exist to examine the maximum trans- different from the modern IPv4 header.
mission unit (MTU) size of the local link and Path MTU • IEN 54 (Internetwork Protocol Specification Version
Discovery can be used for the entire projected path to the 4), dated September 1978 is the first description of
destination. The IPv4 internetworking layer has the ca- IPv4 using the header that would be standardized in
pability to automatically fragment the original datagram RFC 760.
into smaller units for transmission. In this case, IP pro-
vides re-ordering of fragments delivered out of order.[4] The dominant internetworking protocol in the Internet
The Transmission Control Protocol (TCP) is an example Layer in use today is IPv4; the number 4 is the proto-
of a protocol that adjusts its segment size to be smaller col version number carried in every IP datagram. IPv4 is
than the MTU. The User Datagram Protocol (UDP) and described in RFC 791 (1981).
228 CHAPTER 38. INTERNET PROTOCOL
Version 5 was used by the Internet Stream Protocol, an [6] Vinton G. Cerf, Robert E. Kahn, “A Protocol for Packet
experimental streaming protocol. Network Intercommunication”, IEEE Transactions on
Communications, Vol. 22, No. 5, May 1974 pp. 637–
The successor to IPv4 is IPv6. Its most prominent differ- 648
ence from version 4 is the size of the addresses. While
IPv4 uses 32 bits for addressing, yielding c. 4.3 billion [7] CIO council adds to IPv6 transition primer, gcn.com
(4.3×109 ) addresses, IPv6 uses 128-bit addresses pro-
[8] Mulligan, Geoff. “It was almost IPv7”. O'Reilly. O'Reilly
viding ca. 340 undecillion, or 3.4×1038 addresses. Al-
Media. Retrieved 4 July 2015.
though adoption of IPv6 has been slow, as of June 2008,
all United States government systems have demonstrated [9] Leyden, John (6 July 2004). “China disowns IPv9 hype”.
basic infrastructure support for IPv6.[7] IPv6 was a re- theregister.co.uk. The Register. Retrieved 4 May 2014.
sult of several years of experimentation and dialog dur-
[10] RFC 1606: A Historical Perspective On The Usage Of IP
ing which various protocol models were proposed, such Version 9. April 1, 1994.
as TP/IX (RFC 1475), PIP (RFC 1621) and TUBA (TCP
and UDP with Bigger Addresses, RFC 1347). [11] Security Assessment of the Internet Protocol
(IP)(archived version)
The assignment of the new protocol as IPv6 was uncertain
until due diligence revealed that IPv6 had not yet been [12] Security Assessment of the Internet Protocol version 4
used previously.[8] Other protocol proposals named IPv9 (IPv4)
and IPv8 briefly surfaced, but had no affiliation with any
international standards body, and have had no support.[9]
On April 1, 1994, the IETF published an April Fool’s Day 38.8 External links
joke about IPv9.[10]
• Internet Protocol at DMOZ
• RFC 791
38.5 Security
• Data Communication Lectures of Manfred Lindner
During the design phase of the ARPANET and the early – Part IP Technology Fundamentals
Internet, the security aspects and needs of a public, in-
• Data Communication Lectures of Manfred Lindner
ternational network could not be adequately anticipated.
– Part IP Routing Fundamentals
Consequently, many Internet protocols exhibited vulner-
abilities highlighted by network attacks and later security
assessments. In 2008, a thorough security assessment and
proposed mitigation of problems was published.[11] The
Internet Engineering Task Force (IETF) has been pursu-
ing further studies.[12]
38.7 References
[1] Netgear ProSafe XSM7224S reference manual
39.1 History
ARPANET Network Control Program (NCP) protocol,
39.1.1 Early research joined Kahn to work on open-architecture interconnec-
tion models with the goal of designing the next protocol
The Internet protocol suite resulted from research and de- generation for the ARPANET.
velopment conducted by the Defense Advanced Research By the summer of 1973, Kahn and Cerf had worked out a
Projects Agency (DARPA) in the late 1960s.[3] After fundamental reformulation, in which the differences be-
initiating the pioneering ARPANET in 1969, DARPA tween network protocols were hidden by using a common
started work on a number of other data transmission tech- internetwork protocol, and, instead of the network being
nologies. In 1972, Robert E. Kahn joined the DARPA responsible for reliability, as in the ARPANET, this func-
Information Processing Technology Office, where he tion was delegated to the hosts. Cerf credits Hubert Zim-
worked on both satellite packet networks and ground- mermann and Louis Pouzin, designer of the CYCLADES
based radio packet networks, and recognized the value network, with important influences on this design. The
of being able to communicate across both. In the spring protocol was implemented as the Transmission Control
of 1973, Vinton Cerf, the developer of the existing Program (TCP), first published in 1974.[4]
229
230 CHAPTER 39. INTERNET PROTOCOL SUITE
• End-to-end principle: This principle has evolved to many other architectural principles not emphasizing
over time. Its original expression put the mainte- layering. It loosely defines a four-layer model, with the
nance of state and overall intelligence at the edges, layers having names, not numbers, as follows:
and assumed the Internet that connected the edges
retained no state and concentrated on speed and sim- • The application layer is the scope within which ap-
plicity. Real-world needs for firewalls, network ad- plications create user data and communicate this
dress translators, web content caches and the like data to other applications on another or the same
have forced changes in this principle.[19] host. The applications, or processes, make use of the
services provided by the underlying, lower layers,
• Robustness Principle: “In general, an implementa- especially the Transport Layer which provides reli-
tion must be conservative in its sending behavior, able or unreliable pipes to other processes. The com-
and liberal in its receiving behavior. That is, it must munications partners are characterized by the appli-
be careful to send well-formed datagrams, but must cation architecture, such as the client-server model
accept any datagram that it can interpret (e.g., not and peer-to-peer networking. This is the layer in
object to technical errors where the meaning is still which all higher level protocols, such as SMTP, FTP,
clear).”[20] “The second part of the principle is al- SSH, HTTP, operate. Processes are addressed via
most as important: software on other hosts may con- ports which essentially represent services.
tain deficiencies that make it unwise to exploit legal
but obscure protocol features.”[21] • The transport layer performs host-to-host commu-
nications on either the same or different hosts and
on either the local network or remote networks sep-
39.3 Abstraction layers arated by routers. It provides a channel for the com-
munication needs of applications. UDP is the ba-
sic transport layer protocol, providing an unreliable
Encapsulation is used to provide abstraction of protocols
datagram service. The Transmission Control Proto-
and services. Encapsulation is usually aligned with the
col provides flow-control, connection establishment,
division of the protocol suite into layers of general func-
and reliable transmission of data.
tionality. In general, an application (the highest level of
the model) uses a set of protocols to send its data down • The internet layer has the task of exchanging data-
the layers, being further encapsulated at each level. grams across network boundaries. It provides a
The layers of the protocol suite near the top are logically uniform networking interface that hides the actual
closer to the user application, while those near the bot- topology (layout) of the underlying network connec-
tom are logically closer to the physical transmission of the tions. It is therefore also referred to as the layer that
data. Viewing layers as providing or consuming a service establishes internetworking, indeed, it defines and
is a method of abstraction to isolate upper layer protocols establishes the Internet. This layer defines the ad-
from the details of transmitting bits over, for example, dressing and routing structures used for the TCP/IP
Ethernet and collision detection, while the lower layers protocol suite. The primary protocol in this scope
avoid having to know the details of each and every appli- is the Internet Protocol, which defines IP addresses.
cation and its protocol. Its function in routing is to transport datagrams to
the next IP router that has the connectivity to a net-
Even when the layers are examined, the assorted architec- work closer to the final data destination.
tural documents—there is no single architectural model
such as ISO 7498, the Open Systems Interconnection • The link layer defines the networking methods
(OSI) model—have fewer and less rigidly defined layers within the scope of the local network link on which
than the OSI model, and thus provide an easier fit for real- hosts communicate without intervening routers.
world protocols. One frequently referenced document, This layer includes the protocols used to describe
RFC 1958, does not contain a stack of layers. The lack the local network topology and the interfaces needed
of emphasis on layering is a major difference between the to effect transmission of Internet layer datagrams to
IETF and OSI approaches. It only refers to the existence next-neighbor hosts.
of the internetworking layer and generally to upper layers;
this document was intended as a 1996 snapshot of the ar- The Internet protocol suite and the layered protocol stack
chitecture: “The Internet and its architecture have grown design were in use before the OSI model was established.
in evolutionary fashion from modest beginnings, rather Since then, the TCP/IP model has been compared with
than from a Grand Plan. While this process of evolution the OSI model in books and classrooms, which often re-
is one of the main reasons for the technology’s success, sults in confusion because the two models use different
it nevertheless seems useful to record a snapshot of the assumptions and goals, including the relative importance
current principles of the Internet architecture.” of strict layering.
RFC 1122, entitled Host Requirements, is structured in This abstraction also allows upper layers to provide ser-
paragraphs referring to layers, but the document refers vices that the lower layers do not provide. While the orig-
232 CHAPTER 39. INTERNET PROTOCOL SUITE
inal OSI model was extended to include connectionless such as adding a packet header to prepare it for trans-
services (OSIRM CL),[22] IP is not designed to be reli- mission, then actually transmit the frame over a physical
able and is a best effort delivery protocol. This means that medium. The TCP/IP model includes specifications of
all transport layer implementations must choose whether translating the network addressing methods used in the
or how to provide reliability. UDP provides data integrity Internet Protocol to data link addressing, such as Media
via a checksum but does not guarantee delivery; TCP pro- Access Control (MAC). All other aspects below that
vides both data integrity and delivery guarantee by re- level, however, are implicitly assumed to exist in the link
transmitting until the receiver acknowledges the recep- layer, but are not explicitly defined.
tion of the packet.
This is also the layer where packets may be selected to be
This model lacks the formalism of the OSI model and as- sent over a virtual private network or other networking
sociated documents, but the IETF does not use a formal tunnel. In this scenario, the link layer data may be con-
model and does not consider this a limitation, as illus- sidered application data which traverses another instanti-
trated in the comment by David D. Clark, “We reject: ation of the IP stack for transmission or reception over
kings, presidents and voting. We believe in: rough con- another IP connection. Such a connection, or virtual
sensus and running code.” Criticisms of this model, which link, may be established with a transport protocol or even
have been made with respect to the OSI model, often do an application scope protocol that serves as a tunnel in
not consider ISO’s later extensions to that model. the link layer of the protocol stack. Thus, the TCP/IP
For multi-access links with their own addressing systems model does not dictate a strict hierarchical encapsulation
(e.g. Ethernet) an address mapping protocol is needed. sequence.
Such protocols can be considered to be below IP but The TCP/IP model’s link layer corresponds to the Open
above the existing link system. While the IETF does Systems Interconnection (OSI) model physical and data
not use the terminology, this is a subnetwork depen- link layers, layers one and two of the OSI model.
dent convergence facility according to an extension to the
OSI model, the internal organization of the network layer
(IONL).[23] 39.3.2 Internet layer
ICMP & IGMP operate on top of IP but do not transport The internet layer has the responsibility of sending pack-
data like UDP or TCP. Again, this functionality exists ets across potentially multiple networks. Internetworking
as layer management extensions to the OSI model, in its requires sending data from the source network to the des-
Management Framework (OSIRM MF)[24] tination network. This process is called routing.[25]
The SSL/TLS library operates above the transport layer The Internet Protocol performs two basic functions:
(uses TCP) but below application protocols. Again, there
was no intention, on the part of the designers of these
• Host addressing and identification: This is accom-
protocols, to comply with OSI architecture.
plished with a hierarchical IP addressing system.
The link is treated as a black box. The IETF explicitly
does not intend to discuss transmission systems, which is • Packet routing: This is the basic task of sending
a less academic but practical alternative to the OSI model. packets of data (datagrams) from source to destina-
tion by forwarding them to the next network router
The following is a description of each layer in the TCP/IP closer to the final destination.
networking model starting from the lowest level.
The internet layer is not only agnostic of data structures
at the transport layer, but it also does not distinguish be-
39.3.1 Link layer tween operation of the various transport layer protocols.
IP carries data for a variety of different upper layer pro-
The link layer has the networking scope of the local net- tocols. These protocols are each identified by a unique
work connection to which a host is attached. This regime protocol number: for example, Internet Control Message
is called the link in TCP/IP literature. It is the lowest Protocol (ICMP) and Internet Group Management Pro-
component layer of the Internet protocols, as TCP/IP tocol (IGMP) are protocols 1 and 2, respectively.
is designed to be hardware independent. As a result, Some of the protocols carried by IP, such as ICMP which
TCP/IP may be implemented on top of virtually any hard- is used to transmit diagnostic information, and IGMP
ware networking technology. which is used to manage IP Multicast data, are layered on
The link layer is used to move packets between the In- top of IP but perform internetworking functions. This il-
ternet layer interfaces of two different hosts on the same lustrates the differences in the architecture of the TCP/IP
link. The processes of transmitting and receiving pack- stack of the Internet and the OSI model. The TCP/IP
ets on a given link can be controlled both in the software model’s internet layer corresponds to layer three of the
device driver for the network card, as well as on firmware Open Systems Interconnection (OSI) model, where it is
or specialized chipsets. These perform data link functions referred to as the network layer.
39.3. ABSTRACTION LAYERS 233
The internet layer provides an unreliable datagram trans- • lost or discarded packets are resent
mission facility between hosts located on potentially dif-
ferent IP networks by forwarding the transport layer data- • includes traffic congestion control
grams to an appropriate next-hop router for further relay-
ing to its destination. With this functionality, the inter- The newer Stream Control Transmission Protocol
net layer makes possible internetworking, the interwork- (SCTP) is also a reliable, connection-oriented trans-
ing of different IP networks, and it essentially establishes port mechanism. It is message-stream-oriented—not
the Internet. The Internet Protocol is the principal com- byte-stream-oriented like TCP—and provides multiple
ponent of the internet layer, and it defines two address- streams multiplexed over a single connection. It also pro-
ing systems to identify network hosts’ computers, and to vides multi-homing support, in which a connection end
locate them on the network. The original address sys- can be represented by multiple IP addresses (represent-
tem of the ARPANET and its successor, the Internet, is ing multiple physical interfaces), such that if one fails, the
Internet Protocol version 4 (IPv4). It uses a 32-bit IP connection is not interrupted. It was developed initially
address and is therefore capable of identifying approxi- for telephony applications (to transport SS7 over IP), but
mately four billion hosts. This limitation was eliminated can also be used for other applications.
in 1998 by the standardization of Internet Protocol ver-
The User Datagram Protocol is a connectionless
sion 6 (IPv6) which uses 128-bit addresses. IPv6 produc-
datagram protocol. Like IP, it is a best effort, “unreliable”
tion implementations emerged in approximately 2006.
protocol. Reliability is addressed through error detection
using a weak checksum algorithm. UDP is typically used
39.3.3 Transport layer for applications such as streaming media (audio, video,
Voice over IP etc.) where on-time arrival is more im-
The transport layer establishes basic data channels that portant than reliability, or for simple query/response ap-
applications use for task-specific data exchange. The plications like DNS lookups, where the overhead of set-
layer establishes process-to-process connectivity, mean- ting up a reliable connection is disproportionately large.
ing it provides end-to-end services that are independent Real-time Transport Protocol (RTP) is a datagram pro-
of the structure of user data and the logistics of exchang- tocol that is designed for real-time data such as streaming
ing information for any particular specific purpose. Its audio and video.
responsibility includes end-to-end message transfer in- The applications at any given network address are distin-
dependent of the underlying network, along with error guished by their TCP or UDP port. By convention certain
control, segmentation, flow control, congestion control, well known ports are associated with specific applications.
and application addressing (port numbers). End-to-end
The TCP/IP model’s transport or host-to-host layer cor-
message transmission or connecting applications at the
responds to the fourth layer in the Open Systems Inter-
transport layer can be categorized as either connection-
connection (OSI) model, also called the transport layer.
oriented, implemented in TCP, or connectionless, imple-
mented in UDP.
For the purpose of providing process-specific transmis- 39.3.4 Application layer
sion channels for applications, the layer establishes the
concept of the port. This is a numbered logical con- The application layer includes the protocols used by most
struct allocated specifically for each of the communica- applications for providing user services or exchanging ap-
tion channels an application needs. For many types of plication data over the network connections established
services, these port numbers have been standardized so by the lower level protocols, but this may include some
that client computers may address specific services of a basic network support services, such as many routing pro-
server computer without the involvement of service an- tocols, and host configuration protocols. Examples of ap-
nouncements or directory services. plication layer protocols include the Hypertext Transfer
Protocol (HTTP), the File Transfer Protocol (FTP), the
Because IP provides only a best effort delivery, some
Simple Mail Transfer Protocol (SMTP), and the Dynamic
transport layer protocols offer reliability. However, IP
Host Configuration Protocol (DHCP).[26] Data coded ac-
can run over a reliable data link protocol such as the High-
cording to application layer protocols are encapsulated
Level Data Link Control (HDLC).
into transport layer protocol units (such as TCP or UDP
For example, the TCP is a connection-oriented protocol messages), which in turn use lower layer protocols to ef-
that addresses numerous reliability issues in providing a fect actual data transfer.
reliable byte stream:
The TCP/IP model does not consider the specifics of for-
matting and presenting data, and does not define addi-
• data arrives in-order tional layers between the application and transport lay-
• data has minimal error (i.e., correctness) ers as in the OSI model (presentation and session layers).
Such functions are the realm of libraries and application
• duplicate data is discarded programming interfaces.
234 CHAPTER 39. INTERNET PROTOCOL SUITE
Application layer protocols generally treat the transport that a TCP/IP protocol stack must impose monolithic ar-
layer (and lower) protocols as black boxes which pro- chitecture above the transport layer. For example, the
vide a stable network connection across which to com- NFS application protocol runs over the eXternal Data
municate, although the applications are usually aware of Representation (XDR) presentation protocol, which, in
key qualities of the transport layer connection such as turn, runs over a protocol called Remote Procedure Call
the end point IP addresses and port numbers. Appli- (RPC). RPC provides reliable record transmission, so it
cation layer protocols are often associated with particu- can safely use the best-effort UDP transport.
lar client–server applications, and common services have Different authors have interpreted the TCP/IP model dif-
well-known port numbers reserved by the Internet As-
ferently, and disagree whether the link layer, or the entire
signed Numbers Authority (IANA). For example, the TCP/IP model, covers OSI layer 1 (physical layer) issues,
HyperText Transfer Protocol uses server port 80 and
or whether a hardware layer is assumed below the link
Telnet uses server port 23. Clients connecting to a service layer.
usually use ephemeral ports, i.e., port numbers assigned
only for the duration of the transaction at random or from Several authors have attempted to incorporate the OSI
a specific range configured in the application. model’s layers 1 and 2 into the TCP/IP model, since these
are commonly referred to in modern standards (for exam-
The transport layer and lower-level layers are uncon- ple, by IEEE and ITU). This often results in a model with
cerned with the specifics of application layer protocols. five layers, where the link layer or network access layer is
Routers and switches do not typically examine the en- split into the OSI model’s layers 1 and 2.
capsulated traffic, rather they just provide a conduit for it.
However, some firewall and bandwidth throttling applica- The IETF protocol development effort is not concerned
tions must interpret application data. An example is the with strict layering. Some of its protocols may not
Resource Reservation Protocol (RSVP). It is also some- fit cleanly into the OSI model, although RFCs some-
times necessary for network address translator (NAT) times refer to it and often use the old OSI layer num-
traversal to consider the application payload. bers. The IETF has repeatedly stated that Internet pro-
tocol and architecture development is not intended to be
The application layer in the TCP/IP model is often com- OSI-compliant. RFC 3439, addressing Internet architec-
pared as equivalent to a combination of the fifth (Session),
ture, contains a section entitled: “Layering Considered
sixth (Presentation), and the seventh (Application) layers Harmful”.[35]
of the Open Systems Interconnection (OSI) model.
For example, the session and presentation layers of the
Furthermore, the TCP/IP reference model distinguishes OSI suite are considered to be included to the applica-
[27]
between user protocols and support protocols. Support tion layer of the TCP/IP suite. The functionality of the
protocols provide services to a system. User protocols are session layer can be found in protocols like HTTP and
used for actual user applications. For example, FTP is a SMTP and is more evident in protocols like Telnet and
user protocol and DNS is a system protocol. the Session Initiation Protocol (SIP). Session layer func-
tionality is also realized with the port numbering of the
TCP and UDP protocols, which cover the transport layer
39.4 Layer names and number of in the TCP/IP suite. Functions of the presentation layer
are realized in the TCP/IP applications with the MIME
layers in the literature standard in data exchange.
Conflicts are apparent also in the original OSI model, ISO
The following table shows various networking models. 7498, when not considering the annexes to this model,
The number of layers varies between three and seven. e.g., the ISO 7498/4 Management Framework, or the ISO
Some of the networking models are from textbooks, 8648 Internal Organization of the Network layer (IONL).
which are secondary sources that may conflict with the When the IONL and Management Framework docu-
intent of RFC 1122 and other IETF primary sources.[35] ments are considered, the ICMP and IGMP are defined
as layer management protocols for the network layer. In
like manner, the IONL provides a structure for “subnet-
work dependent convergence facilities” such as ARP and
39.5 Comparison of TCP/IP and RARP.
OSI layering IETF protocols can be encapsulated recursively, as
demonstrated by tunneling protocols such as Generic
The three top layers in the OSI model, i.e. the appli- Routing Encapsulation (GRE). GRE uses the same mech-
cation layer, the presentation layer and the session layer, anism that OSI uses for tunneling at the network layer.
are not distinguished separately in the TCP/IP model
which only has an application layer above the transport
layer. While some pure OSI protocol applications, such
as X.400, also combined them, there is no requirement
39.9. REFERENCES 235
• List of information technology acronyms [3] “The DoD Internet Architecture Model”, Vinton G. Cerf
and Edward Cain, Computer Networks, 7 (1983), North-
• List of network protocols Holland, pp. 307-318
[7] , Robert M. Metcalfe and David R. Boggs, Ethernet: Dis- [30] Behrouz A. Forouzan, Data Communications and Net-
tributed Packet Switching or Local Computer Networks, working, 2003
(1976)
[31] Douglas E. Comer, Internetworking with TCP/IP: Prin-
[8] Vinton Robert E. Kahn, The Introduction of Packet Satel- ciples, Protocols and Architecture, Pearson Prentice Hall
lite Communications, (1979) 2005, ISBN 0-13-187671-6
[9] MIT Press Cambridge Inventing the Internet, J. Abbate [32] Charles M. Kozierok, “The TCP/IP Guide”, No Starch
(2000) Press 2005
[10] RFC 1812, Requirements for IP Version 4 Routers, F. [33] William Stallings, Data and Computer Communications,
Baker (June 1995) Prentice Hall 2006, ISBN 0-13-243310-9
[11] RFC 675, Specification of Internet Transmission Control [34] Andrew S. Tanenbaum, Computer Networks, Prentice
Protocol, V. Cerf et al. (December 1974) Hall 2002, ISBN 0-13-066102-3
[12] Internet History [35] R. Bush; D. Meyer (December 2002), Some Internet Ar-
chitectural Guidelines and Philosophy, Internet Engineer-
[13] Ronda Hauben. “From the ARPANET to the Internet”. ing Task Force
TCP Digest (UUCP). Retrieved 2007-07-05.
[14] Wollongong
39.10 External links
[15] A Short History of Internet Protocols at CERN
Internetworking
Internetworking is the practice of connecting a working, but the resulting system is simply a larger, sin-
computer network with other networks through the use gle subnetwork, and no internetworking protocol, such
of gateways that provide a common method of routing as Internet Protocol, is required to traverse these de-
information packets between the networks. The resulting vices. However, a single computer network may be con-
system of interconnected networks are called an internet- verted into an internetwork by dividing the network into
work, or simply an internet. Internetworking is a com- segments and logically dividing the segment traffic with
bination of the words inter (“between”) and networking; routers. The Internet Protocol is designed to provide an
not internet-working or international-network. unreliable (not guaranteed) packet service across the net-
work. The architecture avoids intermediate network el-
The most notable example of internetworking is the
Internet, a network of networks based on many under- ements maintaining any state of the network. Instead,
lying hardware technologies, but unified by an internet- this function is assigned to the endpoints of each com-
working protocol standard, the Internet Protocol Suite, munication session. To transfer data reliably, applica-
often also referred to as TCP/IP. tions must utilize an appropriate Transport Layer proto-
col, such as Transmission Control Protocol (TCP), which
The smallest amount of effort to create an internet (an provides a reliable stream. Some applications use a sim-
internetwork, not the Internet), is to have two LANs of pler, connection-less transport protocol, User Datagram
computers connected to each other via a router. Simply Protocol (UDP), for tasks which do not require reliable
using either a switch or a hub to connect two local area delivery of data or that require real-time service, such as
networks together doesn't imply internetworking; it just video streaming [1] or voice chat.
expands the original LAN.
Internetworking started as a way to connect dis- Two architectural models are commonly used to describe
parate types of networking technology, but it became the protocols and methods used in internetworking.
widespread through the developing need to connect two The Open System Interconnection (OSI) reference model
or more local area networks via some sort of wide area
was developed under the auspices of the International Or-
network. The original term for an internetwork was ganization for Standardization (ISO) and provides a rig-
catenet.
orous description for layering protocol functions from the
The definition of an internetwork today includes the con- underlying hardware to the software interface concepts in
nection of other types of computer networks such as user applications. Internetworking is implemented in the
personal area networks. The network elements used to Network Layer (Layer 3) of the model.
connect individual networks in the ARPANET, the pre- The Internet Protocol Suite, also called the TCP/IP model
decessor of the Internet, were originally called gateways, of the Internet was not designed to conform to the OSI
but the term has been deprecated in this context, because model and does not refer to it in any of the normative
of possible confusion with functionally different devices. specifications in Requests for Comment and Internet stan-
Today the interconnecting gateways are called routers. dards. Despite similar appearance as a layered model,
Another type of interconnection of networks often oc- it uses a much less rigorous, loosely defined architecture
curs within enterprises at the Link Layer of the network- that concerns itself only with the aspects of logical net-
ing model, i.e. at the hardware-centric layer below the working. It does not discuss hardware-specific low-level
level of the TCP/IP logical interfaces. Such interconnec- interfaces, and assumes availability of a Link Layer in-
tion is accomplished with network bridges and network terface to the local network link to which the host is con-
switches. This is sometimes incorrectly termed internet- nected. Internetworking is facilitated by the protocols of
237
238 CHAPTER 40. INTERNETWORKING
40.4 References
[1] Teare, Diane (July 1999). 'Designing Cisco Networks’. In-
dianapolis: Cisco Press.
Chapter 41
IPX/SPX
239
240 CHAPTER 41. IPX/SPX
41.2.3 Other One area where IPX remains useful is for bypassing VPN
connections with security policies that prohibit commu-
For several years, Novell supplied a native NetWare client nication with other LAN devices (such as printers and
for OS/2. This was similar in structure to the client for network attached storage) via TCP/IP.
DOS.
Novell also published an IPX client for Classic Mac OS
called MacIPX.[2] This was not only used by the Mac 41.4 See also
NetWare client, but also by games such as Doom and
Warcraft III[3] for multiplayer play. • Internetwork Packet Exchange (IPX)
Implementations have been written for various flavors of • NetWare Core Protocol (NCP)
Unix/Linux, both by Novell and other vendors. In par-
ticular, Novell’s UnixWare supported IPX/SPX natively. • NetBIOS Frames protocol (NBF)
However, while UnixWare could act as a client to Net-
• NetBIOS over TCP/IP (NBT)
Ware servers, and applications could optionally support
IPX/SPX as a transport, UnixWare did not provide the • NWLink
ability to share files or printers on a NetWare network
without an additional software package. Open Enterprise • Communications protocol
Server - Linux does not support IPX/SPX.
The open source FreeBSD operating system includes
an IPX/SPX stack, to support both a NetWare file sys- 41.5 References
tem client, nwfs, as well as NetWare server using Mars
NWE[4][5] (providing some functionality[6] ). OpenBSD [1] Win95 FAQ Part 12 of 14: MS-DOS Games top of ques-
dropped support with version 4.2,[7][8] and 4.1 needed tion 12.9
some work to compile with IPX.[9] [2] Some notes on MacIPX internetworking, formerly at
241
242 CHAPTER 42. JAVA REMOTE METHOD INVOCATION
rmic RmiServer
42.4 References
[1] Taylor, Ian J. From P2P to Web Services and Grids - Peers
in a Client/Server World. Springer, 2005
Link layer
In computer networking, the link layer is the lowest model.[3][4] These authors assume a hardware layer or
layer in the Internet Protocol Suite, commonly known as physical layer below the link layer, and several of them
TCP/IP, the networking architecture of the Internet. It is adopt the OSI term data link layer instead of link layer
described in RFC 1122 and RFC 1123. The link layer is in a modified description of layering. In the predeces-
the group of methods and communications protocols that sor to the TCP/IP model, the ARPAnet Reference Model
only operate on the link that a host is physically connected(RFC 908, 1982), aspects of the link layer are referred to
to. The link is the physical and logical network compo- by several poorly defined terms, such as network-access
nent used to interconnect hosts or nodes in the network layer, network-access protocol, as well as network layer,
and a link protocol is a suite of methods and standards while the next higher layer is called internetwork layer. In
that operate only between adjacent network nodes of a some modern text books, network-interface layer, host-
local area network segment or a wide area network con- to-network layer and network-access layer occur as syn-
nection. onyms either to the link layer or the data link layer, often
Despite the different semantics of layering in TCP/IP and including the physical layer.
OSI, the link layer is sometimes described as a combi-
nation of the data link layer (layer 2) and the physical
layer (layer 1) in the OSI model. However, the layers of 43.2 Link layer protocols
TCP/IP are descriptions of operating scopes (application,
host-to-host, network, link) and not detailed prescriptions The link layer in the TCP/IP model is a descriptive realm
of operating procedures, data semantics, or networking of networking protocols that operate only on the local net-
technologies. work segment (link) that a host is connected to. Such
RFC 1122 exemplifies that local area network protocols protocol packets are not routed to other networks.
such as Ethernet and IEEE 802, and framing protocols The core protocols specified by the Internet Engineering
such as Point-to-Point Protocol (PPP) belong to the link Task Force (IETF) in this layer are the Address Reso-
layer. lution Protocol (ARP), the Reverse Address Resolution
Protocol (RARP), and the Neighbor Discovery Protocol
(NDP), which is a facility delivering similar functionality
43.1 Definition in standards and as ARP for IPv6. Since the advent of IPv6, Open Short-
est Path First (OSPF) is considered to operate on the link
textbooks level as well, although the IPv4 version of the protocol
was considered at the Internet layer.
Local area networking standards such as Ethernet and IS-IS (RFC 1142) is another link-state routing protocol
IEEE 802 specifications use terminology from the seven- that fits into this layer when considering TCP/IP model,
layer OSI model rather than the TCP/IP model. The however it was developed within the OSI reference stack,
TCP/IP model in general does not consider physical spec- where it is a Layer 2 protocol. It is not an Internet stan-
ifications, rather it assumes a working network infras- dard.
tructure that can deliver media level frames on the link.
Therefore, RFC 1122 and RFC 1123, the definition of
the TCP/IP model, do not discuss hardware issues and
physical data transmission and set no standards for those 43.3 Relation to OSI model
aspects. Some textbook authors have supported the in-
terpretation that physical data transmission aspects are The link layer of the TCP/IP model is often compared di-
part of the link layer.[1][2] Others assumed that physi- rectly with the combination of the data link layer and the
cal data transmission standards are not considered com- physical layer in the Open Systems Interconnection (OSI)
munication protocols, and are not part of the TCP/IP protocol stack. Although they are congruent to some de-
243
244 CHAPTER 43. LINK LAYER
gree in technical coverage of protocols, they are not iden- 43.6 References
tical. The link layer in TCP/IP is still wider in scope and
in principle a different concept and terminology of clas- [1] James F. Kurose, Keith W. Ross, Computer Networking:
sification. This may be observed when certain protocols, A Top-Down Approach, 2007, ISBN 0-321-49770-8
such as the Address Resolution Protocol (ARP), which is
[2] Mark Dye, Mark A. Dye, Wendell, Network Fundamen-
confined to the link layer in the TCP/IP model, is often
tals: CCNA Exploration Companion Guide, 2007, ISBN
said to fit between OSI’s data link layer and the network
1-58713-208-7
layer. In general, direct or strict comparisons should be
avoided, because the layering in TCP/IP is not a principal [3] Douglas E. Comer, Internetworking with TCP/IP: Prin-
design criterion and in general is considered to be “harm- ciples, Protocols and Architecture, Pearson Prentice Hall
ful” (RFC 3439). 2005, ISBN 0-13-187671-6
Another term sometimes encountered, network access [4] Charles M. Kozierok, “The TCP/IP Guide”, No Starch
layer, tries to suggest the closeness of this layer to the Press 2005
physical network. However, this use is misleading and
non-standard, since the link layer implies functions that
are wider in scope than just network access. Important 43.7 External links
link layer protocols are used to probe the topology of the
local network, discover routers and neighboring hosts, i.e. • IEEE 802 Standards
functions that go well beyond network access.
In computer networking, the maximum transmission 576 bytes for IPv4[2] and of 1280 bytes for IPv6.[3] It
unit (MTU) of a communications protocol of a layer is must also not be confused with the size of the physically
the size (in bytes or octets) of the largest protocol data transmitted frame. In the case of an Ethernet frame this
unit that the layer can pass onwards. MTU parameters adds an overhead of 18 bytes, or 22 bytes with an IEEE
usually appear in association with a communications in- 802.1Q tag for VLAN or quality of service.
terface (NIC, serial port, etc.). Standards (Ethernet, for
example) can fix the size of an MTU; or systems (such as
point-to-point serial links) may decide MTU at connect
time.
44.2 IP (Internet protocol)
A larger MTU brings greater efficiency because each
DARPA designed the Internet protocol suite to work over
network packet carries more user data while protocol
many different networking technologies, each of which
overheads, such as headers or underlying per-packet de-
may use packets of different size. While a host will know
lays, remain fixed; the resulting higher efficiency means
the MTU of its own interface and possibly that of its peers
an improvement in bulk protocol throughput. A larger
(from initial handshakes), it will not initially know the
MTU also means processing of fewer packets for the
lowest MTU in a chain of links to other peers. Another
same amount of data. In some systems, per-packet-
potential problem is that higher-level protocols may cre-
processing can be a critical performance limitation.
ate packets larger than a particular link supports.
However, this gain is not without a downside. Large pack-
To get around this issue, IPv4 allows fragmentation: di-
ets occupy a slow link for more time than a smaller packet,
viding the datagram into pieces, each small enough to
causing greater delays to subsequent packets, and increas-
pass over the single link that is being fragmented for,
ing lag and minimum latency. For example, a 1500-byte
using the MTU parameter configured for that interface.
packet, the largest allowed by Ethernet at the network
This fragmentation process takes place at the IP layer
layer (and hence over most of the Internet), ties up a 14.4k
(OSI layer 3) and marks the packets it fragments as such,
modem for about one second.
so that the IP layer of the destination host knows it should
Large packets are also problematic in the presence of reassemble the packets into the original datagram. This
communications errors. Corruption of a single bit in a method implies a number of possible drawbacks:
packet requires that the entire packet be retransmitted.
At a given bit error rate, larger packets are more likely to
• All fragments of a packet must arrive for the packet
be corrupt. Their greater payload makes retransmissions
to be considered received. If the network drops any
of larger packets take longer. Despite the negative effects
fragment, the entire packet is lost.
on retransmission duration, large packets can still have a
net positive effect on end-to-end TCP performance.[1] • When the size of most or all packets exceed the
MTU of a particular link that has to carry those
packets, almost everything has to be fragmented. In
44.1 Table of MTUs of common certain cases this can cause unreasonable or unnec-
essary overhead. For example, various tunneling sit-
media uations may exceed the MTU by very little as they
add just a header’s worth of data. The addition is
Note: the MTUs in this section are given as the maximum small, but each packet now has to be sent in two frag-
size of an IP packet that can be transmitted without frag- ments, the second of which carries very little pay-
mentation - including IP headers but excluding headers load. The same amount of payload is being moved,
from lower levels in the protocol stack. The MTU must but every intermediate router has to do double the
not be confused with the minimum datagram size that all work in terms of header parsing and routing deci-
hosts must be prepared to accept, which has a value of sions.
245
246 CHAPTER 44. MAXIMUM TRANSMISSION UNIT
• As it is normal to maximize the payload in every response to various events (load-balancing, congestion,
fragment, in general as well as when fragmenting, outages, etc.) - this could result in the path MTU chang-
any further fragmentation that turns out to be neces- ing (sometimes repeatedly) during a transmission, which
sary will increase the overhead even more. may introduce further packet drops before the host finds
a new reliable MTU.
• There is no simple method to discover the MTU of
Most Ethernet LANs use an MTU of 1500 bytes (mod-
links beyond a node’s direct peers.
ern LANs can use Jumbo frames, allowing for an MTU
up to 9000 bytes); however, border protocols like PPPoE
The Internet Protocol requires that hosts must be able to will reduce this. The difference between the MTU seen
process IP datagrams of at least 576 bytes (for IPv4) or by end-nodes (e.g. 1500) and the Path MTU causes
1280 bytes (for IPv6). However, this does not preclude Path MTU Discovery to come into effect, with the possi-
Data Link Layers with an MTU smaller than IP’s min- ble result of making some sites behind badly configured
imum MTU from conveying IP data. For example, ac- firewalls unreachable. One can possibly work around this,
cording to IPv6’s specification, if a particular Data Link depending on which part of the network one controls; for
Layer physically cannot deliver an IP datagram of 1280 example one can change the MSS (maximum segment
bytes in a single frame, then the link layer must provide size) in the initial packet that sets up the TCP connection
its own fragmentation and reassembly mechanism, sepa- at one’s firewall.
rate from IP’s own fragmentation mechanism, to ensure
RFC 4821, Packetization Layer Path MTU Discovery,
that a 1280-byte IP datagram can be delivered, intact, to
describes a Path MTU Discovery technique which re-
the IP layer.
sponds more robustly to ICMP filtering.
[4] RFC 791, p. 24, “Every internet module must be able to 44.7 External links
forward a datagram of 68 octets without further fragmen-
tation.” • Tweaking your MTU / RWin for Orange Broadband
[5] RFC 791, p. 12, “Total Length is the length of the data- Users
gram, measured in octets, including internet header and
data. This field allows the length of a datagram to be up • How to set the TCP MSS value using iptables
to 65,535 octets.”
• mturoute – a console utility for debugging mtu prob-
[6] RFC 1191 lems
[7] RFC 2460 • MSS Initiative
[8] RFC 2675, p. 1, “The IPv6 header [IPv6] has a 16-bit • MTU Path MTU discovery tool for IPv4 and IPv6
Payload Length field and, therefore, supports payloads up
networks
to 65,535 octets long. This document specifies an IPv6
hop-by-hop option, called the Jumbo Payload option, that
carries a 32-bit length field in order to allow transmis-
sion of IPv6 packets with payloads between 65,536 and
4,294,967,295 octets in length. Packets with such long
payloads are referred to as 'jumbograms’.”
[9] RFC 6145
[10] Network Working Group of the IETF, RFC 894: A Stan-
dard for the Transmission of IP Datagrams over Ether-
net Networks, Page 1, “The maximum length of the data
field of a packet sent over an Ethernet is 1500 octets, thus
the maximum length of an IP datagram sent over an Eth-
ernet is 1500 octets.”, http://tools.ietf.org/html/rfc894 /
ERRATA: http://www.rfc-editor.org/errata_search.php?
rfc=894
[11] IEEE 802.2
[12] RFC 2516 with the standard Ethernet MTU of 1500 bytes;
extensions exist
[13] IEEE 802.3
[14] Scott Hogg (2013-03-06), Jumbo Frames, Network
World, retrieved 2013-08-05, Most network devices sup-
port a jumbo frame size of 9216 bytes.
[15] Joe St Sauver (2003-02-04). “Practical Issues Associated
With 9K MTUs” (PDF). uoregon.edu. p. 19–21. Re-
trieved 2014-02-13.
[16] RFC 2516
[17] RFC 4638
[18] IEEE Standard for Information technology— Telecom-
munications and information exchange between systems
Local and metropolitan area networks— Specific require-
ments Part 11: Wireless LAN Medium Access Control
(MAC) and Physical Layer (PHY) Specifications, Page
413
[19] jabber, The Network Encyclopedia, retrieved 2016-07-28
[20] show interfaces, Juniper Networks, retrieved 2016-07-28
Mealy machine
A Mealy machine is a 6-tuple (S, S0 , Σ, Λ, T, G) consist- 3. Mealy machine react faster to inputs:
ing of the following:
• React in same cycle—don't need to wait for
clock.
• a finite set of states S
• In Moore machines, more logic may be neces-
• a start state (also called initial state) S0 which is an sary to decode state into outputs—more gate
element of S delays after clock edge.
• an output function G : S × Σ → Λ mapping pairs When the input and output alphabet are both Σ, one can
of a state and an input symbol to the corresponding also associate
[2]
to a Mealy Automata an Helix directed
output symbol. graph. (S × Σ, (x, i) → (T(x, i), G(x, i))) This graph has
as vertices the couples of state and letters, every nodes are
of out-degree one, and the successor of (x, i) is the next
In some formulations, the transition and output functions state of the automata and the letter that the automata out-
are coalesced into a single function T : S × Σ → S × Λ put when it is instate x and it reads letter i. This graph is a
. union of disjoint cycles iff the automaton is bireversible.
248
45.7. SUMMARY 249
• number classification
• watch with timer
• vending machine
• traffic light
• bar code scanner
• gas pumps
State diagram for a simple Mealy machine with one input and
one output. 45.7 Summary
A simple Mealy machine has one input and one output.
Implementing a Moore or Mealy machine is not that hard,
Each transition edge is labeled with the value of the in-
especially if one does not intend to minimize the circuit.
put (shown in red) and the value of the output (shown
in blue). The machine starts in state Sᵢ. (In this exam- However, it does take practice to be able to do it reason-
ple, the output is the exclusive-or of the two most-recent ably fast, and is difficult to understand conceptually, at
input values; thus, the machine implements an edge de- least, at first. One should trace out a few steps just to
tector, outputting a one every time the input flips and a convince oneself of how it behaves. There is a subtle dif-
zero otherwise.) ference in the behavior of the implementation of a Mealy
and Moore machine. Tracing out a few steps can show
the differences more clearly.
45.5.2 Complex
Usually, it is harder to understand why the circuit does
More complex Mealy machines can have multiple inputs the right thing (i.e., implements the FSM) than it is to
as well as multiple outputs. know how to build it. Certainly, one should devote time
to both understanding why this technique works, as well
as mastering the technique.
45.6 Applications
45.8 See also
Mealy machines provide a rudimentary mathematical
model for cipher machines. Considering the input and • Synchronous circuit
output alphabet the Latin alphabet, for example, then a
Mealy machine can be designed that given a string of let- • Moore machine
ters (a sequence of inputs) can process it into a ciphered
• Algorithmic state machine
string (a sequence of outputs). However, although one
could use a Mealy model to describe the Enigma, the state • Richards controller
250 CHAPTER 45. MEALY MACHINE
45.9 Footnotes
[1] Mealy, George H. (September 1955). “A Method for
Synthesizing Sequential Circuits”. Bell System Tech-
nical Journal. 34: 1045–1079. doi:10.1002/j.1538-
7305.1955.tb03788.x.
45.10 References
• Mealy, George H. (1955). A Method for Synthesiz-
ing Sequential Circuits. Bell System Technical Jour-
nal. pp. 1045–1079.
251
252 CHAPTER 46. MEDIA ACCESS CONTROL
Examples of common multiple access protocols that may [5] 3GPP TS 36.321 Evolved Universal Terrestrial Radio Ac-
be used in packet radio wireless networks are: cess (E-UTRA); Medium Access Control (MAC) proto-
col specification
Moore machine
In the theory of computation, a Moore machine is a 47.3 Relationship with Mealy ma-
finite-state machine whose output values are determined
solely by its current state. This is in contrast to a Mealy
chines
machine, whose output values are determined both by its
current state and by the values of its inputs. The Moore As Moore and Mealy machines are both types of finite-
machine is named after Edward F. Moore, who presented state machines, they are equally expressive: either type
the concept in a 1956 paper, “Gedanken-experiments on can be used to parse a regular language.
Sequential Machines.”[1] The difference between Moore machines and Mealy ma-
chines is that in the latter, the output of a transition is de-
termined by the combination of current state and current
47.1 Formal definition input ( S × Σ as the input to G ), as opposed to just the
current state ( S as the input to G ). When represented
A Moore machine can be defined as a 6-tuple as a state diagram,
(S, S0 , Σ, Λ, T, G) consisting of the following:
• for a Moore machine, each node (state) is labeled
• a finite set of states S with an output value;
• a start state (also called initial state) S0 which is an • for a Mealy machine, each arc (transition) is labeled
element of S with an output value.
• a finite set called the input alphabet Σ
Every Moore machine M is equivalent to the Mealy ma-
• a finite set called the output alphabet Λ
chine with the same states and transitions and the out-
• a transition function T : S × Σ → S mapping a put function G(s, σ) → GM (s) , which takes each state-
state and the input alphabet to the next state input pair (s, σ) and yields GM (s) , where GM is M 's
output function.
• an output function G : S → Λ mapping each state
to the output alphabet However, not every Mealy machine can be converted to
an equivalent Moore machine. Some can be converted
A Moore machine can be regarded as a restricted type of only to an almost equivalent Moore machine, with outputs
finite-state transducer. shifted in time. This is due to the way that state labels
are paired with transition labels to form the input/output
pairs. Consider a transition si → sj from state si to state
sj . The input causing the transition si → sj labels the
47.2 Visual representation edge (si , sj ) . The output corresponding to that input,
is the label of state si .[2] Notice that this is the source
47.2.1 Table state of the transition. So for each input, the output is
already fixed before the input is received, and depends
State transition table is a table showing relation between solely on the present state. This is the original definition
an input and a state. by E. Moore. It is a common mistake to use the label of
state sj as output for the transition si → sj .
47.2.2 Diagram
The state diagram for a Moore machine or Moore dia- 47.4 Examples
gram is a diagram that associates an output value with
each state. Moore machine is an output producer. Types according to number of inputs/outputs.
253
254 CHAPTER 47. MOORE MACHINE
1 1
47.4.1 Simple
1
1 1
0 0 0
• edge detector using XOR
1
0 0 0
Most digital electronic systems are designed as clocked
sequential systems. Clocked sequential systems are a re-
stricted form of Moore machine where the state changes Example moore machine
only when the global clock signal changes. Typically
the current state is stored in flip-flops, and a global 47.4.2 Complex
clock signal is connected to the “clock” input of the flip-
flops. Clocked sequential systems are one way to solve More complex Moore machines can have multiple inputs
metastability problems. A typical electronic Moore ma- as well as multiple outputs.
chine includes a combinational logic chain to decode the
current state into the outputs (lambda). The instant the
current state changes, those changes ripple through that
chain, and almost instantaneously the output gets up- 47.5 Gedanken-experiments
dated. There are design techniques to ensure that no
glitches occur on the outputs during that brief period In Moore’s paper "Gedanken-experiments on Sequential
while those changes are rippling through the chain, but Machines”,[1] the (n; m; p) automata (or machines) S are
most systems are designed so that glitches during that defined as having n states, m input symbols and p output
brief transition time are ignored or are irrelevant. The symbols. Nine theorems are proved about the structure
outputs then stay the same indefinitely (LEDs stay bright, of S , and experiments with S . Later, " S machines”
power stays connected to the motors, solenoids stay ener- became known as “Moore machines”.
gized, etc.), until the Moore machine changes state again.
At the end of the paper, in Section “Further problems”,
the following task is stated:
transition logic output logic
state memory output Another directly following problem is the
input
improvement of the bounds given at the theo-
S0
Σ rems 8 and 9.
S n+1 S Sn G Λ
T
R
Moore’s Theorem 8 is formulated as:
clock reset
(n−1)(n−2)
2 + 1 through which one may deter- • Moore E. F. Gedanken-experiments on Sequential
mine the state of S at the end of the experi- Machines. Automata Studies, Annals of Mathe-
ment. matical Studies, 34, 129–153. Princeton University
Press, Princeton, N.J.(1956).
Theorem B. There exists an (n; m; p) ma- • Karatsuba A. A. Solution of one problem from the
chine, every two states of which are distin- theory of finite automata. Usp. Mat. Nauk, 15:3,
guishable from one another, such that the 157–159 (1960).
length of the shortest experiments establishing
the state of the machine at the end of the ex- • Karacuba A. A. Experimente mit Automaten (Ger-
periment is equal to (n−1)(n−2)
2 +1. man) Elektron. Informationsverarb. Kybernetik,
11, 611–612 (1975).
Theorems A and B were used for the basis of the course • Karatsuba A. A. List of research works
work of a student of the fourth year, A. A. Karatsuba,
“On a problem from the automata theory”, which was dis-
its length is n+1/2.
tinguished by testimonial reference at the competition of
student works of the faculty of mechanics and mathemat-
ics of Moscow Lomonosow State University in 1958. The
paper by Karatsuba was given to the journal Uspekhi Mat.
Nauk on 17 December 1958 and was published there in
June 1960.[3]
Until the present day (2011), Karatsuba’s result on the
length of experiments is the only exact nonlinear result,
both in automata theory, and in similar problems of com-
putational complexity theory.
• Mealy machine
47.7 References
[1] Moore, Edward F (1956). “Gedanken-experiments on Se-
quential Machines”. Automata Studies, Annals of Math.
Studies. Princeton, N.J.: Princeton University Press (34):
129–153.
Network congestion
256
48.4. MITIGATION 257
that repeated the information lost, doubling the incoming Among the ways to classify congestion control algorithms
rate. are:
UDP does not control congestion. Protocols built atop Robust random early detection (RRED)
UDP must handle congestion independently. Protocols
that transmit at a fixed rate, independent of congestion, The robust random early detection (RRED) algorithm
can be problematic. Real-time streaming protocols, in- was proposed to improve the TCP throughput against
cluding many Voice over IP protocols, have this property.denial-of-service (DoS) attacks, particularly low-rate
Thus, special measures, such as quality-of-service rout- denial-of-service (LDoS) attacks. Experiments con-
ing, must be taken to keep packets from being dropped. firmed that RED-like algorithms were vulnerable under
Low-rate Denial-of-Service (LDoS) attacks due to the os-
In general, congestion in pure datagram networks must
cillating TCP queue size caused by the attacks.[11]
be kept at the periphery of the network, where the above
mechanisms can handle it. Congestion in the Internet
backbone is problematic. Cheap fiber-optic lines have Flowbased-RED/WRED
reduced costs in the Internet backbone allowing it to be
provisioned with enough bandwidth to keep congestion at Some network equipment is equipped with ports that can
the periphery. follow and measure each flow (flowbased-RED/WRED)
and are thereby able to signal a too big bandwidth flow ac-
cording to some quality of service policy. A policy could
48.4.1 Practical network congestion avoid- then divide the bandwidth among all flows by some crite-
ance ria.
One solution is to use random early detection (RED) TCP window shaping
on the network equipment’s port queue buffer.[8][9] On
network equipment ports with more than one queue See also: TCP window scale option
buffer, weighted random early detection (WRED) could
be used if available. Congestion avoidance can be achieved efficiently by re-
RED indirectly signals to sender and receiver by deleting ducing traffic. When an application requests a large file,
some packets, e.g. when the average queue buffer lengths graphic or web page, it usually advertises a “window” of
are more than a threshold (e.g. 50%) and deletes linearly between 32K and 64K. This results in the server send-
or cubically more packets,[10] up to e.g. 100%. The av- ing a full window of data (assuming the file is larger than
erage queue buffer lengths are computed over 1 second the window). When many applications simultaneously re-
intervals. quest downloads, this data creates a congestion point at
48.7. REFERENCES 259
[13] Comparative study of RED, ECN and TCP Rate Control • Approaches to Congestion Control in Packet Net-
(1999) works
[14] Active Queue Management • Papers in Congestion Control
[15] Enabling Dynamic Buffer Limiting • Random Early Detection Homepage
[16] A proposal for Backward ECN for the Internet Protocol • Explicit Congestion Notification Homepage
48.8 Books
• “Deploying IP and MPLS QoS for Multiservice
Networks: Theory and Practice” by John Evans,
Clarence Filsfils (Morgan Kaufmann, 2007, ISBN
0-12-370549-5)
Operating system
An operating system (OS) is system software that man- Unix-like operating systems, e.g., Solaris, Linux, as well
ages computer hardware and software resources and pro- as AmigaOS support preemptive multitasking. Coopera-
vides common services for computer programs. All tive multitasking is achieved by relying on each process to
computer programs, excluding firmware, require an op- provide time to the other processes in a defined manner.
erating system to function. 16-bit versions of Microsoft Windows used cooperative
Time-sharing operating systems schedule tasks for effi- multi-tasking. 32-bit versions of both Windows NT and
Win9x, used preemptive multi-tasking.
cient use of the system and may also include accounting
software for cost allocation of processor time, mass stor-
age, printing, and other resources.
49.1.2 Single- and multi-user
For hardware functions such as input and output
and memory allocation, the operating system acts as
an intermediary between programs and the computer Single-user operating systems have no facilities to distin-
hardware,[1][2] although the application code is usually guish users, but may allow multiple programs to run in
executed directly by the hardware and frequently makes tandem.[5] A multi-user operating system extends the ba-
sic concept of multi-tasking with facilities that identify
system calls to an OS function or is interrupted by it. Op-
erating systems are found on many devices that contain a processes and resources, such as disk space, belonging to
computer – from cellular phones and video game consoles multiple users, and the system permits multiple users to
to web servers and supercomputers. interact with the system at the same time. Time-sharing
operating systems schedule tasks for efficient use of the
The dominant desktop operating system is Microsoft system and may also include accounting software for cost
Windows with a market share of around 85%. OS X allocation of processor time, mass storage, printing, and
by Apple Inc. is in second place (9%), and Linux is in other resources to multiple users.
third position (1.5%). [3] In the mobile sector Android
by Google is dominant with 63% and iOS by Apple is
placed second with around 25%.[4] Linux is dominant in
the server and supercomputing sectors. Other specialized
49.1.3 Distributed
classes of operating systems, such as embedded and real-
time systems, exist for many applications. A distributed operating system manages a group of dis-
tinct computers and makes them appear to be a single
computer. The development of networked computers
that could be linked and communicate with each other
49.1 Types of operating systems gave rise to distributed computing. Distributed compu-
tations are carried out on more than one machine. When
49.1.1 Single- and multi-tasking computers in a group work in cooperation, they form a
distributed system.[6]
A single-tasking system can only run one program at a
time, while a multi-tasking operating system allows more
than one program to be running in concurrency. This is 49.1.4 Templated
achieved by time-sharing, dividing the available proces-
sor time between multiple processes that are each inter- In an OS, distributed and cloud computing context,
rupted repeatedly in time slices by a task-scheduling sub- templating refers to creating a single virtual machine im-
system of the operating system. Multi-tasking may be age as a guest operating system, then saving it as a tool for
characterized in preemptive and co-operative types. In multiple running virtual machines. The technique is used
preemptive multitasking, the operating system slices the both in virtualization and cloud computing management,
CPU time and dedicates a slot to each of the programs. and is common in large server warehouses.[7]
261
262 CHAPTER 49. OPERATING SYSTEM
49.1.6 Real-time
49.1.7 Library
sidered by many to be the first recognisable modern op- in timesharing and programming languages. In the late
erating system”.[9] Brinch Hansen described it as “the 1970s, Control Data and the University of Illinois devel-
most significant breakthrough in the history of operating oped the PLATO operating system, which used plasma
systems.”[10] panel displays and long-distance time sharing networks.
Plato was remarkably innovative for its time, featuring
real-time chat, and multi-user graphical games.
49.2.1 Mainframes In 1961, Burroughs Corporation introduced the B5000
with the MCP, (Master Control Program) operating sys-
Main article: Mainframe computer tem. The B5000 was a stack machine designed to ex-
See also: History of IBM mainframe operating systems clusively support high-level languages with no machine
language or assembler, and indeed the MCP was the
first OS to be written exclusively in a high-level language
Through the 1950s, many major features were pioneered
– ESPOL, a dialect of ALGOL. MCP also introduced
in the field of operating systems, including batch pro-
many other ground-breaking innovations, such as being
cessing, input/output interrupt, buffering, multitasking,
the first commercial implementation of virtual memory.
spooling, runtime libraries, link-loading, and programs
During development of the AS/400, IBM made an ap-
for sorting records in files. These features were included
proach to Burroughs to licence MCP to run on the AS/400
or not included in application software at the option of ap-
hardware. This proposal was declined by Burroughs
plication programmers, rather than in a separate operat-
management to protect its existing hardware production.
ing system used by all applications. In 1959, the SHARE
MCP is still in use today in the Unisys ClearPath/MCP
Operating System was released as an integrated utility for
line of computers.
the IBM 704, and later in the 709 and 7090 mainframes,
although it was quickly supplanted by IBSYS/IBJOB on UNIVAC, the first commercial computer manufacturer,
the 709, 7090 and 7094. produced a series of EXEC operating systems. Like
all early main-frame systems, this batch-oriented system
During the 1960s, IBM’s OS/360 introduced the concept
managed magnetic drums, disks, card readers and line
of a single OS spanning an entire product line, which
printers. In the 1970s, UNIVAC produced the Real-Time
was crucial for the success of the System/360 machines.
Basic (RTB) system to support large-scale time sharing,
IBM's current mainframe operating systems are distant
also patterned after the Dartmouth BC system.
descendants of this original system and applications writ-
ten for OS/360 can still be run on modern machines. General Electric and MIT developed General Electric
Comprehensive Operating Supervisor (GECOS), which
OS/360 also pioneered the concept that the operating sys-
introduced the concept of ringed security privilege levels.
tem keeps track of all of the system resources that are
After acquisition by Honeywell it was renamed General
used, including program and data space allocation in main
Comprehensive Operating System (GCOS).
memory and file space in secondary storage, and file lock-
ing during update. When the process is terminated for Digital Equipment Corporation developed many oper-
any reason, all of these resources are re-claimed by the ating systems for its various computer lines, including
operating system. TOPS-10 and TOPS-20 time sharing systems for the 36-
bit PDP-10 class systems. Before the widespread use
The alternative CP-67 system for the S/360-67 started
of UNIX, TOPS-10 was a particularly popular system in
a whole line of IBM operating systems focused on the
universities, and in the early ARPANET community.
concept of virtual machines. Other operating systems
used on IBM S/360 series mainframes included sys- From the late 1960s through the late 1970s, several hard-
tems developed by IBM: COS/360 (Compatibility Op- ware capabilities evolved that allowed similar or ported
erating System), DOS/360 (Disk Operating System), software to run on more than one system. Early systems
TSS/360 (Time Sharing System), TOS/360 (Tape Op- had utilized microprogramming to implement features
erating System), BOS/360 (Basic Operating System), on their systems in order to permit different underlying
and ACP (Airline Control Program), as well as a few computer architectures to appear to be the same as oth-
non-IBM systems: MTS (Michigan Terminal System), ers in a series. In fact, most 360s after the 360/40 (ex-
MUSIC (Multi-User System for Interactive Computing), cept the 360/165 and 360/168) were microprogrammed
and ORVYL (Stanford Timesharing System). implementations.
Control Data Corporation developed the SCOPE oper- The enormous investment in software for these systems
ating system in the 1960s, for batch processing. In co- made since the 1960s caused most of the original com-
operation with the University of Minnesota, the Kronos puter manufacturers to continue to develop compatible
and later the NOS operating systems were developed dur- operating systems along with the hardware. Notable sup-
ing the 1970s, which supported simultaneous batch and ported mainframe operating systems include:
timesharing use. Like many commercial timesharing sys-
tems, its interface was an extension of the Dartmouth • Burroughs MCP – B5000, 1961 to Unisys
BASIC operating systems, one of the pioneering efforts Clearpath/MCP, present
264 CHAPTER 49. OPERATING SYSTEM
• IBM OS/360 – IBM System/360, 1966 to IBM bilities, provided personal computers with the ability to
z/OS, present run multitasking operating systems like those of earlier
minicomputers and mainframes. Microsoft responded
• IBM CP-67 – IBM System/360, 1967 to IBM z/VM to this progress by hiring Dave Cutler, who had devel-
• UNIVAC EXEC 8 – UNIVAC 1108, 1967, to OS oped the VMS operating system for Digital Equipment
2200 Unisys Clearpath Dorado, present Corporation. He would lead the development of the
Windows NT operating system, which continues to serve
as the basis for Microsoft’s operating systems line. Steve
49.2.2 Microcomputers Jobs, a co-founder of Apple Inc., started NeXT Com-
puter Inc., which developed the NEXTSTEP operating
system. NEXTSTEP would later be acquired by Apple
Inc. and used, along with code from FreeBSD as the core
of Mac OS X.
The GNU Project was started by activist and program-
mer Richard Stallman with the goal of creating a com-
plete free software replacement to the proprietary UNIX
operating system. While the project was highly successful
in duplicating the functionality of various parts of UNIX,
development of the GNU Hurd kernel proved to be un-
productive. In 1991, Finnish computer science student
Linus Torvalds, with cooperation from volunteers collab-
orating over the Internet, released the first version of the
PC DOS was an early personal computer OS that featured a com- Linux kernel. It was soon merged with the GNU user
mand line interface. space components and system software to form a com-
plete operating system. Since then, the combination of
the two major components has usually been referred to
as simply “Linux” by the software industry, a naming
convention that Stallman and the Free Software Founda-
tion remain opposed to, preferring the name GNU/Linux.
The Berkeley Software Distribution, known as BSD, is
the UNIX derivative distributed by the University of Cal-
ifornia, Berkeley, starting in the 1970s. Freely distributed
and ported to many minicomputers, it eventually also
gained a following for use on PCs, mainly as FreeBSD,
NetBSD and OpenBSD.
The Open Group which licenses it for use with any oper- In 1974, University of California, Berkeley installed its
ating system that has been shown to conform to their def- first Unix system. Over time, students and staff in the
initions. “UNIX-like” is commonly used to refer to the computer science department there began adding new
large set of operating systems which resemble the origi- programs to make things easier, such as text editors.
nal UNIX. When Berkeley received new VAX computers in 1978
Unix-like systems run on a wide variety of computer ar- with Unix installed, the school’s undergraduates modified
chitectures. They are used heavily for servers in business, Unix even more in order to take advantage of the com-
as well as workstations in academic and engineering envi- puter’s hardware possibilities. The Defense Advanced
Research Projects Agency of the US Department of De-
ronments. Free UNIX variants, such as Linux and BSD,
are popular in these areas. fense took interest, and decided to fund the project. Many
schools, corporations, and government organizations took
Four operating systems are certified by The Open Group notice and started to use Berkeley’s version of Unix in-
(holder of the Unix trademark) as Unix. HP’s HP-UX and stead of the official one distributed by AT&T.
IBM’s AIX are both descendants of the original System V
Unix and are designed to run only on their respective ven- Steve Jobs, upon leaving Apple Inc. in 1985, formed
dor’s hardware. In contrast, Sun Microsystems's Solaris NeXT Inc., a company that manufactured high-end com-
can run on multiple types of hardware, including x86 and puters running on a variation of BSD called NeXTSTEP.
Sparc servers, and PCs. Apple’s OS X, a replacement for One of these computers was used by Tim Berners-Lee as
Apple’s earlier (non-Unix) Mac OS, is a hybrid kernel- the first webserver to create the World Wide Web.
based BSD variant derived from NeXTSTEP, Mach, and Developers like Keith Bostic encouraged the project to
FreeBSD. replace any non-free code that originated with Bell Labs.
Unix interoperability was sought by establishing the Once this was done, however, AT&T sued. After two
years of legal disputes, the BSD project spawned a num-
POSIX standard. The POSIX standard can be applied to
any operating system, although it was originally created ber of free derivatives, such as NetBSD and FreeBSD
(both in 1993), and OpenBSD (from NetBSD in 1995).
for various Unix variants.
OS X Main article: OS X
BSD and its descendants
OS X (formerly “Mac OS X”) is a line of open core
Main article: Berkeley Software Distribution
A subgroup of the Unix family is the Berkeley Software
Linux
nel provides the most basic level of control over all of the
computer’s hardware devices. It manages memory access
for programs in the RAM, it determines which programs
get access to which hardware resources, it sets up or re-
49.3.3 Other sets the CPU’s operating states for optimal operation at all
times, and it organizes the data for long-term non-volatile
storage with file systems on such media as disks, tapes,
There have been many operating systems that were signif- flash memory, etc.
icant in their day but are no longer so, such as AmigaOS;
OS/2 from IBM and Microsoft; Mac OS, the non-Unix
precursor to Apple’s Mac OS X; BeOS; XTS-300; RISC Program execution
OS; MorphOS; Haiku; BareMetal and FreeMint. Some
are still used in niche markets and continue to be de- Main article: Process (computing)
veloped as minority platforms for enthusiast commu-
nities and specialist applications. OpenVMS, formerly The operating system provides an interface between an
from DEC, is still under active development by Hewlett- application program and the computer hardware, so that
Packard. Yet other operating systems are used almost an application program can interact with the hardware
exclusively in academia, for operating systems education only by obeying rules and procedures programmed into
or to do research on operating system concepts. A typi- the operating system. The operating system is also a set
cal example of a system that fulfills both roles is MINIX, of services which simplify development and execution of
while for example Singularity is used purely for research. application programs. Executing an application program
Other operating systems have failed to win significant involves the creation of a process by the operating system
market share, but have introduced innovations that have kernel which assigns memory space and other resources,
influenced mainstream operating systems, not least Bell establishes a priority for the process in multi-tasking sys-
Labs’ Plan 9. tems, loads program binary code into memory, and ini-
268 CHAPTER 49. OPERATING SYSTEM
Ring 1
Interrupts Ring 0
Most privileged
Interrupts are central to operating systems, as they pro- Device drivers
vide an efficient way for the operating system to inter-
Device drivers
act with and react to its environment. The alternative –
having the operating system “watch” the various sources Applications
Modes
Memory management
Main articles: Protected mode and Supervisor mode
Modern CPUs support multiple modes of operation. Main article: Memory management
CPUs with this capability use at least two modes:
protected mode and supervisor mode. The supervisor Among other things, a multiprogramming operating sys-
49.4. COMPONENTS 269
access each specific file system into a standard set of com- site interrupt handling necessary for any necessary asyn-
mands that the operating system can use to talk to all file chronous time-dependent hardware interfacing needs.
systems. Programs can then deal with these file systems The key design goal of device drivers is abstraction. Ev-
on the basis of filenames, and directories/folders, con- ery model of hardware (even within the same class of
tained within a hierarchical structure. They can create, device) is different. Newer models also are released by
delete, open, and close files, as well as gather various in- manufacturers that provide more reliable or better perfor-
formation about them, including access permissions, size, mance and these newer models are often controlled dif-
free space, and creation and modification dates. ferently. Computers and their operating systems cannot
Various differences between file systems make support- be expected to know how to control every device, both
ing all file systems difficult. Allowed characters in file now and in the future. To solve this problem, operat-
names, case sensitivity, and the presence of various kinds ing systems essentially dictate how every type of device
of file attributes makes the implementation of a single should be controlled. The function of the device driver is
interface for every file system a daunting task. Operat- then to translate these operating system mandated func-
ing systems tend to recommend using (and so support tion calls into device specific calls. In theory a new de-
natively) file systems specifically designed for them; for vice, which is controlled in a new manner, should function
example, NTFS in Windows and ext3 and ReiserFS in correctly if a suitable driver is available. This new driver
Linux. However, in practice, third party drivers are usu- ensures that the device appears to operate as usual from
ally available to give support for the most widely used the operating system’s point of view.
file systems in most general-purpose operating systems Under versions of Windows before Vista and versions of
(for example, NTFS is available in Linux through NTFS- Linux before 2.6, all driver execution was co-operative,
3g, and ext2/3 and ReiserFS are available in Windows meaning that if a driver entered an infinite loop it would
through third-party software). freeze the system. More recent revisions of these oper-
Support for file systems is highly varied among modern ating systems incorporate kernel preemption, where the
operating systems, although there are several common kernel interrupts the driver to give it tasks, and then sep-
file systems which almost all operating systems include arates itself from the process until it receives a response
support and drivers for. Operating systems vary on file from the device driver, or gives it more tasks to do.
system support and on the disk formats they may be in-
stalled on. Under Windows, each file system is usually
limited in application to certain media; for example, CDs 49.4.2 Networking
must use ISO 9660 or UDF, and as of Windows Vista,
NTFS is the only file system which the operating system Main article: Computer network
can be installed on. It is possible to install Linux onto
many types of file systems. Unlike other operating sys- Currently most operating systems support a variety of net-
tems, Linux and UNIX allow any file system to be used working protocols, hardware, and applications for using
regardless of the media it is stored in, whether it is a hard them. This means that computers running dissimilar op-
drive, a disc (CD, DVD...), a USB flash drive, or even erating systems can participate in a common network for
contained within a file located on another file system. sharing resources such as computing, files, printers, and
scanners using either wired or wireless connections. Net-
works can essentially allow a computer’s operating system
Device drivers to access the resources of a remote computer to support
the same functions as it could if those resources were con-
Main article: Device driver nected directly to the local computer. This includes ev-
erything from simple communication, to using networked
A device driver is a specific type of computer software file systems or even sharing another computer’s graphics
developed to allow interaction with hardware devices. or sound hardware. Some network services allow the re-
Typically this constitutes an interface for communicat- sources of a computer to be accessed transparently, such
ing with the device, through the specific computer bus as SSH which allows networked users direct access to a
or communications subsystem that the hardware is con- computer’s command line interface.
nected to, providing commands to and/or receiving data Client/server networking allows a program on a com-
from the device, and on the other end, the requisite inter- puter, called a client, to connect via a network to another
faces to the operating system and software applications. computer, called a server. Servers offer (or host) various
It is a specialized hardware-dependent computer program services to other network computers and users. These
which is also operating system specific that enables an- services are usually provided through ports or numbered
other program, typically an operating system or applica- access points beyond the server’s network address. Each
tions software package or computer program running un- port number is usually associated with a maximum of one
der the operating system kernel, to interact transparently running program, which is responsible for handling re-
with a hardware device, and usually provides the requi- quests to that port. A daemon, being a user program, can
272 CHAPTER 49. OPERATING SYSTEM
in turn access the local hardware resources of that com- held on computers, both of a commercial and military na-
puter by passing requests to the operating system kernel. ture. The United States Government Department of De-
Many operating systems support one or more vendor- fense (DoD) created the Trusted Computer System Evalu-
specific or open networking protocols as well, for ex- ation Criteria (TCSEC) which is a standard that sets ba-
ample, SNA on IBM systems, DECnet on systems from sic requirements for assessing the effectiveness of secu-
Digital Equipment Corporation, and Microsoft-specific rity. This became of vital importance to operating system
protocols (SMB) on Windows. Specific protocols for spe- makers, because the TCSEC was used to evaluate, clas-
cific tasks may also be supported such as NFS for file sify and select trusted operating systems being considered
for the processing, storage and retrieval of sensitive or
access. Protocols like ESound, or esd can be easily ex-
tended over the network to provide sound from local ap- classified information.
plications, on a remote system’s sound hardware. Network services include offerings such as file sharing,
print services, email, web sites, and file transfer proto-
cols (FTP), most of which can have compromised secu-
49.4.3 Security rity. At the front line of security are hardware devices
known as firewalls or intrusion detection/prevention sys-
tems. At the operating system level, there are a number
Main article: Computer security
of software firewalls available, as well as intrusion detec-
tion/prevention systems. Most modern operating systems
A computer being secure depends on a number of tech- include a software firewall, which is enabled by default. A
nologies working properly. A modern operating system software firewall can be configured to allow or deny net-
provides access to a number of resources, which are avail- work traffic to or from a service or application running
able to software running on the system, and to external on the operating system. Therefore, one can install and
devices like networks via the kernel. be running an insecure service, such as Telnet or FTP,
The operating system must be capable of distinguish- and not have to be threatened by a security breach be-
ing between requests which should be allowed to be pro- cause the firewall would deny all traffic trying to connect
cessed, and others which should not be processed. While to the service on that port.
some systems may simply distinguish between “privi- An alternative strategy, and the only sandbox strategy
leged” and “non-privileged”, systems commonly have a available in systems that do not meet the Popek and Gold-
form of requester identity, such as a user name. To es- berg virtualization requirements, is where the operating
tablish identity there may be a process of authentication. system is not running user programs as native code, but
Often a username must be quoted, and each username instead either emulates a processor or provides a host for
may have a password. Other methods of authentication, a p-code based system such as Java.
such as magnetic cards or biometric data, might be used
Internal security is especially relevant for multi-user sys-
instead. In some cases, especially connections from the
tems; it allows each user of the system to have private files
network, resources may be accessed with no authentica-
that the other users cannot tamper with or read. Internal
tion at all (such as reading files over a network share).
security is also vital if auditing is to be of any use, since
Also covered by the concept of requester identity is au-
a program can potentially bypass the operating system,
thorization; the particular services and resources accessi-
inclusive of bypassing auditing.
ble by the requester once logged into a system are tied to
either the requester’s user account or to the variously con-
figured groups of users to which the requester belongs.
49.4.4 User interface
In addition to the allow or disallow model of security, a
system with a high level of security also offers auditing Main article: Operating system user interface
options. These would allow tracking of requests for ac- Every computer that is to be operated by an individual
cess to resources (such as, “who has been reading this requires a user interface. The user interface is usually re-
file?"). Internal security, or security from an already run- ferred to as a shell and is essential if human interaction
ning program is only possible if all possibly harmful re- is to be supported. The user interface views the directory
quests must be carried out through interrupts to the op- structure and requests services from the operating system
erating system kernel. If programs can directly access that will acquire data from input hardware devices, such
hardware and resources, they cannot be secured. as a keyboard, mouse or credit card reader, and requests
External security involves a request from outside the com- operating system services to display prompts, status mes-
puter, such as a login at a connected console or some sages and such on output hardware devices, such as a
kind of network connection. External requests are of- video monitor or printer. The two most common forms of
ten passed through device drivers to the operating sys- a user interface have historically been the command-line
tem’s kernel, where they can be passed onto applications, interface, where computer commands are typed out line-
or carried out directly. Security of operating systems by-line, and the graphical user interface, where a visual
has long been a concern because of highly sensitive data environment (most commonly a WIMP) is present.
49.5. REAL-TIME OPERATING SYSTEMS 273
49.8 Market share [5] Lorch, Jacob R., and Alan Jay Smith. “Reducing pro-
cessor power consumption by improving processor time
management in a single-user operating system.” Proceed-
Main article: Usage share of operating systems ings of the 2nd annual international conference on Mobile
computing and networking. ACM, 1996.
49.11. FURTHER READING 275
[6] Mishra, B.; Singh, N.; Singh, R. (2014). “Master-slave [27] “Using NDIS 2 PCMCIA Network Card Drivers in Win-
group based model for co-ordinator selection, an im- dows 95”. Support.microsoft.com. Retrieved 2012-08-
provement of bully algorithm”. International Confer- 07.
ence on Parallel, Distributed and Grid Computing (PDGC).
pp. 457–460. doi:10.1109/PDGC.2014.7030789. ISBN [28] “INFO: Windows 95 Multimedia Wave Device Drivers
978-1-4799-7682-9. Must be 16 bit”. Support.microsoft.com. Retrieved 2012-
08-07.
[7] Gagne, Silberschatz Galvin (2012). Operating Systems
Concepts. New York: Wiley. p. 716. ISBN 978- [29] Arthur, Charles. “Windows 8 will run on ARM chips -
1118063330. but third-party apps will need rewrite”. The Guardian.
[8] Hansen, Per Brinch, ed. (2001). Classic Operating Sys- [30] “Operating System Share by Groups for Sites in All Lo-
tems. Springer. pp. 4–7. ISBN 0-387-95113-X. cations January 2009”.
[9] Lavington, Simon (1998). A History of Manchester Com- [31] “Behind the IDC data: Windows still No. 1 in server op-
puters (2nd ed.). Swindon: The British Computer Society. erating systems”. ZDNet. 2010-02-26.
pp. 50–52. ISBN 978-1-902505-01-5.
[32] Stallings, William (2008). Computer Organization & Ar-
[10] Brinch Hansen, Per (2000). Classic Operating Systems: chitecture. New Delhi: Prentice-Hall of India Private
From Batch Processing to Distributed Systems. Springer- Limited. p. 267. ISBN 978-81-203-2962-1.
Verlag.
[33] Poisson, Ken. “Chronology of Personal Computer Soft-
[11] “Intel® Microprocessor Quick Reference Guide - Year”. ware”. Retrieved on 2008-05-07. Last checked on 2009-
www.intel.com. Retrieved 2016-04-24. 03-30.
[12] Ritchie, Dennis. “Unix Manual, first edition”. Lucent [34] “My OS is less hobby than yours”. Osnews. 21 December
Technologies. Retrieved 22 November 2012. 2009. Retrieved 21 December 2009.
[13] “OS X Mountain Lion – Move your Mac even further [35] “The History of Unix”. BYTE. August 1983. p. 188. Re-
ahead”. Apple. Retrieved 2012-08-07. trieved 31 January 2015.
[14] “Top 5 Operating Systems from January to April 2011”.
[36] Whitney, Lance (7 January 2014). “Android device ship-
StatCounter. October 2009. Retrieved 5 November 2009.
ments to top 1 billion this year -- Gartner”.
[15] “IDC report into Server market share”. Idc.com. Re-
trieved 2012-08-07.
[16] LinuxDevices Staff (23 April 2008). “Linux still top em-
49.11 Further reading
bedded OS”. LinuxGizmos.com. Retrieved 5 April 2016.
• Auslander, Marc A.; Larkin, David C.; Scherr, Al-
[17] “Sublist Generator”. Top500.org. Retrieved November lan L. (1981). “The evolution of the MVS Operating
2015. Check date values in: |access-date= (help) System” (PDF). IBM J. Research & Development.
[18] “Chromium OS”. Chromium.org.
• Deitel, Harvey M.; Deitel, Paul; Choffnes, David.
[19] “Chromium OS FAQ”. The Chromium Projects. Re- Operating Systems. Pearson/Prentice Hall. ISBN
trieved 28 February 2014. 978-0-13-092641-8.
[20] “Global Web Stats”. Net Market Share, Net Applications. • Bic, Lubomur F.; Shaw, Alan C. (2003). Operating
May 2011. Retrieved 2011-05-07. Systems. Pearson: Prentice Hall.
[21] “Global Web Stats”. W3Counter, Awio Web Services. • Silberschatz, Avi; Galvin, Peter; Gagne, Greg
September 2009. Retrieved 2009-10-24.
(2008). Operating Systems Concepts. John Wiley &
[22] “Operating System Market Share”. Net Applications. Oc- Sons. ISBN 0-470-12872-0.
tober 2009. Retrieved 5 November 2009.
• O'Brien, J.A., & Marakas, G.M.(2011). Manage-
[23] “w3schools.com OS Platform Statistics”. Retrieved 30 ment Information Systems. 10e. McGraw-Hill Ir-
October 2011. win
[24] “Stats Count Global Stats Top Five Operating Systems”. • Leva, Alberto; Maggio, Martina; Papadopoulos,
Retrieved 30 October 2011. Alessandro Vittorio; Terraneo, Federico (2013).
[25] “Global statistics at w3counter.com”. Retrieved 23 Jan- Control-based Operating System Design. IET. ISBN
uary 2012. 978-1-84919-609-3.
[26] “Troubleshooting MS-DOS Compatibility Mode on Hard • Arpaci-Dusseau, Remzi; Arpaci-Dusseau, Andrea
Disks”. Support.microsoft.com. Retrieved 2012-08-07. (2015). Operating Systems: Three Easy Pieces.
276 CHAPTER 49. OPERATING SYSTEM
OSI model
The Open Systems Interconnection model (OSI These two international standards bodies each developed
model) is a conceptual model that characterizes and stan- a document that defined similar networking models.
dardizes the communication functions of a telecommuni- In 1983, these two documents were merged to form a
cation or computing system without regard to their un-
standard called The Basic Reference Model for Open
derlying internal structure and technology. Its goal is theSystems Interconnection. The standard is usually re-
interoperability of diverse communication systems with
ferred to as the Open Systems Interconnection Refer-
standard protocols. The model partitions a communica- ence Model, the OSI Reference Model, or simply the OSI
tion system into abstraction layers. The original version
model. It was published in 1984 by both the ISO, as stan-
of the model defined seven layers. dard ISO 7498, and the renamed CCITT (now called the
A layer serves the layer above it and is served by the Telecommunications Standardization Sector of the Inter-
layer below it. For example, a layer that provides error- national Telecommunication Union or ITU-T) as stan-
free communications across a network provides the path dard X.200.
needed by applications above it, while it calls the next OSI had two major components, an abstract model of net-
lower layer to send and receive packets that comprise the working, called the Basic Reference Model or seven-layer
contents of that path. Two instances at the same layer are model, and a set of specific protocols.
visualized as connected by a horizontal connection in that
layer. The concept of a seven-layer model was provided by
the work of Charles Bachman at Honeywell Informa-
The model is a product of the Open Systems Inter- tion Services. Various aspects of OSI design evolved
connection project at the International Organization for
from experiences with the ARPANET, NPLNET, EIN,
Standardization (ISO), maintained by the identification CYCLADES network and the work in IFIP WG6.1. The
ISO/IEC 7498-1.
new design was documented in ISO 7498 and its various
addenda. In this model, a networking system was divided
into layers. Within each layer, one or more entities im-
plement its functionality. Each entity interacted directly
only with the layer immediately beneath it, and provided
facilities for use by the layer above it.
Protocols enable an entity in one host to interact with a
corresponding entity at the same layer in another host.
Service definitions abstractly described the functionality
provided to an (N)-layer by an (N-1) layer, where N was
one of the seven layers of protocols operating in the local
host.
Communication in the OSI-Model (example with layers 3 to 5) The OSI standards documents are available from the ITU-
T as the X.200-series of recommendations.[1] Some of
the protocol specifications were also available as part of
the ITU-T X series. The equivalent ISO and ISO/IEC
50.1 History standards for the OSI model were available from ISO, but
only some of them without fees.[2]
In the late 1970s, one project was administered by the In-
ternational Organization for Standardization (ISO), while
another was undertaken by the International Telegraph
and Telephone Consultative Committee, or CCITT (the
abbreviation is from the French version of the name).
277
278 CHAPTER 50. OSI MODEL
50.2 Description of OSI layers The physical layer of Parallel SCSI operates in this layer,
as do the physical layers of Ethernet and other local-area
The recommendation X.200 describes seven layers, la- networks, such as Token Ring, FDDI, ITU-T G.hn, and
beled 1 to 7. Layer 1 is the lowest layer in this model. IEEE 802.11 (Wi-Fi), as well as personal area networks
such as Bluetooth and IEEE 802.15.4.
At each level N, two entities at the communicating de-
vices (layer N peers) exchange protocol data units (PDUs) The physical layer is the layer of low-level networking
by means of a layer N protocol. Each PDU contains a equipment, such as some hubs, cabling, and repeaters.
payload, called the service data unit (SDU), along with The physical layer is never concerned with protocols or
protocol-related headers and/or footers. other such higher-layer items. Examples of hardware in
this layer are network adapters, repeaters, network hubs,
Data processing by two communicating OSI-compatible modems, and fiber media converters.
devices is done as such:
1. The data to be transmitted is composed at the top- 50.2.2 Layer 2: Data Link Layer
most layer of the transmitting device (layer N) into
a protocol data unit (PDU). The data link layer provides node-to-node data transfer—
a link between two directly connected nodes. It detects
2. The PDU is passed to layer N-1, where it is known and possibly corrects errors that may occur in the physi-
as the service data unit (SDU). cal layer. It, among other things, defines the protocol to
3. At layer N-1 the SDU is concatenated with a header, establish and terminate a connection between two phys-
a footer, or both, producing a layer N-1 PDU. It is ically connected devices. It also defines the protocol for
then passed to layer N-2. flow control between them.
[6]
4. The process continues until reaching the lowermost IEEE 802 divides the data link layer into two sublayers:
level, from which the data is transmitted to the re-
ceiving device. • Media Access Control (MAC) layer - responsible for
controlling how devices in a network gain access to
5. At the receiving device the data is passed from medium and permission to transmit it.
the lowest to the highest layer as a series of SDUs
while being successively stripped from each layer’s • Logical Link Control (LLC) layer - responsible for
header and/or footer, until reaching the topmost identifying Network layer protocols and then encap-
layer, where the last of the data is consumed. sulating them and controls error checking and frame
synchronization.
Some orthogonal aspects, such as management and
security, involve all of the layers (See ITU-T X.800 The MAC and LLC layers of IEEE 802 networks such
Recommendation[5] ). These services are aimed at im- as 802.3 Ethernet, 802.11 Wi-Fi, and 802.15.4 ZigBee,
proving the CIA triad - confidentiality, integrity, and operate at the data link layer.
availability - of the transmitted data. In practice, the
The Point-to-Point Protocol (PPP) is a data link layer that
availability of a communication service is determined
can operate over several different physical layers, such as
by the interaction between network design and network
synchronous and asynchronous serial lines.
management protocols. Appropriate choices for both of
these are needed to protect against denial of service. The ITU-T G.hn standard, which provides high-speed
local area networking over existing wires (power lines,
phone lines and coaxial cables), includes a complete data
50.2.1 Layer 1: Physical Layer link layer that provides both error correction and flow
control by means of a selective-repeat sliding-window
The physical layer defines the electrical and physical spec- protocol.
ifications of the data connection. It defines the rela-
tionship between a device and a physical transmission
medium (e.g., a copper or fiber optical cable, radio fre- 50.2.3 Layer 3: Network Layer
quency). This includes the layout of pins, voltages, line
impedance, cable specifications, signal timing and simi- The network layer provides the functional and procedu-
lar characteristics for connected devices and frequency (5 ral means of transferring variable length data sequences
GHz or 2.4 GHz etc.) for wireless devices. It is respon- (called datagrams) from one node to another connected
sible for transmission and reception of unstructured raw to the same network. It translates logical network address
data in a physical medium. It may define transmission into physical machine address. A network is a medium
mode as simplex, half duplex, and full duplex. It defines to which many nodes can be connected, on which every
the network topology as bus, mesh, or ring being some of node has an address and which permits nodes connected
the most common. to it to transfer messages to other nodes connected to it by
50.2. DESCRIPTION OF OSI LAYERS 279
merely providing the content of a message and the address and classification of mail and parcels sent. Do remember,
of the destination node and letting the network find the however, that a post office manages the outer envelope of
way to deliver the message to the destination node, possi-mail. Higher layers may have the equivalent of double
bly routing it through intermediate nodes. If the message envelopes, such as cryptographic presentation services
is too large to be transmitted from one node to another onthat can be read by the addressee only. Roughly speak-
the data link layer between those nodes, the network may ing, tunneling protocols operate at the transport layer,
implement message delivery by splitting the message into such as carrying non-IP protocols such as IBM's SNA or
several fragments at one node, sending the fragments in- Novell's IPX over an IP network, or end-to-end encryp-
dependently, and reassembling the fragments at another tion with IPsec. While Generic Routing Encapsulation
node. It may, but need not, report delivery errors. (GRE) might seem to be a network-layer protocol, if the
encapsulation of the payload takes place only at endpoint,
Message delivery at the network layer is not necessarily
guaranteed to be reliable; a network layer protocol may GRE becomes closer to a transport protocol that uses IP
headers but contains complete frames or packets to de-
provide reliable message delivery, but it need not do so.
liver to an endpoint. L2TP carries PPP frames inside
A number of layer-management protocols, a function de- transport packet.
fined in the management annex, ISO 7498/4, belong to
the network layer. These include routing protocols, mul- Although not developed under the OSI Reference Model
ticast group management, network-layer information and and not strictly conforming to the OSI definition of the
error, and network-layer address assignment. It is the transport layer, the Transmission Control Protocol (TCP)
function of the payload that makes these belong to the and the User Datagram Protocol (UDP) of the Internet
network layer, not the protocol that carries them.[7] Protocol Suite are commonly categorized as layer-4 pro-
tocols within OSI.
file to an ASCII-coded file, or serialization of objects and • ARP is used to translate IPv4 addresses (OSI layer
other data structures from and to XML. 3) into Ethernet MAC addresses (OSI layer 2).
• Domain Name Service is an Application Layer ser-
50.2.7 Layer 7: Application Layer vice which is used to look up the IP address of a
given domain name. Once a reply is received from
The application layer is the OSI layer closest to the end the DNS server, it is then possible to form a Layer
user, which means both the OSI application layer and the 3 connection to the third-party host.
user interact directly with the software application. This • Cross MAC and PHY Scheduling is essential in
layer interacts with software applications that implement wireless networks because of the time varying na-
a communicating component. Such application programs ture of wireless channels. By scheduling packet
fall outside the scope of the OSI model. Application- transmission only in favorable channel conditions,
layer functions typically include identifying communica- which requires the MAC layer to obtain channel
tion partners, determining resource availability, and syn- state information from the PHY layer, network
chronizing communication. When identifying commu- throughput can be significantly improved and en-
nication partners, the application layer determines the ergy waste can be avoided.[10]
identity and availability of communication partners for
an application with data to transmit. When determining
resource availability, the application layer must decide
whether sufficient network resources for the requested
50.4 Interfaces
communication exist. In synchronizing communication,
all communication between applications requires cooper- Neither the OSI Reference Model nor OSI protocols
ation that is managed by the application layer. This layer specify any programming interfaces, other than delib-
supports application and end-user processes. Communi- erately abstract service specifications. Protocol specifi-
cation partners are identified, quality of service is identi- cations precisely define the interfaces between different
fied, user authentication and privacy are considered, and computers, but the software interfaces inside computers,
any constraints on data syntax are identified. Everything known as network sockets are implementation-specific.
at this layer is application-specific. For example, Microsoft Windows' Winsock, and Unix's
Berkeley sockets and System V Transport Layer Inter-
face, are interfaces between applications (layer 5 and
50.3 Cross-layer functions above) and the transport (layer 4). NDIS and ODI are
interfaces between the media (layer 2) and the network
Cross-layer functions are services that are not tied to a protocol (layer 3).
given layer, but may affect more than one layer. Examples Interface standards, except for the physical layer to me-
include the following: dia, are approximate implementations of OSI service
specifications.
• Security service (telecommunication)[5] as defined
by ITU-T X.800 recommendation.
• Management functions, i.e. functions that permit to 50.5 Examples
configure, instantiate, monitor, terminate the com-
munications of two or more entities: there is a spe- 50.6 Comparison with TCP/IP
cific application-layer protocol, common manage-
ment information protocol (CMIP) and its corre- model
sponding service, common management informa-
tion service (CMIS), they need to interact with every The design of protocols in the TCP/IP model of the In-
layer in order to deal with their instances. ternet does not concern itself with strict hierarchical en-
[16]
• Multiprotocol Label Switching (MPLS) operates at capsulation and layering. RFC 3439 contains a sec-
an OSI-model layer that is generally considered to lie tion entitled “Layering considered harmful".[17] TCP/IP
between traditional definitions of layer 2 (data link does recognize four broad layers of functionality which
layer) and layer 3 (network layer), and thus is often are derived from the operating scope of their contained
referred to as a “layer-2.5” protocol. It was designed protocols: the scope of the software application; the end-
to provide a unified data-carrying service for both to-end transport connection; the internetworking range;
circuit-based clients and packet-switching clients and the scope[18] of the direct links to other nodes on the
which provide a datagram-based service model. It local network.
can be used to carry many different kinds of traf- Despite using a different concept for layering than the
fic, including IP packets, as well as native ATM, OSI model, these layers are often compared with the OSI
SONET, and Ethernet frames. layering scheme in the following way:
50.9. EXTERNAL LINKS 281
• The Internet application layer includes the OSI ap- [5] “ITU-T Recommendataion X.800 (03/91), Security archi-
plication layer, presentation layer, and most of the tecture for Open Systems Interconnection for CCITT appli-
session layer. cations". ITU. Retrieved 14 August 2015.
• Its end-to-end transport layer includes the graceful [6] “5.2 RM description for end stations”. IEEE Std 802-
close function of the OSI session layer as well as the 2014, IEEE Standard for Local and Metropolitan Area
OSI transport layer. Networks: Overview and Architecture. ieee.
• The internetworking layer (Internet layer) is a subset [7] International Organization for Standardization (1989-11-
of the OSI network layer. 15). “ISO/IEC 7498-4:1989 -- Information technology --
Open Systems Interconnection -- Basic Reference Model:
• The link layer includes the OSI data link layer and Naming and addressing”. ISO Standards Maintenance
sometimes the physical layers, as well as some pro- Portal. ISO Central Secretariat. Retrieved 2015-08-17.
tocols of the OSI’s network layer.
[8] “ITU-T Recommendation X.224 (11/1995) ISO/IEC
8073, Open Systems Interconnection - Protocol for provid-
These comparisons are based on the original seven-layer ing the connection-mode transport service". ITU.
protocol model as defined in ISO 7498, rather than re-
finements in such things as the internal organization of [9] Grigonis, Richard (2000). Computer telephony- ency-
the network layer document. clopaedia. CMP. p. 331. ISBN 9781578200450.
The presumably strict layering of the OSI model as it [10] G. Miao; G. Song (2014). Energy and spectrum efficient
is usually described does not present contradictions in wireless network design. Cambridge University Press.
TCP/IP, as it is permissible that protocol usage does not ISBN 1107039886.
follow the hierarchy implied in a layered model. Such ex-
[11] “ITU-T Recommendation Q.1400 (03/1993)], Architec-
amples exist in some routing protocols (e.g., OSPF), or
ture framework for the development of signaling and
in the description of tunneling protocols, which provide OA&M protocols using OSI concepts". ITU. pp. 4, 7.
a link layer for an application, although the tunnel host
protocol might well be a transport or even an application- [12] ITU Rec. X.227 (ISO 8650), X.217 (ISO 8649).
layer protocol in its own right.
[13] X.700 series of recommendations from the ITU-T (in par-
ticular X.711) and ISO 9596.
• WAP protocol suite [18] Walter Goralski. The Illustrated Network: How TCP/IP
Works in a Modern Network (PDF). Morgan Kaufmann.
• List of information technology acronyms p. 26. ISBN 978-0123745415.
• IBM Systems Network Architecture
[1] ITU-T X-Series Recommendations • ISO/IEC standard 7498-1:1994 (PDF document in-
side ZIP archive) (requires HTTP cookies in order
[2] “Publicly Available Standards”. Standards.iso.org. 2010-
to accept licence agreement)
07-30. Retrieved 2010-09-11.
[3] “The OSI Model’s Seven Layers Defined and Functions • ITU-T X.200 (the same contents as from ISO)
Explained”. Microsoft Support. Retrieved 2014-12-28.
• The ISO OSI Reference Model , Beluga graph of
[4] RFC 4253 data units and groups of layers
282 CHAPTER 50. OSI MODEL
Physical quantity
A physical quantity is a physical property of a to be written in italic rather than upright roman
phenomenon, body, or substance, that can be quantified typeface while the quantity is also in italic. For
by measurement.[1] A physical quantity can be expressed example cp or cisobaric is heat capacity at con-
as the combination of a magnitude expressed by a stant pressure.
number – usually a real number – and a unit; for exam-
ple, 1.6749275×10−27 kg (the mass of the neutron), or Note the difference in the style of the sub-
299792458 metres per second (the speed of light). Phys- scripts: k and p are abbreviations of the words
ical quantities are measured as 'nu' where n is the magni- kinetic and potential, whereas p (italic) is the
tude and u is the unit. For example: A boy measured the symbol for the physical quantity pressure rather
length of a room as 3 m. Here 3 is the magnitude and m than an abbreviation of the word “pressure”.
(metre) is the unit. 3 m can also be written as 300 cm.
This shows that n1u1 =n2u2. Almost all matters have Indices: These are quite apart from the above,
quantity. their use is for mathematical formalism, see
Index notation.
283
284 CHAPTER 51. PHYSICAL QUANTITY
Most physical quantities include a unit, but not all – some 51.4.2 Densities, flows, gradients, and mo-
are dimensionless. Neither the name of a physical quan- ments
tity, nor the symbol used to denote it, implies a particu-
lar choice of unit, though SI units are usually preferred Important and convenient derived quantities such as den-
and assumed today due to their ease of use and all-round sities, fluxes, flows, currents are associated with many
applicability. For example, a quantity of mass might be quantities. Sometimes different terms such as current
represented by the symbol m, and could be expressed in density and flux density, rate, frequency and current, are
the units kilograms (kg), pounds (lb), or daltons (Da). used interchangeably in the same context, sometimes they
are used uniqueley.
Dimensions To clarify these effective template derived quantities, we
let q be any quantity within some scope of context (not
necessarily base quantities) and present in the table below
Main article: dimensional analysis some of the most commonly used symbols where appli-
cable, their definitions, usage, SI units and SI dimensions
The notion of physical dimension of a physical quantity – where [q] is the dimension of q.
was introduced by Joseph Fourier in 1822.[2] By conven- For time derivatives, specific, molar, and flux densities of
tion, physical quantities are organized in a dimensional quantities there is no one symbol, nomenclature depends
system built upon base quantities, each of which is re- on subject, though time derivatives can be generally writ-
garded as having its own dimension. ten using overdot notation. For generality we use qm, qn,
and F respectively. No symbol is necessarily required for
the gradient of a scalar field, since only the nabla/del op-
erator ∇ or grad needs to be written. For spatial den-
51.3 Base quantities sity, current, current density and flux, the notations are
common from one context to another, differing only by a
change in subscripts.
Main article: International System of Quantities
For current density, ^t is a unit vector in the direction of
flow, i.e. tangent to a flowline. Notice the dot product
“Base quantities are those quantities which are distinct in
with the unit normal for a surface, since the amount of
nature and cannot be expressed in the form of other quan-
current passing through the surface is reduced when the
tities”. Base quantities are those quantities on the basis
current is not normal to the area. Only the current pass-
of which other quantities can be expressed. The seven
ing perpendicular to the surface contributes to the current
base quantities of the International System of Quantities
passing through the surface, no current passes in the (tan-
(ISQ) and their corresponding SI units and dimensions
gential) plane of the surface.
are listed in the following table. Other conventions may
have a different number of base units (e.g. the CGS and The calculus notations below can be used synonymously.
MKS systems of units). If X is a n-variable function X ≡ X (x , x · · · x ) ,
1 2 n
The last two angular units, plane angle and solid angle, are then:
subsidiary units used in the SI, but are treated as dimen-
sionless. The subsidiary units are used for convenience to Differential The differential n-space volume
differentiate between a truly dimensionless quantity (pure element is dn x ≡ dVn ≡ dx1 dx2 · · · dxn ,
number) and an angle, which are different measurements.
Derived quantities are those whose definitions are based The meaning of the term physical quantity is generally
on other physical quantities(base quantities). well understood (everyone understands what is meant by
the frequency of a periodic phenomenon, or the resistance
of an electric wire). The term physical quantity does not
imply a physically invariant quantity. Length for example
51.4.1 Space is a physical quantity, yet it is variant under coordinate
change in special and general relativity. The notion of
Important applied base units for space and time are be- physical quantities is so basic and intuitive in the realm of
low. Area and volume are of course derived from length, science, that it does not need to be explicitly spelled out
but included for completeness as they occur frequently in or even mentioned. It is universally understood that scien-
many derived quantities, in particular densities. tists will (more often than not) deal with quantitative data,
51.7. SOURCES 285
• Quantity
51.6 References
[1] Joint Committee for Guides in Metrology (JCGM), In-
ternational Vocabulary of Metrology, Basic and General
Concepts and Associated Terms (VIM), III ed., Pavillon de
Breteuil : JCGM 200:2012 (on-line)
286
52.5. DIALOG EXAMPLE 287
Following the lead of ESMTP (RFC 5321), capabilities be until a later session. In short: IMAP is designed
beginning with an X signify local capabilities. to permit manipulation of remote mailboxes as if
they were local. Depending on the IMAP client im-
plementation and the mail architecture desired by
52.3.1 STARTTLS the system manager, the user may save messages di-
rectly on the client machine, or save them on the
The STARTTLS extension allows the use of Transport server, or be given the choice of doing either.
Layer Security (TLS) or Secure Sockets Layer (SSL) to
be negotiated using the STLS command, on the standard
POP3 port, rather than an alternate. Some clients and • The POP protocol requires the currently connected
servers instead use the alternate-port method, which uses client to be the only client connected to the mail-
TCP port 995 (POP3S). box. In contrast, the IMAP protocol specifically
allows simultaneous access by multiple clients and
provides mechanisms for clients to detect changes
52.3.2 SDPS made to the mailbox by other, concurrently con-
nected, clients. See for example RFC3501 section
Demon Internet introduced extensions to POP3 that allow 5.2 which specifically cites “simultaneous access to
multiple accounts per domain, and has become known the same mailbox by multiple agents” as an example.
as Standard Dial-up POP3 Service (SDPS).[5] To access
each account, the username includes the hostname, as
john@hostname or john+hostname. • When POP retrieves a message, it receives all parts
of it, whereas the IMAP4 protocol allows clients to
Google Apps uses the same method. retrieve any of the individual MIME parts separately
- for example retrieving the plain text without re-
52.3.3 Kerberized Post Office Protocol trieving attached files.
In computing, local e-mail clients can use the Kerber- • IMAP supports flags on the server to keep track of
ized Post Office Protocol (KPOP), an application-layer message state: for example, whether or not the mes-
Internet standard protocol, to retrieve e-mail from a re- sage has been read, replied to, or deleted.
mote server over a TCP/IP connection. The KPOP pro-
tocol is based on the POP3 protocol with the differences
that it adds Kerberos security and that it runs by default
over TCP port number 1109 instead of 110. One mail
server software implementation is found in the Cyrus 52.5 Dialog example
IMAP server.
The APOP usage is a direct example from RFC 1939
page 18.
52.4 Comparison with IMAP RFC 1939 APOP support indicated by
<[email protected]> here:
• POP is a much simpler protocol, making implemen-
tation easier. S: <wait for connection on TCP port 110> C:
<open connection> S: +OK POP3 server ready
• POP mail moves the message from the email server <[email protected]> C: APOP mrose
onto your local computer, although there is usually c4c9334bac560ecc979e58001b3e22fb S: +OK mrose’s
an option to leave the messages on the email server maildrop has 2 messages (320 octets) C: STAT S: +OK
as well. 2 320 C: LIST S: +OK 2 messages (320 octets) S: 1 120
S: 2 200 S: . C: RETR 1 S: +OK 120 octets S: <the
• IMAP defaults to leaving the message on the email POP3 server sends message 1> S: . C: DELE 1 S: +OK
server, simply downloading a local copy. message 1 deleted C: RETR 2 S: +OK 200 octets S: <the
• POP treats the mailbox as one store, and has no con- POP3 server sends message 2> S: . C: DELE 2 S: +OK
cept of folders message 2 deleted C: QUIT S: +OK dewey POP3 server
signing off (maildrop empty) C: <close connection> S:
• An IMAP client performs complex queries, asking <wait for next connection>
the server for headers, or the bodies of specified
messages, or to search for messages meeting cer- POP3 servers without the optional APOP command ex-
tain criteria. Messages in the mail repository can pect the client to log in with the USER and PASS com-
be marked with various status flags (e.g. “deleted” mands:
or “answered”) and they stay in the repository un- C: USER mrose S: +OK User accepted C: PASS tanstaaf
til explicitly removed by the user—which may not S: +OK Pass accepted
288 CHAPTER 52. POST OFFICE PROTOCOL
• qmail-pop3d
• Qpopper 52.10 Further reading
• RePOP
• Hughes, L (1998). Internet e-mail Protocols, Stan-
• UW IMAP dards and Implementation. Artech House Publish-
ers. ISBN 0-89006-939-5.
• WinGate
• Johnson, K (2000). Internet Email Protocols: A
• Zimbra
Developer’s Guide. Addison-Wesley Professional.
ISBN 0-201-43288-9.
52.7 Related requests for com- • Loshin, P (1999). Essential Email Standards: RFCs
and Protocols Made Practical. John Wiley & Sons.
ments (RFCs) ISBN 0-471-34597-0.
• RFC 918 – POST OFFICE PROTOCOL • Rhoton, J (1999). Programmer’s Guide to Inter-
net Mail: SMTP, POP, IMAP, and LDAP. Elsevier.
• RFC 937 – POST OFFICE PROTOCOL – VER-
ISBN 1-55558-212-5.
SION 2
• Wood, D (1999). Programming Internet Mail.
• RFC 1081 – Post Office Protocol – Version 3
O'Reilly. ISBN 1-56592-479-7.
• RFC 1939 – Post Office Protocol – Version 3 (STD
53) • Post Office Protocol – Version 3. IETF. May 1996.
Programming language
53.1 Definitions
A programming language is a notation for writing
programs, which are specifications of a computation or
algorithm.[3] Some, but not all, authors restrict the term
“programming language” to those languages that can ex-
press all possible algorithms.[3][4] Traits often considered
important for what constitutes a programming language
Source code of a simple computer program written in the C pro-
include:
gramming language, which will output the "Hello, world!" mes-
sage when compiled and run
Function and target A computer programming lan-
A programming language is a formal computer lan- guage is a language used to write computer pro-
guage or constructed language designed to communi- grams, which involve a computer performing some
cate instructions to a machine, particularly a computer. kind of computation[5] or algorithm and possibly
Programming languages can be used to create programs control external devices such as printers, disk drives,
to control the behavior of a machine or to express robots,[6] and so on. For example, PostScript pro-
algorithms. grams are frequently created by another program
to control a computer printer or display. More
The earliest known programmable machine preceded the
generally, a programming language may describe
invention of the digital computer and is the automatic
computation on some, possibly abstract, machine.
flute player described in the 9th century by the brothers
It is generally accepted that a complete specifica-
Musa in Baghdad, “during the Islamic Golden Age".[1]
tion for a programming language includes a descrip-
From the early 1800s, “programs” were used to direct the
tion, possibly idealized, of a machine or processor
behavior of machines such as Jacquard looms and player
for that language.[7] In most practical contexts, a
pianos.[2] Thousands of different programming languages
programming language involves a computer; conse-
have been created, mainly in the computer field, and
quently, programming languages are usually defined
many more still are being created every year. Many pro-
and studied this way.[8] Programming languages dif-
gramming languages require computation to be specified
fer from natural languages in that natural languages
in an imperative form (i.e., as a sequence of operations to
are only used for interaction between people, while
perform), while other languages use other forms of pro-
programming languages also allow humans to com-
gram specification such as the declarative form (i.e. the
municate instructions to machines.
desired result is specified, not how to achieve it).
The description of a programming language is usually Abstractions Programming languages usually contain
split into the two components of syntax (form) and abstractions for defining and manipulating data
semantics (meaning). Some languages are defined by a structures or controlling the flow of execution. The
specification document (for example, the C programming practical necessity that a programming language
language is specified by an ISO Standard), while other support adequate abstractions is expressed by the
languages (such as Perl) have a dominant implementation abstraction principle;[9] this principle is sometimes
that is treated as a reference. Some languages have both, formulated as a recommendation to the programmer
with the basic language defined by a standard and ex- to make proper use of such abstractions.[10]
289
290 CHAPTER 53. PROGRAMMING LANGUAGE
Expressive power The theory of computation classifies The next step was development of so-called second-
languages by the computations they are capable of generation programming languages (2GL) or assembly
expressing. All Turing complete languages can im- languages, which were still closely tied to the instruction
plement the same set of algorithms. ANSI/ISO set architecture of the specific computer. These served to
SQL-92 and Charity are examples of languages that make the program much more human-readable, and re-
are not Turing complete, yet often called program- lieved the programmer of tedious and error-prone address
ming languages.[11][12] calculations.
The first high-level programming languages, or third-
Markup languages like XML, HTML or troff, which de- generation programming languages (3GL), were written
fine structured data, are not usually considered program- in the 1950s. An early high-level programming language
ming languages.[13][14][15] Programming languages may, to be designed for a computer was Plankalkül, developed
however, share the syntax with markup languages if a for the German Z3 by Konrad Zuse between 1943 and
computational semantics is defined. XSLT, for example, 1945. However, it was not implemented until 1998 and
is a Turing complete XML dialect.[16][17][18] Moreover, 2000.[26]
LaTeX, which is mostly used for structuring documents,
John Mauchly's Short Code, proposed in 1949, was
also contains a Turing complete subset.[19][20]
one of the first high-level languages ever developed for
The term computer language is sometimes used inter- an electronic computer.[27] Unlike machine code, Short
changeably with programming language.[21] However, Code statements represented mathematical expressions
the usage of both terms varies among authors, including in understandable form. However, the program had to
the exact scope of each. One usage describes program- be translated into machine code every time it ran, mak-
ming languages as a subset of computer languages.[22] ing the process much slower than running the equivalent
In this vein, languages used in computing that have a machine code.
different goal than expressing computer programs are
generically designated computer languages. For instance,
markup languages are sometimes referred to as computer
languages to emphasize that they are not meant to be used
for programming.[23]
Another usage regards programming languages as the-
oretical constructs for programming abstract machines,
and computer languages as the subset thereof that runs
on physical computers, which have finite hardware
resources.[24] John C. Reynolds emphasizes that formal
specification languages are just as much programming
languages as are the languages intended for execution. He
also argues that textual and even graphical input formats
that affect the behavior of a computer are programming
languages, despite the fact they are commonly not Turing-
complete, and remarks that ignorance of programming The Manchester Mark 1 ran programs written in Autocode from
language concepts is the reason for many flaws in input 1952.
formats.[25]
At the University of Manchester, Alick Glennie devel-
oped Autocode in the early 1950s. A programming lan-
53.2 History guage, it used a compiler to automatically convert the lan-
guage into machine code. The first code and compiler
was developed in 1952 for the Mark 1 computer at the
Main article: History of programming languages
University of Manchester and is considered to be the first
compiled high-level programming language.[28][29]
The second autocode was developed for the Mark 1 by
53.2.1 Early developments R. A. Brooker in 1954 and was called the “Mark 1 Au-
tocode”. Brooker also developed an autocode for the
The earliest computers were often programmed without Ferranti Mercury in the 1950s in conjunction with the
the help of a programming language, by writing programs University of Manchester. The version for the EDSAC 2
in absolute machine language. The programs, in deci- was devised by D. F. Hartley of University of Cambridge
mal or binary form, were read in from punched cards or Mathematical Laboratory in 1961. Known as EDSAC
magnetic tape, or toggled in on switches on the front panel 2 Autocode, it was a straight development from Mercury
of the computer. Absolute machine languages were later Autocode adapted for local circumstances, and was noted
termed first-generation programming languages (1GL). for its object code optimisation and source-language di-
53.2. HISTORY 291
agnostics which were advanced for the time. A contem- • Prolog, designed in 1972, was the first logic pro-
porary but separate thread of development, Atlas Au- gramming language.
tocode was developed for the University of Manchester
Atlas 1 machine. • In 1978, ML built a polymorphic type system on top
of Lisp, pioneering statically typed functional pro-
In 1954, language FORTRAN was invented at IBM by gramming languages.
John Backus; it was the first widely used high level general
purpose programming language to have a functional im- Each of these languages spawned descendants, and most
plementation, as opposed to just a design on paper.[30][31] modern programming languages count at least one of
It is still popular language for high-performance comput- them in their ancestry.
ing[32] and is used for programs that benchmark and rank
the world’s fastest supercomputers.[33] The 1960s and 1970s also saw considerable debate over
the merits of structured programming, and whether pro-
Another early programming language was devised by gramming languages should be designed to support it.[39]
Grace Hopper in the US, called FLOW-MATIC. It was Edsger Dijkstra, in a famous 1968 letter published in the
developed for the UNIVAC I at Remington Rand during Communications of the ACM, argued that GOTO state-
the period from 1955 until 1959. Hopper found that busi- ments should be eliminated from all “higher level” pro-
ness data processing customers were uncomfortable with gramming languages.[40]
mathematical notation, and in early 1955, she and her
team wrote a specification for an English programming
language and implemented a prototype.[34] The FLOW- 53.2.3 Consolidation and growth
MATIC compiler became publicly available in early 1958
and was substantially complete in 1959.[35] Flow-Matic
was a major influence in the design of COBOL, since only
it and its direct descendant AIMACO were in actual use
at the time.[36]
53.2.2 Refinement
The increased use of high-level languages introduced
a requirement for low-level programming languages or
system programming languages. These languages, to
varying degrees, provide facilities between assembly lan-
guages and high-level languages, and can be used to per-
form tasks which require direct access to hardware facil-
ities but still provide higher-level control structures and
error-checking.
The period from the 1960s to the late 1970s brought the
development of the major language paradigms now in use:
Static semantics
The following are examples of well-formed token se-
quences in this grammar: 12345, () and (a b c232 (1)). The static semantics defines restrictions on the struc-
Not all syntactically correct programs are semanti- ture of valid texts that are hard or impossible to ex-
cally correct. Many syntactically correct programs are press in standard syntactic formalisms.[3] For compiled
nonetheless ill-formed, per the language’s rules; and may languages, static semantics essentially include those se-
(depending on the language specification and the sound- mantic rules that can be checked at compile time. Ex-
ness of the implementation) result in an error on trans- amples include checking that every identifier is declared
lation or execution. In some cases, such programs may before it is used (in languages that require such declara-
exhibit undefined behavior. Even when a program is well- tions) or that the labels on the arms of a case statement
defined within a language, it may still have a meaning that are distinct.[46] Many important restrictions of this type,
is not intended by the person who wrote it. like checking that identifiers are used in the appropriate
context (e.g. not adding an integer to a function name),
Using natural language as an example, it may not be pos-
or that subroutine calls have the appropriate number and
sible to assign a meaning to a grammatically correct sen-
type of arguments, can be enforced by defining them as
tence or the sentence may be false:
rules in a logic called a type system. Other forms of static
analyses like data flow analysis may also be part of static
• "Colorless green ideas sleep furiously.” is grammat- semantics. Newer programming languages like Java and
ically well-formed but has no generally accepted C# have definite assignment analysis, a form of data flow
meaning. analysis, as part of their static semantics.
a type system is to verify and usually enforce a certain expressions; they cannot be passed to a function that ex-
level of correctness in programs written in that language pects a string, or stored in a variable that is defined to hold
by detecting certain incorrect operations. Any decidable dates.[47]
type system involves a trade-off: while it rejects many Statically typed languages can be either manifestly typed
incorrect programs, it can also prohibit some correct, al- or type-inferred. In the first case, the programmer must
beit unusual programs. In order to bypass this down- explicitly write types at certain textual positions (for ex-
side, a number of languages have type loopholes, usually ample, at variable declarations). In the second case, the
unchecked casts that may be used by the programmer to compiler infers the types of expressions and declarations
explicitly allow a normally disallowed operation between
based on context. Most mainstream statically typed lan-
different types. In most typed languages, the type system guages, such as C++, C# and Java, are manifestly typed.
is used only to type check programs, but a number of
Complete type inference has traditionally been associated
languages, usually functional ones, infer types, relieving with less mainstream languages, such as Haskell and ML.
the programmer from the need to write type annotations.
However, many manifestly typed languages support par-
The formal design and study of type systems is known as tial type inference; for example, Java and C# both infer
type theory.
types in certain limited cases.[48] Additionally, some pro-
gramming languages allow for some types to be automat-
Typed versus untyped languages ically converted to other types; for example, an int can be
used where the program expects a float.
A language is typed if the specification of every operation Dynamic typing, also called latent typing, determines the
defines types of data to which the operation is applica- type-safety of operations at run time; in other words,
ble, with the implication that it is not applicable to other types are associated with run-time values rather than tex-
types.[47] For example, the data represented by “this text tual expressions.[47] As with type-inferred languages, dy-
between the quotes” is a string, and in many programming namically typed languages do not require the programmer
languages dividing a number by a string has no meaning to write explicit type annotations on expressions. Among
and will be rejected by the compilers. The invalid op- other things, this may permit a single variable to refer to
eration may be detected when the program is compiled values of different types at different points in the pro-
(“static” type checking) and will be rejected by the com- gram execution. However, type errors cannot be auto-
piler with a compilation error message, or it may be de- matically detected until a piece of code is actually exe-
tected when the program is run (“dynamic” type check- cuted, potentially making debugging more difficult. Lisp,
ing), resulting in a run-time exception. Many languages Smalltalk, Perl, Python, JavaScript, and Ruby are dynam-
allow a function called an exception handler to be written ically typed.
to handle this exception and, for example, always return
"−1” as the result.
A special case of typed languages are the single-type lan- Weak and strong typing
guages. These are often scripting or markup languages,
such as REXX or SGML, and have only one data type— Weak typing allows a value of one type to be treated as
most commonly character strings which are used for both another, for example treating a string as a number.[47]
symbolic and numeric data. This can occasionally be useful, but it can also allow some
kinds of program faults to go undetected at compile time
In contrast, an untyped language, such as most assembly and even at run time.
languages, allows any operation to be performed on any
data, which are generally considered to be sequences of Strong typing prevents the above. An attempt to perform [47]
bits of various lengths.[47] High-level languages which are an operation on the wrong type of value raises an error.
untyped include BCPL, Tcl, and some varieties of Forth. Strongly typed languages are often termed type-safe or
safe.
In practice, while few languages are considered typed
from the point of view of type theory (verifying or re- An alternative definition for “weakly typed” refers to lan-
jecting all operations), most modern languages offer a guages, such as Perl and JavaScript, which permit a large
degree of typing.[47] Many production languages provide number of implicit type conversions. In JavaScript, for
means to bypass or subvert the type system, trading type- example, the expression 2 * x implicitly converts x to a
safety for finer control over the program’s execution (see number, and this conversion succeeds even if x is null,
casting). undefined, an Array, or a string of letters. Such implicit
conversions are often useful, but they can mask program-
ming errors. Strong and static are now generally consid-
Static versus dynamic typing ered orthogonal concepts, but usage in the literature dif-
fers. Some use the term strongly typed to mean strongly,
In static typing, all expressions have their types deter- statically typed, or, even more confusingly, to mean sim-
mined prior to when the program is executed, typically ply statically typed. Thus C has been called both strongly
at compile-time. For example, 1 and (2+2) are integer typed and weakly, statically typed.[49][50]
53.4. DESIGN AND IMPLEMENTATION 295
It may seem odd to some professional programmers that also artificial languages designed from the ground up with
C could be “weakly, statically typed”. However, notice a specific purpose, they lack the precise and complete se-
that the use of the generic pointer, the void* pointer, mantic definition that a programming language has.
does allow for casting of pointers to other pointers with-
Many programming languages have been designed from
out needing to do an explicit cast. This is extremely sim-
scratch, altered to meet new needs, and combined with
ilar to somehow casting an array of bytes to any kind of
other languages. Many have eventually fallen into disuse.
datatype in C without using an explicit cast, such as (int)
Although there have been attempts to design one “uni-
or (char). versal” programming language that serves all purposes,
all of them have failed to be generally accepted as filling
[54]
53.3.4 Standard library and run-time sys- this role. The need for diverse programming languages
arises from the diversity of contexts in which languages
tem are used:
Main article: Standard library • Programs range from tiny scripts written by individ-
ual hobbyists to huge systems written by hundreds of
Most programming languages have an associated core programmers.
library (sometimes known as the 'standard library', es-
• Programmers range in expertise from novices who
pecially if it is included as part of the published language
need simplicity above all else, to experts who may
standard), which is conventionally made available by all
be comfortable with considerable complexity.
implementations of the language. Core libraries typically
include definitions for commonly used algorithms, data • Programs must balance speed, size, and simplic-
structures, and mechanisms for input and output. ity on systems ranging from microcontrollers to
The line between a language and its core library differs supercomputers.
from language to language. In some cases, the language • Programs may be written once and not change for
designers may treat the library as a separate entity from generations, or they may undergo continual modifi-
the language. However, a language’s core library is often cation.
treated as part of the language by its users, and some lan-
guage specifications even require that this library be made • Programmers may simply differ in their tastes: they
available in all implementations. Indeed, some languages may be accustomed to discussing problems and ex-
are designed so that the meanings of certain syntactic con- pressing them in a particular language.
structs cannot even be described without referring to the
core library. For example, in Java, a string literal is de- One common trend in the development of programming
fined as an instance of the java.lang.String class; simi- languages has been to add more ability to solve problems
larly, in Smalltalk, an anonymous function expression (a using a higher level of abstraction. The earliest program-
“block”) constructs an instance of the library’s BlockCon- ming languages were tied very closely to the underlying
text class. Conversely, Scheme contains multiple coher- hardware of the computer. As new programming lan-
ent subsets that suffice to construct the rest of the lan- guages have developed, features have been added that let
guage as library macros, and so the language designers programmers express ideas that are more remote from
do not even bother to say which portions of the language simple translation into underlying hardware instructions.
must be implemented as language constructs, and which Because programmers are less tied to the complexity of
must be implemented as parts of a library. the computer, their programs can do more computing
with less effort from the programmer. This lets them
write more functionality per time unit.[55]
53.4 Design and implementation Natural language programming has been proposed as a
way to eliminate the need for a specialized language for
Programming languages share properties with natural programming. However, this goal remains distant and its
languages related to their purpose as vehicles for com- benefits are open to debate. Edsger W. Dijkstra took the
munication, having a syntactic form separate from its se- position that the use of a formal language is essential to
mantics, and showing language families of related lan- prevent the introduction of meaningless constructs, and
guages branching one from another.[51][52] But as artifi- dismissed natural language programming as “foolish”.[56]
cial constructs, they also differ in fundamental ways from Alan Perlis was similarly dismissive of the idea.[57] Hy-
languages that have evolved through usage. A signifi- brid approaches have been taken in Structured English
cant difference is that a programming language can be and SQL.
fully described and studied in its entirety, since it has a A language’s designers and users must construct a num-
precise and finite definition.[53] By contrast, natural lan- ber of artifacts that govern and enable the practice of pro-
guages have changing meanings given by their users in gramming. The most important of these artifacts are the
different communities. While constructed languages are language specification and implementation.
296 CHAPTER 53. PROGRAMMING LANGUAGE
[22] Pascal Lando, Anne Lapujade, Gilles Kassel, and Frédéric [38] François Labelle. “Programming Language Usage
Fürst, Towards a General Ontology of Computer Pro- Graph”. SourceForge. Retrieved 21 June 2006.. This
grams, ICSOFT 2007, pp. 163-170 comparison analyzes trends in number of projects hosted
by a popular community programming repository. During
[23] S.K. Bajpai, Introduction To Computers And C Program- most years of the comparison, C leads by a considerable
ming, New Age International, 2007, ISBN 81-224-1379- margin; in 2006, Java overtakes C, but the combination of
X, p. 346 C/C++ still leads considerably.
[24] R. Narasimahan, Programming Languages and Comput- [39] Hayes, Brian (2006). “The Semicolon Wars”. American
ers: A Unified Metatheory, pp. 189-−247 in Franz Alt, Scientist. 94 (4): 299–303. doi:10.1511/2006.60.299.
Morris Rubinoff (eds.) Advances in computers, Volume
8, Academic Press, 1994, ISBN 0-12-012108-5, p.215: [40] Dijkstra, Edsger W. (March 1968). “Go To State-
"[...] the model [...] for computer languages differs ment Considered Harmful” (PDF). Communications of
from that [...] for programming languages in only two the ACM. 11 (3): 147–148. doi:10.1145/362929.362947.
respects. In a computer language, there are only finitely Retrieved 2014-05-22.
many names--or registers--which can assume only finitely
many values--or states--and these states are not further [41] Tetsuro Fujise, Takashi Chikayama, Kazuaki Roku-
distinguished in terms of any other attributes. [author’s sawa, Akihiko Nakase (December 1994). “KLIC: A
footnote:] This may sound like a truism but its implica- Portable Implementation of KL1” Proc. of FGCS '94,
tions are far reaching. For example, it would imply that ICOT Tokyo, December 1994. http://www.icot.or.jp/
any model for programming languages, by fixing certain ARCHIVE/HomePage-E.html KLIC is a portable imple-
of its parameters or features, should be reducible in a nat- mentation of a concurrent logic programming language
ural way to a model for computer languages.” KL1.
[25] John C. Reynolds, Some thoughts on teaching program- [42] Jim Bender (15 March 2004). “Mini-Bibliography on
ming and programming languages, SIGPLAN Notices, Modules for Functional Programming Languages”. Read-
Volume 43, Issue 11, November 2008, p.109 Scheme.org. Retrieved 27 September 2006.
[26] Rojas, Raúl, et al. (2000). “Plankalkül: The First High- [43] Michael Sipser (1996). Introduction to the Theory of Com-
Level Programming Language and its Implementation”. putation. PWS Publishing. ISBN 0-534-94728-X. Sec-
Institut für Informatik, Freie Universität Berlin, Technical tion 2.2: Pushdown Automata, pp.101–114.
Report B-3/2000. (full text) [44] Jeffrey Kegler, "Perl and Undecidability", The Perl Re-
view. Papers 2 and 3 prove, using respectively Rice’s the-
[27] Sebesta, W.S Concepts of Programming languages.
orem and direct reduction to the halting problem, that the
2006;M6 14:18 pp.44. ISBN 0-321-33025-0
parsing of Perl programs is in general undecidable.
[28] Knuth, Donald E.; Pardo, Luis Trabb. “Early development
[45] Marty Hall, 1995, Lecture Notes: Macros, PostScript
of programming languages”. Encyclopedia of Computer
version
Science and Technology. Marcel Dekker. 7: 419–493.
[46] Michael Lee Scott, Programming language pragmatics,
[29] Peter J. Bentley (2012). Digitized: The Science of Com-
Edition 2, Morgan Kaufmann, 2006, ISBN 0-12-633951-
puters and how it Shapes Our World. Oxford University
1, p. 18–19
Press. p. 87.
[47] Andrew Cooke. “Introduction To Computer Languages”.
[30] “Fortran creator John Backus dies - Tech and gadgets-
Retrieved 13 July 2012.
msnbc.com”. MSNBC. 2007-03-20. Retrieved 2010-04-
25. [48] Specifically, instantiations of generic types are in-
ferred for certain expression forms. Type inference in
[31] “CSC-302 99S : Class 02: A Brief History of Program-
Generic Java—the research language that provided the
ming Languages”. Math.grin.edu. Retrieved 2010-04-25.
basis for Java 1.5’s bounded parametric polymorphism
[32] Eugene Loh (18 June 2010). “The Ideal HPC Program- extensions—is discussed in two informal manuscripts
ming Language”. Queue. Association of Computing Ma- from the Types mailing list: Generic Java type inference
chines. 8 (6). is unsound (Alan Jeffrey, 17 December 2001) and Sound
Generic Java type inference (Martin Odersky, 15 January
[33] “HPL - A Portable Implementation of the High- 2002). C#'s type system is similar to Java’s, and uses a
Performance Linpack Benchmark for Distributed- similar partial type inference scheme.
Memory Computers”. Retrieved 2015-02-21.
[49] “Revised Report on the Algorithmic Language Scheme”.
[34] Hopper (1978) p. 16. 20 February 1998. Retrieved 9 June 2006.
[35] Sammet (1969) p. 316 [50] Luca Cardelli and Peter Wegner. “On Understand-
ing Types, Data Abstraction, and Polymorphism”.
[36] Sammet (1978) p. 204. Manuscript (1985). Retrieved 9 June 2006.
[37] Richard L. Wexelblat: History of Programming Lan- [51] Steven R. Fischer, A history of language, Reaktion Books,
guages, Academic Press, 1981, chapter XIV. 2003, ISBN 1-86189-080-X, p. 205
300 CHAPTER 53. PROGRAMMING LANGUAGE
[52] Éric Lévénez (2011). “Computer Languages History”. [67] Nicholas Enticknap. “SSL/Computer Weekly IT salary
survey: finance boom drives IT job growth”. Computer-
[53] Jing Huang. “Artificial Language vs. Natural Language”. weekly.com. Retrieved 2013-06-14.
[54] IBM in first publishing PL/I, for example, rather ambi- [68] “Counting programming languages by book sales”.
tiously titled its manual The universal programming lan- Radar.oreilly.com. 2 August 2006. Retrieved 3 Decem-
guage PL/I (IBM Library; 1966). The title reflected IBM’s ber 2010.
goals for unlimited subsetting capability: PL/I is designed
in such a way that one can isolate subsets from it satisfy- [69] Bieman, J.M.; Murdock, V., Finding code on the World
ing the requirements of particular applications. (“PL/I”. Wide Web: a preliminary investigation, Proceedings First
Encyclopedia of Mathematics. Retrieved 29 June 2006.). IEEE International Workshop on Source Code Analysis
Ada and UNCOL had similar early goals. and Manipulation, 2001
[55] Frederick P. Brooks, Jr.: The Mythical Man-Month, [70] “Programming Language Popularity”. langpop.com.
Addison-Wesley, 1982, pp. 93-94 2013-10-25. Retrieved 2014-01-02.
[56] Dijkstra, Edsger W. On the foolishness of “natural lan- [71] Carl A. Gunter, Semantics of Programming Languages:
guage programming.” EWD667. Structures and Techniques, MIT Press, 1992, ISBN 0-262-
57095-5, p. 1
[57] Perlis, Alan (September 1982). “Epigrams on Program-
ming”. SIGPLAN Notices Vol. 17, No. 9. pp. 7–13. [72] “TUNES: Programming Languages”.
[58] Milner, R.; M. Tofte, R. Harper and D. MacQueen. [73] Wirth, Niklaus (1993). “Recollections about the devel-
(1997). The Definition of Standard ML (Revised). MIT opment of Pascal”. Proc. 2nd ACM SIGPLAN con-
Press. ISBN 0-262-63181-4. Cite uses deprecated pa- ference on history of programming languages: 333–342.
rameter |coauthors= (help) doi:10.1145/154766.155378. ISBN 0-89791-570-4. Re-
trieved 30 June 2006.
[59] Kelsey, Richard; William Clinger; Jonathan Rees (Febru-
ary 1998). “Section 7.2 Formal semantics”. Revised5 Re-
port on the Algorithmic Language Scheme. Retrieved 9
June 2006. 53.10 Further reading
[60] ANSI — Programming Language Rexx, X3-274.1996
See also: History of programming languages § Further
[61] “HOPL: an interactive Roster of Programming Lan- reading
guages”. Australia: Murdoch University. Retrieved 1
June 2009. This site lists 8512 languages.
• Abelson, Harold; Sussman, Gerald Jay (1996).
[62] Mayer, Philip; Bauer, Alexander (1 January 2015).
Structure and Interpretation of Computer Programs
“An Empirical Analysis of the Utilization of Multi-
ple Programming Languages in Open Source Projects”. (2nd ed.). MIT Press.
EASE '15. New York, NY, USA: ACM: 4:1– • Raphael Finkel: Advanced Programming Language
4:10. doi:10.1145/2745802.2745805. ISBN 978-1-
Design, Addison Wesley 1995.
4503-3350-4. Retrieved 18 September 2015. Results:
We found (a) a mean number of 5 languages per project • Daniel P. Friedman, Mitchell Wand, Christopher T.
with a clearly dominant main general-purpose language Haynes: Essentials of Programming Languages, The
and 5 often-used DSL types, (b) a significant influence
MIT Press 2001.
of the size, number of commits, and the main language
on the number of languages as well as no significant in- • Maurizio Gabbrielli and Simone Martini: “Pro-
fluence of age and number of contributors, and (c) three gramming Languages: Principles and Paradigms”,
language ecosystems grouped around XML, Shell/Make, Springer, 2010.
and HTML/CSS. Conclusions: Multi-language program-
ming seems to be common in open-source projects and • David Gelernter, Suresh Jagannathan: Programming
is a factor which must be dealt with in tooling and when Linguistics, The MIT Press 1990.
assessing development and maintenance of such software
systems. • Ellis Horowitz (ed.): Programming Languages, a
Grand Tour (3rd ed.), 1987.
[63] Abelson, Sussman, and Sussman. “Structure and Interpre-
tation of Computer Programs”. Retrieved 3 March 2009. • Ellis Horowitz: Fundamentals of Programming Lan-
[64] Brown Vicki (1999). “Scripting Languages”.
guages, 1989.
mactech.com. Retrieved November 17, 2014. • Shriram Krishnamurthi: Programming Languages:
[65] Georgina Swan (2009-09-21). “COBOL turns 50”. com- Application and Interpretation, online publication.
puterworld.com.au. Retrieved 2013-10-19.
• Bruce J. MacLennan: Principles of Programming
[66] Ed Airey (2012-05-03). “7 Myths of COBOL De- Languages: Design, Evaluation, and Implementa-
bunked”. developer.com. Retrieved 2013-10-19. tion, Oxford University Press 1999.
53.10. FURTHER READING 301
The public switched telephone network (PSTN) is the frequency, culminating in the SS7 network that connected
aggregate of the world’s circuit-switched telephone net- most exchanges by the end of the 20th century.
works that are operated by national, regional, or local The growth of the PSTN meant that teletraffic engineer-
telephony operators, providing infrastructure and ser-
ing techniques needed to be deployed to deliver quality
vices for public telecommunication. The PSTN consists of service (QoS) guarantees for the users. The work of
of telephone lines, fiber optic cables, microwave trans-
A. K. Erlang established the mathematical foundations of
mission links, cellular networks, communications satel- methods required to determine the capacity requirements
lites, and undersea telephone cables, all interconnected by
and configuration of equipment and the number of per-
switching centers, thus allowing most telephones to com- sonnel required to deliver a specific level of service.
municate with each other. Originally a network of fixed-
line analog telephone systems, the PSTN is now almost In the 1970s the telecommunications industry began im-
entirely digital in its core network and includes mobile plementing packet switched network data services using
and other networks, as well as fixed telephones.[1] the X.25 protocol transported over much of the end-to-
end equipment as was already in use in the PSTN.
The technical operation of the PSTN adheres to the stan-
dards created by the ITU-T. These standards allow differ- In the 1980s the industry began planning for digital ser-
ent networks in different countries to interconnect seam- vices assuming they would follow much the same pattern
lessly. The E.163 and E.164 standards provide a single as voice services, and conceived a vision of end-to-end
global address space for telephone numbers. The com- circuit switched services, known as the Broadband Inte-
bination of the interconnected networks and the single grated Services Digital Network (B-ISDN). The B-ISDN
numbering plan allow telephones around the world to dial vision has been overtaken by the disruptive technology of
each other. the Internet.
At the turn of the 21st century, the oldest parts of the
telephone network still use analog technology for the last
54.1 History (America) mile loop to the end user. However, digital technologies
such as DSL, ISDN, FTTx, and cable modems have be-
come more common in this portion of the network.
The first telephones had no network but were in private
use, wired together in pairs. Users who wanted to talk to Several large private telephone networks are not linked
different people had as many telephones as necessary for to the PSTN, usually for military purposes. There are
the purpose. A user who wished to speak whistled loudly also private networks run by large companies which are
into the transmitter until the other party heard. linked to the PSTN only through limited gateways, such
as a large private branch exchange (PBX).
However, a bell was added soon for signaling, so an at-
tendant no longer need wait for the whistle, and then a
switch hook. Later telephones took advantage of the ex-
change principle already employed in telegraph networks. 54.2 Operators
Each telephone was wired to a local telephone exchange,
and the exchanges were wired together with trunks. Net- The task of building the networks and selling services to
works were connected in a hierarchical manner until they customers fell to the network operators. The first com-
spanned cities, countries, continents and oceans. This pany to be incorporated to provide PSTN services was
was the beginning of the PSTN, though the term was not the Bell Telephone Company in the United States.
used for many decades. In some countries, however, the job of providing tele-
Automation introduced pulse dialing between the phone phone networks fell to government as the investment re-
and the exchange, and then among exchanges, followed quired was very large and the provision of telephone ser-
by more sophisticated address signaling including multi- vice was increasingly becoming an essential public utility.
302
54.5. SEE ALSO 303
For example, the General Post Office in the United King- one end to another via telephone exchanges. The call is
dom brought together a number of private companies to switched using a call set up protocol (usually ISUP) be-
form a single nationalized company. In recent decades tween the telephone exchanges under an overall routing
however, these state monopolies were broken up or sold strategy.
off through privatization. The call is carried over the PSTN using a 64 kbit/s chan-
nel, originally designed by Bell Labs. The name given
to this channel is Digital Signal 0 (DS0). The DS0 cir-
54.3 Regulation cuit is the basic granularity of circuit switching in a tele-
phone exchange. A DS0 is also known as a timeslot be-
In most countries, the central government has a regulator cause DS0s are aggregated in time-division multiplexing
dedicated to monitoring the provision of PSTN services (TDM) equipment to form higher capacity communica-
in that country. Their tasks may be for example to en- tion links.
sure that end customers are not over-charged for services A Digital Signal 1 (DS1) circuit carries 24 DS0s on a
where monopolies may exist. They may also regulate the North American or Japanese T-carrier (T1) line, or 32
prices charged between the operators to carry each other’s DS0s (30 for calls plus two for framing and signaling) on
traffic. an E-carrier (E1) line used in most other countries. In
modern networks, the multiplexing function is moved as
close to the end user as possible, usually into cabinets at
54.4 Technology the roadside in residential areas, or into large business
premises.
54.4.1 Network topology These aggregated circuits are conveyed from the initial
multiplexer to the exchange over a set of equipment col-
Main article: PSTN network topology lectively known as the access network. The access net-
work and inter-exchange transport use synchronous opti-
The PSTN network architecture had to evolve over the cal transmission, for example, SONET and Synchronous
years to support increasing numbers of subscribers, calls, Digital Hierarchy (SDH) technologies, although some
connections to other countries, direct dialing and so on. parts still use the older PDH technology.
The model developed by the United States and Canada Within the access network, there are a number of refer-
was adopted by other nations, with adaptations for local ence points defined. Most of these are of interest mainly
markets. to ISDN but one – the V reference point – is of more
The original concept was that the telephone exchanges general interest. This is the reference point between a
are arranged into hierarchies, so that if a call cannot be primary multiplexer and an exchange. The protocols at
handled in a local cluster, it is passed to one higher up this reference point were standardized in ETSI areas as
for onward routing. This reduced the number of connect- the V5 interface.
ing trunks required between operators over long distances
and also kept local traffic separate.
54.4.3 Impact on IP standards
However, in modern networks the cost of transmission
and equipment is lower and, although hierarchies still ex- Voice quality over PSTN networks was used as the bench-
ist, they are much flatter, with perhaps only two layers. mark for the development of the Telecommunications
Industry Association's TIA-TSB-116 standard on voice-
quality recommendations for IP telephony, to determine
54.4.2 Digital channels acceptable levels of audio delay and echo.[2]
Main article: Telephone exchange
54.5 See also
As described above, most automated telephone ex-
changes now use digital switching rather than mechani-
• Via Net Loss
cal or analog switching. The trunks connecting the ex-
changes are also digital, called circuits or channels. How- • Plain old telephone service (POTS)
ever analog two-wire circuits are still used to connect the
last mile from the exchange to the telephone in the home • Managed facilities-based voice network
(also called the local loop). To carry a typical phone call
from a calling party to a called party, the analog audio • Telecommunications Industry Association
signal is digitized at an 8 kHz sample rate with 8-bit res- • Internet area network (IAN)
olution using a special type of nonlinear pulse code mod-
ulation known as G.711. The call is then transmitted from • PSTN network topology
304 CHAPTER 54. PUBLIC SWITCHED TELEPHONE NETWORK
54.6 References
[1] Kushnick, Bruce (7 January 2013). “What Are the Pub-
lic Switched Telephone Networks, 'PSTN' and Why You
Should Care?". Huffington Post Blog. Retrieved 11 April
2014.
Radio
305
306 CHAPTER 55. RADIO
transmission system.[6] However, this invention would not Radio Times since its founding in the early 1920s.
be widely adopted. In recent years the more general term “wireless” has
Following Heinrich Hertz's establishment of the existence gained renewed popularity, even for devices using elec-
of electromagnetic radiation in the late 1880s, a vari- tromagnetic radiation, through the rapid growth of short-
ety of terms were initially used for the phenomenon, range computer networking, e.g., Wireless Local Area
with early descriptions of the radiation itself including Network (WLAN), Wi-Fi, and Bluetooth, as well as mo-
“Hertzian waves”, “electric waves”, and “ether waves”, bile telephony, e.g., GSM and UMTS cell phones. To-
while phrases describing its use in communications in- day, the term “radio” specifies the transceiver device or
cluded “spark telegraphy”, “space telegraphy”, “aerogra- chip, whereas “wireless” refers to the lack of physical
phy” and, eventually and most commonly, “wireless teleg- connections; thus equipment employs embedded radio
raphy”. However, “wireless” included a broad variety of transceivers, but operates as wireless devices over wire-
related electronic technologies, including electrostatic in- less sensor networks.
duction, electromagnetic induction and aquatic and earth
conduction, so there was a need for a more precise term
referring exclusively to electromagnetic radiation. 55.2 Processes
The first use of radio- in conjunction with electromag-
netic radiation appears to have been by French physi-
cist Édouard Branly, who in 1890 developed a version
of a coherer receiver he called a radio-conducteur.[7] The
radio- prefix was later used to form additional descrip-
tive compound and hyphenated words, especially in Eu-
rope, for example, in early 1898 the British publication
The Practical Engineer included a reference to “the ra-
diotelegraph” and “radiotelegraphy”,[8] while the French Radio communication. Information such as sound is converted
text of both the 1903 and 1906 Berlin Radiotelegraphic by a transducer such as a microphone to an electrical signal,
Conventions includes the phrases radiotélégraphique and which modulates a radio wave sent from a transmitter. A receiver
radiotélégrammes. intercepts the radio wave and extracts the information-bearing
electronic signal, which is converted back using another trans-
The use of “radio” as a standalone word dates back ducer such as a speaker.
to at least December 30, 1904, when instructions is-
sued by the British Post Office for transmitting tele-
Radio systems used for communication have the follow-
grams specified that “The word 'Radio'... is sent in
ing elements. With more than 100 years of development,
the Service Instructions”.[9] This practice was universally
each process is implemented by a wide range of methods,
adopted, and the word “radio” introduced internation-
specialized for different communications purposes.
ally, by the 1906 Berlin Radiotelegraphic Convention,
which included a Service Regulation specifying that “Ra-
diotelegrams shall show in the preamble that the service
55.2.1 Transmitter and modulation
is 'Radio'".
The switch to “radio” in place of “wireless” took place Main article: Radio transmitter
slowly and unevenly in the English-speaking world. Lee See also: Radio transmitter design
de Forest helped popularize the new word in the United
States—in early 1907 he founded the DeForest Radio
Each system contains a transmitter, This consists of a
Telephone Company, and his letter in the June 22, 1907
source of electrical energy, producing alternating current
Electrical World about the need for legal restrictions
of a desired frequency of oscillation. The transmitter con-
warned that “Radio chaos will certainly be the result un-
tains a system to modulate (change) some property of the
til such stringent regulation is enforced”.[10] The United
energy produced to impress a signal on it. This modu-
States Navy would also play a role. Although its transla-
lation might be as simple as turning the energy on and
tion of the 1906 Berlin Convention used the terms “wire-
off, or altering more subtle properties such as amplitude,
less telegraph” and “wireless telegram”, by 1912 it began
frequency, phase, or combinations of these properties.
to promote the use of “radio” instead. The term started
The transmitter sends the modulated electrical energy to a
to become preferred by the general public in the 1920s
tuned resonant antenna; this structure converts the rapidly
with the introduction of broadcasting. (“Broadcasting” is
changing alternating current into an electromagnetic wave
based upon an agricultural term meaning roughly “scat-
that can move through free space (sometimes with a par-
tering seeds widely”.) British Commonwealth countries
ticular polarization).
continued to commonly use the term “wireless” until the
mid-20th century, though the magazine of the British Amplitude modulation of a carrier wave works by vary-
Broadcasting Corporation in the UK has been called ing the strength of the transmitted signal in proportion to
the information being sent. For example, changes in the
55.2. PROCESSES 307
Bakelite radio at the Bakelite Museum, Orchard Mill, Williton, Bush House, old home of the BBC World Service.
Somerset, UK.
quently, 100,000-watt FM stations can regularly be heard Marine voice radios can use single sideband voice (SSB)
up to 100 miles (160 km) away, and farther, 150 miles in the shortwave High Frequency (HF—3 MHz to 30
(240 km), if there are no competing signals. MHz) radio spectrum for very long ranges or Marine
A few old, “grandfathered” stations do not conform to VHF radio / narrowband FM in the VHF spectrum for
these power rules. WBCT-FM (93.7) in Grand Rapids, much shorter ranges. Narrowband FM sacrifices fidelity
Michigan, US, runs 320,000 watts ERP, and can increase to make more channels available within the radio spec-
to 500,000 watts ERP by the terms of its original license. trum, by using a smaller range of radio frequencies, usu-
Such a huge power level does not usually help to increase ally with five kHz of deviation, versus the 75 kHz used
by commercial FM broadcasts, and 25 kHz used for TV
range as much as one might expect, because VHF fre-
quencies travel in nearly straight lines over the horizon sound.
and off into space. Nevertheless, when there were fewer Government, police, fire and commercial voice services
FM stations competing, this station could be heard near also use narrowband FM on special frequencies. Early
Bloomington, Illinois, US, almost 300 miles (480 km) police radios used AM receivers to receive one-way dis-
away. patches.
FM subcarrier services are secondary signals transmitted Civil and military HF (high frequency) voice services use
in a “piggyback” fashion along with the main program. shortwave radio to contact ships at sea, aircraft and iso-
Special receivers are required to utilize these services. lated settlements. Most use single sideband voice (SSB),
Analog channels may contain alternative programming, which uses less bandwidth than AM.[24] On an AM ra-
such as reading services for the blind, background mu- dio SSB sounds like ducks quacking, or the adults in a
sic or stereo sound signals. In some extremely crowded Charlie Brown cartoon. Viewed as a graph of frequency
metropolitan areas, the sub-channel program might be an versus power, an AM signal shows power where the fre-
alternate foreign-language radio program for various eth- quencies of the voice add and subtract with the main radio
nic groups. Sub-carriers can also transmit digital data, frequency. SSB cuts the bandwidth in half by suppressing
such as station identification, the current song’s name, the carrier and one of the sidebands. This also makes the
web addresses, or stock quotes. In some countries, FM transmitter about three times more powerful, because it
radios automatically re-tune themselves to the same chan- doesn't need to transmit the unused carrier and sideband.
nel in a different district by using sub-bands. TETRA, Terrestrial Trunked Radio is a digital cell phone
system for military, police and ambulances. Commercial
services such as XM, WorldSpace and Sirius offer en-
Two-way crypted digital satellite radio.
55.5.3 Video
Analog television sends the picture as AM and the sound
as AM or FM, with the sound carrier a fixed frequency
(4.5 MHz in the NTSC system) away from the video car-
rier. Analog television also uses a vestigial sideband on
the video carrier to reduce the bandwidth required.
Degen DE1103, an advanced world mini-receiver with single
sideband modulation and dual conversion Digital television uses 8VSB modulation in North Amer-
312 CHAPTER 55. RADIO
ica (under the ATSC digital television standard), and gation potential to civil aircraft.
COFDM modulation elsewhere in the world (using the
DVB-T standard). A Reed–Solomon error correction
code adds redundant correction codes and allows reli- 55.5.5 Radar
able reception during moderate data loss. Although many
current and future codecs can be sent in the MPEG Main article: Radar
transport stream container format, as of 2006 most sys-
tems use a standard-definition format almost identical to
DVD: MPEG-2 video in Anamorphic widescreen and Radar (Radio Detection And Ranging) detects objects at
MPEG layer 2 (MP2) audio. High-definition television a distance by bouncing radio waves off them. The delay
is possible simply by using a higher-resolution picture, caused by the echo measures the distance. The direction
but H.264/AVC is being considered as a replacement of the beam determines the direction of the reflection.
video codec in some regions for its improved compres- The polarization and frequency of the return can sense
sion. With the compression and improved modulation the type of surface. Navigational radars scan a wide area
involved, a single “channel” can contain a high-definition two to four times per minute. They use very short waves
program and several standard-definition programs. that reflect from earth and stone. They are common on
commercial ships and long-distance commercial aircraft.
General purpose radars generally use navigational radar
55.5.4 Navigation frequencies, but modulate and polarize the pulse so the
receiver can determine the type of surface of the reflec-
Main article: Radio navigation tor. The best general-purpose radars distinguish the rain
of heavy storms, as well as land and vehicles. Some can
All satellite navigation systems use satellites with preci- superimpose sonar data and map data from GPS position.
sion clocks. The satellite transmits its position, and the Search radars scan a wide area with pulses of short ra-
time of the transmission. The receiver listens to four dio waves. They usually scan the area two to four times
satellites, and can figure its position as being on a line that a minute. Sometimes search radars use the Doppler ef-
is tangent to a spherical shell around each satellite, deter- fect to separate moving vehicles from clutter. Targeting
mined by the time-of-flight of the radio signals from the radars use the same principle as search radar but scan a
satellite. A computer in the receiver does the math. much smaller area far more often, usually several times a
Radio direction-finding is the oldest form of radio nav- second or more. Weather radars resemble search radars,
igation. Before 1960 navigators used movable loop an- but use radio waves with circular polarization and a wave-
tennas to locate commercial AM stations near cities. length to reflect from water droplets. Some weather radar
In some cases they used marine radiolocation beacons, use the Doppler effect to measure wind speeds.
which share a range of frequencies just above AM radio
with amateur radio operators. LORAN systems also used
time-of-flight radio signals, but from radio stations on the 55.5.6 Data (digital radio)
ground.
Very High Frequency Omnidirectional Range (VOR),
systems (used by aircraft), have an antenna array that
transmits two signals simultaneously. A directional sig-
nal rotates like a lighthouse at a fixed rate. When the di-
rectional signal is facing north, an omnidirectional signal
pulses. By measuring the difference in phase of these
two signals, an aircraft can determine its bearing or ra-
dial from the station, thus establishing a line of position.
An aircraft can get readings from two VORs and locate
its position at the intersection of the two radials, known
as a "fix.”
When the VOR station is collocated with DME (Distance
Measuring Equipment), the aircraft can determine its
bearing and range from the station, thus providing a fix
from only one ground station. Such stations are called 2008 Pure One Classic digital radio
VOR/DMEs. The military operates a similar system
of navaids, called TACANs, which are often built into Most new radio systems are digital, including Digital TV,
VOR stations. Such stations are called VORTACs. Be- satellite radio, and Digital Audio Broadcasting. The old-
cause TACANs include distance measuring equipment, est form of digital broadcast was spark gap telegraphy,
VOR/DME and VORTAC stations are identical in navi- used by pioneers such as Marconi. By pressing the key,
55.5. USES OF RADIO 313
the operator could send messages in Morse code by en- sions. Commercial use of spread spectrum began in the
ergizing a rotating commutating spark gap. The rotat- 1980s. Bluetooth, most cell phones, and the 802.11b ver-
ing commutator produced a tone in the receiver, where sion of Wi-Fi each use various forms of spread spectrum.
a simple spark gap would produce a hiss, indistinguish- Systems that need reliability, or that share their fre-
able from static. Spark-gap transmitters are now illegal, quency with other services, may use “coded orthogonal
because their transmissions span several hundred mega- frequency-division multiplexing” or COFDM. COFDM
hertz. This is very wasteful of both radio frequencies and breaks a digital signal into as many as several hundred
power. slower subchannels. The digital signal is often sent as
The next advance was continuous wave telegraphy, or QAM on the subchannels. Modern COFDM systems use
CW (Continuous Wave), in which a pure radio frequency, a small computer to make and decode the signal with
produced by a vacuum tube electronic oscillator was digital signal processing, which is more flexible and far
switched on and off by a key. A receiver with a local oscil- less expensive than older systems that implemented sep-
lator would "heterodyne" with the pure radio frequency, arate electronic channels.
creating a whistle-like audio tone. CW uses less than 100 COFDM resists fading and ghosting because the narrow-
Hz of bandwidth. CW is still used, these days primar- channel QAM signals can be sent slowly. An adaptive
ily by amateur radio operators (hams). Strictly, on-off system, or one that sends error-correction codes can also
keying of a carrier should be known as “Interrupted Con- resist interference, because most interference can affect
tinuous Wave” or ICW or on-off keying (OOK). only a few of the QAM channels. COFDM is used for
Radioteletype equipment usually operates on short-wave Wi-Fi, some cell phones, Digital Radio Mondiale, Eureka
(HF) and is much loved by the military because they cre- 147, and many other local area network, digital TV and
ate written information without a skilled operator. They radio standards.
send a bit as one of two tones using frequency-shift key-
ing. Groups of five or seven bits become a character
printed by a teleprinter. From about 1925 to 1975, ra- 55.5.7 Heating
dioteletype was how most commercial messages were
sent to less developed countries. These are still used by Main article: Radio-frequency heating
the military and weather services.
Aircraft use a 1200 Baud radioteletype service over VHF Radio-frequency energy generated for heating of objects
to send their ID, altitude and position, and get gate is generally not intended to radiate outside of the gener-
and connecting-flight data. Microwave dishes on satel- ating equipment, to prevent interference with other radio
lites, telephone exchanges and TV stations usually use signals. Microwave ovens use intense radio waves to heat
quadrature amplitude modulation (QAM). QAM sends food. Diathermy equipment is used in surgery for sealing
data by changing both the phase and the amplitude of of blood vessels. Induction furnaces are used for melting
the radio signal. Engineers like QAM because it packs metal for casting, and induction hobs for cooking.
the most bits into a radio signal when given an exclusive
(non-shared) fixed narrowband frequency range. Usually
the bits are sent in “frames” that repeat. A special bit 55.5.8 Amateur radio service
pattern is used to locate the beginning of a frame.
[16] web.pdx.edu/~{}bseipel/Lecture%20notes%206-%
20203%20EMwaves.pdf
[27] Rebel Radio: The Full Story of British Pirate Radio by John
Hind, Stephen Mosco. Published by Pluto Press, 1985.
ISBN 0-7453-0055-3, ISBN 978-0-7453-0055-9
Semantics
316
56.4. PROTOTYPE THEORY 317
• Generative lexicon (1990s): categories (types) are afraid') has its particular value only because
incomplete, and get assigned based on context they stand in contrast with one another. No
word has a value that can be identified inde-
pendently of what else is in its vicinity.[11]
56.3 Dynamic turn in semantics
and may go back to earlier Indian views on language, es-
In Chomskyan linguistics there was no mechanism for pecially the Nyaya view [12]
of words as indicators and not
the learning of semantic relations, and the nativist view carriers of meaning.
considered all semantic notions as inborn. Thus, even An attempt to defend a system based on propositional
novel concepts were proposed to have been dormant in meaning for semantic underspecification can be found
some sense. This view was also thought unable to address in the generative lexicon model of James Pustejovsky,
many issues such as metaphor or associative meanings, who extends contextual operations (based on type shift-
and semantic change, where meanings within a linguis- ing) into the lexicon. Thus meanings are generated “on
tic community change over time, and qualia or subjective the fly” (as you go), based on finite context.
experience. Another issue not addressed by the nativist
model was how perceptual cues are combined in thought,
e.g. in mental rotation.[7] 56.4 Prototype theory
This view of semantics, as an innate finite meaning
inherent in a lexical unit that can be composed to Another set of concepts related to fuzziness in seman-
generate meanings for larger chunks of discourse, is tics is based on prototypes. The work of Eleanor Rosch
now being fiercely debated in the emerging domain of in the 1970s led to a view that natural categories are not
cognitive linguistics[8] and also in the non-Fodorian camp characterizable in terms of necessary and sufficient con-
in philosophy of language.[9] The challenge is motivated ditions, but are graded (fuzzy at their boundaries) and in-
by: consistent as to the status of their constituent members.
One may compare it with Jung's archetype, though the
• factors internal to language, such as the problem of concept of archetype sticks to static concept. Some post-
resolving indexical or anaphora (e.g. this x, him, last structuralists are against the fixed or static meaning of the
week). In these situations context serves as the input, words. Derrida, following Nietzsche, talked about slip-
but the interpreted utterance also modifies the con- pages in fixed meanings.
text, so it is also the output. Thus, the interpretation
Systems of categories are not objectively out there in
is necessarily dynamic and the meaning of sentences
the world but are rooted in people’s experience. These
is viewed as contexts changing potentials instead of
categories evolve as learned concepts of the world –
propositions.
meaning is not an objective truth, but a subjective con-
• factors external to language, i.e. language is not a set struct, learned from experience, and language arises out
of labels stuck on things, but “a toolbox, the impor- of the “grounding of our conceptual systems in shared
tance of whose elements lie in the way they function embodiment and bodily experience”.[13] A corollary of
rather than their attachments to things.”[9] This view this is that the conceptual categories (i.e. the lexicon)
reflects the position of the later Wittgenstein and his will not be identical for different cultures, or indeed, for
famous game example, and is related to the positions every individual in the same culture. This leads to an-
of Quine, Davidson, and others. other debate (see the Sapir–Whorf hypothesis or Eskimo
words for snow).
A concrete example of the latter phenomenon is se-
mantic underspecification – meanings are not complete
without some elements of context. To take an exam- 56.5 Theories in semantics
ple of one word, red, its meaning in a phrase such as
red book is similar to many other usages, and can be
viewed as compositional.[10] However, the colours im- 56.5.1 Model theoretic semantics
plied in phrases such as red wine (very dark), and red hair
(coppery), or red soil, or red skin are very different. In- Main article: formal semantics (linguistics)
deed, these colours by themselves would not be called red
by native speakers. These instances are contrastive, so red Originates from Montague’s work (see above). A highly
wine is so called only in comparison with the other kind formalized theory of natural language semantics in which
of wine (which also is not white for the same reasons). expressions are assigned denotations (meanings) such as
This view goes back to de Saussure: individuals, truth values, or functions from one of these to
another. The truth of a sentence, and more interestingly,
Each of a set of synonyms like redouter ('to its logical relation to other sentences, is then evaluated
dread'), craindre ('to fear'), avoir peur ('to be relative to a model.
318 CHAPTER 56. SEMANTICS
Terms such as semantic network and semantic data model • Computational semantics
are used to describe particular types of data model char-
• Discourse representation theory
acterized by the use of directed graphs in which the ver-
tices denote concepts or entities in the world, and the arcs • General semantics
denote relationships between them.
• Generative semantics
The Semantic Web refers to the extension of the World
Wide Web via embedding added semantic metadata, us- • Hermeneutics
ing semantic data modelling techniques such as Resource
Description Framework (RDF) and Web Ontology Lan- • Natural semantic metalanguage
guage (OWL).
• Onomasiology
• Phono-semantic matching
56.7 Psychology
• Pragmatic maxim
In psychology, semantic memory is memory for meaning • Pragmaticism
– in other words, the aspect of memory that preserves
only the gist, the general significance, of remembered • Pragmatism
experience – while episodic memory is memory for the
• Problem of universals
ephemeral details – the individual features, or the unique
particulars of experience. The term 'episodic memory' • Semantic change or progression
was introduced by Tulving and Schacter in the context
of 'declarative memory' which involved simple associa- • Semantic class
tion of factual or objective information concerning its ob-
ject. Word meaning is measured by the company they • Semantic feature
keep, i.e. the relationships among words themselves in • Semantic field
a semantic network. The memories may be transferred
intergenerationally or isolated in one generation due to a • Semantic lexicon
cultural disruption. Different generations may have dif-
ferent experiences at similar points in their own time- • Semantic primes
lines. This may then create a vertically heterogeneous
• Semantic property
semantic net for certain words in an otherwise homoge-
[20]
neous culture. In a network created by people analyz- • Sememe
ing their understanding of the word (such as Wordnet)
the links and decomposition structures of the network are • Semiosis
few in number and kind, and include part of, kind of,
• Semiotics
and similar links. In automated ontologies the links are
computed vectors without explicit meaning. Various au- • SPL notation
tomated technologies are being developed to compute the
meaning of words: latent semantic indexing and support
vector machines as well as natural language processing, 56.8.2 Logic and mathematics
neural networks and predicate calculus techniques.
Ideasthesia is a psychological phenomenon in which ac- • Formal logic
tivation of concepts evokes sensory experiences. For ex- • Game semantics
ample, in synesthesia, activation of a concept of a letter
(e.g., that of the letter A) evokes sensory-like experiences • Model theory
(e.g., of red color).
• Gödel’s incompleteness theorems
• Proof-theoretic semantics
56.8 See also
• Semantic consequence
56.8.1 Linguistics and semiotics • Semantic theory of truth
56.8.3 Computer science [7] Barsalou, L.; Perceptual Symbol Systems, Behavioral and
Brain Sciences, 22(4), 1999
• Formal semantics of programming languages
[8] Langacker, Ronald W. (1999). Grammar and Conceptu-
• Knowledge representation alization. Berlin/New York: Mouton de Gruyer. ISBN
3-11-016603-8.
• Semantic networks
[9] Peregrin, Jaroslav (2003). Meaning: The Dynamic Turn.
• Semantic transversal Current Research in the Semantics/Pragmatics Interface.
London: Elsevier.
• Semantic analysis
[10] Gärdenfors, Peter (2000). Conceptual Spaces: The Ge-
• Semantic compression ometry of Thought. MIT Press/Bradford Books. ISBN
978-0-585-22837-2.
• Semantic HTML
[11] de Saussure, Ferdinand (1916). The Course of General
• Semantic integration Linguistics (Cours de linguistique générale).
• Semantic interpretation [12] Matilal, Bimal Krishna (1990). The Word and the World:
India’s Contribution to the Study of Language. Oxford.
• Semantic link The Nyaya and Mimamsa schools in Indian vyākaraṇa tra-
dition conducted a centuries-long debate on whether sen-
• Semantic reasoner tence meaning arises through composition on word mean-
ings, which are primary; or whether word meanings are
• Semantic service oriented architecture obtained through analysis of sentences where they appear.
(Chapter 8).
• Semantic spectrum
[13] Lakoff, George; Johnson, Mark (1999). Philosophy in the
• Semantic unification
Flesh: The embodied mind and its challenge to Western
• Semantic Web thought. Chapter 1. New York, NY: Basic Books. OCLC
93961754.
[1] σημαντικός. Liddell, Henry George; Scott, Robert; A [17] Nerbonne, J.; The Handbook of Contemporary Seman-
Greek–English Lexicon at the Perseus Project tic Theory (ed. Lappin, S.), Blackwell Publishing, Cam-
bridge, MA, 1996
[2] The word is derived from the Ancient Greek word ση-
μαντικός (semantikos), “related to meaning, significant”, [18] Euzenat, Jerome. Ontology Matching. Springer-Verlag
from σημαίνω semaino, “to signify, to indicate”, which is Berlin Heidelberg, 2007, p. 36
from σῆμα sema, “sign, mark, token”. The plural is used
[19] Nielson, Hanne Riis; Nielson, Flemming (1995). Seman-
in analogy with words similar to physics, which was in the
tics with Applications, A Formal Introduction (1st ed.).
neuter plural in Ancient Greek and meant “things relating
Chicester, England: John Wiley & Sons. ISBN 0-471-
to nature”.
92980-8.
[3] Chambers Biographical Dictionary,5e.1990,p.202
[20] Giannini, A. J.; Semiotic and Semantic Implications of
[4] Neurath, Otto; Carnap, Rudolf; Morris, Charles F. W. “Authenticity”, Psychological Reports, 106(2):611–612,
(Editors) (1955). International Encyclopedia of Unified 2010
Science. Chicago, IL: University of Chicago Press.
SOAP
This article is about the computer network protocol. For generated data comes in a standardized machine-parsable
surfactants use for cleaning, see Soap. For other uses, format, the requesting application can then integrate it di-
see Soap (disambiguation). rectly.
The SOAP architecture consists of several layers of spec-
SOAP (Simple Object Access Protocol) is a protocol ifications for:
specification for exchanging structured information in the
implementation of web services in computer networks. It • message format
uses XML Information Set for its message format, and re-
lies on application layer protocols, most often Hypertext • Message Exchange Patterns (MEP)
Transfer Protocol (HTTP) or Simple Mail Transfer Pro- • underlying transport protocol bindings
tocol (SMTP), for message negotiation and transmission.
• message processing models
• protocol extensibility
57.1 Characteristics
SOAP evolved as a successor of XML-RPC, though
SOAP provides the Messaging Protocol layer of a web it borrows its transport and interaction neutrality and
services protocol stack for web services. It is XML-based the envelope/header/body from elsewhere (probably from
protocol consisting of three parts: WDDX).
322
57.4. SOAP BUILDING BLOCKS 323
on Web Services Description Language (WSDL), XML • SOAP receiver – a SOAP node that accepts a SOAP
schema and Universal Description Discovery and Integra- message
tion (UDDI). These different services, especially UDDI,
have proved to be of far less interest, but an appreciation • SOAP message path – the set of SOAP nodes through
of them gives a more complete understanding of the ex- which a single SOAP message passes
pected role of SOAP compared to how web services have
actually evolved. • Initial SOAP sender (Originator) – the SOAP sender
that originates a SOAP message at the starting point
of a SOAP message path
57.3 Specification
• SOAP intermediary – a SOAP intermediary is both a
SOAP receiver and a SOAP sender and is targetable
from within a SOAP message. It processes the
SOAP header blocks targeted at it and acts to for-
ward a SOAP message towards an ultimate SOAP
receiver.
Software
For other uses, see Software (disambiguation). documentation or digital media. Computer hardware
Computer software, or simply software, is that part and software require each other and neither can be
realistically used on its own.
At the lowest level, executable code consists of
machine language instructions specific to an individual
User processor—typically a central processing unit (CPU). A
machine language consists of groups of binary values sig-
nifying processor instructions that change the state of the
computer from its preceding state. For example, an in-
struction may change the value stored in a particular stor-
age location in the computer—an effect that is not di-
rectly observable to the user. An instruction may also
Application Software (indirectly) cause something to appear on a display of the
computer system—a state change which should be visi-
ble to the user. The processor carries out the instructions
in the order they are provided, unless it is instructed to
“jump” to a different instruction, or interrupted.
The majority of software is written in high-level program-
Operating System ming languages that are easier and more efficient for pro-
grammers, meaning closer to a natural language.[1] High-
level languages are translated into machine language us-
ing a compiler or an interpreter or a combination of the
two. Software may also be written in a low-level assembly
language, essentially, a vaguely mnemonic representation
of a machine language using a natural language alpha-
Hardware bet, which is translated into machine language using an
assembler.
A diagram showing how the user interacts with application soft- 58.1 History
ware on a typical desktop computer. The application software
layer interfaces with the operating system, which in turn commu-
nicates with the hardware. The arrows indicate information Main article: History of software
of a computer system that consists of encoded informa- An outline (algorithm) for what would have been the first
tion or computer instructions, in contrast to the physical piece of software was written by Ada Lovelace in the
hardware from which the system is built. 19th century, for the planned Analytical Engine. How-
The term “software” was first proposed by Alan Turing ever, neither the Analytical Engine nor any software for
and used in this sense by John W. Tukey in 1957. In it were ever created
computer science and software engineering, computer The first theory about software—prior to creation of com-
software is all information processed by computer sys- puters as we know them today—was proposed by Alan
tems, programs and data. Turing in his 1935 essay Computable numbers with an ap-
Computer software includes computer programs, plication to the Entscheidungsproblem (decision problem).
libraries and related non-executable data, such as online This eventually led to the creation of the twin academic
326
58.2. TYPES OF SOFTWARE 327
fields of computer science and software engineering, • Utilities, which are computer programs de-
which both study software and its creation. Computer signed to assist users in the maintenance and
science is more theoretical (Turing’s essay is an exam- care of their computers.
ple of computer science), whereas software engineering
focuses on more practical concerns. • Malicious software or malware, which is software
that is developed to harm and disrupt computers.
However, prior to 1946, software as we now understand As such, malware is undesirable. Malware is closely
it—programs stored in the memory of stored-program associated with computer-related crimes, though
digital computers—did not yet exist. The very first elec- some malicious programs may have been designed
tronic computing devices were instead rewired in order as practical jokes.
to “reprogram” them.
Programming tools are also software in the form of • User-written software: End-user development tai-
programs or applications that software developers (also lors systems to meet users’ specific needs. User soft-
known as programmers, coders, hackers or software en- ware include spreadsheet templates and word pro-
gineers) use to create, debug, maintain (i.e. improve or cessor templates. Even email filters are a kind of
fix), or otherwise support software. Software is written user software. Users create this software themselves
in one or more programming languages; there are many and often overlook how important it is. Depend-
programming languages in existence, and each has at least ing on how competently the user-written software
one implementation, each of which consists of its own has been integrated into default application pack-
set of programming tools. These tools may be relatively ages, many users may not be aware of the distinction
self-contained programs such as compilers, debuggers, between the original packages, and what has been
interpreters, linkers, and text editors, that can be com- added by co-workers.
bined together to accomplish a task; or they may form
an integrated development environment (IDE), which
combines much or all of the functionality of such self-
58.3.2 Execution
contained tools. IDEs may do this by either invoking
Main article: Execution (computing)
the relevant individual tools or by re-implementing their
functionality in a new way. An IDE can make it easier to
do specific tasks, such as searching in files in a particular Computer software has to be “loaded” into the computer’s
project. Many programming language implementations storage (such as the hard drive or memory). Once the
provide the option of using both individual tools or an software has loaded, the computer is able to execute the
IDE. software. This involves passing instructions from the
application software, through the system software, to
the hardware which ultimately receives the instruction
as machine code. Each instruction causes the computer
58.3 Software topics to carry out an operation—moving data, carrying out a
computation, or altering the control flow of instructions.
58.3.1 Architecture Data movement is typically from one place in memory
to another. Sometimes it involves moving data between
See also: Software architecture memory and registers which enable high-speed data ac-
cess in the CPU. Moving data, especially large amounts
Users often see things differently from programmers. of it, can be costly. So, this is sometimes avoided by using
People who use modern general purpose computers (as “pointers” to data instead. Computations include simple
opposed to embedded systems, analog computers and operations such as incrementing the value of a variable
supercomputers) usually see three layers of software per- data element. More complex computations may involve
forming a variety of tasks: platform, application, and user many operations and data elements together.
58.4. DESIGN AND IMPLEMENTATION 329
58.3.3 Quality and reliability termed "commercial software", which can only be
legally used on purchase of a license.
Main articles: Software quality, Software testing, and
Software reliability Open source software, on the other hand, comes with a
free software license, granting the recipient the rights to
Software quality is very important, especially for modify and redistribute the software.
commercial and system software like Microsoft Office,
Microsoft Windows and Linux. If software is faulty
58.3.5 Patents
(buggy), it can delete a person’s work, crash the com-
puter and do other unexpected things. Faults and errors Main articles: Software patent and Software patent
are called "bugs" which are often discovered during alpha debate
and beta testing. Software is often also a victim to what
is known as software aging, the progressive performance
degradation resulting from a combination of unseen bugs. Software patents, like other types of patents, are theo-
retically supposed to give an inventor an exclusive, time-
Many bugs are discovered and eliminated (debugged) limited license for a detailed idea (e.g. an algorithm) on
through software testing. However, software testing how to implement a piece of software, or a component
rarely—if ever—eliminates every bug; some program- of a piece of software. Ideas for useful things that soft-
mers say that “every program has at least one more bug” ware could do, and user requirements, are not supposed
(Lubarsky’s Law).[4] In the waterfall method of software to be patentable, and concrete implementations (i.e. the
development, separate testing teams are typically em- actual software packages implementing the patent) are
ployed, but in newer approaches, collectively termed agile not supposed to be patentable either—the latter are al-
software development, developers often do all their own ready covered by copyright, generally automatically. So
testing, and demonstrate the software to users/clients reg- software patents are supposed to cover the middle area,
ularly to obtain feedback. Software can be tested through between requirements and concrete implementation. In
unit testing, regression testing and other methods, which some countries, a requirement for the claimed invention
are done manually, or most commonly, automatically, to have an effect on the physical world may also be part of
since the amount of code to be tested can be quite large. the requirements for a software patent to be held valid—
For instance, NASA has extremely rigorous software test- although since all useful software has effects on the phys-
ing procedures for many operating systems and commu- ical world, this requirement may be open to debate.
nication functions. Many NASA-based operations inter-
act and identify each other through command programs. Software patents are controversial in the software indus-
This enables many people who work at NASA to check try with many people holding different views about them.
and evaluate functional systems overall. Programs con- One of the sources of controversy is that the aforemen-
taining command software enable hardware engineering tioned split between initial ideas and patent does not seem
and system operations to function much easier together. to be honored in practice by patent lawyers—for exam-
ple the patent for Aspect-Oriented Programming (AOP),
which purported to claim rights over any programming
58.3.4 License tool implementing the idea of AOP, howsoever imple-
mented. Another source of controversy is the effect on
Main article: Software license innovation, with many distinguished experts and compa-
nies arguing that software is such a fast-moving field that
software patents merely create vast additional litigation
The software’s license gives the user the right to use the
costs and risks, and actually retard innovation. In the case
software in the licensed environment, and in the case of
of debates about software patents outside the US, the ar-
free software licenses, also grants other rights such as the
gument has been made that large American corporations
right to make copies.
and patent lawyers are likely to be the primary beneficia-
Proprietary software can be divided into two types: ries of allowing or continue to allow software patents.
time than designing and developing Microsoft Notepad Non-profit software organizations include the Free Soft-
because the latter has much more basic functionality. ware Foundation, GNU Project and Mozilla Foundation.
Software is usually designed and created (a.k.a. Software standard organizations like the W3C, IETF de-
coded/written/programmed) in integrated development velop recommended software standards such as XML,
environments (IDE) like Eclipse, IntelliJ and Microsoft HTTP and HTML, so that software can interoperate
Visual Studio that can simplify the process and compile through these standards.
the software (if applicable). As noted in a different Other well-known large software companies include
section, software is usually created on top of existing Oracle, Novell, SAP, Symantec, Adobe Systems, and
software and the application programming interface Corel, while small companies often provide innovation.
(API) that the underlying software provides like GTK+,
JavaBeans or Swing. Libraries (APIs) can be categorized
by their purpose. For instance, the Spring Framework 58.6 See also
is used for implementing enterprise applications, the
Windows Forms library is used for designing graphical
• Software release life cycle
user interface (GUI) applications like Microsoft Word,
and Windows Communication Foundation is used for • List of software
designing web services. When a program is designed, it
relies upon the API. For instance, if a user is designing a • Software asset management
Microsoft Windows desktop application, he or she might
use the .NET Windows Forms library to design the
desktop application and call its APIs like Form1.Close() 58.7 References
and Form1.Show()[5] to close or open the application,
and write the additional operations him/herself that it [1] “Compiler construction”.
needs to have. Without these APIs, the programmer
needs to write these APIs him/herself. Companies [2] “System Software”. The University of Mississippi.
like Oracle and Microsoft provide their own APIs so [3] “Embedded Software—Technologies and Trends”. IEEE
that many applications are written using their software Computer Society. Retrieved May–June 2009. Check
libraries that usually have numerous APIs in them. date values in: |access-date= (help)
Data structures such as hash tables, arrays, and binary [4] “scripting intelligence book examples”.
trees, and algorithms such as quicksort, can be useful for
creating software. [5] “MSDN Library”. Retrieved 2010-06-14.
Computer software has special economic characteristics [6] v. Engelhardt, Sebastian (2008). “The Economic Prop-
that make its design, creation, and distribution different erties of Software”. Jena Economic Research Papers. 2
from most other economic goods.[6][7] (2008–045.).
A person who creates software is called a programmer, [7] Kaminsky, Dan (1999). “Why Open Source Is The Opti-
software engineer or software developer, terms that all mum Economic Paradigm for Software”.
have a similar meaning. More informal terms for pro-
grammer also exist such as “coder” and "hacker" – al-
though use of the latter word may cause confusion, be- 58.8 External links
cause it is more often used to mean someone who illegally
breaks into computer systems. • Software at DMOZ
In computer science and automata theory, the state of a memory. The contents of these memory locations, at any
digital logic circuit or computer program is a technical given point in the program’s execution, is called the pro-
term for all the stored information, at a given instant in gram’s state.[4][5][6]
time, to which the circuit or program has access.[1] The
Imperative programming is a programming paradigm
output of a digital circuit or computer program at any (way of designing a programming language) that de-
time is completely determined by its current inputs and
scribes computation in terms of the program state and
its state. statements that change the program state. In contrast,
in declarative programming languages the program de-
scribes the desired results, and doesn't specify changes to
59.1 Digital logic circuit state the state directly.
A more specialized definition of state is used in some
Digital logic circuits can be divided into two types: computer programs that operate serially (sequentially) on
combinational logic, whose output signals are dependent streams of data, such as parsers, firewalls, communication
only on its present input signals, and sequential logic, protocols and encryption programs. Serial programs op-
whose outputs are a function of both the current inputs erate on the incoming data characters or packets sequen-
and the past history of inputs.[2] In sequential logic, in- tially, one at a time. In some of these programs, informa-
formation from past inputs is stored in electronic mem- tion about previous data characters or packets received is
ory elements, such as flip-flops and latches. The stored stored in variables and used to affect the processing of
contents of these memory elements, at a given point in the current character or packet. This is called a "stateful
time, is collectively referred to as the circuit’s "state" and
protocol" and the data carried over from the previous pro-
contains all the information about the past to which the cessing cycle is called the “state”. In others, the pro-
circuit has access.[3] gram has no information about the previous data stream
For example, the state of a microprocessor (computer and starts “fresh” with each data input; this is called a
chip) is the contents of all the memory elements in it: "stateless protocol".
the accumulators, storage registers, data caches, and flags.
When computers such as laptops go into a "hibernation"
mode to save energy by shutting down the processor, the
state of the processor is stored on the computer’s disk, so
it can be restored when the computer comes out of hiber-
nation, and the processor can take up operations where it
left off. 59.3 Finite state machines
Since each binary memory element, such as a flip-flop,
has only two possible states, “one” or “zero”, and there
is a finite number of memory elements, a digital circuit The output of a sequential circuit or computer program
has only a certain finite number of possible states. If Nat any time is completely determined by its current inputs
is the number of binary memory elements in the circuit, and current state. Since each binary memory element has
the maximum number of states a circuit can have is 2N . only two possible states, 0 or 1, the total number of dif-
ferent states a circuit can assume is finite, and fixed by the
number of memory elements. If there are N binary mem-
ory elements, a digital circuit can have at most 2N distinct
59.2 Program state states. The concept of state is formalized in an abstract
mathematical model of computation called a finite state
Similarly, a computer program stores data in variables, machine, used to design both sequential digital circuits
which represent storage locations in the computer’s and computer programs.
331
332 CHAPTER 59. STATE (COMPUTER SCIENCE)
59.6 References
[1] Harris, David Money; Sarah L. Harris (2007). Digital
Design and Computer Architecture. USA: Morgan Kauf-
mann. p. 103. ISBN 0123704979.
[6] Prata, Stephen Prata (2004). C Primer Plus, 5th Ed. Pear-
son Education. pp. 113–114. ISBN 0132713608.
Chapter 60
Syntax
For other uses, see Syntax (disambiguation). be known as “traditional grammar” began with the work
“Sentence structure” redirects here. For sentence types of Dionysius Thrax.
in traditional grammar, see Sentence clause structure. For centuries, work in syntax was dominated by a frame-
work known as grammaire générale, first expounded in
In linguistics, syntax (/ˈsɪnˌtæks/[1][2] ) is the set of rules, 1660 by Antoine Arnauld in a book of the same title.
principles, and processes that govern the structure of This system took as its basic premise the assumption that
sentences in a given language, specifically word order. language is a direct reflection of thought processes and
The term syntax is also used to refer to the study of such therefore there is a single, most natural way to express a
principles and processes.[3] The goal of many syntacti- thought.
cians is to discover the syntactic rules common to all lan- However, in the 19th century, with the development of
guages. historical-comparative linguistics, linguists began to real-
In mathematics, syntax refers to the rules governing the ize the sheer diversity of human language and to question
behavior of mathematical systems, such as formal lan- fundamental assumptions about the relationship between
guages used in logic. (See logical syntax.) language and logic. It became apparent that there was no
such thing as the most natural way to express a thought,
and therefore logic could no longer be relied upon as a
basis for studying the structure of language.
60.1 Etymology
The Port-Royal grammar modeled the study of syntax
upon that of logic. (Indeed, large parts of the Port-
The word syntax comes from Ancient Greek: σύνταξις
Royal Logic were copied or adapted from the Grammaire
“coordination”, which consists of σύν syn, “together,” and
générale.[5] ) Syntactic categories were identified with log-
τάξις táxis, “an ordering”.
ical ones, and all sentences were analyzed in terms of
“Subject – Copula – Predicate.” Initially, this view was
adopted even by the early comparative linguists such as
60.2 Sequencing of subject, verb, Franz Bopp.
and object The central role of syntax within theoretical linguistics
became clear only in the 20th century, which could rea-
sonably be called the “century of syntactic theory” as far
A basic feature of a language’s syntax is the sequence as linguistics is concerned. (For a detailed and critical
in which the subject (S), verb (V), and object (O) usu- survey of the history of syntax in the last two centuries,
ally appear in sentences. Over 85% of languages usually see the monumental work by Giorgio Graffi (2001).)[6]
place the subject first, either in the sequence SVO or the
sequence SOV. The other possible sequences are VSO,
VOS, OVS, and OSV, the last three of which are rare.
60.4 Modern theories
There are a number of theoretical approaches to the
60.3 Early history discipline of syntax. One school of thought, founded
in the works of Derek Bickerton,[7] sees syntax as a
Works on grammar were written long before modern syn- branch of biology, since it conceives of syntax as the
tax came about; the Aṣṭādhyāyī of Pāṇini (c. 4th century study of linguistic knowledge as embodied in the human
BC) is often cited as an example of a premodern work mind. Other linguists (e.g., Gerald Gazdar) take a more
that approaches the sophistication of a modern syntactic Platonistic view, since they regard syntax to be the study
theory.[4] In the West, the school of thought that came to of an abstract formal system.[8] Yet others (e.g., Joseph
333
334 CHAPTER 60. SYNTAX
Greenberg) consider syntax a taxonomical device to reach Categorial grammar is an approach that attributes the syn-
broad generalizations across languages. tactic structure not to rules of grammar, but to the proper-
ties of the syntactic categories themselves. For example,
rather than asserting that sentences are constructed by a
60.4.1 Generative grammar rule that combines a noun phrase (NP) and a verb phrase
(VP) (e.g., the phrase structure rule S → NP VP), in cate-
Main article: Generative grammar gorial grammar, such principles are embedded in the cat-
egory of the head word itself. So the syntactic category
The hypothesis of generative grammar is that language for an intransitive verb is a complex formula representing
is a structure of the human mind. The goal of gener- the fact that the verb acts as a function word requiring an
ative grammar is to make a complete model of this in- NP as an input and produces a sentence level structure as
ner language (known as i-language). This model could an output. This complex category is notated as (NP\S)
be used to describe all human language and to predict instead of V. NP\S is read as “a category that searches
the grammaticality of any given utterance (that is, to pre- to the left (indicated by \) for an NP (the element on the
dict whether the utterance would sound correct to native left) and outputs a sentence (the element on the right).”
speakers of the language). This approach to language was The category of transitive verb is defined as an element
pioneered by Noam Chomsky. Most generative theories that requires two NPs (its subject and its direct object) to
(although not all of them) assume that syntax is based form a sentence. This is notated as (NP/(NP\S)) which
upon the constituent structure of sentences. Generative means “a category that searches to the right (indicated by
grammars are among the theories that focus primarily /) for an NP (the object), and generates a function (equiv-
on the form of a sentence, rather than its communicative alent to the VP) which is (NP\S), which in turn represents
function. a function that searches to the left for an NP and produces
a sentence.”
Among the many generative theories of linguistics, the
Chomskyan theories are: Tree-adjoining grammar is a categorial grammar that
adds in partial tree structures to the categories.
• Transformational grammar (TG) (Original theory of
generative syntax laid out by Chomsky in Syntactic 60.4.3 Dependency grammar
Structures in 1957)[9]
• Government and binding theory (GB) (revised the- Main article: Dependency grammar
ory in the tradition of TG developed mainly by Dependency grammar is an approach to sentence struc-
Chomsky in the 1970s and 1980s)[10]
• Arc pair grammar A syntactic parse of “Alfred spoke” under the dependency for-
malism
• Generalized phrase structure grammar (GPSG; now
largely out of date) ture where syntactic units are arranged according to the
dependency relation, as opposed to the constituency re-
• Generative semantics (now largely out of date) lation of phrase structure grammars. Dependencies are
directed links between words. The (finite) verb is seen as
• Head-driven phrase structure grammar (HPSG)
the root of all clause structure and all the other words in
• Lexical functional grammar (LFG) the clause are either directly or indirectly dependent on
this root. Some prominent dependency-based theories of
• Nanosyntax syntax are:
• Relational grammar (RG) (now largely out of date)
• Recursive categorical syntax, or Algebraic syntax
• Adjective • Determiner
• Adjunct • Do-support
• Adverb • Ellipsis
• Anaphora • Endocentric
• Answer ellipsis • Exceptional case-marking
336 CHAPTER 60. SYNTAX
• Expletive • Periphrasis
• Extraposition • Person
• Finite verb • Personal pronoun
• Function word • Pied-piping
• Gapping • Phrasal verb
• Gender • Phrase
• Gerund • Phrase structure grammar
• Government • Plural
• Head • Predicate
• Head marking • Predicative expression
• Infinitive • Preposition and postposition
• Inverse copular construction • Pronoun
• Inversion • Pseudogapping
• Lexical item • Raising
• m-command • Relation (Grammatical relation)
• Measure word (classifier) • Restrictiveness
• Merge • Right node raising
• Modal particle • Sandhi
• Modal verb • Scrambling
• Modifier • Selection
• Mood • Sentence
• Movement • Separable verb
• Movement paradox • Shifting
• Nanosyntax • Singular
• Negative inversion • Sluicing
• Non-configurational language • Small clause
• Non-finite verb • Stripping
• Noun • Subcategorization
• Noun ellipsis • Subject
• Noun phrase • Subject-auxiliary inversion
• Number • Subject-verb inversion
• Object • Subordination
• Open class word • Superlative
• Parasitic gap • Tense
• Part of speech • Topicalization
• Particle • Tough movement
60.7. REFERENCES 337
[3] Chomsky, Noam (2002) [1957]. Syntactic Structures. p. • Tesnière, Lucien 1969. Éleménts de syntaxe struc-
11. turale. 2nd edition. Paris: Klincksieck.
[4] Fortson IV, Benjamin W. (2004). Indo-European Lan-
guage and Culture: An Introduction. Blackwell. p. 186.
ISBN 978-1405188968. [The Aṣṭādhyāyī ] is a highly pre- 60.8 Further reading
cise and thorough description of the structure of Sanskrit
somewhat resembling modern generative grammar...[it] • Martin Everaert; Henk Van Riemsdijk; Rob Goede-
remained the most advanced linguistic analysis of any mans; Bart Hollebrandse, eds. (2006). The Black-
kind until the twentieth century. well companion to syntax. Blackwell. ISBN 978-1-
[5] Arnauld, Antoine (1683). La logique (5th ed.). Paris: 4051-1485-1. 5 Volumes; 77 case studies of syntac-
G. Desprez. p. 137. Nous avons emprunté...ce que tic phenomena.
nous avons dit...d'un petit Livre...sous le titre de Grammaire
• Isac, Daniela; Charles Reiss (2013). I-language:
générale.
An Introduction to Linguistics as Cognitive Science,
[6] Giorgio, Graffi (2001). 200 Years of Syntax: A Critical 2nd edition. Oxford University Press. ISBN 978-
Survey (googlebook preview). John Benjamins Publish- 0199660179.
ing.
• Moravcsik, Edith A. (2006). An introduction to syn-
[7] See Bickerton, Derek (1990). Language and Species. tax: fundamentals of syntactic analysis. Contin-
University of Chicago Press. ISBN 0-226-04610-9. and,
uum International Publishing Group. ISBN 978-
for more recent advances, Derek Bickerton; Eörs Szath-
máry, eds. (2009). Biological foundations and origin of
0-8264-8945-6. Attempts to be a theory-neutral
syntax. MIT Press. ISBN 978-0-262-01356-7. introduction. The companion Edith A. Moravcsik
(2006). An introduction to syntactic theory. Contin-
[8] Ted Briscoe, 2 May 2001, Interview with Gerald Gazdar. uum International Publishing Group. ISBN 978-0-
Retrieved 2008-06-04. 8264-8943-2. surveys the major theories. Jointly
[9] Chomsky, Noam. 1957. Syntactic Structures. The reviewed in The Canadian Journal of Linguistics
Hague/Paris: Mouton, p. 15. 54(1), March 2009, pp. 172–175
[10] Chomsky, Noam (1981/1993). Lectures on Government • Müller, Stefan (2016). Grammatical theory: From
and Binding: The Pisa Lectures. Mouton de Gruyter. transformational grammar to constraint-based ap-
proaches. Berlin: Language Science Press. ISBN
[11] Chomsky, Noam (1995). The Minimalist Program. MIT
Press. 978-3-944675-21-3.
[12] Concerning Tesnière’s rejection of the binary division of • Brian Roark; Richard William Sproat (2007). Com-
the clause into subject and predicate and in favor of the putational approaches to morphology and syntax.
verb as the root of all structure, see Tesnière (1969:103– Oxford University Press. ISBN 978-0-19-927477-
105). 2. part II: Computational approaches to syntax.
338 CHAPTER 60. SYNTAX
Technical standard
This article is about technical standards. For other uses, For example, there are detailed standard operating
see Standard. procedures for operation of a nuclear power plant.[3]
339
340 CHAPTER 61. TECHNICAL STANDARD
• Regional standard: see standards of the Regional [2] “Standard Specifications”. Oregon.gov. Oregon.gov. Re-
standards organizations. For example, CEN stan- trieved 20 August 2015.
dards.
[3] “Operational Limits and Conditions and Operating Pro-
• International standard: see International standards cedures for Nuclear Power Plants Safety Guide”. Inter-
organizations Example, ISO and ASTM Interna- national Atomic Energy Association. IAEA. Retrieved 20
tional. August 2015.
61.4 Usage
The existence of a published standard does not imply that
it is always useful or correct. For example, if an item
complies with a certain standard, there is not necessarily
assurance that it is fit for any particular use. The people
who use the item or service (engineers, trade unions, etc.)
or specify it (building codes, government, industry, etc.)
have the responsibility to consider the available standards,
specify the correct one, enforce compliance, and use the
item correctly. Validation of suitability is necessary.
Standards often get reviewed, revised and updated on a
regular basis. It is critical that the most current version of
a published standard be used or referenced. The origina-
tor or standard writing body often has the current versions
listed on its web site.
In social sciences, including economics, a standard is use-
ful if it is a solution to a coordination problem: it emerges
from situations in which all parties realize mutual gains,
but only by making mutually consistent decisions. Ex-
amples:
61.6 References
[1] Example of TAPPI standards development regulations
Chapter 62
Telecommunication
Not to be confused with Teleconnection. intelligence of any nature by wire, radio, optical
Telecommunication is the transmission of signs, or other electromagnetic systems.[1][2] Telecommuni-
cation occurs when the exchange of information be-
tween communication participants includes the use of
technology. It is transmitted either electrically over phys-
ical media, such as cables, or via electromagnetic radia-
tion.[3][4][5][6][7][8] Such transmission paths are often di-
vided into communication channels which afford the ad-
vantages of multiplexing. The term is often used in its
plural form, telecommunications, because it involves
many different technologies.
Early means of communicating over a distance included
visual signals, such as beacons, smoke signals, semaphore
telegraphs, signal flags, and optical heliographs.[9] Other
examples of pre-modern long-distance communication
included audio messages such as coded drumbeats, lung-
blown horns, and loud whistles. 20th and 21st cen-
tury technologies for long-distance communication usu-
ally involve electrical and electromagnetic technolo-
Earth station at the satellite communication facility in Raisting, gies, such as telegraph, telephone, and teleprinter,
Bavaria, Germany networks, radio, microwave transmission, fiber optics,
and communications satellites.
A revolution in wireless communication began in the first
decade of the 20th century with the pioneering develop-
ments in radio communications by Guglielmo Marconi,
who won the Nobel Prize in Physics in 1909. Other
notable pioneering inventors and developers in the field
of electrical and electronic telecommunications include
Charles Wheatstone and Samuel Morse (inventors of
the telegraph), Alexander Graham Bell (inventor of the
telephone), Edwin Armstrong and Lee de Forest (inven-
tors of radio), as well as Vladimir K. Zworykin, John Lo-
gie Baird and Philo Farnsworth (some of the inventors of
television).
62.1 Etymology
The word telecommunication was adapted from the
French.[7] It is a compound of the Greek prefix tele-
Visualization from the Opte Project of the various routes through (τηλε-), meaning “distant”, and the Latin communicare,
a portion of the Internet meaning “to share”, and its written use was recorded in
1904 by the French engineer and novelist Édouard Es-
signals, messages, writings, images and sounds or taunié.[10][11] The prefix “tel” means “far, far off, op-
341
342 CHAPTER 62. TELECOMMUNICATION
erating over distance”... from Greek tele-, combining In 1792, Claude Chappe, a French engineer, built the first
form of tele “far off, afar, at or to a distance,” related fixed visual telegraphy system (or semaphore line) be-
to teleos (genitive telos) “end, goal, completion, result,” tween Lille and Paris.[15] However semaphore suffered
from PIE root *kwel-"; “tel” also means " “far” in space from the need for skilled operators and expensive tow-
and time”.[12] “Communication” was first used as an En- ers at intervals of ten to thirty kilometres (six to nine-
glish word in the late 14th century. It comes from Old teen miles). As a result of competition from the electri-
French comunicacion (14c., Modern French communi- cal telegraph, the last commercial line was abandoned in
cation), from Latin communicationem (nominative com- 1880.[16]
municatio), noun of action from past participle stem of
Homing pigeons have occasionally been used through-
communicare “to share, divide out; communicate, im- out history by different cultures. Pigeon post is thought
part, inform; join, unite, participate in,” literally “to make
to have Persians roots and was used by the Romans
common,” from communis”.[13] to aid their military. Frontinus said that Julius Caesar
used pigeons as messengers in his conquest of Gaul.[17]
The Greeks also conveyed the names of the victors
62.2 History at the Olympic Games to various cities using homing
pigeons.[18] In the early 19th century, the Dutch govern-
For more details on this topic, see History of telecom- ment used the system in Java and Sumatra. And in 1849,
munication. Paul Julius Reuter started a pigeon service to fly stock
prices between Aachen and Brussels, a service that op-
erated for a year until the gap in the telegraph link was
closed.[19]
62.2.1 Beacons and pigeons
62.2.2 Telegraph and telephone
miles (3 km), using water as the transmission medium.[27] of Communications of the ACM.[34][35]
In December 1901, Guglielmo Marconi established wire-
less communication between St. John’s, Newfoundland
(Canada) and Poldhu, Cornwall (England), earning him 62.3 Key concepts
the 1909 Nobel Prize in physics (which he shared with
Karl Braun).[28] However small-scale radio communica-
tion had already been demonstrated in 1893 by Nikola A number of key concepts reoccur throughout the liter-
Tesla in a presentation to the National Electric Light ature on modern telecommunication theory and systems.
Association.[29] Some of these concepts are discussed below.
Prior to social networking sites, technologies like short onset of World War II brought on the first explosion of in-
message service (SMS) and the telephone also had a sig- ternational broadcasting propaganda.[57] Countries, their
nificant impact on social interactions. In 2000, market governments, insurgents, terrorists, and militiamen have
research group Ipsos MORI reported that 81% of 15- to all used telecommunication and broadcasting techniques
24-year-old SMS users in the United Kingdom had used to promote propaganda.[57][58] Patriotic propaganda for
the service to coordinate social arrangements and 42% to political movements and colonization started the mid-
flirt.[52] 1930s. In 1936, the BBC broadcast propaganda to the
Arab World to partly counter similar broadcasts from
Italy, which also had colonial interests in North Africa.[57]
62.4.3 Other impacts
Modern insurgents, such as those in the latest Iraq war,
In cultural terms, telecommunication has increased the often use intimidating telephone calls, SMSs and the dis-
public’s ability to access music and film. With television, tribution of sophisticated videos of an attack on coali-
people can watch films they have not seen before in their tion troops within hours of the operation. “The Sunni
own home without having to travel to the video store or insurgents even have their own television station, Al-
cinema. With radio and the Internet, people can listen to Zawraa, which while banned by the Iraqi government,
music they have not heard before without having to travel still broadcasts from Erbil, Iraqi Kurdistan, even as coali-
to the music store. tion pressure has forced it to switch satellite hosts several
times.”[58]
Telecommunication has also transformed the way people
receive their news. A survey led in 2006 by the non-profit On 10 November 2014, President Obama recommended
Pew Internet and American Life Project found that when the Federal Communications Commission reclassify
just over 3,000 people living in the United States were broadband Internet service as a telecommunications ser-
asked where they got their news “yesterday”, more people vice in order to preserve net neutrality.[59][60]
said television or radio than newspapers. The results are
summarised in the following table (the percentages add up
to more than 100% because people were able to specify 62.6 Modern media
more than one source).[53]
Telecommunication has had an equally significant im- 62.6.1 Worldwide equipment sales
pact on advertising. TNS Media Intelligence reported
that in 2007, 58% of advertising expenditure in the According to data collected by Gartner[61][62] and Ars
United States was spent on mediums that depend upon Technica[63] sales of main consumer’s telecommunication
telecommunication.[54] The results are summarised in the equipment worldwide in millions of units was:
following table.
62.6.2 Telephone
62.5 Government
In a telephone network, the caller is connected to the per-
Many countries have enacted legislation which conforms son they want to talk to by switches at various telephone
to the International Telecommunication Regulations es- exchanges. The switches form an electrical connection
tablished by the International Telecommunication Union between the two users and the setting of these switches
(ITU), which is the “leading UN agency for information is determined electronically when the caller dials the
and communication technology issues.”[55] In 1947, at number. Once the connection is made, the caller’s
the Atlantic City Conference, the ITU decided to “af- voice is transformed to an electrical signal using a small
ford international protection to all frequencies registered microphone in the caller’s handset. This electrical signal
in a new international frequency list and used in confor- is then sent through the network to the user at the other
mity with the Radio Regulation.” According to the ITU’s end where it is transformed back into sound by a small
Radio Regulations adopted in Atlantic City, all frequen- speaker in that person’s handset.
cies referenced in the International Frequency Registra- The landline telephones in most residential homes are
tion Board, examined by the board and registered on the analog—that is, the speaker’s voice directly determines
International Frequency List “shall have the right to inter- the signal’s voltage. Although short-distance calls may be
national protection from harmful interference.”[56] handled from end-to-end as analog signals, increasingly
From a global perspective, there have been political telephone service providers are transparently converting
debates and legislation regarding the management of the signals to digital signals for transmission. The advan-
telecommunication and broadcasting. The history of tage of this is that digitized voice data can travel side-
broadcasting discusses some debates in relation to bal- by-side with data from the Internet and can be perfectly
ancing conventional communication such as printing and reproduced in long distance communication (as opposed
telecommunication such as radio broadcasting.[57] The to analog signals that are inevitably impacted by noise).
62.6. MODERN MEDIA 347
this includes the elimination of problems such as snowy an amplitude modulated subcarrier is used for stereo FM.
pictures, ghosting and other distortion. These occur be-
cause of the nature of analog transmission, which means
that perturbations due to noise will be evident in the final 62.6.4 Internet
output. Digital transmission overcomes this problem be-
cause digital signals are reduced to discrete values upon data unit layers
reception and hence small perturbations do not affect the
Application
final output. In a simplified example, if a binary message Data Network Process to Application
1011 was transmitted with signal amplitudes [1.0 0.0 1.0
Host Layers
1.0] and received with signal amplitudes [0.9 0.2 1.1 0.9] Presentation
Data Data Representation
it would still decode to the binary message 1011 — a per- and Encryption
fect reproduction of what was sent. From this example,
Session
a problem with digital transmissions can also be seen in Data Interhost Communication
that if the noise is great enough it can significantly alter
the decoded message. Using forward error correction a Transport
Segments End-to-End Connections
receiver can correct a handful of bit errors in the resulting and Reliability
Media Layers
Path Determination and
In digital television broadcasting, there are three com- Logical Addressing (IP)
dently of other protocols. This allows lower-level pro- ternet chat), BitTorrent (file sharing) and XMPP (instant
tocols to be customized for the network situation while messaging).
not changing the way higher-level protocols operate. A Voice over Internet Protocol (VoIP) allows data pack-
practical example of why this is important is because it ets to be used for synchronous voice communications.
allows an Internet browser to run the same code regard- The data packets are marked as voice type packets and
less of whether the computer it is running on is connected can be prioritized by the network administrators so that
to the Internet through an Ethernet or Wi-Fi connection. the real-time, synchronous conversation is less subject to
Protocols are often talked about in terms of their place contention with other types of data traffic which can be
in the OSI reference model (pictured on the right), which
delayed (i.e. file transfer or email) or buffered in advance
emerged in 1983 as the first step in an unsuccessful at- (i.e. audio and video) without detriment. That prioritiza-
tempt to build a universally adopted networking protocol
tion is fine when the network has sufficient capacity for all
suite.[88] the VoIP calls taking place at the same time and the net-
For the Internet, the physical medium and data link pro- work is enabled for prioritization i.e. a private corporate
tocol can vary several times as packets traverse the globe. style network, but the Internet is not generally managed
This is because the Internet places no constraints on what in this way and so there can be a big difference in the
physical medium or data link protocol is used. This leads quality of VoIP calls over a private network and over the
to the adoption of media and protocols that best suit the public Internet.[92]
local network situation. In practice, most intercontinen-
tal communication will use the Asynchronous Transfer
Mode (ATM) protocol (or a modern equivalent) on top 62.6.5 Local area networks and wide area
of optic fiber. This is because for most intercontinental networks
communication the Internet shares the same infrastruc-
ture as the public switched telephone network.
Despite the growth of the Internet, the characteristics
At the network layer, things become standardized with of local area networks (LANs)--computer networks that
the Internet Protocol (IP) being adopted for logical ad- do not extend beyond a few kilometers—remain distinct.
dressing. For the World Wide Web, these “IP addresses” This is because networks on this scale do not require all
are derived from the human readable form using the the features associated with larger networks and are of-
Domain Name System (e.g. 72.14.207.99 is derived from ten more cost-effective and efficient without them. When
www.google.com). At the moment, the most widely used they are not connected with the Internet, they also have
version of the Internet Protocol is version four but a move the advantages of privacy and security. However, pur-
to version six is imminent.[89] posefully lacking a direct connection to the Internet does
At the transport layer, most communication adopts ei- not provide assured protection from hackers, military
ther the Transmission Control Protocol (TCP) or the User forces, or economic powers. These threats exist if there
Datagram Protocol (UDP). TCP is used when it is es- are any methods for connecting remotely to the LAN.
sential every message sent is received by the other com- Wide area networks (WANs) are private computer net-
puter whereas UDP is used when it is merely desirable. works that may extend for thousands of kilometers. Once
With TCP, packets are retransmitted if they are lost and again, some of their advantages include privacy and secu-
placed in order before they are presented to higher layers. rity. Prime users of private LANs and WANs include
With UDP, packets are not ordered or retransmitted if armed forces and intelligence agencies that must keep
lost. Both TCP and UDP packets carry port numbers with their information secure and secret.
them to specify what application or process the packet
In the mid-1980s, several sets of communication proto-
should be handled by.[90] Because certain application-
cols emerged to fill the gaps between the data-link layer
level protocols use certain ports, network administrators
and the application layer of the OSI reference model.
can manipulate traffic to suit particular requirements. Ex-
These included Appletalk, IPX, and NetBIOS with the
amples are to restrict Internet access by blocking the traf-
dominant protocol set during the early 1990s being IPX
fic destined for a particular port or to affect the perfor-
due to its popularity with MS-DOS users. TCP/IP ex-
mance of certain applications by assigning priority.
isted at this point, but it was typically only used by large
Above the transport layer, there are certain protocols government and research facilities.[93]
that are sometimes used and loosely fit in the session
As the Internet grew in popularity and its traffic was re-
and presentation layers, most notably the Secure Sock-
quired to be routed into private networks, the TCP/IP
ets Layer (SSL) and Transport Layer Security (TLS) pro-
protocols replaced existing local area network technolo-
tocols. These protocols ensure that data transferred be-
[91] gies. Additional technologies, such as DHCP, allowed
tween two parties remains completely confidential. Fi-
TCP/IP-based computers to self-configure in the net-
nally, at the application layer, are many of the protocols
work. Such functions also existed in the AppleTalk/ IPX/
Internet users would be familiar with such as HTTP (web
NetBIOS protocol sets.[94]
browsing), POP3 (e-mail), FTP (file transfer), IRC (In-
Whereas Asynchronous Transfer Mode (ATM) or Multi-
350 CHAPTER 62. TELECOMMUNICATION
• List of telecommunications encryption terms [14] David Ross, The Spanish Armada, Britain Express, ac-
cessed October 2007.
• Nanonetwork
[15] Les Télégraphes Chappe, Cédrick Chatenet, l'Ecole Cen-
• New media trale de Lyon, 2003.
62.9. REFERENCES 351
[16] CCIT/ITU-T 50 Years of Excellence, International [38] ATIS Telecom Glossary 2000, ATIS Committee T1A1
Telecommunication Union, 2006. Performance and Signal Processing (approved by the
American National Standards Institute), 28 February
[17] Levi, Wendell (1977). The Pigeon. Sumter, S.C.: Levi 2001.
Publishing Co, Inc. ISBN 0853900132.
[39] Haykin, pp 344–403.
[18] Blechman, Andrew (2007). Pigeons-The fascinating saga
of the world’s most revered and reviled bird. St Lu- [40] Bluetooth Specification Version 2.0 + EDR (p 27), Blue-
cia, Queensland: University of Queensland Press. ISBN tooth, 2004.
9780702236419.
[41] Haykin, pp 88–126.
[19] “Chronology: Reuters, from pigeons to multimedia
merger” (Web article). Reuters. Retrieved 2008-02-21. [42] Worldwide Telecommunications Industry Revenues, In-
ternet Engineering Task Force, June 2010.
[20] William Brockedone. “Cooke and Wheatstone and the In-
vention of the Electric Telegraph”. Republished by The [43] Lenert, Edward (December 1998). “A Communica-
Museum of Science and Technology (Ottawa). tion Theory Perspective on Telecommunications Pol-
icy”. Journal of Communication. 48 (4): 3–23.
[21] The Electromagnetic Telegraph, J. B. Calvert, 19 May
doi:10.1111/j.1460-2466.1998.tb02767.x.
2004.
[22] The Atlantic Cable, Bern Dibner, Burndy Library Inc., [44] Mireille Samaan (April 2003). “The Effect of Income In-
1959 equality on Mobile Phone Penetration”. Boston Univer-
sity Honors thesis. Archived from the original (PDF) on
[23] Elisha Gray, Oberlin College Archives, Electronic Oberlin 14 February 2007. Retrieved 8 June 2007.
Group, 2006.
[45] Röller, Lars-Hendrik; Leonard Waverman (2001).
[24] Antonio Santi Giuseppe Meucci, Eugenii Katz. (Re- “Telecommunications Infrastructure and Eco-
trieved May, 2006 from http://chem.ch.huji.ac.il/ nomic Development: A Simultaneous Approach”.
~{}eugeniik/history/meucci.html) American Economic Review. 91 (4): 909–923.
doi:10.1257/aer.91.4.909. ISSN 0002-8282.
[25] Connected Earth: The telephone, BT, 2006.
[46] Qiang, Rossotto, 2009, Economic Impact of Broad-
[26] History of AT&T, AT&T, 2006.
band, http://siteresources.worldbank.org/EXTIC4D/
[27] James Bowman Lindsay, Macdonald Black, Dundee City Resources/IC4D_Broadband_35_50.pdf
Council, 1999.
[47] Riaz, Ali (1997). “The role of telecommunications in eco-
[28] Tesla Biography, Ljubo Vujovic, Tesla Memorial Society nomic growth: proposal for an alternative framework of
of New York, 1998. analysis”. Media, Culture & Society. 19 (4): 557–583.
doi:10.1177/016344397019004004.
[29] Tesla’s Radio Controlled Boat, Twenty First Century
Books, 2007. [48] “Digital Access Index (DAI)". itu.int. Retrieved 6 March
2008.
[30] The Pioneers, MZTV Museum of Television, 2006.
[49] World Telecommunication Development Report 2003,
[31] Philo Farnsworth, Neil Postman, TIME Magazine, 29 International Telecommunication Union, 2003.
March 1999
[50] Fischer, Claude S. "'Touch Someone': The Telephone
[32] George Stlibetz, Kerry Redshaw, 1996.
Industry Discovers Sociability.” Technology and Culture
[33] Hafner, Katie (1998). Where Wizards Stay Up Late: The 29.1 (January 1988): 32–61. JSTOR. Web. 4 October
Origins Of The Internet. Simon & Schuster. ISBN 0-684- 2009.
83267-4.
[51] “How do you know your love is real? Check Facebook”.
[34] Data transmission system, Olof Solderblom, PN CNN. 4 April 2008.
4,293,948, October 1974.
[52] I Just Text To Say I Love You, Ipsos MORI, September
[35] Ethernet: Distributed Packet Switching for Local Com- 2005.
puter Networks, Robert M. Metcalfe and David R. Boggs,
Communications of the ACM (pp 395-404, Vol. 19, No. [53] “Online News: For many home broadband users, the in-
5), July 1976. ternet is a primary news source” (PDF). Pew Internet
Project. 22 March 2006.
[36] Haykin, Simon (2001). Communication Systems (4th ed.).
John Wiley & Sons. pp. 1–3. ISBN 0-471-17869-1. [54] “100 Leading National Advertisers” (PDF). Advertising
Age. 23 June 2008. Retrieved 21 June 2009.
[37] Ambardar, Ashok (1999). Analog and Digital Signal Pro-
cessing (2nd ed.). Brooks/Cole Publishing Company. pp. [55] International Telecommunication Union : About ITU.
1–2. ISBN 0-534-95409-X. ITU. Accessed 21 July 2009. (PDF of regulation)
352 CHAPTER 62. TELECOMMUNICATION
[56] Codding, George A. Jr. "Jamming and the Protection of [77] HDV Technology Handbook, Sony, 2004.
Frequency Assignments". The American Journal of Inter-
national Law, Vol. 49, No. 3 (July , 1955), Published [78] Audio, Digital Video Broadcasting Project, 2003.
by: American Society of International Law. pp. 384–
388. Republished by JSTOR.org The American Journal [79] Status of DAB (USA), World DAB Forum, March 2005.
of International Law". Accessed 21 July 2009.
[80] Brian Stelter (13 June 2009). “Changeover to Digital TV
[57] Wood, James & Science Museum (Great Britain) "History Off to a Smooth Start”. New York Times.
of international broadcasting". IET 1994, Volume 1, p.2
of 258 ISBN 0-86341-302-1, ISBN 978-0-86341-302-5. [81] GE 72664 Portable AM/FM Radio, Amazon.com, June
Republished by Googlebooks. Accessed 21 July 2009. 2006.
[58] Garfield, Andrew. "The U.S. Counter-propaganda Failure
[82] DAB Products, World DAB Forum, 2006.
in Iraq", FALL 2007, The Middle East Quarterly, Volume
XIV: Number 4, Accessed 21 July 2009.
[83] Robert E. Kahn and Vinton G. Cerf, What Is The Internet
[59] Wyatt, Edward (10 November 2014). “Obama Asks (And What Makes It Work), December 1999. (specifi-
F.C.C. to Adopt Tough Net Neutrality Rules”. New York cally see footnote xv)
Times. Retrieved 15 November 2014.
[84] How Internet Infrastructure Works, HowStuffWorks.com,
[60] NYT Editorial Board (14 November 2014). “Why the 2007.
F.C.C. Should Heed President Obama on Internet Reg-
ulation”. New York Times. Retrieved 15 November 2014. [85] “The World’s Technological Capacity to Store, Com-
municate, and Compute Information”, Martin Hilbert
[61] Computer sales review, guardian.co.uk, 2009.
and Priscila López (2011), Science, 332(6025), 60–65;
[62] Mobile phone sales data, palminfocenter.com, 2009. free access to the study through here: martinhilbert.net/
WorldInfoCapacity.html
[63] PC early history, arstechnica.com, 2005.
[86] World Internet Users and Population Stats, internetworld-
[64] Gartner Says Top Six Vendors Drive Worldwide Mobile stats.com, 19 March 2007.
Phone Sales to 21% Growth in 2005, Gartner Group, 28
February 2006. [87] OECD Broadband Statistics, Organisation for Economic
[65] Africa Calling, Victor and Irene Mbarika, IEEE Spec- Co-operation and Development, December 2005.
trum, May 2006.
[88] History of the OSI Reference Model, The TCP/IP Guide
[66] Ten Years of GSM in Australia, Australia Telecommuni- v3.0, Charles M. Kozierok, 2005.
cations Association, 2003.
[89] Introduction to IPv6, Microsoft Corporation, February
[67] Milestones in AT&T History, AT&T Knowledge Ven- 2006.
tures, 2006.
[68] Optical fibre waveguide, Saleem Bhatti, 1995. [90] Stallings, pp 683–702.
[69] Fundamentals of DWDM Technology, CISCO Systems, [91] T. Dierks and C. Allen, The TLS Protocol Version 1.0,
2006. RFC 2246, 1999.
[70] Report: DWDM No Match for Sonet, Mary Jander, Light [92] Multimedia, Crucible (2011-05-07). “VoIP, Voice over
Reading, 2006. Internet Protocol and Internet telephone calls”.
[71] Stallings, William (2004). Data and Computer Communi-
[93] Martin, Michael (2000). Understanding the Network (The
cations (7th edition (intl) ed.). Pearson Prentice Hall. pp.
Networker’s Guide to AppleTalk, IPX, and NetBIOS),
337–366. ISBN 0-13-183311-1.
SAMS Publishing, ISBN 0-7357-0977-7.
[72] MPLS is the future, but ATM hangs on, John Dix, Net-
work World, 2002 [94] Ralph Droms, Resources for DHCP, November 2003.
[73] Lazar, Irwin (22 February 2011). “The WAN Road [95] Stallings, pp. 500–526.
Ahead: Ethernet or Bust?". Telecom Industry Updates.
Retrieved 22 February 2011. [96] Stallings, pp 514–516.
[74] How Radio Works, HowStuffWorks.com, 2006. [97] Fiber Optic Cable Tutorial, Arc Electronics. Retrieved
[75] Digital Television in Australia, Digital Television News June 2007.
Australia, 2001.
[98] “video animation The Economist”.
[76] Stallings, William (2004). Data and Computer Commu-
nications (7th edition (intl) ed.). Pearson Prentice Hall. [99] Introduction to the Telecommunications Industry, Internet
ISBN 0-13-183311-1. Engineering Task Force, June 2012.
62.10. EXTERNAL LINKS 353
62.9.2 Bibliography
• Goggin, Gerard, Global Mobile Media (New York:
Routledge, 2011), p. 176. ISBN 978-0415469180.
Timeout (computing)
354
63.2. SOURCES 355
• MIL-STD-188
Chapter 64
The Transmission Control Protocol (TCP) is a core another host, such as the required packet fragmentation
protocol of the Internet protocol suite. It originated in on the transmission medium. At the transport layer, the
the initial network implementation in which it comple- protocol handles all handshaking and transmission details
mented the Internet Protocol (IP). Therefore, the entire and presents an abstraction of the network connection to
suite is commonly referred to as TCP/IP. TCP provides the application.
reliable, ordered, and error-checked delivery of a stream
At the lower levels of the protocol stack, due to network
of octets between applications running on hosts commu- congestion, traffic load balancing, or other unpredictable
nicating over an IP network. Major Internet applica-
network behavior, IP packets may be lost, duplicated,
tions such as the World Wide Web, email, remote ad- or delivered out of order. TCP detects these problems,
ministration and file transfer rely on TCP. Applications
requests retransmission of lost data, rearranges out-of-
that do not require reliable data stream service may use order data, and even helps minimize network congestion
the User Datagram Protocol (UDP), which provides a to reduce the occurrence of the other problems. If the
connectionless datagram service that emphasizes reduced data still remains undelivered, its source is notified of this
latency over reliability. failure. Once the TCP receiver has reassembled the se-
quence of octets originally transmitted, it passes them to
the receiving application. Thus, TCP abstracts the appli-
64.1 Historical origin cation’s communication from the underlying networking
details.
In May 1974, the Institute of Electrical and Electronic TCP is utilized extensively by many popular applications
Engineers (IEEE) published a paper titled "A Protocol carried on the Internet, including the World Wide Web
for Packet Network Intercommunication."[1] The paper’s (WWW), E-mail, File Transfer Protocol, Secure Shell,
authors, Vint Cerf and Bob Kahn, described an inter- peer-to-peer file sharing, and many streaming media ap-
networking protocol for sharing resources using packet- plications.
switching among the nodes. A central control compo-
TCP is optimized for accurate delivery rather than timely
nent of this model was the Transmission Control Pro-
delivery, and therefore, TCP sometimes incurs relatively
gram that incorporated both connection-oriented links
long delays (on the order of seconds) while waiting for
and datagram services between hosts. The monolithic
out-of-order messages or retransmissions of lost mes-
Transmission Control Program was later divided into a
sages. It is not particularly suitable for real-time appli-
modular architecture consisting of the Transmission Con-
cations such as Voice over IP. For such applications, pro-
trol Protocol at the connection-oriented layer and the In-
tocols like the Real-time Transport Protocol (RTP) run-
ternet Protocol at the internetworking (datagram) layer.
ning over the User Datagram Protocol (UDP) are usually
The model became known informally as TCP/IP, although
recommended instead.[2]
formally it was henceforth called the Internet Protocol
Suite. TCP is a reliable stream delivery service which guaran-
tees that all bytes received will be identical with bytes
sent and in the correct order. Since packet transfer over
many networks is not reliable, a technique known as pos-
64.2 Network function itive acknowledgment with retransmission is used to
guarantee reliability of packet transfers. This fundamen-
The Transmission Control Protocol provides a commu- tal technique requires the receiver to respond with an
nication service at an intermediate level between an ap- acknowledgment message as it receives the data. The
plication program and the Internet Protocol. It provides sender keeps a record of each packet it sends. The sender
host-to-host connectivity at the Transport Layer of the also maintains a timer from when the packet was sent,
Internet model. An application does not need to know and retransmits a packet if the timer expires before the
the particular mechanisms for sending data via a link to
356
64.3. TCP SEGMENT STRUCTURE 357
message has been acknowledged. The timer is needed in of the actual first data byte and the acknowl-
case a packet gets lost or corrupted.[2] edged number in the corresponding ACK are
While IP handles actual delivery of the data, TCP keeps then this sequence number plus 1.
track of the individual units of data transmission, called • If the SYN flag is clear (0), then this is the
segments, that a message is divided into for efficient accumulated sequence number of the first data
routing through the network. For example, when an byte of this segment for the current session.
HTML file is sent from a web server, the TCP software
layer of that server divides the sequence of octets of the Acknowledgment number (32 bits) if the ACK flag is
file into segments and forwards them individually to the set then the value of this field is the next sequence
IP software layer (Internet Layer). The Internet Layer en- number that the receiver is expecting. This acknowl-
capsulates each TCP segment into an IP packet by adding edges receipt of all prior bytes (if any). The first
a header that includes (among other data) the destination ACK sent by each end acknowledges the other end’s
IP address. When the client program on the destination initial sequence number itself, but no data.
computer receives them, the TCP layer (Transport Layer)
Data offset (4 bits) specifies the size of the TCP header
reassembles the individual segments, and ensures they are
in 32-bit words. The minimum size header is 5
correctly ordered and error free as it streams them to an
words and the maximum is 15 words thus giving
application.
the minimum size of 20 bytes and maximum of 60
bytes, allowing for up to 40 bytes of options in the
header. This field gets its name from the fact that it
64.3 TCP segment structure is also the offset from the start of the TCP segment
to the actual data.
Transmission Control Protocol accepts data from a data
stream, divides it into chunks, and adds a TCP header Reserved (3 bits) for future use and should be set to
creating a TCP segment. The TCP segment is then zero
encapsulated into an Internet Protocol (IP) datagram, and
Flags (9 bits) (aka Control bits) contains 9 1-bit flags
exchanged with peers.[3]
The term TCP packet appears in both informal and for- • NS (1 bit) – ECN-nonce concealment protec-
mal usage, whereas in more precise terminology segment tion (experimental: see RFC 3540).
refers to the TCP protocol data unit (PDU), datagram[4] • CWR (1 bit) – Congestion Window Reduced
to the IP PDU, and frame to the data link layer PDU: (CWR) flag is set by the sending host to indi-
cate that it received a TCP segment with the
Processes transmit data by calling on the ECE flag set and had responded in congestion
TCP and passing buffers of data as arguments. control mechanism (added to header by RFC
The TCP packages the data from these buffers 3168).
into segments and calls on the internet module
• ECE (1 bit) – ECN-Echo has a dual role, de-
[e.g. IP] to transmit each segment to the desti-
pending on the value of the SYN flag. It indi-
nation TCP.[5]
cates:
A TCP segment consists of a segment header and a data • If the SYN flag is set (1), that the
section. The TCP header contains 10 mandatory fields, TCP peer is ECN capable.
and an optional extension field (Options, pink background • If the SYN flag is clear (0),
in table). that a packet with Congestion Ex-
The data section follows the header. Its contents are the perienced flag set (ECN=11) in
payload data carried for the application. The length of the IP header received during normal
data section is not specified in the TCP segment header. transmission (added to header by
It can be calculated by subtracting the combined length RFC 3168). This serves as an in-
of the TCP header and the encapsulating IP header from dication of network congestion (or
the total IP datagram length (specified in the IP header). impending congestion) to the TCP
sender.
Source port (16 bits) identifies the sending port
• URG (1 bit) – indicates that the Urgent pointer
Destination port (16 bits) identifies the receiving port field is significant
Sequence number (32 bits) has a dual role: • ACK (1 bit) – indicates that the Acknowledg-
ment field is significant. All packets after the
• If the SYN flag is set (1), then this is the ini- initial SYN packet sent by the client should
tial sequence number. The sequence number have this flag set.
358 CHAPTER 64. TRANSMISSION CONTROL PROTOCOL
• PSH (1 bit) – Push function. Asks to push the • 1 (8 bits) – No operation (NOP, Padding) This
buffered data to the receiving application. may be used to align option fields on 32-bit
boundaries for better performance.
• RST (1 bit) – Reset the connection
• 2,4,SS (32 bits) – Maximum segment size (see
• SYN (1 bit) – Synchronize sequence numbers. maximum segment size) [SYN]
Only the first packet sent from each end should
have this flag set. Some other flags and fields • 3,3,S (24 bits) – Window scale (see window
change meaning based on this flag, and some scaling for details) [SYN][6]
are only valid for when it is set, and others • 4,2 (16 bits) – Selective Acknowledgement
when it is clear. permitted. [SYN] (See selective acknowledg-
ments for details)[7]
• FIN (1 bit) – No more data from sender
• 5,N,BBBB,EEEE,... (variable bits, N is either
Window size (16 bits) the size of the receive window, 10, 18, 26, or 34)- Selective ACKnowledge-
which specifies the number of window size units (by ment (SACK)[8] These first two bytes are fol-
default, bytes) (beyond the segment identified by the lowed by a list of 1–4 blocks being selectively
sequence number in the acknowledgment field) that acknowledged, specified as 32-bit begin/end
the sender of this segment is currently willing to re- pointers.
ceive (see Flow control and Window Scaling) • 8,10,TTTT,EEEE (80 bits)- Timestamp and
echo of previous timestamp (see TCP times-
Checksum (16 bits) The 16-bit checksum field is used tamps for details)[9]
for error-checking of the header and data
(The remaining options are historical, obsolete, experi-
Urgent pointer (16 bits) if the URG flag is set, then this mental, not yet standardized, or unassigned)
16-bit field is an offset from the sequence number Padding The TCP header padding is used to ensure that
indicating the last urgent data byte the TCP header ends and data begins on a 32 bit
boundary. The padding is composed of zeros.[10]
Options (Variable 0–320 bits, divisible by 32) The
length of this field is determined by the data offset
field. Options have up to three fields: Option-Kind
(1 byte), Option-Length (1 byte), Option-Data 64.4 Protocol operation
(variable). The Option-Kind field indicates the
type of option, and is the only field that is not
optional. Depending on what kind of option we
CONNECT/ SYN (Step 1 of the 3-way-handshake)
unusual event
client/receiver path (Start) CLOSED
server/sender path CLOSE/-
LISTEN/-
are dealing with, the next two fields may be set: (Step 2 of the 3-way-handshake) SYN/SYN+ACK
LISTEN
CLOSE/-
of the option, and the Option-Data field contains RECEIVED SYN/SYN+ACK (simultaneous open) SENT
a No-Op option used only for padding, and does Active CLOSE Passive CLOSE
Timeout
LAST ACK
ACK/-
the Maximum Segment Size option, and will be (Go back to start) CLOSED
end-point for communications, the Internet socket. Dur- Once the passive open is established, a client may initiate
ing the lifetime of a TCP connection the local end-point an active open. To establish a connection, the three-way
undergoes a series of state changes:[11] (or 3-step) handshake occurs:
LISTEN (server) represents waiting for a connection 1. SYN: The active open is performed by the client
request from any remote TCP and port. sending a SYN to the server. The client sets the seg-
ment’s sequence number to a random value A.
SYN-SENT (client) represents waiting for a matching
connection request after having sent a connection
2. SYN-ACK: In response, the server replies with
request.
a SYN-ACK. The acknowledgment number is set
SYN-RECEIVED (server) represents waiting for a to one more than the received sequence number
confirming connection request acknowledgment af- i.e. A+1, and the sequence number that the server
ter having both received and sent a connection re- chooses for the packet is another random number,
quest. B.
ESTABLISHED (both server and client) represents an 3. ACK: Finally, the client sends an ACK back to the
open connection, data received can be delivered to server. The sequence number is set to the received
the user. The normal state for the data transfer phase acknowledgement value i.e. A+1, and the acknowl-
of the connection. edgement number is set to one more than the re-
ceived sequence number i.e. B+1.
FIN-WAIT-1 (both server and client) represents wait-
ing for a connection termination request from the
remote TCP, or an acknowledgment of the connec- At this point, both the client and server have received an
tion termination request previously sent. acknowledgment of the connection. The steps 1, 2 es-
tablish the connection parameter (sequence number) for
FIN-WAIT-2 (both server and client) represents wait- one direction and it is acknowledged. The steps 2, 3 es-
ing for a connection termination request from the tablish the connection parameter (sequence number) for
remote TCP. the other direction and it is acknowledged. With these, a
CLOSE-WAIT (both server and client) represents full-duplex communication is established.
waiting for a connection termination request from
the local user.
64.4.2 Connection termination
CLOSING (both server and client) represents waiting
for a connection termination request acknowledg-
ment from the remote TCP.
Initiator Receiver
LAST-ACK (both server and client) represents wait- ESTABLISHED
connection
ing for an acknowledgment of the connection ter-
mination request previously sent to the remote TCP active close
ESTABLISHED
(which includes an acknowledgment of its connec- FIN_WAIT_1 FIN connection
for a timeout before finally closing the connection, dur- number of outgoing connections from each of the client’s
ing which time the local port is unavailable for new con- IP addresses. If an application fails to properly close un-
nections; this prevents confusion due to delayed packets required connections, a client can run out of resources
being delivered during subsequent connections. and become unable to establish new TCP connections,
A connection can be “half-open”, in which case one side even from other applications.
has terminated its end, but the other has not. The side Both endpoints must also allocate space for unacknowl-
that has terminated can no longer send any data into the edged packets and received (but unread) data.
connection, but the other side can. The terminating side
should continue reading the data until the other side ter-
minates as well. 64.4.4 Data transfer
It is also possible to terminate the connection by a 3-way
handshake, when host A sends a FIN and host B replies There are a few key features that set TCP apart from User
with a FIN & ACK (merely combines 2 steps into one) Datagram Protocol:
and host A replies with an ACK.[12]
Some host TCP stacks may implement a half-duplex close • Ordered data transfer — the destination host rear-
sequence, as Linux or HP-UX do. If such a host actively ranges according to sequence number[2]
closes a connection but still has not read all the incoming
data the stack already received from the link, this host • Retransmission of lost packets — any cumulative
sends a RST instead of a FIN (Section 4.2.2.13 in RFC stream not acknowledged is retransmitted[2]
1122). This allows a TCP application to be sure the re-
mote application has read all the data the former sent— • Error-free data transfer[13]
waiting the FIN from the remote side, when it actively
closes the connection. But the remote TCP stack cannot • Flow control — limits the rate a sender transfers data
distinguish between a Connection Aborting RST and Data to guarantee reliable delivery. The receiver contin-
Loss RST. Both cause the remote stack to lose all the data ually hints the sender on how much data can be re-
received. ceived (controlled by the sliding window). When
Some application protocols may violate the OSI model the receiving host’s buffer fills, the next acknowledg-
layers, using the TCP open/close handshaking for the ap- ment contains a 0 in the window size, to stop transfer
plication protocol open/close handshaking — these may and allow the data in the buffer to be processed.[2]
find the RST problem on active close. As an example:
• Congestion control[2]
s = connect(remote); send(s, data); close(s);
For a usual program flow like above, a TCP/IP stack like
that described above does not guarantee that all the data Reliable transmission
arrives to the other application.
TCP uses a sequence number to identify each byte of data.
The sequence number identifies the order of the bytes sent
64.4.3 Resource usage from each computer so that the data can be reconstructed
in order, regardless of any packet reordering, or packet
loss that may occur during transmission. The sequence
Most implementations allocate an entry in a table that
maps a session to a running operating system process. number of the first byte is decided during the initial 3-
way handshake. This number can be arbitrary, and should
Because TCP packets do not include a session identifier,
both endpoints identify the session using the client’s ad- in fact be unpredictable to defend against TCP sequence
dress and port. Whenever a packet is received, the TCP prediction attacks.
implementation must perform a lookup on this table to Acknowledgements (Acks) are sent by the receiver of
find the destination process. Each entry in the table is data to tell the sender that data has been received. Acks
known as a Transmission Control Block or TCB. It con- do not imply that the data has been delivered to the ap-
tains information about the endpoints (IP and port), sta- plication. They merely signify that it is now the receiver’s
tus of the connection, running data about the packets that responsibility to deliver the data. In TCP Acks are cumu-
are being exchanged and buffers for sending and receiv- lative. That is, if the ith byte is acknowledged, it means
ing data. that all previous bytes have been received too.
The number of sessions in the server side is limited only Reliability is achieved by the sender detecting lost data
by memory and can grow as new connections arrive, but and retransmitting it. TCP uses two primary techniques
the client must allocate a random port before sending to identify loss. Retransmission timeout (abbreviated as
the first SYN to the server. This port remains allocated RTO) and duplicate cumulative acknowledgements (Du-
during the whole conversation, and effectively limits the pAcks).
64.4. PROTOCOL OPERATION 361
ow tio
G is the clock granularity.[15] Further, in case a retransmit e
kn ca
ac pli
d, ap
eiv d t
o
rec re
ta live
timer has fired and still no acknowledgement is received, Da d de
an
the next timer is set to twice the previous value (up to a Data received, acknowledged,
certain threshold). Among other things, this helps defend but not yet delivered to application
Data
against a man in the middle denial of service attack that re
but n ceived
ot ack
now
,
le dged
tries to fool the sender into making so many retransmis- Un
fille
db
sions that the receiver is overwhelmed. uff
er
Window
If the sender infers that data has been lost in the net- shifts
work using one of the two techniques described above,
it retransmits the data. Receiver's window
(Allocation buffer)
Up to 2^16-1 slots
Main article: TCP window scale option It is possible to interrupt or abort the queued stream in-
stead of waiting for the stream to finish. This is done by
specifying the data as urgent. This tells the receiving pro-
For more efficient use of high bandwidth networks, a gram to process it immediately, along with the rest of the
larger TCP window size may be used. The TCP window urgent data. When finished, TCP informs the application
size field controls the flow of data and its value is limited and resumes back to the stream queue. An example is
to between 2 and 65,535 bytes. when TCP is used for a remote login session, the user
Since the size field cannot be expanded, a scaling factor is can send a keyboard sequence that interrupts or aborts
used. The TCP window scale option, as defined in RFC the program at the other end. These signals are most of-
1323, is an option used to increase the maximum win- ten needed when a program on the remote machine fails
dow size from 65,535 bytes to 1 gigabyte. Scaling up to to operate correctly. The signals must be sent without
larger window sizes is a part of what is necessary for TCP waiting for the program to finish its current transfer.[2]
tuning. TCP OOB data was not designed for the modern Inter-
The window scale option is used only during the TCP 3- net. The urgent pointer only alters the processing on the
way handshake. The window scale value represents the remote host and doesn't expedite any processing on the
number of bits to left-shift the 16-bit window size field. network itself. When it gets to the remote host there
The window scale value can be set from 0 (no shift) to 14 are two slightly different interpretations of the protocol,
for each direction independently. Both sides must send which means only single bytes of OOB data are reliable.
the option in their SYN segments to enable window scal- This is assuming it is reliable at all as it is one of the least
ing in either direction. commonly used protocol elements and tends to be poorly
implemented. [19][20]
Some routers and packet firewalls rewrite the window
scaling factor during a transmission. This causes send-
ing and receiving sides to assume different TCP window
64.4.10 Forcing data delivery
sizes. The result is non-stable traffic that may be very
slow. The problem is visible on some sites behind a de-
Normally, TCP waits for 200 ms for a full packet of data
fective router.[18]
to send (Nagle’s Algorithm tries to group small messages
into a single packet). This wait creates small, but poten-
tially serious delays if repeated constantly during a file
transfer. For example, a typical send block would be 4
64.4.8 TCP timestamps KB, a typical MSS is 1460, so 2 packets go out on a 10
Mbit/s ethernet taking ~1.2 ms each followed by a third
TCP timestamps, defined in RFC 1323, can help TCP carrying the remaining 1176 after a 197 ms pause be-
determine in which order packets were sent. TCP times- cause TCP is waiting for a full buffer.
tamps are not normally aligned to the system clock and In the case of telnet, each user keystroke is echoed back
start at some random value. Many operating systems will by the server before the user can see it on the screen. This
increment the timestamp for every elapsed millisecond; delay would become very annoying.
however the RFC only states that the ticks should be pro-
Setting the socket option TCP_NODELAY overrides the
portional.
default 200 ms send delay. Application programs use this
There are two timestamp fields: socket option to force output to be sent after writing a
a 4-byte sender timestamp value (my timestamp) a 4-byte character or line of characters.
echo reply timestamp value (the most recent timestamp The RFC defines the PSH push bit as “a message to the
received from you). receiving TCP stack to send this data immediately up to
[2]
TCP timestamps are used in an algorithm known as Pro- the receiving application”. There is no way to indicate
tection Against Wrapped Sequence numbers, or PAWS (see or control it in User space using Berkeley
[21]
sockets and it
RFC 1323 for details). PAWS is used when the receive is controlled by Protocol stack only.
window crosses the sequence number wraparound bound-
ary. In the case where a packet was potentially retrans-
mitted it answers the question: “Is this sequence number 64.5 Vulnerabilities
in the first 4 GB or the second?" And the timestamp is
used to break the tie. TCP may be attacked in a variety of ways. The results
Also, the Eifel detection algorithm (RFC 3522) uses TCP of a thorough security assessment of TCP, along with
timestamps to determine if retransmissions are occurring possible mitigations for the identified issues, were pub-
because packets are lost or simply out of order. lished in 2009,[22] and is currently being pursued within
364 CHAPTER 64. TRANSMISSION CONTROL PROTOCOL
years, its most basic operation has not changed signifi- (PRR) is a TCP extension developed by Google en-
cantly since its first specification RFC 675 in 1974, and gineers. PRR ensures that the TCP window size af-
the v4 specification RFC 793, published in September ter recovery is as close to the Slow-start threshold as
1981. RFC 1122, Host Requirements for Internet Hosts, possible.[39] The algorithm is designed to improve the
clarified a number of TCP protocol implementation re- speed of recovery and is the default congestion control
quirements. A list of the 8 required specifications and algorithm in Linux 3.2+ kernels.[40]
over 20 strongly encouraged enhancements is available
in RFC 7414. Among this list is RFC 2581, TCP Con-
gestion Control, one of the most important TCP-related
RFCs in recent years, describes updated algorithms that 64.8 TCP over wireless networks
avoid undue congestion. In 2001, RFC 3168 was writ-
ten to describe explicit congestion notification (ECN), a TCP was originally designed for wired networks. Packet
congestion avoidance signaling mechanism. loss is considered to be the result of network congestion
The original TCP congestion avoidance algorithm was and the congestion window size is reduced dramatically
known as “TCP Tahoe”, but many alternative algorithms as a precaution. However, wireless links are known to
have since been proposed (including TCP Reno, TCP Ve- experience sporadic and usually temporary losses due to
gas, FAST TCP, TCP New Reno, and TCP Hybla). fading, shadowing, hand off, and other radio effects, that
should not be considered congestion. After the (erro-
TCP Interactive (iTCP) [29] is a research effort into TCP neous) back-off of the congestion window size, due to
extensions that allows applications to subscribe to TCP wireless packet loss, there may be a congestion avoid-
events and register handler components that can launch ance phase with a conservative decrease in window size.
applications for various purposes, including application- This causes the radio link to be underutilized. Exten-
assisted congestion control. sive research on combating these harmful effects has
Multipath TCP (MPTCP) [30][31] is an ongoing effort been conducted. Suggested solutions can be categorized
within the IETF that aims at allowing a TCP connection as end-to-end solutions, which require modifications at
to use multiple paths to maximize resource usage and in- the client or server,[41] link layer solutions, such as RLP
crease redundancy. The redundancy offered by Multi- in cellular networks, or proxy-based solutions which re-
path TCP in the context of wireless networks [32] enables quire some changes in the network without modifying end
statistical multiplexing of resources, and thus increases nodes.[41][42]
TCP throughput dramatically. Multipath TCP also brings A number of alternative congestion control algorithms,
performance benefits in datacenter environments.[33] The such as Vegas, Westwood, Veno and Santa Cruz, have
reference implementation[34] of Multipath TCP is being been proposed to help solve the wireless problem.
developed in the Linux kernel.[35][36]
TCP Cookie Transactions (TCPCT) is an extension pro-
posed in December 2009 to secure servers against denial-
of-service attacks. Unlike SYN cookies, TCPCT does
64.9 Hardware implementations
not conflict with other TCP extensions such as window
scaling. TCPCT was designed due to necessities of One way to overcome the processing power requirements
DNSSEC, where servers have to handle large numbers of TCP is to build hardware implementations of it, widely
of short-lived TCP connections. known as TCP Offload Engines (TOE). The main prob-
lem of TOEs is that they are hard to integrate into com-
tcpcrypt is an extension proposed in July 2010 to provide
puting systems, requiring extensive changes in the oper-
transport-level encryption directly in TCP itself. It is de- ating system of the computer or device. One company to
signed to work transparently and not require any config-
develop such a device was Alacritech.
uration. Unlike TLS (SSL), tcpcrypt itself does not pro-
vide authentication, but provides simple primitives down
to the application to do that. As of 2010, the first tcpcrypt
IETF draft has been published and implementations exist 64.10 Debugging
for several major platforms.
TCP Fast Open is an extension to speed up the opening
A packet sniffer, which intercepts TCP traffic on a net-
of successive TCP connections between two endpoints. It
work link, can be useful in debugging networks, network
works by skipping the three-way handshake using a cryp-
stacks and applications that use TCP by showing the user
tographic “cookie”. It is similar to an earlier proposal
what packets are passing through a link. Some network-
called T/TCP, which was not widely adopted due to se-
ing stacks support the SO_DEBUG socket option, which
curity issues.[37] As of July 2012, it is an IETF Internet
can be enabled on the socket using setsockopt. That op-
draft.[38] tion dumps all the packets, TCP states, and events on that
Proposed in May 2013, Proportional Rate Reduction socket, which is helpful in debugging. Netstat is another
utility that can be used for debugging.
366 CHAPTER 64. TRANSMISSION CONTROL PROTOCOL
• Maximum segment lifetime [6] “RFC 1323, TCP Extensions for High Performance, Sec-
tion 2.2”.
• Maximum segment size
[7] “RFC 2018, TCP Selective Acknowledgement Options,
• Maximum transmission unit Section 2”.
• TCP and UDP port [15] Paxson, V.; Allman, M.; Chu, J.; Sargent, M. (June 2011).
“The Basic Algorithm”. Computing TCP’s Retransmission
• TCP and UDP port numbers for a long list of Timer. IETF. p. 2. sec. 2. RFC 6298. https://tools.
ports/services ietf.org/html/rfc6298#section-2. Retrieved October 24,
2015.
• TCP congestion avoidance algorithms
[16] Stone; Partridge (2000). “When The CRC and TCP
• TCP global synchronization Checksum Disagree”. Sigcomm.
• TCP segment [18] “TCP window scaling and broken routers [LWN.net]".
• TCP Sequence Prediction Attack [19] Gont, Fernando (November 2008). “On the implementa-
tion of TCP urgent data”. 73rd IETF meeting. Retrieved
• TCP tuning for high performance networks 2009-01-04.
368 CHAPTER 64. TRANSMISSION CONTROL PROTOCOL
[20] Peterson, Larry (2003). Computer Networks. Morgan [42] Muhammad Adeel & Ahmad Ali Iqbal (2004). “TCP
Kaufmann. p. 401. ISBN 1-55860-832-X. Congestion Window Optimization for CDMA2000
Packet Data Networks”. International Confer-
[21] Richard W. Stevens (2006). TCP/IP Illustrated. Vol. 1, ence on Information Technology (ITNG'07): 31–35.
The protocols. Addison-Wesley. pp. Chapter 20. ISBN doi:10.1109/ITNG.2007.190. ISBN 978-0-7695-2776-
978-0-201-63346-7. Retrieved 14 November 2011. 5.
[22] Security Assessment of the Transmission Control Proto- [43] Yunhong Gu, Xinwei Hong, and Robert L. Grossman.
col (TCP) at the Wayback Machine (archived March 6, “An Analysis of AIMD Algorithm with Decreasing In-
2009) creases”. 2004.
[23] Security Assessment of the Transmission Control Proto-
col (TCP)
[32] “TCP with feed-forward source coding for wireless down- • RFC 675 – Specification of Internet Transmission
link networks”. Control Program, December 1974 Version
[33] Raiciu; Barre; Pluntke; Greenhalgh; Wischik; Handley • RFC 793 – TCP v4
(2011). “Improving datacenter performance and robust-
ness with multipath TCP”. Sigcomm. • RFC 1122 – includes some error corrections for
TCP
[34] “MultiPath TCP - Linux Kernel implementation”.
• RFC 1323 – TCP Extensions for High Performance
[35] Barre; Paasch; Bonaventure (2011). “MultiPath TCP:
[Obsoleted by RFC 7323]
From Theory to Practice”. IFIP Networking.
[36] Raiciu; Paasch; Barre; Ford; Honda; Duchene; Bonaven- • RFC 1379 – Extending TCP for Transactions—
ture; Handley (2012). “How Hard Can It Be? De- Concepts [Obsoleted by RFC 6247]
signing and Implementing a Deployable Multipath TCP”.
USENIX NSDI. • RFC 1948 – Defending Against Sequence Number
Attacks
[37] Michael Kerrisk (2012-08-01). “TCP Fast Open: expe-
diting web services”. LWN.net. • RFC 2018 – TCP Selective Acknowledgment Op-
tions
[38] Y. Cheng, J. Chu, S. Radhakrishnan, A. Jain
(2012-07-16). TCP Fast Open. IETF. I-D draft- • RFC 5681 – TCP Congestion Control
ietf-tcpm-fastopen-01. https://tools.ietf.org/html/
draft-ietf-tcpm-fastopen-01. • RFC 6247 - Moving the Undeployed TCP Exten-
sions RFC 1072, RFC 1106, RFC 1110, RFC 1145,
[39] "RFC 6937 - Proportional Rate Reduction for TCP”. http:
RFC 1146, RFC 1379, RFC 1644, and RFC 1693
//tools.ietf.org/html/rfc6937. External link in |website=
to Historic Status
(help);
[40] Grigorik, Ilya (2013). High-performance browser net- • RFC 6298 – Computing TCP’s Retransmission
working (1. ed.). Beijing: O'Reilly. ISBN 1449344763. Timer
[41] “TCP performance over CDMA2000 RLP”. Retrieved • RFC 6824 - TCP Extensions for Multipath Opera-
2010-08-30 tion with Multiple Addresses
64.16. EXTERNAL LINKS 369
64.16.2 Others
• Oral history interview with Robert E. Kahn, Charles
Babbage Institute, University of Minnesota, Min-
neapolis. Focuses on Kahn’s role in the develop-
ment of computer networking from 1967 through
the early 1980s. Beginning with his work at Bolt
Beranek and Newman (BBN), Kahn discusses his
involvement as the ARPANET proposal was be-
ing written, his decision to become active in its
implementation, and his role in the public demon-
stration of the ARPANET. The interview continues
into Kahn’s involvement with networking when he
moves to IPTO in 1972, where he was responsible
for the administrative and technical evolution of the
ARPANET, including programs in packet radio, the
development of a new network protocol (TCP/IP),
and the switch to TCP/IP to connect multiple net-
works.
• TCP tutorial
• Linktionary on TCP segments
Transmission medium
370
65.2. SEE ALSO 371
Federal Standard 1037C, transmission media are classi- 65.1.1 Types of transmissions
fied as one of the following:
A transmission may be simplex, half-duplex, or full-
duplex.
• Guided (or bounded)—waves are guided along a
In simplex transmission, signals are transmitted in only
solid medium such as a transmission line.
one direction; one station is a transmitter and the other is
the receiver. In the half-duplex operation, both stations
• Wireless (or unguided)—transmission and reception may transmit, but only one at a time. In full duplex oper-
are achieved by means of an antenna. ation, both stations may transmit simultaneously. In the
latter case, the medium is carrying signals in both direc-
tions at same time.
One of the most common physical medias used in net- There are two types of transmission media:
working is copper wire. Copper wire to carry signals to
long distances using relatively low amounts of power. The • Guided
unshielded twisted pair (UTP) is eight strands of copper
wire, organized into four pairs.[2] • Unguided
Another example of a physical medium is optical fiber,
which has emerged as the most commonly used transmis- Guided Media:
sion medium for long-distance communications. Opti-
cal fiber is a thin strand of glass that guides light along • Un-shielded Twisted Pair (UTP)
its length. Four major factors favor optical fiber over • Shielded Twisted Pair
copper- data rates, distance, installation, and costs. Op-
tical fiber can carry huge amounts of data compared to • Coaxial Cable
copper. It can be run for hundreds of miles without the
• Optical Fiber
need for signal repeaters, in turn, reducing maintenance
costs and improving the reliability of the communication
Unguided Media: Transmission media then looking at
system because repeaters are a common source of net-
analysis of using them unguided transmission media is
work failures. Glass is lighter than copper allowing for
data signals that flow through the air. They are not guided
less need for specialized heavy-lifting equipment when
or bound to a channel to follow. Following are unguided
installing long-distance optical fiber. Optical fiber for in-
media used for data communication:
door applications cost approximately a dollar a foot, the
same as copper.[3]
• Radio Transmission
Multimode and single mode are two types of commonly
used optical fiber. Multimode fiber uses LEDs as the • Microwave
light source and can carry signals over shorter distances,
about 2 kilometers. Single mode can carry signals over
distances of tens of miles. 65.2 See also
Wireless media may carry surface waves or skywaves, ei-
ther longitudinally or transversely, and are so classified. • Vacuum permittivity
Transport layer
In computer networking, the transport layer is a con- a desirable feature. This is usually done through the
ceptual division of methods in the layered architecture use of segment numbering, with the receiver pass-
of protocols in the network stack in the Internet Protocol ing them to the application in order. This can cause
Suite and the Open Systems Interconnection (OSI). The head-of-line blocking.
protocols of the layer provide host-to-host communica-
tion services for applications.[1] It provides services such • Reliability: Packets may be lost during transport
as connection-oriented data stream support, reliability, due to network congestion and errors. By means
flow control, and multiplexing. of an error detection code, such as a checksum, the
The details of implementation and semantics of the transport protocol may check that the data is not
Transport Layer of the TCP/IP model (RFC 1122),[2] corrupted, and verify correct receipt by sending an
which is the foundation of the Internet, and the Open Sys- ACK or NACK message to the sender. Automatic
tems Interconnection (OSI) model of general networking, repeat request schemes may be used to retransmit
are different. In the OSI model the transport layer is most lost or corrupted data.
often referred to as Layer 4 or L4, while numbered layers
are not used in TCP/IP. • Flow control: The rate of data transmission between
The best-known transport protocol of TCP/IP is the two nodes must sometimes be managed to prevent
Transmission Control Protocol (TCP), and lent its name a fast sender from transmitting more data than can
to the title of the entire suite. It is used for connection- be supported by the receiving data buffer, causing
oriented transmissions, whereas the connectionless User a buffer overrun. This can also be used to improve
Datagram Protocol (UDP) is used for simpler messaging efficiency by reducing buffer underrun.
transmissions. TCP is the more complex protocol, due
to its stateful design incorporating reliable transmission • Congestion avoidance: Congestion control can con-
and data stream services. Other prominent protocols in trol traffic entry into a telecommunications network,
this group are the Datagram Congestion Control Proto- so as to avoid congestive collapse by attempting to
col (DCCP) and the Stream Control Transmission Proto- avoid oversubscription of any of the processing or
col (SCTP). link capabilities of the intermediate nodes and net-
works and taking resource reducing steps, such as
reducing the rate of sending packets. For example,
66.1 Services automatic repeat requests may keep the network in
a congested state; this situation can be avoided by
Transport layer services are conveyed to an application adding congestion avoidance to the flow control, in-
via a programming interface to the transport layer proto- cluding slow-start. This keeps the bandwidth con-
cols. The services may include the following features: sumption at a low level in the beginning of the trans-
mission, or after packet retransmission.
• Connection-oriented communication: It is normally
easier for an application to interpret a connection • Multiplexing: Ports can provide multiple endpoints
as a data stream rather than having to deal with on a single node. For example, the name on a postal
the underlying connection-less models, such as the address is a kind of multiplexing, and distinguishes
datagram model of the User Datagram Protocol between different recipients of the same location.
(UDP) and of the Internet Protocol (IP). Computer applications will each listen for informa-
tion on their own ports, which enables the use of
• Same order delivery: The network layer doesn't gen- more than one network service at the same time. It
erally guarantee that packets of data will arrive in is part of the transport layer in the TCP/IP model,
the same order that they were sent, but often this is but of the session layer in the OSI model.
372
66.3. PROTOCOLS 373
66.6 References
[1] RFC 1122, §1.1.3.
Tunneling protocol
In computer networks, a tunneling protocol allows a net- protocol chosen to determine the level of security.
work user to access or provide a network service that the SSH uses port 22 to enable data encryption of payloads
underlying network does not support or provide directly.
being transmitted over a public network (such as the In-
One important use of a tunneling protocol is to allow a ternet) connection, thereby providing VPN functionality.
foreign protocol to run over a network that does not sup-
IPsec has an end-to-end Transport Mode, but can also
port that particular protocol; for example, running IPv6 operate in a tunneling mode through a trusted security
over IPv4. Another important use is to provide services
gateway.
that are impractical or unsafe to be offered using only
the underlying network services; for example, providing
a corporate network address to a remote user whose phys-
ical network address is not part of the corporate network. 67.2 Secure Shell tunneling
Because tunneling involves repackaging the traffic data
into a different form, perhaps with encryption as stan-
dard, a third use is to hide the nature of the traffic that is
run through the tunnels.
The tunneling protocol works by using the data portion of
a packet (the payload) to carry the packets that actually
provide the service. Tunneling uses a layered protocol
model such as those of the OSI or TCP/IP protocol suite,
but usually violates the layering when using the payload
to carry a service not normally provided by the network.
Typically, the delivery protocol operates at an equal or
higher level in the layered model than the payload proto-
col.
375
376 CHAPTER 67. TUNNELING PROTOCOL
67.5 References
[1] “Upgrading to TLS Within HTTP/1.1”. RFC 2817. 2000.
Retrieved March 20, 2013.
The User Datagram Protocol (UDP) is one of the core • It provides datagrams, suitable for modeling other
members of the Internet protocol suite. The protocol was protocols such as in IP tunneling or Remote Proce-
designed by David P. Reed in 1980 and formally defined dure Call and the Network File System.
in RFC 768. With UDP, computer applications can send
messages, in this case referred to as datagrams, to other • It is simple, suitable for bootstrapping or other pur-
hosts on an Internet Protocol (IP) network. Prior commu- poses without a full protocol stack, such as the
nications are not required to set up transmission channels DHCP and Trivial File Transfer Protocol.
or data paths.
• It is stateless, suitable for very large numbers of
UDP uses a simple connectionless transmission model clients, such as in streaming media applications for
with a minimum of protocol mechanism. UDP provides example IPTV
checksums for data integrity, and port numbers for ad-
dressing different functions at the source and destination • The lack of retransmission delays makes it suitable
of the datagram. It has no handshaking dialogues, and for real-time applications such as Voice over IP,
thus exposes the user’s program to any unreliability of online games, and many protocols built on top of
the underlying network and so there is no guarantee of the Real Time Streaming Protocol.
delivery, ordering, or duplicate protection. If error cor-
rection facilities are needed at the network interface level, • Works well in unidirectional communication, suit-
an application may use the Transmission Control Protocol able for broadcast information such as in many kinds
(TCP) or Stream Control Transmission Protocol (SCTP) of service discovery and shared information such as
which are designed for this purpose. broadcast time or Routing Information Protocol
UDP is suitable for purposes where error checking and
correction is either not necessary or is performed in the
application, avoiding the overhead of such processing at 68.2 Service ports
the network interface level. Time-sensitive applications
often use UDP because dropping packets is preferable to See also: Port (computer networking)
waiting for delayed packets, which may not be an option
in a real-time system.[1]
Applications use datagram sockets to establish host-to-
host communications. An application binds a socket to
its endpoint of data transmission, which is a combination
68.1 Attributes of an IP address and a service port. A port is a software
structure that is identified by the port number, a 16 bit
UDP is a minimal message-oriented transport layer pro- integer value, allowing for port numbers between 0 and
tocol that is documented in RFC 768. UDP provides no 65535. Port 0 is reserved, but is a permissible source port
guarantees to the upper layer protocol for message deliv- value if the sending process does not expect messages in
ery and the UDP layer retains no state of UDP messages response.
once sent. For this reason, UDP sometimes is referred to UDP provides application multiplexing (via port num-
as Unreliable Datagram Protocol.[2] bers) and integrity verification (via checksum) of the
A number of UDP’s attributes make it especially suited header and payload.[3] If transmission reliability is de-
for certain applications. sired, it must be implemented in the user’s application.
The Internet Assigned Numbers Authority (IANA) has
• It is transaction-oriented, suitable for simple query- divided port numbers into three ranges.[4] Port numbers
response protocols such as the Domain Name Sys- 0 through 1023 are used for common, well-known ser-
tem or the Network Time Protocol. vices. On Unix-like operating systems, using one of these
378
68.4. CHECKSUM COMPUTATION 379
ports requires superuser operating permission. Port num- 68.4 Checksum computation
bers 1024 through 49151 are the registered ports used for
IANA-registered services. Ports 49152 through 65535 The method used to compute the checksum is defined in
are dynamic ports that are not officially designated for RFC 768:
any specific service, and may be used for any purpose.
They also are used as ephemeral ports, from which soft-
ware running on the host may randomly choose a port in Checksum is the 16-bit one’s complement of the
[4]
order to define itself. In effect, they are used as tempo- one’s complement sum of a pseudo header of in-
rary ports primarily by clients when communicating with formation from the IP header, the UDP header,
servers. and the data, padded with zero octets at the
end (if necessary) to make a multiple of two
octets.[7]
68.3 Packet structure In other words, all 16-bit words are summed using one’s
complement arithmetic. Add the 16-bit values up. Each
The UDP header consists of 4 fields, each of which is 2 time a carry-out (17th bit) is produced, swing that bit
bytes (16 bits).[1] The use of the fields “Checksum” and around and add it back into the least significant bit.[8] The
“Source port” is optional in IPv4 (pink background in ta- sum is then one’s complemented to yield the value of the
ble). In IPv6 only the source port is optional (see below). UDP checksum field.
If the checksum calculation results in the value zero (all
16 bits 0) it should be sent as the one’s complement (all
Source port number This field identifies the sender’s 1s).
port when meaningful and should be assumed to be
the port to reply to if needed. If not used, then it The difference between IPv4 and IPv6 is in the data used
should be zero. If the source host is the client, the to compute the checksum.
port number is likely to be an ephemeral port num-
ber. If the source host is the server, the port number
is likely to be a well-known port number.[4] 68.4.1 IPv4 Pseudo Header
The source address is the one in the IPv6 header. The des- and business applications are important to businesses, de-
tination address is the final destination; if the IPv6 packet veloping quality of service solutions is seen as crucial by
does not contain a Routing header, that will be the desti- some.[10]
nation address in the IPv6 header; otherwise, at the orig- Some VPN systems such as OpenVPN may use UDP
inating node, it will be the address in the last element of while implementing reliable connections and error check-
the Routing header, and, at the receiving node, it will be ing at the application level.
the destination address in the IPv6 header. The value of
the Next Header field is the protocol value for UDP: 17.
The UDP length field is the length of the UDP header and
data. 68.7 Comparison of UDP and TCP
See also: Transport layer
• Lightweight – There is no ordering of messages, no [7] “Postel, J. (August 1980). RFC 768: User Datagram Pro-
tracking connections, etc. It is a small transport layer tocol. Internet Engineering Task Force".
designed on top of IP.
[8] “Compute 16-bit One’s Complement Sum”. http://
• Datagrams – Packets are sent individually and are mathforum.org/. John. 2002-03-20. Retrieved 2014-11-
checked for integrity only if they arrive. Packets 05. External link in |website= (help)
have definite boundaries which are honored upon [9] RFC 768, p2
receipt, meaning a read operation at the receiver
socket will yield an entire message as it was origi- [10] “The impact of UDP on Data Applications”. Networkper-
nally sent. formancedaily.com. Retrieved 17 August 2011.
68.8 See also • RFC 4113 – Management Information Base for the
UDP
• List of TCP and UDP port numbers • RFC 5405 – Unicast UDP Usage Guidelines for Ap-
plication Designers
• Reliable User Datagram Protocol (RUDP)
• UDP-Lite – a variant that will deliver packets even • The Trouble with UDP Scanning (PDF)
if they are malformed • Breakdown of UDP frame
• UDP Helper Address • UDP on MSDN Magazine Sockets and WCF
• Micro Transport Protocol (µTP) • UDP connections
68.9.1 Notes
[1] Kurose, J. F.; Ross, K. W. (2010). Computer Networking:
A Top-Down Approach (5th ed.). Boston, MA: Pearson
Education. ISBN 978-0-13-136548-3.
“WWWC” redirects here. For the radio station, see ated regional offices around the world. As of Septem-
WWWC (AM). ber 2009, it had eighteen World Offices covering Aus-
tralia, the Benelux countries (Netherlands, Luxembourg,
and Belgium), Brazil, China, Finland, Germany, Austria,
The World Wide Web Consortium (W3C) is the main
international standards organization for the World Wide Greece, Hong Kong, Hungary, India, Israel, Italy, South
Korea, Morocco, South Africa, Spain, Sweden, and the
Web (abbreviated WWW or W3).
United Kingdom and Ireland.[4]
Founded and currently led by Tim Berners-Lee,[3] the
consortium is made up of member organizations which In October 2012, W3C convened a community of ma-
maintain full-time staff for the purpose of working to- jor web players and publishers to establish a MediaWiki
gether in the development of standards for the World wiki that seeks to document open web standards called
Wide Web. As of 2 June 2016, the World Wide Web the WebPlatform and WebPlatform Docs.
Consortium (W3C) has 423 members.[2]
The W3C also engages in education and outreach, devel-
ops software and serves as an open forum for discussion
about the Web. 69.2 Specification maturation
382
69.3. ADMINISTRATION 383
69.2.2 Candidate recommendation (CR) a program, owing to the risk of creating more drawbacks
for the community than benefits.[5]
A candidate recommendation is a version of a standard
that is more mature than the WD. At this point, the group
responsible for the standard is satisfied that the standard
meets its goal. The purpose of the CR is to elicit aid from
69.3 Administration
the development community as to how implementable the
standard is.[5] The Consortium is jointly administered by the MIT
Computer Science and Artificial Intelligence Labora-
The standard document may change further, but at this tory (CSAIL, located in Stata Center[6] ) in the USA,
point, significant features are mostly decided. The design the European Research Consortium for Informatics and
of those features can still change due to feedback from Mathematics (ERCIM) (in Sophia Antipolis, France),
implementors.[5] Keio University (in Japan) and Beihang University (in
China).[7] The W3C also has World Offices in sixteen re-
gions around the world. The W3C Offices work with their
69.2.3 Proposed recommendation (PR) regional web communities to promote W3C technologies
in local languages, broaden the W3C’s geographical base
A proposed recommendation is the version of a standard and encourage international participation in W3C Activ-
that has passed the prior two levels. The users of the stan- ities.
dard provide input. At this stage, the document is submit-
ted to the W3C Advisory Council for final approval.[5] The W3C has a staff team of 70–80 worldwide as of
2015.[8] W3C is run by a management team which allo-
While this step is important, it rarely causes any signifi- cates resources and designs strategy, led by CEO Jeffrey
cant changes to a standard as it passes to the next phase.[5] Jaffe (as of March 2010),[9] former CTO of Novell. It
Both candidates and proposals may enter “last call” to sig- also includes an advisory board which supports in strat-
nal that any further feedback must be provided. egy and legal matters and helps resolve conflicts.[10] The
majority of standardization work is done by external ex-
perts in the W3C’s various working groups.
69.2.4 W3C recommendation (REC)
W3C/IETF standards (over Internet protocol suite): [2] “World Wide Web Consortium – current Members”.
World Wide Web Consortium. 29 March 2012. Retrieved
2 June 2016.
• CGI
[3] W3C (September 2009). “World Wide Web Consortium
• CSS (W3C) About the Consortium”. Retrieved 8 September
• DOM 2009.
[4] Jacobs, Ian (June 2009). “W3C Offices”. Retrieved 14
• GRDDL
September 2009.
• HTML [5] “World Wide Web Consortium | Development Process”.
• MathML W3.org. 2005-04-12. Retrieved 2012-04-03.
[6] “W3C Contact”. W3.org. 2006-10-31. Retrieved 2012-
• OWL 04-03.
• P3P [7] “Facts About W3C”. W3C. Retrieved 7 November 2015.
• PROV [20]
[8] “W3C people list”. W3.org. Retrieved 2012-04-03.
• RDF [9] “W3C pulls former Novell CTO for CEO spot”. It-
world.com. 2010-03-08. Retrieved 2012-04-03.
• SISR
[10] “The World Wide Web Consortium: Building a Better In-
• SKOS ternet”. Mays Digital. Retrieved 7 November 2015.
X.25
DTE
DCE worked into the standard, eventually recorded in the ITU
DCE DTE series of technical books describing the telecommunica-
tion systems. These books were published every fourth
year with different-colored covers. The X.25 specifica-
tion is only part of the larger set of X-Series[9] specifica-
DCE PSE PSE
DCE
tions on public data networks.[10]
DTE
The public data network was the common name given to
PAD
the international collection of X.25 providers. Their com-
DTE bined network had large global coverage during the 1980s
and into the 1990s.[11]
Publicly accessible X.25 networks (Compuserve,
X.25 network diagram
Tymnet, Euronet, PSS, Datapac, Datanet 1 and Telenet)
were set up in most countries during the 1970s and
X.25 is an ITU-T standard protocol suite for packet
1980s, to lower the cost of accessing various online
switched wide area network (WAN) communication. An
services.
X.25 WAN consists of packet-switching exchange (PSE)
nodes as the networking hardware, and leased lines, plain Beginning in the early 1990s, in North America, use of
old telephone service connections, or ISDN connections X.25 networks (predominated by Telenet and Tymnet)[11]
as physical links. X.25 is a family of protocols that started to be replaced by Frame Relay, service offered
was popular during the 1980s with telecommunications by national telephone companies.[12] Most systems that
companies and in financial transaction systems such as required X.25 now use TCP/IP, however it is possible to
automated teller machines. X.25 was originally defined transport X.25 over TCP/IP when necessary.[13]
by the International Telegraph and Telephone Consul- X.25 networks are still in use throughout the world. A
tative Committee (CCITT, now ITU-T) in a series of variant called AX.25 is also used widely by amateur
drafts[1] and finalized in a publication known as The Or- packet radio. Racal Paknet, now known as Widanet, is
ange Book in 1976.[2] still in operation in many regions of the world, running
While X.25 has, to a large extent, been replaced by on an X.25 protocol base. In some countries, like the
less complex protocols, especially the Internet protocol Netherlands or Germany, it is possible to use a stripped
(IP), the service is still used (e.g. as of 2012 in credit version of X.25 via the D-channel of an ISDN−2 (or
card payment industry) and available in niche and legacy ISDN BRI) connection for low volume applications such
applications.[3] as point-of-sale terminals; but, the future of this service
in the Netherlands is uncertain.
Additionally X.25 is still under heavy use in the aeronau-
70.1 History tical business (especially in the Asian region) even though
a transition to modern protocols like X.400 is without
X.25 is one of the oldest packet-switched services avail- option as X.25 hardware becomes increasingly rare and
able. It was developed before the OSI Reference costly. As recently as March 2006, the United States Na-
Model.[4] The protocol suite is designed as three concep- tional Airspace Data Interchange Network has used X.25
tual layers, which correspond closely to the lower three to interconnect remote airfields with Air Route Traffic
layers of the seven-layer OSI model.[5] It also supports Control Centers.
functionality not found in the OSI network layer.[6][7] France was one of the last remaining countries where
X.25 was developed in the ITU-T (formerly CCITT) commercial end-user service based on X.25 operated.
386
70.2. ARCHITECTURE 387
Known as Minitel it was based on Videotex, itself run- The X.25 model was based on the traditional telephony
ning on X.25. In 2002, Minitel had about 9 million users, concept of establishing reliable circuits through a shared
and in 2011, it still accounted for about 2 million users in network, but using software to create "virtual calls"
France when France Télécom announced it would com- through the network. These calls interconnect “data ter-
pletely shut down the service by 30 June 2012.[14] As minal equipment” (DTE) providing endpoints to users,
planned, service was terminated 30 June 2012. There which looked like point-to-point connections. Each end-
were 800 000 terminals still in operation at the time.[15] point can establish many separate virtual calls to different
endpoints.
For a brief period, the specification also included a con-
70.2 Architecture nectionless datagram service, but this was dropped in the
next revision. The “fast select with restricted response
The general concept of X.25 was to create a universal facility” is intermediate between full call establishment
and global packet-switched network. Much of the X.25 and connectionless communication. It is widely used in
system is a description of the rigorous error correction query-response transaction applications involving a single
needed to achieve this, as well as more efficient sharing request and response limited to 128 bytes of data carried
of capital-intensive physical resources. each way. The data is carried in an extended call request
packet and the response is carried in an extended field of
The X.25 specification defines only the interface between
the call reject packet, with a connection never being fully
a subscriber (DTE) and an X.25 network (DCE). X.75,
established.
a very similar protocol to X.25, defines the interface be-
tween two X.25 networks to allow connections to traverse Closely related to the X.25 protocol are the protocols to
two or more networks. X.25 does not specify how the connect asynchronous devices (such as dumb terminals
network operates internally – many X.25 network imple- and printers) to an X.25 network: X.3, X.28 and X.29.
mentations used something very similar to X.25 or X.75 This functionality was performed using a Packet Assem-
internally, but others used quite different protocols inter- bler/Disassembler or PAD (also known as a Triple-X de-
nally. The ISO equivalent protocol to X.25, ISO 8208, is vice, referring to the three protocols used).
compatible with X.25, but additionally includes provision
for two X.25 DTEs to be directly connected to each other
with no network in between. By separating the Packet- 70.2.1 Relation to the OSI Reference
Layer Protocol, ISO 8208 permits operation over addi- Model
tional networks such as ISO 8802 LLC2 (ISO LAN) and
the OSI data link layer.[16] Although X.25 predates the OSI Reference Model
(OSIRM), the physical Layer of the OSI model corre-
X.25 originally defined three basic protocol levels or ar-
sponds to the X.25 physical layer, the data link layer to
chitectural layers. In the original specifications these
the X.25 data link layer, and the network layer to the
were referred to as levels and also had a level number,
X.25 packet layer.[10] The X.25 data link layer, LAPB,
whereas all ITU-T X.25 recommendations and ISO 8208
provides a reliable data path across a data link (or multi-
standards released after 1984 refer to them as layers.[17]
ple parallel data links, multilink) which may not be reli-
The layer numbers were dropped to avoid confusion with
able itself. The X.25 packet layer provides the virtual call
the OSI Model layers.[1]
mechanisms, running over X.25 LAPB. The packet layer
includes mechanisms to maintain virtual calls and to sig-
• Physical layer: This layer specifies the physical, nal data errors in the event that the data link layer cannot
electrical, functional and procedural characteristics recover from data transmission errors. All but the ear-
to control the physical link between a DTE and a liest versions of X.25 include facilities[18] which provide
DCE. Common implementations use X.21, EIA- for OSI network layer Addressing (NSAP addressing, see
232, EIA-449 or other serial protocols. below).[19]
• Data link layer: The data link layer consists of the
link access procedure for data interchange on the
link between a DTE and a DCE. In its implementa- 70.2.2 User device support
tion, the Link Access Procedure, Balanced (LAPB)
is a data link protocol that manages a communica- X.25 was developed in the era of computer terminals con-
necting to host computers, although it also can be used
tion session and controls the packet framing. It is a
bit-oriented protocol that provides error correctionfor communications between computers. Instead of di-
and orderly delivery. aling directly “into” the host computer – which would
require the host to have its own pool of modems and
• Packet layer: This layer defined a packet-layer pro- phone lines, and require non-local callers to make long-
tocol for exchanging control and user data packets distance calls – the host could have an X.25 connection
to form a packet-switching network based on virtual to a network service provider. Now dumb-terminal users
calls, according to the Packet Layer Protocol. could dial into the network’s local “PAD” (Packet As-
388 CHAPTER 70. X.25
Network Service (CONS).[21] Public X.25 networks were a price-per-segment on top of this.[30] Link speeds var-
not required to make use of NSAP addressing, but, to ied, typically from 2400 bit/s up to 2 Mbit/s, although
support OSI CONS, were required to carry the NSAP speeds above 64 kbit/s were uncommon in the public net-
addresses and other ITU-T specified DTE facilities trans- works. A segment was 64 bytes of data (rounded up,
parently from DTE to DTE.[22] Later revisions allowed with no carry-over between packets),[31] charged to the
multiple addresses in addition to X.121 addresses to be caller[32] (or callee in the case of reverse charged calls,
carried on the same DTE-DCE interface: Telex address- where supported).[33] Calls invoking the Fast Select facil-
ing (F.69), PSTN addressing (E.163), ISDN addressing ity (allowing 128 bytes of data in call request, call con-
(E.164), Internet Protocol addresses (IANA ICP), and lo- firmation and call clearing phases)[34] would generally at-
cal IEEE 802.2 MAC addresses.[23] tract an extra charge, as might use of some of the other
X.25 facilities. PVCs would have a monthly rental charge
PVCs are permanently established in the network and
therefore do not require the use of addresses for call and a lower price-per-segment than VCs, making them
cheaper only where large volumes of data are passed.
setup. PVCs are identified at the subscriber interface
by their logical channel identifier (see below). However,
in practice not many of the national X.25 networks sup-
ported PVCs. 70.5 X.25 packet types
One DTE-DCE interface to an X.25 network has a max-
imum of 4095 logical channels on which it is allowed to 70.6 X.25 details
establish virtual calls and permanent virtual circuits,[24]
although networks are not expected to support a full 4095
The network may allow the selection of the maximal
virtual circuits.[25] For identifying the channel to which a
length in range 16 to 4096 octets (2n values only) per vir-
packet is associated, each packet contains a 12 bit logi-
tual circuit by negotiation as part of the call setup pro-
cal channel identifier made up of an 8-bit logical chan-
cedure. The maximal length may be different at the two
nel number and a 4-bit logical channel group number.[24]
ends of the virtual circuit.
Logical channel identifiers remain assigned to a virtual
circuit for the duration of the connection.[24] Logical
channel identifiers identify a specific logical channel be- • Data terminal equipment constructs control packets
tween the DTE (subscriber appliance) and the DCE (net- which are encapsulated into data packets. The pack-
work), and only has local significance on the link between ets are sent to the data circuit-terminating equip-
the subscriber and the network. The other end of the con- ment, using LAPB Protocol.
nection at the remote DTE is likely to have assigned a • Data circuit-terminating equipment strips the layer-
different logical channel identifier. The range of possible 2 headers in order to encapsulate packets to the in-
logical channels is split into 4 groups: channels assigned ternal network protocol.
to permanent virtual circuits, assigned to incoming virtual
calls, two-way (incoming or outgoing) virtual calls, and
outgoing virtual calls.[26] (Directions refer to the direc- 70.6.1 X.25 facilities
tion of virtual call initiation as viewed by the DTE – they
all carry data in both directions.)[27] The ranges allowed X.25 provides a set of user facilities defined and de-
a subscriber to be configured to handle significantly dif- scribed in ITU-T Recommendation X.2.[35] The X.2 user
fering numbers of calls in each direction while reserving facilities fall into five categories:
some channels for calls in one direction. All International
networks are required to implement support for perma- • Essential facilities;
nent virtual circuits, two-way logical channels and one-
way logical channels outgoing; one-way logical channels • Additional facilities;
incoming is an additional optional facility.[28] DTE-DCE
• Conditional facilities;
interfaces are not required to support more than one logi-
cal channel.[26] Logical channel identifier zero will not be • Mandatory facilities; and,
assigned to a permanent virtual circuit or virtual call.[29]
The logical channel identifier of zero is used for packets • Optional facilities.
which don't relate to a specific virtual circuit (e.g. packet
layer restart, registration, and diagnostic packets). X.25 also provides X.25 and ITU-T specified DTE op-
tional user facilities defined and described in ITU-T Rec-
ommendation X.7.[36] The X.7 optional user facilities fall
into four categories of user facilities that require:
70.4 Billing
• Subscription only;
In public networks, X.25 was typically billed as a flat
monthly service fee depending on link speed, and then • Subscription followed by dynamic invocation;
390 CHAPTER 70. X.25
• X.PC
The X.25 Recommendation allows many options for each
network to choose when deciding which features to sup- • packeting – the Philippine X.25 network, and first
port and how certain operations are performed. This publicly operated packet switching network
means each network needs to publish its own document
giving the specification of its X.25 implementation, and
most networks required DTE appliance manufacturers to
undertake protocol conformance testing, which included
70.8 References
testing for strict adherence and enforcement of their net-
work specific options. (Network operators were particu- [1] CCITT, Study Group VII, Draft Recommendation X-25,
March 1976
larly concerned about the possibility of a badly behaving
or misconfigured DTE appliance taking out parts of the [2] History of X.25, CCITT Plenary Assemblies and Book
network and affecting other subscribers.) Therefore, sub- Colors
scriber’s DTE appliances have to be configured to match
the specification of the particular network to which they [3] Foregenix (February 2012). “X.25 within the Payment
Card Industry” (PDF). Retrieved 25 May 2016.
are connecting. Most of these were sufficiently different
to prevent interworking if the subscriber didn't configure [4] (Friend et al. 1988, p. 242)
their appliance correctly or the appliance manufacturer
didn't include specific support for that network. In spite [5] (Friend et al. 1988, p. 243)
of protocol conformance testing, this often lead to inter-
[6] ITU-T Recommendation X.28.
working problems when initially attaching an appliance
to a network. [7] ITU-T Recommendation X.3.
In addition to the CCITT/ITU-T versions of the protocol, [8] “X.25 Virtual Circuits – Transpac in France – Pre-Internet
four editions of ISO/IEC 8208 exist:[39] Data Networking”.
[18] ITU-T Recommendation X.25, G.3.2 Called address ex- • Friend, George E.; Fike, John L.; Baker, H. Charles;
tension facility, pp. 141–142. Bellamy, John C. (1988). Understanding Data Com-
munications (2nd ed.). Indianapolis: Howard W.
[19] ITU-T Recommendation X.223, Appendix II. Sams & Company. ISBN 0-672-27270-9.
[20] ITU-T Recommendation X.7 (04/2004), pp. 17–18. • Pooch, Udo W.; William H. Greene; Gary G.
Moss (1983). Telecommunications and Networking.
[21] ITU-T Recommendation X.223.
Boston: Little, Brown and Company. ISBN 0-316-
[22] ITU-T Recommendation X.25 (10/96), Annex G, p. 140. 71498-4.
[23] ITU-T Recommendation X.213, Annex A. • Schatt, Stan (1991). Linking LANs: A Micro Man-
ager’s Guide. McGraw-Hill. ISBN 0-8306-3755-9.
[24] ITU-T Recommendation X.25 (10/96), p. 45.
• Thorpe, Nicolas M.; Ross, Derek (1992). X.25
[25] ITU-T Recommendation X.283 (12/97), p. 42. Made Easy. Prentice Hall. ISBN 0-13-972183-5.
[26] ITU-T Recommendation X.25 (10/96), Annex A, pp.
119–120.
70.10 External links
[27] ISO/IEC 8208:2000, Fourth Edition, p. 61.
• Recommendation X.25) at ITU-T
[28] ITU-T Recommendation X.2 (03/2000), p. 4.
• Cisco X.25 Reference
[29] ISO/IEC 8208:2000, Fourth Edition, 3.7.1, p. 7.
• An X.25 Networking Guide with comparisons to
[30] ITU-T Recommendation D.11 (03/91), p. 2.
TCP/IP
[31] ITU-T Recommendation D.12 (11/88), p. 1.
• X.25 – Directory & Informational Resource
[32] ITU-T Recommendation X.7 (04/2004), p. 42.
• RFCs and other resources by Open Directory
[33] ITU-T Recommendation D.11 (03/91), p. 3.
Algoritmy, Uri-Levy, Snow Blizzard, Nodira777, Soroosh60, Sni56996, YangYanhao, BattyBot, SimmeD, Belmira11, Laodah, Cyberbot
II, ChrisGualtieri, Ozziev, Laberkiste, Khazar2, Enterprisey, Phobosrocks, Dexbot, Kushalbiswas777, Djbrainboy, Webclient101, Mogism,
Brendonshay, Lugia2453, Mhcs.907, Frosty, Jochen Burghardt, Skylo Frost, FallingGravity, Vahid javani, I am One of Many, Jamesm-
cmahon0, Blackguy1212, AmaryllisGardener, Satassi, Bloorain, Waqaee, LCS check, NYBrook098, Ugog Nizdast, Ginsuloft, Quenhitran,
Dkwebsub, Dan.inPractice, Anrnusna, Ethanlim, Stamptrader, Dastoger Bashar, Hobbobobo, GeorgeAhad, G2dk7g, Tanmay bhattad,
Kaystay, Monkbot, Thibaut120094, Akki420, Somepics, Nonynonna, Jadecichy, Rattandip, Chadcallahan, Evolutionvisions, Psychedgrad,
ChamithN, Gpahal, Interpuncts, Ayush3504, Tensorproduct, HAN81, Waltersquare, Lgrush, KasparBot, Voloum, Pmaiden, Khalid157,
4thAgeDragon, Maczkopeti, Streetdaddy101, Abhishek sharma17, Snowweatyh, DICKSON BARASA, Fatimaatta, GreenC bot, Igor nova,
Luke wiki1234567, Kingjohn12345, DavidGreens and Anonymous: 977
• Analogy Source: https://en.wikipedia.org/wiki/Analogy?oldid=731863458 Contributors: AxelBoldt, Vicki Rosenzweig, Toby Bartels, Sf-
dan, Hephaestos, Wapcaplet, Ihcoyc, CatherineMunro, Hermeneus, Charles Matthews, MatrixFrog, Fuzheado, Fvw, Metasquares, Wetman,
Branddobbe, Jredmond, Blainster, Quincy, Marc Venot, DavidCary, Geeoharee, Bradeos Graphon, Thetorpedodog, Decagon, Pgan002,
Fpahl, Karol Langner, Bumm13, Marc Mongenet, Salimfadhley, DanielCD, Rich Farmbrough, Kjoonlee, CanisRufus, Walden, Szquirrel,
Kwamikagami, Aude, Bobo192, Brim, Martg76, Sam Korn, Alansohn, Riana, Wikidea, Echuck215, Garzo, BMWman, Mikeo, Bsad-
owski1, Dragunova, Blaxthos, Alexrudd, Angr, Velho, Rocastelo, Kzollman, Kelisi, Dodo78, Dysepsion, Magister Mathematicae, BD2412,
Rjwilmsi, KYPark, Jake Wartenberg, Amire80, Nneonneo, The wub, Yamamoto Ichiro, Margosbot~enwiki, RexNL, Kolbasz, TheDJ,
ARAJ, Wavelength, RussBot, Nofrak, SpuriousQ, Ziddy, Anchjo, Aeusoes1, Grafen, RazorICE, Cleared as filed, DAJF, Reyk, Tevildo,
JoanneB, Draicone, DVD R W, SmackBot, Lavintzin, Moeron, Bobet, KnowledgeOfSelf, Ikip, Jagged 85, Delldot, Mhss, Papa November,
Can't sleep, clown will eat me, JonHarder, Yidisheryid, Addshore, Ines it, Cybercobra, Nakon, Jon Awbrey, Vina-iwbot~enwiki, Deiz,
Drunken Pirate, Spiritia, SashatoBot, Nick Green, JackLumber, Kirkoconnell, 16@r, Grumpyyoungman01, Makyen, Wikidrone, She-
herazahde, Wolfdog, Fuzzycasserole, Pgr94, Gregbard, Phatom87, Cydebot, Reywas92, Gogo Dodo, Corpx, Julian Mendez, Miguel de
Servet, Christian75, Letranova, Thijs!bot, Helgus, A3RO, Dfrg.msc, Christopher James Dubey, Transhumanist, Good Vibrations, Anti-
VandalBot, Majorly, Vic226, Holyoak, Doktor Who, Jhsounds, Salgueiro~enwiki, Orarch, JAnDbot, Edwardspec TalkBot, Hut 8.5, TAn-
thony, Gdvwhite, VoABot II, Pdturney, JamesBWatson, Verkhovensky, Ling.Nut, Kutu su~enwiki, EagleFan, Rebels12, Wikivangelist,
PRMerkley, FisherQueen, MartinBot, Schmloof, Kiore, Tikitactinker, R'n'B, J.delanoy, Trusilver, EscapingLife, Katalaveno, MezzoMezzo,
HiLo48, Chiswick Chap, NewEnglandYankee, SJP, Student7, Jwh335, Greg-si, Macedonian, Jeff G., Kyle the bot, TXiKiBoT, Rei-bot, On-
toraul, Martin451, Jackfork, LeaveSleaves, Pishogue, Enigmaman, Synthebot, Enviroboy, Burntsauce, Insanity Incarnate, Helelen, SieBot,
Arpose, Caltas, Happysailor, Universalcosmos, Undead Herle King, Aruton, Anchor Link Bot, Emptymountains, Ajolewis, Martarius,
ClueBot, Rumping, The Thing That Should Not Be, Gawaxay, Supertouch, Niceguyedc, Grunty Thraveswain, Excirial, Rhododendrites,
SchreiberBike, La Pianista, Aitias, XLinkBot, Micmachete, Avoided, MystBot, Joseph.little, Addbot, Tanhabot, Ronhjones, Cst17, Down-
load, Dougbast, The world deserves the truth, West.andrew.g, Tassedethe, דניאל ב., Jarble, Megaman en m, ZX81, Yobot, Anypodetos,
AnomieBOT, Jim1138, AdjustShift, Materialscientist, E235, Citation bot, GnawnBot, Capricorn42, Luch4, A157247, Omnipaedista, Cap-
tobvius, Coochie3, HJ Mitchell, Boxplot, Σ, MKFI, Jandalhandler, Gamewizard71, ItsZippy, Ivo Coelho, Vrenator, Raidon Kane, Reaper
Eternal, RjwilmsiBot, TjBot, EmausBot, YAYLOLAGE, Conser~enwiki, Racerx11, Syncategoremata, Ryanjcolligan, Scgtrp, K6ka, Mind-
Shifts, Dhmelody, TyA, Donner60, BioPupil, Bill william compton, ChuispastonBot, Analgape, DASHBotAV, ClueBot NG, EIN x FA-
MOUSxX, Satellizer, J151e, Helpful Pixie Bot, Faus, Lewisswinger, Wbm1058, BG19bot, Pacerier, Kyoakoa, Who.was.phone, Jander80,
Mark Arsten, CitationCleanerBot, Theasad.ali, BattyBot, David.moreno72, Miszatomic, ~riley, Delanydi, ChrisGualtieri, Dexbot, Num-
bermaniac, Lugia2453, Frosty, Jochen Burghardt, Aa2093, Morris.jake, Yuki huang, Carrot Lord, Mitchellriley46, Star767, Yomellama-
mama, WikiEnthusiastNumberTwenty-Two, Dmd104, Monkbot, Dguzzo, Asdklf;, Muzikbox, Jpshuskus, BashBoy00, Nøkkenbuer, Jhtx,
PHCleverley, Snoopy44444545664 and Anonymous: 323
• AppleTalk Source: https://en.wikipedia.org/wiki/AppleTalk?oldid=733627372 Contributors: Sodium, Mav, Tarquin, Rjstott, Aldie, SJK,
SimonP, Maury Markowitz, Edward, Nixdorf, Lovely Chris, Elano, GRAHAMUK, Zoicon5, Topbanana, Ldo, RedWolf, Kadin2048,
Hippietrail, Wikibot, Alerante, Fennec, Sj, Inkling, Sdfisher, Siroxo, AlistairMcMillan, Raekwon, Bobblewik, Bumm13, Tooki, Memen-
toVivere, Blorg, Freakofnurture, Rich Farmbrough, Pak21, Alistair1978, Byrial, Nchaimov, CanisRufus, Kross, Sietse Snel, Lunaverse,
Barcex, Cmdrjameson, Polluks, .:Ajvol:., Trevj, HasharBot~enwiki, Rd232, Kusma, Blaxthos, Nuno Tavares, TotoBaggins, Graham87,
Casey Abell, Ctempleton3, FlaBot, Jsephton, Joe07734, Nwatson, Bgwhite, YurikBot, Wavelength, Borgx, RussBot, DMahalko, Peter
S., Bovineone, Pjhagop, DragonHawk, Grafen, Mmccalpin, Giltramirez, Xpclient, Wknight94, MoriBot~enwiki, Picksomething, Zvika,
SmackBot, Reedy, Basil.bourque, Happywaffle, Bluebot, Manta7, Frap, JonHarder, Pattersonc, Mwtoews, Zac67, Dgatwood, Stradv16,
This user has left wikipedia, IronGargoyle, RomanSpa, Dl2000, Phuzion, RekishiEJ, Pmyteh, Drinibot, Denham062, Pgr94, Phatom87,
ChristTrekker, Thijs!bot, Sdream93, Laboye, RobotG, WinBot, Ownlyanangel, Shlgww, JAnDbot, Stefan Bethke, Magioladitis, Syn-
ergyStar, Lenoil~enwiki, GrammarNSpellChecker, Spellmaster, Nrobbin, RP88, Lilac Soul, Alexthepuffin, Inwind, Dan dan rae, X!,
VolkovBot, Jeff G., TXiKiBoT, Vanished user ikijeirw34iuaeolaseriffic, Wiae, Synthebot, Infodriveway, Bentogoa, Lightmouse, Manoj C
Menon, ClueBot, Me5000, Rjd0060, Jzink123, TReidLewis, PixelBot, John Nevard, Rhododendrites, Sun Creator, Technorj, Thehelpfu-
lone, Aitias, Mac128, LieAfterLie, Jdmcs, Gwandoya, Shashank208, JBsupreme, Lightbot, Legobot, Luckas-bot, KGMallory, Yobot, Peter
Flass, AnomieBOT, 1exec1, Materialscientist, TinucherianBot II, Censorship Workaround, QuixoticWonderer, FrescoBot, Degress, Arekr-
ishna, AlanOpp, SeoMac, RjwilmsiBot, EmausBot, John of Reading, Mojo66, Xanchester, ClueBot NG, Lord Chamberlain, the Renowned,
Alexbee2, Cyberpower678, Cyberbot II, Khazar2, Codename Lisa, Frosty, Jackmcbarn, Amazemen, Sudpiop and Anonymous: 121
• ARPANET Source: https://en.wikipedia.org/wiki/ARPANET?oldid=738185425 Contributors: The Cunctator, Dreamyshade, Zundark,
The Anome, Snorre, Hephaestos, Chris Q, Edward, Tim Starling, Wwwwolf, Looxix~enwiki, Ahoerstemeier, Jimfbleak, Angela, Rl,
Rob Hooft, G Prime, Dysprosia, WhisperToMe, DJ Clayworth, Furrykef, Itai, Nv8200pa, Jnc, François~enwiki, Thue, Bevo, Toreau,
Flockmeal, Frazzydee, Phil Boswell, Twice25, Robbot, Sdedeo, Boffy b, RedWolf, Postdlf, Sverdrup, Timrollpickering, Giftlite, DocWat-
son42, Ike~enwiki, Inter, Everyking, Dratman, Erdal Ronahi, Daibhid C, Siroxo, Matt Crypto, Bobblewik, CryptoDerk, Quadell, Be-
land, Jossi, Maximaximax, Szajd, Vishahu, Mschlindwein, Ohka-, Abdull, Adashiel, Grunt, Kate, JTN, Discospinster, Rich Farmbrough,
Guanabot, Jwise77, Adam850, Byrial, Kim Meyrick, Night Gyr, ESkog, Petrus~enwiki, Uli, Ylee, Shanes, Bookofjude, Coolcaesar,
TMC1982, Longhair, Smalljim, Cmdrjameson, KBi, La goutte de pluie, David Gale, PiccoloNamek, Twobells, Jumbuck, Alansohn,
Guy Harris, Uogl, Andrew Gray, Lord Pistachio, JoaoRicardo, Wensong~enwiki, Zippanova, Albino Fox, Lugevas, Cburnett, Docboat,
TheCoffee, Netkinetic, Ceyockey, Red dwarf, Ericl234, Mhazard9, Smoth 007, Ian Moody, TSP, Woohookitty, Uttaddmb, Mu301,
DoctorWho42, Rocastelo, Velvetsmog, Tabletop, Gimboid13, Ashmoo, Qwertyus, Dave Cohoe, Squideshi, Rjwilmsi, Nightscream, Jake
Wartenberg, Vary, Arabani, TedPostol, Quiddity, Bruce1ee, Collard, Miha Ulanov, Jeffmcneill, Fred Bradstadt, Waynemcdougall, Un-
truth, Daderot, Jrtayloriv, Preslethe, Chobot, Bgwhite, Gwernol, YurikBot, KenBailey, Cycletime, Eggman183, Hydrargyrum, Shell
Kinney, Rsrikanth05, Carps, CarlHewitt, Grafen, Ino5hiro, Barberio, Cryptosmith, Xdenizen, Daniel Mietchen, Bobak, Allynnc, Db-
firs, BOT-Superzerocool, Yudiweb, Brisvegas, Cengelbart, Bill.martin, Capt Jim, Zzuuzz, Ali K, Johna~enwiki, Jack Upland, Viper-
Snake151, Huebi~enwiki, KNHaw, Zvika, Samuel Blanning, Veinor, SmackBot, Mmernex, EvilCouch, Classicfilms, Gavin77, Bjelleklang,
394 CHAPTER 70. X.25
KocjoBot~enwiki, Btm, Kintetsubuffalo, Edgar181, Beerquest, Gilliam, Folajimi, Andy M. Wang, StanislavJ, Nbarth, DHN-bot~enwiki,
Ransu, JonHarder, Renegade Lisp, BostonMA, Dbrown46, Mwtoews, Wybot, DMacks, Ohconfucius, Will Beback, SashatoBot, Esrever,
AThing, Disavian, Arbustoo, Mr Stephen, Manifestation, MTSbot~enwiki, Kvng, TJ Spyke, Michaelbusch, MFago, CzarB, Joseph Solis
in Australia, Igoldste, Nethac DIU, Color probe, Az1568, Courcelles, Cyranomn, Guardianangelz, Tawkerbot2, Michaelwilson, East-
law, JForget, Mbiesz, Edward Vielmetti, CBM, CuriousEric, WeggeBot, Neelix, Cydebot, Flowerpotman, Kimyu12, Bramlet Abercrom-
bie, Vyselink, Aduro.sudonim, Smiteri, Thijs!bot, Epbr123, Martyr2566, Anupam, Headbomb, SGGH, Nezzadar, Tellyaddict, Rickin-
Baltimore, SusanLesch, Dawnseeker2000, Omaunder, Fmlyguy08, AntiVandalBot, LinaMishima, Leuqarte, JAnDbot, Harryzilber, The
Transhumanist, Arch dude, Hut 8.5, PhilKnight, Kalicaloo1212, .anacondabot, Geniac, Kilrothi, Magioladitis, Legallydolls, Bongwar-
rior, VoABot II, JamesBWatson, Nyttend, WODUP, Prestonmcconkie, Avicennasis, Jodi.a.schneider, Robin S, Gwern, MartinBot, Gully
33, CommonsDelinker, J.delanoy, Mange01, Bogey97, Reginhild, Cyanolinguophile, Rhinestone K, VAcharon, Public Menace, Dave
Dial, Milo03, Maxzig, (jarbarf), Saltysailor, Mufka, Phirazo, Doug4, Jamesontai, DorganBot, Gtg204y, Bonadea, Scott Illini, Unicorn-
Tapestry, Ichthyos, D A Patriarche, Drmargi, Philip Trueman, TXiKiBoT, Oshwah, Chris-marsh-usa, Ripepette, Ngch89, Harvsterjake,
AlleborgoBot, Thunderbird2, Logan, SiliconWolf, Kbrose, SieBot, StAnselm, 4wajzkd02, BotMultichill, Mikebar, LawrenceGRoberts,
Blueclaw, Le Pied-bot~enwiki, Maijohn, Oxymoron83, Lightmouse, Techman224, OKBot, ImageRemovalBot, ClueBot, Plastikspork,
Trevor.harris1, Der Golem, Objective3000, Mavericks12, Niceguyedc, Piledhigheranddeeper, Rhododendrites, Kmaster, CodeCaster,
Ottawa4ever, Thingg, Vegetator, Wmjames, Anderssl, Aadh, Adouglass, Egmontaz, XLinkBot, Pichpich, Gerhardvalentin, NellieBly,
Dgtsyb, TravisAF, RyanCross, Addbot, Ghettoblaster, Some jerk on the Internet, Jojhutton, Knight of Truth, Fgnievinski, Blethering
Scot, Ronhjones, Fluffernutter, Elainecs, Glane23, Favonian, Torla42, Graylorde, Тиверополник, Mightybozo, Alanscottwalker, דוד
שי, Gail, LuK3, Pointer1, Luckas-bot, Yobot, Fraggle81, Donfbreed, GilCahana, Palladmial, 12george1, Reddog81, Peter Flass, Than-
mark, AnomieBOT, Rubinbot, Jim1138, TwistedText, Dmf360, Materialscientist, 90 Auto, Citation bot, JohnnyB256, Quebec99, Lil-
Helpa, GrouchoBot, VonFassen, Omnipaedista, Samoher, Kaylanimis, Multixfer, Jurcking, N419BH, Shadowjams, Gnuish, A.amitkumar,
Sushil20051982, Zacharysyoung, Floparallel, FrescoBot, Abeair, W Nowicki, AnnDuvall, D'ohBot, ZedGreen, Redrose64, ImageTag-
Bot, Tom.Reding, Lineslarge, Full-date unlinking bot, Jrfixer, TobeBot, Throwaway85, Jonkerz, Lotje, Zvn, Mr.98, Tbhotch, DARTH
SIDIOUS 2, RjwilmsiBot, Balph Eubank, DASHBot, Steve03Mills, EmausBot, John of Reading, Acather96, Immunize, GoingBatty,
TuHan-Bot, Wikipelli, Dcirovic, AvicBot, Rapidosity, TcomptonMA, W163, Coasterlover1994, L Kensington, Puffin, ChuispastonBot,
Marioluigi98, BornonJune8, ClueBot NG, Oldthumper, MelbourneStar, Lord Chamberlain, the Renowned, Frietjes, Koalabearyz, Helpful
Pixie Bot, Vikramanb17, PearlSt82, Joeykai, CAWylie, Pascal72~enwiki, BattyBot, Thom2729, Dexbot, NFLisAwesome, Sriharsh1234,
Zziccardi, Chrono85, François Robere, Lukesimo, Babitaarora, Thevideodrome, Ginsuloft, Whizz40, Twistie1, Philroc, Lasturias, Ja-
conaFrere, Monkbot, SilverEditor, Gideon279, Trackteur, Macofe, Prpsct, Garfield Garfield, Mkvision, Charliecombs, MarlovianPlough,
Abuanand01, KeeveChris, Whalestate, KasparBot, JAKnott, Amrutkowski, Zamaster4536, GreenC bot and Anonymous: 524
• Asynchronous Transfer Mode Source: https://en.wikipedia.org/wiki/Asynchronous_Transfer_Mode?oldid=737656198 Contributors:
Tobias Hoevekamp, Derek Ross, Zundark, The Anome, AlexWasFirst, Youssefsan, Aldie, Leandrod, Edward, Michael Hardy, Zani-
mum, Darrell Greenwood, Rl, Edaelon, Harris7, Kdaley, Colin Marquardt, Pedant17, Jnc, Populus, AnonMoos, Robbot, RedWolf, Nurg,
Wikibot, Gwicke~enwiki, Giftlite, Dinomite, Monedula, Everyking, Joconnor, Rookkey, Niteowlneils, Richard cocks, Matt Crypto, Dar-
rien, Bobblewik, Tagishsimon, Onco p53, Quarl, Pembers, Necrothesp, Karl-Henner, Creidieki, Mzabaluev, Adashiel, EagleOne, Jkl,
Rich Farmbrough, Guanabot, Sladen, Smyth, Xezbeth, Dyl, Project2501a, *drew, Spearhead, Neilrieck, West London Dweller, Bobo192,
MarkWahl, Robotje, Get It, Unquietwiki, Kjkolb, Ivansanchez, Rjamorim, Espoo, Alansohn, Anthony Appleyard, Thebeginning, Snowolf,
Markrod, Cburnett, Hydrowire, Sakus, Lerdsuwa, Brholden, Blaxthos, Kiffahh, Kelly Martin, RHaworth, BernardM, Camw, Ylem, Ilario,
Brentdax, Beej, Bluemoose, M412k, Teemu Leisti, Graham87, BD2412, Chrisc, RxS, Chrischambers, Ryan Norton, Jivecat, Salix alba,
Vegaswikian, Oblivious, ElKevbo, Ttwaring, FlaBot, RexNL, Pengu, Chobot, YurikBot, Tetzcatlipoca, Hyad, Pi Delport, RadioFan, Gaius
Cornelius, Chris Murphy, NickBush24, Daniel Luechtefeld, Ino5hiro, Dr Debug, Zwobot, Gr33ndata, Bobstopper, Janto, Ketil3, Phil
Holmes, Bluezy, SmackBot, Unyoyega, Gilliam, Ohnoitsjamie, Betacommand, Richfife, Skintigh, Oli Filth, Silent SAM, DHN-bot~enwiki,
TripleF, Martensjd, Rrburke, Chrylis, Het, Wizardman, Kukini, Zac67, Kylebrz, Vanished user 9i39j3, Soumyasch, Jec, Dicklyon, To-
tel, Saxbryn, Kvng, Iridescent, Paul Koning, Walton One, Tawkerbot2, CmdrObot, Pleyden, Jesse Viviano, Requestion, Duraivelanc,
Cheesysam, Phatom87, IoannisK, Ashok.Nair, Kozuch, Thijs!bot, TFriesen, Drpixie, Electron9, Gerry Ashton, Nezzadar, Philippe, Amlz,
LachlanA, AntiVandalBot, Davidoff, Edokter, Riffle, Floppytoes, JAnDbot, Chaitanya.lala, Barek, TAnthony, Beaumont, VoABot II,
Mmkh, SandStone, Allstarecho, MartinBot, Dgepstein, Jim.henderson, Naohiro19, Genghiskhanviet, Lilac Soul, J.delanoy, Mange01, Tan-
nerbrockwell, Peter Chastain, Adriao, Javawizard, Public Menace, LordAnubisBOT, Ls6777, Ra6907, Inwind, Emiller213, Funandtrvl,
JohnGrantNineTiles, VolkovBot, CSumit, Atm153, Philip Trueman, Vipinhari, Anonymous Dissident, Melsaran, BotKung, Tomg11030,
Iamzemasterraf, Why Not A Duck, Chenzw, KjellG, Wisamzaqoot, Anuragkothari, Kbrose, Nubiatech, ToePeu.bot, VVVBot, Winterspan,
Keilana, Bentogoa, Flyer22 Reborn, Jojalozzo, Arunachalammanohar, Smfavaro, Martarius, ClueBot, Methossant, Wutsje, Timberframe,
Niceguyedc, Vaibhav.nimbalkar, Yogi raj2, Tanketz, Propeng, Captpossum, Vivio Testarossa, Panda34, Apparition11, Antti29, Stickee,
Mohanchander, Jugandi, Dgtsyb, Kbdankbot, Addbot, Blethering Scot, Graham.Fountain, AndersBot, ChenzwBot, Тиверополник, En-
duser, Legobot, Luckas-bot, Yobot, Les boys, Backslash Forwardslash, 1exec1, Jim1138, Kevintolly, Materialscientist, E2eamon, Arthur-
Bot, Quebec99, DataWraith, Frankie0607, Cirne100, Visiting1, Lady alys, Ozzie13, Green Cardamom, FrescoBot, Nageh, W Nowicki,
GreenZeb, Orenburg1, Sricciar, Tekdude, Mosfet RJF, DARTH SIDIOUS 2, WildBot, Ericjmonson, EmausBot, Jsung123, Olof nord, Kl-
brain, Tommy2010, ZéroBot, Carbonlethagy, Demonkoryu, MonoAV, Teapeat, ClueBot NG, Lord Chamberlain, the Renowned, Chester
Markel, Rezabot, Helpful Pixie Bot, Sumankane, Azerekh, BG19bot, Abhigyan.gaurav, ChrisGualtieri, Webclient101, UNOwenNYC,
Comp.arch, Semsi Paco Virchow, Narky Blert, Drsunnymount, GreenC bot and Anonymous: 401
• AX.25 Source: https://en.wikipedia.org/wiki/AX.25?oldid=730870910 Contributors: Jvangorp, Vandys, Bobblewik, DNewhall, ChrisRu-
volo, Jda, Simon South, Ralf.Baechle, Bookandcoffee, Ylem, Eyreland, Rjwilmsi, Mirror Vax, Mcleodm, Anonym1ty, Oh2mqk, Shaddack,
Brandon, Extraordinary, robot, SmackBot, Kharker, Mulder416, EVula, Adsllc, Euchiasmus, Xofc, Quibik, Dawnseeker2000, Lux-
omni, Storkk, Xeno, Dtheweather9, K7net, STBotD, DorganBot, Sv1xv, Muhandes, Kbdankbot, Addbot, Debresser, Yobot, Milk’s Favorite
Bot II, AnomieBOT, Nojiratz, Trappist the monk, DASHBot, Dewritech, Dcirovic, Sodmy, Kc2hmv, Chosulman, 32RB17, KasparBot and
Anonymous: 26
• Communicating sequential processes Source: https://en.wikipedia.org/wiki/Communicating_sequential_processes?oldid=724948365
Contributors: Derek Ross, Michael Hardy, Ggaughan, UphillPhil, Phil Boswell, RickBeton, Borrible, DavidCary, Fishal, Discospinster,
LuckyStarr, Leibniz, Ged Byrne, BACbKA, EmilJ, Kgaughan, Whosyourjudas, Suruena, Linas, Lost.goblin, Daira Hopwood, Ruud Koot,
Qwertyus, Rjwilmsi, Ligulem, Jameshfisher, RobyWayne, Quuxplusone, BMF81, RussBot, Arado, CarlHewitt, Jpbowen, LodeRunner,
Mig21bp, Nikkimaria, Cedar101, Black-Velvet, JLaTondre, Dpotop, SmackBot, Pintman, Betacommand, Letdorf, Nbarth, Allan McInnes,
Leland McInnes, JustAnotherJoe, MichaelBillington, Physis, Krauss, Thijs!bot, West Brom 4ever, JustAGal, YSolik, The Transhuman-
ist, Bencherlite, Ourarash, Stijn Vermeeren, Gwern, STBot, R'n'B, Rimwolf, Outmind~enwiki, Gwizard, Ivan Štambuk, SummerWith-
Morons, Shaiguitar, Thehelpfulone, Addbot, DOI bot, LaaknorBot, Lightbot, Legobot, Luckas-bot, Yobot, AnomieBOT, Citation bot,
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 395
Xqbot, Damienivan, Aclassifier, Citation bot 1, Vasywriter, Tom.Reding, Cathy Richards, Yeng-Wang-Yeh, JonathanMayUK, JamieHan-
lon, WikitanvirBot, ZéroBot, H3llBot, Igrigorik, Antiguru, Phil30129, KartikSinghal, Helpful Pixie Bot, BG19bot, Webclient101, Loyso
b, Nclridd, Jgrodziski, Monkbot, Vaskir and Anonymous: 83
Sionus, Khodeirmas229, Melmann, JimVC3, Capricorn42, Mankapr, Wingroad2, Meewam, Millahnna, Nasnema, Batesmas214, Venkaat,
Ched, GrandKokla, MiniBill, Anna Frodesiak, Wazofski, Dr Oldekop, Cat1project, Tdjewell, Frosted14, Omnipaedista, Charismatic
Verma, Frankie0607, Brandon5485, Simon321, Saalstin, JasonSWrench, Spiderwriter, Shadowjams, Amitkhullar, Griffinofwales, Altraul,
Nywici, Fingerz, FrescoBot, Mshuda, Voxii, Fortdj33, Rmcnabb91, Sky Attacker, Wgpers, Webknguyen, Hiapale21, Comm&emotion,
Rnagar4, Jamesooders, Cinomancaca, DivineAlpha, Intelligentsium, MacMed, Pinethicket, I dream of horses, Rokaszil, Abductive, Invi-
sion2020, D(r)ead End, MJ94, Hellknowz, JuliaBaxter51, AnandaDaldal, Calint, RedBot, Ania Lian, Ezhuttukari, Madameoctopus, Bool-
syet, Jandalhandler, Fumitol, Crimanats3, Dude1818, PSY7, Ceecee1212, FoxBot, Thrissel, TobeBot, Schmiggidy, Train2104, Antara
singhania, Exagon, Fox Wilson, Dinamik-bot, Vrenator, UNIT A4B1, LilyKitty, Joey1978, Vancouver Outlaw, ArielForeman, Amirsmile,
Arsmanimegalai, Paralympiakos, Sivakumar.sachin, Reaper Eternal, Diannaa, Dmkolobov, Suffusion of Yellow, Jd Tendril, Tbhotch,
Csmithslca, DARTH SIDIOUS 2, Obankston, Chy1991, Im-tha-one, Onel5969, Mean as custard, Stj6, RjwilmsiBot, Coast123, Ripchip
Bot, Slice637636, Regancy42, Noommos, Rlholden, Yash k bhatt, Knoweco, Skamecrazy123, Idea101, DASHBot, Gloomofdom, Esoglou,
EmausBot, John of Reading, Yuhter, WikitanvirBot, Jnsdfbjisdfbjsfdjnsfd, Spamerman, Racerx11, Faolin42, GoingBatty, ShilpaSV,
ShakeeraDMyers, Mylaramkrishna, L235, Klbrain, Teerickson, Forestn101, Solarra, Encilee, Tommy2010, Sillybillypiggy, Wikipelli,
K6ka, Sanghera2685281, AsceticRose, Erpert, Savh, Evanh2008, Prayerfortheworld, Daonguyen95, Fæ, Josve05a, Traxs7, Érico, Lateg,
Jeyda007, Szalakóta, The Nut, Matthewcgirling, Alpha Quadrant (alt), Cobaltcigs, Pingu.dbl96, Monterey Bay, Gz33, Ocaasi, Tolly4bolly,
RaptureBot, Tridibbhowmik, Thine Antique Pen, Architect21c, L Kensington, Donner60, Funnymind, Puffin, Rathen69185, Orange
Suede Sofa, Wakebrdkid, Musicguy24, Krbibin, Ortmana, Sven Manguard, DASHBotAV, Ltaylor20, 28bot, Rocketrod1960, Cgt, Xanch-
ester, Gjholt, ClueBot NG, Gowtamrajk, Gareth Griffith-Jones, Jack Greenmaven, Change67, MelbourneStar, This lousy T-shirt, Satel-
lizer, Jenova20, CloveWiki, Jasperspeicher, Rainstarlight, Snotbot, Theboymusic, Cntras, BabyGirlCourtney, Braincricket, O.Koslowski,
ScottSteiner, Widr, Antiqueight, C63205, Stomasz71, Vibhijain, Ashokrajaballa, North Atlanticist Usonian, Iopsycho, Magallon17, Help-
ful Pixie Bot, Irrc irri, Ratman2000, Rablanken, Bachelorcourse, Calabe1992, Bobbyshabangu, Tylerbesh, WNYY98, Anu.gnath, Low-
ercase sigmabot, Kmalekian, BG19bot, Vectevs, Hz.tiang, Wiki13, MusikAnimal, JasonPLK, Ronkays, Zachzab, Mark Arsten, Adven-
turousSquirrel, Anittisathiaraj, Pravincumar pek, Jgatti09, Altaïr, Mahen1201, Kammit102, N.manoraj, Balivernes, Dhamal07, Gobler18,
Mohamedadeed, Tanuruya Roy, Sonal6578, EditorRob, Iksar babes, Snow Blizzard, MrBill3, Ahmek001, Marjoleinkl, Awanishbvi, P
diggle, Ammarkhan05693, Klilidiplomus, Rapaddhu, Angelakanksha, Bells2012, Ace001TheBoss999, KGun10, Fylbecatulous, Several
Pending, Liam987, Pratyya Ghosh, Mrt3366, ChrisGualtieri, Gdfusion, EuroCarGT, Devenpro, RogerBryenton, Sarasapo, EagerTod-
dler39, Webclient101, Mogism, Sundeep k lal, Saehry, Wallybblue, TwoTwoHello, Frosty, Graphium, Syum90, Ferniewernie, Corn
cheese, Telfordbuck, TANWIR HASSAN, Jituparida, AVlonely, Tami Allen, Faizan, Avwezel, Epicgenius, OverMyJob, Dddege, Logert-
Gilby, Zalunardo8, BreakfastJr, Tentinator, Kogmaw, GingerGeek, Avatto123, Yankeesfan1234, Cherubinirules, Penperson, Lilythamzil,
Basilu, Taniquab2014, Babitaarora, Haminoon, Arpitmaurya, JoshuaChen, Ugog Nizdast, JustBerry, Giematt, Ginsuloft, Civiello m, Some-
one not using his real name, Sam Sailor, Jianhui67, Werddemer, Javiergustav, Chrissuba2013, Sereiakata, DannyFangles, Mallywazhere,
Dude200116, Vhiggs1, JaconaFrere, Kylo Ren, Csutric, TuxLibNit, Bobvancleef38, AKS.9955, Proudcommunist111111, Fauziya Muham-
mad, Mk bataiya, Znorth0818, Jim Carter, IvanZhilin, Berlinlasers, Morrisonann, Molhv, William Tölöberg, Raymondlay, KBH96, Kuro-
daSho, Radueno, KH-1, KatBerg52, Dwikicowan, Crystallizedcarbon, Ryanhw, WikiTechPresentation, Termaric, Tymon.r, Explicit fire,
Ismailzabee92, Ss9704895, Lalith269, Syam prathipati, Gibralter123, Venkatesh doli, Rageetha, Fuebaey, Nicolecheek17, Gragarian,
Mediavalia, Bottlesd, Eugene Wood, Shakfastlink, NewAtSchool, PAULFERNZ, Jnm230, Natalie.Desautels, Culturalresearch, Silver-
money1963, KasparBot, Steve12040234, Donnerclan, Sweepy, Srednuas Lenoroc, Lathay, Anindyaneog, Vadivelu.vadi, Vidyabaskar,
Joeljoseph77, Sarithashankar, ParamedicDave, Mkamitkm, Adharris09, Iblue143, JumpiMaus, Tablelooksgood, Zeeshan 93, Lgracedwiki,
Timothy.kuhn, Rylee Wznick, Jessa.lusby, Garylee0210, Marianna251, Manto17, Ustudent29, Space Titans, Anwesha Sabat, Nokutenda
Chimbetete, TradCult, Sachinen, MeowMoon, Nikoby Andrews, Swetab and Anonymous: 1796
• Communications protocol Source: https://en.wikipedia.org/wiki/Communications_protocol?oldid=736938855 Contributors: Damian
Yerrick, The Anome, Rjstott, Amillar, Aldie, Matusz, SimonP, Hannes Hirzel, B4hand, Youandme, Edward, Michael Hardy, Nixdorf,
Kku, MichaelJanich, Ahoerstemeier, Snoyes, Darkwind, Glenn, Tristanb, BAxelrod, Mxn, Conti, Hashar, Mulad, Guaka, Ciampix, Whis-
perToMe, Jnc, Topbanana, Bloodshedder, Chuunen Baka, Robbot, RedWolf, Mushroom, Takanoha, ShaunMacPherson, Thierryc, Rick
Block, Niteowlneils, Yekrats, Elmindreda, Tagishsimon, Regin LARSEN~enwiki, Beland, Maximaximax, Zondor, Jennypei, Mormegil,
Freakofnurture, JTN, Discospinster, Rich Farmbrough, Bert490, Skarg, Vsmith, Ardonik, Chowells, Byrial, Dyl, Bender235, S.K., Mwan-
ner, Kyz, Bobo192, Smalljim, Enric Naval, Polluks, Jumbuck, Andrewpmk, BodyTag, Velella, Wtshymanski, Rick Sidwell, Lerdsuwa,
Graham87, BD2412, Kbdank71, Lockley, RexNL, BjKa, Kri, Vonkje, DVdm, Whosasking, The Rambling Man, Wavelength, Hairy Dude,
Undsoft~enwiki, RussBot, Pi Delport, David Woodward, Yyy, Wiki alf, Bodachi, Leptictidium, Denisutku, Oakwood, JLaTondre, Mike
Gale, BonsaiViking, SmackBot, Jphastings, KnowledgeOfSelf, Unyoyega, Matthuxtable, Gilliam, Oscarthecat, Kevinalewis, Chris the
speller, JEG, Can't sleep, clown will eat me, Allan McInnes, Radagast83, Clean Copy, Charivari, SashatoBot, Ferryca, Robofish, 16@r,
Kvng, Levineps, ManixPC, Pegasus1138, CapitalR, Zipz0p, Fumblebruschi, Nczempin, Pgr94, Phatom87, Cydebot, Kanags, Romangs,
Christian75, Neustradamus, Thijs!bot, Jacen6788, Escarbot, AntiVandalBot, Alphachimpbot, JAnDbot, Harryzilber, Bhamv, MER-C,
ElComandanteChe, Swpb, Helland, Flowanda, Jim.henderson, Anaxial, R'n'B, J.delanoy, Mange01, Samtheboy, IlyaKorolev, MischaO,
X!, Philip Trueman, Oshwah, Moogwrench, GroveGuy, Una Smith, Leafyplant, Cremepuff222, Billinghurst, Riick, Kbrose, SieBot, Sm-
sarmad, Flyer22 Reborn, Ngriffeth, ClueBot, EoGuy, Mild Bill Hiccup, Niceguyedc, Liempt, DragonBot, Takeaway, Alejandrocaro35,
Ykhwong, Jotterbot, Dekisugi, Ltsampros, Vegetator, Bobjim.hunter, Johnuniq, Moazami~enwiki, Good Olfactory, RyanCross, Dsimic,
Addbot, Jncraton, CanadianLinuxUser, Brainmachine, Zorrobot, Yobot, Hwardsil, TaBOT-zerem, Calle, AnomieBOT, Bctwriter, Materi-
alscientist, Aneah, Eumolpo, ArthurBot, LilHelpa, Brian2wood, Xqbot, TheAMmollusc, Intelati, GenQuest, Gensanders, PlaysWithLife,
Oyvind.misje, Miym, Alvin Seville, Smallman12q, Eugene-elgato, PPecheux, GliderMaven, FrescoBot, Nageh, Eddie Nixon, RedBot, Sonja
Connell, Sachipra, Vrenator, Suffusion of Yellow, Mean as custard, EmausBot, John of Reading, Dewritech, Dcirovic, K6ka, Daonguyen95,
Alpha Quadrant (alt), Amar.prksh, AManWithNoPlan, Salsal99, Pillaidee, Coasterlover1994, Dairyintheillawarra, Donner60, Orange
Suede Sofa, BioPupil, Jsoon eu, Rememberway, ClueBot NG, Heavenlyhash, Zynwyx, Widr, Joe102283, MerlIwBot, Helpful Pixie Bot,
Helmsjs, Wbm1058, KLBot2, BG19bot, Tirupur123451, Petruss, Mrpeterobrien, Tanmay Patange, Javlonson, Klilidiplomus, Ncphillips,
Tech77, Dexbot, Cbw yeuy, Lugia2453, Acharya 87, عبد الله الصيدلي, Lankrist, Zsoftua, ArmbrustBot, Stevethornbury, Jonmax74,
JWNoctis, Juhuyuta, Fwolters, CryptcWriter, Abc 123 def 456, Trax support, Haosjaboeces, Samil Mahapatra, ChamithN, 96aman96,
Crystallizedcarbon, Cherdchai Iamwongsrikul, Warrinerd, AjayKumarShrestha, Jdcomix, Wikispoiler01, KasparBot, Jipdaskip gurugaint,
JackeyDee and Anonymous: 273
• Communications system Source: https://en.wikipedia.org/wiki/Communications_system?oldid=735682970 Contributors: Timo
Honkasalo, Imran, GTBacchus, Reddi, Giftlite, Kevin Rector, Eep², Dave souza, Keno, Mdd, Arthena, Scott5114, Youngamerican, Srl-
effler, Jpbowen, Deville, Katieh5584, Trickstar, SmackBot, Kvng, Eastlaw, Harryzilber, Jim.henderson, Uncle Dick, NewEnglandYankee,
GrahamHardy, DoorsAjar, Oshwah, Botev, Sasha Callahan, ClueBot, The Thing That Should Not Be, Mild Bill Hiccup, CounterVandal-
ismBot, Niceguyedc, Brews ohare, Tyler, BOTarate, Addbot, Yobot, Wikipedian2, SwisterTwister, RedBot, Primefac, Dcirovic, K6ka,
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 397
Vanished user fijw983kjaslkekfhj45, ClueBot NG, Cobanyastigi, Chenspec, Sathya dyan, Chris.rider81, Frosty, Phamnhatkhanh, Faizan,
SJ Defender, CogitoErgoSum14 and Anonymous: 50
• Compiler Source: https://en.wikipedia.org/wiki/Compiler?oldid=737263192 Contributors: Derek Ross, CYD, Andre Engels, Khendon,
Hari, Enchanter, PierreAbbat, Fubar Obfusco, Imran, Vkuncak, R Lowry, Atlan, Mrwojo, K.lee, RTC, Michael Hardy, Llywrch, Fred
Bauder, Norm, Tenbaset, TakuyaMurata, Mbessey, Minesweeper, Looxix~enwiki, Stan Shebs, Mac, Nanshu, CatherineMunro, Ijon, Glenn,
Smaffy, Mxn, Dwo, Emperorbma, CooYip~enwiki, Dcoetzee, Dysprosia, Jay, Doradus, Espertus, ThomasStrohmann~enwiki, Furrykef,
Wernher, Bevo, Raul654, Mariuz, Robbot, Murray Langton, Jwpurple, Hobbes~enwiki, RedWolf, Chocolateboy, Hubertus~enwiki, Bab-
bage, Rfc1394, Iain.mcclatchie, Dina, Tea2min, Ancheta Wis, Giftlite, DavidCary, Scarroll, Haeleth, Holizz, Wolfkeeper, Kenny sh,
Bluetulip, VampWillow, Bobblewik, Edcolins, Neilc, Hereticam, Knutux, APH, Szajd, Joakim~enwiki, SamSim, Buraq~enwiki, Sonett72,
Muijz, Andreas Kaufmann, Abdull, Grunt, Corti, Mike Rosoft, D6, Mormegil, Imroy, Shipmaster, Jkl, Rich Farmbrough, Leibniz, Cacy-
cle, Jpk, Lemontea, Alistair1978, DcoetzeeBot~enwiki, Bender235, ESkog, BACbKA, Project2501a, CanisRufus, BEDEWIN, Surachit,
Richard W.M. Jones, Sietse Snel, Deanos, Drhex, Kissall~enwiki, R. S. Shaw, Unquietwiki, Jung dalglish, Yonkie, Nich148 9, James Foster,
Obradovic Goran, Sam Korn, BlueNovember, Hooperbloob, Glaucus, Officiallyover, Jumbuck, Michael Drüing, Liao, Interiot, Diego Moya,
Atanamir, BRW, Nex O-Slash, Suruena, Tony Sidaway, RainbowOfLight, Culix, Reaverdrop, SteinbDJ, TheCoffee, Bookandcoffee, Y0u,
Simetrical, LrdChaos, Daira Hopwood, StradivariusTV, Jonathan de Boyne Pollard, Rchrd, Paul Mackay~enwiki, Ruud Koot, Wikiklrsc,
Christopher Thomas, Marudubshinki, Yoric~enwiki, Graham87, 169, Qwertyus, Kbdank71, Rjwilmsi, Pasky, Ligulem, LjL, Graibeard,
Mkehrt, FlaBot, Moskvax, SchuminWeb, Akihabara, Mathbot, EmielMols, RexNL, Gurch, Quuxplusone, BMF81, Chobot, DVdm, Yurik-
Bot, Wavelength, X42bn6, Mukkakukaku, Daverocks, RussBot, Fabartus, Hydrargyrum, NawlinWiki, Thalter, Jpbowen, Natkeeran,
WMarsh, Brat32, Stainless steel, Zzuuzz, Lt-wiki-bot, Closedmouth, KGasso, Th1rt3en, JLaTondre, Rwwww, GrinBot~enwiki, SmackBot,
Matt73, Incnis Mrsi, TestPilot, FlashSheridan, Mgreenbe, BiT, Vizzer, Gilliam, Hmains, Skizzik, Parrothead1983, Thumperward, Xx236,
Nbarth, Javalenok, Dfletter, Rrelf, Jonatan Swift, Rene Mas, JonHarder, Radagast83, Charles Merriam, Jiddisch~enwiki, Tompsci, AlyM,
Maximum bobby, Phoenix314, Jóna Þórunn, Theme97, Derek farn, Axem Titanium, MisterPhyrePhox, Nharipra, Michael miceli, Ed-
windreillyjr, 16@r, Deepak D'Souza, Encryptio, Hans Bauer, Dreftymac, Doramjan, Avhohlov, Pattermeister, Raysonho, Makeemlighter,
IntrigueBlue, Napi, Pgr94, Cydebot, Daio~enwiki, Peterdjones, Neo85~enwiki, Vanished user vjhsduheuiui4t5hjri, Indeterminate, Rhe br,
Tawkerbot4, Christian75, Thijs!bot, Epbr123, Pjvpjv, DmitTrix, Luna Santin, Prolog, NSH001, Raw nerve, Spencer, Deadbeef, JAnDbot,
MER-C, Jens Troeger, LittleOldMe, Bongwarrior, Khaled hosny, Rajb245, TARBOT, Tedickey, Schily, Indon, Dcstimm, LorenzoB, JaGa,
Mdg149, Gwern, MartinBot, Motley Crue Rocks, KingDoorknob, Tgeairn, J.delanoy, Hans Dunkelberg, Brest, Yonidebot, Wjaguar, Ans-
mo, General Disarray (usurped), Lee.crabtree, AntiSpamBot, Raise exception, Wbrito, Pdcook, Captain Wingo, Reelrt, Tedoja, VolkovBot,
Ryan032, TXiKiBoT, BenLTitzer, Gregsinclair, CanOfWorms, LeaveSleaves, VanishedUserABC, Dmcq, Sources said, The Mysterious
Gamer, Trescott2000, SieBot, Spadge47, Holme215, Jerryobject, Pi is 3.14159, WRK, Quest for Truth, Faradayplank, Damdemi, An-
drij Kursetsky, Fishnet37222, WimdeValk, OSP Editor, Loren.wilton, Martarius, ClueBot, Excirial, Pumpmeup, M4gnum0n, Alfa.walsh,
Jotterbot, Nerylix, DanielPharos, Certes, Expertjohn, XLinkBot, Duncan, Dsimic, NjardarBot, Glane23, Tide rolls, Krano, Jarble, Arbitrar-
ily0, Legobot, Luckas-bot, Yobot, Bunnyhop11, Ptbotgourou, , AnomieBOT, 1exec1, Flewis, Materialscientist, Citation bot, Dor-
chard, ArthurBot, Xtremejames183, LilHelpa, The Firewall, MauritsBot, Xqbot, TheAMmollusc, TinucherianBot II, Ioopooi, Climber22,
Miym, RibotBOT, A Quest For Knowledge, Sunnylalit, Adrignola, Msjaiswal, GliderMaven, FrescoBot, Pinethicket, HRoestBot, Jone-
sey95, Tom.Reding, Kurtbeyer, Skyerise, December21st2012Freak, Jauhienij, Trappist the monk, کاشف عقیل, Bencz, RjwilmsiBot,
EmausBot, Grottenolm42, BillyPreset, Bgeron, Lseongjoo, Ida Shaw, Annish33, Rcorcs, Teapeat, Methree69, ClueBot NG, Matthias-
paul, Satellizer, Shareddreams, G0gogcsc300, Wbm1058, Nbudden, Jdsalat, FredT67, Reimei, Daveatwork11, Yadu123yadu, Badsaha,
Anbu121, Tutelary, RichardMills65, Horizons 2009, KATANAGOD, Cyberbot II, ReadyKnit, JHandrop, Steamerandy, Codename Lisa,
Mogism, Makecat-bot, Jochen Burghardt, Randykitty, Himanshu1205, FrigidNinja, François Robere, Orcanaria, DavidLeighEllis, Raj-
mani94, Buntybhai, Feipu123, Melody Lavender, My name is not dave, Manish181192, Dannyruthe, Inaaaa, Rajeev26, Kharnagy, Ghfwe,
KasparBot, Matanc1, Tito Uzodinma, YQuazi, Arslan Muhannad, GreenC bot, SirFredTheDead, Fmadd, Stefano.cherubin, AugustGC,
WoyWoy, Tenoverten and Anonymous: 386
• Computer hardware Source: https://en.wikipedia.org/wiki/Computer_hardware?oldid=738084870 Contributors: Ronz, Agtx, Bearcat,
Jondel, Tea2min, Ukexpat, Xrchz, Discospinster, ArnoldReinhold, Bender235, Guy Harris, Wtmitchell, BD2412, Bruce1ee, DVdm, Russ-
Bot, Rsrikanth05, Geertivp, NawlinWiki, Jpbowen, Voidxor, David Biddulph, Rwwww, BenBurch, Yamaguchi , Gilliam, Octahedron80,
Nick Levine, Rrburke, Richard001, Kuru, Mike1901, Optakeover, Waggers, Sohebbasharat, NickW557, DumbBOT, Ebrahim, MasterNet-
Head, Magioladitis, Faizhaider, Tedickey, Thompson.matthew, Blacksqr, Jesant13, NewEnglandYankee, KylieTastic, Treisijs, Idioma-bot,
DoorsAjar, Technopat, Oxfordwang, BotKung, Andy Dingley, BloodDoll, Bentogoa, Flyer22 Reborn, Chaitanya bhima, Elassint, Frmor-
rison, Boing! said Zebedee, Takeaway, Resoru, Johnuniq, Jed 20012, Dthomsen8, Ost316, Addbot, Non-dropframe, CanadianLinuxUser,
LaaknorBot, Quercus solaris, Luckas Blade, Margin1522, Yobot, Kartano, Fraggle81, Rubinbot, Jim1138, Materialscientist, FrescoBot,
Pepper, Zilgs, Pinethicket, I dream of horses, Ftckyman, Serols, SchreyP, DixonDBot, Lotje, Jamietw, Tbhotch, Mean as custard, Emaus-
Bot, Super48paul, Dewritech, GoingBatty, Solarra, Ali.eblis1, Wikipelli, K6ka, FunkyCanute, Bollyjeff, Eeveeman, Bamyers99, Kilopi,
Junip~enwiki, ChuispastonBot, Senator2029, Rocketrod1960, Petrb, ClueBot NG, Peter James, JetBlast, Satellizer, Widr, Soulcedric,
HMSSolent, Wbm1058, DBigXray, Lowercase sigmabot, BG19bot, Brainhelljr, MKar, Northamerica1000, MusikAnimal, Fylbecatulous,
Tutelary, David.moreno72, Mikkytopfem, HueSatLum, Sathyasri, Teammm, Cyberbot II, BoxofPresents, EuroCarGT, Jethro B, Duck-
nish, Harsh 2580, Dexbot, FoCuSandLeArN, Cerabot~enwiki, TwoTwoHello, Numbermaniac, NAVEEN VENKAT, Zaldax, Frosty,
Jamesx12345, Sriharsh1234, Wywin, Anna1994~enwiki, Me, Myself, and I are Here, Reatlas, Jvpreethi, Dave Braunschweig, Simon-
stone1695, Theo’s Little Bot, Rui24114, PWNGWN, Melonkelon, Mario3D12, Sandshark23, DavidLeighEllis, Babitaarora, Melody Laven-
der, Dannyruthe, Sarahanne.1, Margcphelan, JaconaFrere, Sam Hollingsworth, Markoolio97, Shnuce, Miljan1994, Lagoset, Wwesam01,
Trackteur, Sccr4u69, JoeHebda, MonkeyWithGlasses44, Maritalaffairuk, Amortias, NianFav, KH-1, ChamithN, Techyknowsbest, Lit-
tleMissRich, Kartikmittal1995, TeaLover1996, Gladamas, Kyleb8181, Mediavalia, BoxOfChickens, JStock89, Azealia911, Avinash2000,
KasparBot, Bakosjen, BBQ, De la Marck, Oluwa2Chainz, Leevan27, CLCStudent, Sogyals429, Gkeejoey, Emotionalllama, Ghimire Udip,
Elijah Phibben, Renanel Ben Or, Invisible Guy, Jipdaskip gurugaint, RinkeyDinkeyDo, Ushkin N, Yusrirahim, Virtualkiller13, Udhaya
ukumar and Anonymous: 257
• Concurrent computing Source: https://en.wikipedia.org/wiki/Concurrent_computing?oldid=729209975 Contributors: Michael Hardy,
Pratyeka, Raul654, Phil Boswell, Aspenlogic, Bumm13, Rlcantwell, Deewiant, Ivansanchez, Lost.goblin, Ruud Koot, Toussaint, Qwertyus,
Rjwilmsi, Jameshfisher, BMF81, YurikBot, Hairy Dude, Pseudomonas, CarlHewitt, Shinmawa, Cedar101, JLaTondre, SmackBot, Vald,
TimBentley, LinguistAtLarge, SIZIK, Droll, Nbarth, MovGP0, Javalenok, JonHarder, Allan McInnes, Jpaulm, JustAnotherJoe, Rada-
gast83, Cybercobra, Rebooted, Fonebone, Aveitch, Antonielly, IronGargoyle, Jack Waugh, Iridescent, FatalError, CBM, SimenH, Torc2,
Oubiwann, Griba2010, Shardz, Maxaeran, Magioladitis, Fuchsias, Rhwawn, Kestasjk, Ormej, Gwern, STBot, EmilioB, Dindon~enwiki,
Simonscarfe, ParallelWolverine, Giardante, AHMartin, Eagleal, Sttaft, Jerryobject, JCLately, Anchor Link Bot, Cstb, Krogstadt, Adri-
anwn, Niceguyedc, M4gnum0n, Shaiguitar, XLinkBot, Addbot, Skillsmatter, Leszek Jańczuk, Jarble, Snaily, Yobot, Lublaese, 4th-otaku,
398 CHAPTER 70. X.25
AnomieBOT, Citation bot, The.malkolm, Miym, FrescoBot, Citation bot 1, Maggyero, Akim Demaille, JamieHanlon, GoingBatty, Klbrain,
Taiga234, Ipsign, VinculumMan, Kejia, Helpful Pixie Bot, Wbm1058, Cth027, Kibwen, ChrisGualtieri, Vway, Dexbot, Damian.rouson,
DougBoost, François Robere, Captain Conundrum, Andfaulkner, Ivo Balbaert, Logan.dunbar, Monkbot, Nelsonkam, Paintrick, Izkala,
RyeTheCat and Anonymous: 90
• Connection-oriented communication Source: https://en.wikipedia.org/wiki/Connection-oriented_communication?oldid=701499332
Contributors: Edward, Yrjö Kari-Koskinen, Abdull, Rich Farmbrough, Sietse Snel, Spl, W33v1l, Caballero1967, Ataub2qf, SmackBot,
JonHarder, Radagast83, Malomeat, Kvng, Marcuscalabresus, Thijs!bot, Nrubdarb, Storkk, DuncanHill, Jim.henderson, Mange01, Kbrose,
Addbot, Graham.Fountain, Quintus.bal, AnomieBOT, LilHelpa, Jradix, Erik9bot, RedBot, Sricciar, Jesse V., Kawawa.chitiya, AvicAWB,
Jflabourdette, MacStep, ClueBot NG, Pratyya Ghosh, Gvteja, Kenshibata, Someone not using his real name, Monkbot, Gsyadav1994 and
Anonymous: 28
• Connectionless communication Source: https://en.wikipedia.org/wiki/Connectionless_communication?oldid=722190177 Contributors:
Tedernst, Michael Hardy, Pnm, MartinHarper, Radiojon, Giftlite, Frencheigh, Gary D, Kevin Rector, Abdull, AFool, RJHall, Sietse
Snel, Viriditas, Guy Harris, Woohookitty, Srleffler, Zwobot, Rita.dos.santos~enwiki, SmackBot, JonHarder, Radagast83, VdHamer, Kvng,
Eastlaw, Marcuscalabresus, UncleBubba, Kgfleischmann, STBot, R'n'B, Kbrose, Jerryobject, SchreiberBike, Graham.Fountain, Legobot,
Luckas-bot, Yobot, AnomieBOT, Serols, Solarra, Bingnet, CeylonBoy, Cpt Wise, CkXVb and Anonymous: 17
• Data flow diagram Source: https://en.wikipedia.org/wiki/Data_flow_diagram?oldid=734131353 Contributors: Derek Ross, William Av-
ery, Sfdan, Michael Hardy, Ahoerstemeier, Ronz, Nichtich~enwiki, Morven, Chealer, Hadal, Tea2min, Ancheta Wis, Giftlite, Tom har-
rison, Beta m, Jpkoester1, Slowking Man, Mike Rosoft, Just zis Guy, you know?, Theshowmecanuck, Bobo192, Shenme, MaxHund,
Pearle, Hooperbloob, Nsaa, Mdd, Interiot, HenkvD, Derbeth, RJFJR, Sciurinæ, Redvers, Ae-a, JeremyA, Paulhoff, Tangotango, Woop-
too, TheMidnighters, Who, ViriiK, TeaDrinker, Akhenaten0, Hibana, Jajis, Tas50, YurikBot, Albanaco, Wavelength, Phantomsteve, J.
M., Akamad, Stephenb, Polluxian, Rsrikanth05, Desundae, Jonathan Webley, Luks, Rushyo, Jwissick, Nothlit, Tom Duff, NeilN, Attilios,
SmackBot, Fireman biff, Derek Andrews, Hydrogen Iodide, Melchoir, Aardvark92, AutumnSnow, Chairman S., Arsenaldc1988, Gilliam,
Betacommand, Ranglin, Elantrix, Master of Puppets, Dlohcierekim’s sock, EdgeOfEpsilon, Can't sleep, clown will eat me, Zvar, Allan
McInnes, Jpaulm, Fullstop, Turkystuffing, Louv, Defunkier, Alexcollins, Yaniss, Burt Harris, Antonielly, SpyMagician, Beetstra, Waggers,
Bnagra, Hu12, Fan-1967, Dead3y3, DEddy, Denistorres, JForget, Deon, Casper2k3, Cydebot, Paul Bassin, Rayray5884, After Midnight,
Omicronpersei8, Ashwanilabs, Pindakaas, Kubanczyk, Einsidler, Polymorph self, SoftwareDeveloper, AntiVandalBot, Seaphoto, Alone
Coder, Danger, Gökhan, Golgofrinchian, MER-C, Wasell, Akuyume, Casmith 789, VoABot II, JamesBWatson, Rich257, Jvhertum, Perry-
degner, Martynas Patasius, Hi mostafa, ISpyFace, DancingPenguin, MartinBot, CommonsDelinker, Lilac Soul, Tgeairn, J.delanoy, Pharaoh
of the Wizards, Trusilver, Philosopher06, Terrek, Manutd 06, Mayeco, Bhanks, Edrawing, NewEnglandYankee, SJP, Danhof, KylieTastic,
STBotD, Mado eng, Meiskam, Aivosto, Ann Stouter, Someguy1221, Seb az86556, Falcon8765, Enviroboy, Perter Nokia, SieBot, BotMul-
tichill, Harveydrone, SPACKlick, Pm master, Oxymoron83, Steven Crossin, Struway2, Denisarona, ClueBot, HowardBGolden, Naresh
ni, Uncle Milty, Ramif 47, Failure.exe, Excirial, Kjramesh, Abrech, NuclearWarfare, Michael.W.Meissner, Eternitybrkn, Dekisugi, War-
rior4321, Stirrer, ChrisHodgesUK, SoxBot III, Saminathan25, XLinkBot, Evert r, Ivan Akira, Stickee, Hubew, Moptophaha, MystBot, Ad-
dbot, McastAccount, Tcncv, Thirteenangrymen, MrOllie, DataModeler, Quantumobserver, Yobot, Ptbotgourou, TaBOT-zerem, Eemme1,
Peter Flass, AnomieBOT, DemocraticLuntz, Jim1138, Piano non troppo, Flewis, Materialscientist, Prasanga1989, Gill2008, OlYeller21, B
Jana, Shadowjams, , Georgelkf, Mark Renier, Sithbhavanandha, Wikisteve316, D.wade33, Stella2603, Camelo5399, Vince cater15,
Oneal32heat, Alongzal33, Jasonkid7, Rayalan10, I dream of horses, Abazgiri, Florendobe, Ms1244434, Gryllida, Monymirza, Yunshui,
Javierito92, Darp-a-parp, Ivanvector, Suffusion of Yellow, Reach Out to the Truth, Gf uip, EmausBot, Orphan Wiki, WikitanvirBot,
Heracles31, Cossack5, Ndkl, GoingBatty, Trideceth12, ZweiOhren, Bamyers99, Wayne Slam, L Kensington, EdoBot, Abhishekitmbm,
ClueBot NG, Widr, Sombody1234, Sjs205, AhMedRMaaty, Unmeshsphalak, Jeetucse, Kushalbiswas777, Rajdada100, Wonderingcat768,
Eyesnore, Tentinator, Ginsuloft, EdvardHang, U2fanboi, RC711, Luzanbaral, KasparBot, MageshKumaar, SinghsarvjeetIT and Anony-
mous: 520
• Data structure Source: https://en.wikipedia.org/wiki/Data_structure?oldid=736224045 Contributors: LC~enwiki, Ap, -- April, Andre
Engels, Karl E. V. Palmen, XJaM, Arvindn, Ghyll~enwiki, Michael Hardy, TakuyaMurata, Minesweeper, Ahoerstemeier, Nanshu, King-
turtle, Glenn, UserGoogol, Jiang, Edaelon, Nikola Smolenski, Dcoetzee, Chris Lundberg, Populus, Traroth, Mrjeff, Bearcat, Robbot,
Noldoaran, Craig Stuntz, Altenmann, Babbage, Mushroom, Seth Ilys, GreatWhiteNortherner, Tea2min, Giftlite, DavidCary, Esap, Jorge
Stolfi, Siroxo, Pgan002, Kjetil r, Lancekt, Jacob grace, Pale blue dot, Andreas Kaufmann, Corti, Wrp103, Bender235, MisterSheik,
Lycurgus, Shanes, Viriditas, Vortexrealm, Obradovic Goran, Helix84, Mdd, Jumbuck, Alansohn, Liao, Tablizer, Yamla, PaePae, Rey-
Brujo, Derbeth, Forderud, Mahanga, Bushytails, Mindmatrix, Carlette, Ruud Koot, Easyas12c, TreveX, Bluemoose, Abd, Palica, Man-
darax, Yoric~enwiki, Qwertyus, Koavf, Ligulem, GeorgeBills, Husky, Margosbot~enwiki, Fragglet, RexNL, Fresheneesz, Butros, Chobot,
Tas50, Banaticus, YurikBot, RobotE, Hairy Dude, Pi Delport, Mipadi, Grafen, Dmoss, Tony1, Googl, Ripper234, Closedmouth, Vicar-
ious, JLaTondre, GrinBot~enwiki, TuukkaH, SmackBot, Reedy, DCDuring, Thunderboltz, BurntSky, Gilliam, Ohnoitsjamie, EncMstr,
MalafayaBot, Nick Levine, Frap, Allan McInnes, Khukri, Ryan Roos, Sethwoodworth, Er Komandante, SashatoBot, Demicx, Soumyasch,
Antonielly, SpyMagician, Loadmaster, Noah Salzman, Mr Stephen, Alhoori, Sharcho, Caiaffa, Iridescent, CRGreathouse, Ahy1, FinalMin-
uet, Requestion, Nnp, Peterdjones, GPhilip, Pascal.Tesson, Qwyrxian, MTA~enwiki, Thadius856, AntiVandalBot, Widefox, Seaphoto,
Jirka6, Dougher, Tom 99, Lanov, MER-C, Wikilolo, Wmbolle, Magioladitis, Rhwawn, Nyq, Wwmbes, David Eppstein, User A1, Cpl Syx,
Oicumayberight, Gwern, MasterRadius, Rettetast, Lithui, Sanjay742, Rrwright, Marcin Suwalczan, Jimmytharpe, Santhy, TXiKiBoT, Os-
hwah, Eve Hall, Vipinhari, Coldfire82, BwDraco, Rozmichelle, Billinghurst, Falcon8765, Spinningspark, Spitfire8520, Haiviet~enwiki,
SieBot, Caltas, Eurooppa~enwiki, Ham Pastrami, Jerryobject, Flyer22 Reborn, Jvs, Strife911, Ramkumaran7, Nskillen, DancingPhiloso-
pher, Digisus, Tanvir Ahmmed, ClueBot, Spellsinger180, Justin W Smith, The Thing That Should Not Be, Rodhullandemu, Sundar sando,
Garyzx, Adrianwn, Abhishek.kumar.ak, Excirial, Alexbot, Erebus Morgaine, Arjayay, Morel, DumZiBoT, XLinkBot, Paushali, Pgallert,
Galzigler, Alexius08, MystBot, Dsimic, Jncraton, MrOllie, EconoPhysicist, Publichealthguru, Mdnahas, Tide rolls, ماني, Teles, سعی,
Legobot, Luckas-bot, Yobot, Fraggle81, AnomieBOT, DemocraticLuntz, SteelPangolin, Jim1138, Kingpin13, Materialscientist, Arthur-
Bot, Xqbot, Pur3r4ngelw, Miym, DAndC, RibotBOT, Shadowjams, Methcub, Prari, FrescoBot, Liridon, Mark Renier, Hypersonic12,
Maggyero, Rameshngbot, MertyWiki, Thompsonb24, Profvalente, FoxBot, Laurențiu Dascălu, Lotje, Bharatshettybarkur, Tbhotch, Think-
tdub, Kh31311, Vineetzone, Uriah123, DRAGON BOOSTER, EmausBot, Apoctyliptic, Dcirovic, Thecheesykid, ZéroBot, MithrandirA-
gain, EdEColbert, IGeMiNix, Mentibot, BioPupil, MainFrame, Chandraguptamaurya, Rocketrod1960, Raveendra Lakpriya, Petrb, Clue-
Bot NG, Aks1521, Widr, Danim, Jorgenev, Orzechowskid, Gmharhar, HMSSolent, Wbm1058, Walk&check, Panchobook, Richfaber,
SoniyaR, Yashykt, Cncmaster, Sallupandit, Доктор прагматик, Sgord512, Anderson, Vishnu0919, Varma rockzz, Frosty, Hernan mvs,
Forgot to put name, I am One of Many, Bereajan, Gauravxpress, Haeynzen, JaconaFrere, Gambhir.jagmeet, Richard Yin, Jrachiele, Guturu
Bhuvanamitra, TranquilHope, Iliazm, KasparBot, \wowzeryest\, ProprioMe OW, Ampsthatgoto11, Koerkra, SandeepGfG, Harvi004 and
Anonymous: 388
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 399
etse Snel, RoyBoy, Femto, Rpresser, Bobo192, Stesmo, Boelthorn, John Vandenberg, Cmdrjameson, R. S. Shaw, Unquietwiki, Mikel Ward,
Brutulf, Waltervulej, Charonn0, Bawolff, Blinken, Pasousa~enwiki, Sleske, Minghong, Towel401, Obradovic Goran, Wrs1864, Sam Korn,
JesseHogan, Ekevu, Jumbuck, Samatva, Alansohn, Guy Harris, Arthena, CyberSkull, Synt4x, Riana, Sade, Lectonar, Wtmitchell, Velella,
Kdau, Cburnett, Stephan Leeds, Suruena, RJFJR, Henry W. Schmitt, W7KyzmJt, Pauli133, Btornado, Manivannan, Saxifrage, Sam Vimes,
Mindmatrix, Josephf, Niektory, Splintax, Robert K S, ^demon, Eyreland, Pasteler0, Prashanthns, Turnstep, Gerbrant, Marudubshinki,
RichardWeiss, Deltabeignet, Qwertyus, Edjackiel, Rjwilmsi, Demian12358, Koavf, KamasamaK, ElKevbo, Aapo Laitinen, Oo64eva,
FlaBot, Klausner, Windchaser, Spaceman85, Woozle, Ewlyahoocom, Gurch, Ghen, ChongDae, Magbatz, Fresheneesz, Carrionluggage,
GreyCat, David H Braun (1964), Chobot, TkGy, Prikryl, Mhking, Bgwhite, Martin Hinks, Gwernol, YurikBot, Borgx, Angus Lepper,
Logixoul, Arado, Me and, Robert A West, Gardar Rurak, RadioFan, Hydrargyrum, Akamad, Barefootguru, Wimt, NawlinWiki, BigCow,
Grafen, Hkdennis2k, Długosz, Nick, Retired username, Yoasif, Mikeblas, Off!, Natkeeran, Yozh~enwiki, Bota47, J. Nguyen, Saishg,
BazookaJoe, Rwxrwxrwx, ElectricSheep, EAderhold, Zzuuzz, Lt-wiki-bot, Closedmouth, Antini, Garion96, Allens, Cotoco, Shepard,
GrinBot~enwiki, AndrewWTaylor, SmackBot, Classicfilms, Ulterior19802005, KAtremer, Herostratus, KnowledgeOfSelf, Praetor alpha,
KocjoBot~enwiki, EarthBoundX5, Mscuthbert, Alksub, Rojomoke, Pmkpmk, Jwestbrook, Gilliam, Skizzik, Chaojoker, Marc Kupper, An-
war saadat, Coinchon, Thom2002, Jprg1966, Thumperward, MalafayaBot, OrangeDog, Silly rabbit, Deli nk, Octahedron80, Letdorf, Met-
alim, DHN-bot~enwiki, JEG, Gracenotes, Newmanbe, Can't sleep, clown will eat me, ReferenceMan, Frap, Alphathon, DéRahier, OSborn,
Rrburke, CorbinSimpson, Huon, Khoikhoi, DavidSol, NoIdeaNick, Ianmacm, Shadow1, Warren, Fagstein, Mwtoews, Henning Makholm,
Ihatetoregister, Antipode, Vina-iwbot~enwiki, GameKeeper, SashatoBot, Tecccher, Fred Foobar, Ksn, Breno, Shadowlynk, IronGargoyle,
Ben Moore, 16@r, Magicmat, Erwin, Ehheh, Optakeover, Waggers, Iridescent, Peter M Dodge, Sjb72, Beno1000, Shmget, Insanitor, Iron-
JohnSr, Tawkerbot2, FatalError, HDCase, Allaunjsilverfox, Unionhawk, Triage, Bumcheekcity, Kgentryjr, Lazulilasher, MeekMark, Dan
Fuhry, Equendil, Hamster2.0, Phatom87, Cydebot, Wadkdc, UncleBubba, Anonymi, ST47, Rgrof, Doug Weller, DumbBOT, Chrislk02,
Btharper1221, Thijs!bot, Epbr123, Jensamoller, Siidheesh, James086, Davidhorman, Dawnseeker2000, AlefZet, Escarbot, I already forgot,
SOBarber, AntiVandalBot, Chicgeek, Daimanta, Wtflash, Joe Schmedley, Leuqarte, JAnDbot, MER-C, Austinmurphy, Kirrages, Raanoo,
Enjoi4586, Doom777, Bongwarrior, VoABot II, Tedickey, Angryninja, Vssun, DerHexer, Saberclaw, Ftiercel, Gwern, Stephenchou0722,
MartinBot, [email protected], Rettetast, Phillip.calvin, TinaSDCE, Tgeairn, J.delanoy, Mange01, Numbo3, Nbau-
man, Macaldo, Jaymac407, Acalamari, Andareed, Dispenser, LordAnubisBOT, Thomas Larsen, Jameswebuk, AntiSpamBot, Nomoreink,
Rolandelferink, Deepak garg147, Useight, VolkovBot, SamMichaels, TXiKiBoT, A4bot, Naveenpf, Lucamauri, Seraphim, David.bar, Ko-
vianyo, LeaveSleaves, Caiguanhao, Complex (de), Michaeldsuarez, Synthebot, Monty845, Roybristow, AlleborgoBot, Logan, EmxBot,
Matagascar, Kbrose, RShohat, Yngvarr, SieBot, Nubiatech, Online backup, Smithderek2000, Plinkit, Eleclion, Crm123, 1234mike1234,
Orthorhombic, Vulcan’s Forge, Pxma, Flyer22 Reborn, Radon210, Coroberti, Wolfcm, Chridd, Oxymoron83, Virdiq, WarpEnterprises,
Ks0stm, Alex.muller, Taggard, Anchor Link Bot, Vanished User 8902317830, The sunder king, N0nr3s, ClueBot, Wikievil666, The
Thing That Should Not Be, Jesser07, Jan1nad, Ldueck, Raf1qu3, ChandlerMapBot, Excirial, Gnome de plume, Skittels, PixelBot, Abrech,
Muhandes, Vivio Testarossa, Cenarium, Airada, Acabashi, Aitias, Footballfan190, Mr. Gerbear, XLinkBot, Ceriak, Wordwizz, Feinoha,
Leoniana, Little Mountain 5, SilvonenBot, Ottomation, Muffat, Good Olfactory, Thecarpy, Some jerk on the Internet, Mabdul, Jgeer,
PJonDevelopment, Xiainx, Elsendero, TutterMouse, Tedmund, MrOllie, CarsracBot, Simeon24601, Dky89, Dmemt, Bfigura’s puppy,
OlEnglish, Xjan, Legobot, PlankBot, Luckas-bot, Yobot, Senator Palpatine, Fraggle81, Old Death, Mmxx, Offix, AnomieBOT, Rubin-
bot, Jim1138, Richm711, Mdfarock, Piano non troppo, Flewis, Materialscientist, The Firewall, Xqbot, Nishantjr, Addihockey10, Capri-
corn42, TechBot, Sharhalakis, Martnym, Ched, Nordrassil, GrouchoBot, Xusete18, RibotBOT, Amaury, MLauba, Hikki drafts copy23,
FrescoBot, Managed Phil, Krj373, Mfwitten, BenzolBot, HRoestBot, KlfJoat, Rantzen, Calmer Waters, PETAR1, Charles.mjhm, Recon-
sider the static, Merlion444, Robvanvee, Mawinme, Trappist the monk, Khaotika, Lotje, Dinamik-bot, Vrenator, Ygz79, Sarahmann2009,
Fastilysock, Suffusion of Yellow, Some Wiki Editor, Bricaniwi, DARTH SIDIOUS 2, Onel5969, Ksb1392, 212.113.674 ftp, EmausBot,
Mikkik, Shadowmaster1969, Racerx11, RA0808, Eyedotfilms, Mick09887, , Hops Splurt, ValC, Sheeana, Richard asr, Josve05a,
Playdagame6991, Crashuploads, Lakshmeesha NR, Rajeev1486, Felixkasza, Wingman4l7, Sbmeirow, TyA, Duke.tim, Joemark2010, Eu-
anK92, Icyganov, Donner60, Danwing, Wipsenade, Bomazi, ChuispastonBot, Mlorer, 28bot, Ycyganov, Petrb, Mikhail Ryazanov, Clue-
Bot NG, Pantergraph, Nimiew, Poshtkohi, Morgankevinj huggle, BroderickAU, Prasantborn1990, O.Koslowski, Peedeeramone, Spel-
Punc-Gram, Masssly, Widr, Luke145, GGink, Sabatour 3, BG19bot, Yevstifeyev, Wikivkr, Chmarkine, WikiHannibal, Menna Elsawaf,
Proxyma, EricEnfermero, Captainjackfromgermany, Pratyya Ghosh, Mbk-4a, Khazar2, Codename Lisa, Makecat-bot, TwoTwoHello,
Frosty, Graphium, Liweinan0423, DBhavsar709, Jamesmcmahon0, ArmbrustBot, Thevideodrome, Acc12345acc, Ginsuloft, Zzeliboba,
Quenhitran, 32RB17, Timgenren, Noelfurlong22, ECKotes, ChamithN, Crystallizedcarbon, Faraz Ahmed46, Husburry, Kvtsj, ALIMJ85,
SNov104, Oscarrdg, Coldren.shannon, RaduMirceaAndrei, Castaglia, Maxbrown24, Jimmy Olano and Anonymous: 860
Materialscientist, Citation bot, Deleron, ArthurBot, Xqbot, Johann Peter Dirichlet, Matttoothman, LordArtemis, Intelliw, GliderMaven,
FrescoBot, Mezmeriseu, Gautamsomani, Adlerbot, Evgeny.berkovich, Skulldyvan, Lotje, Ybungalobill, Perhelion, TheArguer, Ripchip
Bot, Ashutosh y0078, Mcarone1, EmausBot, John of Reading, Bnogent, Zahnradzacken, AvicBot, Zarboublian, Richard.astbury, Tijfo098,
ClueBot NG, Gilderien, Helpful Pixie Bot, Remococco, Dh1509, Manu31415, MrBill3, Kishan247, BattyBot, Dinesh.lei, Jimw338, Uno
b4, Dexbot, Deltahedron, Makecat-bot, Jochen Burghardt, , Mark viking, Siddhars, Asierog, Jodosma, A god amongst men, Lightrace,
Quenhitran, Upkarsh, Mrcheeseface2, Guidotex, Monkbot, Χρυσάνθη Λυκούση, Tapanbohra1911, Govardhanhegde, Be555810, JMP
EAX, Crystallizedcarbon, Some Gadget Geek, Espanolers, Rogalskiy.a, Baking Soda, Jhazelden, GreenC bot, ToffeeC and Anonymous:
355
• General Inter-ORB Protocol Source: https://en.wikipedia.org/wiki/General_Inter-ORB_Protocol?oldid=735488959 Contributors: SJK,
Conti, Bearcat, (:Julien:), Thv, Fleminra, Jfdwolff, Tagishsimon, Rich Farmbrough, EbenVisher, YurikBot, Hairy Dude, Anog, Gdawirs,
Basil.bourque, Gjs238, Schmiteye, Audriusa, Luís Felipe Braga, Cydebot, BenedictPoole, Swpb, STBot, Katharineamy, VolkovBot, Jame-
lan, Wing gundam, MenoBot, Alksentrs, Kausikghatak, Addbot, Yobot, AnomieBOT, Dinamik-bot, Dwvisser, ClueBot NG, BG19bot,
The Anonymouse and Anonymous: 25
• HTML Source: https://en.wikipedia.org/wiki/HTML?oldid=738022031 Contributors: Lee Daniel Crocker, Brion VIBBER, Uriyan, Zun-
dark, The Anome, Koyaanis Qatsi, JeLuF, Gianfranco, SJK, William Avery, Mjb, Hirzel, Patrick, Michael Hardy, Chris-martin, Fred
Bauder, Voidvector, Tannin, Wapcaplet, Dramatic, Ixfd64, Cyde, Eurleif, Arthur3030, Skysmith, Eric119, Alfio, Tregoweth, CesarB,
Ahoerstemeier, HarmonicSphere, Haakon, Mac, Ronz, Jpatokal, Den fjättrade ankan~enwiki, Александър, Llull, Andres, Palfrey, Rl,
Ghewgill, Mydogategodshat, Hashar, Okome~enwiki, PatriceNeff, Crissov, Jay, Fuzheado, Rednblu, Traal, Haukurth, Tpbradbury, Fur-
rykef, Alexfiles, Mattworld, Omegatron, Traroth, Joy, Jens Meiert, Jusjih, Guppy, Jeffq, Shantavira, Rogper~enwiki, RickBeton, Saqib
(usurped)~enwiki, Robbot, Chealer, Noldoaran, Pigsonthewing, Fredrik, RedWolf, Moondyne, Psychonaut, Lowellian, Costello, Postdlf,
Rholton, Rursus, Texture, Caknuck, Hadal, Profoss, Ledgerbob, Jor, Fab, Tea2min, David Gerard, Enochlau, Dave6, Giftlite, Philwiki,
Smjg, DocWatson42, SamB, Kerttie, Andy, Inter, Lethe, Herbee, Bradeos Graphon, Everyking, Markus Kuhn, Filceolaire, Rick Block,
LLarson, Lurker, Guanaco, Tom-, Mboverload, Siroxo, AlistairMcMillan, Horatio, Richard cocks, Neilc, Chowbok, DocSigma, Wasabie,
Antandrus, Beland, OverlordQ, Oneiros, Mzajac, OwenBlacker, Fuper, Mysidia, QuiTeVexat, MishaChan, Anirvan, Kelson, Urhixidur,
Burschik, Joyous!, Goobergunch, Jh51681, Karl Dickman, BeakerK44, Mmj, Eliazar, Liquid Flash, Abdull, Zondor, Trevor MacInnis,
Canterbury Tail, Kate, Bluemask, DavidL (usurped), Mike Rosoft, Brianjd, D6, RossPatterson, Discospinster, Rich Farmbrough, Gua-
nabot, Mecanismo, Timsabin, YUL89YYZ, MeltBanana, Mani1, Pavel Vozenilek, Paul August, Blade Hirato~enwiki, Bender235, Ze-
roOne, Zy26, Andrejj, Acq3, Kjoonlee, Breon, Jonathanischoice, Rich13, Plugwash, Violetriga, Bdk, Danakil, Cap'n Refsmmat, Zeno-
hockey, RoyBoy, Triona, Leif, Coolcaesar, Bobo192, Nigelj, Whosyourjudas, Smalljim, Shenme, SpeedyGonsales, Vystrix Nexoth, Un-
known W. Brackets, Minghong, Wrs1864, Maebmij, Sean Kelly, Nsaa, Lysdexia, Jumbuck, Zachlipton, Alansohn, Gary, Mduvekot,
Rand~enwiki, Sheehan, Interiot, CyberSkull, Jeltz, NSK, Riana, Sade, Kurt Shaped Box, Kocio, Redfarmer, Mrholybrain, Hu, Llbbl
(usurped), Jmh~enwiki, Velella, TheRealFennShysa, Saga City, Vcelloho, Josh3736, RainbowOfLight, Sciurinæ, Mikeo, GeoffPurchase,
Bsadowski1, A brisson, Versageek, Mattbrundage, Redvers, Netkinetic, Trustle, Dan100, Html~enwiki, Kbolino, DanielVonEhren, Alfrin,
Simetrical, Bushytails, OwenX, Mindmatrix, Georgia guy, Ataru, Camw, LOL, Decrease789, Uncle G, Benbest, Scjessey, NeoChaosX,
Ruud Koot, Dodiad, Jeff3000, SergeiRichard, Damicatz, Dionyziz, Goystein~enwiki, Eyreland, Toussaint, Xiong Chiamiov, TNLNYC,
Palica, Rufous, Tslocum, Qwertyus, Galwhaa, David Levy, FreplySpang, CarbonUnit, KramarDanIkabu, Reisio, Sjö, Jorunn, Rjwilmsi,
P3Pp3r, Koavf, China Crisis, Ikh, Amire80, JoshuacUK, Tangotango, Pudleek, Salix alba, MZMcBride, Jollybengali, CQJ, R.e.b., N-Man,
Bubba73, Afterwriting, Williamborg, Aapo Laitinen, Sango123, Florihupf, Dionyseus, J2000ca, FlaBot, Ian Pitchford, RobertG, Heycam,
Crazycomputers, Nivix, RexNL, Gurch, Alexjohnc3, TheDJ, Intgr, Goeagles4321, Terrx, Jesse0986, Tysto, Joshebosh, Chobot, DVdm,
Bgwhite, WriterHound, Gwernol, Cornellrockey, Shervinafshar, The Rambling Man, Theymos, YurikBot, Wavelength, Klingoncowboy4,
ThunderPeel2001, SpikeJones, Angus Lepper, RobotE, Sceptre, Poldi~enwiki, Todd Vierling, Hairy Dude, Gyre, Charles Gaudette, Fayte,
Phantomsteve, Michael Slone, Fabartus, Spainhour, SpuriousQ, Matt Fitzpatrick, Hydrargyrum, Stephenb, Gaius Cornelius, Rsrikanth05,
Pseudomonas, Bovineone, Bullzeye, NawlinWiki, ENeville, Wiki alf, Mipadi, UCaetano, Bachrach44, Test-tools~enwiki, Grafen, Nutike-
taiel, Irishguy, Saoshyant, Aaron Brenneman, Raven4x4x, Iancarter, Lomn, MySchizoBuddy, Zwobot, Snarius, Brat32, Av2917, Dead-
EyeArrow, Bota47, Kewp, Snareklutz, Szhaider, Alpha 4615, Wknight94, Ms2ger, Mholland, Sumanthk, Tribaal, Lt-wiki-bot, Nacimota,
Ageekgal, Closedmouth, Mike Selinker, Josh3580, GraemeL, Fram, JLaTondre, Dhavalhirdhav, ArielGold, Sitegod, Caballero1967, F.
Cosoleto, David Biddulph, Rwellington, RunOrDie, Suburbanslice, Katieh5584, Purple Sheep, NeilN, Minkus, Rwwww, KNHaw, DVD
R W, Sepsis13, Squirrel Boy, Luk, Veinor, BonsaiViking, SmackBot, MattieTK, Alan Pascoe, Pbb, Ashenai, Classicfilms, Moeron, Rtc,
Incnis Mrsi, KnowledgeOfSelf, Unyoyega, Pgk, C.Fred, Bazza 7, KocjoBot~enwiki, Jtneill, WookieInHeat, ElDakio, Frymaster, Brossow,
WildElf, Canthusus, Scott Paeth, Alsandro, Alex earlier account, Zzymyn, Yamaguchi , Aksi great, King Bob324, Gilliam, Ohnoit-
sjamie, Skizzik, Chaojoker, Qtoktok, PJTraill, Fetofs, Amatulic, AstareGod, Chris the speller, Jamie C, Robert Wellock, CrookedAs-
terisk, Master of Puppets, BabuBhatt, Oli Filth, EncMstr, King Arthur6687, James Fryer, Doug Patriarche, SchfiftyThree, Jerome Charles
Potts, Nbarth, Vbigdeli, DHN-bot~enwiki, Methnor, Konstable, YggY, Ado, Zsinj, Dethme0w, Tsca.bot, Can't sleep, clown will eat
me, Shalom Yechiel, Tamfang, Frap, Onorem, Tim Pierce, Jennica, Nixeagle, TheKMan, Rrburke, Bogtha, GeorgeMoney, Addshore,
RedHillian, Midnightcomm, UU, Answerthis, Mgearfan, Cybercobra, Nibuod, Makemi, Nakon, Teehee123, EVula, RolandR, Shadow1,
Mistress Selina Kyle, Lcarscad, Markymarkmagic, Taare, Drc79, Buidinhthiem, Evlekis, Bart v M, MOO, DKEdwards, Kukini, Homo
sapiens, The undertow, SashatoBot, Dave314159, Rory096, Iball, Xerocs, Zahid Abdassabur, Sunroof, Kuru, Ergative rlt, Euchiasmus, Si-
monkoldyk, Cadderly, Ksn, NeantHumain, JorisvS, Dumarest, Minna Sora no Shita, CaptainVindaloo, BioTube, Tbc42, Tasc, JRS124c41,
Waggers, Dammit, Jgrahn, Ryulong, MrDolomite, GorillazFanAdam, Rory O'Kane, Xihix, Hetar, BranStark, DouglasCalvert, Irides-
cent, Arntuuri, Michaelbusch, Dreftymac, Theone00, Xaagkx, Wjejskenewr, Sander Säde, J Di, Huo Ma Ke, Igoldste, Blehfu, Rangi42,
Adambiswanger1, Courcelles, Moocowisi, Tawkerbot2, Daniel5127, Jasrocks, Conrad.Irwin, Amniarix, SkyWalker, JForget, Sakurambo,
Hetzer, Unixguy, CmdrObot, Code E, Porterjoh, Mattbr, Makeemlighter, Gmd588, Ruslik0, KnightLago, Maxiom, Jaxad0127, Leu-
john, The gergster, Madda, Kennyluck, Cydebot, Krauss, MC10, Vanished user vjhsduheuiui4t5hjri, Gogo Dodo, SetiHitchHiker, Baz-
zargh, Studerby, Hsivonen, Msreeharsha, Tawkerbot4, Clovis Sangrail, Shirulashem, Codetiger, Torc2, DumbBOT, Kozuch, Ward3001,
Neustradamus, Omicronpersei8, JodyB, MicahElliott, Geekosaurus, UberScienceNerd, Saintrain, Timbl, Epbr123, Bot-maru, Wermlands-
data, Monkle, Mbell, Dasani, Hervegirod, Kablammo, Ucanlookitup, Mojo Hand, Trevyn, Marek69, John254, A3RO, Nezzadar, Davi-
dLeeLambert, Lowercase, Jgr 94, Dfrg.msc, NigelR, TFunk, CharlotteWebb, Tonyseeker, Cplot, Natalie Erin, Folic Acid, Escarbot, I
already forgot, Martinvie, Mentifisto, Sidasta, AntiVandalBot, Chicgeek, Majorly, Luna Santin, Guy Macon, Mvjs, Seaphoto, Chacor,
QuiteUnusual, Antique Rose, Prolog, Jj137, TexMurphy, LibLord, Farosdaughter, Gdo01, Zedla, DennisWithem, Wolf grey, Romes-
tar, Carewolf, Jordan Rothstein, Myanw, Static17, Minun, Gökhan, JonathanCross, Golgofrinchian, Swamilive, JAnDbot, Durrantm,
Leuko, Barek, MER-C, The Transhumanist, Moneysaver67, Andonic, Roleplayer, Faerycircle, Snowolfd4, PhilKnight, Doctorhawkes,
LittleOldMe, Bencherlite, Typochimp, CrizCraig, Penubag, Magioladitis, Connormah, Pedro, Bongwarrior, VoABot II, Kuyabribri, JNW,
Kakomu, Mbc362, Swpb, Think outside the box, A10brown, Janadore, Tedickey, Rami R, Wileyc427, Jatkins, Skew-t, Twsx, JPG-GR,
402 CHAPTER 70. X.25
Cic, Aka042, Recurring dreams, Diegosolo, SparrowsWing, Dsolovay, Animum, Adrian J. Hunter, Wwmbes, Allstarecho, Just James,
EstebanF, Glen, DerHexer, Esanchez7587, Patstuart, -bilal92-, Bitbit, Xhosan, 0612, Daviecat, MartinBot, PAK Man, Pádraig Coogan,
ShaunL, Mattjs, JayJayKay~enwiki, Rettetast, Speck-Made, Faceboyjim, Ramesh Chandra, Tgeairn, An7drew, J.delanoy, Captain panda,
Pharaoh of the Wizards, Trusilver, Svetovid, Think777, Pursey, Jesant13, TwigsterX, Ginsengbomb, Eliz81, Extransit, Mianbao~enwiki,
NerdyNSK, Satchy, Vanished user 342562, Darth Mike, Laurusnobilis, Cpiral, SharkD, JAKEhp55, Dispenser, Arronax50, Pikminlover,
Tannkremen, TomyDuby, McSly, Lordtopcat, Dabomb45, Tbisonman123, AntiSpamBot, Xmonicleman, Plasticup, LtEarth, TomasBat,
NewEnglandYankee, Nwbeeson, Aervanath, Gabrielhobro, Master shepherd, Xander756, Ljgua124, Potatoswatter, Smitty, KylieTastic,
Sarmenhb, Cometstyles, Lakeishikawa, Remember the dot, ACBest, DorganBot, Nphase, Niceguydave, Sarregouset, Kvdveer, Martin-
Rinehart, Bonadea, Izno, Howcome, Squids and Chips, Idioma-bot, Funandtrvl, Joeinwap, Wikieditor06, Lights, X!, Chinneeb, VolkovBot,
Jorioux, Zcorpan, Xyzu, Jeff G., Indubitably, Blackdenimgumby, Rharding13, Lear’s Fool, Cenet47, Philip Trueman, TXiKiBoT, Osh-
wah, Zidonuke, Vanished user 98wiejfno34tijsfoiwefjlok5y, Vipinhari, Rei-bot, Wikidemon, HarryAlffa, Drestros power, Arnon Chaffin,
ScriptingMaster, Crazyhead4, Rick Jelliffe, Anna Lincoln, Lradrama, Ontoraul, V.v.vinaybabu, JhsBot, Leafyplant, BwDraco, Hamitr,
Drappel, DieBuche, IsaacGS, Cremepuff222, David Condrey, NetOracle, Csdorman, Liberal Classic, Fenring, Maxim, Opgfss, Lam-
CarLL71, Madhero88, Odinjobs, Andy Dingley, Enigmaman, Xieqi200, Rougieux, Meters, Synthebot, Falcon8765, Cole1234567890,
Alone363, MelanieBeth, Drake2007, BlackCab, LittleBenW, Logan, Yelling Bird, Legoktm, Zotag, Austriacus, Tbg connor, Demmy,
Kbrose, The Random Editor, Illinoisavonlady, SieBot, Coffee, Fsminc, Scarian, Nestea Zen, PanagosTheOther, Lordofnerds, Dawn Bard,
Caltas, Eagleal, RJaguar3, Yintan, Gfonetobe, Vanished user 82345ijgeke4tg, Purbo T, Purplepickle10, Xenophon777, Formerly the IP-
Address 24.22.227.53, Bentogoa, Happysailor, Iitim4two, Chridd, JSpung, Allmightyduck, Oxymoron83, Antonio Lopez, Lightmouse,
Tombomp, SH84, KathrynLybarger, BenoniBot~enwiki, SarvenCapadisli, OKBot, Hornyman121, WOFall, Spitfire19, XU-engineer, Sim-
plexplus, Mojoworker, StaticGull, Rcairnsjr, Sen Mon, Adi necromancer, Hostime, Jacob.jose, Mygerardromance, Lianmei, Denisarona,
Escape Orbit, Vonones, VanishedUser sdu9aya9fs787sads, WikipedianMarlith, Loren.wilton, ClueBot, Hightilidie, LAX, Binksternet, The
Thing That Should Not Be, Dmooresatx, VsBot, Neelchauhan, Jan1nad, Donovans, Lawrence Cohen, Quinxorin, Enthusiast01, Supertouch,
Taroaldo, Pomadgw, Freebullets, Squash444, Will052690, LukeShu, AntiSlice, Lantay77, Timberframe, Shonda13, Ryoutou, Attlas, Blan-
chardb, Soc5555, Isoft isoft, Μάριος Ζηντίλης, Manishearth, Popadooodle7, Robert Skyhawk, Excirial, Yaniv p, Lochsley, Gtachiki,
Gwguffey, MorrisRob, Vivio Testarossa, Rhododendrites, Brews ohare, NuclearWarfare, Cenarium, Wwwqwerty, Jotterbot, Leadv0cal,
Dekisugi, Tempmj, Mikaey, Oswald07, RuneScapez, MadMax45, Bald Zebra, Chiman9321, Thingg, Aitias, 7DaysForgotten, Boxing245,
Egmontaz, Party, Akira-otomo, Braddunbar, Tommyqiscow, DumZiBoT, Mrxwindows, Hogman500, Joeyman111, XLinkBot, Fastily,
Ultramince, Spitfire, Gwandoya, RkOrton, Rror, Feinoha, OsoLeon, 007spyguy7, James-Y2J-fan, Nepenthes, WillOakland, Avoided, Bur-
ket, Sujgfjfgjhgjgj, Mitch Ames, WikHead, Cmr08, Jswarchinghimer, Alexius08, Noctibus, RP459, Subversive.sound, HarlandQPitt,
Vianello, Thatguyflint, Addbot, Xp54321, Gamekid276, Ifinditfunny, Willking1979, Some jerk on the Internet, Mabdul, TheGeekHead,
Fyrael, Queux, Haruth, Kongr43gpen, Sparkmonkey7, Fgnievinski, Wtni, LovinHTML, Fieldday-sunday, CanadianLinuxUser, Fluffernut-
ter, EricCanada75, Protonk, PranksterTurtle, Glane23, Nate Wessel, Karl gregory jones, Waterret, Favonian, AtheWeatherman, LinkFA-
Bot, Jasper Deng, Tyw7, Tassedethe, Numbo3-bot, Prince-of-Life, Tide rolls, Tim Mckee, Worlddominater08, Jarble, Bartledan, Manjo
mandruva, Elizabeth Barnwell, Legobot, Yobot, Bunnyhop11, Ptbotgourou, Fraggle81, Tundra010, Yulelee, Leastminor, Tael, THEN
WHO WAS PHONE?, Rajakhr, Jeffz1, Skaarlaw, Mrnobody228, Eric-Wester, Vampic, AnomieBOT, Cq142, Onefreeinternet, Chazubell,
Message From Xenu, Jim1138, Galoubet, Penguinboyroy, 9258fahsflkh917fas, Piano non troppo, Betax, Kingpin13, Flewis, Materialsci-
entist, MorgothX, Frankenpuppy, Nifky?, Nut er, Gsmgm, Lturbine, Whileupper, Obersachsebot, Xqbot, Costadelsponz, Tinucherian-
Bot II, Sionus, Addihockey10, Capricorn42, Armstrong1113149, Wperdue, 07w109, Morefight, Nasnema, Gilo1969, Grim23, With-
outmark, Jmundo, Ched, Galanothowns, L5138, StunitTeam, Tyrol5, Ruby.red.roses, KingHippo777, Internoob, HDrake, Nasa-verve,
Frosted14, Pandamonia, Shirik, RibotBOT, West Coast Gordo, Jetrink, Trevorpittz, Jacosi, Fert81, POTUS270, Shadowjams, Miyagawa,
Sesu Prime, RetiredWikipedian789, Magic.Wiki, GT5162, EpiQ SkiLL, FrescoBot, Sajidsa13, Logiphile, OspreyPL, Paine Ellsworth,
Anton Sergeev, Lucy75, Uxgeoff, Charrua85, Johnnybravo2009, Djahmednawaz, Islamicinfo, Brianreavis, Buzgun, Kwiki, Safinaskar,
Jakesyl, Zorgelo, Flashesarenight, Redrose64, Ringling9, Pinethicket, ShadowRangerRIT, I dream of horses, HRoestBot, Wikiuser00008,
MJ94, Calmer Waters, Jake11899, Mutinus, Hoo man, Carineduwez, Impala2009, MastiBot, Serols, SpaceFlight89, Petree69, Sjpr73,
DMBradbury, Prapsnot, Pcuser42, Weylinp, Unbreakable comb, Pranayrocks23, Hiuhuhihiuh, Abc518, FoxBot, Sreeriz, Kakistocra-
tor, Lotje, Nako16, Dinamik-bot, Vrenator, TBloemink, Extra999, Killr833, Lilgamer64, Chat de jutiapa guatemala horcones, Mr.98,
Spherems, Nman252, Jhone29, Ayansen1988, Diannaa, Gerhard Loeb, IeditU4good, Genhuan, BaseballByrd, Reach Out to the Truth,
Burns28, Sharon08tam, Aodonnel, DARTH SIDIOUS 2, Wolfhoundfeet, Nations114, Sheatrevor, Onel5969, Mean as custard, Cliffsblog,
Mrfencey, Bento00, DexDor, Amerias, Prosenzweig, Tomchen1989, Becritical, Thaqtipkilla, Kcmartz, Vickey Xiong, Chickenandpasta,
Deagle AP, Lineplus, Bmsshubham, Pwt-wsu-ap, EmausBot, Orphan Wiki, Tntc.tig, WikitanvirBot, Gfoley4, Beeshoney, Yt95, Going-
Batty, RA0808, Np123456, Dcdspace, RenamedUser01302013, Vanished user zq46pw21, Yellow & Blue Music, Rabbabodrool, The
Mysterious El Willstro, Dmsdjing, Tommy2010, Winner 42, Wikipelli, Dcirovic, K6ka, Tudorol, Pielover88888, Thecheesykid, The-
Drakoman, AlecFTW, Rima p.r, D'oh!, Josve05a, Traxs7, GranterOfMercy, Wes.turner, Cfust, Briansince1988, MithrandirAgain, Maypi-
geon of Liberty, Enrique00a, פארוק, Anir1uph, Empty Buffer, Asiansryummeh, Virtual Loïc, Dylthaavatar, Rizwanazizshaikh, Wasala555,
Demonkoryu, Zap Rowsdower, Wayne Slam, Tolly4bolly, Gregoroq, BrokenAnchorBot, Lipyn, Shyluv, Donner60, Wipsenade, Jamesam-
ber, Bomazi, Chesshead123, Chesspapa, MainFrame, ChuispastonBot, Forever Dusk, Epicchamantha, DASHBotAV, Hacker9001, George
Makepeace, Dixwerr, ClueBot NG, Unisubs, Aerospeed, Frankdushantha, Matthiaspaul, MelbourneStar, Jcollumbell, Metinisim, Recon62,
Satellizer, PaleCloudedWhite, Wiklinkwonder, Carbon editor, Pokemonblackds, Andrew Kurish, O.Koslowski, Asukite, Ekphraster,
336, Widr, Telpardec, Blaise170, Anupmehra, Fltyingpig, ZacharyM001, Helpful Pixie Bot, Chickenjock, Jrichardsing, Captain Su-
perman, Titodutta, Thatspartanguy, Calabe1992, Wbm1058, Schuy B., Technical 13, Doorknob747, Lowercase sigmabot, BG19bot, Is-
land Monkey, Nathanswan, Krlozanov, KamranMackey, Vagobot, Way2tutorial, Iamjaypatel, AlphaBlogshow, Kangaroopower, Harka-
mal1001, MusikAnimal, Frze, OneCuteElmo, Ashutosh.ukey, Ramneek Sharma(MCT), Follishere, Mark Arsten, Compfreak7, Joshi-
anurag21, Joydeep, NotinREALITY, RussiaRussia, Matthewp1998, Spokestrip EMP, Tharinduewe, Vannhuthanh, Makandal14, Davi-
dLeader, Gysenn, Insidiae, Glacialfox, Toto Mommam, Klilidiplomus, Ajsandbach, Shanky.lonely, Hanitirkey, BattyBot, FootholdTechnol-
ogy, David.moreno72, Darylgolden, SupernovaExplosion, Pratyya Ghosh, JDewint, Cyberbot II, Timothy Gu, GoShow, Jamila60, Sibtain
007, Worden.lee, EuroCarGT, Ducknish, JYBot, Dexbot, Rezonansowy, Norazizahhashim, I call the big one bitey, Mogism, Killerkur1,
SiBr4, Assisted Reputation, Mrkjohnson, Blakeman909, Lugia2453, Frosty, Tayyab mm, Booruguru, Flrgf, Itchytoes, Jscbiss, CCamp2013,
Anand Kishore Jha, Reatlas, Bluexephos Sjin, Mark viking, Xela722, Jnelmark101, Crisskooper, FallingGravity, Marsupium, I am One
of Many, Zaveri123, Htmlwiki, Jdbener, Shivajivarma, Mompati Dikunwane, Tentinator, Waqaee, AnthonyJ Lock, Timmothytheman,
Saleh0167, Jemee012, TechFilmer, Salamnam30, Haminoon, A owen1978, Blackraider7, LieutenantLatvia, Dexmediainc, Uwe Lück,
My name is not dave, Ginsuloft, George8211, Motemota9, JWNoctis, Sam Sailor, Thesloth34, Mustha jm, TCMemoire, Francois-Pier,
Jyothiug17, Dvorapa, Dkwebsub, King.escanlar, Meteor sandwich yum, Dastoger Bashar, CelesteMarkham, JaconaFrere, Jforjaxi, Hi-
mankpathak, Salton Finneger, Dixwerrr, RicoZepplin, Prestotron55, Your moms cousin, Adamali2002, Awesome Spider, Monkbot, Yu-
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 403
gals20, BatmanArkhamOriginsV3, LucasandEmma, Mdwhit, Notchrealm, TheQ Editor, சு.க.மணிவேல், Stronglolo, Ha1230, QueenFan,
Sonia Terver, Lord Marcellus, KH-1, ChamithN, Maths314, Gurjyottheman, Arvind asia, TeaLover1996, Ertyupoi, Devwebtel, Some Gad-
get Geek, Niki201, HTMLRulez, Muhammad Ijaz Javed, BoxOfChickens, Alefbeis, ToonLucas22, Hotsystem52, Keisuke3804, Bdurf,
Amazingcf.cool, Andrean rapz, Qsx753698, KasparBot, Milind Bordia BSHS, Waqas012, Gurbir Singh Dhaliwal, Thejas16496, Pra-
jwal R Sajji, My Chemistry romantic, Ross MacPhee, Glory of Space, Manasaramoju, AniruddhaChatterjeeOUA, Bigwilly10, Gorgond,
Lemondoge, MonDavis, Zamaster4536, HTMLPanda, Garg.M2K, Amolyadav0099, EightTwoThreeFiveOneZeroSevenThreeOne, Yabgo
Mubassir, Heeeheee10101, Lukace8, Kutless02, GSS-1987, Callum.McTear, Krishna2636, Qzd, Doulph88, Stevan.keselj95, Shafran
franzy, Jcmendo, Riddhi2015, Amitmarkel, Justiceray1998, Cybergauntlet, NgYShung, Yadavrohit2003, Shaunyalad88, GreenC bot,
UnidentifiedHuman721, DynaGirl, Werthert, Full Rune, VarunFEB2003, Hello8287556846, Rhowladar, Superuser56, Shantoa0, Vk khan-
dal, Sanjaunita23, DUBSSC, NAYAN 1, Kaustubh Gole and Anonymous: 2196
thv, Irrypride, Donner60, Sri Krishna Geova Allah, Ihatejava, Shiftoften66, GermanJoe, Andkim99, ClueBot NG, AnotherSprocket, Y98,
Matthiaspaul, HonestIntelligence, Zekefast, Frietjes, Widr, Anupmehra, Theopolisme, Galund, Novusuna, Johnny C. Morse, J.Dong820,
Calabe1992, BG19bot, Qff828, EvanMHahn, M0rphzone, Adam.tolley, Sahara4u, Cyberpower678, Neøn, IAlexR, Mark Arsten, Compf-
reak7, Jnanaranjan sahu, GGShinobi, OmarMOthman, Spuas, Chmarkine, Toto Mommam, MrExplosive, Bsrdjan, IRedRat, Tianjiao,
David.moreno72, Mdann52, Agus puryanto, Cyberbot II, Gdfusion, Wjcw, Gavinmorrice, XapApp, Ducknish, Himichellet, Makecat-
bot, Lugia2453, Doc Armitage, Dmufasa, The Quirky Kitty, Sriharsh1234, Athomeinkobe, Falsestuff, Mark viking, I am One of Many,
François Robere, Melonkelon, Jakec, EvergreenFir, DavidLeighEllis, ArmbrustBot, Davidgumberg, Comp.arch, PerfectSystem, The Her-
ald, Ginsuloft, Soujak, Meteor sandwich yum, Skr15081997, Ethically Yours, Upkarsh, Monkbot, Izaberina, Datjedi, Coder hsps, Level47,
Mfnpka, Alamatpalsoe, 2014Best, Thianw, Neshyanka, WordSeventeen, Shiv Shanker Sharma, Roemerb, Mlkj, Viam Ferream, Pish-
cal, Rubbish computer, Joseph2302, NickOsypenko, Surlycyborg, KasparBot, T-brace98, Will98769876, Oluwa2Chainz, Atanasmihaylov,
Wesko, CAPTAIN RAJU, Vansockslayer, Chenthil Vel, Bv56, Tajmil, H.dryad, Kmalhotra612, Harrryy33, Colonel Wilhelm Klink, KGirl-
Trucker81, Killerflash734882, VINAY YADAV and Anonymous: 1253
• Implementation Source: https://en.wikipedia.org/wiki/Implementation?oldid=736722518 Contributors: Kku, Ellywa, Bogdangiusca,
Stefan-S, Maximus Rex, Spikey, MOiRe, Diberri, Marius~enwiki, Andycjp, Slady, Discospinster, Aranel, Mike Schwartz, Halsteadk, Oleg
Alexandrov, BD2412, JIP, Lockley, MZMcBride, Cacafuego95, Margosbot~enwiki, TheMidnighters, RexNL, Jidan, YurikBot, Grafen,
Kymara, Moe Epsilon, Twelvethirteen, Katieh5584, SmackBot, Eskimbot, BiT, Francisco Valverde, Gilliam, PJTraill, Hongooi, JonHarder,
Khazar, Dreftymac, CmdrObot, Optimist on the run, Thijs!bot, Nick Number, Goldenrowley, MECU, .anacondabot, Catgut, JaGa, Gwern,
MartinBot, TheEgyptian, R'n'B, Gurchzilla, VolkovBot, Begewe, Owain.wilson, Anna Lincoln, AlleborgoBot, SieBot, Jojalozzo, ClueBot,
Goober49, Rror, Hubew, Addbot, Fluffernutter, Mentisock, Jonathan d green, Chzz, Jarble, Luckas-bot, Yobot, Ptbotgourou, Fraggle81,
TaBOT-zerem, Materialscientist, Xqbot, J04n, SassoBot, Mathonius, Erik9bot, Cargoking, RedBot, Dinamik-bot, EmausBot, Wikitan-
virBot, TuHan-Bot, Sodmy, Heyjoy, Solde9, ClueBot NG, MelbourneStar, Wbm1058, BG19bot, Cbj125, Mitch078, Thecodemunky,
DaffyBridge, Star767, Dingalo, Bear-rings and Anonymous: 99
• Information Source: https://en.wikipedia.org/wiki/Information?oldid=738004801 Contributors: Eloquence, The Anome, Christian List,
Little guru, Ben-Zin~enwiki, Mjb, Hephaestos, Olivier, Leandrod, Stevertigo, Lir, Michael Hardy, Modster, Lexor, Nixdorf, Kku, Ixfd64,
Tomos, Goatasaur, Ellywa, Mdebets, Ahoerstemeier, Jebba, Bueller 007, Александър, Cyan, Mkoval, Poor Yorick, Scott, Andres, Wik-
iborg, Choster, Tpbradbury, Rronline, Shizhao, Olathe, Pir, Jusjih, Leonariso, Calieber, Robbot, Fredrik, Vespristiano, Peak, Romanm,
Dessimoz, Securiger, Mayooranathan, Nilmerg, Meelar, Rasmus Faber, Cassie~enwiki, Robinh, Roozbeh, Wile E. Heresiarch, Tea2min,
Alan Liefting, Ancheta Wis, Giftlite, Christopher Parham, Achurch, COMPATT, Everyking, Bensaccount, Sheizaf~enwiki, Yekrats,
SWAdair, Bobblewik, Sesel, Zeimusu, Antandrus, Joeblakesley, Togo~enwiki, Gscshoyru, WpZurp, Joyous!, JohnArmagh, Fabrício Kury,
Grm wnr, Zondor, Trevor MacInnis, Guppyfinsoup, Mike Rosoft, Brianjd, D6, Jwdietrich2, CALR, EugeneZelenko, Diagonalfish, Dis-
cospinster, Solitude, Michal Jurosz, Silence, Smyth, Samboy, Martpol, Stereotek, Bender235, MisterSheik, CanisRufus, AndyB, Jpgor-
don, Blakkandekka, La goutte de pluie, Alphax, Flammifer, Tritium6, Andrewbadr, Helix84, Haham hanuka, Ranveig, Jumbuck, Com-
plete~enwiki, Alansohn, PaulHanson, LtNOWIS, Riana, Ciaran H, BryanD, Jheald, Versageek, SteinbDJ, Spot, Ott, Natalya, OleMas-
ter, Woohookitty, Edgerunner76, Ruud Koot, I64s, CharlesC, LogicalDash, Marudubshinki, Bebenko, Graham87, Deltabeignet, Magister
Mathematicae, BD2412, MC MasterChef, Amerique, Rjwilmsi, Mayumashu, KYPark, Bubba73, FlavrSavr, Downtownee, AJackl, FlaBot,
Michaelschmatz, Mathbot, Truman Burbank, RexNL, AndriuZ, Wingsandsword, King of Hearts, DVdm, Bgwhite, Flcelloguy, Roboto de
Ajvol, Rattle, Wavelength, Cybercat, Sputnikcccp, Loom91, Lalalalalala~enwiki, Stephenb, Mpfrank, GeeJo, NawlinWiki, Oberst, Prickus,
Moe Epsilon, Mikeblas, Iancarter, Kyle Barbour, Scope creep, Pelister, Pooryorick~enwiki, Igiffin, Zzuuzz, Tcsetattr, Denisutku, Arthur
Rubin, Dspradau, Tevildo, Alasdair, Samanwith, JLaTondre, Eaefremov, DVD R W, CIreland, Crystallina, SmackBot, Incnis Mrsi, In-
verseHypercube, TestPilot, McGeddon, Kirkjames, Ariedartin, Vald, Delldot, Hsarkka~enwiki, HalfShadow, Bertilvidet, Yamaguchi ,
PeterSymonds, Gilliam, Ohnoitsjamie, Skizzik, Richfife, Wigren, MK8, MalafayaBot, Khobler, Neo-Jay, Hallenrm, A. B., Enigma55,
Sct72, Can't sleep, clown will eat me, Alphabravotango~enwiki, Yidisheryid, TheKMan, Celcom, Xyzzyplugh, Mr.Z-man, COMPFUNK2,
YankeeDoodle14, Jerrch, Smooth O, “alyosha”, Dreadstar, Richard001, Jon Awbrey, Just plain Bill, Rspanton, Daniel.Cardenas, Bart
v M, Ged UK, MichaelGasser, Xdamr, Kuru, MagnaMopus, Sir Nicholas de Mimsy-Porpington, Steipe, Ckatz, Isria, Tasc, Beetstra,
Noah Salzman, Billreid, Wstomv, Avs5221, Mr Stephen, Dicklyon, Pvalozic, RichardF, Jose77, Kvng, Ramobear, Levineps, Iridescent,
Jakehall2, Dreftymac, Lottamiata, Exformation, Tawkerbot2, George100, CRGreathouse, Ale jrb, Makeemlighter, Floridi~enwiki, THF,
Dgw, MarsRover, Rizeg70, Davnor, Penbat, Gregbard, Stebbins, Maria Vargas, Nelbathy, Poojamal, Peterdjones, Gogo Dodo, Mon-
tag451, JFreeman, ST47, Djmiller9975, Carlroller, Naudefj, Hot torew, Daven200520, Blackjack48, Kyle J Moore, PKT, Michael Four-
man, Epbr123, Al Lemos, Headbomb, Yettie0711, Klausness, Dawnseeker2000, Dehneshin, Escarbot, Mentifisto, Rlitwin, QuiteUnusual,
PlatonicIdeas, Smartse, Danny lost, Andrewrutherford, Dreap, Obeattie, Golgofrinchian, JAnDbot, Jimothytrotter, Em3ryguy, MER-C,
Robocracy, Eurobas, Pvm 02, Ariaconditzione, Meeples, AndriesVanRenssen, Magioladitis, Bongwarrior, VoABot II, Think outside the
box, Kevinmon, Snowded, Indon, Faustnh, EagleFan, Ksanyi, MetsBot, David Eppstein, DerHexer, Khalid Mahmood, Oicumayberight,
Bradshow, NAHID, Gamma2delta, R'n'B, Tgeairn, Wlodzimierz, J.delanoy, Kimse, Thomasda, Draccon136, Svetovid, Overix, Maurice
Carbonaro, Kentback, Robert W. Wright, Kby, AntiSpamBot, TomasBat, Cobi, Jorfer, Dungsff, Chitvamasi, Dessources, Juliancolton,
Linshukun, Gtg204y, DASonnenfeld, CardinalDan, Idioma-bot, Wikieditor06, Ddusenbery, VolkovBot, Semmelweiss, Aesopos, Philip
Trueman, TXiKiBoT, Oshwah, Ldonna, Yuma en, Ann Stouter, Z.E.R.O., Shindo9Hikaru, Kjells, Shahidislam31, Bluestripe, Jdunn0101,
Madhero88, BigDunc, Pepve, Stevenson-Perez, Synthebot, Jwithers, Vishal.belawade, Spinningspark, Brian Dare, AlleborgoBot, Logan,
PGWG, Cocomo-jp, Nosferatütr, Neparis, SieBot, Ivan Štambuk, Phe-bot, Dawn Bard, Caltas, Yintan, Flyer22 Reborn, Masgatotkaca,
Oxymoron83, GaryColemanFan, Gbbinning, Alex.muller, Algorithms, LonelyMarble, Luapnampahc, Cyfal, Sean.hoyland, Denisarona,
God of Slaughter, Loren.wilton, ClueBot, Thedosmann, Thriceplus, Shinpah1, ChandlerMapBot, Auntof6, Pointillist, DragonBot, Ex-
cirial, Alexbot, BirgerH, Rhododendrites, Brews ohare, R.Dhiyanesh, Cenarium, Hesar, TheRedPenOfDoom, Tnxman307, Coywish, Un-
merklich, M.boli, Thingg, Versus22, Johnuniq, XLinkBot, Roberto Gejman, Feinoha, JinJian, EndlessWorld, Dorkysnorky123654, Ad-
dbot, Csharpboy, Manuel Trujillo Berges, Njaelkies Lea, Zarcadia, Mike J B, Download, Chamal N, 5 albert square, Systemetsys, Tide
rolls, David0811, Mah Nah, Informatwr, Luckas-bot, Yobot, Systemizer, Terrifictriffid, Sweetestbilly, Taxisfolder, Timir Saxa, Kgeza7,
AnomieBOT, Andrewrp, Cmsreview, Jim1138, Piano non troppo, K50 Dude, Atroche, Wikiwlod, Bluerasberry, Materialscientist, Arthur-
Bot, DalaoDy, Raysonik, Xqbot, TheAMmollusc, Jayarathina, Bbarkley, Capricorn42, Millahnna, Tad Lincoln, J04n, Frosted14, Omni-
paedista, Thosjleep, Apurvasukant, JonesC-NC, Aashaa, Jasonlums, Anne11jun, Shadowjams, CES1596, FrescoBot, Browneze, GEBStgo,
Mark Renier, SkepticalMetal, Machine Elf 1735, Mtz07, Rhalah, Boxplot, Luvstar 17, Pinethicket, ShadowRangerRIT, Hard Sin, Rushbu-
gled13, InformationZone, Magdalena Szarafin, SkyMachine, FoxBot, DixonDBot, Lotje, Catinator, Vrenator, LilyKitty, Jeffrd10, JenVan,
Tbhotch, Cuckoofridge, Mean as custard, RjwilmsiBot, Xaphnir, EmausBot, John of Reading, Acather96, Gfoley4, Iseecubes, Maashatra11,
Tommy2010, Dcirovic, K6ka, Kimberleyhastly, Sbamyani, Pratibha sharma, Fæ, Quondum, Gz33, Chithrapriya, Tolly4bolly, Arman Ca-
gle, Istarninwa, Mmalbayrakoglu, Healis, Wakebrdkid, GrayFullbuster, ClueBot NG, MelbourneStar, A520, BarrelProof, Harmeetkaur09,
Masssly, Petra oftenlungs, Widr, ساجد امجد ساجد, Vibhijain, Sssbbbrrr, Helpful Pixie Bot, Pinkcyberheart, Vaishalimathur14, Door-
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 405
knob747, BG19bot, Vagobot, My mom is cool, PhnomPencil, Wiki13, Galois17, Mark Arsten, Asterisk98, Mmovchin, Altaïr, In4matt,
Klilidiplomus, Agent 78787, Knodir, Cimorcus, ~riley, Pratyya Ghosh, Csterns, ChrisGualtieri, Ngorgoya4real, EuroCarGT, JohnEisen-
hauer, 331dot, Unitknow2, Frosty, Brirush, , Epicgenius, Cbm12, Eratosthenes17, Tentinator, Maxwell bernard, Rkkhare, Mattram,
Ryanluck3, Szhu008, Latifah istud, Papan patil, To-nurture, Ugog Nizdast, Eric Corbett, Ginsuloft, Sam Sailor, Kind Tennis Fan, Tah-
mina.tithi, Jeremylawless, Dastoger Bashar, FrB.TG, Dr. JJenkins, Skr15081997, GeorgeAhad, ThatRusskiiGuy, Wahab14, Jjunsso,
Sunmist, Sayyedabbasjaffer, Mikael400, DanBalance, KasparBot, ChesterThinks, Sam eastland, Anti-Keith, CAPTAIN RAJU, Abdi-
vetclinic.go.tz, Sahilshekh, Jdsmercado, Simakenett and Anonymous: 638
• Institute of Electrical and Electronics Engineers Source: https://en.wikipedia.org/wiki/Institute_of_Electrical_and_Electronics_
Engineers?oldid=737424899 Contributors: Bryan Derksen, The Anome, Tarquin, Ap, Christian List, Aldie, Matusz, SJK, Jarekadam,
Nixdorf, Menchi, Mac, Jimfbleak, Snoyes, Julesd, Jll, Kimiko, Andres, Mxn, Richj, Charles Matthews, Visorstuff, Itai, Head, Wilbern
Cobb~enwiki, Raul654, David.Monniaux, Donarreiskoffer, Robbot, Murray Langton, Altenmann, Romanm, Seglea, Jondel, Cyrius,
Enochlau, Matthew Stannard, Giftlite, Benji Franklyn, Leflyman, Aspenlogic, Pbryan, Rookkey, Fjarlq, Jason Quinn, AlistairMcMil-
lan, Alvestrand, Edcolins, Wmahan, Pgan002, Latitudinarian, DragonflySixtyseven, Maximaximax, Bodnotbod, Iantresman, Neutrality,
Urhixidur, Abdull, JamesTeterenko, Rhobite, Pjacobi, Vsmith, ArnoldReinhold, Abelson, Kwamikagami, Diomidis Spinellis, Coolcae-
sar, Smalljim, John Vandenberg, Polluks, Zr40, Martg76, Wrs1864, Pearle, Mdd, Jumbuck, PaulHanson, Walter Görlitz, Interiot, Ashley
Pomeroy, Apoc2400, Clifflandis, Wdfarmer, LearnMore, Wtshymanski, Emvee~enwiki, Moshekam, Alexei Polkhanov, Mnemo, BDD,
Notjim, MIT Trekkie, Joelthelion, Forderud, Woohookitty, LOL, Armando, Bratsche, Qaddosh, Ruud Koot, Firien, Optichan, Eaolson,
Dtwitkowski, MarkusHagenlocher, Jon Harald Søby, Gimboid13, Debsdelectables, Don Braffitt, Kbdank71, Mulligatawny, Sjö, Koavf,
Staecker, Crazynas, Klonimus, Utuado, FlaBot, Daderot, RobertG, Fereidunian, Dsc~enwiki, Chobot, MithrandirMage, Githin, YurikBot,
Wavelength, Borgx, Splash, Ansell, Hydrargyrum, Gaius Cornelius, Shanel, NawlinWiki, Edinborgarstefan, Dogcow, Nick, ArséniureDe-
Gallium, Jpbowen, Mikeblas, Zwobot, Leeroyjenkins, Mysid, TimK MSI, Thomas H. White, Dingy, Inconsequential, Wknight94, Avra-
ham, Benyang, Light current, Raistolo, Janto, Tsunaminoai, Tarawneh, Rathfelder, Xyrex, Poculum, Junglecat, Mebden, Marra, SmackBot,
Pgk, KocjoBot~enwiki, Whithamcp, Gleask, Robsomebody, Gilliam, Folajimi, Honbicot, Thumperward, Rdchambers, PrimeHunter, Ad-
pete, DHN-bot~enwiki, AKMask, Gsp8181, Monsuco, TKD, LouScheffer, Mr.Z-man, Juhlster1021, MrRadioGuy, Cybercobra, Bovester,
HarisM, Andrei Stroe, Ohconfucius, SashatoBot, Esrever, Ozhiker, Kuru, Disavian, Sobullubos, NongBot~enwiki, Drae, J5hale3, Domi-
tori, Aeons, Zureks, Eye heart pizza, Ntsimp, Schibs, PamD, Epbr123, Hcobb, DeePatton, Escarbot, LachlanA, Tweedman, Gioto, Guy
Macon, SummerPhD, 17Drew, Olexandr Kravchuk, Lperez2029, JAnDbot, Leuko, Harryzilber, MER-C, Kshuyler, Dsp13, Kschader, MS-
BOT, Stangaa, VoABot II, JoeBoxer522, Willy on Wheels over Ethernet, Japo, Nikosmastorakis, Geni-pmd, DGG, Dverma, Racepacket,
Sigmundg, NAHID, Greeney, Jim.henderson, Ethicalhacker, Rettetast, AnthonyMastrean, XanderJ, R'n'B, Erkan Yilmaz, RSRScrooge,
EscapingLife, Rlsheehan, Osvat, AleaJactaEst, Dtneilson, Jtbarr4, Psuar1, Crimson Twilight, Inwind, Dgoessling, VolkovBot, Shortride,
Leebo, Jeff G., TXiKiBoT, Yanw82, Guillaume2303, Krushia, LanceBarber, Yk Yk Yk, Truthanado, Mr. PIM, EmxBot, Matthew V
Ball, Technion, SieBot, Tiddly Tom, Sgg61991, Da Joe, Xvani, Brozozo, Nopetro, Mlongsho315, Herrnieman, Mkeranat, Vice regent,
Julie Dancer, Lardon10, IEEE07, Martarius, ClueBot, 1rankman, Aintneo~enwiki, Sabbah67, WaltBusterkeys, ImperfectlyInformed, Lan-
tay77, Ottawahitech, Hrudaya, Rollinsk, Razorflame, Stephengmatthews, BOTarate, Aleksd, StevenDH, Johnuniq, DumZiBoT, Alphak-
nave, XLinkBot, Pichpich, MystBot, ThatWikiGuy, Addbot, Chembeth, Knight of Truth, Fgnievinski, Hermite~enwiki, Wirpstein, Wal-
tonBC, Lepsteinn, Borminjeth, Anterman, LaaknorBot, Koyle, KoyleJ, Asumboler, Borlandersja, HerculeBot, Suwa, Legobot, Luckas-bot,
Yobot, Pink!Teen, UltraMagnus, Nmaddali, Rubinbot, Faisal zubaer, Galoubet, AdjustShift, Chrisc62, Materialscientist, ArthurBot, Csrus,
Gsmgm, Xqbot, TinucherianBot II, Ultrasonic o ke, Quintus314, Sionk, Miym, Alam bakshi, RogerDP, Wizardist, Mmmeg, A. di M., Fres-
coBot, WikiDonn, Steve Quinn, Geek2003, DrilBot, TAeiluj, Pinethicket, I dream of horses, Jadedrick, Tinton5, RedBot, Noel Streatfield,
Bradlito, Full-date unlinking bot, Jube82, Cnwilliams, Keri, Jaisaacs, SchreyP, Winjay, 092platinum, Lotje, Sanjaynediyara, Taiko3615,
564dude, Tbhotch, DARTH SIDIOUS 2, Galois fu, Mophoplz, Ssinha1981, Countblack, EmausBot, WikitanvirBot, Look2See1, Horndin-
kle, GoingBatty, 4meter4, Hhhippo, ZéroBot, John Cline, Parsonscat, Ὁ οἶστρος, Colejohnson66, Amr9090, ClueBot NG, MelbourneStar,
Raghith, Theleprechaum, Sebastian37, Cntras, JordoCo, Helpful Pixie Bot, Croben, Lowercase sigmabot, CiscoManager, M0rphzone,
PearlSt82, BBCLCD, PhnomPencil, Graham11, Megalibgwilia, Piguy101, S2piDLuveR, Chmarkine, WikiHannibal, Whym, TheUn-
namedNewbie, Icemail, BattyBot, Khazar2, JYBot, Grzegorznadolski, Rp8083, Frosty, Stewwie, Jibujames, Rmartinezmo, Ugog Niz-
dast, Sarr X, Seppi333, Indian corruption reform, Americans that hate americans, Vocalwotan, Pakrual73, Ter M. Ahn, B35c713dca,
MicahNSisco, RandyAAHaag, Latin Pig, Sangram12, Vivek-jones, Mountaindew776, Ejazmahmood82.em, נדב ס, Nadeem.abbasi459,
BD2412bot, Missconstreu, Heather-2004, Atom2494, Dentking07, KingJohnDavids, Buenaventura IEEE and Anonymous: 304
• Interaction protocol Source: https://en.wikipedia.org/wiki/Interaction_protocol?oldid=531051444 Contributors: Michael Hardy, Pnm,
Andrewman327, Khym Chanur, Varjag, Danakil, Pegship, Fang Aili, SmackBot, JonHarder, MarshBot, TheAMmollusc, Erik9bot and
Anonymous: 2
• International Organization for Standardization Source: https://en.wikipedia.org/wiki/International_Organization_for_
Standardization?oldid=736982364 Contributors: Brion VIBBER, Zundark, The Anome, VincentV, Jagged, Eclecticology, Ghakko,
Mjb, Heron, Olivier, Frecklefoot, Patrick, Olrick, Cprompt, Nixdorf, Liftarn, SGBailey, Lquilter, Delirium, Plasticlax, R4f~enwiki,
Keichwa, Egil, Looxix~enwiki, Ahoerstemeier, Mac, Jpatokal, Notheruser, Yaronf, DropDeadGorgias, Glenn, Whkoh, Mkoval, LouI,
Kwekubo, Tobias Conradi, Hashar, Gingekerr, Slathering, Billdakelski, Jusjih, JorgeGG, Denelson83, PuzzletChung, MK~enwiki, Robbot,
Modulatum, Verbose~enwiki, Puckly, DHN, Wereon, Guy Peters, David Gerard, Ancheta Wis, Binarygal, Chinasaur, Bovlb, Andycjp,
Joeblakesley, CaribDigita, Maximaximax, Icairns, Jbinder, Maikel, Abdull, Bcordes, CALR, A-giau, Discospinster, John FitzGerald,
Luxdormiens, Bender235, Mr. Billion, IndianCow, MBisanz, Kwamikagami, Spearhead, Sietse Snel, Mqduck, Coolcaesar, Cwass, Shou-
jun, Bobo192, Smalljim, Minghong, Mdd, Ranveig, Jumbuck, Gary, PaulHanson, Stovetopcookies, Hohum, Mbimmler, Irdepesca572,
Stephan Leeds, Suruena, Kusma, KTC, IRbaboon, Jacobolus, Sid1138, Pol098, Before My Ken, Ruud Koot, Knuckles, MiG, Frungi,
Sega381, , Graham87, Wbeek, Mulligatawny, Rjwilmsi, Seidenstud, Koavf, Strait, MZMcBride, Yamamoto Ichiro, Vuong
Ngan Ha, Guthardt, FlaBot, Ewlyahoocom, Jflapointe, Subversive, Lmatt, Crazeman, Thecurran, Ahunt, Chobot, Adoniscik, YurikBot,
Whoisjohngalt, RobotE, Jimp, RussBot, Bhny, Akamad, Manop, Gaius Cornelius, Rsrikanth05, Aeusoes1, Długosz, Rashev~enwiki,
Denihilonihil, EEMIV, Lockesdonkey, DeadEyeArrow, Bota47, TimK MSI, Haemo, Lt-wiki-bot, Hayden120, WirelessMike, Katieh5584,
Nick knowles, Finell, Sardanaphalus, SmackBot, Alex1011, Eskimbot, Edgar181, IstvanWolf, Anastasios~enwiki, Chris the speller,
Octahedron80, DHN-bot~enwiki, A. B., Hgrosser, Writtenright, Stepho-wrs, Addshore, SundarBot, Cybercobra, Mleinart, Jon Aw-
brey, RayGates, Aaker, Evlekis, Charivari, Ohconfucius, Dspakman, SashatoBot, Derek farn, Autoterm, JackLumber, MilborneOne,
MonstaPro, 16@r, Peter Horn, MTSbot~enwiki, Dl2000, Mackan, DouglasCalvert, Joseph Solis in Australia, Namiba, Vargklo, Zarex,
JohnCD, Thylacoleo, Lazulilasher, Culverden, Mato, DumbBOT, Kozuch, Thijs!bot, Dasani, Hervegirod, Anjadrame, SomeHuman,
Escarbot, Lmaltier, Scepia, Olexandr Kravchuk, JAnDbot, HAl, Zorro CX, Magioladitis, SHCarter, Mclay1, TARBOT, Tedickey,
Stupefaction, Ashishbhatnagar72, Rukaribe, Rettetast, R'n'B, Erkan Yilmaz, J.delanoy, Mindgames11, Qwanqwa, Rlsheehan, Jesant13,
406 CHAPTER 70. X.25
Jerry, LordAnubisBOT, Plasticup, Furrybarry, Cobi, Ljgua124, Ansiansiansi, Blah0401, DASonnenfeld, VolkovBot, TreasuryTag,
TXiKiBoT, K-car, ISAN-IA, Rick Jelliffe, Rbenech, Melsaran, UnitedStatesian, Yk Yk Yk, Altermike, Truthanado, Logan, C0N6R355,
John Larmouth, Bierstube Katzen Keller, EmxBot, SieBot, Jrats, Gerakibot, Caltas, Timothy Cooper, SuzanneIAM, LeadSongDog,
Flyer22 Reborn, Alexbrn, RW Marloe, BenoniBot~enwiki, OKBot, Svick, Anchor Link Bot, Danio, Bibliophylax, Jza84, Lindum,
Denisarona, Revelian, Emk, Martarius, ClueBot, Binksternet, WurmWoode, Mattgirling, Mild Bill Hiccup, Piledhigheranddeeper, Sv1xv,
Azalia1225, L.tak, BOTarate, Unmerklich, Kslall8765, Justwatchme, Silica-gel, XLinkBot, Snoopy99~enwiki, Delicious carbuncle,
Environ1561, Levic69, Dthomsen8, Mitch Ames, The Aviv, Alexius08, ZooFari, Addbot, AkhtaBot, Harish431, Kit.macallister,
RP9, Exor674, Tide rolls, OlEnglish, MuZemike, BasicBaer, Legobot, Luckas-bot, Yobot, Fraggle81, TaBOT-zerem, AnomieBOT,
Ichwan Palongengi, Rubinbot, 1exec1, Götz, Jeni, International Electrotechnical Commission, Qdinar, Law, Justme89, Bluerasberry,
Winklerteen, G7046072, Xqbot, JimVC3, Capricorn42, AnonyPussycat, DSisyphBot, Gumruch, Nasa-verve, Omnipaedista, RibotBOT,
Apathy monk, Theifynia, FrescoBot, LucienBOT, Haeinous, Outback the koala, DivineAlpha, BlaF, Bazzer palm, Editor Lara, Tinton5,
Skyerise, RedBot, MastiBot, Adamlaskey, FoxBot, Seahorseruler, Chrisbud14, Rollins83, EmausBot, Kpufferfish, Danieldavidturner76,
Ntizoglou, TuHan-Bot, Wikipelli, P. S. F. Freitas, HiW-Bot, ZéroBot, John Cline, Newbiepedian, Dondervogel 2, H3llBot, Shmilyshy,
Andattaca2010, Donner60, Matsievsky, Chewings72, ChuispastonBot, Uziel302, TYelliot, ClueBot NG, Cwmhiraeth, Matthiaspaul,
LuisMMCortez, Widr, Anupmehra, පසිඳු කාවින්ද, Gob Lofa, Sterling.M.Archer, George Ponderevo, Doseduk, Davidiad, Marcocapelle,
Whym, BattyBot, David.moreno72, AllenZh, Samuelled, Mutoso, Isoindia, Dexbot, Rezonansowy, BroadcastDonkey, Rp8083, Enoshd,
Ekips39, Kemmabrant, Ujjwal210, Camyoung54, BreakfastJr, EstonianMan, Michipedian, Tentinator, ArmbrustBot, Werddemer, Chris
Mchale, Kickfin, No longer a penguin, Meowcatzmeow, Kristanashly, Trackteur, Rajesh kumar005, TheAmazingBear, Malarvihzi,
Carbonheliumnitrogen, Wong Angel, Stefantangen, Pixelized frog, Winterysteppe, Yashsaini24, Garmonjones, Grammmarrr, GreenC bot
and Anonymous: 364
• International Telecommunication Union Source: https://en.wikipedia.org/wiki/International_Telecommunication_Union?oldid=
737354967 Contributors: Stephen Gilbert, Shii, Ben-Zin~enwiki, Liftarn, Lquilter, Yann, Glenn, Jiang, JASpencer, Thg, Radiojon, Itai,
Bevo, Topbanana, Jusjih, Denelson83, Rogper~enwiki, Bearcat, Robbot, Nurg, Postdlf, Varlaam, Ssd, Jfdwolff, Alvestrand, Peter Ellis,
Tipiac, Gadfium, Information Habitat, Bolo1729, Gdr, Piotrus, Andyabides, SimoM, Icairns, Mormegil, Poccil, Pmsyyz, Jordancpeterson,
Quistnix, Bender235, Swid, Violetriga, Dataphile, El C, Joanjoc~enwiki, René, Jumbuck, WideArc, PaulHanson, Guy Harris, Calton,
Alinor, Lugevas, Geraldshields11, Tomlzz1, Instantnood, Benoni, Armando, Knuckles, HappyApple, Eyreland, Jon Harald Søby, Mark-
Pos, Mandarax, Ictlogist, Graham87, Dmountain, Mulligatawny, Rjwilmsi, Vegaswikian, Cat5nap, Mkehrt, FlaBot, Itinerant1, Anonym1ty,
Parutakupiu, RockOfVictory, Chobot, Frappyjohn, Volunteer Marek, Slimey.limey, YurikBot, Borgx, MGodwin, Rsrikanth05, Marcus Cy-
ron, Maggu, Howcheng, Saper, BertK, Danlaycock, Tachs, TimK MSI, Ninly, Larroney, Bensons, Thomas Blomberg, Eteru, SmackBot, Un-
yoyega, Eskimbot, Mauls, David H, Donama, Kmarinas86, MalafayaBot, DHN-bot~enwiki, Addshore, DinosaursLoveExistence, Cyberco-
bra, Derek R Bullamore, Ohconfucius, Ozhiker, John, CmdrObot, R9tgokunks, Usgnus, Bioran23, Cydebot, Sa.vakilian, Kozuch, Dweiss,
Rjm656s, Thijs!bot, ITU, Gökhan, Harryzilber, Jahoe, Dcollard, Avicennasis, Adam Grenberg, Xtifr, Ashishbhatnagar72, Crunkcar,
RockMFR, J.delanoy, BandwidthSeek.Net, Maurice Carbonaro, AKA MBG, Sukee3, ABlockedUser, VolkovBot, RingtailedFox, TXiK-
iBoT, Youlia~enwiki, JhsBot, Yk Yk Yk, Altermike, AlleborgoBot, Pigdog234, Byassine, SieBot, Yintan, D'Ranged 1, Alexbrn, Light-
mouse, BenoniBot~enwiki, Kristine.clara, Taximes, Denisarona, Tuxa, Bwfrank, Tvol, Arcaist, DaveBurstein, Interfase, MusicTree3, L.tak,
Mykkerin, DumZiBoT, Antti29, DidiWeidmann, Dthomsen8, Jabberwoch, Good Olfactory, Addbot, Otisjimmy1, Zarcadia, NjardarBot,
Download, CarsracBot, Numbo3-bot, Lightbot, OlEnglish, Legobot, Luckas-bot, Yobot, محبوب عالم, AnomieBOT, Rubinbot, Galoubet,
Xqbot, TheAMmollusc, Madjar, Davshul, The Evil IP address, Isheden, Omnipaedista, January2009, Karlstar, D'ohBot, OgreBot, 10me-
treh, Foxhound66, Jschnur, Lars Washington, Mentmic, Jonkerz, Lotje, LilyKitty, Danigro456, Bornae, Mean as custard, TjBot, Bhawani
Gautam, Dstone66, EmausBot, China Dialogue News, BillyPreset, Rajwhite, WikiAnthony, Peaceray, Dcirovic, Slawekb, Wikignome0530,
Erianna, Umni2, Josie62, Targaryen, ClueBot NG, Coleemma, FinFihlman, Hurunui99, Newyorkadam, Piersletcher, Johnwest1999, Help-
ful Pixie Bot, BG19bot, Vagobot, AvocatoBot, Compfreak7, Japinderum, Polmandc, Whym, Tosek, Mdann52, Julien Houle, PhoneGuy86,
Hucklebur, Potor111, SmileyLlama, Rp8083, TheBlueCanoe, Skt12345, ThePassengerOfFreedom, Theoretical.Ideation, 83000bastian,
Hendrick 99, Deepakkumarpooja.kumar3, Duckbeaver, Tahmina.tithi, JaconaFrere, Wyn.junior, MrFrosty2, Filedelinkerbot, Taimuri-
jaz97, Pmajor48 and Anonymous: 124
• Internet Source: https://en.wikipedia.org/wiki/Internet?oldid=737865353 Contributors: Damian Yerrick, AxelBoldt, WojPob, Lee Daniel
Crocker, Eloquence, Mav, Bryan Derksen, Zundark, The Anome, Koyaanis Qatsi, Tim Chambers, Amillar, Wayne Hardman, Andre
Engels, Danny, Vignaux, XJaM, Darius Bacon, Fredbauder, Christian List, Aldie, Gianfranco, Little guru, Karen Johnson, SimonP,
Shii, Mjb, Heron, Rsabbatini, Mintguy, Dwheeler, Montrealais, Roybadami, Hephaestos, Twilsonb, Steverapaport, Quintessent, Patrick,
Michael Hardy, Modster, Lousyd, GUllman, Rp, Kabads, Tannin, Ixfd64, Graue, Seav, TakuyaMurata, Delirium, Pde, Minesweeper,
Tregoweth, CesarB, Fantasy, Ahoerstemeier, Ronz, Nanshu, Baylink, Snoyes, Cferrero, Collin~enwiki, Angela, Mvelicko, Den fjättrade
ankan~enwiki, Jdforrester, Erzengel, DropDeadGorgias, Julesd, Bjb~enwiki, Pratyeka, Glenn, Jschwa1, Whkoh, Bogdangiusca, Cyan,
Poor Yorick, Vzbs34, Cortalux, Susurrus, Kwekubo, Andres, Cimon Avaro, Kaihsu, Evercat, TonyClarke, Cherkash, Eirik (usurped),
Mxn, Marymary, TheStick, Schneelocke, Administration, Mulad, Guaka, Nohat, Andrevan, RickK, Viajero, N-true, Jwrosenzweig, Sa-
vantpol, Fuzheado, Slark, Andrewman327, Greenrd, WhisperToMe, DJ Clayworth, Haukurth, Tpbradbury, Jake Nelson, Maximus Rex,
Saltine, Marshallharsh, Jnc, Mattworld, Populus, Samsara, Thue, Bevo, RanchoRosco, J D, Traroth, Joy, Fvw, Bloodshedder, Raul654,
Pakaran, Jerzy, Jusjih, Johnleemk, David.Monniaux, Frazzydee, Shantavira, RadicalBender, Northgrove, Pakcw, Robbot, Paranoid, Juro,
Pigsonthewing, Fredrik, Chris 73, Vespristiano, RedWolf, Chocolateboy, ZimZalaBim, Netizen, Yelyos, Nurg, Naddy, Modulatum, Low-
ellian, P0lyglut, Yosri, Rursus, Texture, Jfire, Meelar, Bethenco, Diderot, Rasmus Faber, Davodd, 75th Trombone, Moink, Hadal, Vin-
centZ, JesseW, Borislav, Roozbeh, Mushroom, ElBenevolente, Anthony, Lupo, Fab, Tsavage, Seth Ilys, Guy Peters, Wile E. Heresiarch,
Jleedev, Jooler, Tea2min, Alan Liefting, Stirling Newberry, Alexwcovington, Centrx, Giftlite, Jacoplane, Marnanel, Gtrmp, Awolf002,
Fennec, Kim Bruning, ShaneCavanaugh, Wolfkeeper, Luis Dantas, Kenny sh, Lee J Haywood, Orangemike, IRelayer, Bimach~enwiki,
Peruvianllama, Everyking, Avalean, Curps, Henry Flower, Wikibob, Herdrick, Patrick-br, Rick Block, Andris, Guanaco, Daveb, Sun-
dar, MrSnow, Siroxo, Rchandra, Djegan, AlistairMcMillan, Macrakis, Solipsist, Alvestrand, Uzume, Lakefall~enwiki, Bobblewik, Ragib,
Golbez, Christopherlin, Scurra, Wmahan, Neilc, Stevietheman, Wikiwiki~enwiki, RWolf, Fishal, Gadfium, Utcursch, Alexf, Knutux,
Slowking Man, Yath, Sonjaaa, LucasVB, Quadell, Antandrus, Beland, Joeblakesley, OverlordQ, Dnas, MisfitToys, Piotrus, Am088,
Jossi, Marcschulz, CaribDigita, Rdsmith4, Gsociology, Rattlesnake, Kevin B12, Bodnotbod, ICTlogist~enwiki, Marc Mongenet, Th-
parkth, Neonstarlight, Cynical, Gscshoyru, Neutrality, Urhixidur, KeithTyler, Joyous!, Goobergunch, Karstimmer, Klemen Kocjancic,
Syvanen, Ratiocinate, Chmod007, Zondor, Adashiel, Trevor MacInnis, TheObtuseAngleOfDoom, Grunt, Iceflamephoenix, EagleOne,
Tobias Wolter, Bluemask, Millisits, Khefri, Mike Rosoft, Rfl, Freakofnurture, Monkeyman, Sparky the Seventh Chaos, Jiy, GoodStuff,
JoshG, Shadanan, MysteryDog, Noisy, RossPatterson, Discospinster, Solitude, Rich Farmbrough, Rhobite, Guanabot, NrDg, Hydrox,
Oliver Lineham, Pmsyyz, MCBastos, Inkypaws, Jonnny, Izwalito~enwiki, YUL89YYZ, Narsil, LindsayH, Xezbeth, AlanBarrett, Gronky,
Stereotek, SpookyMulder, Bender235, ESkog, Cyclopia, Zaslav, Kbh3rd, Goplat, Klenje, Violetriga, Billlion, Brian0918, Aranel, Mr.
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 407
Billion, Livajo, JustPhil, Kwamikagami, Tverbeek, PhilHibbs, Shanes, Spearhead, Art LaPella, RoyBoy, Matteh, SEOXpert, Willemdd,
Coolcaesar, Villafanuk, Jpgordon, Bobo192, Nigelj, NetBot, Smalljim, Orbst, BrokenSegue, Tronno, Shenme, Viriditas, Tmh, Matt Britt,
Maurreen, Jag123, Jkh.gr, Man vyi, Jojit fb, Rajah, Cheung1303, Twobells, Minghong, John Fader, Obradovic Goran, GMR5, Wrs1864,
Helix84, Haham hanuka, Ral315, Pearle, Gsklee, Jonathunder, Mdd, Annexia, Merope, HasharBot~enwiki, SuperJake, Espoo, Jumbuck,
Danski14, Poweroid, Mithent, Alansohn, Gary, Goodnewsfortheinsane, Anthony Appleyard, Trollminator, Blahma, SnowFire, Dr Zen,
Guy Harris, Fadookie, Alyeska, Diego Moya, Mr Adequate, Jeltz, PatrickFisher, Andrewpmk, Verdlanco, Plumbago, Sl, Andrew Gray,
ABCD, Riana, Ahruman, Echuck215, Lightdarkness, Smoothy, Garfield226, InShaneee, Cdc, Malo, Bart133, DreamGuy, Lugevas, Mari-
anocecowski, ClockworkSoul, Saga City, Rebroad, Knowledge Seeker, ReyBrujo, Stephan Leeds, Dtcdthingy, Evil Monkey, Max Naylor,
Jwinius, RJII, Olavandreas, Grenavitar, CloudNine, Drat, Sciurinæ, GregNorc, Mcmillin24, Guthrie, The1pato, EventHorizon, Com-
puterjoe, Reaverdrop, Freyr, Versageek, MIT Trekkie, Justin5117, Redvers, Voxadam, YixilTesiphon, Ceyockey, Richard Weil, Tim-
Martin, Kznf, Kenyon, Squiquifox, Scottbell, Sharprs, Stephen, Stuartyeates, Weyes, Thryduulf, Angr, Kelly Martin, The JPS, Simet-
rical, Bushytails, OwenX, Vidgmchtr, KidAirbag, Kupojsin, Mindmatrix, Camw, LOL, Yansa, Percy Snoodle, Guy M, Plek, Stickguy,
Bratsche, Wutasumi, Pol098, ^demon, Ruud Koot, Iconoclast~enwiki, MONGO, Pchov, Eleassar777, Kmg90, Schzmo, Foodmarket,
Bbatsell, Ppk01, I64s, Striver, Bluemoose, Complex~enwiki, Meneth, Sega381, Plrk, Waldir, Zzyzx11, Jonnabuz, Wayward, Wisq, Palica,
Driftwoodzebulin, Stevey7788, RichardWeiss, Azkar, KrisW6, Saposcat, Graham87, Marskell, GeorgeTheCar, Magister Mathematicae,
Tovias, BD2412, Galwhaa, Chun-hian, Kbdank71, FreplySpang, RxS, Reisio, Drbogdan, Sjakkalle, Rjwilmsi, Koavf, KYPark, Avochelm,
Vary, Bob A, Eyu100, Amire80, Biederman, Carbonite, Tangotango, Stardust8212, Sdornan, Captain Disdain, Lordkinbote, Vegaswikian,
Zizzybaluba, Nneonneo, Crazynas, HappyCamper, Ligulem, DoubleBlue, MarnetteD, GregAsche, DirkvdM, Renaissance Man, Yamamoto
Ichiro, SNIyer12, Leithp, Exeunt, Jflash, FayssalF, Titoxd, Kiba, Splarka, TekeeTakShak, Mirror Vax, Mark Elliott, Soph, JeremyMc-
Cracken, Doc glasgow, HJV, Crazycomputers, GünniX, Nivix, Chanting Fox, Isotope23, AJR, JIMBO WALES, Jsheehy, RexNL, Gurch,
Redwolf24, Jimbo D. Wales, Valermos, President Rhapsody, Brendan Moody, Sstrader, Seinfreak37, Intgr, Goeagles4321, Natalina smpf,
Daveg, Terrx, EronMain, Alphachimp, Kri, Mallocks, I Am Not Willy On Wheels, Miffy900, Coolhawks88, Antimatter15, King of Hearts,
CJLL Wright, Chobot, Jersey Devil, Frappyjohn, Evilphoenix, JesseGarrett, Mmx1, Bgwhite, EvilZak, Gwernol, Wjfox2005, Faseidman,
Zerak-Tul, EamonnPKeane, Roboto de Ajvol, YurikBot, Wavelength, Klingoncowboy4, Hawaiian717, Pile0nades, Kinneyboy90, Scep-
tre, Blightsoot, Hairy Dude, Jimp, Brandmeister (old), Tznkai, Jeffthejiff, MMuzammils, RussBot, Jtkiefer, Muchness, Peter S., Severa,
Anonymous editor, Briaboru, Chroniclev, Expertu, Gardar Rurak, SpuriousQ, Fabricationary, Oliverisyourdaddy, Samuel Curtis, Wayn-
eRay, Akamad, Dotancohen, Chensiyuan, Stephenb, Manop, Barefootguru, CambridgeBayWeather, Ihope127, MaxD~enwiki, Bisqwit,
Morphh, Wimt, Big Brother 1984, United88, NawlinWiki, Swollib, Xkeeper, R Pollack, 0waldo, Hm2k, SEWilcoBot, Wiki alf, Dae-
mon8666, Obarskyr, RattleMan, Avuton, Grafen, Thatdog, Dforest, Nathan8225, Jaxl, Dijxtra, Kvn8907, DarthVader, AlMac, Justin
Eiler, Chunky Rice, Robchurch, Barberio, Thiseye, Rbarreira, Anetode, Entirety, Jpbowen, Dooky, PhilipO, Dr Debug, Moe Epsilon,
Mikeblas, Misza13, Tony1, Zwobot, Supten, Epa101, Aaron Schulz, Mditto, Samir, Deku-shrub, Roy Brumback, BOT-Superzerocool,
Wangi, Karl Meier, DeadEyeArrow, Psy guy, Bota47, Abrooke, Blowdart, Oliverdl, Haemo, CLW, INaNimAtE, Macs~enwiki, Lumaga,
Max Schwarz, Wknight94, Avraham, Zeno McDohl, Eurosong, FF2010, Zombi333, Emijrp, Rdmoore6, Zzuuzz, Lt-wiki-bot, Mristroph,
Shengii, Bayerischermann, Ageekgal, Nikkimaria, KieranL, Theda, Xaxafrad, Jolt76, Gppande, JuJube, GraemeL, Jecowa, Speculatrix,
JoanneB, Gwylim a, Alias Flood, Hrvatska, Smurrayinchester, Peter, Willtron, JLaTondre, RenamedUser jaskldjslak904, Spliffy, Ariel-
Gold, Ilmari Karonen, RunOrDie, Zeroinbarnotation, Kungfuadam, Djr xi, Ben D., Cotoco, Jasón, NeilN, ChewT, Maxamegalon2000,
MansonP, Auroranorth, DVD R W, Finell, CIreland, Dusso Janladde, Trekkie711, robot, Sycthos, Computageek95, Dylanthalus,
Jmchuff, Veinor, Politik426, Themightyone, SmackBot, YellowMonkey, Elonka, Ashenai, Jamott, Classicfilms, KMcD, Bobet, TheFlop-
pyOne, Andre3k1, Incnis Mrsi, Reedy, Tarret, Prodego, InverseHypercube, KnowledgeOfSelf, VigilancePrime, McGeddon, Kenmcfa,
CopperMurdoch, Ederjar, Tale, Unyoyega, Pgk, Vald, Shervink, Jacek Kendysz, Kilo-Lima, KocjoBot~enwiki, Millifoo, Clpo13, Midway,
Fulldecent, Yelgrun, Mmeri, Delldot, Drzoidberg~enwiki, Irrelivant, MindlessXD, Srnelson, Vilerage, Parkinn, TheDoctor10, Edonovan,
Edgar181, MelancholieBot, Tommstein, Junipercwc, Xaosflux, Cachedio, PeterSymonds, Ohnoitsjamie, Folajimi, Choalbaton, Jack slack,
Drn8, Chris the speller, Bidgee, Persian Poet Gal, Bad Bud, Oli Filth, MalafayaBot, Keryst, Sadads, 000o, Oni Ookami Alfador, Omghgomg,
TheLeopard, Omniplex, DHN-bot~enwiki, ZakTek, Resslerdylan, Hallenrm, Antonrojo, Hiii98, Invenio, Firetrap9254, A. B., Jnavas, Gra-
cenotes, Nintendude, Yanksox, Andyiou52345, Mikker, Reaper X, Sleepyasthesouth, Chendy, Suicidalhamster, Mike hayes, Newmanbe,
Peter Campbell, Zsinj, Dethme0w, Can't sleep, clown will eat me, Jahiegel, Mulder416, Gamahucheur, Jorvik, Frap, SimonShlosberg,
Proofreader, Cooss, Atropos, Discharger12, Vulcanstar6, Nixeagle, Garfield 80, JonHarder, Voyajer, Dess~enwiki, TheKMan, Rrburke,
TonySt, Xyzzyplugh, Harlequinn, Chcknwnm, Mr.Z-man, Phaedriel, Khoikhoi, Stormy Waters, KnowBuddy, BWD, Krich, Wonderstruck,
Warhol13, Muraad kahn, E. Sn0 =31337=, Cybercobra, Irish Souffle, Khukri, Digresser, Hhhhhh, Wikipediaphile, Makemi, Tenpin477,
Nakon, Savidan, Mikefzhu, Valenciano, Funky Monkey, Flyingember, MichaelBillington, EVula, Blake-, Nick125, Drivera90~enwiki,
Rajrajmarley, Orbitalwow, Dvc214, Chalybs, Dreadstar, Eran of Arcadia, Kirils, Invincible Ninja, ShaunES, Mini-Geek, Lcarscad, Dy-
lanW, Clean Copy, Weregerbil, Astroview120mm, Xagent86, Drphilharmonic, Jklin, AndyBQ, Acdx, Where, Mitchumch, Reliablesources,
Curly Turkey, Pilotguy, Kukini, Wossi, Ohconfucius, Cyberevil, Fujifisher, The undertow, SashatoBot, Kostas.karachalios, Untame Zerg,
Rory096, Robomaeyhem, Quendus, Harryboyles, Rklawton, Locatelli, Atomic23112, Kuru, John, Allyoursanity, AmiDaniel, Bordello,
KenFehling, OFX, Plugimi, Vgy7ujm, Soptep, J 1982, Heimstern, Loodog, Kemkem, Gobonobo, EKN, Atgthatsme, Ekjon Lok, Pal-
adinwannabe2, Johnnysfish, Soumyasch, Martysanders, Sir Nicholas de Mimsy-Porpington, Breno, Cpom, Isomega, Tktktk, Aujlakam,
Linnell, Benesch, Shadowlynk, JoshuaZ, Edwy, Chodorkovskiy, Cyberitis, Accurizer, Hadrians, Goodnightmush, Mr. Lefty, SpyMagician,
Hazr0x, Intiendes, Kinghy, HardwareBob, Entrpy, 16@r, Matthewccna, JHunterJ, Drew46, Trashday03, Agathoclea, Andypandy.UK,
RunningBon, Slakr, Stwalkerster, Shangrilaista, Luckycatfu, Muadd, Grandpafootsoldier, Charles7~enwiki, Dicklyon, Ambrose Bright-
side, Larrymcp, Spazm, Maksim L., Waggers, Nuutti, Anonymous anonymous, UpTheBracket, LPedroMachado, Ryulong, Fluppy, Dr.K.,
RichardF, Citicat, Jose77, Samurai107, Kvng, Rcannon100, Dl2000, Andreworkney, Nathanrdotcom, Stephen B Streater, Levineps, Hetar,
Saxmaniac777, JustJoe, OnBeyondZebrax, HisSpaceResearch, Fan-1967, Iridescent, Kencf0618, Missionary, Joseph Solis in Australia,
JoeBot, Kernow, Shoeofdeath, Pegasus1138, NCDS, Igoldste, Lenoxus, Sam Li, Charlesincharge, Alem800, Bandan, Az1568, Linkspam-
remover, Shawry 00, FancyPants, Woodshed, 2dogs, Tawkerbot2, Dlohcierekim, Yashgaroth, Daniel5127, Filelakeshoe, Nikk32, Erikring-
mar, Jworld2, Shebaboy102, Mr.happy~enwiki, Ryt, Lahiru k, Orangutan, SkyWalker, Taskmaster99, Teamcoltra, Didimos, Anthony22,
Wafulz, Centered1, Zarex, Picaroon, Richemond~enwiki, CWY2190, Eltonhoyantam, GHe, KnightLago, Stateguy, Bbao, Dgw, Green
caterpillar, Lemmio, Lentower, INVERTED, Moreschi, Old Guard, Casper2k3, Ravensfan5252, Www06, Linux Rocks, Tex, Helios En-
tity 2, Oden, MikeWren, Phatom87, AndrewHowse, Cydebot, Karimarie, Cahk, Mblumber, Peripitus, Ryan, Mike Christie, Johnny-5,
Steel, UncleBubba, Chris21192, Gogo Dodo, BlueAg09, Icewindfiresnow, Flowerpotman, Llort, ST47, Xeo-Wizzard, WikiWikiMan,
Eu.stefan, Tkynerd, Cbaxter1, SymlynX, Tawkerbot4, DumbBOT, Phydend, Nathan nfm, Dbeilhartz, Grison~enwiki, K00LKid, ZerD,
Inkington, Waxigloo, Kozuch, NorthernThunder, Toolingu, Omicronpersei8, JodyB, Niubrad, Sthow, Hydrajr, Satori Son, Khanlarian,
MeBee, FrancoGG, Thijs!bot, Skb8721, EthanNeuen, Biruitorul, Ph.D.Nikki, Coelacan, Nitishg, Pinaki ghosh, TonyTheTiger, Tkeller,
Staile, Fountain09, Daniel, PureLogic, Kablammo, HappyInGeneral, Serpent-A, Gamer007, Mojo Hand, Asmo86, Kevkoch5, Wompa99,
408 CHAPTER 70. X.25
Headbomb, KillaDilla, Pjvpjv, West Brom 4ever, WillMak050389, PizzaMan (usurped), Tapir Terrific, SomeStranger, TheJosh, Mr pand,
Merbabu, Irvingbird, Dagvadorj, Jeph paul, Sinn, NigelR, Dinardi, Strongriley, AgentPeppermint, Zachary, Tzhourdeka, Adw2000, Tocino,
GreatLiver, Central2, Insiriusdenial, Dawnseeker2000, Natalie Erin, SignorSimon, Navigatr85, AlefZet, Escarbot, Oreo Priest, Cyp01,
Handface, Mentifisto, Porqin, WIkiHorseMan, Sunshine22 858, KrakatoaKatie, Gossamers, AntiVandalBot, Speedysam, AbstractClass, Js-
nruf, Majorly, Yonatan, PARA19, Gioto, Luna Santin, Widefox, Kramden4700, BossOfTheGame, Opelio, Asdfghty, SummerPhD, Scrolls,
Bigtimepeace, Grich, Monsier Pie, CobraWiki, Quintote, Joelscorp, Dr. Blofeld, Autocracy, Readro, Jj137, Nycceo, Scepia, Smartse, Dy-
lan Lake, PhJ, Geape, Graham Clark, Malcolm, Julie Deanna, Spencer, RajeshPandey, Madmax vii, Arx Fortis, Zidane tribal, Myanw, TI85,
Canadian-Bacon, Kariteh, Yet-another-user, JAnDbot, Harryzilber, Pguerra, Kaobear, Moe kuwait, AaronKaplan, MER-C, Sonicsuns, The
Transhumanist, Malnourish, Rockhall, Tech2blog, Gamefreek76, H3llbringer, MODS=FAIL, Andonic, Naugahyde, Mwarren us, Ytmnd6,
Martinkunev, Bigwig77, Pkoppenb, Dream Focus, Kirrages, Paladin656, Ô, .anacondabot, Acroterion, Yahel Guhan, Couchpotato99,
Peteark, Freshacconci, Sinnerwiki, FaerieInGrey, Logan.aggregate, Captainpancreas, PrimroseGuy, Canjth, Pedro, Mrcharliexcore, Baby-
face123, Bongwarrior, VoABot II, Junie dilitori, Hhhhgoteam, AznShortBoi8021, VRoscioli, Rpgprog, Rscash22, Doug Coldwell, River-
torch, Jops~enwiki, Michaelhaslip, Tedickey, Xeddy, Dinosaur puppy, Epidown, Bookuser, Prestonmcconkie, Tomatoe, Morganp7,
Tokyogirl119, Djjkxbox, Indon, Srice13, Animum, Subatomicguy, SSZ, Hekxcieksdl, Shady Hippo, Mapper76, Loonymonkey, Whiney,
M8al, Cpl Syx, Interflop, Spellmaster, 3idiot, Jacobko, Arfan, DerHexer, Kgfleischmann, Wikigreatest, Ostaph7, Bitbit, Aviaris, Abbos,
HiB2Bornot2B, B9 hummingbird hovering, Stephenchou0722, Timknell, EtienneDolet, Hdt83, MartinBot, Michael Podgorski, Sjjupad-
hyay~enwiki, Pagw, BetBot~enwiki, You must have cookies enabled to log in to Wikipedia., Jay-d123, Poeloq, Piuneer, Aladdin Sane, Lol at
Lilo, Sl021, Rettetast, Juansidious, 424242, Sm8900, Mschel, Zhente, CommonsDelinker, AlexiusHoratius, Deflagro, JMJimmy, PrestonH,
Whale plane, Thewallowmaker, Smokizzy, Lilac Soul, Siliconov, Pomte, Mikaida, RockMFR, J.delanoy, Trusilver, AstroHurricane001,
Adavidb, UBeR, Numbo3, Zib redlektab, Hans Dunkelberg, Piercetheorganist, Maurice Carbonaro, All Is One, Public Menace, Moogle-
EXE, Jesant13, Mike Cherim, Jreferee, Mike.lifeguard, Octopus-Hands, Golfballock, Enchantian, Monkeyman393, Katalaveno, Smeira,
Guade00, SpigotMap, Starnestommy, Ryan Postlethwaite, J.puckett, Jigesh, Mikael Häggström, SparsityProblem, Gurchzilla, Cdxnolan,
AntiSpamBot, RaptorRobot, The Transhumanist (AWB), Darrendeng, NewEnglandYankee, Urzadek, Drosera~enwiki, Aervanath, SJP,
MKoltnow, Charlesblack, Olegwiki, Rinothan2, Xeysz, Laboobala, Dodecki, Jonathan P. Chen, Layzner, STBotD, CF90, WJBscribe,
Uberdude85, Operator tore~enwiki, Tiggerjay, Rebent, Student17~enwiki, Jamesontai, Remember the dot, KatherineTurnbull, Wikidogia,
Jevansen, Vanished user 39948282, Gimmeurm0ney, Diletante, RadiantSeabass, Bonadea, Jaffo Gonzales, Use the force, Nessdude14,
Link 991, Editmachine, Marcin Suwalczan, West wikipedia, Dorftrottel, Bwaav, RjCan, Steinberger, Mlewis000, Funandtrvl, Killer-
CRS, Spellcast, Lights, X!, Devonreilly, King Lopez, VolkovBot, TreasuryTag, Larryisgood, Thedjatclubrock, Raza514, Orphic, Derekbd,
MarcRS, Imacg3, Reymysterio01, TheRhani, Bry9000, Gluttenus, Majoreditor, MagicBanana, Freewayeric, LeilaniLad, Barneca, Max-
tremus, Philip Trueman, JayEsJay, Eric outdoors, Drunkenmonkey, Domstabsdogs, Frigglinn~enwiki, TXiKiBoT, Ageing Geek, Mercury-
woodrose, Berk, DaManWitDaPlan, Maximillion Pegasus, Antony, joseph, Tomsega, Sarenne, GDonato, Miranda, Dchall1, Wikidemon,
Ann Stouter, Anonymous Dissident, Stagefrog2, Qxz, Someguy1221, Taimaster, THEemu, The-secret-asian-man, Anna Lincoln, Kidutsu,
Lradrama, Sidepocket, JhsBot, Wordsmith, Fortethefourthversion, Irtrav, Canaima, Manchurian candidate, Drappel, Sawdon2, Bob f it,
Cremepuff222, Frank G Anderson, Snoom haplub, Maxim, FlushinQwnzNyc, Olgerd, Shane3x, Wikidrone20000, Maksdo, Flash man999,
RadiantRay, Aphilo, Mwilso24, Cybaxter, Wenli, Corrupt one, Jaqen, InMooseWeTrust, Arekku`xx, Usergreatpower, Acprisip, Valkyryn,
W1k13rh3nry, WJetChao, Synthebot, BrianRecchia, Mgoerner, Ahmad halawani, Falcon8765, Purgatory Fubar, Softlavender, Network
master, Brianga, Zungaphile, Qworty, Ebaur5, AlleborgoBot, Joel delahunty, Sfmammamia, Tvinh, FlyingLeopard2014, EmxBot, Samj72,
Schoolproject2, D. Recorder, Berro9, Kbrose, HarryMcDeath, Rockinduck, Gantster, Chime Shinsen, STA654, Hegiiman, SieBot, Grass-
maker, Kevin66, Richard Ye, Calliopejen1, Tiddly Tom, Moonriddengirl, Euryalus, Kwirky88, BotMultichill, Gannzor, Gnoluyr, S M
Woodall, Krawi, Harrystown, Geekmax, Lemonflash, Callipides~enwiki, Gerakibot, Missy Prissy, YourEyesOnly, Parhamr, Caltas, Per-
spectoff, Jacotto, Arsenal0328, Dinestysfaith, Lennartgoosens, Luxurius, G0dsweed, Knows lots, The Flying Purple Hippo, Maddenplayer,
Ph1r35p4wn, Excelsior f, Spedwehavedisabilaty, Foboy, Purbo T, Arda Xi, Keilana, Carmen.banea, RucasHost, NickD310, Pxma, Hobbit
fingers, Shreyash02, Tiptoety, Radon210, Oda Mari, Elcobbola, Elmidmibbs, Yatesie, URBOSAUR, Hiddenfromview, Jazzilla, Tuuuuuuu-
ubes, Diverock, Puremind, Scott981992, Krapface, Aruton, Makemebad~enwiki, Oxymoron83, MangaFreak0, Smilesfozwood, AngelOf-
Sadness, Nuttycoconut, Sparsh717, Lightmouse, Malunis T, KathrynLybarger, Yamaka122, Ceas webmaster, BenoniBot~enwiki, Poser-
xox, Dillard421, Stephen Shaw, Svick, Leonidasthespartan, Promodulus, C'est moi, Spartan-James, JohnnyMrNinja, Anchor Link Bot,
IamYossarian, Modelun88, Tfcollective, Wiggleintatter, Wisejoker, Wiknerd, Mafioosnik, Dust Filter, Altzinn, Justin050190, Brandork,
DavidJGW, Saghar2, Moarmudkipzlulz, Jons63, Into The Fray, PerpetualSX, Velvetron, Skyhuperut, WikipedianMarlith, Mr. Granger,
Twinsday, ClueBot, SummerWithMorons, Rumping, Noorkhanuk85, PipepBot, The teller of all 666, Jumborulz, UniQue tree, Ankiththe-
great, The Thing That Should Not Be, ArdClose, Theguns, Deedub1983, Enerccio~enwiki, NPhoenix, PopeMas214, Sukmas214, EoGuy,
Bhuvanneshsat, Jayan13, Imthesmartdude, Supertouch, SchulteMAS214, FundieBuster, Shade11sayshello, Longcatislooooooooooooong,
Wiki Edit 12, Meekywiki, Bookh, Bennettchipper, JRod451, Brezzo, Der Golem, Justin.purvis, Gingaspice, Wardron, Cameronmas214,
Regibox, Kingbob2, Popedawg, CounterVandalismBot, We4reLegion, Niceguyedc, HulleGranz, Italianboy931, Eybaybay, Goel madhur,
Jskleckner, Trivialist, Allr0und, Logan590, Marklar689, Sup chily monster, SimpleParadox, Cirt, Istiamar, Shantu123, Puchiko, Edwina
Storie, Liddlerebel, Breakmoved, Blossom the Awesome, DragonBot, Excirial, OracleGD, Oldrockx666, Cgeorge316, Joeikin, Cam809,
Danscool, Chotisornmas214, Technobadger, Raydomingo, THEODORMAS214, Suttipongkanasaimas214, Xklsv, Bentonmas214, Cenar-
ium, Dpiccuirro, Not Zilla3, Jotterbot, LOLPEAR, Hardcoregayslaveman, Jp5508, Mrguythefourth, Jivadent, Joke321~enwiki, I amm
Beowulf!, Kuka369, CMW275, Dekisugi, Greatflyingsock, Seth662, Dorgan65, Pamela Gardiner, Thehelpfulone, Expert at this, Thingg,
Ominousguardian, Tehmechapope, Aitias, YTMND64, Murali nmv, Musicmaniac15, NitroOx, Dickguertin, UrsaLinguaBWD, PCHS-
NJROTC, Rasmasyean, Burner0718, Vybr8, Grey666, Relly Komaruzaman, Oogadabaga, Slayerteez, Wawplok, Pianokid54, Psychcf,
Anonymasity, Zavon25, Rawrnessalphy, Spick And Span, John0101ddd, Dryice2ooo, Marcusvtos, Vjlenin, Gblxyz, Tylermillersucks, Jade
wezel, Jsoffer, Rflorenc, Codemastercode, Mangy Cheshire Cat, Freshbakedpie, Chabby, Petchboo, Whitehorse1413, Clothed so hardsm,
Little Mountain 5, Rreagan007, Sloud74, Avi1111, Good Olfactory, BK08, Eaaiscool, Kbdankbot, Blcarson, Bluejm2, Grayfell, Phille-
jay, Jkasd, Mabdul, Hirschtick3, Jgeer, Bandj, Capouch, M.nelson, Hyperthermia, Zellfaze, Sibbic, Bigbrotha3, Tothwolf, Blethering
Scot, AnotherDeadPerson, Vocation44, Technician2, Damiens.rf, CarsracBot, Joycloete, AndersBot, Fottry55i6, Favonian, Amitesh3011,
Guffydrawers, Numbo3-bot, St ttb, Equilibrium007, Rehman, WQDW412, Lightbot, DigitalSorcerer, SasiSasi, Jarble, JEN9841, Drew
thomas amirault, LuK3, Pointer1, Publicly Visible, Yobot, TaBOT-zerem, The Grumpy Hacker, Pineapple fez, Rud Hud Hudibras,
EnochBethany, KamikazeBot, Timir Saxa, محبوب عالم, Squish7, Nybiker1, OregonD00d, AnomieBOT, Andrewrp, 1exec1, Jim1138, 90,
JaredInsanity, Tehori, Wikisanchez~enwiki, EryZ, RandomAct, Mahmudmasri, SusanBrackman, Citation bot, Carlsotr, Lord Aro, Arthur-
Bot, Quebec99, LilHelpa, Xqbot, Agather, PabloCastellano, Sman24, Khajidha, TechBot, DSisyphBot, Jmundo, Marxercise, Gahuntly,
GrouchoBot, Solphusion~enwiki, Eriktoto, Brandon5485, Mark Schierbecker, RibotBOT, SassoBot, Kesaloma, AlexPlante, Yoganate79,
Stratocracy, Jangirke, Ronz91, Justinwiki324, Natural Cut, Erik9, HackerOnSteroids69, Thinker jones, CommodoreAngryy, Dan larsen,
Cocklip, Jugdev, GliderMaven, 802geek, Tiramisoo, W Nowicki, Flubberdubbe, Raznice, Hunter-Ing, Bambuway, Louperibot, Cita-
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 409
tion bot 1, Manywindows, Littleduty2, MacMed, I dream of horses, ChrisJBenson, LittleWink, Spyke411, Rafaelluik, Lorenzocantoni,
Dana60Cummins, Eddowii, Wonsoh, Beao, Computerquip, Zhonghuo~enwiki, Bband11th, Ivasykus, Orenburg1, FoxBot, TobeBot, Trap-
pist the monk, DriveMySol, TangoFett, Lotje, Jarmihi, Duoduoduo, Phil A. Fry, Kitfoxxe, Tbhotch, Mileshalverson, FelixtheMagnificent,
RjwilmsiBot, TjBot, Ripchip Bot, HeinzzzderMannn, EmausBot, John of Reading, WikitanvirBot, Timtempleton, Tallungs, Dewritech,
Sharkticon Guy, Roscheray, Faolin42, MechaWave, Dcirovic, Gagarine, P. S. F. Freitas, Jasonanaggie, Mz7, Eagardea, Lolnob, Check-
ingfax, Liquidmetalrob, Bcanoerrecart, NexCarnifex, BWP1234, Ora Stendar, Aronoel, H3llBot, Drangob123, SporkBot, Rapidosity,
TcomptonMA, W163, Gsarwa, Septuaginta, Bomazi, ChuispastonBot, GermanJoe, NorCal764, Knochen, Senator2029, Will Beback Auto,
Jwhimmelspach, ClueBot NG, Cispare, Michaelmas1957, Incompetence, Odisha1, Movses-bot, Wikifun95, Dubious Irony, Frietjes, Cn-
tras, Hazhk, Aurora Glory Paradise, Joshua Gyamfi, Jebethe, Sirkh1, Aurelie Branchereau-Giles, Helpful Pixie Bot, Wbm1058, Bibcode
Bot, Someone35, Areeb cool, Anagramology, BG19bot, Pappy333, Flekkie, Wri0013, Kndimov, AvocatoBot, Zerbu, Davidiad, Bereziny,
Compfreak7, Cadiomals, Enervation, Floating Boat, Bfax, Zmasterodinternetz, In4matt, Mikeanthony1965, Meclee, Hamish59, Maurice
Flesier, Merritttttt, Minsbot, Oleg-ch, Bonkers The Clown, Pskelkar74, MeanMotherJr, Da9iel, ChrisGualtieri, Rezonansowy, Mogism,
Sri555666, Coolness107, Jemappelleungarcon, DouglasDean, Paspie, Jonhope123, Jo-Jo Eumerus, Combating Ignorance, NickKrammes,
Zalunardo8, Chrono85, Jennpliu, Neo Poz, Liketotaly, EllenCT, OldFishHouse, Thevideodrome, Atotalstranger, Bhasinnitish, Whizz40,
Fixuture, Abhikpal2509, Legendiii, Concord hioz, Monkbot, John Ozyer-Key, Hedieh Taraghi, Michael F 1967, Vincent60030, Prisencolin,
Evidense, YJAX, User26954344524345, Ithewanderer, Daniela C DeMaria, Aethyta, Radawebs, ChamithN, DangerousJXD, None159,
Rpot2, Lord Subro, Jlewis144, TechnologyExplorer, Kaufmanitay, Ermagerd117, StanfordLinkBot, Craftdraw, SoSivr, Rajahllame, Ly-
maniffy, Bryte507, Shuffleman117, Abb2webb, Hungryce, Prinsgezinde, KasparBot, MB298, Συντάκτης Βικιλεξικό, SandipBhandari12,
Arifys, Fdfexoex, ScholarM, Sandenig, Chenthil Vel, Singular Near, Hhuan, Zerogravity89, GreenC bot, Robot psychiatrist, Outaouais-
regina, Gzkefpro, Motivação and Anonymous: 2056
• Internet Control Message Protocol Source: https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol?oldid=729681745 Con-
tributors: The Anome, Drj, Wayne Hardman, Matusz, Fubar Obfusco, William Avery, PeterB, SarahEmm, Nixdorf, Shellreef, Kku,
Jnc, Robbot, Chealer, Fredrik, Romanm, Tea2min, Alerante, Mintleaf~enwiki, Niteowlneils, Beowulf king, Bgraabek, Bumm13, Huwr,
Anggarda, Canterbury Tail, Monkeyman, JTN, Pmsyyz, Vsmith, CanisRufus, Sietse Snel, Robotje, Polluks, Wrs1864, Jumbuck, Poweroid,
Caesura, Suruena, Grenavitar, Voxadam, Kenyon, S.emmerson, Nuno Tavares, Woohookitty, RHaworth, DrThompson, Fbriere, Gra-
ham87, Qwertyus, Tlroche, FlaBot, Fresheneesz, Sioux.cz, Alvin-cs, Chobot, YurikBot, Hawaiian717, Me and, Jengelh, Voidxor, SixSix,
DeadEyeArrow, Antiduh, ArielGold, TuukkaH, Mr link, KocjoBot~enwiki, Tjpayne, Hardyplants, Jasminek, Joseanes, Plustgarten, Vina-
iwbot~enwiki, Ugur Basak Bot~enwiki, Oskilian, Mahboud, Manifestation, Celtkin, Kvng, Courcelles, Unixguy, WeggeBot, Phatom87,
Cydebot, UncleBubba, Verdy p, Quibik, Thijs!bot, Dark knight, AntiVandalBot, Bradycardia, JAnDbot, Enjoi4586, Kgfleischmann, Gw-
ern, Ageekymonk, Verdatum, J.delanoy, Mange01, Athaenara, Andareed, Dnevil, VolkovBot, TXiKiBoT, Naveenpf, Goreatic, Piper8,
Whbstare, Rjgodoy, YordanGeorgiev, AlleborgoBot, Logan, Pointy haired fellow, Kbrose, BobHackett, SieBot, VVVBot, Flyer22 Re-
born, Tstojano, Ajk91, Denisarona, Martarius, ClueBot, LAX, Hari36533, VsBot, Adamianash, Alexbot, Jadhav.m, Monkeymaker,
Promethean, Mremail1964, SilvonenBot, Dsimic, Addbot, Favonian, ChenzwBot, HerculeBot, Luckas-bot, Yobot, Massimobeltramo,
Fraggle81, Amirobot, Nallimbot, Eliellou, Ranjithts, Jim1138, RokerHRO, Xqbot, PlaysWithLife, Forton, RibotBOT, Philleb, Electrocut,
Omar35880, FrescoBot, Wikisierracharlie, Ccie5000, FoxBot, RjwilmsiBot, B20180, Xmm0, Mayonaise15, K6ka, ZéroBot, John Cline,
Kalin.KOZHUHAROV, Jay-Sebastos, VictorianMutant, Voomoo, ClueBot NG, Nimiew, CocuBot, Zynwyx, MatthewIreland, Khazar2,
Lythamlatic, Jasubbey1, Bennettaur, Dave Braunschweig, Faizan, ArmbrustBot, Shrivas06, WikiJackool, Joshuaje1, Sangeshitou, DNPRO-
JECT, KasparBot, Fosskevin and Anonymous: 223
• Internet Engineering Task Force Source: https://en.wikipedia.org/wiki/Internet_Engineering_Task_Force?oldid=724750849 Contribu-
tors: The Anome, Stephen Gilbert, RobLa, Css, LA2, Paul~enwiki, Olrick, Polimerek, Liftarn, Lquilter, Looxix~enwiki, Julesd, Glenn,
Hashar, Wikiborg, Magnus.de, Jnc, Shizhao, Shantavira, Robbot, Chealer, Noldoaran, Sunray, Zigger, Behnam, Alvestrand, Piotrus,
Am088, Icairns, Yakovsh, Now3d, Jrp, Rich Farmbrough, Reallycoolguy, Y(J)S, Paolopal~enwiki, Bender235, Spearhead, Coolcaesar,
Robotje, Paulehoffman, Blobglob, Suruena, Mindmatrix, Uncle G, Bkkbrad, Knuckles, Graham87, Rjwilmsi, Tim!, Koavf, Darguz Parsil-
van, FlaBot, Guanxi, Chobot, Zimbabweed, YurikBot, Wavelength, Borgx, FrenchIsAwesome, Howcheng, Scs, Rob evans, Matthewdingley,
Jules.LT, Ninly, E Wing, Jcmarcfl[email protected]~enwiki, SmackBot, FocalPoint, Bazza 7, Charlierichmond, Bluebot, Philosopher, Jon-
Harder, Cybercobra, Andrewpayneaqa, Zearin, IronGargoyle, P199, Joseph Solis in Australia, Paul Foxworthy, Tonyhansen, NickW557,
Lentower, Gregbard, Krauss, SusanLesch, Widefox, Akradecki, JAnDbot, Cjkporter, Magioladitis, Jlenthe, Livingthingdan, STBot, Adzi-
nok, Hardaker, Funandtrvl, VolkovBot, TXiKiBoT, Bob103051, Luksuh, Pigdog234, SieBot, BotMultichill, Flyer22 Reborn, Behind The
Wall Of Sleep, Cbl62, Hatster301, Athletic ro, 718 Bot, CodeCaster, Jeffreyschiller, Jovianeye, Addbot, Ghettoblaster, Mabdul, Toth-
wolf, Ridwan.redo, AnnaFrance, Jarble, Abhayakara, HerculeBot, Sonix, Legobot, Luckas-bot, Yobot, Amirobot, AnomieBOT, Rubinbot,
Coopkev2, Materialscientist, ArthurBot, Xqbot, Khajidha, Miracleworker5263, TruthPraiser, BuffStuffer, Aperson1234567, HJ Mitchell,
Lotje, Vrenator, EmausBot, WikitanvirBot, Gamliel Fishkin, ZéroBot, Wayne Slam, W163, Aldnonymous, ClueBot NG, Chester Markel,
Oddbodz, Be..anyone, Mark Arsten, Chmarkine, Whym, Khazar2, Mogism, Razibot, Michael V Gold (True), RaphaelQS, ArmbrustBot,
Hooah8787, Sofia Lucifairy, Trackteur, 2014Best and Anonymous: 91
• Internet Message Access Protocol Source: https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol?oldid=737980635 Contrib-
utors: Zundark, Koyaanis Qatsi, Christian List, Golem~enwiki, Defrenrokorit, Bdesham, Nixdorf, Liftarn, Yaronf, Julesd, Sinan~enwiki,
Jonik, ASk, Ryochiji, Wik, Shizhao, Finlay McWalter, Robbot, Chealer, RedWolf, Tim Ivorson, Yosri, Hgd, Honta, Giftlite, John-
josephbachir, Anton Mravcek, Jonabbey, Fleminra, Joconnor, Rick Block, Sdfisher, Mboverload, Rchandra, AlistairMcMillan, Falcon
Kirtaran, Espetkov, Joseph Spiros, Nomeata, LiDaobing, Robert Brockway, Pitr, Anirvan, Jlang, Hobart, EagleOne, JTN, Rich Farm-
brough, KneeLess, Pmsyyz, Smyth, Hhielscher, Chadlupkes, ZeroOne, Kaszeta, *drew, Joanjoc~enwiki, Mairi, Apollo2011, Robotje,
Unquietwiki, Wrs1864, Krellis, Guinness~enwiki, Jumbuck, Gary, Guy Harris, AzaToth, Thoric, Ronark, SidP, Suruena, Omphaloscope,
Blaxthos, Ron Ritzman, Mcsee, Karnesky, BårdBjerkeJohannessen, Oliphaunt, Armando, Timosa, Pol098, Jhartmann, Graham87, Sjö,
Rjwilmsi, Koavf, Allen Moore, FlaBot, PeconicSky, TheAnarcat, Kedadi, Gwydion1, HalifaxRage, Chobot, YurikBot, Hairy Dude, Hyad,
Red Slash, Sakurina, Gardar Rurak, Barefootguru, RussNelson, Grafen, Voidxor, Natkeeran, Bota47, Speedoflight, Erpingham, Rwxr-
wxrwx, Cedar101, Drable, Anclation~enwiki, David Biddulph, GrinBot~enwiki, SmackBot, Imz, Pgk, Charlesrh, Skizzik, El Cubano,
Bluebot, Keegan, Thumperward, Snori, MalafayaBot, Deli nk, Uthbrian, Omniplex, Ned Scott, Frap, Chlewbot, JonHarder, Addshore,
Mr.Z-man, Estephan500, Gkanch, Cybercobra, WintersChild, Mwtoews, Ts4z, Tfl, Zac67, Mouse Nightshirt, Trou, NongBot~enwiki,
Adam Marsh, Ktinga, Beetstra, Larrymcp, NaturalBornKiller, RG~enwiki, MTSbot~enwiki, Peyre, Koweja, Caiaffa, Eliashc, Lathspell,
Beno1000, Wsheward, Z4ns4tsu, Mloughran, Ivan Pozdeev, Walling, Danitaz, Pgr94, Chrisahn, Equendil, UncleBubba, L.Petrlik, Tawker-
bot4, Cosmoincarlow, Johayek, Glenn Anderson, Thickycat, SusanLesch, Escarbot, TravisHein, StevenMcCoy, Tgwizard, JAnDbot, Rsfor-
ward, Sophie means wisdom, R27182818, Enjoi4586, BlueRobot~enwiki, Ersalan, FisherQueen, P00r, Sagabot, Doodledoo, AlexJTaylor,
J.delanoy, TimoSirainen, NerdyNSK, Cpiral, AntiSpamBot, SJP, DaleKiefling, Juliancolton, Петър Петров, Ale2006, Fuzzygenius, Md-
cougar, VolkovBot, Areteichi, Tyler9xp, TXiKiBoT, Technopat, Intrigued-user, Jackfork, LeaveSleaves, Sciencewatcher, Billgordon1099,
410 CHAPTER 70. X.25
Haseo9999, WJetChao, Alaniaris, AlleborgoBot, Nagy, Theoneintraining, Kbrose, Arjun024, SieBot, Nubiatech, Nestea Zen, Martin
Kealey, Duplicity, Android Mouse, Jimthing, Faradayplank, ClueBot, Hadrianheugh, Squadri, Excirial, Jotterbot, LobStoR, Sdrtirs, Der-
Borg, V.s.mousavi, DumZiBoT, Danejasper, Brandonsturgeon, 13 of Diamonds, Nekiko, Avisp~enwiki, Nemec~enwiki, Addbot, Mab-
dul, Alexcat, Luckas-bot, Yobot, JackPotte, Ajh16, THEN WHO WAS PHONE?, KamikazeBot, Draney13, Eric-Wester, AnomieBOT,
Materialscientist, RobertEves92, Tktravis, ArthurBot, Xqbot, Wcoole, Hi878, ChristopherKingChemist, LAMurakami, Smallman12q,
Gzbr, Thehelpfulbot, Moloch09, I dream of horses, Jonesey95, Clarkcj12, EmausBot, Rolf the wolf, BabsiSnoecks, Oceans and oceans,
Cmh294, ZéroBot, Александр Цамутали, Westley Turner, Kiwi128, Palosirkka, Donner60, ClueBot NG, Helpful Pixie Bot, Fnordly,
Vagobot, Compfreak7, Klilidiplomus, Codename Lisa, Reatlas, Epicgenius, AbhishekGoel137, Ugog Nizdast, DrBungle, FockeWulf FW
190, Toohai, AKS.9955, TheQ Editor, GlutenFree123, KasparBot, Mrfridy, Fuchshuber and Anonymous: 368
• Internet Protocol Source: https://en.wikipedia.org/wiki/Internet_Protocol?oldid=736311903 Contributors: General Wesc, Bryan Derk-
sen, Zundark, The Anome, Tarquin, Andre Engels, Christian List, Aldie, Paul~enwiki, William Avery, Formulax~enwiki, Dwheeler,
Bdesham, Patrick, Nixdorf, Ixfd64, TakuyaMurata, CesarB, Looxix~enwiki, Ahoerstemeier, Haakon, Jdforrester, GaryW, Glenn,
Caramdir~enwiki, BAxelrod, Harvester, Timwi, Wik, Saltine, Jnc, Gamera2, Olathe, Chuunen Baka, Chealer, Noldoaran, Fredrik,
PedroPVZ, Hemanshu, Wereon, Borislav, Rsduhamel, Tea2min, ManuelGR, SmilingBoy, Giftlite, Brouhaha, Beefman, Kim Bruning,
Reub2000, Ferkelparade, Wikibob, Carlo.Ierna, Eequor, Python eggs, Tagishsimon, Latitudinarian, Antandrus, Dnas, Piotrus, Vanished
user 1234567890, Karol Langner, Dmaftei, Biot, Daniel Staal, Abdull, Trevor MacInnis, EagleOne, Mike Rosoft, Shamino, Imroy, CALR,
DanielCD, JTN, Urvabara, Rich Farmbrough, Wrp103, Naive cynic, Ardonik, Smyth, Cdyson37, Ceo, Paolopal~enwiki, El C, Hayabusa
future, Coolcaesar, Bobo192, Brim, Unquietwiki, SpeedyGonsales, Wrs1864, Helix84, Krellis, Sysiphe, Ogress, Poweroid, PaulHanson,
Ryanmcdaniel, Rgclegg, Echuck215, Kocio, Wtmitchell, BRW, Cburnett, Suruena, Max Naylor, Versageek, Jimgeorge, Woohookitty,
Mindmatrix, Mammad2002, Thorpe, JHolman, Cbdorsett, Hughcharlesparker, Jno, Stevey7788, Graham87, Wcourtney, Qwertyus, Casey
Abell, Demian12358, Vary, Vegaswikian, Yahoolian, Yamamoto Ichiro, FlaBot, RobertG, Intgr, Sperxios, Alvin-cs, Chobot, TkGy, An-
tiuser, Elfguy, Roboto de Ajvol, Hairy Dude, Stephenb, Manop, Yyy, Varnav, NawlinWiki, V-ball, Grafen, Jeff Carr, Maerk, Dead-
EyeArrow, Eclipsed, Anttin, Wknight94, Sandstein, Graciella, Zzuuzz, Closedmouth, Bobguy7, GraemeL, Attilios, SmackBot, Reedy,
Blue520, Hardyplants, Commander Keane bot, Aksi great, Gilliam, Skizzik, Anwar saadat, KD5TVI, MalafayaBot, Robocoder, A. B.,
JonHarder, Yidisheryid, Grover cleveland, Cybercobra, Melter, Nakon, Plustgarten, Jiddisch~enwiki, Warren, Where, Daniel.Cardenas,
Mion, Kukini, Supaplex~enwiki, Adagio Cantabile, Scientizzle, Gobonobo, Minna Sora no Shita, A-moll9, IronGargoyle, Camilo Sanchez,
Mikieminnow, Arkrishna, Kvng, Hetar, Shoeofdeath, Blehfu, Courcelles, Tawkerbot2, Justsee, Imcdnzl, Dgw, Phatom87, Cydebot, Con-
version script, UncleBubba, Bridgecross, Jack Phoenix, Thijs!bot, Epbr123, O, Mojo Hand, Escarbot, Cyclonenim, AntiVandalBot, Wide-
fox, Wayiran, Altamel, Altesys~enwiki, Ppchailley, JAnDbot, Dan D. Ric, Jheiv, Enjoi4586, Bouktin, Drugonot, Magioladitis, JamesB-
Watson, Kgfleischmann, Tiuks, Calltech, Gwern, Jackson Peebles, MartinBot, Poeloq, Angelo.biboudis, Aggelos.Biboudis, Felipe1982,
J.delanoy, Mange01, Iamregin, Brest, DrBag, Andareed, Liangent, FrummerThanThou, Katalaveno, Fish147, The Transhumanist (AWB),
Doria, Andywandy~enwiki, JavierMC, Goatbilly, Funandtrvl, JohnGrantNineTiles, Chinneeb, VolkovBot, Philip Trueman, TXiKiBoT,
Oshwah, Jackfork, Noformation, Bennor, Rkrikorian, Ilyushka88, ARUNKUMAR P.R, Rjgodoy, Brianga, Chenzw, Marr75, Allebor-
goBot, Nightraider0, EverGreg, Kbrose, SieBot, Richard Ye, Nubiatech, BotMultichill, Yintan, Bentogoa, Tezdog, Mahabub398, Oxy-
moron83, Byrialbot, Mailtomeet, Florentino floro, Pinkadelica, Denisarona, ClueBot, Bjornwireen, NGNWiki, RFST, Blanchardb, Otole-
mur crassicaudatus, DragonBot, Alexbot, Anon lynx, Coralmizu, PixelBot, Cynthia Rhoads, Yausman, Versus22, Johnuniq, Apparition11,
Erodium, DumZiBoT, Editorofthewiki, BodhisattvaBot, Defyant, NeoNorm, SkyLined, Karl McClendon, Kurniasan, Rabbit67890, Nub-
caike, Addbot, Some jerk on the Internet, Love manjeet kumar singh, Atethnekos, TutterMouse, Shlomiz, Scientus, LaaknorBot, Chamal
N, Glane23, Torla42, Jasper Deng, Teles, Aekton, SasiSasi, Jarble, Legobot, Luckas-bot, Yobot, Markr123, THEN WHO WAS PHONE?,
Jadounrahul, AnomieBOT, Jim1138, Galoubet, Materialscientist, The High Fin Sperm Whale, Tristantech, Xqbot, Addihockey10, Capri-
corn42, 4twenty42o, Ryamigo, I am Me true, Forton, Sjaak, Corruptcopper, Zarcillo, RibotBOT, Amaury, شات صوتي, Sophus Bie,
SpaceRocket, Nageh, Krj373, Recognizance, GreenRoot, Sonicx059, Wikisierracharlie, DivineAlpha, I dream of horses, MastiBot, Serols,
Jauhienij, Jimys salonika, DixonDBot, Lotje, DARTH SIDIOUS 2, Onel5969, Noommos, Granbarreman, EmausBot, Sir Arthur Williams,
Dewritech, Racerx11, Baguettes, Vanished user zq46pw21, Tommy2010, VillemVillemVillem, Dcirovic, John Cline, Fæ, Nialldawson,
Lion789, Wayne Slam, Coasterlover1994, L Kensington, Mentibot, Shiftoften66, Senator2029, Petrb, TheDramatist, ClueBot NG, Nimiew,
Gareth Griffith-Jones, Nugzthepirate, CocuBot, Satellizer, FGont, Cverska, Rezabot, Widr, පසිදු කාවින්ද, 2w133, Northamerica1000, Al-
lecher, Bryanbuang1993, Jedysurya, MrBill3, Sudhir kumar garhwal, Winston Chuen-Shih Yang, IRedRat, Samwalton9, David.moreno72,
Scopecreep, Ducknish, JYBot, Limitmagic1, Wywin, Mlindner, Corn cheese, Reatlas, Joeinwiki, Faizan, DBhavsar709, Kaznovac, Camy-
oung54, Melonkelon, Tentinator, Maura Driscoll, 9445mid, Ginsuloft, Jsennek, UY Scuti, Weknowna, FrB.TG, Mr. Smart LION, Ki-
netic37, Tacmamaeujnayn, Devesh142a, Ssaz 12, Mehnames, ScrapIronIV, Cherdchai Iamwongsrikul, DanWiki1997, Timothyjoseph-
wood, Supdiop, Kim Oun, KasparBot, CAPTAIN RAJU, Nicoya67, Jfrank220, AriesNiNe, Jipdaskip gurugaint, RainFall, Erwin hidayat1
and Anonymous: 522
• Internet protocol suite Source: https://en.wikipedia.org/wiki/Internet_protocol_suite?oldid=737817181 Contributors: Damian Yerrick,
AxelBoldt, Tobias Hoevekamp, Matthew Woodcraft, Brion VIBBER, Mav, Zundark, The Anome, Tarquin, Koyaanis Qatsi, Etu, Gsl, XJaM,
Aldie, Matusz, Paul~enwiki, William Avery, Shii, Imran, B4hand, Mintguy, Branko, Nknight, Edward, Nealmcb, Michael Hardy, Nixdorf,
Ixfd64, Paul A, Ellywa, Ahoerstemeier, Haakon, Ronz, Typhoon, Theresa knott, Glenn, IMSoP, Palfrey, Arteitle, Edmilne, Timwi, Do-
radus, Zoicon5, Kaare, Saltine, Itai, Nv8200pa, Jnc, Ed g2s, Shizhao, Topbanana, Betterworld, Bloodshedder, Olathe, Robbot, TomPhil,
Yas~enwiki, RedWolf, Sunray, Hadal, Pps, Miles, Carnildo, Smjg, Kim Bruning, Wolfkeeper, Ferkelparade, Zigger, Marcika, Rick Block,
Niteowlneils, AlistairMcMillan, SWAdair, Tagishsimon, Golbez, Mendel, Beland, Dnas, Zfr, Biot, Daniel Staal, Chadernook, Ukexpat, Ab-
dull, Zondor, EagleOne, RevRagnarok, Mike Rosoft, Ta bu shi da yu, DanielCD, JTN, Rich Farmbrough, JesterXXV, Vsmith, DerekLaw,
Dmeranda, Jackqu7, Bender235, Tr606~enwiki, Plugwash, Violetriga, STHayden, Joanjoc~enwiki, Jantangring, Sietse Snel, Coolcaesar,
Smalljim, John Vandenberg, Xojo, Obradovic Goran, Wrs1864, Helix84, Krellis, Martyman, PioM, Mrzaius, Alansohn, Sully, Arcenciel,
Duffman~enwiki, Guy Harris, Nealcardwell, Darkhalfactf, Hoary, Kocio, Snowolf, Here, Rick Sidwell, Cburnett, Stephan Leeds, Suruena,
Evil Monkey, Fixman88, RaNo, Kusma, Freyr, Mattbrundage, Ericl234, MilesMi, Ramnath R Iyer, GaelicWizard, Woohookitty, Camw,
Ilario, ^demon, Wikiklrsc, Eyreland, Mckoss, Pfalstad, Leapfrog314, Mandarax, Runis57, Graham87, Magister Mathematicae, Casey
Abell, Jorunn, Sjakkalle, Rjwilmsi, KYPark, Johnblade, Weregeek, Xosé, Vegaswikian, Aapo Laitinen, Yamamoto Ichiro, Sheldrake,
RobertG, Nivix, Aliasptr, Cheesycow5, Otets, Intgr, Bmicomp, Chobot, DVdm, Bgwhite, SuperWiki, Albanaco, Wavelength, Hairy Dude,
Jimp, Mukkakukaku, Hyad, Bhavin, Stephenb, Manop, Cate, Rsrikanth05, Wimt, NawlinWiki, Barberio, Expensivehat, Dogcow, Cecil-
Ward, Layer~enwiki, Nick C, Tony1, Zwobot, Falcon9x5, Yudiweb, Tim Watson, Robost, Phgao, Maltest, Kevin, Katieh5584, Snaxe920,
Eptin, Finell, That Guy, From That Show!, Luk, Yakudza, Erik Sandberg, SmackBot, Paulkramer, KnowledgeOfSelf, Rayward, Unyoyega,
MeiStone, Thunderboltz, Elwood j blues, Ruthherrin, Canthusus, Bernard François, Gilliam, Locketine, Bluebot, SlimJim, Jprg1966,
Thumperward, Snori, EncMstr, Kungming2, Spmion, Rrelf, Vanis314, JonHarder, Gringo.ch, Wonderstruck, Radagast83, Cybercobra,
Richardwhiuk, Kasperd, HarisM, Drphilharmonic, James Mohr, Victor Liu, Reliablesources, Rodeosmurf, Tfl, Nasz, Tmchk, Esrever,
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 411
Ana Couto, Doug Bell, Nhorton, Disavian, Breno, Hpnguyen83, Bezenek, CaptainVindaloo, Ckatz, Dicklyon, Kim Rubin, Waggers, Avant
Guard, Rserpool, Kvng, Lee Carre, Iridescent, Paul Koning, Fr34k, Matt Dunn, Tawkerbot2, Brian.fsm, CmdrObot, Imcdnzl, Oheckmann,
NE Ent, RobEby, Whereizben, Nmacu, Equendil, Cydebot, Peripitus, Krauss, Acceptus, Swhitehead, Indeterminate, Roberta F., Dumb-
BOT, NMChico24, Thijs!bot, Epbr123, Wikid77, Hcberkowitz, Headbomb, Electron9, JustAGal, Ekashp, Perfectpasta, Xeesh, Mentifisto,
AntiVandalBot, Konman72, Luna Santin, Widefox, Seaphoto, Smartse, Labongo, Storkk, JAnDbot, Harryzilber, Mwarren us, Holylamp-
posts, Acroterion, Enjoi4586, Magioladitis, Parsecboy, VoABot II, AuburnPilot, JamesBWatson, Swpb, Tedickey, AliMaghrebi, Jatkins,
Rich257, Jrogern, Avicennasis, Edwardando, Logictheo, Techpro30, Papadopa, Inhumandecency, Falcor84, Techmonk, GordonMcKin-
ney, MartinBot, Flexdream, BetBot~enwiki, R'n'B, TinaSDCE, J.delanoy, Pharaoh of the Wizards, Mange01, Public Menace, Skullketon,
AntiSpamBot, NewEnglandYankee, SJP, Mumphius, Inomyabcs, Ross Fraser, Ale2006, Funandtrvl, Meiskam, VolkovBot, TheOtherJesse,
Metaclassing, Philip Trueman, TXiKiBoT, Walor, Nxavar, Leekil, Donjrude, Anna Lincoln, Abdullais4u, Navedahmed123, Lova Falk,
Larree, Alireza.usa, EmxBot, Kbrose, CrinklyCrunk, Thw1309, SieBot, Ethanthej, Nubiatech, Yintan, Mothmolevna, Bentogoa, Martyvis,
EnOreg, Oxymoron83, Ydalal, Tmaufer, DavidDW, BenoniBot~enwiki, Ngriffeth, Svick, Superbeecat, Denisarona, Sitush, Elassint, Clue-
Bot, Zeerak88, Axcess, The Thing That Should Not Be, Rjd0060, Quinxorin, Alek Baka, CounterVandalismBot, Patilravi1985, Mzje,
DragonBot, Jusdafax, Anon lynx, Wiki104~enwiki, Eeekster, Zac439, Tyler, Shiro jdn, Cynthia Rhoads, Dorgan65, Thingg, Johnuniq,
Punjabi101, Dgtsyb, Thatguyflint, Addbot, Atethnekos, Jncraton, Coasting, Jmdavid1789, Glane23, Amungale, Favonian, West.andrew.g,
Tassedethe, Tide rolls, Lightbot, Krano, Globemasterthree, SasiSasi, Legobot, Luckas-bot, Yobot, TaBOT-zerem, Fmrauch, ArchonMag-
nus, Wadamja, AnomieBOT, Rubinbot, Jim1138, Piano non troppo, Law, Materialscientist, OttoTheFish, Citation bot, Aneah, Merlissimo,
Xqbot, TinucherianBot II, Oxwil, Jrtuenge, Karlos77, RibotBOT, SassoBot, Kyng, شات صوتي, JediMaster362, Ctm314, Master Con-
jurer, FrescoBot, Weyesr1, ZNott, Kkj11210, Jonathansuh, Barnacle157, JMilty, Citation bot 1, Pokeywiz, I dream of horses, HRoestBot,
A8UDI, Cnwilliams, Weylinp, Pdebee, Yunshui, Renepick, Reaper Eternal, ArticCynda, Suffusion of Yellow, SnoFox, Sideways713,
DARTH SIDIOUS 2, EmausBot, John of Reading, Clark42, Solarra, K6ka, P. S. F. Freitas, Hasty001, StanQuayle, Anororn, The Nut,
Samjoopin, A930913, Aeonx, Cf. Hay, Staszek Lem, W163, GeorgeBarnick, Stefan Milosevski, Putdust, Jsoon eu, DASHBotAV, 28bot,
ClueBot NG, Mechanical digger, GlobalEdge 2010, Stahla92, Widr, HMSSolent, BG19bot, Northamerica1000, AvocatoBot, Zvezda1111,
Winston Chuen-Shih Yang, Tutelary, Rbhagat0, Enterprisey, Indinkgo, Lugia2453, Dave Braunschweig, DBhavsar709, Epicgenius, Red-
eyed demon, Rickh1219rh, PenlroINFS315, Hawkins88, No3mann, Dingdong44, Manul, Abhijith anil, Mr. Smart LION, B Rowanz,
User26954344524345, Haosjaboeces, Akin DSA, MattQuarneri, TeaLover1996, Mehnames, Zortwort, Honeysyrup, JonnieD, CAPTAIN
RAJU, Swaggggg456, Michael Reed, PHMKim and Anonymous: 741
• Internetworking Source: https://en.wikipedia.org/wiki/Internetworking?oldid=729433886 Contributors: Mav, The Anome, Aldie, Ahoer-
stemeier, CatherineMunro, Nickg, Pedant17, Jnc, Nurg, Giftlite, Zigger, Dnas, Deanos, Bobo192, Arthena, Melaen, Kbolino, Woohookitty,
Graham87, Yug, Aapo Laitinen, FlaBot, RobertG, DVdm, Borgx, Gardar Rurak, Bobyllib, Th1rt3en, That Guy, From That Show!,
SmackBot, Ashenai, DHN-bot~enwiki, JonHarder, Weregerbil, Luís Felipe Braga, Bushsf, Jadams76, AdultSwim, Iridescent, Erencexor,
Odie5533, Electron9, MER-C, Matthew Fennell, Mlewis000, ABF, Jamelan, Kbrose, SieBot, Sephiroth storm, Mygerardromance, Flam-
ingSilmaril, Tanketz, Excirial, Muhandes, Grim pim, Johnuniq, XLinkBot, Addbot, Fluffernutter, SpBot, Тиверополник, Luckas-bot,
KamikazeBot, AnomieBOT, Xqbot, Arlo Barnes, Arnold.Y, AlFReD-NSH, EmausBot, John of Reading, WikitanvirBot, K6ka, Szynaka,
J. Martin Wills, W163, ClueBot NG, O.Koslowski, HMSSolent, Clala09, Harmonicsonic, Jeroen Schrauwen, Nkansahrexford, Ginsuloft,
Mabandalone and Anonymous: 79
• IPX/SPX Source: https://en.wikipedia.org/wiki/IPX/SPX?oldid=719799070 Contributors: Maury Markowitz, Bob Jonkman, Stw, Fuz-
heado, Jnc, Nickshanks, Yacht, Snowdog, Jrdioko, Neilc, Rhobite, Naive cynic, Bezthomas, Kundor, Guy Harris, BBird, LFaraone, Blax-
thos, Postrach, Xyzzy288, Camw, Daira Hopwood, Marudubshinki, Lionel Elie Mamane, David H Braun (1964), Lukeonia1, Yurik-
Bot, Borgx, Nick Watts, EJSawyer, KnightRider~enwiki, Saravask, Unyoyega, MeiStone, Grawity, Frap, Cybercobra, Heywüd, Dev920,
Phatom87, Cydebot, Thijs!bot, Electron9, Escarbot, JAnDbot, Magioladitis, KILNA, Algotr, P4k, Pilum, Biasoli, John Nevard, Car-
riearchdale, Dgtsyb, Deineka, Addbot, Ghettoblaster, DoodleSpeed, Lightbot, Yobot, AnomieBOT, FrescoBot, Uncopy, FoxBot, Dinamik-
bot, John of Reading, Vgmddg, ClueBot NG, BG19bot, Compfreak7, Cyberbot II, YFdyh-bot, Asdlkfjsalkdgh, Music1201 and Anony-
mous: 65
• Java remote method invocation Source: https://en.wikipedia.org/wiki/Java_remote_method_invocation?oldid=730642970 Contributors:
Sfmontyo, Frecklefoot, Julesd, IMSoP, Big Bob the Finder, Itai, Robbot, RedWolf, Wlievens, TittoAssini, Jcttrll, Jonabbey, Fleminra,
Zoney, Quadell, Saucepan, Andreas Kaufmann, Abdull, Discospinster, Rich Farmbrough, Juntas, Fasten, Artur adib, LFaraone, Sega381,
Brighterorange, Cheesy123456789, FlaBot, BMF81, YurikBot, Luigi.bozzo, Cancan101, SteveLoughran, CPColin, Lt-wiki-bot, Smack-
Bot, Leeanderson, Vald, AutumnSnow, Nbarth, Audriusa, Volphy, Doug Bell, Momet, Roshan baladhanvi, Valodzka, Simon Brady, Herve-
girod, DavidLeeLambert, Wayiran, Esmond.pitt, SiobhanHansa, Bostonvaulter, MartinBot, In Transit, Klaus Trainer, SciAndTech, Synthe-
bot, SieBot, BotMultichill, VVVBot, Chringle, Osian.h, The Thing That Should Not Be, M4gnum0n, XLinkBot, Phoenix720, Stvaruzek,
Addbot, Jarble, Yobot, Kilom691, AnomieBOT, Rubinbot, Xqbot, JimVC3, Peter lawrey, FrescoBot, RedBot, RazielZero, LogAntiLog,
Dinamik-bot, KF9129, EmausBot, Bruynoogheb, Peaceray, Mr.fylfot, Aaditya025, ClueBot NG, TimElessness, Mark Arsten, Arunava03,
Paericksen, C5st4wr6ch, Gadhatharan, WhatDoYouSee, Zackisrad, Ghfgcgcfghgh, Kkbkkbkkb, Monkbot, Aloksbjain, Extremesarova,
Vidhyasahar T and Anonymous: 96
• Link layer Source: https://en.wikipedia.org/wiki/Link_layer?oldid=706872244 Contributors: Isomorphic, Chealer, Johnh, Wrs1864, Su-
ruena, David Woodward, McGeddon, Gilliam, Dicklyon, CapitalR, Jirka6, Enjoi4586, Bongwarrior, Jacobko, R'n'B, Mange01, Inomyabcs,
Inwind, Kbrose, SieBot, Kbdankbot, Addbot, Jafeluv, Chzz, Lightbot, Yobot, TaBOT-zerem, Royote, Xqbot, Sophus Bie, Psychlohexane,
Pinethicket, Rafostry, Jujutacular, Dewritech, Fred Gandt, Natttam, MrInfo2012, Helpful Pixie Bot, Wbm1058, Dave Braunschweig,
ArmbrustBot and Anonymous: 24
• Maximum transmission unit Source: https://en.wikipedia.org/wiki/Maximum_transmission_unit?oldid=731938195 Contributors:
JeLuF, JohnOwens, Julesd, Pedant17, Kaare, Rvalles, Tempshill, Topbanana, Babbage, Tea2min, ManuelGR, BenFrantzDale, Fleminra,
Mboverload, Dnas, Waskage, Abdull, EagleOne, Zaf, Mormegil, JTN, Jkl, Rich Farmbrough, Alistair1978, Plugwash, Richard W.M. Jones,
Unquietwiki, WaffleMonster, BRW, Danhash, Nightstallion, Kenyon, Kumble2904, Isnow, Dkleeman, Rjwilmsi, FlaBot, Ground Zero,
YurikBot, Wavelength, Borgx, Pi Delport, Shaddack, CecilWard, Xaje, Hgmichna, ZoFreX, CIreland, SmackBot, Ricojonah, Betbest1,
Gilliam, El Cubano, Thumperward, Dhammala, Darth Panda, Chameleons84, Xchbla423, PeteShanosky, Chlewbot, JonHarder, Aldaron,
DylanW, J.smith, Zac67, TenPoundHammer, Peyre, Kvng, Hu12, MS3FGX, Adambiswanger1, Jasrocks, Xcentaur, WeggeBot, Ham-
ster2.0, Jac16888, Cydebot, Xxsquishyxx, Thijs!bot, Epbr123, Tgwaltz, AntiVandalBot, Bigtimepeace, Xhienne, CosineKitty, Niclas
Wiberg, STBotD, N3ddy, X!, TXiKiBoT, Rei-bot, Milan Keršláger, SieBot, Dwandelt, WereSpielChequers, Enduser32, Flyer22 Reborn,
ClueBot, SchreiberBike, DumZiBoT, Andrewborrell, Dsimic, Addbot, CL, Skyschulz, Favonian, Yobot, AnomieBOT, ArthurBot, Xqbot,
SCΛRECROW, I2so4, 802geek, Itusg15q4user, Winterst, Btilm, Jandalhandler, Trappist the monk, Roy muzz, Onel5969, Suplamer,
412 CHAPTER 70. X.25
ChuispastonBot, MOM4Evr, Dfarrell07, Prondou, Conifer, Cyberbot II, Jamesx12345, Tentinator, StianOvrevage, Dai Pritchard, Zmalm-
gren, GreenC bot and Anonymous: 175
• Mealy machine Source: https://en.wikipedia.org/wiki/Mealy_machine?oldid=731347031 Contributors: Damian Yerrick, Michael Hardy,
Rp, Karada, Samw, Greenrd, Robbot, Jaredwf, Gandalf61, Ashley Y, Tea2min, DavidCary, Bigpeteb, Vina, Urhixidur, Karl Dickman,
Slady, Djordjes, Kbh3rd, Leithian, Qwertyus, Rjwilmsi, Allen Moore, Fresheneesz, Bgwhite, Personman, Zimbricchio, Trovatore, JulesH,
William R. Buckley, SmackBot, Adam majewski, SashatoBot, Wvbailey, Amenzix, Cloudwalking, Rizome~enwiki, CmdrObot, Cydebot,
Thijs!bot, WinBot, Rob Kennedy, Dereckson, David Eppstein, KylieTastic, Rei-bot, MohSaied, Prankstar008, Technion, Masgatotkaca,
Rrfwiki, Classicalecon, Elassint, Mild Bill Hiccup, TurionTzukosson, Sun Creator, Addbot, Cuaxdon, Leeaiwei, Luckas-bot, Theburn7,
AnomieBOT, Citation bot, Xqbot, Wparad, Felipebrahm, Arthur MILCHIOR, Iron0037, Fastilysock, Horcrux92, NameIsRon, Wikitan-
virBot, Tanner Swett, Thine Antique Pen, TYelliot, ClueBot NG, Widr, Helpful Pixie Bot, BG19bot, Adityagohad, BattyBot, Deltahedron,
Monkbot, Mohsen shafiei and Anonymous: 69
• Media access control Source: https://en.wikipedia.org/wiki/Media_access_control?oldid=728747249 Contributors: Youssefsan,
Notheruser, Angela, Evercat, Timwi, Zoicon5, Itai, GPHemsley, Robbot, Nurg, Giftlite, Joconnor, Alexander.stohr, Brianhe, A pur-
ple wikiuser, Zachlipton, Guy Harris, Caesura, Rick Sidwell, Cburnett, Suruena, Nuno Tavares, Woohookitty, DenesVadasz, Casey
Abell, ErikHaugen, HappyCamper, FlaBot, Intgr, Srleffler, Borgx, Stassats, NawlinWiki, Steven Hepting, Closedmouth, Extraordinary,
LeonardoRob0t, Sardanaphalus, Leon Hunt, KnightRider~enwiki, Irnavash, KelleyCook, ProveIt, Zanetu, Gilliam, @modi, Snori, Orange-
Dog, DHN-bot~enwiki, HarisM, Luís Felipe Braga, Khazar, Breno, Mr Stephen, Dicklyon, Arkrishna, Dominio~enwiki, Kvng, Arathald,
Beno1000, Mellery, Jesse Viviano, Cydebot, Djg2006, Tawkerbot4, Ebrahim, Thijs!bot, Dawnseeker2000, Widefox, JAnDbot, .anacond-
abot, Enjoi4586, Willy on Wheels over Ethernet, Lihui912, FDD, Mange01, Mojodaddy, Philip Trueman, Crazy Murdoc, PaulTanenbaum,
Figureskatingfan, Vitz-RS, JFSM~enwiki, Logan, Kbrose, SieBot, Nubiatech, Ghez, Bentogoa, Treekids, ClueBot, Gwalker nz, Jusdafax,
Mlaffs, Johnuniq, Pgallert, Dgtsyb, MystBot, Good Olfactory, Kbdankbot, Addbot, JEG14, Luckas-bot, TaBOT-zerem, Nallimbot, Xqbot,
Loosecannon93, GliderMaven, Nageh, W Nowicki, Tolly4bolly, RyanQuinlan, MerlIwBot, Avitesh, YiFeiBot, Pccicpccic and Anonymous:
112
• Moore machine Source: https://en.wikipedia.org/wiki/Moore_machine?oldid=731347153 Contributors: Michael Hardy, Rp, Delirium,
Timwi, Jaredwf, Naveen~enwiki, Fuelbottle, Tea2min, Connelly, DavidCary, Jrdioko, Bigpeteb, Vina, Karl Dickman, MakeRocketGoNow,
BrianWilloughby, RevRagnarok, Harej, Qwertyus, Allen Moore, Mathbot, Fresheneesz, MOF, Peter Grey, YurikBot, Benja, Sangwine,
JulesH, SmackBot, Adam majewski, Bluebot, Jeysaba, OrphanBot, SashatoBot, Tlesher, MedeaMelana, Pgadfor, Gingerjoos, Cydebot,
Thijs!bot, Headbomb, WinBot, Rob Kennedy, Dereckson, Dsigal, Phosphoricx, Magioladitis, Alienmercy, CommonsDelinker, VolkovBot,
AlleborgoBot, Technion, SieBot, Masgatotkaca, Mike Shepherd, MarcMutz, UKoch, BodhisattvaBot, Algebran, DiabolicQ, Addbot, Cuax-
don, AtheWeatherman, Biezl, Luckas-bot, Yobot, Freikorp, AnomieBOT, Materialscientist, Xqbot, Felipebrahm, Sjcjoosten, Ex Puexto,
Belchman, Morton Shumway, Panda-giant, Horcrux92, EmausBot, Helptry, Super48paul, Erianna, LordJeff, Donner60, Jeptx, Tijfo098,
ClueBot NG, AvocatoBot, Akim.demaille, Bkd.online, Dinesh.lei, Deltahedron, Vbergl, My name is not dave and Anonymous: 71
• Network congestion Source: https://en.wikipedia.org/wiki/Network_congestion?oldid=730062306 Contributors: The Anome, Jtk, Stw,
Radiojon, Jnc, Bloodshedder, Neilc, Mvuijlst, Per Olofsson, Wrs1864, Mc6809e, Woohookitty, JFG, Mandarax, GünniX, Mikeblas, SixSix,
QmunkE, Seifried~enwiki, MacsBug, SmackBot, JonHarder, Xofc, Peyre, Kvng, Imcdnzl, Billc.cn, Nick Number, LachlanA, Lfstevens,
JAnDbot, MER-C, Vigyani, Jim.henderson, STBotD, Inwind, Kbrose, Flyer22 Reborn, Tomkerswill, Loftenter, Arjayay, SilvonenBot,
Dsimic, Kbdavis07, Addbot, Graham.Fountain, Тиверополник, Luckas-bot, Yobot, AnomieBOT, Kypzto, LilHelpa, PabloCastellano, The
Evil IP address, FrescoBot, Fortdj33, Itusg15q4user, Gqqnb, Serols, Wschlitz, RA0808, Donner60, Rememberway, ClueBot NG, Nimiew,
Incompetence, Leblondleblond, Maadikhah, MsFionnuala, Mleoking, Khazar2, Cerabot~enwiki, Dough34, ScotXW, Meteor sandwich
yum, Philippe97, Rubbish computer, Akshayka and Anonymous: 41
• Operating system Source: https://en.wikipedia.org/wiki/Operating_system?oldid=735993689 Contributors: Damian Yerrick, Magnus
Manske, Brion VIBBER, Mav, Robert Merkel, The Anome, Tarquin, Stephen Gilbert, Jeronimo, Amillar, Awaterl, Andre Engels, Rmher-
men, Christian List, Fubar Obfusco, Ghakko, SolKarma, SimonP, Hannes Hirzel, Ellmist, Ark~enwiki, Heron, Hirzel, Olivier, Edward,
Ubiquity, Patrick, RTC, Ghyll~enwiki, D, Norm, Kku, Tannin, Wapcaplet, Ixfd64, Eurleif, Dori, Minesweeper, CesarB, Ahoerstemeier,
KAMiKAZOW, Gepotto, Kokamomi, Stevenj, Nanshu, Typhoon, Yaronf, Darkwind, Trisweb, Nikai, IMSoP, Rotem Dan, Evercat, Jordi
Burguet Castell, ²¹², Mxn, GRAHAMUK, Conti, Hashar, Htaccess, Dysprosia, Tpbradbury, Maximus Rex, Furrykef, Cleduc, Bevo,
Traroth, Shizhao, Gerard Czadowski, Joy, Stormie, AnonMoos, Olathe, Lumos3, Sewing, Branddobbe, Robbot, Noldoaran, Sander123,
Fredrik, RedWolf, Moondyne, Romanm, Lowellian, Stewartadcock, Rfc1394, SchmuckyTheCat, Texture, Blainster, Caknuck, Men-
dalus~enwiki, Kagredon, Tea2min, McDutchie, Alexwcovington, Martinwguy, Jpo, Giftlite, DavidCary, Kim Bruning, Kenny sh, Ævar
Arnfjörð Bjarmason, Tom harrison, Zigger, SheikYerBooty, Foot, No Guru, Enigmar007, CyborgTosser, Jfdwolff, Sdfisher, AlistairM-
cMillan, Falcon Kirtaran, VampWillow, Jaan513, Wiki Wikardo, Wmahan, K7jeb, Alexf, Bact, Kjetil r, Antandrus, Beland, Onco p53,
Kusunose, Ablewisuk, Am088, Karol Langner, 1297, Rdsmith4, APH, Bornslippy, Bbbl67, Zfr, Gschizas, Gscshoyru, Creidieki, Hen-
riquevicente, Jh51681, Hillel, Demiurge, Zondor, Squash, Grunt, Canterbury Tail, Bluemask, Gazpacho, Mike Rosoft, Rolandg, D6,
Ta bu shi da yu, Archer3, RossPatterson, Discospinster, Rich Farmbrough, Lovelac7, Florian Blaschke, Wk muriithi, HeikoEvermann,
Notinasnaid, SocratesJedi, Andrew Maiman, Dyl, Rubicon, ESkog, JoeSmack, Ylee, CanisRufus, Livajo, TyrelHa, MBisanz, Ben Web-
ber, El C, Phil [email protected], Mwanner, RoyBoy, EurekaLott, Triona, Dudboi, Coolcaesar, Wareh, Bastique, Afed, Bobo192,
Iamunknown, Viriditas, R. S. Shaw, Polluks, Jjk, Daesotho, Syzygy, Cncxbox, Kjkolb, Nk, Trevj, Minghong, Idleguy, Justinc, Nsaa,
Mdd, Jumbuck, Musiphil, Alansohn, Guy Harris, Conan, Uogl, Atlant, Jeltz, Andrewpmk, Riana, Stephen Turner, Gaurav1146, Wd-
farmer, Snowolf, Wtmitchell, Ronark, Gbeeker, Wtshymanski, Paul1337, Max Naylor, RainbowOfLight, LFaraone, Bsadowski1, Gortu,
Kusma, Freyr, Djsasso, Dan100, Markaci, Rzelnik, Kenyon, Sam Vimes, Woohookitty, Karnesky, Lost.goblin, Shreevatsa, Georgia guy,
TigerShark, Prophile, Ae-a, Thorpe, MattGiuca, Robert K S, Ruud Koot, JeremyA, Hdante, MONGO, Miss Madeline, Acerperi, Rober-
twharvey, Schzmo, Eyreland, Meneth, Umofomia, Waldir, Wayward, , Jbarta, Marudubshinki, Mandarax, Slgrandson, Graham87,
Cuvtixo, BD2412, MC MasterChef, Kbdank71, CarbonUnit, Jclemens, Brolin Empey, Gorrister, Rjwilmsi, Dosman, Koavf, Attitude2000,
Raffaele Megabyte, Alll~enwiki, OKtosiTe, Ian Dunster, MarnetteD, Sango123, DirkvdM, Fish and karate, SNIyer12, Titoxd, Ian Pitch-
ford, Mirror Vax, Pruefer, SchuminWeb, RobertG, Ground Zero, Latka, Winhunter, Crazycomputers, RexNL, Gurch, Patato, Ayla, Intgr,
Zotel, Ahunt, BMF81, Tarmo Tanilsoo, Qaanol, Theshibboleth, King of Hearts, Chobot, SirGrant, Celebere, DVdm, Cactus.man, Car-
losvigopaz, Roboto de Ajvol, YurikBot, Wavelength, TexasAndroid, Hawaiian717, RattusMaximus, X42bn6, Daverocks, Logixoul, De-
stroyerPC, Arado, Gardar Rurak, SpuriousQ, Lar, Hansfn, Stephenb, Gaius Cornelius, Rsrikanth05, Cpuwhiz11, Canageek, Dmlandfair,
Big Brother 1984, NawlinWiki, Shreshth91, Wiki alf, Astral, Grafen, Ang3lboy2001, Jaxl, SivaKumar, RazorICE, Ino5hiro, Nick, Xd-
enizen, Moe Epsilon, Mikeblas, MarkSG, Tony1, Joshlk, Dasnov, DeadEyeArrow, Gogodidi, Ke5crz, Oliverdl, Elkman, Nlu, Mike92591,
Wknight94, Dsda, Daniel C, Floydoid, Phgao, TheguX, Zzuuzz, Tokai, Clindhartsen, Theda, Closedmouth, E Wing, KGasso, Anouymous,
Josh3580, Charlik, JoanneB, Alasdair, LeonardoRob0t, Fram, JLaTondre, Fsiler, Chris1219, Ilmari Karonen, Katieh5584, Simxp, Meegs,
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 413
NeilN, Delinka, Teply, Rayngwf, Tyomitch, Arcadie, Kimdino, Luk, Davidam~enwiki, Sardanaphalus, SmackBot, Drummondjacob, Mat-
tieTK, Smadge1, Captain Goggles, Aim Here, Julepalme, KAtremer, Incnis Mrsi, Caminoix, Reedy, Ashley thomas80, KnowledgeOf-
Self, Hydrogen Iodide, Unyoyega, Lvken7, Rokfaith, Blue520, WilyD, Jfg284, KocjoBot~enwiki, Chairman S., Matthuxtable, Jedikaiti,
Monz, BiT, Alsandro, Andrewkantor, Müslimix, Yamaguchi , Macintosh User, SmackEater, Gilliam, Ohnoitsjamie, Hmains, Betacom-
mand, Cybiko123, Ennorehling, ERcheck, JSpudeman, JorgePeixoto, BenAveling, Guess Who, Andyzweb, GoneAwayNowAndRetired,
Bluebot, Bidgee, Unbreakable MJ, DStoykov, Badriram, Thumperward, DJ Craig, Mnemoc, Miquonranger03, MalafayaBot, AlexDitto,
Jerome Charles Potts, Lexlex, Letdorf, Omniplex, Vbigdeli, Baronnet, DHN-bot~enwiki, Charles Nguyen, MovGP0, Philip Howard, Darth
Panda, Cfallin, Verrai, FredStrauss, Emurphy42, Schwallex, Rrelf, J00tel, Can't sleep, clown will eat me, Милан Јелисавчић, Frap,
Onorem, Skidude9950, Parasti, Nixeagle, Sommers, Snowmanradio, JonHarder, Thecomputist, Yidisheryid, Benjamin Mako Hill, DrDnar,
Yoink23, Addshore, Flubbit, Kcordina, Edivorce, Mr.Z-man, Slogan621, SundarBot, Easwarno1, Paul E T, Grover cleveland, Crboyer,
Khoikhoi, World-os.com, Cybercobra, Jhonsrid, Nakon, VegaDark, MisterCharlie, Tompsci, Warren, Renamed user 8263928762779,
Huszone, Tomcool, Mwtoews, Leaflord, Kidde, Sigma 7, LeoNomis, Ck lostsword, Fyver528, Qwerty0, The undertow, SashatoBot, Lam-
biam, Harryboyles, Cdills, Kuru, RTejedor, Vincenzo.romano, Sir Nicholas de Mimsy-Porpington, Linnell, Edwy, Kashmiri, Joffeloff,
Goodnightmush, Antonielly, KenBest, IronGargoyle, Ben Moore, Camilo Sanchez, Tom Hek, Chrisch, Aaronstj, Hanii Puppy, Load-
master, JHunterJ, Ems2, Noah Salzman, Ehheh, Nayak143, Manifestation, Tdscanuck, MTSbot~enwiki, Rlinfinity, Wwagner, Lucid,
Rubena, Emx~enwiki, Iridescent, Casull, Twas Now, Golfington, Beno1000, Jfayel, Zlemming, Courcelles, Linkspamremover, Desola-
tor12, Slobot, Tawkerbot2, Alegoo92, Gumbos, Cartread, Tgnome, EvilRobot69, Fvasconcellos, J Milburn, JForget, James pic, Ahy1,
Unixguy, CmdrObot, Deon, Ale jrb, Raysonho, Mattbr, Flonase, Makeemlighter, Btate, Kev19, Charles dye, RockMaster, Michael B.
Trausch, NE Ent, SolarisBigot, SpooK, TempestSA, Karimarie, Mblumber, Krauss, A876, Oosoom, Mortus Est, Michaelas10, Gogo
Dodo, Travelbird, David Santos, TheWorld, Corpx, Spanglegluppet, Medovina, Odie5533, Kotiwalo, Dynaflow, Christian75, Chrislk02,
DarkLink, Trevjs, Sp, After Midnight, Omicronpersei8, Vanished User jdksfajlasd, Landroo, Maziotis, Rbanzai, Nrabinowitz, JamesAM,
Littlegeisha, Thijs!bot, Epbr123, Kubanczyk, Jobrad, Qwyrxian, Ultimus, Anshuk, N5iln, Jdm64, Ursu17, Marek69, James086, Doyley,
Optimisticrizwan, TommyB7973, Ideogram, TurboForce, CharlotteWebb, CarbonX, Libertyernie2, SusanLesch, Ablonus, Sean William,
TarkusAB, Dawnseeker2000, AlefZet, Escarbot, Dzubint, KrakatoaKatie, AntiVandalBot, Mike33, Luna Santin, Widefox, Guy Macon,
Seaphoto, QuiteUnusual, ForrestVoight, Prolog, Memset, [email protected], PhJ, Credema, Sridip, Yellowdesk, Alphachimpbot, Jstirling,
MichaelR., Storkk, Eleete, MikeLynch, Ioeth, JAnDbot, Chaitanya.lala, SuperLuigi31, Leuko, Numlockfishy, DuncanHill, NapoliRoma,
Ethanhardman3, MER-C, Arch dude, Nvt~enwiki, Socalaaron, Hut 8.5, Greensburger, Knokej, Adams kevin, Bookinvestor, SteveSims,
Raanoo, Bencherlite, Pierre Monteux, RogierBrussee, Jaysweet, Bongwarrior, VoABot II, Nyq, JamesBWatson, Marko75, SHCarter, Ka-
jasudhakarababu, PeterStJohn, Lucyin, Sedmic, Rami R, Inklein, Jatkins, Twsx, Bubba hotep, Manojbp07, Alanbrowne, Bleh999, In-
don, 28421u2232nfenfcenc, Creativename, Papadopa, User A1, Bwildasi, Glen, DerHexer, Wdflake, Janitor Starr, ChaoticHeavens, Call-
tech, Seba5618, Oroso, Stephenchou0722, Adriaan, AVRS, PhantomS, MartinBot, Miaers, BetBot~enwiki, Alexswilliams, Ethan.hardman,
Vanessaezekowitz, Kiore, Twitty666, Aladdin Sane, Comperr, Rettetast, Joemaza, Anaxial, Jonathan Hall, Mickyfitz13, R'n'B, Commons-
Delinker, Nono64, PrestonH, Cesarth~enwiki, Tgeairn, Erkan Yilmaz, Manticore, J.delanoy, Pharaoh of the Wizards, Trusilver, Uncle
Dick, Public Menace, Jesant13, DanDoughty, Johnnaylor, Jerry, Ian.thomson, Cpiral, Alexei-ALXM, Davidm617617, Dispenser, It Is Me
Here, Katalaveno, Mc hammerutime, Grosscha, Silas S. Brown, AntiSpamBot, Plasticup, Dvn805, Warut, NewEnglandYankee, Burkeaj,
Matthardingu, Super Mac Gamer, Cobi, Touch Of Light, Tatrgel, Bigdumbdinosaur, Mufka, Manassehkatz, Orrs, Tdrtdr, DigitallyBorn,
Althepal, Cometstyles, Mwheatland, Simon the Dragon, RB972, Vanished user 39948282, Treisijs, Dekard, MrPaul84, Bonadea, Useight,
TheNewPhobia, CardinalDan, Idioma-bot, Joecoolatjunkmaildotcom, Signalhead, Vox Humana 8', S.borchers, Hammersoft, VolkovBot,
Thedjatclubrock, Thomas.W, Riahc3, Murderbike, S10462, Rhyswynne, Jeff G., AlnoktaBOT, Brownga, Philip Trueman, Kyuuseishu,
TXiKiBoT, Oshwah, Masonkinyon, Amphlett7, Zidonuke, Manmohan Brahma, Neversay.misher, Hqb, NPrice, Ngien, Naohiro19 revert-
vandal, Wingnutamj, Vanished user ikijeirw34iuaeolaseriffic, Anna Lincoln, Ocolon, Lradrama, Melsaran, Mistman123, JhsBot, Sanfran-
man59, Jackfork, LeaveSleaves, Tpk5010, Seb az86556, Random Hippopotamus, 1yesfan, Hrundi Bakshi, Wiae, Kaustubh.singh, Maxim,
Rjgarr, Ngch89, Milan Keršláger, Lejarrag, BigDunc, Andy Dingley, Dirkbb, Jsysinc, Alten~enwiki, Wasted Sapience, Prashanthomesh,
Jpeeling, Benneman~enwiki, Rainsak, WJetChao, Synthebot, Falcon8765, Lbmarshall, Enviroboy, Duke56, RaseaC, Insanity Incarnate,
Brianga, Jackmiles2006, Zx-man, AlleborgoBot, Badhaker, Jimmi Hugh, Bhu z Crecelu, Logan, EmxBot, Deconstructhis, Kbrose, The
Random Editor, SPQRobin, SieBot, Coffee, Utahraptor ostrommaysi, Rektide, YonaBot, Euryalus, BotMultichill, EwokiWiki, Themoose8,
Zephyrus67, Zemoxian, Winchelsea, Josh the Nerd, RavenXtra, Rockstone35, DBishop1984, Triwbe, March23.1999, Yintan, Revent,
DavidHalko, Kaypoh, GrooveDog, Jerryobject, Purbo T, Buonoj, Android Mouse, Toddst1, Flyer22 Reborn, Oda Mari, Aruton, Oxy-
moron83, Antonio Lopez, Harry-, Techman224, BenoniBot~enwiki, Dantheman88, P.Marlow, Pithree, Sphilbrick, Echo95, Pinkadelica,
M2Ys4U, Nergaal, Denisarona, Escape Orbit, Martarius, ClueBot, Avenged Eightfold, GorillaWarfare, PipepBot, Wikievil666, The Thing
That Should Not Be, Alksentrs, MarioRadev, Rilak, Emwave, Jan1nad, ImperfectlyInformed, Arakunem, Drmies, Cp111, Frmorrison,
Unknown-xyz, Mild Bill Hiccup, E.mammadli~enwiki, Kathleen.wright5, Polyamorph, Boing! said Zebedee, McLovin34, Niceguyedc,
Jdrowlands, Mbalamuruga, Lyt701, Danieltobey, Ramif 47, The1DB, Asiri wiki, DragonBot, Rbakels, Excirial, Socrates2008, Jusdafax,
M4gnum0n, Andy pyro, Susheel verma, Eeekster, John Nevard, Kamanleodickson~enwiki, Winston365, Njuuton, Lightedbulb, Posix
memalign, Garlovel, Sun Creator, Tyler, Jotterbot, Josef.94, Tnxman307, Dekisugi, Youwillnevergetthis, Rmere, Yes-minister, Muralihbh,
La Pianista, Ninuxpdb~enwiki, OlurotimiO, Thingg, Andy16666, Callmejosh, Aitias, Bagunceiro, Mdikici, Johnuniq, SF007, Kerowhack,
DumZiBoT, XLinkBot, Aaron north, Spitfire, MarmotteNZ, Stickee, Rror, Agentlame, Rreagan007, Klungel, Skarebo, WikHead, Erkin-
Batu, NellieBly, Galzigler, KenshinWithNoise, Alexius08, Kgoetz, Osarius, HexaChord, JimPlamondon, CalumH93, Ratnadeepm, Ghet-
toblaster, NNLauron, AVand, Wluka, Donhoraldo, Love manjeet kumar singh, Melab-1, Mabdul, Ente75, Non-dropframe, Raywil, Toth-
wolf, Grandscribe, Elsendero, Ronhjones, CanadianLinuxUser, Scherr, Debloper, Lindert, Ka Faraq Gatri, MrOllie, Download, Eivind-
bot, LaaknorBot, Chamal N, CarsracBot, EconoPhysicist, M.r santosh kumar., Glane23, AnnaFrance, Favonian, Kyle1278, LinkFA-Bot,
Jasper Deng, Manickam001, Tide rolls, Luckas Blade, Teles, Gail, Jarble, Legobot, Wisconsinsurfer, Luckas-bot, Yobot, Applechair,
WikiDan61, 2D, OrgasGirl, Senator Palpatine, Josepsbd, II MusLiM HyBRiD II, PlutosGeek, 2nth0nyj, Washburnmav, Mmxx, THEN
WHO WAS PHONE?, Nallimbot, Sven nestle, Golftheman, Baron1984, Timir Saxa, Knownot, Masharabinovich, Amicon, Quarkuar,
TestEditBot, South Bay, Tempodivalse, Synchronism, Jorge.guillen, AnomieBOT, Create g77, 1exec1, Götz, Geph, Lucy-seline, Jim1138,
789455dot38, 9258fahsflkh917fas, Piano non troppo, AdjustShift, Law, Remixsoft10, RandomAct, Flewis, Materialscientist, Mcloud91,
9marksparks9, Twistedkevin, Felyza, Rabi Javed, Johnny039, Waterjuice, GB fan, Ashikpa, Xqbot, TheAMmollusc, Holden15, Capri-
corn42, CoolingGibbon, Biometricse, Nasnema, Mononomic, Jeffwang, Inferno, Lord of Penguins, HDrake, Pmlineditor, Nayvik, Ribot-
BOT, Kyng, Oroba, Karolinski, Cul22dude, Sophus Bie, Sidious1741, Maitchy, N419BH, Bstarynk, =Josh.Harris, Shadowjams, Chatul,
Astatine-210, Kevin586, Endothermic, Jerrysmp, Lkatkinsmith, Captain-n00dle, Erickanner, FrescoBot, OspreyPL, Ashleypurdy, Tri-
maine, Pepper, Mthomp1998, Fobenavi~enwiki, Gauravdce07, Michael93555, Cps274203, Ishanjand, Photonik UK, Clsin, Jjupiter100,
Kwiki, Dhtwiki, WellHowdyDoo, DivineAlpha, Safinaskar, Citation bot 1, Skomes, DrilBot, Pinethicket, I dream of horses, Abazgiri, Vice-
narian, Elockid, AR bd, 10metreh, Martin smith 637, Skyerise, Ngyikp, Bfirsh, Jschnur, RedBot, MastiBot, Serols, Chikoosahu, Meaghan,
414 CHAPTER 70. X.25
Ltomuta, Gtgray1948, Merlion444, White Shadows, Tim1357, Wormsgoat, TobeBot, Trappist the monk, SchreyP, Yunshui, Zonafan39,
ئاراس نوری, Mptb3, Javierito92, Dinamik-bot, Vrenator, TBloemink, MrX, SeoMac, Defender of torch, Ansumang, Aoidh, Ondertitel,
DeDroa, Rro4785, WikiTome, Weedwhacker128, Lysander89, Tbhotch, Reach Out to the Truth, Jesse V., Programming geek, DARTH
SIDIOUS 2, Dexter Nextnumber, SirGre, Alextyhy, Jfmantis, Onel5969, Kjaleshire, Mean as custard, Mppl3z, TjBot, Pontiacsunfire08,
Stealthmartin, BjörnBergman, Sweet blueberry pie, Sarikaanand, DiaNoCHe, Francis2795, Lordmarlineo, Slon02, Urvashi.iyogi, Deagle
AP, Rollins83, N sharma000, Vinnyzz, EmausBot, Gfoley4, Tasting boob, Odell421, SampigeVenkatesh, GoingBatty, RA0808, Cookdn,
Nwusr123log, Mrankur, CaptRik, NotAnonymous0, Tommy2010, Elvenmuse, Wikipelli, Dcirovic, Jasonanaggie, Alisha.4m, Werieth,
ZéroBot, John Cline, Ida Shaw, Josve05a, Parsonscat, MithrandirAgain, Enna59, NicatronTg, EdEColbert, Bbuss, Ferrenrock, Lt monu,
Vorosgy, Fred Gandt, Hazard-SJ, Bijesh nair, Can You Prove That You're Human, Demonkoryu, Utilitytrack, Tolly4bolly, Thine Antique
Pen, W163, Eab28, Icefirearceus, Arman Cagle, THeReDragOn, OllieWilliamson, L Kensington, Bachinchi, Gsarwa, Donner60, Wik-
iloop, Djonesuk, Puffin, Adityachodya, ChuispastonBot, Wakebrdkid, GrayFullbuster, Sven Manguard, DASHBotAV, Rocketrod1960,
Blu Aardvark III, Jekyllhide, Cgt, Sonicyouth86, Petrb, MetaEntropy, ClueBot NG, Cwmhiraeth, Nothingisoftensomething, Frankdushan-
tha, JetBlast, Matthiaspaul, NULL, Satellizer, Sparkle24, Dhardik007, Adair2324, WorldBrains, SunCountryGuy01, Feedintm, Doh5678,
Sainath468, Muon, Mesoderm, O.Koslowski, Geekman314, 149AFK, Joshua Gyamfi, CaroleHenson, Alenaross07, Widr, WikiPuppies,
Ashish Gaikwad, Sharanbngr, Lawsonstu, Friecode, Cllnk, Helpful Pixie Bot, Jijojohnpj, Mujz1, පසිඳු කාවින්ද, Ndavidow, Calabe1992,
Wbm1058, Karabulutis252, Sunay419, Altay437, Muehlburger, Lowercase sigmabot, Lifemaestro, BG19bot, Pcbsder, Integralexplora,
Northamerica1000, Who.was.phone, MusikAnimal, Snow Rise, Abhik0904, FutureTrillionaire, Atomician, CimanyD, Yowanvista, Dain-
omite, Aranea Mortem, Bcxfu75k, Upthegro, Lmmaaaoooo, Glacialfox, Isacdaavid, GeneralChrisV, Jkl4201, Achowat, Vikrant manore,
ItsMeowAnywhere, Iswariya.r, SupernovaExplosion, Sharkert, Pratyya Ghosh, Cyberbot II, Fronx, DreamFieldArts, Meowmeow8956,
Macintosh123, MadGuy7023, JYBot, TravellerQLD, Dexbot, Sakariyerirash, Kushalbiswas777, FoCuSandLeArN, Codename Lisa, Zii-
ike, Webclient101, Mualif02, 12Danny123, Nozomimous, TwoTwoHello, Frosty, SFK2, Hair, Openmikenite, Sowlos, Harris james, Corn
cheese, Crossy1234, Epicgenius, Poydoy, Acetotyce, Carrot Lord, Pdecalculus, Sosthenes12, ArjunML, Arthurhkt, EngGerm12, AnthonyJ
Lock, Mjoshi91, Comp.arch, JRR Akumal, Melody Lavender, JustBerry, NottNott, Fercho333, AlexanderRedd, Samueljjc, Dannyruthe,
Bbirkinbine, Inaaaa, FrB.TG, TheWiki122, Monkbot, Ganesh1997141, Augbog, Dsprc, JoeHebda, TerryAlex, NQ, Offy284, Suspender
guy, Aethyta, Lycanewolfe, Nelsonkam, TranquilHope, ChamithN, Endlesss2014, Epicalagent56, Derpmeup, Trevor35on, Mathewisgreat,
Epigogue, Ign christian, Kethrus, ToonLucas22, Prakashmeansvictory, Harshkohli1, Kharl denis, Infinite0694, OSMAX20, KasparBot,
Jamesmaclachlan, RippleSax, Qazi Umar FarooqKing, Squingo44, Jainishita, Ralphw, Wywyit, Jay1818, Thallyace, Risc64, Satyaki
Mukherjee (Rik), Nanaymo09090909, Amankesarwani, Wulfan Sravotsk, Nickrascal, Cpraveer, Coolindore2011, Wwsaa, Hauntedmath,
Starglider1, Song Syphan, CLCStudent, Reversepopo, Amitshora, Unisankar and Anonymous: 2504
• OSI model Source: https://en.wikipedia.org/wiki/OSI_model?oldid=735872701 Contributors: Damian Yerrick, AxelBoldt, Bryan Derk-
sen, The Anome, Stephen Gilbert, Manning Bartlett, Amillar, Andre Engels, Gsl, Aldie, Nate Silva, M~enwiki, William Avery, Davi-
dLevinson, Heron, B4hand, Edward, PhilipMW, Michael Hardy, Chris-martin, MartinHarper, Todd, Looxix~enwiki, Mkweise, Ahoerste-
meier, Haakon, Ronz, Nanshu, Glenn, Bogdangiusca, Netsnipe, IMSoP, Evercat, EdH, JidGom, Mulad, Markb, Emperorbma, Fuzheado,
Atreyu42, Markhurd, Tpbradbury, Grendelkhan, Jnc, Ed g2s, Rnbc, Nickshanks, Joy, Fvw, Johnleemk, Finlay McWalter, Phil Boswell,
Robbot, TomPhil, Friedo, Fredrik, Dumbledad, RedWolf, Postdlf, Wjhonson, Rfc1394, Puckly, Rursus, 75th Trombone, Hadal, David
Edgar, Rsduhamel, Filemon, David Gerard, Enochlau, Giftlite, Graeme Bartlett, DavidCary, Cokoli, Jpta~enwiki, Inkling, Tom harrison,
Lupin, Herbee, 0x6D667061, Everyking, CyborgTosser, Itpastorn, EJDyksen, Mboverload, AlistairMcMillan, Alvestrand, Tagishsimon,
Dave2, Gadfium, Pamri, Mendel, Inversetime, Ravikiran r, Eldiablo~enwiki, Sridev, Parakalo~enwiki, Tooki, Kramerino, Lazarus666, Pa-
parodo, Jcw69, Slrobertson, Kevin Rector, Trevor MacInnis, Moxfyre, Safety Cap, EagleOne, DmitryKo, Gazpacho, Mike Rosoft, Venu62,
Hes Nikke, Hgerstung, RossPatterson, Discospinster, Rich Farmbrough, Rhobite, DavidBarak, Lulu of the Lotus-Eaters, Demitsu, Paul Au-
gust, Techtoucian, BACbKA, Kaszeta, CanisRufus, Charm, MBisanz, Lankiveil, Bletch, GarethGilson, Sietse Snel, RoyBoy, Triona, Causa
sui, Rlaager, Bobo192, MarkWahl, Smalljim, John Vandenberg, Dreish, Che090572, AtomicDragon, Elipongo, Mikel Ward, Giraffedata,
SpeedyGonsales, Chirag, Nk, Bdamokos, Wrs1864, Helix84, Krellis, Nsaa, Mdd, Wayfarer, Ogress, Alansohn, Gary, Ghostalker, Snow-
Fire, Guy Harris, Free Bear, Lectonar, OSUKid7, Caesura, Snowolf, Simonfl, Wtmitchell, Rebroad, Wtshymanski, Rick Sidwell, Cburnett,
Stephan Leeds, Suruena, RainbowOfLight, Drat, Mikeo, Pethr, H2g2bob, MIT Trekkie, Pytom, Cxxl, Richwales, Beelaj, Mahanga, Ott,
Feezo, Stemonitis, OwenX, Woohookitty, Camw, LOL, Blueskies238, Ilario, Robert K S, Hdante, Kgrr, Cbustapeck, Eyreland, Prashan-
thns, Andybryant, Palica, Marudubshinki, Kesla, Runis57, Jannetta, Chupon, Jetekus, Josh Parris, Casey Abell, Ketiltrout, Dpark, John-
blade, Jake Wartenberg, Kinu, Inkhorn, CraSH, TAS, Tangotango, SMC, Vegaswikian, Kazrak, BDerrly, ElKevbo, N-Man, Fred Bradstadt,
Syced, Yamamoto Ichiro, Audunv, StuartBrady, FlaBot, Nivix, Ewlyahoocom, Eric Soyke, RobyWayne, Intgr, Fresheneesz, Alphachimp,
Chfalcao, Imnotminkus, Jmorgan, Chobot, Hatch68, Visor, DVdm, JesseGarrett, Bgwhite, Adoniscik, Gwernol, FrankTobia, Roboto de
Ajvol, McGinnis, YurikBot, Albanaco, Borgx, Sceptre, Josef Sábl cz, Joodas, Jonwatson, Bhny, Tyler.szabo, SpuriousQ, Kirill Lokshin,
Joebeone, Grubber, Shell Kinney, CambridgeBayWeather, Eleassar, Pseudomonas, Abarry, Friday, NawlinWiki, ENeville, Grafen, Ra-
zorICE, Nick, Marvin01, Brandon, Moe Epsilon, Kaz219~enwiki, Voidxor, Lomn, Davetrainer, Tony1, PyreneesJIM, Nethgirb, Rjstinyc,
Jessemerriman, Caerwine, MarkBrooks, Wknight94, FF2010, Whitejay251, Lt-wiki-bot, YolanCh, Ageekgal, Closedmouth, Iambk, Fang
Aili, Pb30, Abune, Bariswheel, JoanneB, ThunderBird, Allens, Honeyman, CIreland, Luk, Hiddekel, EJSawyer, Sardanaphalus, SmackBot,
Mmernex, Bonobosarenicer, Irnavash, ThreeDee912, Reedy, KnowledgeOfSelf, Bjelleklang, Brick Thrower, Delldot, Nejko, Jonathanwag-
ner, Gilliam, Psiphiorg, @modi, Djib, Delfeye, Alucard 16, Tree Biting Conspiracy, Stevage, Arroww, Octahedron80, Nbarth, Ctbolt,
Adibob, Thief12, TripleF, Can't sleep, clown will eat me, YamiKaitou, ZachPruckowski, JonHarder, Addshore, Kcordina, Edivorce,
Meepster, SundarBot, Adamantios, UU, Dohzer, Soosed, Apocryphite, Cybercobra, Fullstop, Valenciano, Shadow1, Tompsci, HarisM,
Insineratehymn, Weregerbil, Mwtoews, WoiKiCK, Ged UK, Dino.korah, Umair ahmed123, H34d~enwiki, Kuru, Microchip08, Natara-
juab, Rejax, Martinkop, Adj08, Sir Nicholas de Mimsy-Porpington, Tim Q. Wells, Nux, Goodnightmush, Highpriority, Noahspurrier,
Michael miceli, IronGargoyle, Morten, Vanished user 8ij3r8jwefi, MarkSutton, Krampo, Yms, Mr Stephen, Dicklyon, Kim Rubin, Wag-
gers, Lachlancooper, Anonymous anonymous, IReceivedDeathThreats, Ryulong, Wrlee~enwiki, Citicat, Nbhatla, Kvng, Rcannon100, Lee
Carre, Hetar, Iridescent, Penno, Shoeofdeath, Beno1000, Courcelles, Drwarpmind, Tfinneid, Danlev, Tawkerbot2, Ouishoebean, Stephen-
Falken, Ryt, The Haunted Angel, Mmdoogie, InvisibleK, Sakurambo, KerryVeenstra, CmdrObot, Ale jrb, Nitecruzr, Scohoust, Lighthead,
Naishadh, Andkore, RobEby, Phatom87, Myheadspinsincircles, Mattalyst, Travelbird, Yuokool12, Maguscrowley, Odie5533, Tawkerbot4,
Mattjgalloway, DumbBOT, Chrislk02, Eazy007, Alaibot, Biblbroks, Scolobb, Omicronpersei8, JodyB, Epbr123, Rohwigan03, Jhilving,
Daniel, N5iln, Hcberkowitz, Amitbhatia76, JMatthews, CynicalMe, Marek69, John254, Tellyaddict, Iviney, Ajo Mama, RichardVeryard,
Kaaveh Ahangar~enwiki, Zachary, Dzubint, Turb0chrg, Qexter, KrakatoaKatie, AntiVandalBot, Majorly, Luna Santin, Fjpanna, Seaphoto,
CDima, BommelDing~enwiki, JeTataMe, Alphachimpbot, Graham.rellinger, Myanw, Gökhan, Caper13, JAnDbot, Niaz, Vmguruprasath,
Dereckson, MER-C, Dcooper, LittleOldMe, Enjoi4586, Ideoplex, Bakilas, VoABot II, Ishikawa Minoru, RoscoMck, Davidjk, James-
BWatson, Mbc362, Tedickey, Ifroggie, Panser Born, Animum, Cyktsui, Dili, Mtd2006, MetsBot, Logictheo, Schumi555, BenLiyanage,
WLU, SineChristoNon, Patstuart, Micahcowan, 0612, S3000, Flowanda, MartinBot, Nolyann, Naohiro19, Rettetast, Charles Edward, Ryan
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 415
au, Ore4444, Cputrdoc, Markolinsky, Jschoon4, Smokizzy, RockMFR, J.delanoy, Mange01, Carre, SaxicolousOne, Uncle Dick, Public
Menace, Mr Elmo, Saicome, Dispenser, Katalaveno, DJPohly, Skier Dude, Gurchzilla, Swapcouch, AntiSpamBot, Tarekradi, Kraftlos, Wil-
son.canadian, Jrodor, Lordeaswar, Cometstyles, Inomyabcs, Wily duck, Inwind, S (usurped also), Boikej, Pluyo8989, Mlewis000, Lights,
HamatoKameko, 28bytes, GreYFoXGTi, VolkovBot, Wire323, ABF, Adityagaur 7, Jeff G., Speaker to Lampposts, Lear’s Fool, Meta-
classing, Saddy Dumpington, Khat17, Philip Trueman, DoorsAjar, Oshwah, BuickCenturyDriver, DSParillo, GDonato, Dmottl, Chim-
pex, Anna Lincoln, DennyColt, Leafyplant, BwDraco, PDFbot, BotKung, VidGa, Ibenr, Rjgodoy, Aslambasha09, Coriron, Ayengar,
Sunilmalik1107, Spitfire8520, Henrikholm, AlleborgoBot, PGWG, Jchristn, CMBJ, LOTRrules, Kbrose, SieBot, Mikemoral, Nubiat-
ech, Scarian, Jauerback, Caltas, Matthew Yeager, Triwbe, Yintan, GlassCobra, Bobdrad, Happysailor, Flyer22 Reborn, EnOreg, Oxy-
moron83, Arunachalammanohar, Tpvibes, Steven Crossin, Wishingtown~enwiki, Patrikor, Rkarlsba, StaticGull, ProPuke, Denisarona,
Troy 07, ClueBot, GorillaWarfare, The Thing That Should Not Be, Postmortemjapan, Think4amit, Lawrence Cohen, Unbuttered Parsnip,
Adrianwn, LizardJr8, Anjola, Pmorkert, Puchiko, Andjohn2000, Pointillist, DragonBot, Excirial, Throttler, Alexbot, Jusdafax, Anon
lynx, Erwinkarim, Fleg31789, NuclearWarfare, Arjayay, Jotterbot, Patch1103, DeltaQuad, Botsjeh, Morel, Isthisthingworking, Muro Bot,
Zoobee79, Thingg, Aitias, 7, Subfrowns, Versus22, Mr.ghlban, Mcnuttj, Rgilchrist, Johnuniq, SoxBot III, Apparition11, Bücherwürm-
lein, DumZiBoT, FreshPrinz, XLinkBot, Jovianeye, Tbsdy lives, Logthis, Dgtsyb, Karpouzi, Alexius08, Hellomarius, Jdrrmk, Tranzz,
HexaChord, Bojer~enwiki, Addbot, Mobius R, Willking1979, Akiyukio, 1337 JN, Balajia82, Tcncv, Bzimage.it, Friginator, Syntaxsys-
tem, Djmoa, Scientus, Vishnava, CanadianLinuxUser, NjardarBot, Amtanoli, Cst17, MrOllie, The Athlon Duster, Ottosmo, Evillawng-
nome, Roux, Doniago, TinyTimZamboni, Lockcole, Tide rolls, OlEnglish, Teles, Zorrobot, MuZemike, David0811, Wireless friend,
Another-anomaly, Dcovell, Peni, , Enduser, Angrysockhop, ZX81, Yobot, WikiDan61, Karelklic, Fraggle81, Cflm001, Manishar
us, Therumakna, THEN WHO WAS PHONE?, Brougham96, Gafex, Tempodivalse, AnomieBOT, Duey111, Naresh jangra, Killiondude,
Jim1138, CraigBox, Kingpin13, Ulric1313, Mikeyh56, RandomAct, Flewis, Materialscientist, RobertEves92, ℍuman, 90 Auto, Citation
bot, ShornAssociates, E2eamon, Roux-HG, Crimsonmargarine, Gasp01, Milind m2255, MauritsBot, Xqbot, Saad ziyad, Capricorn42, Nfr-
Maat, Jeffrey Mall, DSisyphBot, Shrofami, AbigailAbernathy, Fuzzball24816, Nasa-verve, GrouchoBot, AVBOT, Wizardist, Rsiddharth,
Shirik, Mathonius, Kallaspriit, Mmmeg, Theelmgren, Shadowjams, Joaquin008, Sesu Prime, A.amitkumar, FrescoBot, DrSpice, Oita2001,
802geek, Advancedtelcotv, Itusg15q4user, VS6507, Kyllys, Recognizance, Nisavid, Runtux, Geek2003, Kismalac, Eliezerb, Vk anantha,
Originalharry, DrDOS, AstaBOTh15, Simple Bob, Mojalefa247, I dream of horses, Ajw901, LittleWink, Jonesey95, A412, Calmer Wa-
ters, Rushbugled13, Jschnur, SpaceFlight89, Isofox, Fumitol, Warrierrakesh, Bmylez, Mohitjoshi999, Merlion444, Mmeerman~enwiki,
Yamike, TobeBot, Ashutosh.mcse, Lotje, Asn1tlv, Dinamik-bot, Nemesis of Reason, Bluefist, Mattmill30, Fiable.biz, JV Smithy, Tb-
hotch, Minimac, Brambleclawx, DARTH SIDIOUS 2, Artur Perwenis, Candc4, Ripchip Bot, Lynnallendaly, Conquest ace, Deagle AP,
Rollins83, EmausBot, Sliceofmiami, Stryn, Immunize, Alex3yoyo, Super48paul, Dewritech, Racerx11, Mrankur, RenamedUser01302013,
Peaceray, John Hopley, Sp33dyphil, Tommy2010, Wikipelli, Dcirovic, K6ka, Savh, Mohitsport, Fæ, Josve05a, PaulWIKIJeffery, Mkage-
nius, Unkownkid123, A930913, Saintfiends, Can You Prove That You're Human, Kyerussell, Cs mat3, SporkBot, Monterey Bay, Gz33,
Wingman4l7, Vanished user fois8fhow3iqf9hsrlgkjw4tus, Elfosardo, Praggu, Crasheral, Tarian.liber, Orange Suede Sofa, ChuispastonBot,
Pastore Italy, Kkbairi, SharePointStacy, Neil P. Quinn, DASHBotAV, Raju5134, Petrb, Encaitar, ClueBot NG, MelbourneStar, Jeanjour,
Satellizer, Lord Chamberlain, the Renowned, Chester Markel, Jjenkins5123, Jakuzem, Bchiap, 336, Widr, Scottonsocks, Suyashparth,
Chrkelly, Theopolisme, MerlIwBot, Novusuna, Johnny C. Morse, Kronn8, WNYY98, BG19bot, HMGb, Island Monkey, Northamer-
ica1000, Hallows AG, Palltrast, Mudasir011, Snehasapte, Mark Arsten, Shraddha deshmukh, BJMdeJong, Dmohantyatgmail, Benzband,
Jatinsinha, Avitesh, MrsValdry, CitationCleanerBot, GGShinobi, Roo314159, Falk.H.G., Nathanashleywild, Mahesh Sarmalkar, Translu-
centCloud, Wannabemodel, Winston Chuen-Shih Yang, Nkansahrexford, Jsonheld, Vanished user lt94ma34le12, Zhaofeng Li, Jimw338,
Taruntan, Sfeldner, Gm shamim, RealHandy, Tprz, Dexbot, Webclient101, Iambossatghari, Mitrabarun, Neevan99, Frosty, Payal1234,
සීසර්, ElgeeC, DBhavsar709, Epicgenius, Davidh63, Immaculate.john95, François Robere, Melonkelon, Apurv.11213, DavidLeighEllis,
Thardrain, Comp.arch, Tilopenda, Spyglasses, Congoblast, Ginsuloft, Semsi Paco Virchow, Quenhitran, Jianhui67, Lengeni, Byte1000101,
Abbotn, Antrocent, Claw of Slime, YitzchakF, Tayyabjamil, User26954344524345, Omare83, TerryAlex, Psycho365, Say which?, Jain
Nupoor, Ajit31, Biochembob, TranquilHope, Prak’s purushot, Candlelighter, Vítor, Superdupernova, Sonicwave32, Lukajohn70, Rishi
Neemkhedia, Sagar22more, Prateek Proo, Neil Schoolman, Virulentvowels, Abcd50000, NgYShung, Krlicmuhamed and Anonymous:
2488
• Physical quantity Source: https://en.wikipedia.org/wiki/Physical_quantity?oldid=732829016 Contributors: Tobias Hoevekamp, The
Epopt, Koyaanis Qatsi, XJaM, PierreAbbat, SimonP, Patrick, SebastianHelm, Ahoerstemeier, Andres, Mxn, Mydogategodshat, Aqualung,
Jusjih, Robbot, Romanm, Giftlite, Herbee, Markus Kuhn, Simian, Karol Langner, Icairns, Notinasnaid, Che090572, Rbj, Dungodung,
Jérôme, Velella, Zoohouse, Gene Nygaard, Linas, Miaow Miaow, Ttwaring, Nihiltres, Physchim62, Chobot, Bgwhite, The Rambling Man,
Jimp, Conscious, Rhythm, Ecoleetage, GrinBot~enwiki, Mejor Los Indios, SmackBot, Slashme, Blue520, KocjoBot~enwiki, Fuhghet-
taboutit, Lambiam, Tarantola, Khazar, John, JoseREMY, Munita Prasad, Lorikeet, Postmodern Beatnik, CmdrObot, Jaeger5432, Kehrli,
Cydebot, Kanags, Paddles, Thijs!bot, Barticus88, PhJ, JAnDbot, Magioladitis, Geboy, R'n'B, Leyo, J.delanoy, Hodja Nasreddin, Ybk33,
NewEnglandYankee, Tygrrr, Idioma-bot, Soroush.mobasheri, WOSlinker, Yk Yk Yk, AlleborgoBot, SieBot, Jdaloner, Lightmouse,
Adamtester, Firefly322, Jonathanstray, ClueBot, Samprul, The Thing That Should Not Be, Spoladore, Enenn, Jeffknight, Jiří Janoušek, Mild
Bill Hiccup, Desruisseaux, Djr32, CohesionBot, Sun Creator, Vegetator, Addbot, Fgnievinski, FiriBot, Bostonquad, Ehrenkater, Lightbot,
Loupeter, Zorrobot, Luckas-bot, Mr.seuss, Yobot, Adi, THEN WHO WAS PHONE?, KamikazeBot, SolePensoso, Götz, Xqbot, Grou-
choBot, FrescoBot, Ribashka, AstaBOTh15, Pinethicket, LittleWink, Triplestop, MikeVanVoorhis, Share and Enjoy, Serols, TheBFG,
Tbhotch, EmausBot, WikitanvirBot, Sumsum2010, GoingBatty, RenamedUser01302013, Your Lord and Master, Hhhippo, Ouzel Ring,
Mar4d, Quondum, Tolly4bolly, L Kensington, Maschen, Donner60, Chlesimhae, Moocow121, ClueBot NG, Ulflund, Widr, Helpful Pixie
Bot, ProjSHiNKiROU, F=q(E+v^B), AK456, Dexbot, Iskandersz, Frosty, Jochen Burghardt, Sergey L. Gladkiy, Daedalus3.14, DavRosen,
Xdever, Gautham komath, Upsilonprime, Maan Karate Buvan, Shafqat mahmood hazarvi, Komal9288 and Anonymous: 112
• Post Office Protocol Source: https://en.wikipedia.org/wiki/Post_Office_Protocol?oldid=737877798 Contributors: Vulture, VincentV,
Arcade~enwiki, Aldie, Hirzel, Ubiquity, Tregoweth, Card~enwiki, Haakon, Hashar, Daniel Quinlan, Pedant17, Shizhao, Joy, Johnleemk,
Wilinckx~enwiki, Psmith, RedWolf, Tim Ivorson, Geoff97, Puckly, Hadal, Daniel Dickman, Varlaam, NSash, Rick block, Rick Block,
Ferdinand Pienaar, Gadfium, Antandrus, Maximaximax, Hobart, Porges, Rpkrawczyk, SimonEast, JTN, Discospinster, Brianhe, Ckelsh,
Mani1, Pavel Vozenilek, Kbh3rd, Foolip, Hayabusa future, John Vandenberg, Cmdrjameson, Unquietwiki, Davidgothberg, Wrs1864,
Mrzaius, Thoric, Bart133, Fourthords, Suruena, TheFlow, Versageek, Adrian.benko, Madmardigan53, Miaow Miaow, Armando, Apokrif,
Tabletop, Ambar, MichaelDubner, Graham87, Amire80, Gareth McCaughan, ElKevbo, FlaBot, Chobot, Antiuser, UkPaolo, The Ram-
bling Man, YurikBot, Wavelength, RobotE, Todd Vierling, Daverocks, Petiatil, Stephenb, Barefootguru, Wimt, SixSix, KGasso, Emc2,
Asterion, SkerHawx, AndrewWTaylor, SmackBot, Bggoldie~enwiki, Unyoyega, Apankrat, SMP, Snori, Deli nk, Oni Ookami Alfador,
Omniplex, Can't sleep, clown will eat me, WintersChild, Markhobley, Mwtoews, Tim Q. Wells, Jttodd, MTSbot~enwiki, Dead3y3, Grblom-
erth, Beno1000, Vinayksharma, FatalError, Zarex, JohnCD, Ozga, WeggeBot, Equendil, UncleBubba, Omicronpersei8, FrancoGG, Glenn
Anderson, Epbr123, Knakts, TXiKi, SusanLesch, Escarbot, Dzubint, AntiVandalBot, LibLord, Brum G, .anacondabot, LarryHughes, Ma-
416 CHAPTER 70. X.25
gioladitis, Cander0000, Rettetast, R'n'B, Felipe1982, Pharaoh of the Wizards, Uncle Dick, Sigmundpetersen, Andareed, HiLo48, Ethd,
Xgmx, Matthew1471, Prhartcom, STBotD, Burzmali, Harry The Bustard, Bonadea, Shiryaev, Ale2006, Idioma-bot, Funandtrvl, Jmco,
VolkovBot, Oshwah, Milan Keršláger, Falcon8765, Chenzw, AlleborgoBot, FlyingLeopard2014, Kbrose, Gaelen S., Nubiatech, Caltas,
Oda Mari, Jimthing, Jdaloner, OKBot, Svick, Andrij Kursetsky, Denisarona, Amymeegan6, Loren.wilton, ClueBot, Snigbrook, The Thing
That Should Not Be, Squadri, Niceguyedc, Rockfang, PixelBot, John Nevard, Lartoven, Jotterbot, Versus22, Isode, Johnuniq, Pierzz, Ad-
dbot, Mabdul, Ronhjones, Vishnava, Fluffernutter, Download, Coasting, ماني, Kevinmcolaco, Legobot, Luckas-bot, Yobot, Ptbotgourou,
TaBOT-zerem, Pcap, Xqbot, Joshyedward, Ute in DC, RibotBOT, SassoBot, Chatul, Ez leviathan, HRoestBot, RedBot, JnRouvignac, Tb-
hotch, EmausBot, John of Reading, WikitanvirBot, BabsiSnoecks, GoingBatty, Jera22, Thecheesykid, ZéroBot, Hazard-SJ, Birdsclose22,
ClueBot NG, Blackmetalgrandad, MelbourneStar, Snotbot, SLUG32, Helpful Pixie Bot, Calabe1992, Wbm1058, BG19bot, Green8907,
Compfreak7, Chmarkine, Yaroslav Nikitenko, Felixphew, Codename Lisa, Beige.librarian, Nodove, Comp.arch, JWNoctis, FockeWulf
FW 190, PeterSullivan12, Opencooper, Dorivaldo de C. M. dos Santos, Vj indian, JackeyDee, Fuchshuber and Anonymous: 262
• Programming language Source: https://en.wikipedia.org/wiki/Programming_language?oldid=735524605 Contributors: Magnus Manske,
Matthew Woodcraft, Derek Ross, LC~enwiki, Brion VIBBER, Mav, Koyaanis Qatsi, AstroNomer, Jeronimo, Ap, Malcolm Farmer,
AlexWasFirst, Rjstott, Andre Engels, Fubar Obfusco, SimonP, Merphant, FvdP, Imran, Rlee0001, B4hand, Stevertigo, Hfastedge, Den-
nisDaniels, Edward, K.lee, Michael Hardy, Tim Starling, Chris-martin, Kwertii, Nixdorf, MartinHarper, Ixfd64, TakuyaMurata, Karingo,
Minesweeper, Ahoerstemeier, Nanshu, Angela, Kragen, Poor Yorick, Nikai, Andres, Grin, Evercat, TonyClarke, ²¹², Jonik, Mxn, Vivin,
Speuler, Dave Bell, Dcoetzee, Reddi, Ww, Mac c, Dysprosia, Jitse Niesen, Gutza, Doradus, Zoicon5, 2988, Taxman, ZeWrestler, Bevo, Jph,
Jusjih, David.Monniaux, Mrjeff, Finlay McWalter, Pumpie, AlexPlank, Robbot, Noldoaran, Murray Langton, Friedo, Fredrik, Thniels,
RedWolf, Altenmann, SmartBee, Romanm, Rursus, Wlievens, Hadal, Borislav, Lupo, BigSmoke, Gwicke~enwiki, Tea2min, Ancheta
Wis, Gploc, Centrx, Giftlite, Thv, Dtaylor1984, Akadruid, PaulFord, Cobaltbluetony, Everyking, Esap, Wikibob, Mellum, Jorend, AJim,
Bonaovox~enwiki, Behnam, Ptk~enwiki, Macrakis, VampWillow, Bobblewik, Wmahan, Vadmium, Quagmire, Yath, Beland, Elembis,
Jossi, Phil Sandifer, DenisMoskowitz, Marcos, RainerBlome, Addicted2Sanity, Joyous!, Positron, Quota, Teval~enwiki, Zondor, Damieng,
EagleOne, Gazpacho, Mike Rosoft, Brianjd, SimonEast, Yana209, Noisy, Zaheen, Rich Farmbrough, Leibniz, Jpk, HeikoEvermann, Lulu
of the Lotus-Eaters, LindsayH, Michael Zimmermann, Paul August, Bender235, ESkog, Kbh3rd, Ben Standeven, Danakil, CanisRufus,
Hayabusa future, Shanes, Dgpop, Bobo192, AmosWolfe, Mpils, L33tminion, SpeedyGonsales, Photonique, Tgr, Saccade, Kickstart70,
Sam Korn, Phyzome, Simplyanil, Alansohn, Liao, Guy Harris, Diego Moya, Jeltz, Krischik, Wtmitchell, Suruena, Omphaloscope, Zawersh,
Voxadam, HenryLi, KTC, Forderud, Oleg Alexandrov, Mahanga, Revived, Infinoid, Roland2~enwiki, Hoziron, Woohookitty, NewbieDoo,
Mu301, Nuggetboy, Ilario, Oldadamml, Nameneko, Ruud Koot, Goodgerster, Brentdax, KymFarnik, Dolfrog, Davidfstr, Mangojuice, Tou-
ssaint, Marudubshinki, Yoric~enwiki, Chun-hian, Kbdank71, Mendaliv, Pwv1, Icey, Ketiltrout, Sjakkalle, Rjwilmsi, Tizio, Angusmclel-
lan, Koavf, Swirsky, Wikibofh, Amire80, Quiddity, Bruce1ee, Oblivious, Ligulem, DouglasGreen~enwiki, Bubba73, Reinis, GregAsche,
JanSuchy, Fantom~enwiki, FlaBot, Mathbot, Undeference, Nihiltres, Harmil, Vsion, Xavier Combelle, RexNL, Ewlyahoocom, Gurch,
Mpradeep, Quuxplusone, Tysto, Kri, Windharp, Chobot, Bgwhite, ColdFeet, Wavelength, Hairy Dude, RussBot, Hyad, Arado, Robert A
West, Taejo, Davidpdx, Bhny, Pi Delport, KSmrq, SpuriousQ, Edward301, Stephenb, Gaius Cornelius, Rsrikanth05, Wimt, CarlHewitt,
EngineerScotty, NawlinWiki, Wiki alf, Jaxl, Johann Wolfgang, BirgitteSB, Mccready, Brandon, Jpbowen, JulesH, Sekelsenmat, Nick C,
Tony1, Slaad, Natkeeran, BOT-Superzerocool, DeadEyeArrow, Perry Middlemiss, Ms2ger, Pooryorick~enwiki, WAS 4.250, Novasource,
Zero1328, Rushyo, Closedmouth, Jwissick, Kuciwalker, Cedar101, Peter, Donhalcon, Vahid83, Katieh5584, Kungfuadam, TuukkaH, DVD
R W, SmackBot, Tarret, Slashme, KnowledgeOfSelf, Lagalag, Vald, Brick Thrower, Alksub, Monz, ElAmericano, Xaosflux, Gilliam, Duke
Ganote, Ohnoitsjamie, Bh3u4m, Bluebot, Klasbricks, LinguistAtLarge, JMSwtlk, Persian Poet Gal, SeeAnd, MK8, Jprg1966, Thumper-
ward, Fplay, EncMstr, Victorgrigas, RayAYang, Nbarth, Royboycrashfan, Can't sleep, clown will eat me, Rrburke, Allan McInnes, -Barry-,
Cybercobra, Nick125, MisterCharlie, HarisM, Hammer1980, DMacks, MegaHasher, Vriullop, Derek farn, Ser Amantio di Nicolao, Water-
fles, Zarniwoot, Antonielly, JohnWittle, Ckatz, 16@r, A. Parrot, Eivind F Øyangen, Dan128, Slakr, Alhoori, Pieguy48, Xionbox, Dl2000,
SubSeven, Hu12, Stephen B Streater, Iridescent, Dreftymac, DavidHOzAu, Tawkerbot2, Vkhaitan, Switchercat, INkubusse, Acacix, Ahy1,
Georg Peter, Kris Schnee, Green caterpillar, Burkedavis, Jaxad0127, ShelfSkewed, MarsRover, Napi, Ezrakilty, Charlie Huggard, Ubiq,
Krauss, RenamedUser2, Fl, Peterdjones, Jason5ayers, Blaisorblade, Torc2, NotQuiteEXPComplete, Mattisse, Malleus Fatuorum, Epbr123,
Qwyrxian, N5iln, Headbomb, John254, Merbabu, Ideogram, AccurateOne, Natalie Erin, Escarbot, Acaciz, AntiVandalBot, Tewy, Gioto,
Luna Santin, Seaphoto, MHoover, Prolog, Jj137, Science History, VictorAnyakin, KHaskell, JAnDbot, JaK81600~enwiki, MER-C, IanOs-
good, Andonic, Hut 8.5, PhilKnight, Four Dog Night, VoABot II, Necklace, Foobah, Tedickey, Catgut, Indon, JohnLai, Abednigo, Mkdw,
ArmadilloFromHell, DerHexer, Philg88, Khalid Mahmood, Calltech, Gwern, Kiminatheguardian, MartinBot, Benjaminct, Mschel, Au-
tocratique, Tgeairn, J.delanoy, Pharaoh of the Wizards, Kimse, Trusilver, Giorgios (usurped), Ntalamai, Abeliavsky, Macaldo, Jesant13,
Acalamari, It Is Me Here, LordAnubisBOT, McSly, Nemo bis, Dominator09, SparsityProblem, Raise exception, NewEnglandYankee,
Rwessel, Ohms law, Cmichael, Ultra two, Juliancolton, LordCo Centre, Don't Copy That Floppy, Useight, Izno, Steel1943, Idioma-bot, Fu-
nandtrvl, Reelrt, Ottershrew, Red Thrush’s Bot, VolkovBot, Cireshoe, Philip Trueman, Oshwah, Muro de Aguas, Charlesriver, Tomatensaft,
Lradrama, K12308025, BwDraco, Sgbirch, Noformation, MearsMan, PlayStation 69, Andy Dingley, Yk Yk Yk, Cnilep, AlleborgoBot,
Knyf, S.Örvarr.S, EJF, SieBot, ATS, Sonicology, Tiddly Tom, Speed Air Man, Bill122, Krawi, Timhowardriley, Logarkh, Jerryobject,
Mwaisberg, Bentogoa, Happysailor, Flyer22 Reborn, Ranafon, Ferret, Faradayplank, Lightmouse, Techman224, BenoniBot~enwiki, Shane
A. Bender, HighInBC, ClueBot, CSProfBill, The Thing That Should Not Be, VsBot, Alliswellthen, Kedearian, Mild Bill Hiccup, Blan-
chardb, Takeaway, Robert Skyhawk, Iwantitalllllllll, Skytreader, Jotterbot, Hans Adler, Noosentaal, MelonBot, Chinabuffalo, SoxBot III,
HopeChrist, Darkicebot, Naderi 8189, Cp15, Slashem, Noctibus, MystBot, Dsimic, Addbot, JPINFV, L Gottschalk, DOI bot, Ronhjones,
Fieldday-sunday, Mentisock, Roux, Favonian, LinkFA-Bot, Systemetsys, Wikisedia~enwiki, Tide rolls, Krano, Gail, Jarble, Andylmur-
phy, Ben Ben, Legobot, Luckas-bot, Yobot, Midinastasurazz, OrgasGirl, Fraggle81, TaBOT-zerem, Abram.carolan, Pcap, Ningauble,
Peter Flass, Conor123777, AnomieBOT, Nottsadol, 1exec1, Jim1138, Galoubet, Ulric1313, Lucian1900, Materialscientist, Citation bot,
Maxis ftw, Fayt82, MauritsBot, Xqbot, Capricorn42, Jeffrey Mall, Gilo1969, XZeroBot, Miym, GrouchoBot, Papercutbiology, RibotBOT,
Gbruin, Russell Joseph McCann, Shadowjams, A.amitkumar, Apwestern, Captain-n00dle, Manpreett, Edgars2007, FrescoBot, Mark Re-
nier, Mìthrandir, DivineAlpha, Citation bot 1, I dream of horses, Elockid, HRoestBot, LittleWink, 10metreh, Jonesey95, Jschnur, Σ, Robo
Cop, Txt.file, Trappist the monk, Cmdodanli, ئاراس نوری, Callanecc, TheTechFan, Specs112, Diannaa, WikiTome, Suffusion of Yel-
low, Stroppolo, Vaibhavkanwal, DARTH SIDIOUS 2, Mean as custard, TomT0m, John lindgren, EmausBot, Orphan Wiki, Nima1024,
Carbo1200, Nutsnbolts222, Cogiati, Iuliatoyo, H3llBot, Karthikndr, Swatiri, Jguy, Noodleki, Carmichael, BioPupil, DASHBotAV, ClueBot
NG, A520, Mesoderm, Asukite, Snickel11, Danim, Helpful Pixie Bot, DBigXray, BG19bot, Krenair, Kangaroopower, Wiki13, MusikAn-
imal, J991, Compfreak7, Loriendrew, Nbrothers, Thomasuniko, Usman&muzammal, Teammm, Bobbygammill, Amitkumargarg88, Cy-
berbot II, Dexbot, Rezonansowy, Majilis, Damian.rouson, Steamerandy, Kooginup, Svensson1, Cathry, Ueutyi, Seanhalle, Vanamonde93,
Thetimperson, Grouphardev, Carrot Lord, François Robere, Wiki4Blog, Olmerta, Tentinator, Captain Conundrum, Komarov om, Alhade,
Uwe Lück, Ginsuloft, Inaaaa, Danielmask, Racer Omega, Lucky7-phool, Impsswoon, Fastdrummer, Monkbot, Theanimalover, Abdal-
lasyam, Wildkrat52, Whikie, PotatoNinja, Malistomailie, TheMacroChip, Papapasan, Dorivaldo de C. M. dos Santos, Bridgetlane, TaqPol,
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 417
Esquivalience, Rubbish computer, Some Gadget Geek, Lee Ann Dickerson, Infinite0694, Rajat293, KasparBot, Jose Diaz Sanchez Pablo
Garica Flores, Aro88, Grabtricks, The Quixotic Potato, LibbyLaneLonne, 45La45Lo33, Lukaslt13, Sahil qutub, Qzd, Music1201, Cap-
tainGummyBearz, Eestrella198, Ushkin N, Arbor Fici, Allynykaza and Anonymous: 781
• Public switched telephone network Source: https://en.wikipedia.org/wiki/Public_switched_telephone_network?oldid=729648328 Con-
tributors: The Anome, Andre Engels, Gsl, Aldie, William Avery, SteveDay, MikkoM, Youandme, Steverapaport, Patrick, JohnOwens,
Michael Hardy, Darkaddress, Cameron Dewe, Looxix~enwiki, Tusixoh, Glenn, Crissov, Dysprosia, Radiojon, SEWilco, Robbot, Rfc1394,
DavidCary, Markus Kuhn, Niteowlneils, Leonard G., Rchandra, Falcon Kirtaran, Tagishsimon, Gloop, Chowbok, JeremiahOeltjen, Adrian
Sampson, Hugh Mason, JTN, Richardelainechambers, MBisanz, Fourpointsix, Bobo192, MarkWahl, Redlentil, Espoo, Disneyfreak96,
Poweroid, ChrisUK, Rohaq, Guy Harris, Wtmitchell, HenryLi, OwenX, ^demon, Ruud Koot, Graham87, BD2412, Yurik, Snafflekid,
Pmj, Rjwilmsi, Makru, FlaBot, Ian Geoffrey Kennedy, Polaralex, Chobot, YurikBot, Rsrikanth05, Cryptic, Hm2k, NickBush24, Adamn,
Jpbowen, Tony1, Nethgirb, Mysid, Elkman, Max Schwarz, Sharkb, Closedmouth, Petri Krohn, Hirudo, SmackBot, MerlinMM, JMiall,
Rick7425, Oli Filth, MalafayaBot, Duckbill, AmiDaniel, -ramz-, Nobodyinpart, Dicklyon, H, Kvng, Iridescent, BobbyLee, Joseph So-
lis in Australia, Az1568, Chetvorno, JohnTechnologist, CmdrObot, Ale jrb, BeenAroundAWhile, Yukoba~enwiki, Alaibot, Dragonòt,
Thijs!bot, Simeon H, Escarbot, Agnvoip, Alphachimpbot, JAnDbot, Harryzilber, Jan Friberg, Sln3412, Albany NY, Bellhead, Verkhoven-
sky, AlephGamma, Kgfleischmann, Calltech, I-baLL, Zahakiel, MartinBot, DrDorkus, Jim.henderson, Nono64, J.delanoy, Peter Chas-
tain, NewEnglandYankee, Manassehkatz, Ishanbhanu, Birczanin, Netmonger, PNG crusade bot, TXiKiBoT, Vipinhari, Abtinb, Rei-bot,
Monkey Bounce, Doug, Isdnip, AlleborgoBot, Kbrose, Quietbritishjim, SieBot, Dwandelt, Gerakibot, Yunghkim, Mahehere, Jojalozzo,
Ebernat, Machina.sapiens, WordyGirl90, ClueBot, EoGuy, Taroaldo, Trivialist, Mlaffs, XLinkBot, Deadlyturtletank, WikHead, Silvo-
nenBot, Dgtsyb, Addbot, AkhtaBot, Download, Numbo3-bot, Lightbot, Loupeter, Zorrobot, Не А, Luckas-bot, Bunnyhop11, Kamikaze-
Bot, Vini 17bot5, AnomieBOT, New2way, Rubinbot, Kingpin13, Abdulraheemsidz, Obersachsebot, Xqbot, Ranjandutta, Toetoetoetoe,
GrouchoBot, SimonInns, FrescoBot, Nageh, Haeinous, Austria156, Ezhuttukari, EmausBot, WikitanvirBot, Super48paul, Boundarylayer,
Rkononenko, Midas02, Anthony.selby, Miguelito2010, ClueBot NG, Widr, ZombieRamen, Voipsatellite, Rlegends, Earflaps, Rp8083,
Mogism, Ptuttle123, Slumberbus, Haminoon, Tc.guho, Spasticsociety, Rajuarya125, Dinnypaul and Anonymous: 238
• Radio Source: https://en.wikipedia.org/wiki/Radio?oldid=738162021 Contributors: WojPob, Brion VIBBER, Mav, The Anome, Christian
List, Ghakko, Roadrunner, Ray Van De Walker, Waveguy, Heron, Someone else, Stevertigo, RTC, Infrogmation, D, Boud, Michael Hardy,
Tim Starling, GABaker, Lexor, Liftarn, Ixfd64, Sannse, Paul Benjamin Austin, Karada, Gbleem, Spliced, Pagingmrherman, Tregoweth,
Gaz~enwiki, Ahoerstemeier, PJC, Haakon, Mac, ZoeB, Ron Davis, TUF-KAT, Plop, TUF-KAT, Msablic, Aarchiba, Ugen64, Glenn, Cyan,
Nikai, GCarty, Marknew, Mxn, Ilyanep, Arteitle, Hashar, Emperorbma, Ed Cormany, Reddi, Dysprosia, Wik, Tpbradbury, Munford,
Omegatron, Mdchachi, Raul654, Gakrivas, Flockmeal, Francs2000, Lumos3, Denelson83, Jni, Twang, Nufy8, Robbot, Pigsonthewing,
PBS, TMC1221, BenBreen2003, ZimZalaBim, Romanm, Modulatum, Meduz, Chris Roy, Academic Challenger, Blainster, Pcr, Hadal,
Wikibot, Borislav, Dhodges, Mushroom, ElBenevolente, Lupo, HaeB, TexasDex, Rsduhamel, Jooler, Alan Liefting, Centrx, Giftlite, Andy,
Wolfkeeper, Inkling, Meursault2004, HangingCurve, Mark.murphy, Wwoods, Everyking, Ssd, RatOmeter, Crusty Curmudgeon, Sundar,
Owen&rob, Jaan513, Bobblewik, Dainamo, Golbez, Wmahan, Doshell, Gadfium, Utcursch, Abu badali, Formeruser-81, Antandrus, Be-
land, OverlordQ, JoJan, Piotrus, SimonArlott, Oneiros, Girolamo Savonarola, Kevin B12, Icairns, Sam Hocevar, Magnum1, Montanean,
Tcr25, Eisnel, Canterbury Tail, Bluemask, Xioyux, Mike Rosoft, D6, Astronouth7303, Archer3, Imroy, Noisy, Brianhe, Rich Farmbrough,
Rhobite, Rydel, FiP, TrbleClef, ArnoldReinhold, Deelkar, Bender235, Andrejj, Kbh3rd, Brian0918, Ht1848, El C, Aude, RoyBoy, Tri-
ona, Bookofjude, Amerika, Jpgordon, Bobo192, Nigelj, Fir0002, Clawson, Davidruben, Shenme, NigelP, Cmacd123, Adrian~enwiki,
ParticleMan, Diceman, Sukiari, MPerel, Merope, St0rm~enwiki, Ranveig, Zachlipton, Mrzaius, Poweroid, Alansohn, JYolkowski, An-
thony Appleyard, Saa, Qwghlm, Tek022, Jeltz, SlimVirgin, Water Bottle, DreamGuy, Snowolf, Wtmitchell, Velella, Fledgeling, Wtshy-
manski, Quaestor~enwiki, Paul1337, Max Naylor, Endersdouble, Cmapm, DV8 2XL, Alai, Ghirlandajo, Redvers, Kazvorpal, Jakes18,
Dennis Bratland, Gosgood, Stemonitis, Gmaxwell, Angr, Richard Arthur Norton (1958- ), RHaworth, BillC, Bonus Onus, Fuss, Fred J,
Wikiklrsc, Andromeda321, LadyofHats, Jon Harald Søby, MechBrowman, Prashanthns, Gimboid13, Weevil, Kryptops, Zpb52, Pgosta,
Dysepsion, LimoWreck, Kesla, Graham87, Marskell, Qwertyus, Chun-hian, MC MasterChef, Kbdank71, Canderson7, Sjö, Rjwilmsi,
Koavf, Misternuvistor, Bruce1ee, Vegaswikian, Mbutts, Fred Bradstadt, Sango123, Yamamoto Ichiro, SNIyer12, Kevmitch, FayssalF,
SchuminWeb, RobertG, Musical Linguist, Doc glasgow, Nsjoker, Nihiltres, Fragglet, RexNL, Gurch, Talk1370, Lmatt, Windharp, Toi,
King of Hearts, Frappyjohn, Sharkface217, DVdm, Mhking, Peter Grey, Roboto de Ajvol, Wavelength, Samuel Wiki, Phantomsteve, Russ-
Bot, J. M., Conscious, Splash, GLaDOS, DanMS, SpuriousQ, Chaser, Chrisjustinparr, Zelmerszoetrop, RadioFan2 (usurped), Stephenb,
Gaius Cornelius, Zimbricchio, CambridgeBayWeather, Alvinrune, Rsrikanth05, Dsmouse, Wimt, Willpo~enwiki, NawlinWiki, Ethan,
SEWilcoBot, Wiki alf, Rjensen, Steven Hepting, Irishguy, Malcolma, DAJF, Davidpk212, Alex43223, Flyset, Bucketsofg, Dbfirs, Dead-
EyeArrow, Nescio, Groink, Xedaf, Thomas H. White, Werdna, Djdaedalus, Gohiking, Wknight94, Searchme, FF2010, Sadistik, Light
current, 21655, Deville, Zzuuzz, MaNeMeBasat, ToyoWolf, Nelson50, HereToHelp, Tyrenius, Spliffy, Ethan Mitchell, Crazyquesadilla,
Allens, Junglecat, Snaxe920, RG2, Carlosguitar, Mohylek, Cmglee, Linkminer, DVD R W, Kf4bdy, David.hillshafer, Veinor, SmackBot,
MattieTK, Haza-w, Terry1944, KnowledgeOfSelf, Hydrogen Iodide, McGeddon, Pgk, Sea diver, Jagged 85, Davewild, Thunderboltz,
Stephensuleeman, Renesis, Delldot, Fractal3, Jonathanwagner, Kintetsubuffalo, Alsandro, SmartGuy Old, Gilliam, Ohnoitsjamie, Skizzik,
Carl.bunderson, Micwea, Jcarroll, Cabe6403, Kmarinas86, Science3456, Hraefen, Armeria, Schmiteye, Chris the speller, Kharker, Wuffyz,
MK8, Miquonranger03, Domthedude001, SchfiftyThree, Akanemoto, Leoni2, Mark7-2, Whispering, Baronnet, CMYK, Can't sleep, clown
will eat me, Shalom Yechiel, Jennica, Snowmanradio, Ostermana, Darthgriz98, Yidisheryid, WinstonSmith, Rrburke, Benjamin Mako
Hill, ArmitageShanks, Edivorce, Renegade Lisp, Mugaliens, Badbilltucker, Huon, Jmlk17, Ganchelkas, Aldaron, MrRadioGuy, Smooth
O, BesselDekker, Quizman1967, Mindraker, Funky Monkey, MisterCharlie, RobHarding, Xagent86, Kalathalan, Bretonbanquet, Cotting-
ham, Ck lostsword, Kukini, Qmwne235, The undertow, Petr Kopač, Quendus, Kuru, Euchiasmus, Vgy7ujm, Arthuralee, J 1982, An-
drewjuren, Kipala, GCW50, Coredesat, Minna Sora no Shita, Gwest1, MonstaPro, Mr. Lefty, Otterman665, A. Parrot, MarkSutton, Slakr,
Beetstra, Kondspi, Bendzh, Waggers, CUTKD, E-Kartoffel, Butler david, Dr.K., Peter Horn, Kvng, Hu12, Ginkgo100, Levineps, Douglas-
Calvert, OnBeyondZebrax, White Ash, Spark, Cynric~enwiki, IvanLanin, Stereorock, Az1568, Courcelles, Linkspamremover, Bannanas,
Waffler, Tawkerbot2, Cassamine, Daniel5127, Chetvorno, Dan1679, Jchittoor, Fritz28408, The Haunted Angel, JohnTechnologist, Ian-
Wills, Mosaffa, JForget, Peter1c, Scohoust, Nczempin, Mig11, MrZap, Birdhurst, McVities, Requestion, Lazulilasher, Ravensfan5252,
Yaris678, Book M, Gogo Dodo, B0Rn2bL8, Anonymi, Flowerpotman, Pascal.Tesson, Scott14, Trident13, DumbBOT, Phonemonkey,
JodyB, Vanished User jdksfajlasd, Nol888, Gimmetrow, Click23, Ozguy89, Marqmike2, Epbr123, Doct.proloy, Kussy, Pampas Cat,
Mishmash8, Dnyhagen, Spunker540, Picus viridis, X201, Mnemeson, Leon7, Sgaragan, MichaelMaggs, Natalie Erin, CTZMSC3, Es-
carbot, Grandin, Mentifisto, AntiVandalBot, Seaphoto, Mrshaba, Jbaranao, Epischedda, Venya, Xbox360wraith, Tomgray, LuckyLouie,
Jc3, Chill doubt, Bdean1963, Beachyboy, LegitimateAndEvenCompelling, Myanw, Uusitunnus, JAnDbot, Husond, Harryzilber, Barek,
MER-C, Fetchcomms, Andonic, Erpel13, Greensburger, Masked boy~enwiki, Parcemihi~enwiki, Jed S, SiobhanHansa, Acroterion, Ge-
niac, Magioladitis, Creationlaw, Bongwarrior, VoABot II, AuburnPilot, JNW, Yandman, Paymani, Puddhe, Doug Coldwell, Jatkins,
Robomojo, Recurring dreams, Sgr927, Biokinetica, Cpl Syx, Glen, DerHexer, TheRanger, NatureA16, PhantomS, MartinBot, Meam-
418 CHAPTER 70. X.25
vagabond, GM11, Jim.henderson, Rettetast, Rob Lindsey, Kostisl, Sfrandzi~enwiki, CommonsDelinker, AlexiusHoratius, Paulmcdonald,
Jmccormac, Gutta Percha, LedgendGamer, Mausy5043, RockMFR, J.delanoy, Trusilver, Anilbg, Wa3frp, Tntdj, Uncle Dick, Maurice
Carbonaro, Jesant13, Jreferee, JA.Davidson, Shawn in Montreal, NX1Z, Listen2myradio, Jigesh, Jayden54, Chalyres, Jackobyte, Anti-
SpamBot, RoboMaxCyberSem, GhostPirate, NewEnglandYankee, Fountains of Bryn Mawr, Nwbeeson, Micz.flor, SJP, Gregfitzy, Ontari-
oboy, Liliana-60, BigHairRef, Smitty, Prhartcom, 2help, Cometstyles, Jamesontai, Znx, Davidezell, Bonadea, Useight, Eduardo Mendonça
de Lima, CardinalDan, Idioma-bot, Funandtrvl, X!, Deor, VolkovBot, ABF, Almazi, Rclocher3, Chienlit, Philip Trueman, Majorxp, Jhon
montes24, Oshwah, Mercy, Ldonna, The Original Wildbear, Pachayachachic, Mr Percy, Drestros power, SteveStrummer, Arnon Chaffin,
Pjdd2, Qxz, Monkey Bounce, Anna Lincoln, Clarince63, Dendodge, HorusHawkX, Corvus cornix, DocteurCosmos, Martin451, Slysplace,
Person324, Abdullais4u, Eatabullet, LeaveSleaves, Raymondwinn, Arthurs1212, Uannis~enwiki, Greswik, Andy Dingley, Wasted Sapi-
ence, Synthebot, Falcon8765, Enviroboy, Burntsauce, GlassFET, Thor12x, Ka6s, Symane, Logan, DigitalC, Tesla4life, EJF, Blue borg,
Smobri, Romeodesign, Millars, Tiddly Tom, Scarian, WereSpielChequers, NB-NB, Hertz1888, Dawn Bard, Viskonsas, Caltas, Matthew
Yeager, Command5, Thyroe, Yintan, M.thoriyan, MyNickname, Best 24, Dochdododo, Keilana, Bentogoa, Happysailor, Sletfsak2, Oda
Mari, ScAvenger lv, Faradayplank, AngelOfSadness, Joydrop, Stoneygirl45, Katecummings, Lightmouse, Manway, Rafamachine, Svick,
Datadrainacidblast, Jongleur100, Kristine.clara, Dust Filter, Mr. Stradivarius, Ascidian, PerryTachett, Denisarona, Jons63, Asher196,
Troy 07, Valiant11, Serialdownloader, Elassint, Rhyshuw1~enwiki, ClueBot, SummerWithMorons, LAX, Michael Gary Scott, Fspade,
Deviator13, GorillaWarfare, Jackollie, Snigbrook, Foxj, The Thing That Should Not Be, Littlekorea34, FLAHAM, Leonard 280, Dr-
mies, Frmorrison, DanielDeibler, Wikijens, CounterVandalismBot, Skeeball93, Niceguyedc, EconomicsGuy, Gointv, Mayawi, Bob bo-
bato, Neverquick, Nseidule, Chelseax3rose, Excirial, Jusdafax, Anquiliquest, Moreau1, Rcooley~enwiki, Wikitumnus, Eeekster, Conical
Johnson, Samx0x0x0, Abrech, Dropsoffire, Atomicfro, Vinhchaule, Arjayay, Jotterbot, Tinje, 7&6=thirteen, Razorflame, Dekisugi, Dev-
iljin21, SchreiberBike, Mlaffs, Safreeman, Q1w2e88, Calor, Girtyzg, Thingg, Maczad, Aitias, Footballfan190, 500million, Versus22, Sled-
dog71, Superherogirl7, Johnuniq, Egmontaz, Vanished user uih38riiw4hjlsd, Vanished User 1004, DumZiBoT, Qwertyqwertqwert, Aris-
tokrata, Willem103, XLinkBot, Hotcrocodile, Spitfire, Barış uçurum, Gnowor, Andyl620, Vividenblem, Stickee, Rror, Bradv, Ed1234ab,
21stCenturyGreenstuff, Avoided, WikHead, SilvonenBot, Badgernet, Noctibus, Artaxerxes, Subversive.sound, JinJian, S TiZzL3, Radio-
data researcher, Milos Stevanovic, Addbot, Mortense, Manuel Trujillo Berges, Fyrael, Captain-tucker, Kingjames528, Otisjimmy1, Frigi-
nator, Fgnievinski, Swampfire, Bob sagget jr., Fieldday-sunday, Laurinavicius, Kman543210, Aashleynj, Ka Faraq Gatri, Vrray people107,
MrOllie, XRK, Dylanrules123456789, LinkFA-Bot, 84user, Tide rolls, Lightbot, OlEnglish, Helt, Serge Lachinov, Gail, David0811, Al-
beiror24, Gursis11, Luckas-bot, Vedran12, Yobot, Fraggle81, II MusLiM HyBRiD II, Aldebaran66, Melvalevis, Joetaras, Troymacgill,
Washburnmav, SwisterTwister, Knownot, Axel22, MacTire02, OregonD00d, AnomieBOT, Stears81, Quangbao, Sertion, Jim1138, Ga-
loubet, Eating Tomatoes, Piano non troppo, Kingpin13, RandomAct, Materialscientist, Citation bot, Anthonypunk1, Beenturns23, Crim-
sonmargarine, Kirchsw, TinucherianBot II, Timir2, LeX4051, The sock that should not be, Capricorn42, Drilnoth, Tex-linke, Jeffrey
Mall, Rainshower, Batesmas214, Teamitem, Crabman90210, AbigailAbernathy, TheIntersect, DjbFire, Ab1, Brandon5485, DaleDe, Yo-
ganate79, EMDavidson, Astatine-210, Fotaun, GliderMaven, FrescoBot, Magnagr, Tangent747, Tobby72, A.Abdel-Rahim, Sky Attacker,
HJ Mitchell, Audemat, Blacky111, Jamesooders, Cannolis, HamburgerRadio, Citation bot 1, Connerandtom, MacMed, Pinethicket, I
dream of horses, Hard Sin, PrincessofLlyr, Pillo, Skyerise, Jschnur, Tesladeservescredit, Serols, SpaceFlight89, Meaghan, D1tempo, Hy-
ater, Pankaj2211, EdoDodo, Cnwilliams, Postdeleter, Gryllida, Hsnmoom, Thrissel, Discographer, MAS10, Francis E Williams, Vrena-
tor, Davish Krail, Gold Five, Wiki-Updater 2.0, Everyone Dies In the End, Mttcmbs, Brian the Editor, Suffusion of Yellow, Tbhotch,
Reach Out to the Truth, Sideways713, Marie Poise, Mean as custard, Qwerky0o0, Jonathan Levy, Johnjones5278, Slon02, EmausBot,
Nebabc11, Thetofuseezall, Yuhter, Ken95, Immunize, Gfoley4, Jorge c2010, Yaleshen, Ajraddatz, TLPA2004, Dewritech, Courcelles
is travelling, GoingBatty, RA0808, Robert376, CaptRik, Smappy, Cherrybear101, Slightsmile, Tommy2010, Hagis5555550, Wikipelli,
K6ka, Hagisman, Thecheesykid, Kkm010, 15turnsm, 88frog88, Susfele, Chuck Baggett, Fæ, A930913, H3llBot, Wayne Slam, Rc-
sprinter123, TechWriterNJ, Gsarwa, Adbatson, ChuispastonBot, Teapeat, 28bot, Superdeffhound, Halfbreed m, Cgt, ClueBot NG, Smtcha-
hal, Winsladed08, CocuBot, This lousy T-shirt, BarrelProof, Jayanthkrishna, DobriAtanassovBatovski, Jocelyncarrasco, Snotbot, Cross-
fireradio, Mesoderm, Widr, Reify-tech, Theopolisme, Oddbodz, Helpful Pixie Bot, Ghostshock, Kiwitunza3, Strike Eagle, Titodutta,
Wbm1058, Lowercase sigmabot, BG19bot, Stupidguy24, TCN7JM, Spoons14, Northamerica1000, ISTB351, Commandochris, MusikAn-
imal, Planetary Chaos Redux, Mark Arsten, JHobson2, Robert the Devil, Soerfm, 17morria, Loriendrew, Klilidiplomus, Tucci mayne,
Happenstancial, Cqdx, Miszatomic, Jamecons, MartinBoudreault, Embrittled, Diyanah satariah, Total-MAdMaN, Epicwo, Nikeboy175,
Adias13, Elddup11, Rahulradio, Hmainsbot1, Webclient101, Boby9952, SFK2, Reatlas, Iturbe Online, Fycafterpro, Faizan, Aftabbanoori,
Baconatorsforall, JamesMoose, Jakec, DetroitSeattle, Do Thang, Syamsunders, DavidLeighEllis, Kavithasri362, Liquid Lime18, Sirwalter-
douglas, Comp.arch, Finnusertop, Ginsuloft, George8211, Noyster, Mrman21, UY Scuti, Meteor sandwich yum, Bballer123456789321,
Esfil555666, TrekkieSpeller, Mortifierr, HHubi, Crookedy0ungg, Superdragonmonster, Monkbot, Nemasdia5673, Patient Zero, Sssredg,
Phemmyjohnson, ♥Golf, Meep876, 3primetime3, HMSLavender, Idunnowhat, Himisterpie, Beeshal Khadka, Craig Leo Johnson, Sci-
entistmangesh, REDIRECT, SQMeaner, KasparBot, Chand3994, Blamheadshot11, Agricola123, ProprioMe OW, Pulltea, Swissinator,
Filpro, Bigmike88, Bigboombox, Goose121, CLCStudent, Duraka Radio, Jekson Bim, Wobblytabletop, Mariusrobin1981, Westofawe-
some, Radio batista ide, Sufi69, Stuffthings1234567891011121314151617181920, On the ceiling, Electivo000 and Anonymous: 1504
ganist, Dbiel, Rod57, AKA MBG, Lygophile, Erick.Antezana, Lrunge, RasputinJSvengali, Macedonian, LokiClock, Philip Trueman, Amos
Han, TXiKiBoT, Purpose Observatory, Aaeamdar, Goberiko~enwiki, HillarySco, Merijn2, Synthebot, Lova Falk, Cnilep, Jimbo2222, Lo-
gan, Botev, SieBot, Nubiatech, Kgoarany, Asderff, PaulColby, Jerryobject, Yerpo, ScAvenger lv, Strife911, Bguest, MiNombreDeGuerra,
Doc honcho, CharlesGillingham, Emptymountains, Martarius, ClueBot, Bbadree, Tanglewood4, Eklir, Niceguyedc, DragonBot, Awi007,
PixelBot, Vanisheduser12345, Rhododendrites, MacedonianBoy, Cenarium, Aleksd, Micmachete, MystBot, Alanthehat, Addbot, Rdan-
neskjold, The singapore ministry of education sucks, AVand, Guoguo12, Landon1980, Friginator, K1US, Aboctok, Ayatniazi, Canadian-
LinuxUser, Pirtskhalava, CarsracBot, Numbo3-bot, Erutuon, Tide rolls, JAHendler, Krixou, Legobot, Luckas-bot, TaBOT-zerem, Van-
ished user rt41as76lk, AnakngAraw, 8ung3st, Molewood6, Rockypedia, Rjanag, Govindmaheswaran, Jim1138, Materialscientist, Citation
bot, LilHelpa, Xqbot, Hyggelig, Lynch9000s, Aenioc, JustinCope82, Omnipaedista, Benjamin Dominic, FrescoBot, Levalley, Citation
bot 1, Mundart, Smithonian, Harold Philby, Pinethicket, Joost.b, RedBot, MastiBot, Nora lives, FoxBot, کاشف عقیل, Jonkerz, Lotje,
Theyetiman12345, RobotQuistnix, 2bluey, Mchcopl, Zegarad, EmausBot, Jefffi, Active Banana, Hpvpp, Dcirovic, Alexey.kudinkin, Lla-
mas4drama'10, Unreal7, SporkBot, Gabnh, Eric Biggs, Edunoramus, Kgsbot, Ready, Odysseus1479, Tijfo098, Manytexts, ClueBot NG,
Squarrels, Aniketdalal, Movses-bot, Helpful Pixie Bot, BG19bot, BenSmak, Boblibr, KateWishing, Lawandeconomics1, MusikAnimal,
Davidiad, Tom Pippens, Semantia, UnconsciousInferno, Darylgolden, Suraduttashandilya, Dave5702, Kevin12xd, Faizan, Bienmanchot,
Ahernandez33, Didigodot, Noizy Boy, Sarahjane212013, Pavel Stankov, Seagull123, Csusarah, FelixRosch, Good afternoon, Nøkkenbuer,
Spyker247, KasparBot, Vjpand, George Bakouropoulos, Sykonos, Jman2324, Wilhelm Turing and Anonymous: 289
• SOAP Source: https://en.wikipedia.org/wiki/SOAP?oldid=737607701 Contributors: Joakim Ziegler, Mav, The Anome, Christopher Ma-
han, Aldie, Lloy0076, Hannes Hirzel, Derek~enwiki, Sytone~enwiki, Michael Hardy, Ezra Wax, Modster, Nixdorf, Liftarn, Wwwwolf,
Kricxjo, Ronz, Samuelsen, Netsnipe, OliD~enwiki, Ehn, Nohat, Dysprosia, Rednblu, Jnc, Traroth, Joy, Khym Chanur, Veghead, Un-
invitedCompany, Chuunen Baka, Robbot, Celsius1414, Kristof vt, RedWolf, Kowey, Securiger, Wjhonson, Rrjanbiah, Diberri, David
Gerard, Javidjamae, Thv, Elf, Holizz, HangingCurve, Average Earthman, Bkonrad, Dawidl, Khalid hassani, Bluetulip, Tagishsimon,
Pgan002, Saucepan, Mzajac, Zmydlarz, BeakerK44, Andreas Kaufmann, Ferrans, Kustere, AliveFreeHappy, Delepster, Discospinster,
Pmsyyz, Dpm64, Smyth, Pavel Vozenilek, ColBatGuano, CanisRufus, MBisanz, Hayabusa future, Mkosmul, Triona, Saturnight, Aaron-
brick, Femto, Kgaughan, Bobo192, Nigelj, Yongxinge, John Vandenberg, Duk, Darwinek, Dtynan, Flammifer, Minghong, Maebmij, He-
lix84, Krellis, Bijee~enwiki, Andrisi, Phils, Jumbuck, GoClick~enwiki, Alansohn, WickieNcf, Fg, Calton, !melquiades, RoySmith, Wt-
mitchell, Suruena, RubenSchade, Ethilien, Voxadam, Ironwolf, Mindmatrix, Unixer, WadeSimMiser, Schzmo, Al E., MyFavoriteMartin,
Gyrae, Toussaint, Marudubshinki, Gwil, Ashmoo, Tzadikv, Jetekus, Kbdank71, Yurik, Rogerd, Isaac Rabinovitch, Rillian, Netan'el,
Ttwaring, Boteman, HughJorgan, Munahaf, FlaBot, Margosbot~enwiki, Jamiecampbell, Ben Babcock, Sderose, M7bot, Marcuswittig,
Lasombra, Daev, Chobot, DVdm, Adam J. Sporka, Peterl, YurikBot, RobotE, Todd Vierling, TimNelson, DanMS, SpuriousQ, Manop,
Pseudomonas, Bovineone, Wiki alf, Bachrach44, Grafen, Prickus, LodeRunner, BrEyes, Scope creep, Simon80, MurrayRM, Quick-
BrownFox, 21655, Cedar101, CIreland, Algae, SmackBot, Herostratus, Vald, Mr link, Zserghei, RlyehRising, Brossow, HalfShadow,
Gilliam, Skizzik, Nahtanoj04, NickGarvey, Psiphiorg, ARK, Thumperward, Oli Filth, Jerome Charles Potts, Jenny MacKinnon, Can't sleep,
clown will eat me, Eliyahu S, Nixeagle, Kaimiddleton, Jpaulm, Safwankenobi, Cybercobra, Warren, Iridescence, DMacks, Crandmck,
Fireswordfight, DKEdwards, Wiesel 99, Zearin, JzG, Vanished user 9i39j3, Soap, Soumyasch, Bezenek, Nux, Wickethewok, Ernstde-
haan, Loadmaster, Optimale, Brainix, Yaxh, Kvng, Syberguru, Hu12, Dreftymac, Paul Foxworthy, Zero sharp, Destro, Danlev, FatalEr-
ror, JForget, DSosnoski, WeggeBot, Cydebot, Nessymonster, Ryan, MC10, Gogo Dodo, Daniel Olsen, Thijs!bot, Epbr123, Robsinden,
Gamer007, Towopedia, RickinBaltimore, TXiKi, OrenBochman, Desmoh, Escarbot, AntiVandalBot, Mack2, Dockurt2k, JAnDbot, Sjlain,
Coolhandscot, Acroterion, Enjoi4586, Magioladitis, Bongwarrior, VoABot II, Nyq, JNW, JamesBWatson, Eltener, Tedickey, Rami R,
Scharer, Slartibartfast1992, Ianaf4you, Japo, SemiEvolved, Seashorewiki, KarlPihlblad, Lengyeltom, PDX Aaron, MartinBot, Actorma,
Mooglemoogle, J.delanoy, Mange01, Sorek, JohnicholasHines, Satchy, Reedy Bot, Asbjornu, LordAnubisBOT, Grshiplett, GaborLa-
jos, Midnight Madness, Cometstyles, BOTones, Ale2006, BBilge, Lights, Netmonger, HughD, Leebo, Tcotco, Reinhardheydt, Edjanx,
Jsawiuk, Miranda, Rei-bot, Janom e, LeaveSleaves, Drappel, Waycool27, Najand, WinTakeAll, Dangiankit, Mcmohd20, Abhinav316,
Sapph, Vitz-RS, HiDrNick, Kbrose, Waxy Protector, Gorpik, Jzhang2007, VVVBot, Dawn Bard, Caltas, RJaguar3, Eclectic star, Al-
thena, Samisa.abeysinghe, Happysailor, Darkimmortal, Truthandsanity, Alex.muller, OKBot, Svick, Nattelsker, ClueBot, Blanchardb,
Jusdafax, DavidABraun, Northernhenge, PixelBot, JeffDonner, SpikeToronto, Vivio Testarossa, Dtwong, JamieS93, Pyrofork, Dekisugi,
Roberto999, Alejandro.imass, Bobcat43, Versus22, SoxBot III, DumZiBoT, Stabbyboyo, XLinkBot, Gnowor, Majkiw, JaredWBurt, DAud
IcI, WikHead, Dsimic, Sterremix, Ghettoblaster, Some jerk on the Internet, Shawisland, Aleksander Zawitkowski, Scientus, MrOllie, Laa-
knorBot, Edmund.vonderburg, Liassic, Tide rolls, Zorrobot, Kmacdowe, Menew222, Legobot, Luckas-bot, Yobot, Antonycarthy, KSi-
imson, Jim1138, Piano non troppo, Ham12343, Materialscientist, Superandoni, ArthurBot, Xqbot, Silver Spoon Sokpop, Cliffhanger,
Robmanson, RibotBOT, Bahaba, Cartque, 78.26, Intelliproject, Reggaloza, Cjolley101, Danested, Ilovenagpur, Sae1962, Iamfool, Rid-
vany, Pinethicket, I dream of horses, Arctic Night, RedBot, Jandalhandler, SchreyP, Yunshui, Reaper Eternal, Tbhotch, Reach Out to the
Truth, Soaguy, Christoph hausner, Jann.poppinga, VernoWhitney, DASHBot, Kadavralol, Apparati, EmausBot, Rsankarg39, IAMTHE-
ORIGINALTED, RenamedUser01302013, Tommy2010, Wikipelli, K6ka, Xi3nt, Bveratudela, ZéroBot, Fæ, Access Denied, Oliynykd,
Manoj.aimca2, Coasterlover1994, Blanghals, Donner60, ChuispastonBot, Wjburnett, ClueBot NG, Laurentdk01, Gareth Griffith-Jones,
Snanda85, Arnold4411, Widr, Helpful Pixie Bot, DBigXray, BG19bot, Jkonkle, Iriducibilli, Dentalplanlisa, Negara13, Thomas Vissers,
Japrin, Achowat, BattyBot, David.moreno72, Cyberbot II, Mardux, Deyafragrance, 069952497a, Epicgenius, Koppor, Faisalsarfraz.fs,
Chasing chintu, BhavnaSharma9, Ketuls, Logan Lynn Roberts, Nikify, Jpnh7, Wowowwewa, NicksterDaRemixer, PromanXd, Vineet-
battula, Ajjensen13, Skrynauw, Play123play123, Daniele.Brundu, GeneralizationsAreBad, ErdrickLoto, Rimal11, Hippopotomonstros-
esquipedaliophobia, The idiot with paedos up above and Anonymous: 684
• Software Source: https://en.wikipedia.org/wiki/Software?oldid=738232299 Contributors: Damian Yerrick, Peter Winnberg, WojPob,
Mav, Uriyan, Bryan Derksen, The Anome, Ap, Malcolm Farmer, Andre Engels, Christian List, Matusz, Fubar Obfusco, Ray Van De
Walker, SimonP, Ben-Zin~enwiki, Ezubaric, Leandrod, K.lee, Michael Hardy, Wshun, Chris-martin, Wm, Nixdorf, Pnm, Liftarn, Ixfd64,
GTBacchus, Delirium, Minesweeper, Mdebets, Ahoerstemeier, DavidWBrooks, Nanshu, Angela, Александър, Salsa Shark, Nikai, Jiang,
Hectorthebat, Rl, Harvester, Mxn, Smack, Denny, Hashar, Feedmecereal, RickK, Jay, Andrewman327, Greenrd, DJ Clayworth, Maximus
Rex, Wernher, Bevo, Traroth, Topbanana, Joy, Raul654, Jusjih, Guppy, Chuunen Baka, Robbot, Paranoid, Chealer, Murray Langton,
Brent Gulanowski, Fredrik, RedWolf, Jmabel, ZimZalaBim, Nurg, Stewartadcock, Rholton, Meelar, Mendalus~enwiki, Hadal, JesseW,
ElBenevolente, Lupo, TPK, Cyrius, Dina, Dave6, Jop~enwiki, Centrx, Giftlite, Ktanzer, Kenny sh, Peruvianllama, Everyking, Erdal Ron-
ahi, Guanaco, AlistairMcMillan, Horatio, Richard cocks, Jaan513, Edcolins, Ragib, ALargeElk, Gadfium, Utcursch, Bact, Slowking Man,
Antandrus, Beland, Jam2k, Karol Langner, Maximaximax, Supadawg, Icairns, Raylu, Lindberg G Williams Jr, Jcw69, Revised~enwiki,
Jh51681, Torinor, Andreas Kaufmann, Asiananimal, Trevor MacInnis, Canterbury Tail, RevRagnarok, Gazpacho, Mike Rosoft, Scrool,
Dreamatalana, Poccil, Imroy, Jiy, Mindspillage, RossPatterson, Discospinster, Rich Farmbrough, Guanabot, Oliver Lineham, Michal Ju-
rosz, Roybb95~enwiki, Paul August, Gronky, Bender235, ZeroOne, Andrejj, Neurophyre, S.K., Fenice, Danakil, Livajo, Hayabusa future,
Mwanner, Quinobi, PhilHibbs, Dennis Brown, Triona, Coolcaesar, Spoon!, Jpgordon, Causa sui, Bobo192, Stesmo, Smalljim, Xevious,
420 CHAPTER 70. X.25
R. S. Shaw, Matt Britt, Nk, Minghong, Nsaa, Mdd, Liberty Miller, Knucmo2, Jumbuck, Michael Drüing, Alansohn, Gary, Liao, Guy
Harris, Conan, Jtalledo, Riana, Wtmitchell, Velella, TaintedMustard, Super-Magician, Rebroad, Suruena, A.K.R., Itsmine, Versageek,
HenryLi, Dan100, Markaci, Kenyon, Oleg Alexandrov, Daveydweeb, Roland2~enwiki, Weyes, Kelly Martin, Woohookitty, Mindmatrix,
Recnilgiarc, RHaworth, Georgia guy, Andrewspencer, Ruud Koot, WadeSimMiser, JeremyA, MONGO, Schzmo, Pufferfish101, GregorB,
Jonnabuz, Wayward, Mandarax, BD2412, Chun-hian, Reisio, Sjö, Seidenstud, Koavf, XP1, Nneonneo, Ligulem, Jehochman, Bubba73,
AlisonW, Fred Bradstadt, Utuado, Sango123, Yamamoto Ichiro, Flarn2006, FlaBot, Old Moonraker, DLMahnken, Nihiltres, Gurch,
KFP, Alphachimp, Silivrenion, Imnotminkus, Butros, Psantora, Chobot, Frappyjohn, DVdm, Gwernol, The Rambling Man, Wavelength,
Kinneyboy90, StuffOfInterest, Pip2andahalf, RussBot, Bhny, Gardar Rurak, SpuriousQ, KevinCuddeback, Stephenb, Gaius Cornelius,
CambridgeBayWeather, Rsrikanth05, Wimt, DBHunter, LauriO~enwiki, Friday, NawlinWiki, Wiki alf, Grafen, AlMac, Justin Eiler,
Tejas81, Pohatu771, Malcolma, Xdenizen, Jpbowen, Mjchonoles, Moe Epsilon, Lucianob, Syrthiss, T, Brucevdk, Brat32, DeadEyeAr-
row, Jeremy Visser, Werdna, Navstar, Flipjargendy, Pooryorick~enwiki, Tigershrike, K.Nevelsteen, Emana, Ali K, Fang Aili, KGasso,
Th1rt3en, GraemeL, JoanneB, Alasdair, Rurik, CWenger, Thelb4, JLaTondre, Caballero1967, Allens, Katieh5584, Fctk~enwiki, TLSuda,
Rwwww, Gordmoo, CIreland, Arcadie, Luk, Sintonak.X, SmackBot, Reedy, Hydrogen Iodide, McGeddon, Lagalag, Unyoyega, Pgk,
Rbreen, DanielPenfield, WookieInHeat, Aoratos, Commander Keane bot, Yamaguchi , Cunya, Gilliam, Ohnoitsjamie, Hmains, Nmrd,
Mr Barndoor, Skizzik, Chris the speller, Bluebot, SlimJim, Quinsareth, Thumperward, Liamdaly620, Miquonranger03, Hmcnally, Lagge-
dOnUser, SchfiftyThree, Xx236, J. Spencer, Nbarth, Vbigdeli, Philip Howard, Darth Panda, Edlin, Anabus, Carl007, Dethme0w, Can't
sleep, clown will eat me, AussieLegend, Frap, Ashawley, Nixeagle, MeekSaffron, Snowmanradio, JonHarder, Yidisheryid, Addshore, Rgill,
Edivorce, Normxxx, Virtualsfera, Spectrogram, E. Sn0 =31337=, Cybercobra, Valenciano, Jiddisch~enwiki, Richard001, Grahamperrin,
Mini-Geek, Weregerbil, Sigma 7, LeoNomis, Jóna Þórunn, Sadi Carnot, Pilotguy, Mgrand, ArglebargleIV, Derek farn, Howdoesthiswo,
Kuru, Microchip08, Mike1901, Sadeq, Gobonobo, Nharipra, Park3r, Evenios, Tim Q. Wells, RomanSpa, 16@r, A. Parrot, Ehheh, Arkr-
ishna, GilbertoSilvaFan, Optakeover, TastyPoutine, Ryulong, Axcelis555, Nabeth, Xionbox, MrDolomite, Hu12, Iridescent, Wimbit, J
Di, Paul Foxworthy, GDallimore, Tawkerbot2, Daniel5127, Flubeca, JForget, CmdrObot, Dycedarg, Dbstommy, Page Up, JohnCD, Nun-
quam Dormio, NickW557, Mpete510, FlyingToaster, Pgr94, Dan Fuhry, Skybon, Safalra, Equendil, Phatom87, Cahk, MC10, Crossmr,
Gogo Dodo, Fazilati, ST47, Nike8, Tawkerbot4, Clovis Sangrail, Christian75, Torc2, DumbBOT, Kozuch, Omicronpersei8, Landroo,
Tuxide, Epbr123, Brinnington, Marek69, DmitTrix, Neil916, NorwegianBlue, James086, Nick Number, Big Bird, SusanLesch, Men-
tifisto, SC979, KrakatoaKatie, AntiVandalBot, Blarrrgy, Luna Santin, Seaphoto, Turlo Lomon, Rehnn83, Vanjagenije, Ellenaz, Man-
ionc, Spencer, Yoooder, Myanw, MikeLynch, JAnDbot, Random89, Zarkos, Barek, MER-C, The Transhumanist, Instinct, Hello32020,
Hno3, Andonic, PhilKnight, Bearly541, LittleOldMe, Acroterion, True Genius, Magioladitis, Swikid, Bongwarrior, VoABot II, Auburn-
Pilot, Wikidudeman, Tasja~enwiki, JamesBWatson, Ff1959, Frip1000, Kajasudhakarababu, Faizhaider, Tedickey, Twsx, Brusegadi, Paul
Niquette, KConWiki, Catgut, Teryan2006, PIrish, GSCC, Saleem110, Mkdw, Cpl Syx, Ripogenus77, DerHexer, WLU, Slingerjansen,
Oicumayberight, PeaceAnywhere, MartinBot, Dugmn, Mermaid from the Baltic Sea, Cargils02, Rettetast, Kostisl, R'n'B, Autocratique,
CommonsDelinker, Siliconov, EdBever, J.delanoy, Trusilver, Abby, Hans Dunkelberg, Aweiredguy, Public Menace, Jesant13, Ginseng-
bomb, 12dstring, Jreferee, Gueldenberg, Cpiral, DanielEng, Dispenser, Dominator09, AntiSpamBot, The Transhumanist (AWB), Dar-
rendeng, Rwessel, FJPB, Aatayyab, Jackaranga, KylieTastic, Alien4, Entropy, Петър Петров, Remember the dot, Jester7777, Gtg204y,
Bonadea, Alan012, Sigondronggondrong~enwiki, Idioma-bot, Jsheadixon, Wikieditor06, VolkovBot, Johan1298~enwiki, ABF, Jcuadros,
Jeff G., Supersteve04038, Ademsaykin, Ishara665g, Jacqueline7894y, Lareina3656y, RainierHa, Philip Trueman, TXiKiBoT, Oshwah,
Lookingchris, Technopat, Dj stone, Zybez, Poo1000, Zerokewl, Seraphim, Canaima, Jackfork, Eidetic Man, Ah2190, Seb az86556,
Ilyushka88, Milan Keršláger, Nathanielrichards, Flash man999, Manik762007, Mwilso24, Kurowoofwoof111, BigDunc, Aleemqureshi,
Boriszex, Andy Dingley, This acccount is 4 vandalism, Dirkbb, Synthebot, Purgatory Fubar, Oldwes, Monty845, Nickels360, Rainier3,
Fredtheflyingfrog, Gabecuevas, Kbrose, Tharcore, SieBot, Casperdog2227, Krawi, Gerakibot, One more night, Dawn Bard, Viskon-
sas, Timhowardriley, Triwbe, Dibcom, Yintan, Soler97, Lajpatdhingra, Keilana, Flyer22 Reborn, Oda Mari, Nosferatus2007, Jarda-
wien, Allmightyduck, Zedlik, Oxymoron83, Listlist, Harry-, Hello71, Steven Crossin, Redmercury82, Miguel.mateo, Fratrep, Macy,
Kumioko, Majorbrainy, Iknowyourider, Jacob.jose, Maralia, Egbsystem, Denisarona, Into The Fray, Stillwaterising, Mr. Granger, Mar-
tarius, Sokrato~enwiki, Elassint, ClueBot, Kathmandu2007, Safarj, Prohlep, Artichoker, Hutcher, Fyyer, Foxj, The Thing That Should
Not Be, Rodhullandemu, Starkiller88, Jan1nad, Hellosandimas, Wysprgr2005, Ahadrt, Kornxi, Drmies, Mild Bill Hiccup, Uncle Milty,
Boing! said Zebedee, Wikijens, Davennmarr, CounterVandalismBot, N n abc123, Passargea, Puchiko, Pointillist, Narayana vvss, Drag-
onBot, PEH2, Drewster1829, Excirial, Jusdafax, M4gnum0n, Jamesiemiller, Monobi, Eeekster, Setveen, Totie, Aqeelbilal, Ykhwong,
NuclearWarfare, Jotterbot, M.O.X, Elizium23, Noosentaal, ChrisHodgesUK, La Pianista, Timothy Neilen, Thingg, Versus22, Doriftu,
Perkinsleslie, HumphreyW, Apparition11, Party, Matthias M., SF007, SewerCat, DumZiBoT, Editorofthewiki, Bean2thousand, XLinkBot,
Fastily, Gnowor, SwirlBoy39, Jovianeye, Avoided, Skarebo, SilvonenBot, IngerAlHaosului, Cburress, Big milsy, Siggy28, Darkevilfairy,
Addbot, Pyfan, Some jerk on the Internet, Betterusername, Binary TSO, Ronhjones, CoolD, Scientus, CanadianLinuxUser, Fluffernutter,
Cst17, MrOllie, BalderV, Chzz, Mcdonald.ross5, Favonian, ChenzwBot, Doniago, Jasper Deng, Quercus solaris, 5 albert square, Japonca,
Naik5abhi, Numbo3-bot, Dayewalker, Shakya ind, Tide rolls, Lightbot, Emvn, Krano, Teles, Wireless friend, Jarble, Phillip Ca, Legobot,
Kurtis, Yobot, OrgasGirl, Cloudyed, Ptbotgourou, Senator Palpatine, Fraggle81, TaBOT-zerem, MarioS, Pcap, The Earwig, ArchonMag-
nus, THEN WHO WAS PHONE?, TheBiaatch, A Stop at Willoughby, Fern80, Rogger.Ferguson, KamikazeBot, Knownot, Esoteric Rogue,
Whitew123, South Bay, Matty, Backslash Forwardslash, AnomieBOT, Message From Xenu, Kerfuffler, Jim1138, Galoubet, Dwayne, Piano
non troppo, AdjustShift, Kingpin13, Amalhotra124, Materialscientist, Kc03, The High Fin Sperm Whale, E2eamon, La comadreja, Felyza,
LilHelpa, Kuldeep06march, MauritsBot, Xqbot, JimVC3, Jtbatalla, Lunaumbrax, P99am, S0aasdf2sf, Frosted14, T4tarzan, Sivaguru411,
RibotBOT, Wikicrazier2011, Amaury, Sorryranga94, Thurak13, Chongkian, Cyberstrike3000X, Shadowjams, A.amitkumar, Dougof-
borg, GliderMaven, FrescoBot, Luntrasul, Tangent747, Rhye123, W Nowicki, Recognizance, Zero Thrust, MD66, HJ Mitchell, Quin-
tusQuill, Ragha joshi, DivineAlpha, Maggyero, Intelligentsium, Rajeshmagic, Trueshow111, T3h 1337 b0y, Boxplot, Winterst, Program-
mer13, Pinethicket, I dream of horses, HRoestBot, Edderso, Deggalega, Jonathandeamer, 10metreh, NinjaCross, NurAzije, LinDrug,
Skyerise, Hoo man, Jschnur, RedBot, Muffhen, Евгени Симеонов, Serols, Citypanther, Curtis23, Bgpaulus, Davie4125, Aardvarkzz,
FoxBot, SchreyP, DixonDBot, LogAntiLog, Drawnman247, Dinamik-bot, Vrenator, MrX, January, Allen4names, Aoidh, Nourybouraqadi,
Reaper Eternal, Jeffrd10, Nascar1996, Tbhotch, Hauberk, Burnisk, DARTH SIDIOUS 2, Andrea105, Mean as custard, RjwilmsiBot,
Shafaet, DSP-user, Rollins83, DASHBot, EmausBot, JMetzler, John of Reading, Orphan Wiki, Happyisenough, Nima1024, Speaksleft,
Gfoley4, 021-adilk, Priyadarshi.pratyush, Freeeeeesoft, Dinhtuydzao, Racerx11, Ethine, GoingBatty, RA0808, RenamedUser01302013,
Kelldall, Solarra, Slowmo1993, Tommy2010, Wexhammer, Dcirovic, K6ka, Anirudh Emani, Sitarherophil, Haunting The Better, Abu-
faisal65, Fæ, Angela 2502, MithrandirAgain, Funnysens, Dffgd, Howling wolf of the jungle, AManWithNoPlan, Wayne Slam, Ocaasi,
Tolly4bolly, Puneet1507, EricWesBrown, Crazykr, Arman Cagle, Vale Len, L Kensington, Jguy, Mayur, Donner60, Virtualenv, Arnabat-
cal, Pigduckmeatshroom, Rihannoufal, Sven Manguard, DASHBotAV, 28bot, Venkisree, Web20image, Cgt, Petrb, Xanchester, ABC1A1,
Gwen-chan, ClueBot NG, Salmon92, Standalone0109, Shaluhijas, Xplodercop, Iiii I I I, Matthiaspaul, Satellizer, Jcrwaford5, Shad-
dim, Hamiltøn, HectorAE, Seven.cardwell, Delusion23, Mesoderm, O.Koslowski, DURWHAT, Manishgoyal.indian, Ankur 360, Widr,
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 421
Matt j fox, JordoCo, Vibhijain, Oddbodz, Helpful Pixie Bot, Alazlogexi, Calibooboo1, HMSSolent, Ifftikhaarrr, Titodutta, Wbm1058,
SteveWringsfield, BG19bot, Pine, Prahim, Jennapresley, Salmank120, Hz.tiang, Tiffu, Ceradon, Northamerica1000, Ex-dot, Marcelnache,
P.deshmukh09, Travelour, Joydeep, Altaïr, Jcdericco, Dynix, Insidiae, Morning Sunshine, Klilidiplomus, Achowat, Wannabemodel, Cal-
cifero, Knodir, EricEnfermero, Yasirilyas, BattyBot, David.moreno72, Labscientist, Pratyya Ghosh, SaadTeenager, Dominic9821, Piasa1,
Vishwajith33, Zatya34, ChrisGualtieri, MrDKing, TC Cannon, Adriancjr, YountLor, Markwaugh117, FoCuSandLeArN, Priyaranjan-
champatiray, Cwobeel, Majilis, Hackguard, Codename Lisa, MaggieMidnight, TwoTwoHello, Buspirtraz, Lugia2453, Andro flip, Frosty,
SFK2, Xxtt, Sriharsh1234, Joeinwiki, Ipodsof, Dave Braunschweig, Softwarenod, Moony22, Red-eyed demon, Gregwinwood11, Afos-
hay, Deboub, I am One of Many, Carrot Lord, Aura707, Anand8prakash, Kogmaw, Jakec, Taylor Bohl, Shubabegum, EvergreenFir,
Probusiness, Scharge, Reneve48, Oleg3280, Ahmlmh, Daideep patel, Sugavin, Babitaarora, Diptytiw, A Certain Lack of Grandeur, Wik-
iuser13, Ugog Nizdast, Melody Lavender, JustBerry, Markchloe, George8211, Lukeama, Dannyruthe, Parth pratim, Inaaaa, Andy Xucha,
Mmadade, WikiJuggernaut, Dee59, Rangerbot962, Jesus Morales Arce, Crow, Zeshannehal, Saisuryakattamuri, SergioGaeta, Abdllahijaz,
Hiranya Kumar Rajbongshi, Giliofelix, Charithvalluru1993, Filedelinkerbot, Prasoonnegi17, Vikash1122, Scarlettail, U2fanboi, Waggie,
Sanuamrani, Khali khelo, IagoQnsi, Gnamus, Forextread, Xombear, Thandi moyo, Marcel15255, Avidwriterforever, 3primetime3, Anny
Johnson, Malerisch, Asdklf;, Blurseeps, Eurodyne, JLalou, Shivanshis4, Kingabzy7, Firas Boudaqa, Gurjyottheman, X3mofile, Zppix,
Abdulrahmanimthihar, Hussa095, Shahnawaz hussain nagori, SDSJAFDHSA, TROLLED81, Shantanuspark, SafeerAhmedAbro, Mon-
aiva, Miaitza, AlishiaHolmes, Bazlul1, NANCYNCIT, OSMAX20, KasparBot, Bakosjen, MH Rabby khan, Adam9007, WhiteChek,
Priyanksoni9713, Saira500, Abhinavsfc, Oluwa2Chainz, Sro23, Ganeshkavhar1, Mahnoorali1305, Ruhulamin.khatri, Kurousagi, Sociable
Computer, Raheemhacker, MartinZ02, Thomasclewer1234, Hyperham51197, Ronaepaul, Qzd, I will erase, Athaniya nizamuddin, Tan-
veerdogar, Nooriezak, Emotionalllama, Naman kashyap, Fmadd, Madi Gregi, Asadsoft, JazzGW, Jeezidkwhatmedoinhere, Kayallwestfall
and Anonymous: 1597
• State (computer science) Source: https://en.wikipedia.org/wiki/State_(computer_science)?oldid=732690552 Contributors: The Anome,
SimonP, Mjb, Lexor, TakuyaMurata, Grendelkhan, Owen, Ancheta Wis, Giftlite, COMPATT, Hypertex, Zuidervled, BoP, Abdull, Diego
Moya, Kusma, MIT Trekkie, Dpv, RobyWayne, Fresheneesz, Hairy Dude, Hydrargyrum, Zzuuzz, Reyk, SmackBot, BiT, Dfletter, Jon-
Harder, Jaibe, Kvng, Ellin Beltz, Chetvorno, ChrisCork, Cydebot, Thijs!bot, Nick Number, Nthep, Magioladitis, Usien6, R'n'B, Hans
Dunkelberg, Matthew Yeager, M4gnum0n, Posix memalign, SchreiberBike, GlasGhost, DumZiBoT, Addbot, Ptbotgourou, JimVC3, Mark
Renier, Sae1962, Jfmantis, FluffySquid, BG19bot, EditorRob, MrBill3, YFdyh-bot, Werddemer, Monkbot, Shannon hedges and Anony-
mous: 20
• Syntax Source: https://en.wikipedia.org/wiki/Syntax?oldid=732551480 Contributors: Mav, RoseParks, Andre Engels, Karl E. V. Palmen,
Youssefsan, Vaganyik, William Avery, Ben-Zin~enwiki, Hannes Hirzel, Hirzel, Stevertigo, K.lee, Michael Hardy, Kwertii, Looxix~enwiki,
Ahoerstemeier, Darkwind, Glenn, Cadr, Hectorthebat, Chronotox, Charles Matthews, Haukurth, Hyacinth, Ed g2s, PuzzletChung, Robbot,
RedWolf, Altenmann, Dittaeva, Sverdrup, Academic Challenger, Rursus, Ojigiri~enwiki, Hippietrail, Hadal, Spellbinder, Rik G., Giftlite,
Marnanel, Raymond Meredith, Linguizic, Jdavidb, Neilc, Physicist, Andycjp, J. 'mach' wust, Sonjaaa, Beland, OverlordQ, MarkSweep,
Mukerjee, Oneiros, Karl-Henner, Tooki, Robin klein, N-k, D6, Poccil, Haggen Kennedy, Skal, Discospinster, Rich Farmbrough, Ben-
der235, El C, Cherry blossom tree, Joanjoc~enwiki, Sietse Snel, Bobo192, Beige Tangerine, Viriditas, Dungodung, Kappa, Joe Jarvis,
Kjkolb, Morganiq, Jonsafari, Anthony Appleyard, Mark Dingemanse, Atlant, CR7, Ciceronl, Cromwellt, Ish ishwar, RJFJR, Mikeo,
Axeman89, Stemonitis, Nuno Tavares, Angr, Simetrical, Woohookitty, Mindmatrix, Bellenion, Kokoriko, JeremyA, Keta, Eilthireach,
Pasta Salad, Palica, Mrcool1122, Graham87, FreplySpang, Mayumashu, NatusRoma, TheRingess, Wooddoo-eng, Krash, Nguyen Thanh
Quang, Whimemsz, Malhonen, CJLL Wright, Chobot, DVdm, Martin Hinks, KEJ, YurikBot, Wavelength, RobotE, RussBot, Hyad, Pig-
man, Polyvios, Anomalocaris, Cquan, Zarel, Bayle Shanks, Pdblues, Action potential, Maunus, Wknight94, Zzuuzz, Donald Albury,
Miguelmrm~enwiki, JoanneB, CWenger, Thomas Blomberg, TuukkaH, Torgo, SmackBot, David Kernow, Jasy jatere, KnowledgeOf-
Self, Zerida, David.Mestel, Unyoyega, Aurista25, C.Fred, Mgreenbe, Neutral-en, BiT, Niro5, Jwestbrook, Gilliam, Jcarroll, Rmosler2100,
Bluebot, Mazeface, Thom2002, MalafayaBot, J. Spencer, Rlevse, Can't sleep, clown will eat me, Mr.Z-man, Allan McInnes, Sundar-
Bot, Stevenmitchell, Ghiraddje, RandomP, Jon Awbrey, Fuzzypeg, FlyHigh, Byelf2007, SashatoBot, Derek farn, Rijkbenik, Tim Q. Wells,
Minna Sora no Shita, 16@r, J Crow, Slakr, Novangelis, Kvng, Joseph Solis in Australia, Joshuagross, Stifynsemons, Macetw, Thomasmeeks,
Gregbard, FilipeS, Icek~enwiki, Cydebot, Kallerdis, Robzy213, Thijs!bot, Epbr123, Jobber, ClosedEyesSeeing, John254, Adw2000, Nick
Number, Angryafghan, Pprabhakarrao, KrakatoaKatie, AntiVandalBot, Luna Santin, Prabhakar P Rao, Comhreir, Wayiran, Bogger, JAnD-
bot, Leuko, FromFoamsToWaves, MER-C, Rollred15, Freedomlinux, VoABot II, Pleckaitis, Rivertorch, Eldumpo, Yaxu, Glen, DerHexer,
CapnPrep, Kornfan71, Anaxial, R'n'B, Dwspig2, Smokizzy, J.delanoy, Hippasus, EscapingLife, Bogey97, Numbo3, Jerry, McSly, Rwessel,
SJP, Hulten, Idioma-bot, VolkovBot, Semmelweiss, Johan1298~enwiki, Jeff G., Gbouzon, TXiKiBoT, Oshwah, Guillaume2303, PaulTa-
nenbaum, ^demonBot2, Natg 19, Yannis1962, Synthebot, Cnilep, Wiredrabbit, Jimbo2222, SieBot, Mycomp, Nihil novi, Flyer22 Reborn,
Space Dracula, Sky1er, Yerpo, Hexham, Oxymoron83, Tautologist, ClueBot, JonnybrotherJr, Pi zero, Mike Klaassen, CyrilThePig4,
Wutsje, ChandlerMapBot, Zack wadghiri, Rhododendrites, Divespluto, Fattyjwoods, SchreiberBike, Acabashi, Aitias, Versus22, Will
Hen, Cc116, XLinkBot, Jbeans, Starfire777, Nyoro n, Addbot, Xp54321, ConCompS, Willking1979, Rmalouf, Vishnava, Coffeeas-
sured, Numbo3-bot, Lpjurca, Erutuon, Tide rolls, OlEnglish, Jarble, Legobot, Luckas-bot, Yobot, Ptbotgourou, Denispir, Raimundo Pas-
tor, AnomieBOT, Quangbao, Rjanag, Springindd, IRP, JackieBot, Glenfarclas, Materialscientist, Citation bot, ArthurBot, TwigsCogito,
Jchthys, Xqbot, Triplejo2, Dr Oldekop, Omnipaedista, RibotBOT, MarkkuP, Acb4341, LucienBOT, Krj373, Airborne84, Mundart, So-
pher99, Pinethicket, Jonesey95, Full-date unlinking bot, Dude1818, Jauhienij, Æk, Lotje, Tjo3ya, Reaper Eternal, Kajervi, Brian the Edi-
tor, Tbhotch, DARTH SIDIOUS 2, 2bluey, Mean as custard, Ripchip Bot, Uanfala, Jmonk95, EmausBot, GoingBatty, RA0808, Dcirovic,
K6ka, Mainstreet27, Goudron, Neddy1234, Tijfo098, ClueBot NG, AK IM OP, Iloveandrea, Helpful Pixie Bot, BG19bot, CityOfSil-
ver, Solomon7968, AdventurousSquirrel, CitationCleanerBot, Qetuth, Nuyhij, ChrisGualtieri, Grahas02, ComfyKem, BigBangTheoryLad,
Kevin12xd, Beatrice57, BreakfastJr, JKJasmineWongLaiKwan, Cmckain14, Wikiuser13, Werddemer, ANALYN AYCOCHO, Monkbot,
Boblamus, Qwertyxp2000, Crystallizedcarbon, Loraof, YeOldeGentleman, Faze4life2k16 and Anonymous: 314
• Technical standard Source: https://en.wikipedia.org/wiki/Technical_standard?oldid=728787835 Contributors: The Cunctator, Zundark,
Ben-Zin~enwiki, Olivier, Michael Hardy, Wapcaplet, Delirium, Gbleem, Mac, Yaronf, Darkwind, Glenn, Tobias Conradi, Dysprosia,
Hyacinth, Mackensen, Jusjih, Gentgeen, Vespristiano, Cyrius, Pengo, Adam78, Markus Kuhn, Bensaccount, Iceberg3k, Tagishsimon,
Jurema Oliveira, Saucepan, Secfan, Icairns, Karl-Henner, Zondor, EagleOne, CALR, Rich Farmbrough, Pjacobi, Mani1, Fajro, Azure
Haights, Hardwick, RussBlau, Schnolle, Gary, Spangineer, Wtshymanski, TShilo12, Angr, Mel Etitis, Pixeltoo, DESiegel, BD2412, Short-
enfs, Rjwilmsi, SpNeo, Vegaswikian, Makru, AJackl, Computor, ColdFeet, Mercury McKinnon, YurikBot, RussBot, DMahalko, Gaius
Cornelius, Retired username, Malcolma, Wangi, Nescio, 21655, Aufaber, Liujiang, Crystallina, SmackBot, Brick Thrower, Eskimbot,
Alsandro, Chris the speller, Thumperward, Nmyers, Darius Dhlomo, Karlhauth, Hongooi, Frap, Yidisheryid, Azumanga1, Mordea, Derek
farn, Ckatz, 16@r, Sijo Ripa, Adomenic, Levineps, V111P, IvanLanin, Chetvorno, J Milburn, CmdrObot, Harej bot, Krauss, LouisBB,
Travelbird, Escarbot, Milesflint, Danger, Albany NY, Bongwarrior, Dekimasu, Gabriel Kielland, Ratherhaveaheart, Alro, Lilac Soul,
422 CHAPTER 70. X.25
Rlsheehan, WarthogDemon, Sbipes, Mercurywoodrose, Martin451, Gotox, Val.policelli, Altermike, !dea4u, Pkgx, Yintan, KathrynLy-
barger, Alex.muller, StaticGull, Havarn, ClueBot, Arakunem, A3camero, Dekisugi, StanStandard, Rror, Alexius08, Addbot, ماني, Jakob-
Voss, TaBOT-zerem, Hugoham7, Sillypants85, Sivanov87, Piano non troppo, AdjustShift, Barf73~enwiki, Materialscientist, Citypanes89,
Shaymetcalfe, Isheden, Wgladwin, FrescoBot, Originalwana, Merlion444, EmausBot, Chuchart W, ZéroBot, Ego White Tray, Dineshku-
mar Ponnusamy, ClueBot NG, Organicdev, MerlIwBot, Wbm1058, PhnomPencil, Kolarp, Some Gadget Geek, KasparBot, New Media
Theorist, Gluons12 and Anonymous: 94
• Telecommunication Source: https://en.wikipedia.org/wiki/Telecommunication?oldid=736395538 Contributors: The Cunctator, Mav,
Bryan Derksen, The Anome, Ap, Rjstott, Aldie, Heron, Olivier, Edward, Michael Hardy, Mahjongg, Dan Koehl, Kku, Ixfd64, Dcljr,
Sannse, Tregoweth, Card~enwiki, Ahoerstemeier, DavidWBrooks, Haakon, Bluelion, Glenn, Nikai, Tristanb, Raven in Orbit, Guaka,
Ralesk, Reddi, Hydnjo, Will, Wik, Tpbradbury, Munford, Maximus Rex, SEWilco, Topbanana, Fvw, Chuunen Baka, Robbot, Chrism,
Vespristiano, RedWolf, Romanm, Modulatum, Richardpitt, Stewartadcock, Rfc1394, Steeev, Rasmus Faber, Hadal, Borislav, Betsumei,
Fuelbottle, Cedars, Stirling Newberry, Giftlite, Inkling, Mblaze, Bradeos Graphon, Curps, Rick Block, Mboverload, Bobblewik, Edcolins,
Gloop, Mendel, Sonjaaa, Spatch, Antandrus, MarkSweep, Piotrus, Quarl, MacGyverMagic, Bumm13, PFHLai, Neutrality, Ratiocinate,
Deglr6328, M1ss1ontomars2k4, Trevor MacInnis, Bluemask, Jayjg, CALR, Indosauros, Discospinster, 4pq1injbok, Rich Farmbrough,
Bert490, Smyth, Mjpieters, Pavel Vozenilek, Bender235, ZeroOne, Radavidson, Kjoonlee, JoeSmack, Violetriga, Borofkin, El C, Phil-
Hibbs, Art LaPella, Bobo192, Shenme, MaxHund, Maurreen, K12u, Jerryseinfeld, Timsheridan, Sysiphe, Jumbuck, Alansohn, Polarscribe,
Riana, Batmanand, Denniss, Wtmitchell, Rick Sidwell, TenOfAllTrades, Ceyockey, Herodotos, Kelly Martin, Woohookitty, Mindma-
trix, Pol098, Tabletop, Wikiklrsc, MarkPos, Ajshm, MrSomeone, RuM, Matilda, Graham87, BD2412, Kbdank71, Mendaliv, Snafflekid,
Casey Abell, Drbogdan, Rjwilmsi, Koavf, Hulagutten, Rillian, Vegaswikian, Makru, Titoxd, Margosbot~enwiki, RexNL, RobyWayne,
Intgr, Terrx, Srleffler, Phoenix2~enwiki, DVdm, Bgwhite, Stephenw77, YurikBot, Wavelength, Radishes, RobotE, Splash, Admiral Roo,
CambridgeBayWeather, Pseudomonas, Robbyyy, NawlinWiki, Cquan, Jaxl, Usingha~enwiki, Anareon, Sir48, PhilipO, Mikeblas, Tony1,
Zwobot, Bucketsofg, BOT-Superzerocool, FF2010, Light current, 2over0, David Jordan, GraemeL, Tyrenius, ArielGold, Johnpseudo,
TLSuda, Rwwww, GrinBot~enwiki, Sbyrnes321, Veinor, SmackBot, InverseHypercube, Unyoyega, CyclePat, Blue520, Misto, Eskim-
bot, KelleyCook, Lakhim, Gilliam, Ohnoitsjamie, Hmains, Ppntori, Chris the speller, Persian Poet Gal, Payxystaxna, Oli Filth, Jeysaba,
Silly rabbit, Vasu99a, Telecom.portal, Colonies Chris, A. B., Stenson jack, Милан Јелисавчић, Mitsuhirato, Rrburke, Addshore, DR04,
A5b, Mion, Ugur Basak Bot~enwiki, SashatoBot, Rory096, Harryboyles, Demicx, Mike1901, Smasafy, Bushsf, GothCabbage, Aden Scott,
IronGargoyle, 16@r, Special-T, Shangrilaista, Beetstra, Milesdowsett, Mr Stephen, Dicklyon, InedibleHulk, SandyGeorgia, TastyPoutine,
Totel, Ffxaddict899, Jose77, Kvng, ShakingSpirit, SansSanity, OnBeyondZebrax, Iridescent, Joseph Solis in Australia, Ohad.cohen, Cour-
celles, Tawkerbot2, JohnTechnologist, JForget, CRGreathouse, CmdrObot, Wafulz, JohnCD, N2e, SkylineEvo, Thomasmeeks, Penbat,
Cydebot, Obornp, Gogo Dodo, Hughdbrown, Studerby, Krakfly, Tawkerbot4, Ethan01, Kozuch, Lxdbsn, Malleus Fatuorum, Thijs!bot,
Hcberkowitz, John254, Tellyaddict, Solveforce, Dawnseeker2000, Escarbot, Mentifisto, KrakatoaKatie, AntiVandalBot, Majorly, Luna
Santin, Grammargal, Venya, Qsa5kn, PJY, Juzaily, Julie Deanna, Lperez2029, Once in a Blue Moon, JAnDbot, Harryzilber, MER-C,
CosineKitty, PhilKnight, Kerotan, Magioladitis, VoABot II, Appraiser, Verkhovensky, Bwhack, ClovisPt, LorenzoB, DerHexer, Oicumay-
beright, Kayau, Gwern, Europaandio, MartinBot, Jim.henderson, R'n'B, CommonsDelinker, Erkan Yilmaz, J.delanoy, Pharaoh of the
Wizards, Trusilver, Wa3frp, Jesant13, A New Nation, It Is Me Here, McSly, Brolsma, Skier Dude, Zedh, The Transhumanist (AWB),
Fountains of Bryn Mawr, KylieTastic, DASonnenfeld, Mlewis000, Idioma-bot, Funandtrvl, Remi0o, Sam Blacketer, VolkovBot, DM-
cMPO11AAUK, AlnoktaBOT, Coreyxbs, Gaianauta, Sdsds, Philip Trueman, TXiKiBoT, Chimpex, GcSwRhIc, Bogatabeav, Saligron,
Canaima, From-cary, Mezzaluna, PDFbot, Bhavin105, Wiae, ARUNKUMAR P.R, SpecMode, Madhero88, Kjoseph7777, Mohan0704,
Aulman, Meters, IdleUser, Synthebot, Insanity Incarnate, Symane, Logan, Kbrose, SieBot, Moonriddengirl, Scarian, Gerakibot, Keilana,
JD554, Andrew Hartford, Matthewedwards, SPACKlick, WannabeAmatureHistorian, Ioverka, Nazi 2007, Lightmouse, RW Marloe, Ngrif-
feth, OKBot, Svick, Spitfire19, Kristine.clara, Rapaporta, Jayeshtula, WikiLaurent, Asocall, Denisarona, Ossguy, Tuxa, Twinsday, Church,
Martarius, Elassint, ClueBot, Valeria70, GorillaWarfare, PipepBot, Qedu, Pvineet131, The Thing That Should Not Be, WaltBusterkeys,
SyntaxBlitz, Wutsje, Businessphonesystems, Bbb2007, Excirial, Hadiyana, Hugsforsale, Sun Creator, Georgiamonet, Arjayay, Razorflame,
Muro Bot, Pwarrior, BOTarate, Hdorren, Murali intl, Carlroddam, Johnuniq, SoxBot III, Vanished user uih38riiw4hjlsd, Skunkboy74,
XLinkBot, NocturnalA6 2.7, Setherson, Sweetpoet, Gggh, Addbot, DOI bot, Fgnievinski, Bkmays, Leszek Jańczuk, Fluffernutter, Ku-
tulus, MrOllie, Download, Favonian, 5 albert square, Tyw7, Lightbot, OlEnglish, Gail, Zorrobot, MuZemike, זרם-טבעת, Solidice190,
Luckas-bot, Yobot, OrgasGirl, TaBOT-zerem, Samsam.yh, THEN WHO WAS PHONE?, KamikazeBot, Nyat, AnomieBOT, Srobak,
Rsayles, Bsimmons666, Bowmanmas229, Jim1138, Galoubet, Gaga.vaa, Piano non troppo, Kjkarthikmaddy, AdjustShift, Materialscien-
tist, Whiskers9, Citation bot, Jeremyjf22, Freeness, Elm-39, Schproject, DynamoDegsy, Readiwip, ArthurBot, MauritsBot, Xqbot, Capri-
corn42, 4twenty42o, IMarc89, LoKiLeCh, DSofa, Ched, Srich32977, Coretheapple, Wiki2contrib, Nasa-verve, GrouchoBot, Wizardist,
Omnipaedista, Smartishkindaguy, Bo98, Shadowjams, 11cookeaw1, SD5, Gururaju, A.amitkumar, Anth12, Tsiuser09, FrescoBot, GEB-
Stgo, Alarics, Mìthrandir, Finalius, Citation bot 1, XxTimberlakexx, Biker Biker, MacMed, I dream of horses, Lars Washington, MastiBot,
Ezhuttukari, Bridget Huntley, Serols, Blycroft, הסיסמא123, Crusoe8181, Thrissel, V4nd3r, TobeBot, Trappist the monk, SchreyP, Paul
J Wayman, Lotje, Callanecc, Vrenator, Aoidh, TheGrimReaper NS, Merlinsorca, Minimac, Sideways713, DARTH SIDIOUS 2, Mean
as custard, Offnfopt, Basangbur, Haylstorms, EmausBot, John of Reading, Orphan Wiki, WikitanvirBot, Gfoley4, Katherine, Pugliavi,
Primefac, GoingBatty, RA0808, MCI telcomm, Telecomman, Wikipelli, Sprinklezz, Kkm010, Vihar7, Cogiati, Fæ, H3llBot, Marc Spod-
dle, LIVPAT, Alrino, IGeMiNix, Kaeh4, Donner60, Rifasj123, Rangoon11, Chris857, ChuispastonBot, ThePowerofX, Philippe BINANT,
Teapeat, Sepersann, 28bot, ClueBot NG, JetBlast, This lousy T-shirt, Draksis314, Satellizer, DobriAtanassovBatovski, Mrgates, Mr Myson,
Muon, Widr, Glauki, Helpful Pixie Bot, BG19bot, Hittman627, Brittanyab, Northamerica1000, Ashishkulshreshtha, Graham11, Colbry53,
Axis Research Mind, Joydeep, Swamynathan007, Elagoutova, HelinaZ, Achowat, Fylbecatulous, Pratyya Ghosh, Oreileao, Khazar2, Mna-
tivesacl, Mhughes38, Katiewiltshire, FoCuSandLeArN, Opensourceyk, Thermocycler, PeacefulPlanet3, Lugia2453, Perep80, Me, Myself,
and I are Here, Reatlas, Joeinwiki, Phamnhatkhanh, Faizan, Anawesomeeditor, Rizwaanahamed3, Chriyu, DavidLeighEllis, Daideep pa-
tel, Ugog Nizdast, Melody Lavender, NottNott, Ginsuloft, Jianhui67, Danieltele, Joancdocyogen, Mendisar Esarimar Desktrwaimar, Ia-
mandrewg, HHubi, Salton Finneger, Monkbot, Dsprc, Trackteur, Wikijuanjo1514, Chicken butt0192, MRD2014, Vkryla, ChamithN,
Prinzpopo, Esquivalience, NekoKatsun, MarkyNToby, JaDam, Aman.singh5317, Deborah Chiaravalloti, Unibateman, KasparBot, Dinny-
paul, Kiprorodri, Srednuas Lenoroc, Salwati6, SamWolves23, Jhansiranim, Kate A. Steel, GSS-1987, Yazebi, JMBeggs74, Rajram123,
Fmadd, Monvoip and Anonymous: 758
• Timeout (computing) Source: https://en.wikipedia.org/wiki/Timeout_(computing)?oldid=725752926 Contributors: Radiojon, Alerante,
Nabla, Sleske, Hooperbloob, Cédric, Pfalstad, RobyWayne, Srleffler, CiaPan, Pi Delport, Robchurch, VinceBowdren, Deville, Breznan-
derl~enwiki, Tinucherian, Stijn Vermeeren, Jim.henderson, Jamelan, SieBot, DragonBot, Addbot, Jacopo Werther, AnomieBOT, Mike-
spedia, Lotje, AvocatoBot, Dexbot, Dnfkagogo and Anonymous: 12
• Transmission Control Protocol Source: https://en.wikipedia.org/wiki/Transmission_Control_Protocol?oldid=737259878 Contributors:
WojPob, Brion VIBBER, Zundark, The Anome, AlexWasFirst, Andre Engels, Aldie, Fubar Obfusco, Jtk, Mjb, B4hand, PeterB, Edward,
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 423
Michael Hardy, Nixdorf, Kku, Meekohi, Karada, Dori, Pde, Mac, William M. Connolley, Ojs, BAxelrod, Harvester, Eirik (usurped),
Samuel~enwiki, Nikola Smolenski, Idcmp, Hashar, Timwi, Dcoetzee, Sepper, Andrewman327, Wkcheang, Jnc, Gamera2, Shizhao, Bet-
terworld, Raul654, Rogper~enwiki, Robbot, Chealer, Fredrik, Tomchiukc, RedWolf, Nurg, PedroPVZ, PxT, Jondel, Bkell, Lupo, Dina,
Giftlite, Graeme Bartlett, DavidCary, Sim~enwiki, Kim Bruning, Inter, Wolfkeeper, Fleminra, Frencheigh, Saaga, Mboverload, Nayuki,
Jaan513, Jackol, SWAdair, Jsavage, Kasperl, Fishal, Haggis, Mendel, LiDaobing, Beland, Dnas, StuartCheshire, Mozzerati, Biot, Daniel
Staal, SamSim, Jewbacca, Thorwald, RevRagnarok, Scrool, N328KF, Imroy, Pmadrid, JTN, Discospinster, Pak21, Hydrox, Qutezuce,
Wrp103, Smyth, Bender235, Dewet, ZeroOne, Goplat, Plugwash, Glenn Willen, Evice, Syp, CanisRufus, Purplefeltangel, Kwamikagami,
Spearhead, Sietse Snel, RoyBoy, Spoon!, GalaxiaGuy, Smalljim, John Vandenberg, Arnhemcr, Foobaz, Makomk, Giraffedata, SpeedyGon-
sales, Toh, Nk, Mhandley, Ryan Stone, Wrs1864, Helix84, MtB, Krellis, Klhuillier, Zachlipton, Guy Harris, DariuszT, Nealcardwell, Yamla,
SHIMONSHA, Lightdarkness, Fawcett5, Snowolf, Markrod, Vedantm, Velella, Rick Sidwell, Mark Bergsma, Cburnett, Suruena, Evil
Monkey, Egg, Sleigh, Boscobiscotti, Voxadam, Kenyon, Tariqabjotu, GilHamilton, Lime~enwiki, Gmaxwell, Boothy443, Woohookitty,
Beccus, StradivariusTV, Bkkbrad, Pol098, Alexescalona, Palica, Pfalstad, Graham87, Bilbo1507, Rjwilmsi, Plainsong, CraSH, Bruce1ee,
Ryk, Fredrikh, Brighterorange, Fred Bradstadt, FlaBot, Jowagner, Shultzc, Ysangkok, Otets, Aliljet, Choess, Intgr, Fresheneesz, Alvin-cs,
Synchrite, Butros, Daev, Chobot, Moocha, P0per, YurikBot, Hairy Dude, Phantomsteve, Arado, Akamad, Stephenb, Manop, Gaius Cor-
nelius, Yyy, Shaddack, Rsrikanth05, Wimt, NawlinWiki, Zwobot, Maerk, Phandel, DeadEyeArrow, Fabiob~enwiki, Harput, Bstrand, J.
Nguyen, Arthur Rubin, Jogers, JoanneB, Elfalem, Fsiler, Garion96, GrinBot~enwiki, TuukkaH, Kf4bdy, Marty Pauley, Luk, Amalthea,
Erik Sandberg, SmackBot, PaulWay, Ymiaji, DaveSymonds, The Monster, StephenHemminger, Doc Strange, Canthusus, Timotheus Ca-
nens, Agi896, BillMcGonigle, Andy M. Wang, Anwar saadat, Stevenwagner, Djdawso, Coinchon, Oli Filth, EncMstr, Colonies Chris,
LeiZhu, Can't sleep, clown will eat me, Neo139, OrphanBot, JonHarder, Logicwax, Zvar, Addshore, Ortzinator, Clements, Dharmabum420,
NeilGoneWiki, Duckbill, Alca Isilon~enwiki, Martijn Hoekstra, Mini-Geek, DylanW, Jwh, Acdx, A5b, Daniel.Cardenas, LeoNomis,
Tfl, DKEdwards, Masterpjz9, Qwerty0, Via strass, SashatoBot, Miss Saff, Trou, Breno, A-moll9, Bezenek, Prasannaxd, Stonesand, Jec,
Tasc, Peytons, Aarktica, Mattabat, Jgrahn, Prunk, MTSbot~enwiki, Kvng, Iridescent, Akill, Pegasus1138, Bill Malloy, Alexh19740110,
Phuyal, Svinodh, MrBoo, Cheburashka, Unixguy, CmdrObot, Imcdnzl, Agent Koopa, Nviladkar, Mr Echo, Splint9, Lark ascending,
Pgr94, MeekMark, Equendil, Phatom87, Revolus, Sbnoble, UncleBubba, Gogo Dodo, Tawkerbot4, Quibik, JCO312, Asenine, Christo-
pher P, CobbSalad, Omicronpersei8, M.S.K., Hilgerdenaar, Thijs!bot, Epbr123, Kubanczyk, El pak, Oldiowl, Marek69, TangentCube,
Uruiamme, LachlanA, I already forgot, AntiVandalBot, Majorly, Yonatan, Luna Santin, Widefox, DarkAudit, NKarstens, D235~enwiki,
Alphachimpbot, Altamel, Sdomin3, Esmond.pitt, Lanilsson, JAnDbot, Harryzilber, MER-C, Okiefromokla (old), Leolaursen, PhilKnight,
Enjoi4586, CrizCraig, Ideoplex, Magioladitis, Fisherisland14, VoABot II, TheVoid~enwiki, Kevinmon, Bubba hotep, PureRumble, Pa-
padopa, Kgfleischmann, WLU, I-baLL, Gwern, HiB2Bornot2B, Blacksqr, Perfgeek, MartinBot, AirCombat, Poeloq, Rettetast, Jonathan
Hall, FDD, Leyo, Lilac Soul, Gthm159, Mange01, Blendmaster, Jesant13, Jayden54, AntiSpamBot, Squidish, West81, Kraftlos, Bigdumb-
dinosaur, Juliancolton, Cometstyles, Manlyjacques, OsirisV, Wlgrin, Inwind, Izno, Ale2006, Tjhiker, Lights, Maksym.Yehorov, VolkovBot,
Chris.selwyn, Scorpiondiain, Umar420e, MenasimBot, Loor39, Lunadesign, Philip Trueman, JuneGloom07, TXiKiBoT, ALexL33, Sh
manu, Drake Redcrest, Gwinnadain, Rodowen, Cbrettin, Vinu Padmanabhan, Oxfordwang, Anna Lincoln, David.bar, Ziounclesi, Costela,
Katimawan2005, Neshom, Nave.notnilc, Enviroboy, Michael Frind, Jehorn, Jxw13, Kbrose, Nubiatech, Nestea Zen, ToePeu.bot, Panagos-
TheOther, Brech~enwiki, Smsarmad, TediousFellow, Danielgrad, Flyer22 Reborn, Cjdaniel, Oxymoron83, Jjinno, Rdone, Alt-sysrq, Ngrif-
feth, OKBot, Aprice457, StaticGull, WikiLaurent, Savagejumpin, Sasha Callahan, Explicit, Youpilot, ClueBot, The Thing That Should
Not Be, Mild Bill Hiccup, DnetSvg, Blanchardb, Lucasbfr2, Alexbot, Jusdafax, Ciprian Dorin Craciun, PixelBot, Dregin1, Technobad-
ger, Pluknet, Kumarat9pm, Charles.partellow, Nedim.sh, Frederico1234, The-tenth-zdog, Cincaipatrin, Akshaymathur156, Johnuniq, Or-
doon, DumZiBoT, Darkicebot, Astronomerren, Nneuman, BodhisattvaBot, WikHead, StubbyT, Alexius08, TravisAF, Dsimic, Oxyacan-
thous, Maimai009, Addbot, Mortense, Ghettoblaster, Jgeer, Psyced, Mootros, Anichandran.mca, Scientus, CanadianLinuxUser, Leszek
Jańczuk, Graham.Fountain, MrOllie, Glane23, Torla42, Loukris, 5 albert square, IOLJeff, AgadaUrbanit, Numbo3-bot, Tide rolls, Ar-
senal9boi, Krano, Teles, Jarble, Quantumobserver, Luckas-bot, Yobot, Kartano, THEN WHO WAS PHONE?, AnotherNitPicker, Swis-
terTwister, Eric-Wester, Centrew, AnomieBOT, Jim1138, IRP, Piano non troppo, Shadowjain, Materialscientist, Ursushoribilis, Citation
bot, MithrasPriest, Mbruck, DirlBot, Nifky?, LilHelpa, Xqbot, Sergiodc, TechBot, Prashant.khodade, The Evil IP address, PlaysWithLife,
RodrigoCruzatti, RibotBOT, Oddeyed, شات صوتي, Shadowjams, Tstills, Kvmswitch42, Gmaran23, FrescoBot, Lokacit443, Rrazdan,
BenzolBot, Kwiki, Citation bot 1, Awy997, AstaBOTh15, 10metreh, Hamtechperson, Encognito, RedBot, MastiBot, PBSurf, HarrisonLi,
Fraxtil, Jandalhandler, Banej, Mohitjoshi999, Cwats124, Lam Kin Keung, Lotje, Longuniongirl, Rafalq, Rtclawson, Vrenator, PS3ninja,
MoreNet, Danielbarnabas, Some Wiki Editor, Ashwinsbhat, Jfmantis, RjwilmsiBot, Xaphnir, Scil100, WildBot, EmausBot, Zeroboo,
Ouimetch, John of Reading, Acather96, Velowiki, Dewritech, GoingBatty, RA0808, Urmajest, Smappy, Tommy2010, Wikipelli, Dcirovic,
Jasonanaggie, Ahson7, Ru.in.au, Kirelagin, Ancientphoenixians, Access Denied, DrHannibal216, Henriktudborg, Ocaasi, Thine Antique
Pen, Nateshwar kamlesh, L Kensington, Putdust, Ego White Tray, Cpaasch, L2d4y3, Venkatarun95, MacStep, A.upperwal, ClueBot NG,
Nimiew, Jack Greenmaven, Satellizer, GarryAnderson, Karthick.s5, FGont, BlackcurrantTea, Ltsampros2, JeffClarkis, Clark-gr, Help-
ful Pixie Bot, HMSSolent, Silverwindx, Calabe1992, Mtsz, MultWiki, BG19bot, Arnavchaudhary, Deepblue1, Iitywybmad, Northamer-
ica1000, Mrzehak, Neøn, Prakash mit, Compfreak7, Altaïr, Tony Tan, Chmarkine, Masud.pce, Fcp999, Jcarlos-causa, A1vast, Nikhil
raskar, Maclion, Talel Atias, BattyBot, David.moreno72, C10191, Padmini Gaur, Cyberbot II, Ych06391, Dexbot, Vshebordaev, Codename
Lisa, Hainesr2000, Lone boatman, Sethwm, Frosty, Kapilsharma15, Sfgiants1995, Wywin, Ekips39, Dave Braunschweig, DBhavsar709,
Camyoung54, Koszik, Srigaurav1986, Soham, Scornay, Moris560, AlexanderRedd, Kind Tennis Fan, Shrivas06, Luxure, WikiJackool,
St170e, Kieranmcgr, Valeritn, WaterSnail, User26954344524345, Jterminator, Zppix, Ravinskumar, ToonLucas22, Nbro, Bhussai3, My
Chemistry romantic, Gdccdg, Ee586tedtalk, Atombinary, GreenC bot, Clay your and Anonymous: 942
• Transmission medium Source: https://en.wikipedia.org/wiki/Transmission_medium?oldid=724232317 Contributors: Michael Hardy,
Stevenj, Reddi, Big Bob the Finder, Bearcat, Beland, Kevin Rector, Discospinster, Xezbeth, Aude, Giraffedata, Stemonitis, NebY, BjKa,
KFP, Srleffler, Chobot, Commander Nemet, YurikBot, Schadel, Jenblower, Salsb, Malcolma, 2over0, Reyk, Johnpseudo, Mebden, Smack-
Bot, Rojomoke, Gilliam, Daniel.Cardenas, Iridescent, IvanLanin, JohnTechnologist, Bmk, Slazenger, Future Perfect at Sunrise, Thijs!bot,
Barticus88, Guy Macon, Harryzilber, Kevinmon, Oicumayberight, Mårten Berglund, J.delanoy, Maurice Carbonaro, AntiSpamBot, Win-
terSpw, Rexparry sydney, VolkovBot, The Original Wildbear, Kbrose, SieBot, Jojalozzo, ClueBot, Ljasie, Excirial, PixelBot, Addbot,
OlEnglish, Legobot, Yobot, Gobbleswoggler, TestEditBot, AmritasyaPutra, DemocraticLuntz, Materialscientist, Isheden, AbigailAber-
nathy, NOrbeck, GrouchoBot, Erik9bot, FrescoBot, Recognizance, Pinethicket, HRoestBot, 10metreh, Tom.Reding, Tinton5, Miracle
Pen, Rzuwig, EmausBot, Plaidoa, Gwen-chan, ClueBot NG, Cntras, Widr, FoCuSandLeArN, Group9 tele, Crystallizedcarbon, Adyaman,
King dboyj and Anonymous: 76
• Transport layer Source: https://en.wikipedia.org/wiki/Transport_layer?oldid=715128996 Contributors: Rmhermen, Aldie, Nealmcb, Nix-
dorf, MartinHarper, Looxix~enwiki, Jimfbleak, Zoicon5, SatyrTN, Jnc, Fredrik, BenBreen2003, Kadin2048, Altenmann, Costello, Liotier,
Mirv, Kwi, Yacht, Hadal, Giftlite, 0x0077BE, AlistairMcMillan, Alvestrand, LiDaobing, JimR, ZeroOne, Limbo socrates, Alansohn, Guy
Harris, Conan, Mmmready, Suruena, Marcan, Kbolino, Lost.goblin, ScottDavis, JHolman, Hullbr3ach~enwiki, Fred Bradstadt, Gavinatkin-
424 CHAPTER 70. X.25
son, MTC, Adoniscik, YurikBot, Borgx, RobotE, Phantomsteve, Hede2000, Yyy, PrologFan, Bota47, Xpclient, LeonardoRob0t, Kung-
fuadam, Eggnock, SmackBot, Commander Keane bot, Gilliam, Andreyf, MalafayaBot, Robth, Bigmantonyd, Gurnec, Butko, Jec, Kvng,
Choudesh, Andrew Hampe, Kkkdc, FatalError, CmdrObot, Imcdnzl, Phatom87, Quibik, Wmasterj, AntiVandalBot, Widefox, JAnDbot,
Enjoi4586, GermanX, Ovy, JonThackray, J.delanoy, Mange01, Inwind, Izno, Idioma-bot, Brettmeyers, Butlerm, TXiKiBoT, Vipinhari,
Highlandsun, Kbrose, SieBot, YonaBot, Yintan, EnOreg, Tpvibes, Int21h, Retroguy90, Simon04, Tcmcfaul, Alexbot, Zac439, Razorflame,
1ForTheMoney, Johnuniq, Dgtsyb, Dsimic, Addbot, Jafeluv, SamatBot, Lightbot, Luckas Blade, Legobot, Luckas-bot, TaBOT-zerem,
AnomieBOT, Rubinbot, Ipatrol, Kingpin13, Materialscientist, MauritsBot, Xqbot, RibotBOT, Schw3rt, Fmunshi, Jeffrd10, Suffusion of
Yellow, EmausBot, Samjoopin, Rcsprinter123, ChuispastonBot, ClueBot NG, Dzlinker, Dave Braunschweig, BronsonP, Dough34, Adri-
anf0, SheikhMkashif and Anonymous: 145
• Tunneling protocol Source: https://en.wikipedia.org/wiki/Tunneling_protocol?oldid=737075295 Contributors: The Anome, Mjb, Kku,
CesarB, Palfrey, Rl, JidGom, Chealer, Kizor, Jtg, Subsolar, Fleminra, Cloud200, Mozzerati, MementoVivere, EagleOne, Sysy, FT2, Ebelu-
lar, Vsmith, Indil, Sietse Snel, Unquietwiki, Arthena, Hégésippe Cormier, Laug, Suruena, RJFJR, Larytet, Karnesky, Mindmatrix, Knuck-
les, Eyreland, Bruns, Lusitana, FlaBot, JYOuyang, Matt314, YurikBot, Bota47, Cavan, Jules.LT, Nachoman-au, GraemeL, Edgar181,
Yamaguchi , Jerome Charles Potts, SkipHuffman, NickPenguin, Zearin, Accurizer, Noahspurrier, Aleenf1, 16@r, Exlex, Negrulio,
Megajuice, Alessandro57, IronJohnSr, CmdrObot, ThreeBlindMice, Alexamies, Drummle, UncleBubba, Bposert, JamesAM, Hcberkowitz,
Ministry of Truth, JAnDbot, Enjoi4586, VoABot II, PierreCG, Mange01, Liangent, The MAZZTer, Starunj, Reelrt, VolkovBot, Rei-bot,
Jamelan, ErikWarmelink, Kbrose, Emesee, Ngriffeth, Klaus100, Chris D Heath, Gforce20, Plat'Home, PeterZacSmith, Skarebo, Dsimic,
Tclavel, Addbot, MrOllie, LaaknorBot, Surabh7, Jasper Deng, Erik Streb, Lightbot, EttAme, Luckas-bot, Riad.Bot~enwiki, Sourabhforu,
Mail2yogie, Materialscientist, ArthurBot, PabloCastellano, Ccostis, FrescoBot, Mr565, Kobekatt, Winterst, Xcvista, Jandalhandler, Lotje,
Silversatellite, EmausBot, Rolf the wolf, Dcirovic, Pazkooda, Noggo, Joshuaterrill, ClueBot NG, Watson1966, Rohitkalaskar, Popescu-
calin, Hayneskl43, Jamesx12345, Randomusername404, Captain Conundrum, Monochrome Monitor, Ugog Nizdast, Ginsuloft, TheHoster,
DrOfAwesomeness, Serypol, Brandont93 and Anonymous: 117
• User Datagram Protocol Source: https://en.wikipedia.org/wiki/User_Datagram_Protocol?oldid=737966456 Contributors: Damian Yer-
rick, Bryan Derksen, The Anome, Fubar Obfusco, Jtk, Mahjongg, Nixdorf, Alfio, Ronz, Александър, BAxelrod, Samuel~enwiki, Van-
ished user 5zariu3jisj0j4irj, Tpbradbury, Wkcheang, Itai, Gamera2, Shizhao, Tjdw, Robbot, Fredrik, RedWolf, Romanm, Modulatum,
PedroPVZ, Robbe~enwiki, Tea2min, Psb777, Giftlite, Fennec, Beefman, Reub2000, Gracefool, SWAdair, Matt Darby, Neilc, Gordoni,
Thray, Erik Garrison, Daniel Staal, Joachim Wuttke, RevRagnarok, JTN, Twinxor, Ardonik, Xezbeth, Alistair1978, Michael Zimmermann,
Mani1, Bender235, Djordjes, Plugwash, Joanjoc~enwiki, Kwamikagami, Mpeg4codec, Towel401, Krellis, Frodet, Terrycojones, Nroets,
Guy Harris, Ayeroxor, Rick Sidwell, Cburnett, Suruena, Cvalda, Voxadam, DSatz, Mindmatrix, ^demon, Hdante, Ashmoo, Graham87,
E090, BD2412, CraSH, Quiddity, Bruce1ee, Wiarthurhu, Fredrikh, Aapo Laitinen, Alvin-cs, DVdm, YurikBot, Borgx, Phantomsteve,
RussBot, Jengelh, Rsrikanth05, Voidxor, Zwobot, Falcon9x5, DeadEyeArrow, Eclipsed, Bota47, Bobstopper, E Wing, Tdangkhoa, Petri
Krohn, Rwwww, SmackBot, InverseHypercube, The Monster, Od Mishehu, Golwengaud, Smeggysmeg, BenAveling, CrookedAsterisk,
Cassan, MLeb, DavidSol, Misterdom, A5b, Jóna Þórunn, Paulish, SashatoBot, Breno, Ben Moore, Clalansingh, Kvng, Johnny 0, Ginkgo100,
Teemuk, Conrad.Irwin, Burisch, Phatom87, Reywas92, Sammydee, UncleBubba, Thijs!bot, JNighthawk, DesTroy, AntiVandalBot, Wide-
fox, Opelio, Esmond.pitt, JAnDbot, Dicentra, CombatWombat42, Enjoi4586, Ideoplex, Recurring dreams, 28421u2232nfenfcenc, Kgfleis-
chmann, Mike6271, Anaxial, Gthm159, Mange01, Public Menace, Gzkn, Sci13960, Aram33~enwiki, 83d40m, STBotD, Zara1709, Mike
V, Gnipahellir, AlnoktaBOT, Vinu Padmanabhan, DennyColt, Kovianyo, Spearsall, Teh roflmaoer, Chenzw, Andrew Kember, Kbrose, S-
n-ushakov, SieBot, Nubiatech, Acasson, Eagleal, R2richar, Mam711, Bentogoa, Oxymoron83, Jjinno, Jdaloner, FrisoB~enwiki, Bane1998,
NHSKR, ClueBot, Uncle Milty, Hitherebrian, WestwoodMatt, Pelesl, Dfurbeck, Razorflame, The-tenth-zdog, Cincaipatrin, Chiefmanzzz,
Upadhyaykc, Johnuniq, Delt01, Mwholt, BodhisattvaBot, SilvonenBot, Dsimic, Samersarhan83, Jncraton, MagnusA.Bot, Jasper Deng,
Тиверополник, Lightbot, Legobot, Yobot, Eduardopinheiro, KamikazeBot, AnomieBOT, Rubinbot, 1exec1, Fromageestciel, Flewis, Ma-
terialscientist, ArthurBot, Gsmgm, Xqbot, Locos epraix, Fightin' Phillie, Omnipaedista, RibotBOT, Kyng, Locobot, Ll1324, Frozenevolu-
tion, Uncopy, Plindemann, I dream of horses, RedBot, Lissajous, Cnwilliams, FoxBot, Headbangerkenny, Fox Wilson, Rimidalw, The
Utahraptor, WildBot, Alison22, EmausBot, Ouimetch, WikitanvirBot, Bongoramsey, Bobby Caudwell, Wingman4l7, Tolly4bolly, Ir-
rypride, Gorryf, ChuispastonBot, Pqqq1, Teapeat, Rememberway, ClueBot NG, Fudgefr, Dkogh, Theopolisme, Ssd293, Benqmonitor,
Helpful Pixie Bot, BG19bot, Beacon11, McZusatz, Chmarkine, Timothyjaden, Dhruvv7, Achowat, IRedRat, PatheticCopyEditor, Popes-
cucalin, Pratyya Ghosh, Yelojakit, Areh adeola, TechyOne, Rotlink, Dave Braunschweig, Fakenerd, Jsztabzyb, ArmbrustBot, MortenZdk,
Psycoconnetic, Jackmcbarn, Dough34, Rubenprot, Pall123ban, KasparBot, Blasher, Er.adk and Anonymous: 350
• World Wide Web Consortium Source: https://en.wikipedia.org/wiki/World_Wide_Web_Consortium?oldid=735723846 Contributors:
Peter Winnberg, Lee Daniel Crocker, The Anome, Larry Sanger, Christian List, Mjb, Bdesham, Michael Hardy, Tompagenet, Delir-
ium, Tregoweth, CesarB, ArnoLagrange, Mac, Nanshu, Den fjättrade ankan~enwiki, Kingturtle, LittleDan, Harvester, Jonik, Mxn,
Hashar, Andrewman327, Pedant17, Shizhao, David.Monniaux, Robbot, Chealer, Pigsonthewing, Moondyne, Yacht, Gidonb, Baojie,
Alba, Carlj7, Diberri, Ancheta Wis, Giftlite, Philwiki, DocWatson42, Sjh~enwiki, Lisbk, Itpastorn, Enkrates, Khalid hassani, Golbez,
Zhouxiaohu~enwiki, LiDaobing, Oneiros, Mzajac, Icairns, Almit39, Squash, Gregorio~enwiki, Kathar, Wikiacc, Smyth, Night Gyr, ES-
kog, Evice, El C, MITalum, Larryv, Helix84, Pearle, Wayfarer, ClementSeveillac, Milant, A.M.~enwiki, Hu, Suruena, Josh3736, Zor-
blek, Brookie, Shimeru, NantonosAedui, Simetrical, Wedesoft, Georgia guy, Miaow Miaow, Duncan.france, Rchamberlain, Toussaint,
TNLNYC, Paxsimius, Graham87, Scottkeir, Phoenix-forgotten, Nightscream, MZMcBride, Infosocialist, ElKevbo, Dmccreary, Ttwaring,
Sleepyhead81, DirkvdM, FlaBot, Margosbot~enwiki, AndriuZ, Alphachimp, Ahunt, Chobot, Skraz, UkPaolo, YurikBot, RussBot, Arado,
Spainhour, Ansell, Manop, CambridgeBayWeather, WulfTheSaxon, Jeh, Ms2ger, Josh3580, ZabMilenko, Whaa?, Rathfelder, Toniher,
DEng, Katieh5584, GrinBot~enwiki, Masonbarge, SmackBot, Renku, Sebesta, Gilliam, Anwar saadat, Hugoh, Persian Poet Gal, Emu-
farmers, JF Manning, Daviddec, Vbigdeli, TheRaven7, Rrburke, Jcravens42, Greenshed, Edivorce, Mr.Z-man, Cybercobra, Nakon, Al-
ibabs, DDima, Vina-iwbot~enwiki, Ohconfucius, SashatoBot, Zearin, Gobonobo, 16@r, Hu12, IvanLanin, Aeons, Dka1, Tawkerbot2,
Wspencer11, Dennylin93, Linuxerist, Patchouli, Comrade42, Nczempin, Argon233, Old Guard, Simeon, Steveliang, Krauss, Meno25,
Mpidge, Epbr123, Joshuagay, Qwyrxian, Monkle, Marek69, Cplot, I already forgot, AntiVandalBot, Ministry of Truth, Widefox, Azbond-
girl, Melmelmarms, Jatkins, Cic, Everton1984, DominiqueHazaelMassieux, Jodi.a.schneider, Lijnema, Oicumayberight, B9 humming-
bird hovering, AVRS, CommonsDelinker, Ramesh Chandra, JMJimmy, Hanteng, Javawizard, Ian.thomson, Arite, Ignatzmice, Frequen-
cydip, Chronorick, Josh Tumath, Paolo Baggia, Bonadea, Jacroe, Technopat, Donatus, Qxz, Seanho, Andy Dingley, Wegates, Synthe-
bot, Legoktm, S.Örvarr.S, SieBot, Tiddly Tom, Leahcim nai, Jack Merridew, Pao662~enwiki, NO ACMLM,AND XKEPPER SUCK
!, Triwbe, Execvator, Pxma, MiNombreDeGuerra, Lightmouse, Kanonkas, Leranedo, The Thing That Should Not Be, Joshi1983, Su-
perHamster, TarzanASG, Alexbot, PixelBot, Adimovk5, Rhododendrites, Dmyersturnbull, Amerdeni, DumZiBoT, JRWoodwardMSW,
BarretB, XLinkBot, Dthomsen8, Safepage, Addbot, Ghettoblaster, Some jerk on the Internet, Mabdul, Twinzor, Favonian, Krano, Luckas
Blade, Gail, Rojypala, Nickscoco, Luckas-bot, Yobot, Bunnyhop11, Fraggle81, Evereyes, KamikazeBot, AnomieBOT, Joe2008, Galou-
70.11. TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES 425
bet, Xqbot, Almabot, Amaury, Bpmcneilly, Raznice, Redrose64, Jonesey95, Meaghan, Jonkerz, Lotje, KarlDubost, Jskhuman, Yondon-
jamts, Wolfhoundfeet, Sleepinginisgivingin, EmausBot, Goswamir14, Jesmania, D'oh!, Beware podpeople, ArtBarstow, Gewild, Between-
Myths, Petrb, ClueBot NG, Youngdesigner, Widr, Radiojoe329, Helpful Pixie Bot, Wbm1058, ARIENGGO, Bmusician, MusikAn-
imal, LuLxFakie, 100arab.saurabh, Whym, BattyBot, Liam987, Wrcsuk, Msiderwicz, Rajesh.kk99, Koaliemoon, Lugia2453, Frosty,
Goatcheese3, Jadephx, Enock4seth, GRIFFnDOOR, RaphaelQS, General534, KaseyPollard, TheCommanderOf, Monkbot, Nutty151,
C1776M, Mxschumacher, TheMagikCow, TheFreeSeven, Tymon.r, Piglatin2369, Kyawthuya1089, Zaqpdos6969, Kripmo, Jerodlycett,
StinkyBrownApple, Smwrd, Bekandmike, Mnestis.wiki, Craft6789 and Anonymous: 264
• X.25 Source: https://en.wikipedia.org/wiki/X.25?oldid=736868114 Contributors: Aldie, Maury Markowitz, Vaughan, Ahoerstemeier,
Ronz, Yaronf, Smack, Crissov, Itai, Finlay McWalter, Lumos3, Kizor, Stewartadcock, Hella~enwiki, Gidonb, Hadal, Xanzzibar, Vac-
uum, Itpastorn, Gzornenplatz, VampWillow, Tagishsimon, Karlward, Beland, Bumm13, Karl Dickman, MementoVivere, Abdull, Rich
Farmbrough, Guanabot, Wk muriithi, YUL89YYZ, Eric Shalov, Ray Dassen, MarkWahl, Nwsmith, Ivansanchez, Helix84, Guy Har-
ris, RoySmith, GL, Stephan Leeds, Danhash, RJII, Blaxthos, Ilario, Tabletop, Eyreland, Commking, Haikupoet, Rjwilmsi, Gary Brown,
SAK, FlaBot, Ewlyahoocom, Overand, YurikBot, NTBot~enwiki, Gaius Cornelius, Barberio, Mortein, Mikeroetto, SmackBot, Reedy,
Bernard François, Chris the speller, GK tramrunner, Dvermeirre, Villarinho, JonHarder, Adamantios, Kotul, HarisM, Sparky-sama, Chari-
vari, SashatoBot, Dave314159, Deceglie, Kvng, Huntscorpio, Prof 7, Caomhin, Mblumber, Gogo Dodo, Daenney, Quibik, Thijs!bot,
Hcberkowitz, Headbomb, Dawnseeker2000, Cocjh1, KMeyer, Dougher, IrishFlukey, JAnDbot, PrimroseGuy, Scostas, CommonsDelinker,
Mange01, ISC PB, Cpiral, Birczanin, VolkovBot, Vrac, Kurgus, TXiKiBoT, Dermots, Gbuchana, BotKung, Kbrose, SieBot, Dialate,
LeadSongDog, Lightmouse, CharlesGillingham, Ken123BOT, EoGuy, Kanchanghavle, Alexbot, PixelBot, IlliniFlag, Dgtsyb, Addbot,
Pieman196, Tonkie67, Enduser, Yobot, AnomieBOT, Citation bot, LilHelpa, Xqbot, Giddeon Fox, FrescoBot, Pepper, Merlion444, Fro-
mOrleans, John of Reading, Orphan Wiki, RFClover, The Mysterious El Willstro, Jasonanaggie, ZéroBot, Westley Turner, Jgoodchild,
Ermishin, ChuispastonBot, ClueBot NG, Wdchk, Helpful Pixie Bot, BG19bot, Doodlebug777, Leikai Meetei, Cwobeel, Mogism, Cer-
abot~enwiki, Comp.arch, Monkbot, KasparBot and Anonymous: 106
70.11.2 Images
• File:1990_CPA_6190.jpg Source: https://upload.wikimedia.org/wikipedia/commons/7/77/1990_CPA_6190.jpg License: Public domain
Contributors: http://s-collection.com.ua/ru_co1_marki_sssr_1990_g_html.html Original artist: Post of Soviet Union.
• File:3_Park_Avenue.JPG Source: https://upload.wikimedia.org/wikipedia/commons/0/0c/3_Park_Avenue.JPG License: CC-BY-SA-
3.0 Contributors: Transferred from en.wikipedia. Original artist: ButtonwoodTree at en.wikipedia
• File:4_bit_counter.svg Source: https://upload.wikimedia.org/wikipedia/commons/7/76/4_bit_counter.svg License: Public domain Con-
tributors: Own work Original artist: Gargan
• File:8bit-dynamiclist_(reversed).gif Source: https://upload.wikimedia.org/wikipedia/commons/c/cc/8bit-dynamiclist_%28reversed%
29.gif License: CC-BY-SA-3.0 Contributors: This file was derived from: 8bit-dynamiclist.gif
Original artist: Seahen, User:Rezonansowy
• File:A_syntactic_parse_of_\char"0022\relax{}Alfred_spoke\char"0022\relax{}_under_the_dependency_formalism..png
Source: https://upload.wikimedia.org/wikipedia/commons/b/bc/A_syntactic_parse_of_%22Alfred_spoke%22_under_the_dependency_
formalism..png License: CC BY-SA 4.0 Contributors: Own work Original artist: Christian Nassif-Haynes
• File:After_earthquake_INGV_site_down_-_5_April_2009.jpg Source: https://upload.wikimedia.org/wikipedia/commons/b/bf/
After_earthquake_INGV_site_down_-_5_April_2009.jpg License: CC BY 2.0 Contributors: After earthquake INGV site down Original
artist: Pietro Zanarini
• File:Alan_Turing.jpg Source: https://upload.wikimedia.org/wikipedia/commons/5/57/Alan_Turing.jpg License: CC BY 2.0 Contribu-
tors: Alan Turing Original artist: Jon Callas from San Jose, USA
• File:Alexandra_Palace_mast.JPG Source: https://upload.wikimedia.org/wikipedia/commons/3/30/Alexandra_Palace_mast.JPG Li-
cense: CC-BY-SA-3.0 Contributors: Transferred from en.wikipedia to Commons by Oxyman using CommonsHelper. Original artist:
Angmering at English Wikipedia
• File:Ambox_important.svg Source: https://upload.wikimedia.org/wikipedia/commons/b/b4/Ambox_important.svg License: Public do-
main Contributors: Own work, based off of Image:Ambox scales.svg Original artist: Dsmurat (talk · contribs)
• File:Amfm3-en-de.gif Source: https://upload.wikimedia.org/wikipedia/commons/a/a4/Amfm3-en-de.gif License: CC BY-SA 2.5 Con-
tributors: Own work Original artist: Berserkerus
• File:Android_5.0-en.png Source: https://upload.wikimedia.org/wikipedia/commons/1/1b/Android_5.0-en.png License: Apache License
2.0 Contributors: Android 5.0 “Lollipop” Original artist: NikoM
• File:Antenna.jpg Source: https://upload.wikimedia.org/wikipedia/commons/7/76/Antenna.jpg License: CC BY 2.5 Contributors: Own
work Original artist: Yonatan Horan
• File:AppleTalk_logo_from_Control_Panel.gif Source: https://upload.wikimedia.org/wikipedia/en/8/86/AppleTalk_logo_from_
Control_Panel.gif License: Fair use Contributors: http://applemuseum.bott.org/sections/os.html Original artist: Apple Inc
• File:Apple_LocalTalk_box_interior_1.jpg Source: https://upload.wikimedia.org/wikipedia/commons/b/b7/Apple_LocalTalk_box_
interior_1.jpg License: CC BY-SA 3.0 Contributors: Own work Original artist: DMahalko / Dale Mahalko
• File:Apple_LocalTalk_box_interior_2_-_auto_termination_switch.jpg Source: https://upload.wikimedia.org/wikipedia/commons/
8/8c/Apple_LocalTalk_box_interior_2_-_auto_termination_switch.jpg License: CC BY-SA 3.0 Contributors: Own work Original artist:
DMahalko / Dale Mahalko
• File:Apple_Macintosh_Desktop.png Source: https://upload.wikimedia.org/wikipedia/en/5/50/Apple_Macintosh_Desktop.png License:
? Contributors:
unknown
Original artist: ?
426 CHAPTER 70. X.25
org/wikipedia/commons/thumb/9/90/Open_Access_logo_PLoS_white_green.svg/9px-Open_Access_logo_PLoS_white_green.svg.png'
width='9' height='14' srcset='//upload.wikimedia.org/wikipedia/commons/thumb/9/90/Open_Access_logo_PLoS_white_green.svg/
14px-Open_Access_logo_PLoS_white_green.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/9/90/Open_Access_
logo_PLoS_white_green.svg/18px-Open_Access_logo_PLoS_white_green.svg.png 2x' data-file-width='640' data-file-height='1000'
/></a>
Original artist:
This version:Trappist_the_monk (talk) (Uploads)
• File:Free_and_open-source_software_logo_(2009).svg Source: https://upload.wikimedia.org/wikipedia/commons/3/31/Free_and_
open-source_software_logo_%282009%29.svg License: Public domain Contributors: FOSS Logo.svg Original artist: Free Software Portal
Logo.svg (FOSS Logo.svg): ViperSnake151
• File:Front_Z9_2094.jpg Source: https://upload.wikimedia.org/wikipedia/commons/2/21/Front_Z9_2094.jpg License: Public domain
Contributors: Own work Original artist: Ing. Richard Hilber
• File:Fsm_Moore_model_door_control.svg Source: https://upload.wikimedia.org/wikipedia/commons/7/71/Fsm_Moore_model_door_
control.svg License: Public domain Contributors: Vectorized version of File:Door moore de.png Original artist: Saman
• File:Fsm_mealy_model_door_control.svg Source: https://upload.wikimedia.org/wikipedia/commons/7/72/Fsm_mealy_model_door_
control.svg License: Public domain Contributors: Vectorized version of File:Door mealy example de.png Original artist: Saman
• File:Fsm_parsing_word_nice.svg Source: https://upload.wikimedia.org/wikipedia/commons/a/a8/Fsm_parsing_word_nice.svg License:
Public domain Contributors: en:Image:Fsm parsing word nice.jpg Original artist: en:User:Thowa, redrawn by User:Stannered
• File:FullDuplex.JPG Source: https://upload.wikimedia.org/wikipedia/commons/7/72/FullDuplex.JPG License: Public domain Contribu-
tors: Transferred from en.wikipedia to Commons. Original artist: Greggreggreg at English Wikipedia
• File:GPS_Receivers.jpg Source: https://upload.wikimedia.org/wikipedia/commons/6/6b/GPS_Receivers.jpg License: CC-BY-SA-3.0
Contributors: ? Original artist: ?
• File:Globe_of_letters.svg Source: https://upload.wikimedia.org/wikipedia/commons/d/de/Globe_of_letters.svg License: LGPL Contrib-
utors:
• <a href='//commons.wikimedia.org/wiki/File:Gnome-globe.svg' class='image'><img alt='' src='https://upload.
wikimedia.org/wikipedia/commons/thumb/f/f3/Gnome-globe.svg/120px-Gnome-globe.svg.png' width='120' height='120'
srcset='https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Gnome-globe.svg/180px-Gnome-globe.svg.png 1.5x,
https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Gnome-globe.svg/240px-Gnome-globe.svg.png 2x' data-file-
width='48' data-file-height='48' /></a>
Gnome-globe.svg
• <a href='//commons.wikimedia.org/wiki/File:Globe_of_letters.png' class='image'><img alt='' src='https://upload.
wikimedia.org/wikipedia/commons/thumb/6/62/Globe_of_letters.png/120px-Globe_of_letters.png' width='120' height='97'
srcset='https://upload.wikimedia.org/wikipedia/commons/6/62/Globe_of_letters.png 1.5x' data-file-width='144' data-file-
height='116' /></a>
Globe of letters.png
Original artist: Seahen
• File:Great_Seal_of_the_United_States_(obverse).svg Source: https://upload.wikimedia.org/wikipedia/commons/5/5c/Great_Seal_
of_the_United_States_%28obverse%29.svg License: Public domain Contributors: Extracted from PDF version of Our Flag, available here
(direct PDF URL here.) Original artist: U.S. Government
• File:HTML.svg Source: https://upload.wikimedia.org/wikipedia/commons/8/84/HTML.svg License: CC BY-SA 2.5 Contributors:
HTML.svg Original artist: Dreftymac
• File:HTML5-logo.svg Source: https://upload.wikimedia.org/wikipedia/commons/6/61/HTML5_logo_and_wordmark.svg License: CC
BY 3.0 Contributors: Official HTML5 logo by W3C. Licensed under the CC-by 3.0 Original artist: W3C
• File:HTML_Example_Code.png Source: https://upload.wikimedia.org/wikipedia/en/9/94/HTML_Example_Code.png License: CC-
BY-SA-3.0 Contributors:
Own work
Original artist:
Zafiraman
• File:HalfDuplex.JPG Source: https://upload.wikimedia.org/wikipedia/commons/b/b3/HalfDuplex.JPG License: Public domain Contrib-
utors: Transferred from en.wikipedia to Commons. Original artist: Greggreggreg at English Wikipedia
• File:Hash_table_3_1_1_0_1_0_0_SP.svg Source: https://upload.wikimedia.org/wikipedia/commons/7/7d/Hash_table_3_1_1_0_1_0_
0_SP.svg License: CC BY-SA 3.0 Contributors: Own work Original artist: Jorge Stolfi
• File:Http_request_telnet_ubuntu.png Source: https://upload.wikimedia.org/wikipedia/commons/c/c6/Http_request_telnet_ubuntu.
png License: Public domain Contributors: Own work Original artist: TheJosh
• File:IBM360-65-1.corestore.jpg Source: https://upload.wikimedia.org/wikipedia/commons/6/6a/IBM360-65-1.corestore.jpg License:
CC-BY-SA-3.0 Contributors: http://www.corestore.org/36065-1.jpg Original artist: Michael J. Ross