rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9781584502845

The Linux Tcp/Ip Stack: Networking for Embedded Systems

by
  • ISBN13:

    9781584502845

  • ISBN10:

    1584502843

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2004-04-15
  • Publisher: Charles River Media
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $50.00

Summary

The Linux TCP/IP Stack: Networking for Embedded Systems provides an in-depth guide to implementing and using the Linux TCP/IP stack in embedded systems projects. It begins with a general overview of TCP/IP networking, with background information on applicable networking standards. From there, it details the TCP/IP implementation in Linux 2.6 by following a packet of data as it flows through the stack from the sending system, out the wire, and back through the input side of the stack in the receiving machine. This unique approach gives programmers an "inside" look at the entire process. Throughout the text, topics of particular interest to engineers implementing embedded systems are discussed, such as sockets, network interfaces, application layer protocols, and practical considerations. This is a great resource for embedded systems programmers and engineers, as well as networking professionals interested in learning more about the implementation of Linux TCP/IP in the 2.6 kernel.

Table of Contents

Acknowledgments xi
Introduction
1(20)
Introduction
3(1)
The Linux TCP/IP Source Code
4(1)
A Brief History of Data Communication
5(6)
The OSI Seven-Layer Network Model
11(1)
Connection-Oriented and Connectionless Protocols
12(1)
Broadband Networking Versus Local Area Networking
13(1)
Packets and Frames
14(1)
The Digital Data Rate Hierarchy in the Public Network
15(2)
Networking Standards
17(2)
Summary
19(2)
Broadband Networking Protocols of Yesterday and Today
21(28)
Introduction
22(1)
Connection-Oriented and Connectionless Protocols
22(1)
Broadband Networking Versus Local Area Networking
23(2)
Asynchronous Versus Synchronous Data Transmission
25(2)
Synchronous Data Transmission
27(4)
X.25
31(2)
High Level Data Link Protocol
33(5)
Sliding Windows
38(2)
HDLC as Used in Point-to-Point Protocol
40(1)
Frame Relay Bearer Service
40(3)
Asynchronous Transmission Mode (ATM)
43(5)
Summary
48(1)
TCP/IP in Embedded Systems
49(20)
Introduction
50(1)
A Note on TCP/IP Implementation
50(1)
TCP/IP in Terms of the OSI Model
51(2)
Physical Layer
53(1)
Data Link Layer
53(2)
Layer 3, the Network Layer---IP
55(4)
Layer 4, the Transport Layer
59(2)
Sockets---The Transport Layer Interface
61(1)
Application Layer Protocols
62(1)
TCP/IP in Embedded Systems
63(3)
TCP/IP Standards, Numbers, and Practical Considerations
66(1)
Summary
67(2)
Linux Networking Interfaces and Device Drivers
69(46)
Introduction
70(1)
Network Interface Devices
71(1)
The Network Device Structure, net_device
71(9)
Network Device Initialization
80(6)
Device Discovery and Dynamic Network Interface Driver Initialization
86(5)
Network Interface Registration
91(6)
Network Interface Driver Service Functions
97(5)
Receiving Packets
102(5)
Transmitting Packets
107(3)
Notifier Chains and Network Interface Device Status Notification
110(4)
Summary
114(1)
Linux Sockets
115(56)
Introduction
116(1)
What Is a Socket?
116(3)
Socket, sock, and other Data Structures for Managing Sockets
119(9)
Socket Layer Initialization
128(1)
Family Values and the Protocol Switch Table
129(7)
The Socket Application Programming Interface
136(9)
Packet, Raw, Netlink, and Routing Sockets
145(2)
Security and Linux Capabilities
147(2)
A Note about the Socket API and IPv6
149(2)
Implementation of the Socket API System Calls
151(5)
Creation of a Socket
156(9)
IO System Calls and Sockets
165(1)
Netlink and Rtnetlink
166(4)
Summary
170(1)
The Linux TCP/IP Stack
171(62)
Introduction
172(1)
Packet Handler Glue
173(2)
Linux TCP/IP Stack Initialization
175(4)
Kernel Threading
179(5)
Packet Queuing Layer and Queuing Disciplines
184(7)
Receiving Packets in Packet Queuing Layer, NET_RX_SOFTIRQ
191(8)
Transport Layer De-Multiplexing and Internal Packet Routing
199(3)
Cache Rich
202(24)
In_device Structure for IPv4 Address Assignment, Multicast, and Configuration
226(4)
Security, Stackable Destination, and XFRM
230(1)
Some Practical Considerations
231(1)
Summary
232(1)
Socket Buffers and Linux Memory Allocation
233(36)
Introduction
234(2)
Heap-Based Memory Allocation
236(1)
Pre-Allocated Fixed-Sized Buffers
237(3)
Mbufs in BSD 4.4
240(1)
Slab Allocation
241(1)
Linux Slab Allocator
242(4)
Linux Socket Buffers
246(8)
Socket Buffers, Fragmentation and Segmentation
254(5)
Socket Buffer Allocation and Lists
259(1)
Socket Buffer Utility Functions
260(6)
Some Practical Considerations
266(1)
Summary
267(2)
Sending the Data from the Socket through UDP and TCP
269(72)
Introduction
270(1)
Socket Layer Glue
270(8)
Transport Layer Socket Initialization
278(4)
Initiating a Connection
282(7)
Sending Data from a Socket Via UDP
289(9)
Sending Data from a Socket Via TCP
298(11)
TCP Output
309(4)
Some Key TCP Data Structures
313(13)
TCP Timers
326(14)
Summary
340(1)
The Network Layer, IP
341(116)
Introduction
342(1)
Routing Theory
342(1)
IPv4 Routing, Routing Cache, and the Routing Policy Database
343(2)
IP Protocol Initialization
345(1)
The Route Cache
346(14)
The RPDB, the FIB, and the FIB Rules
360(26)
Routing Input Packets
386(15)
Routing Output Packets
401(15)
Internet Peers and the Inet_peer Structure
416(2)
The Address Resolution Protocol
418(11)
The Internet Control Message Protocol
429(9)
Multicast and IGMP
438(7)
Sending Packets from IP
445(2)
Receiving Packets in IP
447(9)
Summary
456(1)
Receiving Data in the Transport Layer, UDP, and TCP
457(62)
Introduction
457(1)
Receive-side Packet Handling
458(1)
Receiving a Packet in UDP
459(8)
UDP Socket-level Receive
467(3)
Receiving Data in TCP
470(14)
TCP Receive State Processing
484(9)
TCP Processing Data Segments in Established State
493(8)
TCP Time_Wait State
501(7)
TCP Socket-level Receive
508(10)
Summary
518(1)
Internet Protocol Version 6 (IPv6)
519(46)
Introduction
520(1)
Facilities in IPv6
520(1)
IPv6 Addressing
521(5)
IPv6 Packet Format
526(2)
IPv6 Implementation in Linux
528(5)
IPv6 Socket Implementation
533(3)
IPv6 Fragmentation and De-fragmentation Implementation
536(4)
IPv6 Output
540(1)
IPv6 Input
541(4)
IPv6 UDP
545(3)
IPv6 TCP
548(4)
ICMPv6
552(2)
Neighbor Discovery
554(4)
Multicasting and the Multicast Listener Discovery (MLD) Protocol for IPv6
558(2)
Auto Configuration
560(1)
Routing and the IPv6 FIB
560(3)
Summary
563(2)
Appendix A: RFCs 565(4)
Appendix B: About the CD-ROM 569(4)
Bibliography 573(4)
Index 577

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program