Home » Tag Archives: tcp

Tag Archives: tcp

TCP Protocol: Slow Start

In the last post we explained the basic idea of using sequence and acknowledgement numbers to track how many bytes were sent and received. We also has encountered the term “slow start” and elaborated how TCP uses this concept on the server to send few segments of data to the receiver instead of sending the full receive window (RWIN) of the receiver and congest the path between them. Today, we will try to dive into slow start and, as every previous post, relate the theoretical part with a real capture file. Have you ever wondered, why the first few seconds of any …

Read More »

TCP Protocol: Flow Control

In the last two posts here and here, we have discussed how TCP stack initiates a TCP 3-way handshake and create the appropriate Transmission Control Block for the data to flow reliably. We knew that the main function of the 3-way handshaking is to exchange the sequence numbers, MSS, receive window and other parameters between two endpoints. In this post, we will discuss the concept of flow control and how TCP will reliably make sure that data segments are delivered to the other end in-order for the correct data reassembly using the sequence and acknowledgement numbers and sliding windows. Let’s …

Read More »

TCP Protocol: Three-way Handshake

We all know by now that the basic function of the TCP protocol is to send a stream of bytes that has no shape or fixed size over a network reliably to a receiver. We all also know that reliable delivery involves building a connection between two end-hosts, and this will be the first step that the TCP stack do to exchange data. Above figure, has a host on a side and a server on the other. Host needs to get/download a file from the server via FTP protocol which is dependent on TCP. The Host will start off by allocating …

Read More »

TCP Protocol: The Overview – Part1

One of the most important layers we – as network engineers – hate and avoid in the OSI reference model is the transport layer with its popular and dominant protocol; TCP. Most of network engineers abandoned diving into TCP protocol because they consider it a host-to-host communication protocol that usually works without a problem. End systems either Windows or Linux gets installed with their own version of TCP stack with some pre-configured values that usually don’t break, so why would we bother ourselves learning about one of the most important protocol in the TCP/IP stack! The irony here is that, System Engineers, Application …

Read More »