TCP协议详细介绍
TCP报文格式:
字段介绍:
- 源/目的端口:用来标识主机上的程序
- 序号(seq):4个byte,指当前tcp报文段中第一个字节的序号(tcp报文中每个字节都有一个编号)
- 确认号(ack):4个byte,只有控制位ACK=1时该字段有效,表示确认收到对端第ack前的数据
- 数据偏移:TCP报文开始多少个字节后为TCP数据部分
- 保留:目前没用到,全部置为0
- URG: 当URG=1时,表明紧急指针字段有效,告诉系统此报文段中有紧急数据,应尽快传送,相当于高优先级数据,这个收数据段的首部n字节为紧急数据,n用紧急指针表示
- ACK: 只
- PSH: push之意,接收端接收到PSH=1的报文段,就尽快将其交付接收应用程序,而不再时等到整个缓存满了后再向上交付
- RST: tcp连接出错,必须释放连接再重新建立连接
- SYN: 建立TCP连接,SYN=1表示
- FIN: finish之意,当一方想要断开连接时,会发送一个FIN=1的报文段
- 窗口:
- 校验和:校验和是对TCP首部和数据部分的校验和
- 紧急指针:当URG=1时生效,表示TCP数据部分开始到紧急指针处这段的数据为紧急数据,需要率先传输
- 选项(长度可变):
- 填充: