An internationally best-selling, conceptual introduction to the TCP/IP protocols and Internetworking, this book interweaves a clear discussion of fundamentals and scientific principles with details and examples drawn from the latest technologies. Leading author Douglas Comer covers layering and packet formats for all the Internet protocols, includingTCP, IPv4, IPv6, DHCP, and DNS. In addition, the text explains new trends in Internet systems, including packet classification, Software Defined Networking (SDN), and mesh protocols used in The Internet of Things.
The text is appropriate for individuals interested in learning more about TCP/IP protocols, Internet architecture, and current networking technologies, as well as engineers who build network systems. It is suitable for junior to graduate-level courses in Computer Networks, Data Networks, Network Protocols, and Internetworking.
Produktinformation
- Utgivningsdatum2013-07-18
- Mått188 x 237 x 30 mm
- Vikt1 080 g
- FormatInbunden
- SpråkEngelska
- Antal sidor744
- Upplaga6
- FörlagPearson Education
- ISBN9780136085300
Tillhör följande kategorier
Dr. Douglas Comer, Distinguished Professor of Computer Science at Purdue University and former VP of Research at Cisco, is an internationally recognized expert on computer networking, the TCP/IP protocols, and the Internet. The author of numerous refereed articles and technical books, he is a pioneer in the development of curriculum and laboratories for research and education.A prolific author, Comer’s popular books have been translated into over 15 languages, and are used in industry as well as computer science, engineering, and business departments around the world. His landmark three-volume series Internetworking With TCP/IP revolutionized networking and network education. His textbooks and innovative laboratory manuals have and continue to shape graduate and undergraduate curricula.The accuracy and insight of Dr. Comer’s books reflect his extensive background in computer systems. His research spans both hardware and software. He has created a complete operating system, written device drivers, and implemented network protocol software for conventional computers as well as network processors. The resulting software has been used by industry in a variety of products.Comer has created and teaches courses on network protocols and computer technologies for a variety of audiences, including courses for engineers as well as academic audiences. His innovative educational laboratories allow him and his students to design and implement working prototypes of large, complex systems, and measure the performance of the resulting prototypes. He continues to teach at industries, universities, and conferences around the world. In addition, Comer consults for industry on the design of computer networks and systems.For over eighteen years, Professor Comer served as editor-in-chief of the research journal Software — Practice and Experience. He is a Fellow of the ACM, a Fellow of the Purdue Teaching Academy, and a recipient of numerous awards, including a Usenix Lifetime Achievement award.Additional information can be found at: www.cs.purdue.edu/people/comerInformation about Comer’s books can be found at: www.comerbooks.com
- Foreword xxiiiPreface xxvChapter 1 Introduction And Overview 11.1 The Motivation For Internetworking 11.2 The TCP/IP Internet 21.3 Internet Services 21.4 History And Scope Of The Internet 61.5 The Internet Architecture Board 71.6 The IAB Reorganization 81.7 Internet Request For Comments (RFCs) 81.8 Internet Growth 91.9 Transition To IPv6 121.10 Committee Design And The New Version of IP 121.11 Relationship Between IPv4 And IPv6 131.12 IPv6 Migration 141.13 Dual Stack Systems 151.14 Organization Of The Text 151.15 Summary 16Chapter 2 Overview Of Underlying Network Technologies 192.1 Introduction 192.2 Two Approaches To Network Communication 202.3 WAN And LAN 212.4 Hardware Addressing Schemes 212.5 Ethernet (IEEE 802.3) 222.6 Wi-Fi (IEEE 802.11) 262.7 ZigBee (IEEE 802.15.4) 262.8 Optical Carrier And Packet Over SONET (OC, POS) 272.9 Point-To-Point Networks 282.10 VLAN Technology And Broadcast Domains 282.11 Bridging 292.12 Congestion And Packet Loss 302.13 Summary 31Chapter 3 Internetworking Concept And Architectural Model 353.1 Introduction 353.2 Application-Level Interconnection 353.3 Network-Level Interconnection 373.4 Properties Of The Internet 383.5 Internet Architecture 393.6 Interconnection Of Multiple Networks With IP Routers 393.7 The User's View 413.8 All Networks Are Equal 423.9 The Unanswered Questions 433.10 Summary 43Chapter 4 Protocol Layering 474.1 Introduction 474.2 The Need For Multiple Protocols 474.3 The Conceptual Layers Of Protocol Software 494.4 Functionality Of The Layers 494.5 ISO 7-Layer Reference Model 504.6 X.25 And Its Relation To The ISO Model 514.7 The TCP/IP 5-Layer Reference Model 524.8 Locus Of Intelligence 564.9 The Protocol Layering Principle 574.10 The Layering Principle Applied To A Network 584.11 Layering In Mesh Networks 604.12 Two Important Boundaries In The TCP/IP Model 624.13 Cross-Layer Optimizations 634.14 The Basic Idea Behind Multiplexing And Demultiplexing 644.15 Summary 66Chapter 5 Internet Addressing 695.1 Introduction 695.2 Universal Host Identifiers 695.3 The Original IPv4 Classful Addressing Scheme 715.4 Dotted Decimal Notation Used With IPv4 725.5 IPv4 Subnet Addressing 725.6 Fixed Length IPv4 Subnets 755.7 Variable-Length IPv4 Subnets 775.8 Implementation Of IPv4 Subnets With Masks 775.9 IPv4 Subnet Mask Representation And Slash Notation 785.10 The Current Classless IPv4 Addressing Scheme 795.11 IPv4 Address Blocks And CIDR Slash Notation 825.12 A Classless IPv4 Addressing Example 825.13 IPv4 CIDR Blocks Reserved For Private Networks 835.14 The IPv6 Addressing Scheme 845.15 IPv6 Colon Hexadecimal Notation 845.16 IPv6 Address Space Assignment 855.17 Embedding IPv4 Addresses In IPv6 For Transition 865.18 IPv6 Unicast Addresses And /64 875.19 IPv6 Interface Identifiers And MAC Addresses 885.20 IP Addresses, Hosts, And Network Connections 895.21 Special Addresses 905.22 Weaknesses In Internet Addressing 945.23 Internet Address Assignment And Delegation Of Authority 965.24 An Example IPv4 Address Assignment 965.25 Summary 98Chapter 6 Mapping Internet Addresses To Physical Addresses (ARP) 1016.1 Introduction 1016.2 The Address Resolution Problem 1016.3 Two Types Of Hardware Addresses 1026.4 Resolution Through Direct Mapping 1026.5 Resolution In A Direct-Mapped Network 1036.6 IPv4 Address Resolution Through Dynamic Binding 1046.7 The ARP Cache 1056.8 ARP Cache Timeout 1066.9 ARP Refinements 1066.10 Relationship Of ARP To Other Protocols 1086.11 ARP Implementation 1086.12 ARP Encapsulation And Identification 1106.13 ARP Message Format 1106.14 Automatic ARP Cache Revalidation 1126.15 Reverse Address Resolution (RARP) 1126.16 ARP Caches In Layer 3 Switches 1136.17 Proxy ARP 1146.18 IPv6 Neighbor Discovery 1156.19 Summary 116Chapter 7 Internet Protocol: Connectionless Datagram Delivery (IPv4, 119IPv6)7.1 Introduction 1197.2 A Virtual Network 1197.3 Internet Architecture And Philosophy 1207.4 Principles Behind The Structure 1207.5 Connectionless Delivery System Characteristics 1217.6 Purpose And Importance Of The Internet Protocol 1227.7 The IP Datagram 1227.8 Datagram Type Of Service And Differentiated Services 1277.9 Datagram Encapsulation 1297.10 Datagram Size, Network MTU, and Fragmentation 1307.11 Datagram Reassembly 1347.12 Header Fields Used For Datagram Reassembly 1357.13 Time To Live (IPv4) And Hop Limit (IPv6) 1367.14 Optional IP Items 1377.15 Options Processing During Fragmentation 1417.16 Network Byte Order 1437.17 Summary 144Chapter 8 Internet Protocol: Forwarding IP Datagrams 1478.1 Introduction 1478.2 Forwarding In An Internet 1478.3 Direct And Indirect Delivery 1498.4 Transmission Across A Single Network 1508.5 Indirect Delivery 1518.6 Table-Driven IP Forwarding 1528.7 Next-Hop Forwarding 1538.8 Default Routes And A Host Example 1558.9 Host-Specific Routes 1568.10 The IP Forwarding Algorithm 1578.11 Longest-Prefix Match Paradigm 1588.12 Forwarding Tables And IP Addresses 1608.13 Handling Incoming Datagrams 1618.14 Forwarding In The Presence Of Broadcast And Multicast 1628.15 Software Routers And Sequential Lookup 1638.16 Establishing Forwarding Tables 1638.17 Summary 163Chapter 9 Internet Protocol: Error And Control Messages (ICMP) 1679.1 Introduction 1679.2 The Internet Control Message Protocol 1679.3 Error Reporting Vs. Error Correction 1699.4 ICMP Message Delivery 1709.5 Conceptual Layering 1719.6 ICMP Message Format 1719.7 Example ICMP Message Types Used With IPv4 And IPv6 1729.8 Testing Destination Reachability And Status (Ping) 1739.9 Echo Request And Reply Message Format 1749.10 Checksum Computation And The IPv6 Pseudo-Header 1759.11 Reports Of Unreachable Destinations 1769.12 ICMP Error Reports Regarding Fragmentation 1789.13 Route Change Requests From Routers 1789.14 Detecting Circular Or Excessively Long Routes 1809.15 Reporting Other Problems 1819.16 Older ICMP Messages Used At Startup 1829.17 Summary 182Chapter 10 User Datagram Protocol (UDP) 18510.1 Introduction 18510.2 Using A Protocol Port As An Ultimate Destination 18510.3 The User Datagram Protocol 18610.4 UDP Message Format 18710.5 Interpretation Of the UDP Checksum 18810.6 UDP Checksum Computation And The Pseudo-Header 18910.7 IPv4 UDP Pseudo-Header Format 18910.8 IPv6 UDP Pseudo-Header Format 19010.9 UDP Encapsulation And Protocol Layering 19010.10 Layering And The UDP Checksum Computation 19210.11 UDP Multiplexing, Demultiplexing, And Protocol Ports 19310.12 Reserved And Available UDP Port Numbers 19410.13 Summary 196Chapter 11 Reliable Stream Transport Service (TCP) 19911.1 Introduction 19911.2 The Need For Reliable Service 19911.3 Properties Of The Reliable Delivery Service 20011.4 Reliability: Acknowledgements And Retransmission 20111.5 The Sliding Window Paradigm 20311.6 The Transmission Control Protocol 20511.7 Layering, Ports, Connections, And Endpoints 20611.8 Passive And Active Opens 20811.9 Segments, Streams, And Sequence Numbers 20811.10 Variable Window Size And Flow Control 20911.11 TCP Segment Format 21011.12 Out Of Band Data 21211.13 TCP Options 21211.14 TCP Checksum Computation 21411.15 Acknowledgements, Retransmission, And Timeouts 21611.16 Accurate Measurement Of Round Trip Samples 21811.17 Karn's Algorithm And Timer Backoff 21911.18 Responding To High Variance In Delay 22011.19 Response To Congestion 22311.20 Fast Recovery And Other Response Modifications 22511.21 Explicit Feedback Mechanisms (SACK and ECN) 22711.22 Congestion, Tail Drop, And TCP 22811.23 Random Early Detection (RED) 22911.24 Establishing A TCP Connection 23111.25 Initial Sequence Numbers 23211.26 Closing a TCP Connection 23311.27 TCP Connection Reset 23411.28 TCP State Machine 23511.29 Forcing Data Delivery 23611.30 Reserved TCP Port Numbers 23711.31 Silly Window Syndrome And Small Packets 23811.32 Avoiding Silly Window Syndrome 23911.33 Buffer Bloat And Its Effect On Latency 24211.34 Summary 243Chapter 12 Routing Architecture: Cores, Peers, And Algorithms 24712.1 Introduction 24712.2 The Origin Of Forwarding Tables 24812.3 Forwarding With Partial Information 24912.4 Original Internet Architecture And Cores 25112.5 Beyond The Core Architecture To Peer Backbones 25312.6 Automatic Route Propagation And A FIB 25412.7 Distance-Vector (Bellman-Ford) Routing 25512.8 Reliability And Routing Protocols 25712.9 Link-State (SPF) Routing 25812.10 Summary 259Chapter 13 Routing Among Autonomous Systems (BGP) 26313.1 Introduction 26313.2 The Scope Of A Routing Update Protocol 26313.3 Determining A Practical Limit On Group Size 26413.4 A Fundamental Idea: Extra Hops 26613.5 Autonomous System Concept 26713.6 Exterior Gateway Protocols And Reachability 26813.7 BGP Characteristics 26913.8 BGP Functionality And Message Types 27013.9 BGP Message Header 27113.10 BGP OPEN Message 27213.11 BGP UPDATE Message 27313.12 Compressed IPv4 Mask-Address Pairs 27413.13 BGP Path Attributes 27413.14 BGP KEEPALIVE Message 27613.15 Information From The Receiver's Perspective 27713.16 The Key Restriction Of Exterior Gateway Protocols 27813.17 The Internet Routing Architecture And Registries 28013.18 BGP NOTIFICATION Message 28013.19 BGP Multiprotocol Extensions For IPv6 28113.20 Multiprotocol Reachable NLRI Attribute 28313.21 Internet Routing And Economics 28413.22 Summary 285Chapter 14 Routing Within An Autonomous System (RIP, RIPng, 289OSPF, IS-IS)14.1 Introduction 28914.2 Static Vs. Dynamic Interior Routes 28914.3 Routing Information Protocol (RIP) 29314.4 Slow Convergence Problem 29414.5 Solving The Slow Convergence Problem 29614.6 RIP Message Format (IPv4) 29714.7 Fields In A RIP Message 29914.8 RIP For IPv6 (RIPng) 29914.9 The Disadvantage Of Using Hop Counts 30114.10 Delay Metric (HELLO) 30114.11 Delay Metrics, Oscillation, And Route Flapping 30214.12 The Open SPF Protocol (OSPF) 30314.13 OSPFv2 Message Formats (IPv4) 30514.14 Changes In OSPFv3 To Support IPv6 31014.15 IS-IS Route Propagation Protocol 31214.16 Trust And Route Hijacking 31314.17 Gated: A Routing Gateway Daemon 31314.18 Artificial Metrics And Metric Transformation 31414.19 Routing With Partial Information 31514.20 Summary 315Chapter 15 Internet Multicasting 31915.1 Introduction 31915.2 Hardware Broadcast 31915.3 Hardware Multicast 32015.4 Ethernet Multicast 32115.5 The Conceptual Building Blocks Of Internet Multicast 32115.6 The IP Multicast Scheme 32215.7 IPv4 And IPv6 Multicast Addresses 32315.8 Multicast Address Semantics 32615.9 Mapping IP Multicast To Ethernet Multicast 32715.10 Hosts And Multicast Delivery 32815.11 Multicast Scope 32815.12 Host Participation In IP Multicasting 32915.13 IPv4 Internet Group Management Protocol (IGMP) 33015.14 IGMP Details 33115.15 IGMP Group Membership State Transitions 33215.16 IGMP Membership Query Message Format 33315.17 IGMP Membership Report Message Format 33415.18 IPv6 Multicast Group Membership With MLDv2 33515.19 Multicast Forwarding And Routing Information 33715.20 Basic Multicast Forwarding Paradigms 33915.21 Consequences Of TRPF 34115.22 Multicast Trees 34215.23 The Essence Of Multicast Route Propagation 34315.24 Reverse Path Multicasting 34415.25 Example Multicast Routing Protocols 34515.26 Reliable Multicast And ACK Implosions 34715.27 Summary 349Chapter 16 Label Switching, Flows, And MPLS 35316.1 Introduction 35316.2 Switching Technology 35316.3 Flows And Flow Setup 35516.4 Large Networks, Label Swapping, And Paths 35516.5 Using Switching With IP 35716.6 IP Switching Technologies And MPLS 35716.7 Labels And Label Assignment 35916.8 Hierarchical Use Of MPLS And A Label Stack 35916.9 MPLS Encapsulation 36016.10 Label Semantics 36116.11 Label Switching Router 36216.12 Control Processing And Label Distribution 36316.13 MPLS And Fragmentation 36416.14 Mesh Topology And Traffic Engineering 36416.15 Summary 365Chapter 17 Packet Classification 36917.1 Introduction 36917.2 Motivation For Classification 37017.3 Classification Instead Of Demultiplexing 37117.4 Layering When Classification Is Used 37217.5 Classification Hardware And Network Switches 37217.6 Switching Decisions And VLAN Tags 37417.7 Classification Hardware 37517.8 High-Speed Classification And TCAM 37517.9 The Size Of A TCAM 37717.10 Classification-Enabled Generalized Forwarding 37817.11 Summary 379Chapter 18 Mobility And Mobile IP 38118.1 Introduction 38118.2 Mobility, Addressing, And Routing 38118.3 Mobility Via Host Address Change 38218.4 Mobility Via Changes In Datagram Forwarding 38318.5 The Mobile IP Technology 38318.6 Overview Of Mobile IP Operation 38418.7 Overhead And Frequency Of Change 38418.8 Mobile IPv4 Addressing 38518.9 IPv4 Foreign Agent Discovery 38618.10 IPv4 Registration 38718.11 IPv4 Registration Message Format 38818.12 Communication With An IPv4 Foreign Agent 38818.13 IPv6 Mobility Support 38918.14 Datagram Transmission, Reception, And Tunneling 39018.15 Assessment Of IP Mobility And Unsolved Problems 39118.16 Alternative Identifier-Locator Separation Technologies 39518.17 Summary 396Chapter 19 Network Virtualization: VPNs, NATs, And Overlays 39919.1 Introduction 39919.2 Virtualization 39919.3 Virtual Private Networks (VPNs) 40019.4 VPN Tunneling And IP-in-IP Encapsulation 40119.5 VPN Addressing And Forwarding 40219.6 Extending VPN Technology To Individual Hosts 40419.7 Using A VPN With Private IP Addresses 40419.8 Network Address Translation (NAT) 40519.9 NAT Translation Table Creation 40719.10 Variant Of NAT 40919.11 An Example Of NAT Translation 40919.12 Interaction Between NAT And ICMP 41119.13 Interaction Between NAT And Applications 41119.14 NAT In The Presence Of Fragmentation 41219.15 Conceptual Address Domains 41319.16 Linux, Windows And Mac Versions Of NAT 41319.17 Overlay Networks 41319.18 Multiple Simultaneous Overlays 41519.19 Summary 415Chapter 20 Client-Server Model Of Interaction 41920.1 Introduction 41920.2 The Client-Server Model 42020.3 A Trivial Example: UDP Echo Server 42020.4 Time And Date Service 42220.5 Sequential And Concurrent Servers 42320.6 Server Complexity 42520.7 Broadcasting Requests 42620.8 Client-Server Alternatives And Extensions 42620.9 Summary 428Chapter 21 The Socket API 43121.1 Introduction 43121.2 Versions Of The Socket API 43221.3 The UNIX I/O Paradigm And Network I/O 43221.4 Adding Network I/O to UNIX 43221.5 The Socket Abstraction And Socket Operations 43321.6 Obtaining And Setting Socket Options 43821.7 How A Server Accepts TCP Connections 43921.8 Servers That Handle Multiple Services 44021.9 Obtaining And Setting The Host Name 44121.10 Library Functions Related To Sockets 44221.11 Network Byte Order And Conversion Routines 44321.12 IP Address Manipulation Routines 44421.13 Accessing The Domain Name System 44421.14 Obtaining Information About Hosts 44621.15 Obtaining Information About Networks 44721.16 Obtaining Information About Protocols 44721.17 Obtaining Information About Network Services 44721.18 An Example Client 44821.19 An Example Server 45321.20 Summary 460Chapter 22 Bootstrap And Autoconfiguration (DHCP, NDP or IPv6-ND) 46322.1 Introduction 46322.2 History Of IPv4 Bootstrapping 46422.3 Using IP To Determine An IP Address 46422.4 DHCP Retransmission And Randomization 46522.5 DHCP Message Format 46522.6 The Need For Dynamic Configuration 46822.7 DHCP Leases And Dynamic Address Assignment 46922.8 Multiple Addresses And Relays 46922.9 DHCP Address Acquisition States 47022.10 Early Lease Termination 47122.11 Lease Renewal States 47222.12 DHCP Options And Message Type 47322.13 DHCP Option Overload 47422.14 DHCP And Domain Names 47422.15 Managed And Unmanaged Configuration 47422.16 Managed And Unmanaged Configuration For IPv6 47522.17 IPv6 Configuration Options And Potential Conflicts 47622.18 IPv6 Neighbor Discovery Protocol (NDP) 47722.19 ICMPv6 Router Solicitation Message 47822.20 ICMPv6 Router Advertisement Message 47822.21 ICMPv6 Neighbor Solicitation Message 47922.22 ICMPv6 Neighbor Advertisement Message 48022.23 ICMPv6 Redirect Message 48022.24 Summary 481Chapter 23 The Domain Name System (DNS) 48523.1 Introduction 48523.2 Names For Computers 48623.3 Flat Namespace 48623.4 Hierarchical Names 48723.5 Delegation Of Authority For Names 48823.6 Subset Authority 48823.7 Internet Domain Names 48923.8 Top-Level Domains 49023.9 Name Syntax And Type 49223.10 Mapping Domain Names To Addresses 49323.11 Domain Name Resolution 49523.12 Efficient Translation 49623.13 Caching: The Key To Efficiency 49723.14 Domain Name System Message Format 49823.15 Compressed Name Format 50123.16 Abbreviation Of Domain Names 50123.17 Inverse Mappings 50223.18 Pointer Queries 50323.19 Object Types And Resource Record Contents 50423.20 Obtaining Authority For A Subdomain 50523.21 Server Operation And Replication 50523.22 Dynamic DNS Update And Notification 50623.23 DNS Security Extensions (DNSSEC) 50623.24 Multicast DNS And Service Discovery 50723.25 Summary 508Chapter 24 Electronic Mail (SMTP, POP, IMAP, MIME) 51124.1 Introduction 51124.2 Electronic Mail 51124.3 Mailbox Names And Aliases 51224.4 Alias Expansion And Mail Forwarding 51324.5 TCP/IP Standards For Electronic Mail Service 51424.6 Simple Mail Transfer Protocol (SMTP) 515