Foreword
Preface
Chapter 1 Introduction And Overview
1.1 TCP/IP Protocols
1.2 The Need To Understand Details
1.3 Complexity Of Interactions Among Protocols
1,4 The Approach In This Text
1.5 The Importance Of Studying Code
1.6 The Xinu Operating System
1.7 Organization Of The Remainder Of The Book
1.8 Summary
Chapter 2 The Structure Of TCP/IP Software In An Operating System
2.1 Introduction
2.2 The Process Concept
2.3 Process Priority
2.4 Process Synchronization
2.5 lnterprocess Communication
2.6 Device Drivers, Input, And Output
2.7 Network Input and Interrupts
2.8 Passing Packets To Higher Level Protocols
2.9 Passing Datagrams From IP To Transport Protocols
2.10 Delivery To Application Programs
2.11 Information Flow On Output
2.12 From TCP Through IP To Network Output
2.13 UDP Output
2.14 Summary
Chapter 3 Network Interface Layer
3.1 Introduction
3.2 The Network Interface Abstraction
3.3 Ethernet Definitions
3.4 Logical State Of An Interface
3.5 Local Host Interface
3.6 Buffer Management
3.7 Demultiplexing Incoming Packets
3.8 Summary
Chapter 4 Address Discovery And Binding (ARP)
4.1 Introduction
4.2 Conceptual Organization Of ARP Software
4.3 Example ARP Design
4.4 Data Structures For The ARP Cache
4.5 ARP Output Processing
4.6 ARP Input Processing
4.7 ARP Cache Management
4.8 ARP Initialization
4.9 ARP Configuration Parameters
4.10 Summary
Chapter 5 IP: Global Software Organization
5.1 Introduction
5.2 The Central Switch
5.3 IP Software Design
5.4 IP Software Organization And Datagram Flow
5.5 Byte-Ordering In The IP Header
5.6 Sending A Datagram To IP
5.7 Table Maintenance
5.8 Summary
Chapter 6 IP: Routing Table And Routing Algorithm
6.1 Introduction
6.2 Route Maintenance And Lookup
6.3 Routing Table Organization
6.4 Routing Table Data Structures
6.5 Origin Of Routes And Persistence
6.6 Routing A Datagram
6.7 Periodic Routing Table Maintenance
6.8 IP Options Processing
6.9 Summary
Chapter 7 IP: Fragmentation And Reessembly
7.1 Introduction 109
7.2 Fragmenting Datagrams
7.3 Implementation Of Fragmentation
7.4 Datagram Reassembly
7.5 Maintenance Of Fragment Lists
7.6 Initialization
7.7 Summary
Chapter 8 IP: Error Processing (ICMP)
8.1 Introduction
8.2 ICMP Message Formats
8.3 Implementation Of ICMP Messages
8.4 Handling Incoming ICMP Messages
8.5 Handling An ICMP Redirect Message
8.6 Setting A Subnet Mask
8.7 Choosing A Source Address For An ICMP Packet
8.8 Generating ICMP Error Messages
8.9 Avoiding Errors About Errors
8.10 Allocating A Buffer For ICMP
8.11 The Data Portion Of An ICMP Message
8.12 Generating An ICMP Redirect Message
8.13 Summary
Chapter 9 IP: Multicast Processing (IGMP)
9.1 Introduction
9.2 Maintaining Multicast Group Membership Information
9.3 A Host Group Table
9.4 Searching For A Host Group
9.5 Adding A Host Group Entry To The Table
9.6 Configuring The Network Interface For A Multicast Address
9.7 Translation Between IP and Hardware Multicast Addresses
9.8 Removing A Multicast Address From The Host Group Table
9.9 Joining A Host Group
9.10 Maintaining Contact With A Multicast Router
9.11 Implementing IGMP Membership Reports
9.12 Computing A Random Delay
9.13 A Process To Send IGMP Reports
9.14 Handling Incoming IGMP Messages
9.15 Leaving A Host Group
9.16 Initialization Of IGMP Data Structures
9.17 Summary
Chapter 10 UDP: User Datagrams
10.1 Introduction
10.2 UDP Ports And Demultiplexing
10.3 UDP Input Processing
10.4 UDP Output Processing
10.5 Summary
Chapter 11 TCP: Data Structures And Input Processing
11.1 Introduction
11.2 Overview Of TCP Software
11.3 Transmission Control Blocks
11.4 TCP Segment Format
11.5 Sequence Space Comparison
11.6 TCP Finite State Machine
11.7 Example State Transition
11.8 Declaration Of The Finite State Machine
11.9 TCB Allocation And Initialization
11.10 Implementation Of The Finite State Machine
11.11 Handling An Input Segment
Chapter 12 TCP: Finite State Machine Implementation
12.1 Introduction
12.2 CLOSED State Processing
12.3 Graceful Shutdown
12.4 Timed Delay After Closing
12.5 TIME-WAIT State Processing
12.6 CLOSING State Processing
12.7 FIN- WAIT-2 State Processing
12.8 FIN-WAlT-1 State Processing
12.9 CLOSE-WAIT State Processing
12.10 LAST-ACK State Processing
12.11 ESTABLISHED State Processing
12.12 Processing Urgent Data In A Segment
12.13 Processing Other Data In A Segment
12.14 Keeping Track Of Received Octets
12.15 Aborting A TCP Connection
12.16 Establishing A TCP Connection
12.17 Initializing A TCB
12.18 SYN-SENT State Processing
12.19 SYN-RECEIVED State Processing
12.20 LISTEN State Processing
12.21 Initializing Window Variables For A New TCB
12.22 Summary
Chapter 13 TCP: Output Processing
13.1 Introduction
13.2 Controlling TCP Output Complexity
13.3 The Four TCP Output States
13.4 TCP Output As A Process
13.5 TCP Output Messages
13.6 Encoding Output States And TCB Numbers
13.7 Implementation Of The TCP Output Process
13.8 Mutual Exclusion
13.9 Implementation Of The IDLE State
13.10 Implementation Of The PERSIST State
13.11 Implementation Of The TRANSMIT State
13.12 Implementation Of The RETRANSMIT State
13.13 Sending A Segment
……
Chapter 14 TCP:Timer Management
Chapter 15 TCP:Flow Control And Adaptive Retransmission
Chapter 16 TCP:Urgent Data Processing And The Push Funcion
Chapter 17 Socket-Level Interface
Chapter 18 RIP:Active Route Propagation And Passive Acqusition
Chapter 19 OSPF:Route Propagation With An SPF Algorithm
Chapter 20 SNMP:MIB Variables Representations And Bindings
Chapter 21 SNMP:Client And Server
Chapter 22 SNMP:Table Access Functions
Chapter 23 Implementation In Retrospect
Appendix1 Cross Reference Of Procedure Calls
Appendix2 Cross Reference Of C Structures Used In The code
Appendix3 Xinu Functions And Constants Used In The Code
Bibliography
Index