rent-now

Rent More, Save More! Use code: ECRENTAL

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

9781584504818

Linux TCP/IP : Networking for Embedded Systems

by
  • ISBN13:

    9781584504818

  • ISBN10:

    1584504811

  • Edition: 2nd
  • Format: Paperback
  • Copyright: 2006-11-17
  • Publisher: Cengage Learning
  • 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: $54.95
We're Sorry.
No Options Available at This Time.

Summary

The Linux TCP/IP Stack: Networking for Embedded Systems 2/E provides an updated, 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 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.

Table of Contents

Acknowledgments vii
Data Communication and Linux TCP/IP
1(40)
A Few Beginning Words
1(2)
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(2)
Connection-Oriented and Connectionless Protocols
13(1)
Packets and Frames
13(1)
Broadband Networking versus Local Area Networking
14(22)
The Digital Data Rate Hierarchy in the Public Network
36(1)
Networking Standards
37(2)
Summary
39(2)
TCP/IP in Embedded Systems
41(18)
Introduction
41(1)
How We Got Here
42(1)
A Few Words on TCP/IP Implementation
42(1)
TCP/IP and the OSI Reference Model
43(11)
TCP/IP in Embedded Systems
54(3)
TCP/IP Standards, Numbers, and Practical Considerations
57(1)
Summary
58(1)
Linux Network Interface Drivers
59(50)
A Few Words
59(1)
Introduction
60(1)
Network Interface Devices
61(1)
The Network Device Structure, struct net_device
61(9)
Network Device Initialization
70(19)
Linux Network Interface Driver Facilities
89(6)
Receiving Packets
95(5)
Transmitting Packets
100(3)
Notifier Chains and Network Interface Device Status Notification
103(4)
Summary
107(2)
Linux Sockets
109(62)
A Few Words
109(1)
Introduction
110(1)
What is a Socket?
110(1)
Socket, sock, and Other Data Structures for Managing Sockets
111(13)
Socket Layer Initialization
124(9)
The Transport Layer Interface and the Socket Application Programming Interface
133(10)
Packet, Raw, Netlink, and Routing Sockets
143(3)
Security and Linux Capabilities
146(1)
A Note About the Socket API and IPv6
147(2)
Implementation of the Socket API System Calls
149(8)
Creation of a Socket
157(8)
Netlink and Rtnetlink
165(5)
Summary
170(1)
The Linux TCP/IP Stack
171(68)
A Few Words
171(1)
Introduction
172(1)
Glue and Infrastructure
173(2)
Linux TCP/IP Stack Initialization
175(5)
Kernel Threading
180(6)
Packet Queuing Layer and Queuing Disciplines
186(7)
Receiving Packets in Packet Queuing Layer, NET_RX_SOFTIRQ
193(8)
Transport Layer De-Multiplexing and Internal Packet Routing
201(4)
Cache Rich
205(27)
In_device Structure for IPv4 Address Assignment, Multicast, and Configuration
232(4)
Security, Stackable Destination, and XFRM
236(1)
Some Practical Considerations
237(1)
Summary
238(1)
Socket Buffers and Linux Memory Allocation
239(36)
A Few Words
239(1)
Introduction
240(1)
Requirements for TCP/IP Memory Allocation
241(1)
Traditional Memory Allocation Schemes
242(5)
Slab Allocation
247(5)
Linux Socket Buffers
252(8)
Socket Buffers, Fragmentation, and Segmentation
260(4)
Socket Buffer Allocation and Lists
264(2)
Socket Buffer Utility Functions
266(8)
Some Practical Considerations
274(1)
Summary
274(1)
Sending the Data from the Socket through UDP and TCP
275(74)
A Few Words
275(1)
Introduction
276(1)
Socket Layer Glue
276(10)
Transport Layer Socket Initialization
286(4)
Initiating a Connection at the Transport Layer
290(7)
Sending Data from a Socket via UDP
297(10)
Sending Data from a Socket via TCP
307(10)
TCP Output
317(5)
Some Key TCP Data Structures
322(12)
TCP Timers
334(14)
Summary
348(1)
The Network Layer, IP
349(110)
A Few Words
349(1)
Introduction
350(1)
Routing Theory
350(1)
IPv4 Routing, Routing Cache, and the Routing Policy Database
351(2)
IP Protocol Initialization
353(1)
The Route Cache
354(15)
The RPDB, the FIB, and the FIB Rules
369(26)
Routing Input Packets
395(12)
Routing Output Packets
407(11)
Internet Peers and the IP Header ID Field
418(1)
The Address Resolution Protocol
419(12)
The Internet Control Message Protocol (ICMP)
431(7)
Sending ICMP Packets
438(2)
Multicast and IGMP
440(8)
Sending Packets from IP
448(2)
Receiving Packets in IP
450(8)
Summary
458(1)
Receiving Data in the Transport Layer, UDP, and TCP
459(62)
A Few Words
459(1)
Introduction
459(1)
Receive-Side Packet Handling
460(12)
Receiving Data in TCP
472(14)
TCP Receive State Processing
486(9)
Processing Data Segments in Established State
495(8)
The TCP TIME_WAIT State
503(7)
TCP Socket-Level Receive
510(10)
Summary
520(1)
A Protocol Family Implementation
521(32)
A Few Words
521(1)
Introduction
522(1)
The AF_NADA Protocol Family
523(2)
Address Family Initialization
525(2)
Module Initialization
527(2)
Socket Layer Interface
529(10)
Receiving Packets in the AF_NADA Family
539(4)
Sending Packets from the Socket Layer
543(5)
The Test Setup for AF_NADA
548(3)
Summary
551(2)
Internet Protocol Version 6 (IPv6)
553(50)
A Few Words
553(1)
Introduction
554(1)
Facilities in IPv6
554(1)
IPv6 Addressing
555(5)
IPv6 Packet Format
560(2)
The IPv6 Implementation in Linux
562(6)
IPv6 Socket Implementation
568(3)
IPv6 Fragmentation and De-Fragmentation
571(4)
IPv6 Output
575(2)
IPv6 Input
577(4)
IPv6 UDP
581(3)
IPv6 TCP
584(4)
The ICMP Protocol for IPv6, ICMPv6
588(3)
IPv6 Neighbor Discovery
591(5)
The Multicast Listener Discovery Protocol
596(2)
Auto Configuration
598(1)
Routing and the IPv6 FIB
598(4)
Summary
602(1)
Appendix A: RFCs 603(2)
Appendix B: About the CD-ROM 605(4)
Bibliography 609(4)
Index 613

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