TCP的全称为传输控制协议(Transmission Control Protocol),顾名思义,就是可以对传输流程有一个准确的控制。
1. 格式
上图为TCP协议的格式内容,相比于UDP协议段,TCP的内容就显得更加丰富多样,当然也有一部分有着同样的作用。
- 16位源端口号:标识本机网络通信的进程。
- 16位目的端口号:标识接收方主机进行通信的进程。
- 32位序号:指发送数据的位置序号,每发送一次数据,就会累加数据的字节长度。
- 32位确认序号:接收端在收到数据后返回的发送端下一个应该发送数据的起始序号。发送端收到这个确认应答后,可以确定该序号之前的数据都已经被接收端接收到。
- 4位头部长度:也叫作数据偏移,表示TCP头部的大小。
- 6位保留:为六个标志位提供一个标识信息。
六个标志位
- URG:紧急指针是否有效,是否有需要紧急处理的数据。
- ACK:确认号是否有效。
- PSH:提示接收端应用程序立刻从TCP缓冲区把数据读走。
- RST:是否重新建立连接; 我们把携带RST标识的称为复位报文段。
- SYN:请求建立连接;我们把携带SYN标识的称为同步报文段。
- FIN:是否断开连接:携带FIN标识的称为结束报文段。
- 16位窗口大小:是TCP流量控制的一个方法,通过告诉对端缓冲区能容纳数据的窗口大小来控制双方的数据传输速度。
- 16位校验和:由发送端设置,接收端根据CRC算法来检验TCP报文段在传输中是否有损坏。
- 16位紧急指针:指向紧急数据的结束位。主要传输一些紧急数据,在标志位URG为1时有效。
- 选项:用于提高TCP传输性能的条目,可有可无。