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


    P3:写入从SYN3-File_Init_Write_Pointer,即,SYN1 + LEN1 + LEN2 - File_Init_Write_Pointer到SYN1 + LEN1 + LEN2 - File_Init_Write_Pointer + LEN3。
    在数据包不能按序到达的情况下,设IP数据包到达的顺序为P1,P3,P2,可以发现重组数据的写入位置还是相同的,只是写入的先后不同,成了P1,P3,P2。因此,按照此种算法仍能将有效的TCP数据写入到重组数据文件的正确位置。
    ▲处理TCP数据包重传问题
    假设TCP数据传送方先传了四个TCP包TCP1、TCP2、TCP3、TCP4,Sequence Number分别为:SYN1、SYN2、SYN3、SYN4,长度分别为LEN1、LEN2、LEN3、LEN4。但是,TCP数据接收方要求从第二个TCP包开始重新传送,同时由于网络原因重传的数据包大小发生了变化,分别为:LEN2’,LEN3’,LEN4’,并有LEN2 + LEN3 + LEN4 = LEN2’ + LEN3’+ LEN4’,三个新TCP包的Sequence Number分别为:SYN1 + LEN1,SYN1 + LEN1 + LEN2’, SYN1 + LEN1 + LEN2’ + LEN3’。
    根据SYN计算法可得,第一次传输的四个数据包写入TCP重组文件的位置分别为:
    TCP1:写入位置为SYN1-File_Init_Write_Pointer到SYN1-File_Init_Write_Pointer + LEN1。
    TCP2:写入位置为SYN2-File_Init_Write_Pointer,即,SYN1 + LEN1 + - File_Init_Write_Pointer到SYN1 + LEN1 - File_Init_Write_Pointer + LEN2。
    TCP3:写入位置为SYN3-File_Init_Write_Pointer,即,SYN1 + LEN1 + LEN2 - File_Init_Write_Pointer到SYN1 + LEN1 + LEN2 - File_Init_Write_Pointer + LEN3。
    TCP4:写入位置为SYN4-File_Init_Write_Pointer,即,SYN1 + LEN1 + LEN2 + LEN3 - File_Init_Write_Pointer到SYN1 + LEN1 + LEN2 + LEN3 - File_Init_Write_Pointer + LEN4。
    当发生TCP包重传时,程序将从第二个TCP包开始重新写重组数据文件。此时的情况为:
    TCP2’:写入位置为SYN1 + LEN1 - File_Init_Write_Pointer到SYN1 + LEN1 - File_Init_Write_Pointer + LEN2’。
    TCP3’:写入位置为SYN1 + LEN1 + LEN2’ - File_Init_Write_Pointer到SYN1 + LEN1 + LEN2’ - File_Init_Write_Pointer + LEN3’。
    TCP4’:写入位置为SYN1 + LEN1 + LEN2’ + LEN3’ - File_Init_Write_Pointer到SYN1 + LEN1 + LEN2’ + LEN3’ - File_Init_Write_Pointer + LEN4’。
    由于LEN2 + LEN3 + LEN4 = LEN2’ + LEN3’ + LEN4’,因此各数据包在TCP重组数据文件中写入的最终位置两次是相同的,即实现了正确覆盖。
    三、 结束语
    经反复测试我们发现:利用HASH表可以快速实现对多个会话的处理;利用SYN算法可以成功实现TCP会话的恢复,并可以有效地解决IP数据包的乱序到达和TCP数据包的重传问题,误差率非常小且重组效率很高。

(责任编辑:adminadmin2008)

分享到:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

返回首页 返回顶部