TCP Header Part – 5 - :
You can Reach Our "CCNA Lab Courses with Packet Tracer" on Udemy.!!!
cisco-packet-tracer-ccna-adventure-1- cisco-packet-tracer-ccna-adventure-2-
Content Protection by

TCP Options

The last part of this article series is related to TCP options. After this there is aleady the data part. In this section there are some options that enhance TCP protocol. This options are MSS, Window Scaling, Selective Acknowledgements, Timestamps and Nop. The size of this field is changable according tot the used options. Generally these options are used during the 3-way handshake but others can be use during normal TCP session.

TCP options fields are at the end of the header and they are multiple of 8 bits. If any of bits remains from options, they can be filled by padding, with zeros.

Let’s check the options in order.

Maximum Segment Size(MSS)

MSS option is used to define the maximum segment size that will be used during a connection between two hosts. It should be seen only 3-way handshake in SYN and SYN/ACK packets. MSS option fields is 4 bytes long.

MSS is also helps to define MTU values.

The difference between the MSS and MTU is mentined in the picture below:

In the above picture, as you see, there is 18 bytes of overhead regardless of the MTU because of the Datalink layer additions. For this reason aour MTU value an be maximum 1500 bytes. Because the maximum size of Ethernet II frame is already 1518 bytes.

If the MSS option is ommitted by one or both ends of the connection, the value of 536 bytes is used.The default value of IP datagram is 576 bytes. If we mines the standard IP header and the TCP header (40 bytes), it gives us the 536 bytes.

It is important to use better possible value of MSS. It must be not too large and not too small. For example you will transfer 1 byte data. You nedd 20 byte IP header and 20 byte TCP header. This means that you are using 1 bytes of 41 bytes bandwidth. On the other hand if MSS is very large, then fragmentation occurs and this increase the overhead by factor of 2.

Window Scaling

Window scaling is used as an extention to window size flag. Because of the fact that the only possible value of window size is 64 kbyte, this is a requirement for large data transfers.Windows scaling option can be maximum 30 bytes. The 16 bytes of this is the previous window size flag and the remainning part is for windows scaling.

Window scaling is created generally used in high-latency and high bandwidth WAN links.Because in WAN links limited window size can cause performance problems.

As you can see from the below picture, in the upper one, if we do not use window scaling, then this will be very unefficient.The packet reach in a long time to the receiver and receiver also send a ACK in a long time. This will cause very high latency.

What about with window scaling? If we use window scaling, because of the large window size, the remote host can get some packets and send the ACK without waiting the full packet transfer finished.

Selective Acknowledgement

TCP is a robust protocol but it has still some disadvantages. One of them is acknowledgements. If some packets lost during the transfer, TCP retranmits it. But without selective acknowledgement this is very unuseful.

For example, if the receiver get lastly the bytes 500 but not get 300 through 400. Without selective acknowledgement, for the retransmission, TCP willl start sending from byte 300. But witho selective acknowledgement, TCP will send only the lost part.

Selective acknowledgement part is two 16 bits long. It is double because it is carrying a range. If window scaling is used, then this can be two 24 bits or two 32 bits.

Time Stamp

Another aspect of TCP’s flow-control and reliability is the round-trip delivery times that a virtual circuit is experiencing. The round-trip delivery time will determine how long TCP will wait before attempting to retrasmit a segment that has not been acknowledged.

In order for TCP to set the timer threshold value, it has to measure the round-trip delivery times for various segments. Finally it must monitor various segments during the lifetime of connection to keep up with the changes in the network. Here the Tmestamp option become important.

This field has two field timestamp echo and timestamp reply. Both field is 4 bytes long.


No-option field is used to seperate two different options. It can be used multiple times. No-option field is 1 byte long. If it is used more than one then the length is increased. In different systems, number of no-option field usage is different.

TCP header field is a very common and important part of computer networks!! I hope this article series will be helpful for you to dive in TCP. Keep on;)

You can reach TCP Header article series below…

TCP Header Part – 1
TCP Header Part – 2
TCP Header Part – 3
TCP Header Part – 4
TCP Header Part – 5

Youn can join OUR Facebook Group with the below links!!!

You can Reach Our "CCNA Lab Courses with Packet Tracer" on Udemy.!!!
cisco-packet-tracer-ccna-adventure-1- cisco-packet-tracer-ccna-adventure-2-

About the Author
Gokhan Kosem is a telecommunation and network engineer. His ambition to IP networks and end-to-end system installation made him to prepare this web-site. By sharing his experiences about various networking protocols beside different system installation experiences and Cisco, Juniper, Alcatel-Lucent devices configurations, he is aimed to be helpful for his collegues in all over the world. He is currently lives in Istanbul, Turkey.

Leave a Reply

Copy Protected by Chetan's WP-Copyprotect.