知识点讲解
 
       TCP报文格式
知识路径: > 计算机网络原理 > Internet 协议 > 传输层协议 TCP 与 UDP > TCP 协议 > 
被考次数:2次
被考频率: 低频率
总体答错率: 59%
知识难度系数:
考试要求: 掌握     
相关知识点:10个
        TCP报文共分为TCP报头和TCP数据两个部分,如下图所示。TCP报头的前20个字节是固定的,后面有4×N个字节的选项(N为整数),因此TCP报头的最小长度是20字节。
        
        TCP报文格式
        TCP报头中各字段含义如下:
        (1)源端口(Sourece Port)和目的端口(Destination Port)这两个字段分别表示源和目的端口。TCP报文中源和目的端口字段加上IP报文中源和目的IP地址字段,构成一个4元组<源端口,源IP地址,目的端口,目的IP地址>,唯一地标识一个TCP连接。
        (2)发送序号(Sequence Number)、确认序号(Acknowledgment Number)和通告窗口(Advertised Window)字段都在TCP滑动窗口机制中用到。因为TCP是面向字节流的协议,所以报文段中的每个字节都有编号。发送序号字段给出了该TCP报文段中携带的数据的第1个字节分配的编号(SYN标志位为0)。如果在TCP报文中SYN标志位为1,则序号字段表示初始序号(Initial Sequence Number,ISN)。确认序号给出了接收方希望接收的下一个TCP报文段中数据流的第1个字节的编号。确认序号字段只有在ACK标志位为1时有效,而一旦TCP连接建立好,则这个确认序号字段一直有效。通告窗口字段给出了接收方返回给发送方关于接收缓存大小的情况。
        (3)头部长度(Header Length)字段表示TCP报头长度,以32位为单位。TCP报头之所以需要这个字段,是因为TCP报头有一个选项字段,而选项字段的长度是可变的。头部长度字段为4位,意味着TCP报头的最大长度是60字节;如果TCP报头没有选项字段,则TCP报头的最小长度是20字节。
        (4)6位的标志位(Flags)字段用于区分不同类型的TCP报文。目前用到的标志位有SYN、ACK、FIN、RST、PSH和URG。
        .SYN:这个标志位用于TCP连接建立。SYN标志位和ACK标志位搭配使用,当请求连接时,SYN=1,ACK=0;当响应连接时,SYN=1,ACK=1。
        .ACK:ACK标志位为1时,意味着确认序号字段有效。
        .FIN:发送带有FIN标志位的TCP报文后,TCP连接将被断开。
        .RST:这个标志位表示连接复位请求,用来复位那些产生错误的连接。
        .URG:URG标志位为1时,表示TCP报文的数据段中包含紧急数据,紧急数据在TCP报文数据段的位置由紧急指针(Urgent Pointer)字段给出。
        .PSH:这个标志位表示push操作。所谓push操作是指当TCP报文到达接收端以后,立即传送给应用进程,而不是在缓存中排队。
        (5)校验和(Checksum)字段与UDP中的校验和字段用法完全相同,它是通过计算整个TCP报头、TCP数据,以及来自IP报头的源地址、目的地址、协议和TCP长度字段构成的伪头部得来的。TCP报文段中的校验和字段是必需的。
        TCP最常用的选项字段是最大分段长度(Maximum Segment Size,MSS),即最大的数据分段长度。每个TCP连接的发起方在第一个报文(为建立TCP连接而发送将SYN标志位置为1的那个TCP报文)中就指明了这个选项,其值通常是发送方主机所连接的物理网络的最大传输单元(MTU)减去TCP报头长度(TCP报头长度的最小值为20字节)和IP报头长度(IP报头长度的最小值为20字节),这样可以避免发送主机对IP报文进行分段。
        MSS选项字段只能出现在SYN标志位为1的TCP报文(即TCP连接建立请求报文和连接建立响应报文)中。如果TCP连接的另一方不接受发起方给出的MSS值(即双方“协商”不成功),则发起方就将MSS设定为默认值536字节(这个MSS默认值加上20字节TCP报头,再加上20字节IP报头等于576字节,而这正是X.25广域网的MTU)。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有