TCP数据包重组实现分析汇总版_第1页
TCP数据包重组实现分析汇总版_第2页
TCP数据包重组实现分析汇总版_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TCP数据包重组实现分析参照TCP/IP详解卷,详细论述了 TCP协议的实现,江苏万和小编大概总结一下TCP如何向应用层保证数据包的正确性、可靠性,即TCP如何实现对数据报文的重组。首先要设计两个报文队列,一个存放正常来到的报文,一个存放失序到来的报文。比如正常报文队列最后一个报文数据如下:报文数据段第一字节的序号数据报长度seq1=100len 1=100下一个来到的报文可能有多种情况,现依次分析如下:1)正常报文seq2=200len 2=200seq2 = seq1+le n1由此报文的seq可知,这个报文携带数据序号200399,正是上一个报文的预期后续报文,将此报文追加到正常报文队列

2、。2)完全重复报文seq2=100len 2=100seq2 =seq1 而且 len2=len1这个报文携带数据序号 100199,与上一个报文携带的数据序号100199完全一样,即完全重复,所以应该丢弃这个报文。3)重复子报文seq2=100len 2=50seq2 =seq1 而且 len2len1这个报文携带数据序号100149,说明这是上一个报文的一部分,所以应该丢弃这个报文。注:第二、三这两种情况可以合并,即seq2 =seq1而且len2seq1 而且 seq2seq1+len1 而且 seq2+len2seq1 而且 seq2seq1+len1即这个报文携带序号150249,这

3、个序号段前一部分150199被包含在上一个报文段(100199)中,后一部分 200249是新的数据,此时应该对这个报文作如下处理:A.计算重复字节数(seq1+len1) - Seq2= 100+100-150 = 50即这个报文段前50个字节是重复的。B. 截取报文段新数据丢弃这个报文段的前 50字节,截取后面的新数据,即只保留字节序号段200249。C. 重新设置这个报文段的seqseq2 = seq2+50 = 150+50 = 200D. 重新设置这个报文段的数据长度Ien2 = len2-50 =100-50=50E. 重新设置后报文段如下seq2=200len 2=50即现在这个报文段携带数据序号200249,正好是上一个报文的后续报文,现在可以将其作为正常报文追加到正常报文队列。6)提前到达的报文seq2=300len 2=100seq2seq1+le n1这个报文段携带序号300399的数据,即不是上一个报文100199的后续报文,而是提前到来的报文,此时应该将这个报文放置到失序报文队列存储起来,以备后续重组使用。这样直到tcp断开这个socket的链接(FIN=1),此时将正常报文队列和失序报文队列中 的数据合并起来,完成重组。取出正常报文队列最后一个报文的seq

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论