10.5.3 运输控制协议TCP
运输控制协议TCP是运输层的另一个重要协议。它用于在各种网络上提供有序可靠的面向连接的数据传输服务。与UDP相比,TCP最大特点是以牺牲效率为代价换取高可靠的服务。为了达到这种高可靠性,TCP必须检测分组的丢失,在收不到确认时进行自动重传、流量控制、拥塞控制等。
1.TCP分组格式
(1) 源端口:标识源端应用进程。
(2) 目的端口:标识目的端应用进程。
(3) 序号:在SYN标志未置位时,该字段指示了用户数据区中第一个字节的序号;在SYN标志置位时,该字段指示的是初始发送的序列号。
(4) 确认号:用来确认本端TCP实体已经接收到的数据,其值表示期待对端发送的下一个字节的序号,实际上告诉对方,在这个序号减1以前的字节已正确接收。
(5) 数据偏移:表示以32位字为单位的TCP分组头的总长度,用于确定用户数据区的起始位置。
(6) URG:紧急指针字段有效。
(7) ACK:确认好有效。
(8) PSH:Push操作。TCP分组长度不定,为提高传输效率,往往要收集到足够的数据后才发送。这种方式不适合实时性要求很高的应用,因此,TCP提供“Push”操作,以强迫传输当前的数据,不必等待缓冲区满才传送。
(9) RST:连接复位,重新连接。
(10) SYN:同步序号,该比特置位表示连接建立分组。
(11) FIN:字符串发送完毕,没有其他数据需要发送,该比特置位表示连接确认分组。
(12) 窗口:单位是字节,指明该分组的发送端愿意接收的从确认字段中的值开始的字节数量。
(13) 校验和:对TCP分组的头部和数据区进行校验。
(14) 紧急指针:指出窗口中紧急数据的位置(从分组序号开始的正向位移,指向紧急数据的最后一个字节),这些紧急数据应优先于其他数据进行传送。
(15) 任选项:用于处理一些特殊情况。目前被正式使用的选项字段可用于定义通信过程中的最大分组长度,只能在连接建立时使用。
(16) 填充:用于保证任选项为32 bit的整数倍。
返回目录: