定义
TCP(传输控制协议)是互联网协议(IP)套件中的核心协议之一,负责在网络上进行数据交换。TCP的设计目的是提供可靠的通信服务,确保数据包按顺序传送并且无损失。
可靠性:无差错、不丢失)、不重复)且按序到达;
tcp报文基本是为面向可靠性设计的
无差错(校验和)、不丢失(确认序号)、不重复(序号)且按序(序号)到达;这是主要的,还会通过其他来保证可靠性
报文
-
源端口号 :发送端口号,指示数据包的来源端口。
-
目的端口号 :接收端口号,指示数据包的目的地端口。
-
序列号 (Sequence Number):用于按顺序重组数据报文的序列号,确保数据包按正确的顺序到达目的地。
-
确认序号 (Acknowledgment Number):指示期望接收的下一个字节的序列号,用于确认已经收到的数据。
-
首部长度:表示该TCP头部有多少个32位bit(有多少个4字节); 所以TCP头部最大长度是()15 * 4 = 60字节(首部长度占的4位字节的二进制值=15)
-
保留 (Reserved):保留字段,用于未来使用,目前为0。
-
6位标识位(对应位为1时为有效):
URG: 紧急指针是否有效
ACK: 确认号是否有效
PSH: 提示接收端应用程序立刻从TCP缓冲区把数据读走
RST: 对方要求重新建立连接; 我们把携带RST标识的称为复位报文段SYN: 请求建立连接; 我们把携带SYN标识的称为同步报文段
FIN: 通知对方, 本端要关闭了, 我们称携带FIN标识的为结束报文段 -
窗口大小:用于流量控制的窗口大小,表示接收方能够接收的数据量。(主要同于同步接收方和发送方的能力,避免发生发送方发太多不能接收的情况,或者接收方太空闲的情况)
-
校验和 (Checksum):用于检测TCP报文是否在传输过程中被损坏或篡改。
-
紧急指针 (Urgent Pointer):指示紧急数据的位置,用于处理紧急情况。
-
选项 (Options):可选字段,用于提供额外的功能或特性,如选择性确认、最大报文段大小等。