一种基于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:写入从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)

顶一下
(0)
0%
踩一下
(2)
100%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
图片资讯

企业需要全新方式管理安全风险

如何搞定Fedora 18上的防火墙配置?

揭穿黑客关于Ashx脚本写aspx木马的方法

家用路由器巧用防火墙免攻击

Windows安全攻略:教你完全修复系统漏洞