Table Of Content00 2080 fm 8/16/01 1:38 PM Page i
TCP/IP
Primer Plus
Heather Osterloh
201 West 103rd St., Indianapolis, Indiana, 46290 USA
00 2080 fm 8/16/01 1:38 PM Page ii
TCP/IP Primer Plus ASSOCIATE PUBLISHER
Jeff Koch
Copyright © 2002 by Sams Publishing ACQUISITIONS EDITOR
All rights reserved. No part of this book shall be reproduced, stored in a retrieval system, Kathryn Purdum
or transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise,
DEVELOPMENT EDITOR
without written permission from the publisher. No patent liability is assumed with respect
Mark Renfrow
to the use of the information contained herein. Although every precaution has been taken
in the preparation of this book, the publisher and author assume no responsibility for errors MANAGING EDITOR
or omissions. Nor is any liability assumed for damages resulting from the use of the infor- Matt Purcell
mation contained herein.
PROJECT EDITOR
International Standard Book Number: 0-672-32208-0
Christina Smith
Library of Congress Catalog Card Number: 2001093492
Emily Morgan
Printed in the United States of America
COPY EDITOR
First Printing: September 2001
Rachel Lopez
04 03 02 01 4 3 2 1
INDEXER
Trademarks Sandra Henselmeier
PROOFREADER
All terms mentioned in this book that are known to be trademarks or service marks have
Kelly Thompson
been appropriately capitalized. Sams Publishing cannot attest to the accuracy of this infor-
Plan-it Publishing
mation. Use of a term in this book should not be regarded as affecting the validity of any
trademark or service mark. TECHNICAL EDITOR
Michelle Truman
Warning and Disclaimer
TEAM COORDINATOR
Every effort has been made to make this book as complete and as accurate as possible, but Vicki Harding
no warranty or fitness is implied. The information provided is on an “as is” basis. The author
INTERIOR DESIGNER
and the publisher shall have neither liability nor responsibility to any person or entity with
Gary Adair
respect to any loss or damages arising from the information contained in this book.
COVER DESIGNER
Alan Clements
PAGE LAYOUT
Michelle Mitchell
00 2080 fm 8/16/01 1:38 PM Page iii
CONTENTS AT A GLANCE
INTRODUTION 1
CHAPTER 1 Overview of Industry Models and Standards . . . . . . . . . . . . . . . . . .3
CHAPTER 2 IP Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
CHAPTER 3 Network Layer/Internet Protocols . . . . . . . . . . . . . . . . . . . . . . . . .61
CHAPTER 4 Address Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
CHAPTER 5 IP Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
CHAPTER 6 Routing Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
CHAPTER 7 Transport/Host-to-Host Layer . . . . . . . . . . . . . . . . . . . . . . . . . . .203
CHAPTER 8 Transmission Control Protocol (TCP) . . . . . . . . . . . . . . . . . . . . .211
CHAPTER 9 User Datagram Protocol (UDP) . . . . . . . . . . . . . . . . . . . . . . . . . .241
CHAPTER 10 Upper-layer Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
CHAPTER 11 Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257
CHAPTER 12 File Transfer Protocol (FTP) . . . . . . . . . . . . . . . . . . . . . . . . . . . .269
CHAPTER 13 Simple Mail Transfer Protocol (SMTP) . . . . . . . . . . . . . . . . . . . . .287
CHAPTER 14 Name Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
CHAPTER 15 HyperText Transfer Protocol (HTTP) . . . . . . . . . . . . . . . . . . . . . .321
CHAPTER 16 Trivial File Transfer Protocol (TFTP) . . . . . . . . . . . . . . . . . . . . . .335
CHAPTER 17 Simple Network Management Protocol (SNMP) . . . . . . . . . . . . .345
CHAPTER 18 Open Network Computing Protocols . . . . . . . . . . . . . . . . . . . . .353
APPENDIX A Request for Comments (RFCs) . . . . . . . . . . . . . . . . . . . . . . . . . .371
APPENDIX B Abbreviations and Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . .423
APPENDIX C TCP/UDP Port Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .431
APPENDIX D Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .433
APPENDIX E Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .465
INDEX 481
00 2080 fm 8/16/01 1:38 PM Page v
TABLE OF CONTENTS
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
CHAPTER 1: Overview of Industry Models and Standards . . . . . . . . . . . . . . . . . .3
Overview of the OSI Reference Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Overview of the Department of Defense Model . . . . . . . . . . . . . . . . . . . . . . . . .5
Benefits of the OSI’s Layered Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Layer Functions Clarified . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Well-defined Framework for Vendors . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
Reduced Networking Complexity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
Promotes Specialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
General Description of OSI Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
Application Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Presentation Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Session Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
Transport Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Network Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
Data Link Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
Physical Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
Data Link Architecture and Topologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
Ethernet and IEEE 802.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
Slow Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Fast Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Gigabit Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
Token-Ring and IEEE 802.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
FDDI and ANSI X3T9.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
Wide Area Networking (WAN) Technologies . . . . . . . . . . . . . . . . . . . . . . . . .25
WAN Encapsulation Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
Request For Comments (RFCs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
Internet Versus intranet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
Groups Responsible for Internet Technology . . . . . . . . . . . . . . . . . . . . . . . . .31
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
CHAPTER 2: IP Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
Understanding Binary to Decimal Conversion . . . . . . . . . . . . . . . . . . . . . . . .33
IP Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Address Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Network and Subnet Masks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
Subnetting and Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
Network Address Translation (NAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
00 2080 fm 8/16/01 1:38 PM Page vi
vi TCP/IP PRIMER PLUS
Static . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
CHAPTER 3: Network Layer/Internet Protocols . . . . . . . . . . . . . . . . . . . . . . . . . .61
IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
IP Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
ICMP Header and Message Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
Checksum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
ICMP Message Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
Ping: Echo Request and Reply—Types 8 and 0 . . . . . . . . . . . . . . . . . . . . .77
Destination Unreachable—Type 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
Source Quench—Type 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
Redirect—Type 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
Router Advertisement and Solicitation—Types
9 and 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
Time Exceeded—Type 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
Parameter Problem—Type 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
Timestamp Request and Reply—Types 13 and 14 . . . . . . . . . . . . . . . . . . .86
Information Request and Reply—Types 15 and 16 . . . . . . . . . . . . . . . . . . .86
Address Mask Request and Reply—Types 17 and 18 . . . . . . . . . . . . . . . . .86
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
CHAPTER 4: Address Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
ARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91
ARP Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91
ARP Cache Mechanisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
Proxy ARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95
Proxy ARP Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95
ARP Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
Hardware Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
Protocol Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
Length of Hardware Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
Length of Protocol Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
Opcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
Sender’s Hardware Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
Sender’s Protocol Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
Target Hardware Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
Target Protocol Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
00 2080 fm 8/16/01 1:38 PM Page vii
CONTENTS vii
RARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
RARP Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
ARP Versus RARP Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
Disadvantages of RARP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
RARP Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
Protocol Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
Length of Hardware Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
Length of Protocol Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
Opcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
Sender’s Hardware Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
Sender’s Protocol Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
Target Hardware Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
Target Protocol Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
BOOTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
BOOTP header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105
BOOTP Request and Reply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
DHCP (Dynamic Host Configuration Protocol) . . . . . . . . . . . . . . . . . . . . . . .110
Allocating Configuration Information . . . . . . . . . . . . . . . . . . . . . . . . . . .111
DHCP Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
DHCP Message Exchanges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
DHCP Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
CHAPTER 5: IP Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
IP Routing Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
Directly Connected Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
Static Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
Default Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
Dynamic Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
Routing Protocols and Best Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
Distance Vector Routing Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
Link State Routing Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
Hybrid Routing Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
CHAPTER 6: Routing Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
Introduction to Routing Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
RIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138
RIPv1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
The RIPv1 Header and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142
00 2080 fm 8/16/01 1:38 PM Page viii
viii TCP/IP PRIMER PLUS
Disadvantages of RIPv1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144
RIP Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
RIP and Demand Circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148
RIPv2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
OSPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152
OSPF Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
OSPF Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
OSPF Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
The LSA Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
OSPF Router States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
OSPF Router Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
OSPF Operation Over Various Data Link Architectures . . . . . . . . . . . . . .167
Area Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170
Standard OSPF Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
Additional Headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
IGRP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181
IGRP Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182
EIGRP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
EIGRP Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
EIGRP Packet Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
BGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
IGPs Versus EGPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188
BGP Routers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189
BGP Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
The BGP Header and Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191
Path Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
BGPv3 Versus BGPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200
CHAPTER 7: Transport/Host-to-Host Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . .203
Transport Layer Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203
Connection-Oriented Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204
Connectionless Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206
Connectionless Versus Connection-oriented Protocols . . . . . . . . . . . . . . .206
Ports and Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
CHAPTER 8: Transmission Control Protocol (TCP) . . . . . . . . . . . . . . . . . . . . . .211
Introduction to TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211
TCP Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212
Source Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213
Destination Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213
00 2080 fm 8/16/01 1:38 PM Page ix
CONTENTS ix
Sequence Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214
Acknowledgement Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214
Data Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
Reserved . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216
Control Flags—6 Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216
Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217
Checksum—2 Bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217
Urgent Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217
TCP Options—Variable Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217
Fundamentals of TCP Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218
Connection Setup and Teardown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219
Multiplexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219
Data Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220
Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221
Reliability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221
Precedence and Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222
Connection-oriented Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223
Session Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223
Session Teardown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227
Sequencing and Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . .230
Keepalives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234
Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234
TCP Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238
CHAPTER 9: User Datagram Protocol (UDP) . . . . . . . . . . . . . . . . . . . . . . . . . . .241
UDP Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242
UDP Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
UDP Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244
UDP Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244
Source Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
Destination Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
Length Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
Checksum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247
CHAPTER 10: Upper-layer Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
Introduction to Upper-layer Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
Application Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251
World Wide Web and HTTP (Hypertext Transfer Protocol) . . . . . . . . . . .251
E-mail and SMTP (Simple Mail Transfer Protocol) . . . . . . . . . . . . . . . . . .252
00 2080 fm 8/16/01 1:38 PM Page x
x TCP/IP PRIMER PLUS
Telnet (Telecommunications Network) . . . . . . . . . . . . . . . . . . . . . . . . . . .252
File Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253
Presentation Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253
Session Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
NetBIOS (Network Basic Input Output System) . . . . . . . . . . . . . . . . . . . .254
NFS (Network File System) and ONC Protocols . . . . . . . . . . . . . . . . . . .255
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255
CHAPTER 11: Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257
Remote Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257
Basic Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259
Network Virtual Terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259
Telnet Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261
Telnet Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268
CHAPTER 12: File Transfer Protocol (FTP) . . . . . . . . . . . . . . . . . . . . . . . . . . . .269
Introduction to File Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .269
FTP Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .270
Data Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274
FTP Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275
FTP Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277
FTP Transmission Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278
FTP Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278
FTP Replies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281
FTP Operation and Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .282
Anonymous FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285
CHAPTER 13: Simple Mail Transfer Protocol (SMTP) . . . . . . . . . . . . . . . . . . . .287
X.400 Naming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .289
Message Transfer Agents (MTAs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .290
SMTP Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291
SMTP Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .292
SMTP Replies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293
MIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297
00 2080 fm 8/16/01 1:38 PM Page xi
CONTENTS xi
CHAPTER 14: Name Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
Why Do We Need Name Resolution? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
Namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
DNS Delegation of Authority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301
Internet Domain Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304
Queries and Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305
Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305
Domain Server Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306
Identifier (ID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306
QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306
Opcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306
Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307
Rcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307
Answers and Questions Headers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309
Domain Name Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310
DNS Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310
NetBios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .313
NetBIOS Over TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314
Node Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .315
WINS (Windows Internet Name Server) . . . . . . . . . . . . . . . . . . . . . . . . .317
NetBIOS Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319
CHAPTER 15: Hypertext Transfer Protocol (HTTP) . . . . . . . . . . . . . . . . . . . . . .321
HTTP and the World Wide Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321
HTTP Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322
HTTP Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322
HTTP Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324
HTTP Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325
Generic Start Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326
General Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326
Message Headers (Request, Response, or Entity) . . . . . . . . . . . . . . . . . . .328
Empty line (CRLF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330
Message Body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330
HTTP Response Messages, Status, and Error Codes . . . . . . . . . . . . . . . . . . .330
HTTP Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333
Review Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334