TCP Header Part – 3 - www.ipcisco.com : www.ipcisco.com
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 DMCA.com

TCP Flags

Each TCP segment has a special purpose and this is determined by flags.Here we will study on 6 important control flags. There are also other options in flag field, but we will focus only 6 of them. You can check these flags below.

The most important ones that show us the flags importance, is used in three way handshae. These are SYN and ACK flags. Beside that there is a FIN flag that indicates that termination of the connection. Lets check all of these flags in order.

1st Flag – Urgent Pointer

Urgent Pointer flag is used to say that this packet must have a priority. Normally packets goes to the queues on the receiving end. But a packet with urgent pointer flag is set, do not goes to the queue, it goes immediately to the receiver.

Additionaly there is an urgent pointer field in tcp header that we will discuss later. When the urgent pointer set to 1, then te urgent pointer field specifies the position of the urgent data in the segment.

2st Flag – Acknowledgement



ACK flag is used to acknowledge the sending end that the packet has successfully come. For every packet received by the remote end, remote end send a packet with ACK field set to 1. But with windowing, this is done like one ACK for every 3 received packet.

3st Flag – PUSH



When sending data, the sender buffers the data and then send. This buffering is used on the receiving end too. It buffers the data and then sent to the application. But this is not efficient for real time TCP applications. Think about telnet. We must send thousand of characters before the first packet send. This is not efficient. So for the such real time usage of TCP, there is a PUSH flag. With PUSH flag, we say send the data immediately not buffer it. It is like this at the receiving end.It sends the data immediately to the application instead of waiting.

4st Flag – RST



RST flag show that there is not a service that can reply at the remote end. When a host sends a SYN packet to the remote end, if a service is available at the remote end, then remote end replies with ACK packet. But if there is not such a service, the it replies with ACK and RST flag set.

This flag helps hackers for port scanning. All port scanners catch the open and listenning ports thanks to RST flag.

5st Flag – SYN



SYN flag is used initially when establishing the TCP connection in three way handshake. It is the well-known TCP flag. During establishing the connection in three way handshake, 2 SYN set packet sent. After the conenction establishment, during the data session, many SYN set packets sent and received.

6st Flag – FIN

FIN flag is used to tear down the TCP connection. This is the last packets sent and received.

AS you know the TCP connection is full duplex. So if one side send FIN flag set, the other side continue to receive data until it send FIN flag set too.

This is all for TCP flags. Let’s go to the next session and check the most important part of the TCP header, windowing with checksum and urgent pointer…

You can reach the 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.