
Basically it notifies the other party "I have this much of space in my receiving buffer, so you can send that amout of data to me at maximum". It indicate the amount of space (in byte) left in the receiving buffer. In TCP header, there is a important field named as Window Size as shown below. Indicate "This is a packet for Finish (TCP Release) process" Indicate "This is a packet for Synchronization (TCP Establishment) process" Indicate some error (e.g, unexpected packet) occurred and Abort the connection. Request the receiver to PUSH (Transfer) this data to higher layer as soon as it recieves regardless of the reciever buffer status I request the reciever to set high priority for the dataĪcknowledge the successful receipt of the data Indicate "This packet contains Urgent data pointed by Urgent Ponter".

Some of the important flags are listed below. The type and the property of a TCP packet is determined by various flags located in the TCP header. Options: (12 bytes), No-Operation (NOP), No-Operation (NOP), Timestamps Sequence number: 1 (relative sequence number) <= (A)

Transmission Control Protocol, Src Port: 42206 (42206), Dst Port: sip (5060), Seq: 1, Ack: 1, Len: 0

You see here both Sequence Number and Acknowledgement number got incremented by 1. Step (3) : Now the client send ACK to the Server for the SYN packet. Options: (20 bytes), Maximum segment size, No-Operation (NOP), Window scale, [Expert Info (Chat/Sequence): Connection establish acknowledge (SYN+ACK): Transmission Control Protocol, Src Port: sip (5060), Dst Port: 42206 (42206), Seq: 0, Ack: 1,Len: 0Īcknowledgment number: 1 (relative ack number) <= (B) Zero, it is the number generated by a special algorithm in such a way that it cannot easily been guessed by any intruder.Īs you see in the following example, the real initial sequence number is randomly (specially) assigned as in (E), but in wireshark it is labeled to be 0 as shown in (A). At this step, the Server assign a specific sequence number (this is called as ISN) as the initial (first) sequence number. Step (2) : Server accept the SYN request and send ACK and SYN in a single packet to the Client. Options: (20 bytes), Maximum segment size, SACK permitted, Timestamps, = Congestion Window Reduced (CWR): Not set Sequence number: 0 (relative sequence number) <= (A) Transmission Control Protocol, Src Port: 42206 (42206), Dst Port: sip (5060), Seq: 0, Len: 0 Also, this initial packet has SYN flag is set to be '1'. This is not zero, it is the number generated by a special algorithm in such a way that it cannot easily been guessed by any intruder.Īs you see in the following example, the real initial sequence number is randomly (specially) assigned as in (C), but in wireshark it is labeled to be 0 as shown in (A). At this step, the client assign a specific sequence number (this is called as ISN) as the initial (first) sequence number. Step (1) : Client send a TCP SYN Packet to server to request connection establishment.

That's why this procedure is often called 3 way handshaking or 3 way negotiation. To begin the communication using TCP, the client and server has to go through a special sequence to establish the connection and this sequence goes as shown below. TCP is a kind of session protocol which requires a special procedure to establish the connnection between the client and server and also requires a special procedure to release the connection between them. For example, most of the application layer protocol we are commonly using these days, like HTTP, HTTPS, SMTP, POP3, IMAP, SSH, FTP, Telnet ect, are typically encapsulated in TCP packet. This may be one of the most common protocols in relation to any IP network. TCP stands for Transmission Control Protocol.
