TCP/IP Architecture, Design and Implementation in Linux

TCP/IP Architecture, Design and Implementation in Linux

Sameer Seth

Language: English

Pages: 772

ISBN: 0470147733

Format: PDF / Kindle (mobi) / ePub

This 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

The Art of Computer Programming, Volume 4A: Combinatorial Algorithms, Part 1

Computing for Ordinary Mortals

The Rhetorical Nature of XML: Constructing Knowledge in Networked Environments

Advanced Operating Systems and Kernel Applications: Techniques and Technologies





















input from the keyboard when the delayed acknowledgment timer expired). Let’s look at Fig. 2.22, which shows the tcpdump output taken from telnet session over WAN. The telnet client and the server are 9 hops apart. We see here how Nagle’s algorithms work effectively with slow networks. The tcpdump data are collected at the server, and we can see an average RTT of 350 ms (see Fig. 2.23). We type in a character at the telnet client, and packet 1 is generated. Packet 2 is an ACK for 1 and also

12 Kbytes of data at this point of time. Let’s see what happens when sender TCP transmits the first segment. Figure 2.25b shows that gray blocks cover only the 11-Kbyte portion of the send buffer. The left end of the send window is shifted by 1 Kbyte toward the right, which means that after sending the first segment, sender TCP can only send 11 Kbytes of data. The arrow still points to ISN + 1 because the sent data are still unacknowledged. Next we receive acknowledgment for the first data segment.

slow networks, we may end up retransmitting TCP segments even when the original TCP segment or its ACK is on the flight. This is wastage of bandwidth and additional overhead of generating a packet and transmitting it. Moreover, entering into a congestion state involves lowering of data transmission. If we are falsely entering into a loss state, TCP throughput is hampered severely, whereas if the rtt is over estimated for high-speed networks, we end up retransmitting TCP segments after a long delay

router to router to reach its final destination. Each router will have entry for the next hop for the IP datagram. The datagram is queued on the routers outgoing interface queue in case there is traffic for the link. It may also happen that the router crashes or the queue for the outgoing interface is full. In both the cases, the packets are dropped. Other than IP carrying internet traffic, it has many roles to play such as routing, quality of service, congestion reporting using an IP ECN flag, and

socket call. umyaddr: This is the socket address to which we want to bind the socket. addrlen: This is the socket address length. First, we do a lookup for the socket associated with the socket descriptor. This socket descriptor is nothing but the file descriptor, and it links a socket with the VFS as shown in Fig. 4.2. So, we call sockfd_lookup() with the socket descriptor. 4.2.11 sockfd_lookup() First the kernel needs to get the file structure from the current process’s file table. We call

Download sample