一种基于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%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
图片资讯

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

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

如今随着企业的信息化水平不断提高,IT系统的规模在不断的扩大,网络结构也日益复杂,...[详细]

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

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

经历了几次跳票之后Fedora 18正式版于2013年1月15日面世,凝聚了许多开发者的心血。很...[详细]

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

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

.Net环境,上传处未限制Ashx和Asmx,后者上传无法运行,提示Asmx脚本只能在本地运行,...[详细]

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

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

随着网络信息安全的需求度提高,个人信息与网络安全逐渐被提上了台面。人们越来越意识...[详细]

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

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

目前互联网上的病毒集团越来越猖狂,对用户的危害也愈演愈烈,大家要懂得保护自己的电...[详细]