TCP连接的建立和释放
TCP首部格式
TCP报文段的前20个字节是固定的,后4N个字节为根据需要可增加的选项
首部各字段的意义如下:
- 源端口和目的端口:加上IP首部的源IP地址和目的IP地址,确定唯一的一个TCP连接。另外通过目的端口来确定TCP将数据报交付于哪个应用程序,从而实现功能。
- 序列号:占4个字节,由于TCP是面向字节流的,在TCP中传送的每一个字节都按顺序编号,首部中的序号字段(seq)是指本报文发送数据的第一个字节的序号,序号是循环使用的,当序号增加大最大时,下一个为0.
- 确认号:当ACK标志为1时有效,表示期望收到的下一个报文段数据的第一个字节的序号,确认号为N,则表明到N-1为止的所有数据都被正确收到了
- 头部长度:TCP报文段的头部长度,他表示从TCP报文段的起始位置到数据的起始位置的长度(有多少个4字节),因为头部长度为4位,最大为1111,即15,所以TCP报文段头部最长为60字节,TCP头部占20字节,所以选项不超过40字节。
- 保留位:必须为0
- 下面的六个控制位说明报文段的性质:
1 URG:与首部中的紧急指针字段配合使用。URG为1时,表明紧急指针字段有效,发送应用进程告诉发送方的TCP有紧急数据要传送,于是发送方TCP就把紧急数据插入到本报文段数据的最前面,而其后面仍是普通数据。