12) 填充字段(Padding)
字段大小:依选项字段的设置而有所不同。此字段的目的,在于和选项字段相加后,补足32 位的长度。
13) 确认、顺序、校验和和数据传输正确性的关系。校验和的计算法则为—由分
组起始处以位为单位,将其一个个的值相加,再加上 TCP虚拟报头内的各字段值。最
后,将其总值再取1 的补数,便是其 TCP分组的校验和值。
有一点要注意的是,每次在计算校验和时,在 TCP报头中的校验和字段值,必须
先归零,再做计算。
2.3.3 TCP 的连接、中断和重置
1) TCP的连接
TCP建立连接的方式,称为三次握手法—连接进程经过“建立连接请求” 、 “连接
确认” 、 “建立连接成功” ,称之为“三次握手法” 。
2) TCP的中断
在TCP协议中,数据传输之前必须先成功地建立双方的连接,也就是要先有“沟
通”的动作,同样地,要结束双方的数据传输,也要经过一番“沟通” 。TCP 的中断
的步骤如下:
a) 主机 A发出中断请求的分组,它的编码位中的 FIN 位设为1。
b) 主机 B收到主机 A所送出的 A1 分组,由 FIN 位=1,知道主机 A提出中断请
求。
c) 主机 B 送出回应分组 B1,同时通知本身 TCP 上层的应用程序(如 Telnet、
Gopher),主机 A 有提出中断的请求,以便应用进程采取适当的处理(如关闭已打开
的文件)。
d) 主机收到回应分组B1,在检查它的确认编号无误后,进入等待主机 B 送出含
FIN=1 分组的状态。
e) 当主机 B的应用进程已经完成中断的处理动作后,便送出中断确认分组 B2。
f) 主机 A收到分组B2,检查它的 FIN 是否为1,若无误,表示主机B 已确认中
断请求了。
g) 主机 A送出分组 A2。
h) 主机 B收到分组 A2,确认它的确认编号是否正确,若无误,则主机 A、B 之
间的连接正式结束。
3) TCP的中断。
事实上,在数据的传输进程中,要中断 TCP 之间的连接,有两种做法,除了上述32 位 来源端口 目的端口
顺序编号
确认编号
数据偏移量 保留(0) 编码位 窗口
校验和 紧急指针
选项字段 填充字段
图3 TCP报头
1) 来源端口(Source port,指传送端端口)
字段大小:16 位。此字段用来定义来源主机的 port 编号,它和来源主机的 IP 地
址结合后,成为完整的 TCP传送端口地址。
2) 目的端口(Destination port,只接收端端口)
字段大小:16 位。此字段用来定义目的地主机的 port 编号,它和目的主机的 IP
地址结合后,成为完整的 TCP 接收端地址。
3) 顺序编号(Sequence number)
字段大小:32 位表示分组的顺序编号,是利用随机数的方式而产生。
4) 确认编号(Acknowledge number)
字段大小:32 位回应对方传送分组的确认编号,它表示希望下一次应该送出那个
顺序编号的数据。
5) 数据偏移量(Data offset)
字段大小:4 位。因为TCP的选项字段长度非常固定,因此以数据偏移量此字段 基于SEP3203和TCP/IP协议的数据传输实现研究 (6):http://www.youerw.com/tongxin/lunwen_8523.html