Cover
Copyright
Contents
Preface
About The Author
PART I: Introduction And Internet Applications
1 Introduction And Overview
1.1 Growth Of Computer Networking
1.2 Why Networking Seems Complex
1.3 The Five Key Aspects Of Networking
1.4 Public And Private Parts Of The Internet
1.5 Networks, Interoperability, And Standards
1.6 Protocol Suites And Layering Models
1.7 How Data Passes Through Layers
1.8 Headers And Layers
1.9 ISO And The OSI Seven Layer Reference Model
1.10 Remainder Of The Text
1.11 Summary
2 Internet Trends
2.1 Introduction
2.2 Resource Sharing
2.3 Growth Of The Internet
2.4 From Resource Sharing To Communication
2.5 From Text To Multimedia
2.6 Recent Trends
2.7 From Individual Computers To Cloud Computing
2.8 Summary
3 Internet Applications And Network Programming
3.1 Introduction
3.2 Two Basic Internet Communication Paradigms
3.3 Connection-Oriented Communication
3.4 The Client-Server Model Of Interaction
3.5 Characteristics Of Clients And Servers
3.6 Server Programs And Server-Class Computers
3.7 Requests, Responses, And Direction Of Data Flow
3.8 Multiple Clients And Multiple Servers
3.9 Server Identification And Demultiplexing
3.10 Concurrent Servers
3.11 Circular Dependencies Among Servers
3.12 Peer-To-Peer Interactions
3.13 Network Programming And The Socket API
3.14 Sockets, Descriptors, And Network I/O
3.15 Parameters And The Socket API
3.16 Socket Calls In A Client And Server
3.17 Socket Functions Used By Both Client And Server
3.18 The Connect Function Used Only By A Client
3.19 Socket Functions Used Only By A Server
3.20 Socket Functions Used With The Message Paradigm
3.21 Other Socket Functions
3.22 Sockets, Threads, And Inheritance
3.23 Summary
4 Traditional Internet Applications
4.1 Introduction
4.2 Application-Layer Protocols
4.3 Representation And Transfer
4.4 Web Protocols
4.5 Document Representation With HTML
4.6 Uniform Resource Locators And Hyperlinks
4.7 Web Document Transfer With HTTP
4.8 Caching In Browsers
4.9 Browser Architecture
4.10 File Transfer Protocol (FTP)
4.11 FTP Communication Paradigm
4.12 Electronic Mail
4.13 The Simple Mail Transfer Protocol (SMTP)
4.14 ISPs, Mail Servers, And Mail Access
4.15 Mail Access Protocols (POP, IMAP)
4.16 Email Representation Standards (RFC2822, MIME)
4.17 Domain Name System (DNS)
4.18 Domain Names That Begin With A Service Name
4.19 The DNS Hierarchy And Server Model
4.20 Name Resolution
4.21 Caching In DNS Servers
4.22 Types Of DNS Entries
4.23 Aliases And CNAME Resource Records
4.24 Abbreviations And The DNS
4.25 Internationalized Domain Names
4.26 Extensible Representations (XML)
4.27 Summary
PART II: Data Communication Basics
5 Overview Of Data Communications
5.1 Introduction
5.2 The Essence Of Data Communications
5.3 Motivation And Scope Of The Subject
5.4 The Conceptual Pieces Of A Communications System
5.5 The Subtopics Of Data Communications
5.6 Summary
6 Information Sources And Signals
6.1 Introduction
6.2 Information Sources
6.3 Analog And Digital Signals
6.4 Periodic And Aperiodic Signals
6.5 Sine Waves And Signal Characteristics
6.6 Composite Signals
6.7 The Importance Of Composite Signals And Sine Functions
6.8 Time And Frequency Domain Representations
6.9 Bandwidth Of An Analog Signal
6.10 Digital Signals And Signal Levels
6.11 Baud And Bits Per Second
6.12 Converting A Digital Signal To Analog
6.13 The Bandwidth Of A Digital Signal
6.14 Synchronization And Agreement About Signals
6.15 Line Coding
6.16 Manchester Encoding Used In Computer Networks
6.17 Converting An Analog Signal To Digital
6.18 The Nyquist Theorem And Sampling Rate
6.19 Nyquist Theorem And Telephone System Transmission
6.20 Nonlinear Encoding
6.21 Encoding And Data Compression
6.22 Summary
7 Transmission Media
7.1 Introduction
7.2 Guided And Unguided Transmission
7.3 A Taxonomy By Forms Of Energy
7.4 Background Radiation And Electrical Noise
7.5 Twisted Pair Copper Wiring
7.6 Shielding: Coaxial Cable And Shielded Twisted Pair
7.7 Categories Of Twisted Pair Cable
7.8 Media Using Light Energy And Optical Fibers
7.9 Types Of Fiber And Light Transmission
7.10 Optical Fiber Compared To Copper Wiring
7.11 Infrared Communication Technologies
7.12 Point-To-Point Laser Communication
7.13 Electromagnetic (Radio) Communication
7.14 Signal Propagation
7.15 Types Of Satellites
7.16 Geostationary Earth Orbit (GEO) Satellites
7.17 GEO Coverage Of The Earth
7.18 Low Earth Orbit (LEO) Satellites And Clusters
7.19 Tradeoffs Among Media Types
7.20 Measuring Transmission Media
7.21 The Effect Of Noise On Communication
7.22 The Significance Of Channel Capacity
7.23 Summary
8 Reliability And Channel Coding
8.1 Introduction
8.2 The Three Main Sources Of Transmission Errors
8.3 Effect Of Transmission Errors On Data
8.4 Two Strategies For Handling Channel Errors
8.5 Block And Convolutional Error Codes
8.6 An Example Block Error Code: Single Parity Checking
8.7 The Mathematics Of Block Error Codes And (n,k) Notation
8.8 Hamming Distance: A Measure Of A Code's Strength
8.9 The Hamming Distance Among Strings In A Codebook
8.10 The Tradeoff Between Error Detection And Overhead
8.11 Error Correction With Row And Column (RAC) Parity
8.12 The 16-Bit Checksum Used In The Internet
8.13 Cyclic Redundancy Codes (CRCs)
8.14 An Efficient Hardware Implementation Of CRC
8.15 Automatic Repeat Request (ARQ) Mechanisms
8.16 Summary
9 Transmission Modes
9.1 Introduction
9.2 A Taxonomy Of Transmission Modes
9.3 Parallel Transmission
9.4 Serial Transmission
9.5 Transmission Order: Bits And Bytes
9.6 Timing Of Serial Transmission
9.7 Asynchronous Transmission
9.8 RS-232 Asynchronous Character Transmission
9.9 Synchronous Transmission
9.10 Bytes, Blocks, And Frames
9.11 Isochronous Transmission
9.12 Simplex, Half-Duplex, And Full-Duplex Transmission
9.13 DCE And DTE Equipment
9.14 Summary
10 Modulation And Modems
10.1 Introduction
10.2 Carriers, Frequency, And Propagation
10.3 Analog Modulation Schemes
10.4 Amplitude Modulation
10.5 Frequency Modulation
10.6 Phase Shift Modulation
10.7 Amplitude Modulation And Shannon's Theorem
10.8 Modulation, Digital Input, And Shift Keying
10.9 Phase Shift Keying
10.10 Phase Shift And A Constellation Diagram
10.11 Quadrature Amplitude Modulation
10.12 Modem Hardware For Modulation And Demodulation
10.13 Optical And Radio Frequency Modems
10.14 Dialup Modems
10.15 QAM Applied To Dialup
10.16 V.32 And V.32bis Dialup Modems
10.17 Summary
11 Multiplexing And Demultiplexing (Channelization)
11.1 Introduction
11.2 The Concept Of Multiplexing
11.3 The Basic Types Of Multiplexing
11.4 Frequency Division Multiplexing (FDM)
11.5 Using A Range Of Frequencies Per Channel
11.6 Hierarchical FDM
11.7 Wavelength Division Multiplexing (WDM)
11.8 Time Division Multiplexing (TDM)
11.9 Synchronous TDM
11.10 Framing Used In The Telephone System Version Of TDM
11.11 Hierarchical TDM
11.12 The Problem With Synchronous TDM: Unfilled Slots
11.13 Statistical TDM
11.14 Inverse Multiplexing
11.15 Code Division Multiplexing
11.16 Summary
12 Access And Interconnection Technologies
12.1 Introduction
12.2 Internet Access Technology: Upstream And Downstream
12.3 Narrowband And Broadband Access Technologies
12.4 The Local Loop And ISDN
12.5 Digital Subscriber Line (DSL) Technologies
12.6 Local Loop Characteristics And Adaptation
12.7 The Data Rate Of ADSL
12.8 ADSL Installation And Splitters
12.9 Cable Modem Technologies
12.10 The Data Rate Of Cable Modems
12.11 Cable Modem Installation
12.12 Hybrid Fiber Coax
12.13 Access Technologies That Employ Optical Fiber
12.14 Head-End And Tail-End Modem Terminology
12.15 Wireless Access Technologies
12.16 High-Capacity Connections At The Internet Core
12.17 Circuit Termination, DSU/ CSU, And NIU
12.18 Telephone Standards For Digital Circuits
12.19 DS Terminology And Data Rates
12.20 Highest Capacity Circuits (STS Standards)
12.21 Optical Carrier Standards
12.22 The C Suffix
12.23 Synchronous Optical Network (SONET)
12.24 Summary
PART III: Packet Switching And Network Technologies
13 Local Area Networks: Packets, Frames, And Topologies
13.1 Introduction
13.2 Circuit Switching And Analog Communication
13.3 Packet Switching
13.4 Local And Wide Area Packet Networks
13.5 Standards For Packet Format And Identification
13.6 IEEE 802 Model And Standards
13.7 Point-To-Point And Multi-Access Networks
13.8 LAN Topologies
13.9 Packet Identification, Demultiplexing, MAC Addresses
13.10 Unicast, Broadcast, And Multicast Addresses
13.11 Broadcast, Multicast, And Efficient Multi-Point Delivery
13.12 Frames And Framing
13.13 Byte And Bit Stuffing
13.14 Summary
14 The IEEE MAC Sublayer
14.1 Introduction
14.2 A Taxonomy Of Mechanisms For Shared Access
14.3 Static And Dynamic Channel Allocation
14.4 Channelization Protocols
14.5 Controlled Access Protocols
14.6 Random Access Protocols
14.7 Summary
15 Wired LAN Technology (Ethernet And 802.3)
15.1 Introduction
15.2 The Venerable Ethernet
15.3 Ethernet Frame Format
15.4 Ethernet Frame Type Field And Demultiplexing
15.5 IEEE's Version Of Ethernet (802.3)
15.6 LAN Connections And Network Interface Cards
15.7 Ethernet Evolution And Thicknet Wiring
15.8 Thinnet Ethernet Wiring
15.9 Twisted Pair Ethernet Wiring And Hubs
15.10 Physical And Logical Ethernet Topology
15.11 Wiring In An Office Building
15.12 Ethernet Data Rates And Cable Types
15.13 Twisted Pair Connectors And Cables
15.14 Summary
16 Wireless Networking Technologies
16.1 Introduction
16.2 A Taxonomy Of Wireless Networks
16.3 Personal Area Networks (PANs)
16.4 ISM Wireless Bands Used By LANs And PANs
16.5 Wireless LAN Technologies And Wi-Fi
16.6 Spread Spectrum Techniques
16.7 Other Wireless LAN Standards
16.8 Wireless LAN Architecture
16.9 Overlap, Association, And 802.11 Frame Format
16.10 Coordination Among Access Points
16.11 Contention And Contention-Free Access
16.12 Wireless MAN Technology And WiMax
16.13 PAN Technologies And Standards
16.14 Other Short-Distance Communication Technologies
16.15 Wireless WAN Technologies
16.16 Micro Cells
16.17 Cell Clusters And Frequency Reuse
16.18 Generations Of Cellular Technologies
16.19 VSAT Satellite Technology
16.20 GPS Satellites
16.21 Software Defined Radio And The Future Of Wireless
16.22 Summary
17 Repeaters, Bridges, And Switches
17.1 Introduction
17.2 Distance Limitation And LAN Design
17.3 Fiber Modem Extensions
17.4 Repeaters
17.5 Bridges And Bridging
17.6 Learning Bridges And Frame Filtering
17.7 Why Bridging Works Well
17.8 Distributed Spanning Tree
17.9 Switching And Layer 2 Switches
17.10 VLAN Switches
17.11 Multiple Switches And Shared VLANs
17.12 The Importance Of Bridging
17.13 Summary
18 WAN Technologies And Dynamic Routing
18.1 Introduction
18.2 Large Spans And Wide Area Networks
18.3 Traditional WAN Architecture
18.4 Forming A WAN
18.5 Store And Forward Paradigm
18.6 Addressing In A WAN
18.7 Next-Hop Forwarding
18.8 Source Independence
18.9 Dynamic Routing Updates In A WAN
18.10 Default Routes
18.11 Forwarding Table Computation
18.12 Distributed Route Computation
18.13 Shortest Paths And Weights
18.14 Routing Problems
18.15 Summary
19 Networking Technologies Past And Present
19.1 Introduction
19.2 Connection And Access Technologies
19.3 LAN Technologies
19.4 WAN Technologies
19.5 Summary
PART IV: Internetworking
20 Internetworking: Concepts, Architecture, And Protocols
20.1 Introduction
20.2 The Motivation For Internetworking
20.3 The Concept Of Universal Service
20.4 Universal Service In A Heterogeneous World
20.5 Internetworking
20.6 Physical Network Connection With Routers
20.7 Internet Architecture
20.8 Intranets And Internets
20.9 Achieving Universal Service
20.10 A Virtual Network
20.11 Protocols For Internetworking
20.12 Review Of TCP/IP Layering
20.13 Host Computers, Routers, And Protocol Layers
20.14 Summary
21 IP: Internet Addressing
21.1 Introduction
21.2 The Move To IPv6
21.3 The Hourglass Model And Difficulty Of Change
21.4 Addresses For The Virtual Internet
21.5 The IP Addressing Scheme
21.6 The IP Address Hierarchy
21.7 Original Classes Of IPv4 Addresses
21.8 IPv4 Dotted Decimal Notation
21.9 Authority For Addresses
21.10 IPv4 Subnet And Classless Addressing
21.11 Address Masks
21.12 CIDR Notation Used With IPv4
21.13 A CIDR Example
21.14 CIDR Host Addresses
21.15 Special IPv4 Addresses
21.16 Summary Of Special IPv4 Addresses
21.17 IPv4 Berkeley Broadcast Address Form
21.18 Routers And The IPv4 Addressing Principle
21.19 Multihomed Hosts
21.20 IPv6 Multihoming And Network Renumbering
21.21 IPv6 Addressing
21.22 IPv6 Colon Hexadecimal Notation
21.23 Summary
22 Datagram Forwarding
22.1 Introduction
22.2 Connectionless Service
22.3 Virtual Packets
22.4 The IP Datagram
22.5 The IPv4 Datagram Header Format
22.6 The IPv6 Datagram Header Format
22.7 IPv6 Base Header Format
22.8 Forwarding An IP Datagram
22.9 Network Prefix Extraction And Datagram Forwarding
22.10 Longest Prefix Match
22.11 Destination Address And Next-Hop Address
22.12 Best-Effort Delivery
22.13 IP Encapsulation
22.14 Transmission Across An Internet
22.15 MTU And Datagram Fragmentation
22.16 Fragmentation Of An IPv6 Datagram
22.17 Reassembly Of An IP Datagram From Fragments
22.18 Collecting The Fragments Of A Datagram
22.19 The Consequence Of Fragment Loss
22.20 Fragmenting An IPv4 Fragment
22.21 Summary
23 Support Protocols And Technologies
23.1 Introduction
23.2 Address Resolution
23.3 An Example Of IPv4 Addresses
23.4 The IPv4 Address Resolution Protocol (ARP)
23.5 ARP Message Format
23.6 ARP Encapsulation
23.7 ARP Caching And Message Processing
23.8 The Conceptual Address Boundary
23.9 Internet Control Message Protocol (ICMP)
23.10 ICMP Message Format And Encapsulation
23.11 IPv6 Address Binding With Neighbor Discovery
23.12 Protocol Software, Parameters, And Configuration
23.13 Dynamic Host Configuration Protocol (DHCP)
23.14 DHCP Protocol Operation And Optimizations
23.15 DHCP Message Format
23.16 Indirect DHCP Server Access Through A Relay
23.17 IPv6 Autoconfiguration
23.18 Network Address Translation (NAT)
23.19 NAT Operation And IPv4 Private Addresses
23.20 Transport-Layer NAT (NAPT)
23.21 NAT And Servers
23.22 NAT Software And Systems For Use At Home
23.23 Summary
24 UDP: Datagram Transport Service
24.1 Introduction
24.2 Transport Protocols And End-To-End Communication
24.3 The User Datagram Protocol
24.4 The Connectionless Paradigm
24.5 Message-Oriented Interface
24.6 UDP Communication Semantics
24.7 Modes Of Interaction And Multicast Delivery
24.8 Endpoint Identification With Protocol Port Numbers
24.9 UDP Datagram Format
24.10 The UDP Checksum And The Pseudo Header
24.11 UDP Encapsulation
24.12 Summary
25 TCP: Reliable Transport Service
25.1 Introduction
25.2 The Transmission Control Protocol
25.3 The Service TCP Provides To Applications
25.4 End-To-End Service And Virtual Connections
25.5 Techniques That Transport Protocols Use
25.6 Techniques To Avoid Congestion
25.7 The Art Of Protocol Design
25.8 Techniques Used In TCP To Handle Packet Loss
25.9 Adaptive Retransmission
25.10 Comparison Of Retransmission Times
25.11 Buffers, Flow Control, And Windows
25.12 TCP's Three-Way Handshake
25.13 TCP Congestion Control
25.14 Versions Of TCP Congestion Control
25.15 Other Variations: SACK And ECN
25.16 TCP Segment Format
25.17 Summary
26 Internet Routing And Routing Protocols
26.1 Introduction
26.2 Static Vs. Dynamic Routing
26.3 Static Routing In Hosts And A Default Route
26.4 Dynamic Routing And Routers
26.5 Routing In The Global Internet
26.6 Autonomous System Concept
26.7 The Two Types Of Internet Routing Protocols
26.8 Routes And Data Traffic
26.9 The Border Gateway Protocol (BGP)
26.10 The Routing Information Protocol (RIP)
26.11 RIP Packet Format
26.12 The Open Shortest Path First Protocol (OSPF)
26.13 An Example OSPF Graph
26.14 OSPF Areas
26.15 Intermediate System - Intermediate System (IS-IS)
26.16 Multicast Routing
26.17 Summary
PART V: Other Networking Concepts & Technologies
27 Network Performance (QoS And DiffServ)
27.1 Introduction
27.2 Measures Of Performance
27.3 Latency Or Delay
27.4 Capacity, Throughput, And Goodput
27.5 Understanding Throughput And Delay
27.6 Jitter
27.7 The Relationship Between Delay And Throughput
27.8 Measuring Delay, Throughput, And Jitter
27.9 Passive Measurement, Small Packets, And NetFlow
27.10 Quality Of Service (QoS)
27.11 Fine-Grain And Coarse-Grain QoS
27.12 Implementation Of QoS
27.13 Internet QoS Technologies
27.14 Summary
28 Multimedia And IP Telephony (VoIP)
28.1 Introduction
28.2 Real-Time Data Transmission And Best-Effort Delivery
28.3 Delayed Playback And Jitter Buffers
28.4 Real-Time Transport Protocol (RTP)
28.5 RTP Encapsulation
28.6 IP Telephony
28.7 Signaling And VoIP Signaling Standards
28.8 Components Of An IP Telephone System
28.9 Summary Of Protocols And Layering
28.10 H.323 Characteristics
28.11 H.323 Layering
28.12 SIP Characteristics And Methods
28.13 An Example SIP Session
28.14 Telephone Number Mapping And Routing
28.15 Summary
29 Network Security
29.1 Introduction
29.2 Criminal Exploits And Attacks
29.3 Security Policy
29.4 Responsibility And Control
29.5 Security Technologies
29.6 Hashing: An Integrity And Authentication Mechanism
29.7 Access Control And Passwords
29.8 Encryption: A Fundamental Security Technique
29.9 Private Key Encryption
29.10 Public Key Encryption
29.11 Authentication With Digital Signatures
29.12 Key Authorities And Digital Certificates
29.13 Firewalls
29.14 Firewall Implementation With A Packet Filter
29.15 Intrusion Detection Systems
29.16 Content Scanning And Deep Packet Inspection
29.17 Virtual Private Networks (VPNs)
29.18 The Use of VPN Technology For Telecommuting
29.19 Packet Encryption Vs. Tunneling
29.20 Security Technologies
29.21 Summary
30 Network Management (SNMP)
30.1 Introduction
30.2 Managing An Intranet
30.3 FCAPS: The Industry Standard Model
30.4 Example Network Elements
30.5 Network Management Tools
30.6 Network Management Applications
30.7 Simple Network Management Protocol
30.8 SNMP's Fetch-Store Paradigm
30.9 The SNMP MIB And Object Names
30.10 The Variety Of MIB Variables
30.11 MIB Variables That Correspond To Arrays
30.12 Summary
31 Software Defined Networking (SDN)
31.1 Introduction
31.2 Marketing Hype And Reality
31.3 Motivation For A New Approach
31.4 Conceptual Organization Of A Network Element
31.5 Control Plane Modules And The Hardware Interface
31.6 A New Paradigm: Software Defined Networking
31.7 Unanswered Questions
31.8 Shared Controllers And Network Connections
31.9 SDN Communication
31.10 OpenFlow: A Controller-To-Element Protocol
31.11 Classification Engines In Switches
31.12 TCAM And High-Speed Classification
31.13 Classification Across Multiple Protocol Layers
31.14 TCAM Size And The Need For Multiple Patterns
31.15 Items OpenFlow Can Specify
31.16 Traditional And Extended IP Forwarding
31.17 End-To-End Path With MPLS Using Layer 2
31.18 Dynamic Rule Creation And Control Of Flows
31.19 A Pipeline Model For Flow Tables
31.20 SDN's Potential Effect On Network Vendors
31.21 Summary
32 The Internet Of Things
32.1 Introduction
32.2 Embedded Systems
32.3 Choosing A Network Technology
32.4 Energy Harvesting
32.5 Low Power Wireless Communication
32.6 Mesh Topology
32.7 The ZigBee Alliance
32.8 802.15.4 Radios And Wireless Mesh Networks
32.9 Internet Connectivity And Mesh Routing
32.10 IPv6 In A ZigBee Mesh Network
32.11 The ZigBee Forwarding Paradigm
32.12 Other Protocols In the ZigBee Stack
32.13 Summary
33 Trends In Networking Technologies And Uses
33.1 Introduction
33.2 The Need For Scalable Internet Services
33.3 Content Caching (Akamai)
33.4 Web Load Balancers
33.5 Server Virtualization
33.6 Peer-To-Peer Communication
33.7 Distributed Data Centers And Replication
33.8 Universal Representation (XML)
33.9 Social Networking
33.10 Mobility And Wireless Networking
33.11 Digital Video
33.12 Higher-Speed Access And Switching
33.13 Cloud Computing
33.14 Overlay Networks
33.15 Middleware
33.16 Widespread Deployment Of IPv6
33.17 Summary
Appendix 1 A Simplified Application Programming Interface
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Z