一种基于HASH表和SYN计算的TCP会话重组方法(2)


    2.SYN计算方法
    (1)Sequence Number
    本节将分析TCP头中Sequence Number在TCP数据传输过程中的作用。
    初始阶段,TCP连接刚建立时,会为后续TCP数据传输设定一个初始Sequence Number,本文用Init_Seq_NUM表示。每传送一个包含有效数据的TCP包,后续紧接着传送的TCP数据包Sequence Number会作相应的修改,如果前一个TCP包的长度为N字节,则这个包的Sequence Number为前一个包的Sequence Number加N字节。表1描述了这一过程。
    表1:TCP Sequence Number在TCP数据包传输过程中的作用。
    可以看出,Sequence Number是为了保证TCP数据包按序传输来设计的,可以有效地实现TCP数据的完整传送,特别是当数据传输出现错误时可以有效进行错误纠正。
    (2)TCP会话文件写指针SYN计算方法
    基于TCP头中的Sequence Number有一种简单而有效的TCP会话重组数据文件写指针的计算方法,在这里我们称之为SYN计算。本节将对此方法进行介绍。
    在将一个TCP包的数据内容写入到重组数据文件的时候,需要两个参数:数据长度Data Length和文件写指针Write Pointer。数据长度可以很方便地从数据包的IP头中提取,难点是如何计算TCP重组数据文件写指针。根据上文介绍的Sequence Number的作用,可利用这个值来计算写指针。
    ①记录初始Sequence Number,该值可以从携带SYN标记的TCP包中获得。
    ②用当前TCP包中的Sequence Number减去初始Sequence Number,再减去1(因为TCP SYN标记需要占用一个Sequence Number),即可以得到TCP重组数据文件的写指针Write Pointer。
    以上就是用来计算TCP重组数据文件写指针的SYN算法。即:
     ①File_Init_Write_Pointer = Init Sequence Number + 1;
    ②File_Write_Pointer = Current Sequence Number – File_Init_Write_Pointer。
    (3)特例问题
    本节分析用上述SYN算法如何实现有效处理IP数据包乱序到达和TCP数据包重传问题。
    ▲处理IP数据包乱序到达问题
    设正确的IP数据包到达顺序应该是:P1、P2、P3,对应的Sequence Number分别是:SYN1、SYN2、SYN3,有效TCP数据的大小为Len1、Len2、Len3。
    则有:SYN2 = SYN1 + LEN1,SYN3 = SYN2 + LEN2,在数据包按序到达的情况下,我们利用SYN算法可将各个TCP数据包内容正确地写入重组数据文件的对应位置。
    P1:写入从SYN1-File_Init_Write_Pointer位置到SYN1-File_Init_Write_Pointer + LEN1。
    P2:写入从SYN2-File_Init_Write_Pointer,即,SYN1 + LEN1 + - File_Init_Write_Pointer到SYN1 + LEN1 - File_Init_Write_Pointer + LEN2。

(责任编辑:adminadmin2008)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

如何运维网站能让其稳定高效之稳定篇

如何运维网站能让其稳定高效之稳定篇

作为一名运维工程师,工作中最大的希望就是自己运维的网站能够稳定高效运行,但理想很...[详细]

黑客、Geek等高手们都是这样上网的

黑客、Geek等高手们都是这样上网的

电脑高手们都会尽可能地寻找各种快捷高效的操作方式,譬如很多快速启动类的工具(如Exe...[详细]

如何选择最佳的数据中心闪存?

如何选择最佳的数据中心闪存?

全闪存数据中心是个未来概念,同样还有不少方法实现数据中心内服务器或基于阵列的闪存...[详细]

手机解锁:图案、数字谁更强?

手机解锁:图案、数字谁更强?

手机九宫格解锁到底安全不?九宫格能画出多少图案啊?我自己设置的九宫格总是被同学分...[详细]

黑客声称一款流行的加密App竟然只用了异或

黑客声称一款流行的加密App竟然只用了异或加密!

一名黑客生成加密程序的作者竟然没有实现其核心的功能:加密! 这位ID为NinjaDoge24(...[详细]

返回首页 返回顶部