throbber
TCP/IP Illustrated
`
`TCP/IP Illustrated,
`Volume 1
`
`The Protocols
`
`W. Richard Stevens
`
`Contents
`
`Preface
`
`Chapter 1. Introduction
`1.1 Introduction
`1.2 Layering
`1.3 TCP/IP Layering
`1.4 Internet Addresses
`1.5 The Domain Name System
`1.6 Encapsulation
`1.7 Demultiplexing
`1.8 Client-Server Model
`1.9 Port Numbers
`1.10 Standardization Process
`1.11 RFCs
`1.12 Standard, Simple Services
`1.13 The Internet
`1.14 Implementations
`1.15 Application Programming Interfaces
`1.16 Test Network
`1.17 Summary
`
`Chapter 2. Link Layer
`2.1 Introduction
`2.2 Ethernet and IEEE 802 Encapsulation
`2.3 Trailer Encapsulation
`
`file:///D|/Documents%20and%20Settings/bigini/Documenti/homenet2run/tcpip/tcp-ip-illustrated/index.htm (1 of 9) [12/09/2001 14.46.27]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 1
`
`

`
`TCP/IP Illustrated
`
`2.4 SLIP: Serial Line IP
`2.5 Compressed SLIP
`2.6 PPP: Point-to-Point Protocol
`2.7 Loopback Interface
`2.8 MTU
`2.9 Path MTU
`2.10 Serial Line Throughput Calculations
`2.11 Summary
`
`Chapter 3. IP: Internet Protocol
`3.1 Introduction
`3.2 IP Header
`3.3 IP Routing
`3.4 Subnet Addressing
`3.5 Subnet Mask
`3.6 Special Case IP Address
`3.7 A Subnet Example
`3.8 ifconfig Command
`3.9 netstat Command
`3.10 IP Futures
`3.11 Summary
`
`Chapter 4. ARP: Address Resolution Protocol
`4.1 Introduction
`4.2 An Example
`4.3 ARP Cache
`4.4 ARP Packet Format
`4.5 ARP Examples
`4.6 Proxy ARP
`4.7 Gratuitous ARP
`4.8 arp Command
`4.9 Summary
`
`Chapter 5. RARP: Reverse Address Resolution Protocol
`5.1 Introduction
`5.2 RARP Packet Format
`5.3 RARP Examples
`5.4 RARP Server design
`5.5 Summary
`
`file:///D|/Documents%20and%20Settings/bigini/Documenti/homenet2run/tcpip/tcp-ip-illustrated/index.htm (2 of 9) [12/09/2001 14.46.27]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 2
`
`

`
`TCP/IP Illustrated
`
`Chapter 6. ICMP: Internet Control Message Protocol
`6.1 Introduction
`6.2 ICMP Message Types
`6.3 ICMP Address Mask Request and Reply
`6.4 ICMP Timestamp Request and Reply
`6.5 ICMP Port Unreachable Error
`6.6 4.4BSD Processing of ICMP Messages
`6.7 Summary
`
`Chapter 7. Ping Program
`7.1 Introduction
`7.2 Ping Program
`7.3 IP Record Route Option
`7.4 IP Timestamp Option
`7.5 Summary
`
`Chapter 8. Traceroute Program
`8.1 Introduction
`8.2 Traceroute Program operation
`8.3 LAN output
`8.4 WAN output
`8.5 IP Source Routing Option
`8.6 Summary
`
`Chapter 9. IP Routing
`9.1 Introduction
`9.2 Routing Principles
`9.3 ICMP Host and Network Unreachable Errors
`9.4 To Forward or Not to Forward
`9.5 ICMP Redirect Errors
`9.6 ICMP Router Discovery Messages
`9.7 Summary
`
`Chapter 10. Dynamic Routing Protocols
`10.1 Introduction
`10.2 Dynamic Routing
`10.3 Unix Routing Daemons
`
`file:///D|/Documents%20and%20Settings/bigini/Documenti/homenet2run/tcpip/tcp-ip-illustrated/index.htm (3 of 9) [12/09/2001 14.46.27]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 3
`
`

`
`TCP/IP Illustrated
`
`10.4 RIP: Routing Information Protocol
`10.5 RIP Version 2
`10.6 OSPF: Open Shortest Path First
`10.7 BGP: Border Gateway Protocol
`10.8 CIDR: Classless Interdomain Routing
`10.9 Summary
`
`Chapter 11. UDP: User Datagram Protocol
`11.1 Introduction
`11.2 UDP Header
`11.3 UDP Checksum
`11.4 A Simple Example
`11.5 IP Fragmentation
`11.6 ICMP Unreachable Error (Fragmentation Required)
`11.7 Determining the Path MTU Using Traceroute
`11.8 Path MTU Discovery with UDP
`11.9 Interaction Between UDP and ARP
`11.10 Maximum UDP Datagram Size
`11.11 ICMP Source Quench Error
`11.12 UDP Server Design
`11.13 Summary
`
`Chapter 12. Broadcasting and Multicasting
`12.1 Introduction
`12.2 Broadcasting
`12.3 Broadcasting Examples
`12.4 Multicasting
`12.5 Summary
`
`Chapter 13. IGMP: Internet Group Management Protocol
`13.1 Introduction
`13.2 IGMP Message
`13.3 IGMP Protocol
`13.4 An Example
`13.5 Summary
`
`Chapter 14. DNS: The Domain Name System
`14.1 Introduction
`14.2 DNS Basics
`
`file:///D|/Documents%20and%20Settings/bigini/Documenti/homenet2run/tcpip/tcp-ip-illustrated/index.htm (4 of 9) [12/09/2001 14.46.27]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 4
`
`

`
`TCP/IP Illustrated
`
`14.3 DNS Message Format
`14.4 A Simple Example
`14.5 Pointer Quiries
`14.6 Resourse Records
`14.7 Caching
`14.8 UDP or TCP
`14.9 Another Example
`14.10 Summary
`
`Chapter 15. TFTP: Trivial File Transfer Protocol
`15.1 Introduction
`15.2 Protocol
`15.3 An Example
`15.4 Security
`15.5 Summary
`
`Chapter 16. BOOTP: Bootstrap Protocol
`16.1 Introduction
`16.2 BOOTP Packet Format
`16.3 An Example
`16.4 BOOTP Server Design
`16.5 BOOTP Through a Router
`16.6 Vendor-Specific Information
`16.7 Summary
`
`Chapter 17. TCP: Transmission Control Protocol
`17.1 Introduction
`17.2 TCP Services
`17.3 TCP Header
`17.4 Summary
`
`Chapter 18. TCP Connection Establishment and Termination
`18.1 Introduction
`18.2 Connection Establishment and Termination
`18.3 Timeout of Connection Establishment
`18.4 Maximum Segment Size
`18.5 TCP Half-Close
`18.6 TCP State Transition Diagram
`18.7 Reset Segments
`
`file:///D|/Documents%20and%20Settings/bigini/Documenti/homenet2run/tcpip/tcp-ip-illustrated/index.htm (5 of 9) [12/09/2001 14.46.27]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 5
`
`

`
`TCP/IP Illustrated
`
`18.8 Simultaneous Open
`18.9 Simultaneous Close
`18.10 TCP Options
`18.11 TCP Server Design
`18.12 Summary
`
`Chapter 19. TCP Interactive Data Flow
`19.1 Introduction
`19.2 Interactive Input
`19.3 Delayed Acknoledgements
`19.4 Nagle Algorithm
`19.5 Windows Size Advertisments
`19.6 Summary
`
`Chapter 20. TCP Bulk Data Flow
`20.1 Introduction
`20.2 Normal Data Flow
`20.3 Sliding Windows
`20.4 Window Size
`20.5 PUSH Flag
`20.6 Slow Start
`20.7 Bulk Data Throughput
`20.8 Urgent Mode
`20.9 Summary
`
`Chapter 21. TCP Timeout and Retransmission
`21.1 Introduction
`21.2 Simple Timeout and Retransmission Example
`21.3 Round-Trip Time Measurement
`21.4 An RTT Example
`21.5 Congestion Example
`21.6 Congestion Avoidance Algorithm
`21.7 Fast Retransmit and Fast Recovery Algorithm
`21.8 Congestion Example (Continued)
`21.9 Per-Route Metrics
`21.10 ICMP Errors
`21.11 Repacketization
`21.12 Summary
`
`file:///D|/Documents%20and%20Settings/bigini/Documenti/homenet2run/tcpip/tcp-ip-illustrated/index.htm (6 of 9) [12/09/2001 14.46.27]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 6
`
`

`
`TCP/IP Illustrated
`
`Chapter 22. TCP Persist Timer
`22.1 Introduction
`22.2 An Example
`22.3 Silly Windows Syndrome
`22.4 Summary
`
`Chapter 23. TCP Keepalive Timer
`23.1 Introduction
`23.2 Description
`23.3 Keepalive Examples
`23.4 Summary
`
`Chapter 24. TCP Futures and Performance
`24.1 Introduction
`24.2 Path MTU Discovery
`24.3 Long Fat Pipes
`24.4 Windows Scale Option
`24.5 Timestamp Option
`24.6 PAWS: Protection Against Wrapped Sequence Numbers
`24.7 T/TCP: A TCP Extension for Transactions
`24.8 TCP Performance
`24.9 Summary
`
`Chapter 25. SNMP: Simple Network Management Protocol
`25.1 Introduction
`25.2 Protocol
`25.3 Structure of Management Information
`25.4 Object Identifiers
`25.5 Introduction to the Management Information Base
`25.6 Instance Identification
`25.7 Simple Examples
`25.8 Management Information Base (Continued)
`25.9 Additional Examples
`25.10 Traps
`25.11 ASN.1 and BER
`25.12 SNMP Version 2
`25.13 Summary
`
`file:///D|/Documents%20and%20Settings/bigini/Documenti/homenet2run/tcpip/tcp-ip-illustrated/index.htm (7 of 9) [12/09/2001 14.46.27]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 7
`
`

`
`TCP/IP Illustrated
`
`Chapter 26. Telnet and Rlogin: Remote Login
`26.1 Introduction
`26.2 Rlogin Protocol
`26.3 Rlogin Examples
`26.4 Telnet Protocol
`26.5 Telnet Examples
`26.6 Summary
`
`Chapter 27. FTP: File Transfer Protocol
`27.1 Introduction
`27.2 FTP Protocol
`27.3 FTP Examples
`27.4 Summary
`
`Chapter 28. SMTP: Simple Mail Transfer Protocol
`28.1 Introduction
`28.2 SMTP Protocol
`28.3 SMTP Examples
`28.4 SMTP Futures
`28.5 Summary
`
`Chapter 29. NFS: Network File System
`29.1 Introduction
`29.2 Sun Remote Procedure Call
`29.3 XDR: External Data Representation
`29.4 Port Mapper
`29.5 NFS Protocol
`29.6 NFS Examples
`29.7 NFS Version 3
`29.8 Summary
`
`Chapter 30. Other TCP/IP Applications
`30.1 Introduction
`30.2 Finger Protocol
`30.3 Whois Protocol
`30.4 Archie, WAIS, Gopher, Veronica and WWW
`30.5 X Window System
`30.6 Summary
`
`file:///D|/Documents%20and%20Settings/bigini/Documenti/homenet2run/tcpip/tcp-ip-illustrated/index.htm (8 of 9) [12/09/2001 14.46.27]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 8
`
`

`
`TCP/IP Illustrated
`
`Appendix A. The tcpdump Program
`A.1 BSD Packet Filter
`A.2 SunOS Network Interface Tap
`A.3 SVR4 Data Link Provider Interface
`A.4 tcpdump Output
`A.5 Security Considerations
`A.6 Socket Debug Option
`
`Appendix B. Computer Clocks
`
`Appendix C. The sock Program
`
`Appendix D. Solutions to Selected Exercises
`
`Appendix E. Configurable Options
`E.1 BSD/386 version 1.0
`E.2 SunOS 4.1.3
`E.3 System V Release 4
`E.4 Solaris 2.2
`E.5 AIX 3.2.2
`E.6 4.4BSD
`
`Appendix F. Source Code Availability
`
`Acronyms
`
`You can write to the designer of this page. All critics are welcome.
`
`file:///D|/Documents%20and%20Settings/bigini/Documenti/homenet2run/tcpip/tcp-ip-illustrated/index.htm (9 of 9) [12/09/2001 14.46.27]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 9
`
`

`
`Preface
`
`Preface
`
`Introduction
`
`This book describes the TCP/IP protocol suite, but from a different perspective than other
`texts on TCP/IP. Instead of just describing the protocols and what they do, we'll use a
`popular diagnostic tool to watch the protocols in action. Seeing how the protocols operate in
`varying circumstances provides a greater understanding of how they work and why certain
`design decisions were made. It also provides a look into the implementation of the protocols,
`without having to wade through thousands of lines of source code.
`
`When networking protocols were being developed in the 1960s through the 1980s,
`expensive, dedicated hardware was required to see the packets going "across the wire."
`Extreme familiarity with the protocols was also required to comprehend the packets
`displayed by the hardware. Functionality of the hardware analyzers was limited to that built
`in by the hardware designers.
`
`Today this has changed dramatically with the ability of the ubiquitous workstation to
`monitor a local area network [Mogul 1990]. Just attach a workstation to your network, run
`some publicly available software (described in Appendix A), and watch what goes by on the
`wire. While many people consider this a tool to be used for diagnosing network problems, it
`is also a powerful tool for understanding how the network protocols operate, which is the
`goal of this book.
`
`This book is intended for anyone wishing to understand how the TCP/IP protocols operate:
`programmers writing network applications, system administrators responsible for
`maintaining computer systems and networks utilizing TCP/IP, and users who deal with
`TCP/IP applications on a daily basis.
`
`Organization of the Book
`
`The following figure shows the various protocols and applications that are covered. The
`italic number by each box indicates the chapter in which that protocol or application is
`described.
`
`file:///D|/Documents%20and%20Settings/bigini/Docum...i/homenet2run/tcpip/tcp-ip-illustrated/preface.htm (1 of 6) [12/09/2001 14.46.28]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 10
`
`

`
`Preface
`
`
`
`(Numerous fine points are missing from this figure that will be discussed in the appropriate
`chapter. For example, both the DNS and RPC use TCP, which we don't show.)
`
`We take a bottom-up approach to the TCP/IP protocol suite. After providing a basic
`introduction to TCP/IP in Chapter 1, we will start at the link layer in Chapter 2 and work our
`way up the protocol stack. This provides the required background for later chapters for
`readers who aren't familiar with TCP/IP or networking in general.
`
`This book also uses a functional approach instead of following a strict bottom-to-top order.
`For example, Chapter 3 describes the IP layer and the IP header. But there are numerous
`fields in the IP header that are best described in the context of an application that uses or is
`affected by a particular field. Fragmentation, for example, is best understood in terms of
`UDP (Chapter 11), the protocol often affected by it. The time-to-live field is fully described
`when we look at the Traceroute program in Chapter 8, because this field is the basis for the
`operation of the program. Similarly, many features of ICMP are described in the later
`chapters, in terms of how a particular ICMP message is used by a protocol or an application.
`
`We also don't want to save all the good stuff until the end, so we describe TCP/IP
`applications as soon as we have the foundation to understand them. Ping and Trace-route are
`described after IP and ICMP have been discussed. The applications built on UDP
`(multicasting, the DNS, TFTP, and BOOTP) are described after UDP has been examined.
`The TCP applications, however, along with network management, must be saved until the
`end, after we've thoroughly described TCP. This text focuses on how these applications use
`the TCP/IP protocols. We do not provide all the details on running these applications.
`
`file:///D|/Documents%20and%20Settings/bigini/Docum...i/homenet2run/tcpip/tcp-ip-illustrated/preface.htm (2 of 6) [12/09/2001 14.46.28]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 11
`
`

`
`Preface
`
`Readers
`
`This book is self-contained and assumes no specific knowledge of networking or TCP/IP.
`Numerous references are provided for readers interested in additional details on specific
`topics.
`
`This book can be used in many ways. It can be used as a self-study reference and covered
`from start to finish by someone interested in all the details on the TCP/IP protocol suite.
`Readers with some TCP/IP background might want to skip ahead and start with Chapter 7,
`and then focus on the specific chapters in which they're interested. Exercises are provided at
`the end of the chapters, and most solutions are in Appendix D. This is to maximize the
`usefulness of the text as a self-study reference.
`
`When used as part of a one- or two-semester course in computer networking, the focus
`should be on IP (Chapters 3 and 9), UDP (Chapter 11), and TCP (Chapters 17-24), along
`with some of the application chapters.
`
`Many forward and backward references are provided throughout the text, along with a
`thorough index, to allow individual chapters to be studied by themselves. A list of all the
`acronyms used throughout the text, along with the compound term for the acronym, appears
`on the inside back covers.
`
`If you have access to a network you are encouraged to obtain the software used in this book
`(Appendix F) and experiment on your own. Hands-on experimentation with the protocols
`will provide the greatest knowledge (and make it more fun).
`
`Systems Used for Testing
`
`Every example in the book was run on an actual network and the resulting output saved in a
`file for inclusion in the text. Figure 1.11 shows a diagram of the different hosts, routers, and
`networks that are used. (This figure is also duplicated on the inside front cover for easy
`reference while reading the book.) This collection of networks is simple enough that the
`topology doesn't confuse the examples, and with four systems acting as routers, we can see
`the error messages generated by routers.
`
`Most of the systems have a name that indicates the type of software being used: bsdi,
`svr4, sun, solaris, aix, slip, and so on. In this way we can identify the type of
`software that we're dealing with by looking at the system name in the printed output.
`
`A wide range of different operating systems and TCP/IP implementations are used:
`
`l BSD/386 Version 1.0 from Berkeley Software Design, Inc., on the hosts named
`bsdi and slip. This system is derived from the BSD Networking Software,
`Release 2.0. (We show the lineage of the various BSD releases in Figure 1.10.)
`
`file:///D|/Documents%20and%20Settings/bigini/Docum...i/homenet2run/tcpip/tcp-ip-illustrated/preface.htm (3 of 6) [12/09/2001 14.46.28]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 12
`
`

`
`Preface
`
`l Unix System V/386 Release 4.0 Version 2.0 from U.H. Corporation, on the host
`named svr4. This is vanilla SVR4 and contains the standard implementation of
`TCP/IP from Lachman Associates used with most versions of SVR4.
`l SunOS 4.1.3 from Sun Microsystems, on the host named sun. The SunOS 4.1.x
`systems are probably the most widely used TCP/IP implementations. The TCP/IP
`code is derived from 4.2BSD and 4.3BSD.
`l Solaris 2.2 from Sun Microsystems, on the host named solaris. The Solaris 2.x
`systems have a different implementation of TCP/IP from the earlier SunOS 4.1.x
`systems, and from SVR4. (This operating system is really SunOS 5.2, but is
`commonly called Solaris 2.2.)
`l AIX 3.2.2 from IBM on the host named aix. The TCP/IP implementation is based on
`the 4.3BSD Reno release.
`l 4.4BSD from the Computer Systems Research Group at the University of California
`at Berkeley, on the host vangogh. cs.berkeley.edu. This system has the
`latest release of TCP/IP from Berkeley. (This system isn't shown in the figure on the
`inside front cover, but is reachable across the Internet.)
`
`Although these are all Unix systems, TCP/IP is operating system independent, and is
`available on almost every popular non-Unix system. Most of this text also applies to these
`non-Unix implementations, although some programs (such as Traceroute) may not be
`provided on all systems.
`
`Typographical Conventions
`
`When we display interactive input and output we'll show our typed input in a bold font,
`and the computer output like this. Comments are added in italics.
`bsdi % telnet svr4 discard
`connect to the discard server
`Trying 140.252.13.34...
`this line and next output by Telnet client
`Connected to svr4.
`Also, we always include the name of the system as part of the shell prompt (bsdi in this
`example) to show on which host the command was run.
`
`Throughout the text we'll use indented, parenthetical notes such as this to describe historical points or
`implementation details.
`
`We sometimes refer to the complete description of a command in the Unix manual as in
`ifconfig(8). This notation, the name of the command followed by a number in
`parentheses, is the normal way of referring to Unix commands. The number in parentheses is
`the section number in the Unix manual of the "manual page" for the command, where
`additional information can be located. Unfortunately not all Unix systems organize their
`manuals the same, with regard to the section numbers used for various groupings of
`commands. We'll use the BSD-style section numbers (which is the same for BSD-derived
`systems such as SunOS 4.1.3), but your manuals may be organized differently.
`
`Acknowledgments
`
`file:///D|/Documents%20and%20Settings/bigini/Docum...i/homenet2run/tcpip/tcp-ip-illustrated/preface.htm (4 of 6) [12/09/2001 14.46.28]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 13
`
`

`
`Preface
`
`Although the author's name is the only one to appear on the cover, the combined effort of
`many people is required to produce a quality text book. First and foremost is the author's
`family, who put up with the long and weird hours that go into writing a book. Thank you
`once again, Sally, Bill, Ellen, and David.
`
`The consulting editor, Brian Kernighan, is undoubtedly the best in the business. He was the
`first one to read various drafts of the manuscript and mark it up with his infinite supply of
`red pens. His attention to detail, his continual prodding for readable prose, and his thorough
`reviews of the manuscript are an immense resource to a writer.
`
`Technical reviewers provide a different point of view and keep the author honest by catching
`technical mistakes. Their comments, suggestions, and (most importantly) criticisms add
`greatly to the final product. My thanks to Steve Bellovin, Jon Crowcroft, Pete Haverlock,
`and Doug Schmidt for comments on the entire manuscript. Equally valuable comments were
`provided on portions of the manuscript by Dave Borman, Tony DeSimone, Bob Gilligan,
`Jeff Gitlin, John Gulbenkian, Tom Herbert, Mukesh Kacker, Barry Margolin, Paul
`Mockapetris, Burr Nelson, Steve Rago, James Risner, Chris Walquist, Phil Winterbottom,
`and Gary Wright. A special thanks to Dave Borman for his thorough review of all the TCP
`chapters, and to Bob Gilligan who should be listed as a coauthor for Appendix E.
`
`An author cannot work in isolation, so I would like to thank the following persons for lots of
`small favors, especially by answering my numerous e-mail questions: Joe Godsil, Jim
`Hogue, Mike Karels, Paul Lucchina, Craig Partridge, Thomas Skibo, and Jerry Toporek.
`
`This book is the result of my being asked lots of questions on TCP/IP for which I could find
`no quick, immediate answer. It was then that I realized that the easiest way to obtain the
`answers was to run small tests, forcing certain conditions to occur, and just watch what
`happens. I thank Pete Haverlock for asking the probing questions and Van Jacobson for
`providing so much of the publicly available software that is used in this book to answer the
`questions.
`
`A book on networking needs a real network to work with along with access to the Internet.
`My thanks to the National Optical Astronomy Observatories (NOAO), especially Sidney
`Wolff, Richard Wolff, and Steve Grandi, for providing access to their networks and hosts. A
`special thanks to Steve Grandi for answering lots of questions and providing accounts on
`various hosts. My thanks also to Keith Bostic and Kirk McKu-sick at the U.C. Berkeley
`CSRG for access to the latest 4.4BSD system.
`
`Finally, it is the publisher that pulls everything together and does whatever is required to
`deliver the final product to the readers. This all revolves around the editor, and John Wait is
`simply the best there is. Working with John and the rest of the professionals at Addison-
`Wesley is a pleasure. Their professionalism and attention to detail show in the end result.
`
`Camera-ready copy of the book was produced by the author, a Troff die-hard, using the
`
`file:///D|/Documents%20and%20Settings/bigini/Docum...i/homenet2run/tcpip/tcp-ip-illustrated/preface.htm (5 of 6) [12/09/2001 14.46.28]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 14
`
`

`
`Preface
`
`Groff package written by James Clark. I welcome electronic mail from any readers with
`comments, suggestions, or bug fixes.
`
`Tucson, Arizona
`October 1993
`
`W. Richard Stevens
`rstevens@noao.edu
`http://www.noao.edu/~rstevens
`
`file:///D|/Documents%20and%20Settings/bigini/Docum...i/homenet2run/tcpip/tcp-ip-illustrated/preface.htm (6 of 6) [12/09/2001 14.46.28]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 15
`
`

`
`Chapter 1. Introduction
`
`Introduction
`
`1.1 Introduction
`
`The TCP/IP protocol suite allows computers of all sizes, from many different computer vendors,
`running totally different operating systems, to communicate with each other. It is quite amazing
`because its use has far exceeded its original estimates. What started in the late 1960s as a
`government-financed research project into packet switching networks has, in the 1990s, turned
`into the most widely used form of networking between computerrs. It is truly an open system in
`that the definition of the protocol suite and many of its implementations are publicly available at
`little or no charge. It forms the basis for what is called the worldwide Internet, or the Internet, a
`wide area network (WAN) of more than one million computers that literally spans the globe.
`
`This chapter provides an overview of the TCP/IP protocol suite, to establish an adequate
`background for the remaining chapters. For a historical perspective on the early development of
`TCP/IP see [Lynch 1993].
`
`1.2 Layering
`
`Networking protocols are normally developed in layers, with each layer responsible for a
`different facet of the communications. A protocol suite, such as TCP/IP, is the combination of
`different protocols at various layers. TCP/IP is normally considered to be a 4-layer system, as
`shown in Figure 1.1.
`
`Telnet, FTP, e-mail, etc.
`Application
`TCP, UDP
`Transport
`IP, ICMP, IGMP
`Network
`device driver and interface card
`Link
`Figure 1.1 The four layers of the TCP/IP protocol suite.
`
`Each layer has a different responsibility.
`
`1. The link layer, sometimes called the data-link layer or network interface layer, normally
`includes the device driver in the operating system and the corresponding network
`interface card in the computer. Together they handle all the hardware details of physically
`interfacing with the cable (or whatever type of media is being used).
`2. The network layer (sometimes called the internet layer) handles the movement of packets
`around the network. Routing of packets, for example, takes place here. IP (Internet
`Protocol), ICMP (Internet Control Message Protocol), and IGMP (Internet Group
`Management Protocol) provide the network layer in the TCP/IP protocol suite.
`3. The transport layer provides a flow of data between two hosts, for the application layer
`above. In the TCP/IP protocol suite there are two vastly different transport protocols:
`TCP (Transmission Control Protocol) and UDP (User Datagram Protocol).
`
`file:///D|/Documents%20and%20Settings/bigini/Docu...homenet2run/tcpip/tcp-ip-illustrated/introduc.htm (1 of 20) [12/09/2001 14.46.31]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 16
`
`

`
`Chapter 1. Introduction
`
`TCP provides a reliable flow of data between two hosts. It is concerned with things such
`as dividing the data passed to it from the application into appropriately sized chunks for
`the network layer below, acknowledging received packets, setting timeouts to make
`certain the other end acknowledges packets that are sent, and so on. Because this reliable
`flow of data is provided by the transport layer, the application layer can ignore all these
`details.
`
`UDP, on the other hand, provides a much simpler service to the application layer. It just
`sends packets of data called datagrams from one host to the other, but there is no
`guarantee that the datagrams reach the other end. Any desired reliability must be added
`by the application layer.
`
`There is a use for each type of transport protocol, which we'll see when we look at the
`different applications that use TCP and UDP.
`4. The application layer handles the details of the particular application. There are many
`common TCP/IP applications that almost every implementation provides:
`m Telnet for remote login,
`m FTP, the File Transfer Protocol,
`m SMTP, the Simple Mail Transfer protocol, for electronic mail,
`m SNMP, the Simple Network Management Protocol,
`
`and many more, some of which we cover in later chapters.
`
`If we have two hosts on a local area network (LAN) such as an Ethernet, both running FTP,
`Figure 1.2 shows the protocols involved.
`
`Figure 1.2 Two hosts on a LAN running FTP.
`
`We have labeled one application box the FTP client and the other the FTP server. Most network
`
`file:///D|/Documents%20and%20Settings/bigini/Docu...homenet2run/tcpip/tcp-ip-illustrated/introduc.htm (2 of 20) [12/09/2001 14.46.31]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 17
`
`

`
`Chapter 1. Introduction
`
`applications are designed so that one end is the client and the other side the server. The server
`provides some type of service to clients, in this case access to files on the server host. In the
`remote login application, Telnet, the service provided to the client is the ability to login to the
`server's host.
`
`Each layer has one or more protocols for communicating with its peer at the same layer. One
`protocol, for example, allows the two TCP layers to communicate, and another protocol lets the
`two IP layers communicate.
`
`On the right side of Figure 1.2 we have noted that normally the application layer is a user
`process while the lower three layers are usually implemented in the kernel (the operating
`system). Although this isn't a requirement, it's typical and this is the way it's done under Unix.
`
`There is another critical difference between the top layer in Figure 1.2 and the lower three
`layers. The application layer is concerned with the details of the application and not with the
`movement of data across the network. The lower three layers know nothing about the application
`but handle all the communication details.
`
`We show four protocols in Figure 1.2, each at a different layer. FTP is an application layer
`protocol, TCP is a transport layer protocol, IP is a network layer protocol, and the Ethernet
`protocols operate at the link layer. The TCP/IP protocol suite is a combination of many
`protocols. Although the commonly used name for the entire protocol suite is TCP/IP, TCP and
`IP are only two of the protocols. (An alternative name is the Internet Protocol Suite.)
`
`The purpose of the network interface layer and the application layer are obvious-the former
`handles the details of the communication media (Ethernet, token ring, etc.) while the latter
`handles one specific user application (FTP, Telnet, etc.). But on first glance the difference
`between the network layer and the transport layer is somewhat hazy. Why is there a distinction
`between the two? To understand the reason, we have to expand our perspective from a single
`network to a collection of networks.
`
`One of the reasons for the phenomenal growth in networking during the 1980s was the
`realization that an island consisting of a stand-alone computer made little sense. A few stand-
`alone systems were collected together into a network. While this was progress, during the 1990s
`we have come to realize that this new, bigger island consisting of a single network doesn't make
`sense either. People are combining multiple networks together into an internetwork, or an
`internet. An internet is a collection of networks that all use the same protocol suite.
`
`The easiest way to build an internet is to connect two or more networks with a router. This is
`often a special-purpose hardware box for connecting networks. The nice thing about routers is
`that they provide connections to many different types of physical networks: Ethernet, token ring,
`point-to-point links, FDDI (Fiber Distributed Data Interface), and so on.
`
`These boxes are also called IP routers, but we'll use the term router.
`
`Historically these boxes were called gateways, and this term is used throughout much of the TCP/IP literature.
`Today the term gateway is used for an application gateway: a process that connects two different protocol suites
`
`file:///D|/Documents%20and%20Settings/bigini/Docu...homenet2run/tcpip/tcp-ip-illustrated/introduc.htm (3 of 20) [12/09/2001 14.46.31]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 18
`
`

`
`Chapter 1. Introduction
`
`(say, TCP/IP and IBM's SNA) for one particular application (often electronic mail or file transfer).
`
`Figure 1.3 shows an internet consisting of two networks: an Ethernet and a token ring, connected
`with a router. Although we show only two hosts communicating, with the router connecting the
`two networks, any host on the Ethernet can communicate with any host on the token ring.
`
`In Figure 1.3 we can differentiate between an end system (the two hosts on either side) and an
`intermediate system (the router in the middle). The application layer and the transport layer use
`end-to-end protocols. In our picture these two layers are needed only on the end systems. The
`network layer, however, provides a hop-by-hop protocol and is used on the two end systems and
`every intermediate system.
`
`Figure 1.3 Two networks connected with a router.
`
`In the TCP/IP protocol suite the network layer, IP, provides an unreliable service. That is, it does
`its best job of moving a packet from its source to its final destination, but there are no
`guarantees. TCP, on the other hand, provides a reliable transport layer using the unreliable
`service of IP To provide this service, TCP performs timeout and retransmission, sends and
`receives end-to-end acknowledgments, and so on. The transport layer and the network layer have
`distinct responsibilities.
`
`A router, by definition, has two or more network interface layers (since it connects two or more
`networks). Any system with multiple interfaces is called multihomed. A host can also be
`multihomed but unless it specifically forwards packets from one interface to another, it is not
`called a router. Also, routers need not be special hardware boxes that only move packets around
`an internet. Most TCP/IP implementations allow a multihomed host to act as a router also, but
`the host needs to be specifically configured for this to happen. In this case we can call the system
`either a host (when an application such as FTP or Telnet is being used) or a router (when it's
`
`file:///D|/Documents%20and%20Settings/bigini/Docu...homenet2run/tcpip/tcp-ip-illustrated/introduc.htm (4 of 20) [12/09/2001 14.46.31]
`
`CISCO SYSTEMS, INC. Ex. 1028 Page 19
`
`

`
`Chapter 1. Introduction
`
`forwarding packets from one network to another). We'll use whichever term makes sense given
`the context.
`
`One of the

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket