tcp 报文格式分析

tcp 报文格式分析

ID:43463730

大小:140.92 KB

页数:5页

时间:2019-10-03

tcp 报文格式分析_第1页
tcp 报文格式分析_第2页
tcp 报文格式分析_第3页
tcp 报文格式分析_第4页
tcp 报文格式分析_第5页
资源描述:

《tcp 报文格式分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

2、段——占6bit,保留为今后使用,但目前应置为0。  紧急比特URG——当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。  确认比特ACK——只有当ACK=1时确认号字段才有效。当ACK=0时,确认号无效。  复位比特RST(Reset)——当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。  同步比特SYN——同步比特SYN置为1,就表示这是一个连接请求或连接接受报文。  终止比特FIN(F

3、INal)——用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。  窗口字段——占2字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。  检验和——占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。  紧急指针字段——占16bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。  选项字段——长

4、度可变。TCP首部可以有多达40字节的可选信息,用于把附加信息传递给终点,或用来对齐其它选项。  填充字段——这是为了使整个首部长度是4字节的整数倍。选项字段[2]TCP选项部分很好出现在已经建立连接的会话中,只要出现在TCP连接建立阶段,即三次握手。TCP选项部分实际运用有以下几种:(1)最大报文传输段(MMS,MaximumSegmentSize)用于发送发与接收方协商最大报文段长度(仅仅是净荷数据,不包括TCP首部字段)。TCP在三次握手中,每一方都会通告期望收到的MSS(MSS只出现在SYN数据包中),

5、如果一方不接受另一方的MSS值,则使用默认的536字节净荷数据,即主机能够接受20+536字节的TCP报文段。(2)窗口扩大选项(Windowscaling)TCP报文的窗口大小字段占16位,即最大值是65535,但随着时延和带宽比较大的通信产生(如卫星通信),需要更大的窗口满足性能和吞吐率,这就是窗口扩大选项存在的意义。例子见参考资料[2]。Windowsscaling占3个字节,最后一个字节是移位值(Shiftcount),即首部的窗口位数16向左移动,如移位值为14,则新的窗口最大值增大到65535*(2

6、^14)。窗口扩大选项是在TCP建立之初进行协商,如果已实现了窗口扩大,当不再需要扩大窗口时,发送移位值=0就可以恢复到原窗口大小,即65535。(3)选择确认选项(SACK,SelectiveAcknowledgements)考虑这样情况,主机A发送报文段12345,主机B收到135且报文无差错,SACK用来确保只重传缺少的报文段,而不是重传所有报文段。SACK选项需要2个功能字节,一个用来指明使用SACK选项(SACKPermission),另一指明这个选项占多少字节。那怎么形容丢失的报文段2,说明2的左右

7、边界分别是1、3。TCP的数据报文是有字块边界的,而这种边界是由序列号表示的。最多能指明多少个字节块的边界信息呢?答案是4个。这是因为选项字段最大是40字节,去除2个功能字节,序列号是32位即4字节,并且需要左右边界,所以(40-2)/8=4。(4)时间戳选项(timestamps)时间戳选项用来计算往返时间RTT,发送方在发送报文段时把当前时钟的时间值放入时间戳字段,接收方将该时间戳字段的值复制到确认报文中,当接收方收到确认报文,对比确认报文的时间戳(等于发送方发送报文段的时间戳)和现在的时钟,即可算出RTT

8、。时间戳选项还可用于防止回绕序号PAWS。序列号只有32位,每2^32个序列号就会回绕(想想环形队列),采用时间戳选项很容易区分相同序列号的报文段。(5)NOP(NO-Operation)TCP的头部必须是4字节的倍数,而大多数选项不是4字节倍数,不足的用NOP填充。除此之外,NOP也用于分割不同的选项数据,如窗口扩大选项和SACK之间使用NOP隔离

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。