`
`EXHIBIT
`1007
`
`1007
`
`
`
`> U 9C
`
`D 0 .
`
`Z EI
`
`‘|"1
`C/3
`|—'
`
`m -
`
`<
`
`-0
`
`E O‘
`
`:1
`H1
`Ln
`
`Z‘
`
`0 Z >r
`
`-
`
`('3
`
`0 Z—
`
`U C i Z 0 C
`
`f)
`|"l"l
`
`Em C
`
`/3
`
`Viptela, Inc. - Exhibit 100
`
`Page
`
`Viptela, Inc. - Exhibit 1007
`Page 1
`
`
`
`
`
`
`Solaris 2.2
`
`Internet
`
`Cisco
`router
`
`SLIP (dialup)
`
`
`
`
`
`.1.29 BSD/3861.0 SunOS 4.1.3
`
`BSD/386 1.0
`
`
`
`
`
`Portion of the class B network 140.252 used for all the examples in the text.
`All the hosts are in the tuc . noao . edu domain.
`
`Viptela, Inc. - Exhibit 1007
`
`~ Page 2
`
`Viptela, Inc. - Exhibit 1007
`Page 2
`
`
`
`IP Header
`
`0
`
`15 16
`
`31
`
`f
`
`
`
`8-b't
`
`‘
`
`4-b't h d
`
`16-bit identification
`
`tyF1?O°S)servme
`
`'
`
`4-b't
`
`
`
`versilon
`
`
`
`8-bit time to live
`(TIL)
`
`
`
`.
`
`.
`
`16-bit total length (in bytes)
`
`13-bit fragment offset
`
`
`
`8-bit protocol
`
`16-bit header checksum
`
`20 bytes
`
`32-bit source IP address
`
`32-bit destination IP address
`
`options (if any)
`
`UDP Header
`0
`
`15 16
`
`31
`
`
`
`16-bit source port number
`
`16-bit destination port number
`
`16-bit UDP length
`
`16-bit UDP checksum
`
`*4
`8 bytes
`I-
`
`
`
`data (if any)
`
`TCP Header
`o
`
`15 16
`
`3]
`
`
`
`
`
`
`
`4-bit header
`length
`
`16-bit TCP checksum
`
`U ‘ P R ' F
`G K H T N N
`
`
`
`options (if any)
`
`
`data (if any)
`Viptela, Inc. - Exhi it 1007
`
`
`Page 3
`
`16-bit source port number
`
`16-bit destination port number
`
`32-bit sequence number
`
`
`
`32-bit acknowledgment number
`
`_
`
`_
`
`16-bit window size
`
`_
`
`16-bit urgent pointer
`
`'—»a
` _
`
`20 bytes
`
`
`
`
`
`Viptela, Inc. - Exhibit 1007
`Page 3
`
`
`
`TCP/lP|Ilustrated, Volume 1
`
`Viptela, Inc. - Exhibit 1007
`
`Page 4
`
`Viptela, Inc. - Exhibit 1007
`Page 4
`
`
`
`Addison-Wesley Professional Computing Series
`
`Brian W. Kernighan, Consulting Editor
`
`Ken Arnold /]ohn Peyton, A C User's Guide to ANSI C
`
`Matthew H. Austern, Generic Programming and the STL: Using and Extending the C++ Standard
`
`Template Library
`
`e
`
`David R. Butenhof, Programming with POSIX® Threads
`
`Tom Cargill, C++ Programming Style
`
`William R. Cheswick / Steven M. Bellovin, Firewalls and Internet Security: Repelling the Wily Hacker
`
`David A. Curry, UNIX® System Security: A Guide for Users and System Administrators
`
`Erich Gamma / Richard Helm/ Ralph Johnson/John Vlissides, Design Patterns: Elements of
`
`Reusable Object—Oriented Software
`
`-
`
`Erich Gamma / Richard Helm/ Ralph Iohnson/John Vlissides, Design Patterns CD: Elements of
`Reusable Object—Oriented Software
`
`David R. Hanson, C Interfaces and Implementations: Techniques for Creating Reusable Software
`Mark Harrison/ Michael McLennan, Efiective Tcl/Tk Programming: Writing Better Programs with
`Tcl and Tk
`
`Michi Henning / Steve Vinoski, Advanced CORBA® Programming with C++
`
`Brian W. Kernighan and Rob Pike, The Practice of Programming
`
`S. Keshav, An Engineering Approach to Computer Networking: ATM Networks, the Internet, and
`
`the Telephone Network
`
`John Lakos, Large—Scale C++ Software Design
`
`Scott Meyers, Effective C++ CD: 85 Specific Ways to Improve Your Programs and Designs
`
`Scott Meyers, Effective C++, Second Edition: 50 Specific Ways to Improve Your Programs and Designs
`
`Scott Meyers, More Eflective C++: 35 New Ways to Improve Your Programs and Designs
`
`Robert B. Murray, C++ Strategies and Tactics
`
`David R. Musser/Atul Saini, STL Tutorial and Reference Guide: C++ Programming with the
`
`Standard Template Library
`Iohn K. Ousterhout, Tcl and the Tk Toolkit
`
`Craig Partridge, Gigabit Networking
`
`I. Stephen Pendergrast Ir, Desktop KornShell Graphical Programming
`Radia Perlman, Interconnections, Second Edition: Bridges and Routers
`David M. Piscitello /A. Lyman Chapin, Open Systems Networking: TCP/IP and OSI
`Stephen A. Rago, LINIX® System V Network Programming
`‘
`
`Curt Schimmel, l,lNIX® Systems for Modern Architectures: Symmetric Multiprocessing and
`
`Caching for Kernel Programmers
`
`W. Richard Stevens, Advanced Programming in the LINIX® Environment
`W. Richard Stevens, TCP/IP Illustrated, Volume 1: The Protocols
`
`W. Richard Stevens, TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the
`LINIX® Domain Protocols
`
`Gary R. Wright / W. Richard Stevens, TCP/IP Illustrated, Volume 2: The Implementation
`
`Please see our web site (http: / /www.awl.com/cseng/series/professionalcomputing) for more information on these titles.
`Viptela, Inc. - Exhibit 1007
`
`Page 5
`
`Viptela, Inc. - Exhibit 1007
`Page 5
`
`
`
`TCP/IP Illustrated, Volume 1
`
`The Protocols
`
`W. Richard Stevens
`
`A
`VV
`
`ADDISON—WESLEY
`
`An imprint of Addison Wesley Longman, Inc.
`
`Reading, Massachusetts - Harlow, England - Menlo Park, California
`Berkeley, California - Don Mills, Ontario - Sydney
`Bonn - Amsterdam - Tokyo - Mexico City
`
`Viptela, Inc. - Exhibit 1007
`
`Page 6
`
`Viptela, Inc. - Exhibit 1007
`Page 6
`
`
`
`UNIX is a technology trademark of X/Open Company, Ltd.
`
`The publisher offers discounts on this book when ordered in quantity for special sales.
`For more information please contact:
`'
`Corporate & Professional Publishing Group
`Addison-Wesley Publishing Company
`One Jacob Way
`Reading, Massachusetts 01867
`
`Library of Congress Cataloging-in-Publication Data
`Stevens, W. Richard
`TCP/IP Illustrated: the protocols/W. Richard Stevens.
`p. cm. ~ (Addison-Wesley professional computing series)
`Includes bibliographical references and index.
`ISBN 0-201-63346-9 (V. 1)
`1.TCP/IP (Computer network protocol) I. Title. II. Series.
`TK5105.55S74 1994
`004.6’2—dc20
`
`Copyright © 1994 Addison Wesley Longman, Inc.
`
`All rights reserved. No part of this publication may be reproduced, stored in a retrieval system,
`or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or
`otherwise, without prior written permission of the publisher. Printed in the United States of
`America. Published simultaneously in Canada.
`
`Text printed on recycled and acid-free paper.
`ISBN 0201633469
`141516171819 MA 020100 99
`
`14th Printing July 1999
`
`Viptela, Inc. - Exhibit 1007
`
`Page 7
`
`Viptela, Inc. - Exhibit 1007
`Page 7
`
`
`
`"[0 Brian I<errzz'ghan and Iohn Wait,
`for their encouragement, faith, and support
`over the past 5 years.
`
`Viptela, Inc. - Exhibit 1007
`
`Page 8
`
`Viptela, Inc. - Exhibit 1007
`Page 8
`
`
`
`Praise for TCP/IP Illustrated, Volume 1: The Protocols
`
`“This is sure to be the bible for TCP/IP developers and users. Within minutes of picking up the text,
`I encountered several scenarios which had tripped~up both my colleagues and myself in the past.
`Stevens reveals many of the mysteries once held tightly by the ever—elusive networking gurus.
`Having been involved in the implementation of TCP/IP for some years now, I consider this by far
`the finest text to date.”
`
`— Robert A. Ciampa, Network Engineer, Synernetics, division of 3COM
`
`“While all of Stevens’ books are readable and technically excellent, this new opus is awesome.
`Although many books describe the TCP/IP protocols, Stevens provides a level of depth and real-
`world detail lacking from the competition. He puts the reader inside TCP/IP using a visual approach
`and shows the protocols in action.”
`
`—— Steven Baker, Networking Columnist, Umlr Review
`
`“TCP/IP Illustrated, Volume 1 is an excellent reference for developers, network administrators, or
`anyone who needs to understand TCP/IP technology. TCP/IP Illustrated is comprehensive in its
`coverage of TCP/IP topics, providing enough details to satisfy the experts while giving enough
`background and commentary for the novice.”
`
`— Bob Williams, VP. Marketing, NetManage, Inc.
`
`“... the difference is that Stevens wants to show as well as tell about the protocols. His principal
`teaching tools are straight—forward explanations, exercises at the ends of chapters, byte—by—byte
`diagrams of headers and the like, and listings of actual traffic as examples.”
`
`— Walter Zintz, UmL\‘World
`
`“Much better than theory only W. Richard Stevens takes a multihost—based configuration and uses
`it as a travelogue of TCP/IP examples with illustrations. TCP/IP Illustrated, Volume I is based on
`practical examples that reinforce the theory — distinguishing this book from others on the subject,
`and making it both readable and informative.”
`
`—-— Peter M. Haverlock, Consultant, IBM TCP/IP Development
`
`“The diagrams he uses are excellent and his writing style is clear and readable. In sum," Stevens has
`made a complex topic easy to understand. This book merits everyone’s attention. Please read it and '
`keep it on your bookshelf.”
`
`— Elizabeth Zinkann, Sys Admin
`
`“W. Richard Stevens has produced a fine text and reference work. It is well organized and very
`clearly written with, as the title suggests, many excellent illustrations exposing the intimate details
`of the logic and operation of IP, TCP, and the supporting cast of protocols and applications.”
`
`— Scott Bradner, Consultant, Harvard University OIT/NSD
`
`Viptela, Inc. - Exhibit 1007
`
`Page 9
`
`Viptela, Inc. - Exhibit 1007
`Page 9
`
`
`
`Contents
`
`Preface
`
`Chapter 1.
`
`Introduction
`
`xv
`
`1
`
`1.1
`
`1.2
`1.3
`1.4
`
`1.5
`1.6
`1.7
`1.8
`1.9
`1.10
`1.11
`
`1.12
`1.13
`
`1.14
`1.15
`1.16
`
`1.17
`
`Introduction
`
`1
`
`1
`Layering
`TCP/IP Layering
`Internet Addresses
`
`6
`
`7
`
`9
`
`The Domain Name System
`Encapsulation
`9
`Demultiplexing
`11
`Client—Server Model
`Port Numbers
`12
`Standardization Process
`RFCs
`14
`
`12
`
`14
`
`Standard, Simple Services
`The Internet
`16
`
`15
`
`16
`Implementations
`Application Programming Interfaces
`Test Network
`18
`
`17
`
`Summary
`
`19
`
`Vipte1a,Inc. — Exhibit 1367
`Page 10
`
`Viptela, Inc. - Exhibit 1007
`Page 10
`
`
`
`viii
`
`TCP/IP Illustrated
`
`Chapter 2.
`
`Link Layer
`
`Contents
`
`21
`
`2.1
`
`2.2
`2.3
`2.4
`
`2.5
`2.6
`
`2.7
`2.8
`2.9
`
`Introduction
`
`21
`
`Ethernet and IEEE 802 Encapsulation
`Trailer Encapsulation
`23
`SLIP: Serial Line IP
`24
`
`21
`
`25
`Compressed SLlP ‘
`PPP: Point—to-Point Protocol
`
`26
`
`Loopback interface
`MTU
`29
`Path MTU
`
`30
`
`28
`
`2.10
`2.11
`
`Serial Line Throughput Calculations
`Summary
`31
`
`30
`
`Chapter 3.
`
`IP:
`
`lnternet Protocol
`
`33
`
`3.1
`3.2
`
`3.3
`3.4
`3.5
`
`3.6
`3.7
`3.8
`3.9
`3.10
`
`3.11
`
`introduction
`IP Header
`
`33
`34
`
`37
`IP Routing
`Subnet Addressing
`Subnet Mask
`43
`
`42
`
`Special Case IP Addresses
`A Subnet Example
`46
`ifconfig Command
`47
`net stat Command
`49
`IP Futures
`49
`
`Summary
`
`50
`
`45
`
`Chapter 4.
`
`ARP: Address Resolution Protocol
`
`53
`
`4.1
`
`4.2
`4.3
`4.4
`
`4.5
`4.6
`4.7
`
`4.8
`4.9
`
`Introduction
`
`53
`
`54
`An Example
`56
`ARP Cache
`ARP Packet Format
`
`ARP Examples
`Proxy ARP
`Gratuitous ARP
`
`60
`
`arp Command
`Summary
`63
`
`57
`
`62
`
`63
`
`56
`
`Chapter 5.
`
`RARP: Reverse Address Resolution Protocol
`
`65
`
`5.1
`5.2
`
`5.3
`5.4
`5.5
`
`65
`Introduction
`RARP Packet Format
`
`RARP Examples
`RARP Server Design
`Summary
`68
`
`66
`
`65
`
`67
`
`Viptela, Inc. - Exhibit 1007
`
`Page 11
`
`Viptela, Inc. - Exhibit 1007
`Page 11
`
`
`
`TCP / IP Illustrated
`
`Contents
`
`ix
`
`69
`
`85
`
`97
`
`111
`
`127
`
`Chapter 6.
`
`ICMP:1 Internet Control Message Protocol
`
`6.1
`6.2
`6.3
`6.4
`6.5
`6.6
`6.7
`
`Introduction
`
`69
`
`70
`ICMP Message Types
`ICMP Address Mask Request and Reply
`ICIVIP Timestamp Request and Reply
`ICMP Port Unreachable Error
`77
`
`72
`
`74
`
`4.4BSD Processing of
`Summary
`83
`
`ICMP Messages
`
`81
`
`Chapter 7.
`
`Ping Program
`
`7.1
`7.2
`7.3
`7.4
`7.5
`
`Introduction
`
`85
`
`85
`Ping Program
`IP Record Route Option
`IP Timestamp Option
`Summary
`96
`
`91
`
`95
`
`Chapter 8.
`
`Traceroute Program
`
`8.1
`8.2
`8.3
`8.4
`8.5
`8.6
`
`Introduction
`
`97
`
`Traceroute Program Operation
`LAN Output
`99
`WAN Output
`102
`IP Source Routing Option
`Summary
`109
`
`104
`
`97
`
`Chapter 9.
`
`IP Routing
`
`9.1
`9.2
`9.3
`9.4
`9.5
`9.6
`9.7
`
`Introduction
`
`111
`
`112
`Routing Principles
`ICMP Host and Network Unreachable Errors
`To Forward or Not
`to Forward
`119
`ICMP Redirect Errors
`119
`
`117
`
`ICMP Router Discovery Messages
`Summary
`125
`
`123
`
`Chapter 10.
`
`Dynamic Routing Protocols
`
`10.1
`10.2
`10.3
`10.4
`10.5
`10.6
`10.7
`10.8
`10.9
`
`Introduction
`
`127
`
`127
`Dynamic Routing
`128
`Unix Routing Daemons
`RIP: Routing Information Protocol
`RIP Version 2
`136
`
`129
`
`137
`OSPF: Open Shortest Path First
`138
`BGP: Border Gateway Protocol
`CIDR: Classless lnterdomain Routing
`Summary
`141
`
`140
`
`Viptela, Inc. - Exhibit 1007
`
`Page 12
`
`Viptela, Inc. - Exhibit 1007
`Page 12
`
`
`
`x
`
`TCP/IP Illustrated
`
`Contents
`
`Chapter 11.
`
`UDP: User Datagram Protocol
`
`143
`
`11.1
`11.2
`11.3
`
`11.4
`11.5
`11.6
`11.7
`11.8
`11.9
`
`introduction
`LIDP Header
`UDP Checksum
`
`143
`144
`144
`
`147
`A Simple Example
`148
`IP Fragmentation
`ICMP Unreachable Error (Fragmentation Required)
`Determining the Path MTU Using Traceroute
`153
`Path MTU Discovery with LIDP
`155
`Interaction Between UDP and ARP
`
`157
`
`151
`
`11.10 Maximum LIDP Datagram Size
`11.11
`ICMP Source Quench Error
`
`159
`160
`
`11.12
`11.13
`
`LIDP Server Design
`Summary
`167
`
`162
`
`Chapter 12.
`
`Broadcasting and Multicasting
`
`169
`
`12.1
`
`Introduction
`
`169
`
`171
`Broadcasting
`12.2
`Broadcasting Examples
`12.3
`12.4 Multicasting
`175
`12.5
`Summary
`178
`
`172
`
`Chapter 13.
`
`IGMP: Internet Group Management Protocol
`
`179
`
`13.1
`
`13.2
`13.3
`
`13.4
`13.5
`
`introduction
`
`179
`
`IGMP Message
`IGMP Protocol
`
`180
`180
`
`An Example
`Summary
`
`183
`186
`
`Chapter 14.
`
`DNS: The Domain Name System
`
`187
`
`14.1
`14.2
`
`14.3
`14.4
`14.5
`14.6
`
`14.7
`14.8
`
`Introduction
`DNS Basics
`
`187
`188
`
`DNS Message Format
`A Simple Example
`Pointer Queries
`Resource Records
`
`198
`201
`
`191
`
`194
`
`203
`Caching
`UDP or TOP
`
`206
`
`Another Example
`14.9
`14.10 Summary
`208
`
`206
`
`Viptela, Inc. - Exhibit 1007
`
`Page 13
`
`Viptela, Inc. - Exhibit 1007
`Page 13
`
`
`
`TCP / IP Illustrated
`
`Contents
`
`xi
`
`Chapter 15.
`15.1
`15.2
`15.3
`15.4
`15.5
`
`Chapter 16.
`16.1
`16.2
`16.3
`16.4
`16.5
`16.6
`16.7
`
`Chapter 17.
`17.1
`17.2
`17.3
`17.4
`
`Chapter 18.
`18.1
`18.2
`18.3
`18.4
`18.5
`18.6
`18.7
`18.8
`18.9
`18.10
`18.11
`18.12
`
`TFTP: Trivial File Transfer Protocol
`
`209
`
`Introduction
`Protocol
`
`209
`209
`
`An Example
`Security
`Summary
`
`21 1
`
`213
`213
`
`BOOTP: Bootstrap Protocol
`
`215
`Introduction
`BOOTP Packet Format
`
`218’
`An Example
`BOOTP Server Design
`BOOTP Through a Router
`Vendor~Specific Information
`Summary
`222
`
`215
`
`219
`
`220
`221
`
`215
`
`TCP: Transmission Control Protocol
`
`223
`
`Introduction
`TCP Services
`TCP Header
`
`223
`223
`225
`
`Summary
`
`227
`
`TCP Connection Establishment and Termination
`
`229
`
`229
`Introduction
`Connection Establishment and Termination
`235
`Timeout of Connection Establishment
`
`229
`
`240
`
`Maximum Segment Size
`TCP Half-Close
`238
`
`236
`
`TCP State Transition Diagram
`Reset Segments
`246
`Simultaneous Open
`250
`Simultaneous Close
`252
`
`253
`_
`TCP Options
`TCP Server Design
`Summary
`260
`
`254
`
`Chapter 19.
`
`TCP Interactive Data Flow
`
`263
`
`19.1
`19.2
`19.3
`19.4
`19.5
`19.6
`
`Introduction
`
`263
`
`263
`Interactive Input
`Delayed Acknowledgments
`Nagle Algorithm
`267
`Window Size Advertisements
`
`265
`
`274
`
`Summary
`
`274
`
`Viptela, Inc. - Exhibit 1007
`
`Page 14
`
`Viptela, Inc. - Exhibit 1007
`Page 14
`
`
`
`xii
`
`TCP /IP Illustrated
`
`Chapter 20.
`
`TOP Bulk Data Flow
`
`20.1
`20.2
`
`275
`Introduction
`Normal Data Flow
`
`275
`
`Sliding Windows
`20.3
`20.4 Window Size
`
`280
`282
`
`20.5
`20.6
`
`20.7
`20.8
`20.9
`
`PUSH Flag
`Slow Start
`
`284
`285
`
`Bulk Data Throughput
`Urgent Mode
`292
`Summary
`
`296
`
`286
`
`Contents
`
`275
`
`Chapter 21.
`
`TCP Timeout and Retransmission
`
`297
`
`21.1
`
`introduction
`
`297
`
`21.2
`21.3
`21.4
`21.5
`4 21.6
`21.7
`21.8
`21.9
`21.10
`
`Simple Timeout and Retransmission Example
`Round-Trip Time Measurement
`299
`An RTT Example
`301
`Congestion Example
`306
`310
`Congestion Avoidance Algorithm
`Fast Retransmit and Fast Recovery Algorithms
`Congestion Example (Continued)
`313
`Per-Route Metrics
`316
`ICMP Errors
`317
`
`298
`
`312
`
`21 .1 1 Repacketization
`21.12 Summary 5
`321
`
`320
`
`Chapter 22.
`
`TCP Persist Timer
`
`22.1
`
`22.2
`22.3
`22.4
`
`Introduction
`
`323
`
`323
`An Example
`Silly Window Syndrome
`Summary
`330
`
`325
`
`Chapter 23.
`
`TCP Keepalive Timer
`
`23.1
`
`23.2
`23.3
`23.4
`
`Introduction
`
`331
`
`332
`Description
`Keepalive Examples
`Summary
`337
`
`333
`
`Chapter 24.
`
`TCP Futures and Performance
`
`24.1
`
`Introduction
`
`339
`
`Path MTU Discovery
`24.2
`Long Fat Pipes
`344
`24.3
`24.4 Window Scale Option
`
`340
`
`347
`
`323
`
`331
`
`339
`
`Viptela, Inc. - Exhibit 1007
`
`Page 15
`
`Viptela, Inc. - Exhibit 1007
`Page 15
`
`
`
`TCP /IP Illustrated
`
`Contents
`
`xiii
`
`24.5
`24.6
`24.7
`24.8
`24.9
`
`349
`Timestamp Option
`PAWS: Protection Against Wrapped Sequence Numbers 351
`Tfl'CP: A TOP Extension for Transactions
`351
`TCP Performance
`354
`
`Summary
`
`356
`
`Chapter 25.
`
`SNMP: Simple Network Management Protocol
`
`359
`
`25.1
`25.2
`25.3
`25.4
`25.5
`25.6
`25.7
`25.8
`25.9
`25.10
`25.11
`25.12
`25.13
`
`Introduction
`Protocol
`
`359
`360
`
`Structure of Management
`Object Identifiers
`‘364
`Introduction to the Management Information Base
`Instance Identification
`367
`
`information
`
`363
`
`365
`
`370
`Simple Examples
`Management
`Information Base (Continued)
`Additional Examples
`382
`Traps
`385
`ASN.1 and BER
`SNMP Version 2
`
`386
`387
`
`Summary
`
`388
`
`372
`
`Chapter 26.
`
`Telnet and Rlogin: Remote Login
`
`389
`
`26.1
`26.2
`26.3
`26.4
`26.5
`26.6
`
`introduction
`
`389
`
`Rlogin Protocol
`Rlogin Examples
`Telnet Protocol
`
`Telnet Examples
`Summary
`417
`
`391
`396
`401
`
`406
`
`Chapter 27.
`
`FTP: File Transfer Protocol
`
`419
`
`27.1
`27.2
`27.3
`27.4
`
`Introduction
`FTP Protocol
`
`419
`419
`
`FTP Examples
`Summary
`439
`
`426
`
`Chapter 28.
`
`SMTP: Simple Mail Transfer Protocol
`
`441
`
`28.1
`28.2
`28.3
`28.4
`28.5
`
`Introduction
`SMTP Protocol
`
`441
`
`442
`
`SMTP Examples
`SMTP Futures
`
`448
`452
`
`Summary
`
`459
`
`Viptela, Inc. - Exhibit 1007
`
`Page 16
`
`Viptela, Inc. - Exhibit 1007
`Page 16
`
`
`
`xiv
`
`TCP /IP Illustrated
`
`Chapter 29.
`
`NFS: Network File System
`
`29.1
`29.2
`29.3
`
`29.4
`29.5
`29.6
`29.7
`29.8
`
`461
`Introduction
`Sun Remote Procedure Call
`
`461
`
`XDR: External Data Representation
`Port Mapper
`465
`NFS Protocol
`467
`
`465
`
`NFS Examples
`l\lFS Version 3
`
`474
`479
`
`Summary
`
`480
`
`Chapter 30.
`
`Other TCP/IP Applications
`
`30.1
`30.2
`30.3
`30.4
`30.5
`30.6
`
`Introduction
`
`481
`
`Finger Protocol
`Whois Protocol
`
`481
`483
`
`Archie, WAIS, Gopher, Veronica, and WWW
`X WindowtSystem
`486
`Summary
`490
`
`484
`
`Appendix A.
`
`The tcpdump Program
`
`A.1
`A.2
`A.3
`A.4
`A.5
`A.6
`
`BSD Packet Filter
`
`491
`
`493
`SunOS Network Interface Tap
`SVR4 Data Link Provider Interface
`
`494
`
`495
`tcpdump Output
`Security Considerations
`Socket Debug Option
`
`496
`496
`
`Appendix B.
`
`Computer Clocks
`
`Appendix C.
`
`The sock Program
`
`Appendix D.
`
`Solutions to Selected Exercises
`
`Appendix E.
`E.1
`E.2
`E.3
`E.4
`E.5
`E.6
`
`Configurable Options
`
`BSD/386 Version 1.0
`SunOS 4.1.3
`527
`
`System V Release 4
`Solaris 2.2
`529
`AIX 3.2.2
`536
`4.4BSD
`537
`
`526
`
`529
`
`Appendix F.
`
`Source Code Availability
`
`Bibliography
`
`Index
`
`Contents
`
`461
`
`481
`
`491
`
`499
`
`503
`
`507
`
`525
`
`539
`
`543
`
`555
`
`Viptela, Inc. - Exhibit 1007
`
`Page 17
`
`Viptela, Inc. - Exhibit 1007
`Page 17
`
`
`
`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 imple-
`mentation 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 dis-
`played 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]. ]ust attach a workstation to your net-
`work, 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 imdersttmding how the network proto-
`cols 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.
`
`Viptela, Inc. - Exhibit 1637
`Page 18
`
`Viptela, Inc. - Exhibit 1007
`Page 18
`
`
`
`xvi
`
`TCP /IP Illustrated
`
`Preface
`
`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 applica-
`tion is described.
`
`Chap. 7
`.
`
`l Ping
`
`26
`Telnet &
`
`[Rlogin
`
`27
`
`FTP
`
`28
`
`30
`
`SMTP l
`
`8
`Trace-
`
`mute
`
`
`
`14
`
`15
`
`16
`
`25
`
`\ DN:H TFTP HBOOTI{H SNMP x.—:{RPC
`
`29
`NFS
`
`TCP
`
`17, 18,19, 20
`
`21, 22, 23, 24
`
`11,12
`
`UDP i
`
`5
`
`IP —? IGMP 13
`3’9' 10
`ICMP
`[4 LT; v
`
`4
`
`ARP
`
`2 Data
`Link
`
`5
`
`RARP
`
`media
`
`(Numerous fine points are missing from this figure that will be discussed in the appro-
`priate 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 applica-
`tion 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
`
`Viptela, Inc. - Exhibit 1007
`
`Page 19
`
`Viptela, Inc. - Exhibit 1007
`Page 19
`
`
`
`TCP/IP Illustrated
`
`Preface
`
`xvii
`
`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 run-
`ning these applications.
`
`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 Appen-
`dix 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 (p. 18) shows a diagram of the differ-
`ent 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 net-
`works 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:
`
`- 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 on
`p. 17.)
`
`Viptela, Inc. - Exhibit 1007
`
`Page 20
`
`Viptela, Inc. - Exhibit 1007
`Page 20
`
`
`
`xviii
`
`TCP / IP Illustrated
`
`Preface
`
`0 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.
`
`0 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.
`
`¢ 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 com-
`monly called Solaris 2.2.)
`
`0 AIX 3.2.2 from IBM on thelhost named aix. The TCP/IP implementation is
`based on the 4.3BSD Reno release.
`
`°
`
`4.4BSD from the Computer Systems Research Group at the University of Califor-
`nia 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. .
`Connected to svr4 .
`
`.
`
`this line and next output by.Telnet client
`
`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 if conf ig(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 paren-
`theses is the section number in the Unix manual of the "manual page” for the com-
`mand, 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.
`
`Viptela, Inc. - Exhibit 1007
`
`Page 21
`
`Viptela, Inc. - Exhibit 1007
`Page 21
`
`
`
`TCP/IP Illustrated
`
`Preface
`
`xix
`
`Acknowledgments
`
`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 infi-
`nite 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) criti-
`cisms add greatly to the final product. My thanks to Steve Bellovin, Ion Crowcroft, Pete
`Haverlock, and Doug Schmidt for comments on the entire manuscript. Equally valu-
`able comments were provided on portions of the manuscript by Dave Borman, Tony
`DeSimone, Bob Gilligan, Jeff Gitlin, Iohn 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: ]oe
`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
`Iacobson 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), espe-
`cially Sidney Wolff, Richard Wolff, and Steve Grandi, for providing access to their net-
`works 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 ]ohn Wait is simply the best there is. Working with John and the rest of the profes-
`sionals 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 Groff package written by ]ames 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
`Viptela, Inc. - Exhibit 1007
`
`Page 22
`
`Viptela, Inc. - Exhibit 1007
`Page 22
`
`
`
`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 net-
`works has, in the 1990s, turned into the most widely used form of networking between
`computers.
`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 ade-
`quate 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 combina-
`tion of different protocols at various layers. TCP/IP is normally considered to be a
`4-layer system, as shown in Figure 1.1.
`
`Viptela, Inc. - Exhibit 1067
`Page 23
`
`Viptela, Inc. - Exhibit 1007
`Page 23
`
`
`
`2
`
`Introduction
`
`Chapter 1
`
`Application
`
`Telnet, FTP, e—mail, etc.
`
`Transport
`
`TCP, UDP
`
`Network
`
`IP, ICMP, IGMP
`
`Link
`
`device driver and interface card
`
`Figure 1.1 The four layers