{"product_id":"tcp-ip-architecture-design-and-implementation-in-linux-hardback-9780470147733","title":"TCP\/IP Architecture, Design, and Implementation in Linux (Hardback) 9780470147733","description":"\u003cfont face=\"Georgia\"\u003e\r\n\u003cp\u003e\u003cfont size=\"6\"\u003eTCP\/IP Architecture, Design, and Implementation in Linux\u003c\/font\u003e\u003cbr\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003c\/p\u003e\n\u003cp\u003e\u003cfont size=\"4\"\u003eSameer Seth (Author), M. Ajaykumar Venkatesulu (Author)\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e9780470147733, Wiley\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eHardback, published 30 December 2008\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e800 pages\u003cbr\u003e25.7 x 18.5 x 4.2 cm, 1.47 kg\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003cp align=\"justify\"\u003e\u003cstrong\u003e\u003cfont size=\"3\"\u003eThis book provides thorough knowledge of Linux TCP\/IP stack and kernel framework for its network stack, including complete knowledge of design and implementation. Starting with simple client-server socket programs and progressing to complex design and implementation of TCP\/IP protocol in linux, this book provides different aspects of socket programming and major TCP\/IP related algorithms. In addition, the text features netfilter hook framework, a complete explanation of routing sub-system, IP QOS implementation, and Network Soft IRQ. This book further contains elements on TCP state machine implementation,TCP timer implementation on Linux, TCP memory management on Linux, and debugging TCP\/IP stack using lcrash\u003c\/font\u003e\u003c\/strong\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e\u003cb\u003ePreface.\u003c\/b\u003e  \u003cp\u003e\u003cb\u003eAcknowledgments.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1. INTRODUCTION.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Overview of TCP\/IP Stack.\u003c\/p\u003e \u003cp\u003e1.2 Source Code Organization for Linux 2.4.20.\u003c\/p\u003e \u003cp\u003e1.3 TCP\/IP Stack and Kernel Control Paths.\u003c\/p\u003e \u003cp\u003e1.4 Linux Kernel Until Version 2.4 Is Non-preemptible.\u003c\/p\u003e \u003cp\u003e1.5 Linux Process and Thread.\u003c\/p\u003e \u003cp\u003e1.6 Kernel Synchronization Mechanism.\u003c\/p\u003e \u003cp\u003e1.7 Application Interfaces for TCP\/IP Programming.\u003c\/p\u003e \u003cp\u003e1.8 Shutdown.\u003c\/p\u003e \u003cp\u003e1.9 I\/O.\u003c\/p\u003e \u003cp\u003e1.10 TCP State.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e1.11 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2. PROTOCOL FUNDAMENTALS.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 TCP.\u003c\/p\u003e \u003cp\u003e2.2 TCP Options (RFC 1323).\u003c\/p\u003e \u003cp\u003e2.3 TCP Data Flow.\u003c\/p\u003e \u003cp\u003e2.4 Delayed Acknowledgment.\u003c\/p\u003e \u003cp\u003e2.5 Nagle’s Algorithm (RFC 896).\u003c\/p\u003e \u003cp\u003e2.6 TCP Sliding Window Protocol.\u003c\/p\u003e \u003cp\u003e2.7 Maximizing TCP Throughput.\u003c\/p\u003e \u003cp\u003e2.8 TCP Timers.\u003c\/p\u003e \u003cp\u003e2.9 TCP Congestion Control.\u003c\/p\u003e \u003cp\u003e2.10 TCP Performance and Reliability.\u003c\/p\u003e \u003cp\u003e2.11 IP (Internet Protocol).\u003c\/p\u003e \u003cp\u003e2.12 Routing.\u003c\/p\u003e \u003cp\u003e2.13 \u003ci\u003enetstat.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e2.14 \u003ci\u003etraceroute.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e2.15 ICMP.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e2.16 \u003ci\u003eping.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e2.17 ARP\/RARP.\u003c\/p\u003e \u003cp\u003e2.18 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3. KERNEL IMPLEMENTATION OF SOCKETS.\u003cbr\u003e \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 Socket Layer.\u003c\/p\u003e \u003cp\u003e3.2 VFS and Socket.\u003c\/p\u003e \u003cp\u003e3.3 Protocol Socket Registration.\u003c\/p\u003e \u003cp\u003e3.4 \u003ci\u003estruct inet_protosw.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e3.5 Socket Organization in the Kernel.\u003c\/p\u003e \u003cp\u003e3.6 Socket.\u003c\/p\u003e \u003cp\u003e3.7 \u003ci\u003einet_create.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e3.8 Flow Diagram for Socket Call.\u003c\/p\u003e \u003cp\u003e3.9 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4. KERNEL IMPLEMENTATION OF TCP CONNECTION SETUP.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 Connection Setup.\u003c\/p\u003e \u003cp\u003e4.2 Bind.\u003c\/p\u003e \u003cp\u003e4.3 Listen.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e4.4 Connection Request Handling by Kernel.\u003c\/p\u003e \u003cp\u003e4.5 Accept.\u003c\/p\u003e \u003cp\u003e4.6 Client Side Setup.\u003c\/p\u003e \u003cp\u003e4.7 Summary.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003e5. \u003ci\u003esk_buff\u003c\/i\u003e AND PROTOCOL HEADERS.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 struct \u003ci\u003esk_buff.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e5.2 struct \u003ci\u003eskb_shared_info.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e5.3 \u003ci\u003esk_buff\u003c\/i\u003e and DMA—SKB_FRAG_STRUCT.\u003c\/p\u003e \u003cp\u003e5.4 Routines Operating on \u003ci\u003esk_buff.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e5.5 \u003ci\u003esk_buff\u003c\/i\u003e Builds Protocol Headers as It Traverses Down the Protocol Layers.\u003c\/p\u003e \u003cp\u003e5.6 \u003ci\u003esk_buff\u003c\/i\u003e Extracts Protocol Headers as It Traverses Up the Protocol Layers When a Packet Arrives.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e5.7 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6. MOVEMENT OF \u003ci\u003esk_buff\u003c\/i\u003e ACROSS PROTOCOL LAYERS.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Packet Traversing Down the TCP\/IP Stack.\u003c\/p\u003e \u003cp\u003e6.2 Routed Packet Ready for Transmission.\u003c\/p\u003e \u003cp\u003e6.3 Kernel Flow for a Packet Moving Down the Stack.\u003c\/p\u003e \u003cp\u003e6.4 Packet Traversing Up the TCP\/IP Stack.\u003c\/p\u003e \u003cp\u003e6.5 Kernel Flow for a Packet Moving Up the Stack.\u003c\/p\u003e \u003cp\u003e6.6 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7. TCP SEND.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 TCP Segmentation Unit for Sending Data.\u003c\/p\u003e \u003cp\u003e7.2 Segmentation with Scatter–Gather Technique.\u003c\/p\u003e \u003cp\u003e7.3 Sending OOB Data.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e7.4 Flow for TCP Segmentation Unit and Send Process.\u003c\/p\u003e \u003cp\u003e7.5 Functional Level Flow for Segmentation and Send Mechanism.\u003c\/p\u003e \u003cp\u003e7.6 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8. TCP RECEIVE.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Queuing Mechanism.\u003c\/p\u003e \u003cp\u003e8.2 Processing of TCP Data from the Receive Queue.\u003c\/p\u003e \u003cp\u003e8.3 TCP Urgent Byte Processing.\u003c\/p\u003e \u003cp\u003e8.4 DATA Flow Diagram for Receiving Data over the TCP Socket.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e8.5 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9. TCP MEMORY MANAGEMENT.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Transmit Side TCP Memory Management.\u003c\/p\u003e \u003cp\u003e9.2 Receive Side TCP Memory Management.\u003c\/p\u003e \u003cp\u003e9.3 Freeing of Memory Allocated to a Receive Buffer.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e9.4 System-Wide Control Parameters Are Worth Noticing When It Comes to TCP Memory Management.\u003c\/p\u003e \u003cp\u003e9.5 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10. TCP TIMERS.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.2 TCP Retransmit Timer.\u003c\/p\u003e \u003cp\u003e10.3 Zero Window Probe Timer.\u003c\/p\u003e \u003cp\u003e10.4 Delay ACK Timer.\u003c\/p\u003e \u003cp\u003e10.5 Keepalive Timer.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e10.6 SYN-ACK Timer.\u003c\/p\u003e \u003cp\u003e10.7 TIME_WAIT Timer.\u003c\/p\u003e \u003cp\u003e10.7.8 \u003ci\u003e__tcp_tw_hashdance().\u003c\/i\u003e\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e10.8 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11. TCP CORE PROCESSING.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 TCP Incoming Segment Processing.\u003c\/p\u003e \u003cp\u003e11.2 Fast Path Processing.\u003c\/p\u003e \u003cp\u003e11.3 Slow Path Processing.\u003c\/p\u003e \u003cp\u003e11.4 Processing of Incoming ACK.\u003c\/p\u003e \u003cp\u003e11.5 Processing of SACK blocks.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e11.6 Reordering Length.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e11.7 Processing TCP Urgent Pointer.\u003c\/p\u003e \u003cp\u003e11.8 Processing Data Segments in Slow Path.\u003c\/p\u003e \u003cp\u003e11.9 Overview of Core TCP Processing.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e11.10 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12. TCP STATE PROCESSING.\u003cbr\u003e \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 Overview of State Processing.\u003c\/p\u003e \u003cp\u003e12.2 TCP States.\u003c\/p\u003e \u003cp\u003e12.3 Processing of Duplicate\/Partial ACKs in Recovery State.\u003c\/p\u003e \u003cp\u003e12.4 Processing of Duplicate\/Partial ACKs in Loss State.\u003c\/p\u003e \u003cp\u003e12.5 Default Processing of TCP States.\u003c\/p\u003e \u003cp\u003e12.6 Processing of TCP Non-open States when ACKed Beyond \u003ci\u003etp\u003c\/i\u003e → \u003ci\u003ehigh_seq.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e12.7 Summary.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003e13. NETLINK SOCKETS.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e13.1 Introduction to Netlink Sockets.\u003c\/p\u003e \u003cp\u003e13.2 Netlink Socket Registration and Initialization at Boot Time.\u003c\/p\u003e \u003cp\u003e13.3 How Is the Kernel Netlink Socket Created?\u003c\/p\u003e \u003cp\u003e13.4 How Is the User Netlink Socket Created?\u003c\/p\u003e \u003cp\u003e13.5 Netlink Data Structures.\u003c\/p\u003e \u003cp\u003e13.6 Other Important Data Strutures.\u003c\/p\u003e \u003cp\u003e13.7 Netlink Packet Format.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e13.8 Netlink Socket Example—tc Command for Adding a qdisc.\u003c\/p\u003e \u003cp\u003e13.9 Flow Diagram for tc Command in Kernel Space.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e13.10 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14. IP ROUTING.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e14.1 Routing.\u003c\/p\u003e \u003cp\u003e14.2 Policy-Based Routing.\u003c\/p\u003e \u003cp\u003e14.3 Multipathing.\u003c\/p\u003e \u003cp\u003e14.4 Record Route Options (RFC 791) and Processing by Linux Stack.\u003c\/p\u003e \u003cp\u003e14.5 Source Routing.\u003c\/p\u003e \u003cp\u003e14.6 Linux Kernel Implementation of Routing Table and Caches.\u003c\/p\u003e \u003cp\u003e14.7 Routing Cache Implementation Overview.\u003c\/p\u003e \u003cp\u003e14.8 Managing Routing Cache.\u003c\/p\u003e \u003cp\u003e14.9 Implementation Overview of Forwarding Information Base (FIB).\u003c\/p\u003e \u003cp\u003e14.10 Adding New Entry in Routing Table Using ip Command (RT Netlink Interface).\u003c\/p\u003e \u003cp\u003e14.11 What Happens When the ip Command Is Run with a Rule Option for Adding an Entry in the Routing Table?\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e14.12 FIB Traversal Flow Diagram.\u003c\/p\u003e \u003cp\u003e14.13 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15. IP QUALITY OF SERVICE IN LINUX (IP QoS).\u003cbr\u003e \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e15.1 Introduction.\u003c\/p\u003e \u003cp\u003e15.2 Basic Components of Linux Traffi c Control.\u003c\/p\u003e \u003cp\u003e15.3 Linux Implementation of \u003ci\u003epfi fo_fast qdisc.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e15.4 Queueing Discipline Data Structure.\u003c\/p\u003e \u003cp\u003e15.5 tc User Program and Kernel Implementation Details.\u003c\/p\u003e \u003cp\u003e15.6 The tc Commands for Creating Class Hierarchy for CBQ.\u003c\/p\u003e \u003cp\u003e15.7 Filters.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e15.8 u32 Filter Implementation.\u003c\/p\u003e \u003cp\u003e15.9 Route Filter Implementation.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e15.10 Enqueue.\u003c\/p\u003e \u003cp\u003e15.11 Overview of Linux Implementation of CBQ.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e15.12 \u003ci\u003ecbq_dequeue().\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e15.13 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e16. IP FILTER AND FIREWALL.\u003cbr\u003e \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e16.1 Netfi lter Hook Framework.\u003c\/p\u003e \u003cp\u003e16.2 Netfi lter Hooks on IP Stack.\u003c\/p\u003e \u003cp\u003e16.3 Overview of Netfi lter Hooks on Linux TCP-IP Stack.\u003c\/p\u003e \u003cp\u003e16.4 Registration of Netfi lter Hooks.\u003c\/p\u003e \u003cp\u003e16.5 Processing of Netfi lter Hooks.\u003c\/p\u003e \u003cp\u003e16.6 Compatibility Framework.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e16.7 Ip Chains.\u003c\/p\u003e \u003cp\u003e16.8 How Is the Packet Filtered with Ipchains.\u003c\/p\u003e \u003cp\u003e16.9 Iptables.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e16.10 Iptables Filter Rules and Target Organization.\u003c\/p\u003e \u003cp\u003e16.11 Organization of Filter Rules and Target for Iptables.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e16.12 Filtering Packets with Iptables.\u003c\/p\u003e \u003cp\u003e16.13 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e17. NET SOFTIRQ.\u003cbr\u003e \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e17.1 Why Net SoftIRQs, and How Do We Raise Them?\u003c\/p\u003e \u003cp\u003e17.2 How Are SoftIRQs Are Processed, and When?\u003c\/p\u003e \u003cp\u003e17.3 Registration of SoftIRQs.\u003c\/p\u003e \u003cp\u003e17.4 Packet Reception and Delayed Processing by Rx SoftIRQ.\u003c\/p\u003e \u003cp\u003e17.5 Processing of Net Rx SoftIRQ.\u003c\/p\u003e \u003cp\u003e17.6 Packet Transmission and SoftIRQ.\u003c\/p\u003e \u003cp\u003e17.7 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e18. TRANSMISSION AND RECEPTION OF PACKETS.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e18.1 DMA Ring Buffers for Transmission and Reception of Packets.\u003c\/p\u003e \u003cp\u003e18.2 Packet Reception Process.\u003c\/p\u003e \u003cp\u003e18.3 Packet Transmission Process.\u003c\/p\u003e \u003cp\u003e18.4 Implementation of Reception and Transmission of Packets.\u003c\/p\u003e \u003cp\u003e18.5 Rx Interrupt for Reception of Packets.\u003c\/p\u003e \u003cp\u003e18.6 Transmission of Packets.\u003c\/p\u003e \u003cp\u003e18.7 Summary.\u003c\/p\u003e \u003cp\u003e\u003cb\u003e19. \u003ci\u003elkcd\u003c\/i\u003e AND DEBUGGING TCP\/IP STACK.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e19.1 \u003ci\u003elkcd\u003c\/i\u003e Source and Patches.\u003c\/p\u003e \u003cp\u003e19.2 Touching the Socket.\u003c\/p\u003e \u003cp\u003e19.3 Looking into the Receive Socket Buffer.\u003c\/p\u003e \u003cp\u003e19.3.1 Route Information in \u003ci\u003esk_buff.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e19.4 Peep into Send Socket Buffer.\u003c\/p\u003e \u003cp\u003e19.5 TCP Segmentation Unit.\u003c\/p\u003e \u003cp\u003e19.6 Send Congestion Window and \u003ci\u003essthresh.\u003c\/i\u003e\u003c\/p\u003e \u003cp\u003e19.7 Retransmissions and Route.\u003c\/p\u003e \u003cp\u003e19.8 Peeping into Connection Queues and SYN Queues.\u003c\/p\u003e \u003cp\u003e19.9 Routing and IP Qos lcrash Steps.\u003c\/p\u003e \u003cp\u003e19.10 CBQ (Class-Based) Queueing Discipline lcrash Steps.\u003c\/p\u003e \u003cp\u003e19.11 U32 Filters.\u003c\/p\u003e \u003cp\u003e19.12 Route Filters.\u003c\/p\u003e \u003cp\u003e19.13 FIB Table lcrash Output for Setting Up the Realm Using ip Command.\u003c\/p\u003e \u003cp\u003e19.14 lcrash Output for Setting Up Route Filter Using tc Command.\u003c\/p\u003e \u003cp\u003e19.15 Netlink Data Structure.\u003c\/p\u003e \u003cp\u003e19.16 Summary.\u003cbr\u003e \u003c\/p\u003e \u003cp\u003e\u003cb\u003e20. NEXT EDITION.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eBibliography.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eIndex.\u003c\/b\u003e\u003c\/p\u003e\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eSubject Areas: Computer networking \u0026amp; communications [\u003ca title=\"See our other books on Computer networking \u0026amp; communications\" href=\"https:\/\/freshlyprintedbooks.co.uk\/search?q=%22Computer%20networking%20\u0026amp;%20communications%20%5BUT%5D%22\"\u003eUT\u003c\/a\u003e]\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\u003c\/font\u003e","brand":"Wiley-IEEE Computer Society Pr","offers":[{"title":"Brand New","offer_id":52173825802520,"sku":"9780470147733","price":102.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0730\/2037\/5320\/files\/9780470147733.jpg?v=1781173703","url":"https:\/\/freshlyprintedbooks.co.uk\/products\/tcp-ip-architecture-design-and-implementation-in-linux-hardback-9780470147733","provider":"Freshly Printed Books","version":"1.0","type":"link"}