收藏 分享(赏)

tcp 报文格式分析.doc

上传人:精品资料 文档编号:10060254 上传时间:2019-10-03 格式:DOC 页数:4 大小:140.91KB
下载 相关 举报
tcp 报文格式分析.doc_第1页
第1页 / 共4页
tcp 报文格式分析.doc_第2页
第2页 / 共4页
tcp 报文格式分析.doc_第3页
第3页 / 共4页
tcp 报文格式分析.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、TCP 报文段格式源端口和目的端口字段各占 2 字节。端口是传输层与应用层的服务接口。传输层的复用和分用功能都要通过端口才能实现。序号字段占 4 字节。 TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。确认号字段占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。数据偏移占 4bit,它指出 TCP 报文段的数据起始处距离 CP 报文段的起始处有多远。 “数据偏移”的单位不是字节而是 32bit 字(4 字节为计算单位) 。保留字段占 6bit,保留为今后使用,但目前应置为 0。紧急比特 URG当 URG1 时

2、,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据 )。确认比特 ACK只有当 ACK1 时确认号字段才有效。当 ACK0 时,确认号无效。复位比特 RST(Reset) 当 RST1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因) ,必须释放连接,然后再重新建立运输连接。同步比特 SYN同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文。终止比特 FIN(FINal)用来释放一个连接。当 FIN1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。窗口字段占 2 字节。窗口字段用来控制对方发送的数据量,单位为字

3、节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。检验和占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。紧急指针字段占 16bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。选项字段长度可变。TCP 首部可以有多达 40 字节的可选信息,用于把附加信息传递给终点,或用来对齐其它选项。填充字段这是为了使整个首部长度是 4 字节的整数倍。选项字段2TCP 选项部分很好出现在已经建立连接的会话中,只要出现在 TCP 连接建立阶段,即三次握手。TCP 选

4、项部分实际运用有以下几种:(1)最大报文传输段(MMS, Maximum Segment Size)用于发送发与接收方协商最大报文段长度(仅仅是净荷数据,不包括 TCP 首部字段)。TCP在三次握手中,每一方都会通告期望收到的 MSS(MSS 只出现在 SYN 数据包中),如果一方不接受另一方的 MSS 值,则使用默认的 536 字节净荷数据,即主机能够接受 20+536 字节的 TCP 报文段。(2)窗口扩大选项(Window scaling)TCP 报文的窗口大小字段占 16 位,即最大值是 65535,但随着时延和带宽比较大的通信产生(如卫星通信),需要更大的窗口满足性能和吞吐率,这就是

5、窗口扩大选项存在的意义。例子见参考资料2。Windows scaling 占 3 个字节,最后一个字节是移位值(Shift count),即首部的窗口位数 16 向左移动,如移位值为 14,则新的窗口最大值增大到 65535*(214)。窗口扩大选项是在 TCP 建立之初进行协商,如果已实现了窗口扩大,当不再需要扩大窗口时,发送移位值=0 就可以恢复到原窗口大小,即 65535。(3)选择确认选项(SACK, Selective Acknowledgements)考虑这样情况,主机 A 发送报文段 12345,主机 B 收到 135 且报文无差错,SACK 用来确保只重传缺少的报文段,而不是重

6、传所有报文段。SACK 选项需要 2 个功能字节,一个用来指明使用 SACK 选项(SACK Permission),另一指明这个选项占多少字节。那怎么形容丢失的报文段 2,说明 2 的左右边界分别是 1、3。TCP 的数据报文是有字块边界的,而这种边界是由序列号表示的。最多能指明多少个字节块的边界信息呢?答案是 4 个。这是因为选项字段最大是 40 字节,去除 2 个功能字节,序列号是 32 位即 4 字节,并且需要左右边界,所以 (40-2)/8 = 4。(4)时间戳选项(timestamps)时间戳选项用来计算往返时间 RTT,发送方在发送报文段时把当前时钟的时间值放入时间戳字段,接收方将该时间戳字段的值复制到确认报文中,当接收方收到确认报文,对比确认报文的时间戳(等于发送方发送报文段的时间戳 )和现在的时钟,即可算出 RTT。时间戳选项还可用于防止回绕序号 PAWS。序列号只有 32 位,每 232 个序列号就会回绕(想想环形队列),采用时间戳选项很容易区分相同序列号的报文段。(5)NOP(NO-Operation)TCP 的头部必须是 4 字节的倍数,而大多数选项不是 4 字节倍数,不足的用 NOP 填充。除此之外,NOP 也用于分割不同的选项数据,如窗口扩大选项和 SACK 之间使用 NOP 隔离

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报