CONTENlS
Foreword
Fofeword to the Flrt Editlon
Preface
1 Foundation
Problem: Bullding a Network
1.1 Requlroments
1.1.1 Connectivlty
1.1.2 Cot-Effectlv Resource Sharlng
1.1.3 Support for Common Sorvices
1.1.4 Perfonmance
1.2 Network Archlfeture
1.2.1 Layering and Protocols
12.2 OSL Archltecture
1.2.3 Intemet Archltoetura
1.3 Implementlng Network Software
l.3.l Appllcatlon Programmlng Infrface (Sookf)
1.3.2 Example Appllcation
1.3.3 Protocol Implemtatlon lssues
1.4 Summary
Open lssue: Ublquitous Networklng
Further Reading
Exerclses
2 Oirect Link Networks
Problem: Phyically Connrctlng Hof
2.1 Hardware Bulldlng Blocks
2.1.1 Nodes
2.1.2 Unks
2.2 Encodlng (NRZ. NRZl. Manchester, 4B/5B)
2.3 Framlng
2.3. l Byte-Oriented Protocols (BlSYNC,PPP, DDCMP)
2.3.2 Bit-Orienfod Protocols (HDLC)
2.3.3 Clock-Based Framing (SONET)
2.4 Error Dfctlon
2.4.1 TWo-Dimensional Parity
2.4.2 Internt Checlkum Algorithm
2.4.3 Cyclic Redundanc Check
2.5 Rellable transmisssion
2.5.1 Stop-and-Wait
2.5.2 Siiding Wlndow
2.5.3 Concurront Loglcal Channels
2.6 Ethernet (802.3)
2.0.1 Phylcal Properties
2.0.2 Access Protocol
2.6.3 Experience with Ethernet
2.7 Tokon Rings (802.5. FDDl)
2.7.1 Phylcal Propertis
2.7.2 Tokon Ring Media Access Control
2.7.3 Tokon Rlng Malnfnance
2.7.4 Frane Format
2.7.5 FODl
2.8 Wireless(802.11)
2.8.1 Phylcal Proporties
2.8.2 Collislon Avoldance
2.8.3 Distributlon Syfm
2.8.4 Frame Format
2.9 Network Adaptors
2.9.1 Compononts
2.9.2 Viow from the Hot
2.9.3 Device Drivers
2.9.4 Momory Bottleneck
2.10 Summary
Open Issue: Does It Belong in Hardware?
Further Roadlng
3 Packet Switching
Problom: Not All Notworks Are Dlrectly Connected
3.1 Swltchlng and Forwardlng
3.1.1 Dtagrams
3.1.2 Vlrtual Circult Swltchlng
3.1.3 Sourco Routlng
3.1.4 Implomention and Parformance
3.2 Bridges and LAN Swltches
3.2.1 Lesrning Brldges
3.2.2 Spanning Tree Algorlthm
3.2.3 Broadcast and Multlcast
3.2.4 Limifetions of Brldges
3.3 Cell Switehlng (ATM)
3.3.1 Cells
3.3.2 Segmenttlon and Reasmbly
3.3.3 Vlrtual Paths
3.3.4 Phylcal Layers for ATM
3.3.5 ATM in the LAN
3.4 Swltching Hardware
3.4.1 DeslgnQoals
3.4.2 Ports and Fabrlcs
3.4.3 Crossbar Swltches
3.4.4 Share-Medis Switches
3.4.5 Self-Routlng Fabrics
3.8 Summary
Open lssue: The Future of ATM
Furtler Roading
Exerclses
4 Internetworking
Problem: There is More Than One Ntwork
4.1 Simple Intermetworking (IP)
4. 1.1 What is an Internetwok?
4.1.2 ServlceModol
4.1.3 Olobal Addresses
4.1.4 Datagram Forwardlng in iP
4.1.8 Address Tramlatlon (ARP)
4.1.6 Hot Configurtlon (DHCP)
4.1. 7 Error Roportlng (lCMP)
4.1.8 Vlrtual Ntworks and Tunineis
4.2 Routing
4.2.1 Ntwork as a Graph
4.2.2 Dltance Vector (RlP)
4.2.3 Unk State (OSPF)
4.2.4 Metrics
4.2.5 Routing for Mobiie Hosts
4.3 Qlobal internet
4.3.1 Subnettlng
4.3.2 Classless Routlng (ClDR)
4.3.3 Infrdomain Routlng (BQP)
4.3.4 Routlng Areas
4.3.5 IP version 6 (IPv6)
4.4 Muiticat
4.4.1 Unk-State Multlcast
4.4.2 Difnce-Vector Multicat
4.4.3 Protocol lncdopendont Muitlcat (PlM)
4.6 Summary
Opon issue: IP, ATM, and MPLS
Further Reading
EXercises
5 End-to-End Protocols
Problem: Qettlng Proesses to Communlcate
5.l Simpte Demultlplexer (UDP)
5.2 Reliable Byte Stream (TCP)
5.2.1 End-to-End issues
5.2.2 Sogment Format
5.2.3 Connectlon Establishment and Tormlnation
5.2.4 Slldlng Wlndow Revisitod
5.2.8 Adaptive Retransmission
5.2.9 Racord Boundaries
5.2.7 TCP Extensions
5.2.8 Aiternative Deslgn Cholces
5.3 Ronote Procedure Call
5.3.1 Bulk Transfer (BLAST)
5.3.2 Request////roply(CHAN)
5.3.3 Dispatcler (SELECT)
5.3.4 Putting it All Togther (SunRPC. DCE)
5.4 Performance
5.4.1 Experimental Method
5.4.2 Latency
5.4.3 Throughput
5.5 Summary
Open Lssue: Application-Speclflc Protocoisis
Further Reading
Exerclaes
6 Congestion Control and Resourca Allocation
Problem: Allocatlng Resourees
6.1 lssues in Resource Allocatlon
6.1.1 Network Model
6.1.2 Taxonomy
6.1.3 Evaluation Criteria
6.2 Queulng Discipllnes
6.2.1 FlFO
6.2.2 FairQueulng
6.3 TCP Congestlon Control
6.3.1 Addltlve increase/Multlpllcative Decrease
6.3.2 Slow Start
6.3.3 Fart Retransmlt and Fast Recovery
6.4 Congation-Avoidance Mechanlsma
6.4. 1 DECblt
6.4.2 Random Early Defctlon (RED)
6.4.3 Sourca Baaed Congetlon Avoldance
6.5 Quallty of Sorvice
6.5.1 Application Requiroments
6.5.2 Intogratod Servlces (RSVP)
6.6.3 Dlfferentiate Servlces
6.5.4 ATM Quality of Service
6.6 Summary
Open lssue: lnside versus Outslde the Network
Further Readlng
7 End-to-End Data
Problem: What Do We Do wlth the Data?
7.1 Presenttion Formatting
7.1.1 Taxonomy
7.1. 2 Examipies(XDR.ASN.l.NDR)
7.2 Df Compression
7.2.1 Lossless Compresslon Algorithms
7.2.2 image Compresslon (JPEO)
7.2.3 Vldeo Compresson (MPEQ)
7.2.4 Transmlttlng MPEQ over a Network
7.2.8 Audlo Compresslon (MP3)
7.3 Summry
Open iasue: Compufr Networks Meet Consuner Electronics
Further Roading
Exerclses
8 Network Security
Problem: Securlng the Data
8.1 Cryptographic Algorithms
8.1.1 Requirements
8.1.2 The Df Eneryption Standard (DES)
8.1.3 RSA
8.1.4 Message Digest 5 (MD5)
8.1.5 implenmontation and porformanee
8.2 Socurlty Mechanisms
8.2.1 Authentlcatlon Protocols
8.2.2 Message intogrity Protoeols
8.2.3 Publle Key Ditrlbutlon (X.509)
8.3 Example Sys tems
8.3.1 Privacy Enhanced Mall (PEM)
8.3.2 Pretty Good Prtvacy (PGP)
8.3.3 Tranport Layer Security (TLS. SSL. HTTPS)
8.3.4 IP Security (IPSEC)
8.4 Firewalls
8.4.1 Fller-Based Firewalls
8.4.2 Proxy-Bassd Flrewalls
8.4.3 Umltatlons
8.5 Summary
Open issue: Donial-of-Service Attacks
Further Readlng
Exercises
9 Applications
Problem: Applications Need Their Own Protoeols
9.1 Name Service (DNS)
9.1.1 Domaln Hierarchy
9.1.2 Name Servers
9.1.3 Name Resolution
9.2 TradltloMl Applicatlons
9.2.1 Electronlc Mail (SMTP, MlME)
9.2.2 World Wlde Web(HTTP)
9.2.3 Network Management (SNMP)
9.3 Multimedia Applications
9.3.1 Requirements
9.3.2 Real-tlme Tranport Protocol (RTP)
9.3.3 Session Control and Call Control (H.323)
9.4 Summary
Open lssue: Programming the Network
Further Reading
Exarclses
Qlossary
Index