CN113905364A - 路由器上行数据溯源方法、装置、计算机设备及存储介质 - Google Patents

路由器上行数据溯源方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN113905364A
CN113905364A CN202111242792.XA CN202111242792A CN113905364A CN 113905364 A CN113905364 A CN 113905364A CN 202111242792 A CN202111242792 A CN 202111242792A CN 113905364 A CN113905364 A CN 113905364A
Authority
CN
China
Prior art keywords
data
network
layer data
name
header
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111242792.XA
Other languages
English (en)
Other versions
CN113905364B (zh
Inventor
王永勇
赵国超
莫炜业
黄振江
袁蓉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Communication And Information Center Of Emergency Management Department
Guangzhou Tongze Kangwei Technology Co ltd
Original Assignee
Communication And Information Center Of Emergency Management Department
Guangzhou Tongze Kangwei Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Communication And Information Center Of Emergency Management Department, Guangzhou Tongze Kangwei Intelligent Technology Co Ltd filed Critical Communication And Information Center Of Emergency Management Department
Priority to CN202111242792.XA priority Critical patent/CN113905364B/zh
Publication of CN113905364A publication Critical patent/CN113905364A/zh
Application granted granted Critical
Publication of CN113905364B publication Critical patent/CN113905364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/08Testing, supervising or monitoring using real traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W74/00Wireless channel access
    • H04W74/002Transmission of channel access control information
    • H04W74/004Transmission of channel access control information in the uplink, i.e. towards network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了路由器上行数据溯源方法、装置、计算机设备及存储介质。方法包括:注册钩子函数至规则链内;设置路由器源标识及WAN网卡名称;当协议类型、出口网卡名称以及网络层数据都满足设定条件时,则从结构体内获取传输层数据;计算传输层数据的头部剩余可利用的空间量、传输层数据的头部可选字段中种类等于一和八所占用的数据量;当需要清除可选字段特定种类数据量时,将网络层数据以及传输层数据的头部向前移动,并清除特定字段,将其他字段向前移动;在其他字段的尾部位置插入种类等于254且携带路由器源标识的数据;更新网络层数据以及传输层数据。通过实施本发明实施例的方法可实现应用于各种对溯源有要求的特殊应用场景。

Description

路由器上行数据溯源方法、装置、计算机设备及存储介质
技术领域
本发明涉及计算机,更具体地说是指路由器上行数据溯源方法、装置、计算机设备及存储介质。
背景技术
在实际运用过程中,由于使用空间较大,通常需要在蜂窝无线路由器下挂网络设备,以使得无线网络的适用范围增大,现有的应用层协议实现方案中,每台蜂窝无线路由器下挂网络设备在应用层支持源标识上行;但是,在进行下挂网络设备的上行数据包溯源时,要求路由器下挂链接的每台网络设备都要在应用层增加协议,支持源标识上行,增加了路由器下挂网络设备的入网难度,并不适用于各种对溯源有要求的特殊应用场景。
因此,有必要设计一种新的方法,实现方便路由器接入各种网络设备,且可应用于各种对溯源有要求的特殊应用场景。
发明内容
本发明的目的在于克服现有技术的缺陷,提供路由器上行数据溯源方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:路由器上行数据溯源方法,包括:
注册自定义的钩子函数至规则链内;
由应用程序对驱动程序设置路由器源标识以及WAN网卡名称;
当linux内核网络协议栈发送网络数据包时,由钩子函数获取所述网络数据包的结构体的协议类型、出口网卡名称以及网络层数据;
判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件;
若所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件,则从所述结构体内获取传输层数据;
计算所述传输层数据的头部剩余可利用的空间量,以得到剩余可利用空间量;
计算所述传输层数据的头部可选字段中种类等于一和种类等于八所占用的数据量,以得到可选字段特定种类数据量;
根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量;
若需要清除所述可选字段特定种类数据量,则标记所述可选字段特定种类数据量;
从所述结构体内获取网络层数据的头部;
将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并清除所述传输层数据的头部可选字段中种类等于一和种类等于八的字段,将种类不等于一和八的字段向前移动至所述传输层数据的头部可选字段的开始位置;
在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐;
更新所述网络层数据的头部中长度字段,更新所述传输层数据的头部中指示头部长度的字段,以得到新的数据包;
对新的数据包重新计算所述网络层数据的校验和以及所述传输层数据的校验和。
其进一步技术方案为:所述根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量之后,还包括:
若不需要清除所述可选字段特定种类数据量,则将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并执行所述在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐。
其进一步技术方案为:所述判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件,包括:
判断所述协议类型是否是IP协议;
若所述协议类型是IP协议,则判断所述出口网卡名称是否是WAN网卡名称;
若所述出口网卡名称是WAN网卡名称,则判断所述网络层数据的头部是否是TCP协议;
若所述网络层数据的头部是TCP协议,则确定所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件;
若所述协议类型不是IP协议,则确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件;
若所述出口网卡名称不是WAN网卡名称,则执行所述确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件;
若所述网络层数据的头部不是TCP协议,则执行所述确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件。
其进一步技术方案为:所述根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量,包括:
判断所述可选字段特定种类数据量是否大于所述剩余可利用空间量;
若所述可选字段特定种类数据量不大于所述剩余可利用空间量,则判断所述剩余可利用空间量以及所述可选字段特定种类数据量的总和是否大于路由器源标识的数据量;
若所述剩余可利用空间量以及所述可选字段特定种类数据量的总和大于路由器源标识的数据量,则需要清除所述可选字段特定种类数据量;
若所述可选字段特定种类数据量大于所述剩余可利用空间量,则不需要清除所述可选字段特定种类数据量;
若所述剩余可利用空间量以及所述可选字段特定种类数据量的总和不大于路由器源标识的数据量,则进入结束步骤。
其进一步技术方案为:所述判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件之后,还包括:
若所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件,则进入结束步骤。
其进一步技术方案为:所述结构体包括应用层数据、传输层数据、网络层数据以及网络数据包的出口网卡名称。
其进一步技术方案为:所述对新的数据包重新计算所述网络层数据的校验和以及所述传输层数据的校验和,包括:
将新的数据包的网络层数据以及传输层数据进行二进制反码求和,以得到结果,将所述结果存入校验和字段内。
本发明还提供了路由器上行数据溯源装置,包括:
注册单元,用于注册自定义的钩子函数至规则链内;
设置单元,用于由应用程序对驱动程序设置路由器源标识以及WAN网卡名称;
结构体获取单元,用于当linux内核网络协议栈发送网络数据包时,由钩子函数获取所述网络数据包的结构体的协议类型、出口网卡名称以及网络层数据;
第一判断单元,用于判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件;
传输层数据获取单元,用于若所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件,则从所述结构体内获取传输层数据;
第一计算单元,用于计算所述传输层数据的头部剩余可利用的空间量,以得到剩余可利用空间量;
第二计算单元,用于计算所述传输层数据的头部可选字段中种类等于一和种类等于八所占用的数据量,以得到可选字段特定种类数据量;
第二判断单元,用于根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量;
标记单元,用于若需要清除所述可选字段特定种类数据量,则标记所述可选字段特定种类数据量;
网络层数据获取单元,用于从所述结构体内获取网络层数据的头部;
第一处理单元,用于将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并清除所述传输层数据的头部可选字段中种类等于一和种类等于八的字段,将种类不等于一和八的字段向前移动至所述传输层数据的头部可选字段的开始位置;
第二处理单元,用于在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐;
更新单元,用于更新所述网络层数据的头部中长度字段,更新所述传输层数据的头部中指示头部长度的字段,以得到新的数据包;
校验和计算单元,用于对新的数据包重新计算所述网络层数据的校验和以及所述传输层数据的校验和。
本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。
本发明与现有技术相比的有益效果是:本发明通过借助钩子函数获取上行数据包即网络数据包的结构体,并根据结构体的协议类型、出口网卡名称以及网络层数据来判断是否可修改传输层数据的头部的可选字段,当可以修改时,通过修改蜂窝无线路由器上行数据包的传输数据层的头部的可选字段,加入源标识,使得路由器下挂网络设备上行TCP通信的数据包都包含了源标识,实现方便路由器接入各种网络设备,且可应用于各种对溯源有要求的特殊应用场景。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的路由器上行数据溯源方法的应用场景示意图;
图2为本发明实施例提供的路由器上行数据溯源方法的流程示意图;
图3为本发明实施例提供的路由器上行数据溯源方法的子流程示意图;
图4为本发明实施例提供的路由器上行数据溯源方法的子流程示意图;
图5为本发明实施例提供的插入路由器源标识后的数据示意图;
图6为本发明实施例提供的路由器上行数据溯源装置的示意性框图;
图7为本发明实施例提供的路由器上行数据溯源装置的第一判断单元的示意性框图;
图8为本发明实施例提供的路由器上行数据溯源装置的第二判断单元的示意性框图;
图9为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的路由器上行数据溯源方法的应用场景示意图。图2为本发明实施例提供的路由器上行数据溯源方法的示意性流程图。该路由器上行数据溯源方法应用于服务器中。该服务器与若干个网络设备进行数据交互,通过修改上行数据包传输层数据头部的可选字段,加入源标识;所有下挂蜂窝无线路由器的网络设备,上行TCP通信的数据包都包含了源标识;加入传输层数据的头部可选字段的源标识可通过路由器管理界面配置。
图2是本发明实施例提供的路由器上行数据溯源方法的流程示意图。如图2所示,该方法包括以下步骤S110至S250。
S110、注册自定义的钩子函数至规则链内。
在本实施例中,钩子函数是自定义的hook钩子函数,用于获取上行数据包。
具体地,系统启动后,驱动程序初始化,注册自定义的hook钩子函数到规则链NF_IP_POST_ROUTING。
S120、由应用程序对驱动程序设置路由器源标识以及WAN网卡名称。
在本实施例中,路由器源标识是指路由器的标识,可用于插入到传输层数据的头部的可选字段中。
WAN网卡名称是指WAN口网卡名称,驱动程序只对流过该网卡的数据包才插入传输层数据的头部可选字段。
具体地,应用程序对驱动程序设置路由器源标识例如:IMEI+IMSI,假设数据大小为A,用于插入到TCP头部可选字段。其中,IMEI为864284040183357,IMSI:460110123456789,则设置源标识的命令为:echo864284040183357460110123456789>/sys/module/ippack/parameters/g_option_data_buf。
应用程序对驱动程序设置网卡名称,例如WAN口网卡名称,使驱动程序只对流过该网卡的数据包才插入TCP头部可选字段。WAN口网卡名称为rmnet_data0,则设置的命令为:echo rmnet_data0>/sys/module/ippack/parameters/g_net_interface。
S130、当linux内核网络协议栈发送网络数据包时,由钩子函数获取所述网络数据包的结构体的协议类型、出口网卡名称以及网络层数据。
在本实施例中,所述结构体包括应用层数据、传输层数据、网络层数据以及网络数据包的出口网卡名称。
具体地,当linux内核网络协议栈发送网络数据包时,传递网络数据包结构体sk_buff到自定义的钩子函数,其中,结构体sk_buff包含应用层数据、传输层数据、网络层数据以及该网络数据包的出口网卡名称。
另外,在自定义的hook钩子函数中,从结构体sk_buff获取protocol字段,以得到协议类型。
S140、判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件。
在一实施例中,请参阅图3,上述的步骤S140可包括步骤S141~S145。
S141、判断所述协议类型是否是IP协议。
在本实施例中,在自定义的hook钩子函数中,从结构体sk_buff获取protocol字段,判断protocol字段是否等于0x0800即IP协议的标识,不满足条件则结束不处理。
S142、若所述协议类型是IP协议,则判断所述出口网卡名称是否是WAN网卡名称。
从结构体sk_buff获取到该网络数据包的出口网卡名称,判断出口网卡名称是否与设置的WAN网卡名称一致,不满足条件则结束不处理。
S143、若所述出口网卡名称是WAN网卡名称,则判断所述网络层数据的头部是否是TCP协议。
在本实施例中,从结构体sk_buff获取到网络层数据,判断网络层数据的头部的protocol字段是否为TCP协议,不满足条件则结束不处理。
S144、若所述网络层数据的头部是TCP协议,则确定所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件;
S145、若所述协议类型不是IP协议,则确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件;
若所述出口网卡名称不是WAN网卡名称,则执行所述步骤S145;
若所述网络层数据的头部不是TCP协议,则执行所述步骤S145。
若所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件,则进入结束步骤。
在结束时自定义的钩子函数返回内核网络协议栈。
S150、若所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件,则从所述结构体内获取传输层数据;
S160、计算所述传输层数据的头部剩余可利用的空间量,以得到剩余可利用空间量。
在本实施例中,剩余可利用空间量是指传输层数据的头部剩余可利用的空间量大小。
S170、计算所述传输层数据的头部可选字段中种类等于一和种类等于八所占用的数据量,以得到可选字段特定种类数据量。
在本实施例中,可选字段特定种类数据量是指所述传输层数据的头部可选字段中种类等于一和种类等于八所占用的数据量大小。
具体地,从结构体sk_buff获取传输层数据,计算该传输层数据的包中头部剩余可利用的空间大小,假设数据大小为B,计算该传输层数据包中原有的头部的option中,kind=1和kind=8类型占用的数据大小,假设数据大小为C。
S180、根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量。
在本实施例中,判断是否需要清除可选字段特定种类数据量是为了避免传输层数据的头部空间不足,无法插入对应的数据。
在一实施例中,请参阅图4,上述的步骤S180可包括步骤S181~S184。
S181、判断所述可选字段特定种类数据量是否大于所述剩余可利用空间量;
S182、若所述可选字段特定种类数据量不大于所述剩余可利用空间量,则判断所述剩余可利用空间量以及所述可选字段特定种类数据量的总和是否大于路由器源标识的数据量;
S183、若所述剩余可利用空间量以及所述可选字段特定种类数据量的总和大于路由器源标识的数据量,则需要清除所述可选字段特定种类数据量;
S184、若所述可选字段特定种类数据量大于所述剩余可利用空间量,则不需要清除所述可选字段特定种类数据量;
若所述剩余可利用空间量以及所述可选字段特定种类数据量的总和不大于路由器源标识的数据量,则进入结束步骤。
如果B大于A时,即所述可选字段特定种类数据量大于所述剩余可利用空间量,说明传输层数据的头部空间足够可以直接插入,标记不需要清除,跳到步骤S250,否则进入判断B+C与A的关系,如果B+C大于A时,即所述剩余可利用空间量以及所述可选字段特定种类数据量的总和大于路由器源标识的数据量,说明传输层数据的头部空间不足,标记需要清除数据C,跳到步骤S190,否则结束不处理。
S190、若需要清除所述可选字段特定种类数据量,则标记所述可选字段特定种类数据量;
S200、从所述结构体内获取网络层数据的头部;
S210、将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并清除所述传输层数据的头部可选字段中种类等于一和种类等于八的字段,将种类不等于一和八的字段向前移动至所述传输层数据的头部可选字段的开始位置。
在本实施例中,从结构体sk_buff获取网络层数据的头部,将网络层数据+传输层数据的头部向前移动到满足插入数据A为止,如果需要删除kind=1和kind=8对应的数据C时,则清除kind=1和kind=8,其他类型的kind向前移动到所述传输层数据的头部的可选字段的开始位置。
S220、在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐;
在本实施例中,在其他kind类型的尾部位置,插入kind=254并且携带路由器源标识的数据,例如IMEI+IMSI数据,如果传输层数据的头部大小不符合4字节对齐时,插入kind=1补位4字节对齐,具体可如图5所示。
S230、更新所述网络层数据的头部中长度字段,更新所述传输层数据的头部中指示头部长度的字段,以得到新的数据包。
在本实施例中,新的数据包是指根据加入路由器源标识后的数据更新所述网络层数据的头部中长度字段,更新所述传输层数据的头部中指示头部长度的字段后得到的数据包。
具体地,由于已经插入路由器源标识导致数据包长度变大,更新网络层数据的头部中长度字段,更新传输层数据的头部中指示头部长度的字段。
S240、对新的数据包重新计算所述网络层数据的校验和以及所述传输层数据的校验和。
在本实施例中,将新的数据包的网络层数据以及传输层数据进行二进制反码求和,以得到结果,将所述结果存入校验和字段内。
具体地,把需要校验的数据看成以16位为单位的数字组成,依次进行二进制反码求和,把得到的结果存入校验和字段。
S250、若不需要清除所述可选字段特定种类数据量,则将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并执行所述步骤S220。
基于linux系统的子系统netfilter框架,利用hook的钩子功能,在上行出口处的hook钩子函数对网络数据包进行分析、处理、修改传输层数据的头部的可选字段,通过修改蜂窝无线路由器上行数据包的传输数据层的头部的可选字段,加入源标识,使得路由器下挂网络设备上行TCP通信的数据包都包含了源标识,灵活应用于各种对溯源有要求的特殊应用场景。
上述的路由器上行数据溯源方法,通过借助钩子函数获取上行数据包即网络数据包的结构体,并根据结构体的协议类型、出口网卡名称以及网络层数据来判断是否可修改传输层数据的头部的可选字段,当可以修改时,通过修改蜂窝无线路由器上行数据包的传输数据层的头部的可选字段,加入源标识,使得路由器下挂网络设备上行TCP通信的数据包都包含了源标识,实现方便路由器接入各种网络设备,且可应用于各种对溯源有要求的特殊应用场景。
图6是本发明实施例提供的一种路由器上行数据溯源装置300的示意性框图。如图6所示,对应于以上路由器上行数据溯源方法,本发明还提供一种路由器上行数据溯源装置300。该路由器上行数据溯源装置300包括用于执行上述路由器上行数据溯源方法的单元,该装置可以被配置于服务器中。具体地,请参阅图6,该路由器上行数据溯源装置300包括注册单元301、设置单元302、结构体获取单元303、第一判断单元304、传输层数据获取单元305、第一计算单元306、第二计算单元307、第二判断单元308、标记单元309、网络层数据获取单元310、第一处理单元311、第二处理单元312、更新单元313以及校验和计算单元314。
注册单元301,用于注册自定义的钩子函数至规则链内;设置单元302,用于由应用程序对驱动程序设置路由器源标识以及WAN网卡名称;结构体获取单元303,用于当linux内核网络协议栈发送网络数据包时,由钩子函数获取所述网络数据包的结构体的协议类型、出口网卡名称以及网络层数据;第一判断单元304,用于判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件;若所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件,则进入结束步骤。传输层数据获取单元305,用于若所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件,则从所述结构体内获取传输层数据;第一计算单元306,用于计算所述传输层数据的头部剩余可利用的空间量,以得到剩余可利用空间量;第二计算单元307,用于计算所述传输层数据的头部可选字段中种类等于一和种类等于八所占用的数据量,以得到可选字段特定种类数据量;第二判断单元308,用于根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量;标记单元309,用于若需要清除所述可选字段特定种类数据量,则标记所述可选字段特定种类数据量;网络层数据获取单元310,用于从所述结构体内获取网络层数据的头部;第一处理单元311,用于将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并清除所述传输层数据的头部可选字段中种类等于一和种类等于八的字段,将种类不等于一和八的字段向前移动至所述传输层数据的头部可选字段的开始位置;第二处理单元312,用于在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐;更新单元313,用于更新所述网络层数据的头部中长度字段,更新所述传输层数据的头部中指示头部长度的字段,以得到新的数据包;校验和计算单元314,用于对新的数据包重新计算所述网络层数据的校验和以及所述传输层数据的校验和。
在一实施例中,所述校验和计算单元314,用于将新的数据包的网络层数据以及传输层数据进行二进制反码求和,以得到结果,将所述结果存入校验和字段内。
在一实施例中,如图6所示,所述路由器上行数据溯源装置300还包括第三处理单元315。
第三处理单元315,用于若不需要清除所述可选字段特定种类数据量,则将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并执行所述在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐。
在一实施例中,如图7所示,所述第一判断单元304包括协议判断子单元3041、名称判断子单元3042、头部判断子单元3043、第一确定子单元3044以及第二确定子单元3045。
协议判断子单元3041,用于判断所述协议类型是否是IP协议;名称判断子单元3042,用于若所述协议类型是IP协议,则判断所述出口网卡名称是否是WAN网卡名称;若所述出口网卡名称不是WAN网卡名称,则执行所述确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件;头部判断子单元3043,用于若所述出口网卡名称是WAN网卡名称,则判断所述网络层数据的头部是否是TCP协议;若所述网络层数据的头部不是TCP协议,则执行所述确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件。第一确定子单元3044,用于若所述网络层数据的头部是TCP协议,则确定所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件;第二确定子单元3045,用于若所述协议类型不是IP协议,则确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件。
在一实施例中,如图8所示,所述第二判断单元308包括第一大小判断子单元3081以及第二大小判断子单元3082。
第一大小判断子单元3081,用于判断所述可选字段特定种类数据量是否大于所述剩余可利用空间量;若所述可选字段特定种类数据量大于所述剩余可利用空间量,则不需要清除所述可选字段特定种类数据量;第二大小判断子单元3082,用于若所述可选字段特定种类数据量不大于所述剩余可利用空间量,则判断所述剩余可利用空间量以及所述可选字段特定种类数据量的总和是否大于路由器源标识的数据量;若所述剩余可利用空间量以及所述可选字段特定种类数据量的总和大于路由器源标识的数据量,则需要清除所述可选字段特定种类数据量;若所述剩余可利用空间量以及所述可选字段特定种类数据量的总和不大于路由器源标识的数据量,则进入结束步骤。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述路由器上行数据溯源装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述路由器上行数据溯源装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图9所示的计算机设备上运行。
请参阅图9,图9是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是服务器,其中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图9,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种路由器上行数据溯源方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种路由器上行数据溯源方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
注册自定义的钩子函数至规则链内;由应用程序对驱动程序设置路由器源标识以及WAN网卡名称;当linux内核网络协议栈发送网络数据包时,由钩子函数获取所述网络数据包的结构体的协议类型、出口网卡名称以及网络层数据;判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件;若所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件,则从所述结构体内获取传输层数据;计算所述传输层数据的头部剩余可利用的空间量,以得到剩余可利用空间量;计算所述传输层数据的头部可选字段中种类等于一和种类等于八所占用的数据量,以得到可选字段特定种类数据量;根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量;若需要清除所述可选字段特定种类数据量,则标记所述可选字段特定种类数据量;从所述结构体内获取网络层数据的头部;将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并清除所述传输层数据的头部可选字段中种类等于一和种类等于八的字段,将种类不等于一和八的字段向前移动至所述传输层数据的头部可选字段的开始位置;在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐;更新所述网络层数据的头部中长度字段,更新所述传输层数据的头部中指示头部长度的字段,以得到新的数据包;对新的数据包重新计算所述网络层数据的校验和以及所述传输层数据的校验和。
其中,所述结构体包括应用层数据、传输层数据、网络层数据以及网络数据包的出口网卡名称。
在一实施例中,处理器502在实现所述根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量步骤之后,还实现如下步骤:
若不需要清除所述可选字段特定种类数据量,则将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并执行所述在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐。
在一实施例中,处理器502在实现所述判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件步骤时,具体实现如下步骤:
判断所述协议类型是否是IP协议;若所述协议类型是IP协议,则判断所述出口网卡名称是否是WAN网卡名称;若所述出口网卡名称是WAN网卡名称,则判断所述网络层数据的头部是否是TCP协议;若所述网络层数据的头部是TCP协议,则确定所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件;若所述协议类型不是IP协议,则确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件;若所述出口网卡名称不是WAN网卡名称,则执行所述确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件;若所述网络层数据的头部不是TCP协议,则执行所述确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件。
在一实施例中,处理器502在实现所述根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量步骤时,具体实现如下步骤:
判断所述可选字段特定种类数据量是否大于所述剩余可利用空间量;若所述可选字段特定种类数据量不大于所述剩余可利用空间量,则判断所述剩余可利用空间量以及所述可选字段特定种类数据量的总和是否大于路由器源标识的数据量;若所述剩余可利用空间量以及所述可选字段特定种类数据量的总和大于路由器源标识的数据量,则需要清除所述可选字段特定种类数据量;若所述可选字段特定种类数据量大于所述剩余可利用空间量,则不需要清除所述可选字段特定种类数据量;若所述剩余可利用空间量以及所述可选字段特定种类数据量的总和不大于路由器源标识的数据量,则进入结束步骤。
在一实施例中,处理器502在实现所述判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件步骤之后,还实现如下步骤:
若所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件,则进入结束步骤。
在一实施例中,处理器502在实现所述对新的数据包重新计算所述网络层数据的校验和以及所述传输层数据的校验和步骤时,具体实现如下步骤:
将新的数据包的网络层数据以及传输层数据进行二进制反码求和,以得到结果,将所述结果存入校验和字段内。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:
注册自定义的钩子函数至规则链内;由应用程序对驱动程序设置路由器源标识以及WAN网卡名称;当linux内核网络协议栈发送网络数据包时,由钩子函数获取所述网络数据包的结构体的协议类型、出口网卡名称以及网络层数据;判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件;若所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件,则从所述结构体内获取传输层数据;计算所述传输层数据的头部剩余可利用的空间量,以得到剩余可利用空间量;计算所述传输层数据的头部可选字段中种类等于一和种类等于八所占用的数据量,以得到可选字段特定种类数据量;根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量;若需要清除所述可选字段特定种类数据量,则标记所述可选字段特定种类数据量;从所述结构体内获取网络层数据的头部;将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并清除所述传输层数据的头部可选字段中种类等于一和种类等于八的字段,将种类不等于一和八的字段向前移动至所述传输层数据的头部可选字段的开始位置;在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐;更新所述网络层数据的头部中长度字段,更新所述传输层数据的头部中指示头部长度的字段,以得到新的数据包;对新的数据包重新计算所述网络层数据的校验和以及所述传输层数据的校验和。
其中,所述结构体包括应用层数据、传输层数据、网络层数据以及网络数据包的出口网卡名称。
在一实施例中,所述处理器在执行所述计算机程序而实现所述根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量步骤之后,还实现如下步骤:
若不需要清除所述可选字段特定种类数据量,则将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并执行所述在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐。
在一实施例中,所述处理器在执行所述计算机程序而实现所述判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件步骤时,具体实现如下步骤:
判断所述协议类型是否是IP协议;若所述协议类型是IP协议,则判断所述出口网卡名称是否是WAN网卡名称;若所述出口网卡名称是WAN网卡名称,则判断所述网络层数据的头部是否是TCP协议;若所述网络层数据的头部是TCP协议,则确定所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件;若所述协议类型不是IP协议,则确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件;若所述出口网卡名称不是WAN网卡名称,则执行所述确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件;若所述网络层数据的头部不是TCP协议,则执行所述确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件。
在一实施例中,所述处理器在执行所述计算机程序而实现所述根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量步骤时,具体实现如下步骤:
判断所述可选字段特定种类数据量是否大于所述剩余可利用空间量;若所述可选字段特定种类数据量不大于所述剩余可利用空间量,则判断所述剩余可利用空间量以及所述可选字段特定种类数据量的总和是否大于路由器源标识的数据量;若所述剩余可利用空间量以及所述可选字段特定种类数据量的总和大于路由器源标识的数据量,则需要清除所述可选字段特定种类数据量;若所述可选字段特定种类数据量大于所述剩余可利用空间量,则不需要清除所述可选字段特定种类数据量;若所述剩余可利用空间量以及所述可选字段特定种类数据量的总和不大于路由器源标识的数据量,则进入结束步骤。
在一实施例中,所述处理器在执行所述计算机程序而实现所述判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件步骤之后,还实现如下步骤:
若所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件,则进入结束步骤。
在一实施例中,所述处理器在执行所述计算机程序而实现所述对新的数据包重新计算所述网络层数据的校验和以及所述传输层数据的校验和步骤时,具体实现如下步骤:
将新的数据包的网络层数据以及传输层数据进行二进制反码求和,以得到结果,将所述结果存入校验和字段内。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.路由器上行数据溯源方法,其特征在于,包括:
注册自定义的钩子函数至规则链内;
由应用程序对驱动程序设置路由器源标识以及WAN网卡名称;
当linux内核网络协议栈发送网络数据包时,由钩子函数获取所述网络数据包的结构体的协议类型、出口网卡名称以及网络层数据;
判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件;
若所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件,则从所述结构体内获取传输层数据;
计算所述传输层数据的头部剩余可利用的空间量,以得到剩余可利用空间量;
计算所述传输层数据的头部可选字段中种类等于一和种类等于八所占用的数据量,以得到可选字段特定种类数据量;
根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量;
若需要清除所述可选字段特定种类数据量,则标记所述可选字段特定种类数据量;
从所述结构体内获取网络层数据的头部;
将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并清除所述传输层数据的头部可选字段中种类等于一和种类等于八的字段,将种类不等于一和八的字段向前移动至所述传输层数据的头部可选字段的开始位置;
在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐;
更新所述网络层数据的头部中长度字段,更新所述传输层数据的头部中指示头部长度的字段,以得到新的数据包;
对新的数据包重新计算所述网络层数据的校验和以及所述传输层数据的校验和。
2.根据权利要求1所述的路由器上行数据溯源方法,其特征在于,所述根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量之后,还包括:
若不需要清除所述可选字段特定种类数据量,则将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并执行所述在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐。
3.根据权利要求1所述的路由器上行数据溯源方法,其特征在于,所述判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件,包括:
判断所述协议类型是否是IP协议;
若所述协议类型是IP协议,则判断所述出口网卡名称是否是WAN网卡名称;
若所述出口网卡名称是WAN网卡名称,则判断所述网络层数据的头部是否是TCP协议;
若所述网络层数据的头部是TCP协议,则确定所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件;
若所述协议类型不是IP协议,则确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件;
若所述出口网卡名称不是WAN网卡名称,则执行所述确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件;
若所述网络层数据的头部不是TCP协议,则执行所述确定所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件。
4.根据权利要求1所述的路由器上行数据溯源方法,其特征在于,所述根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量,包括:
判断所述可选字段特定种类数据量是否大于所述剩余可利用空间量;
若所述可选字段特定种类数据量不大于所述剩余可利用空间量,则判断所述剩余可利用空间量以及所述可选字段特定种类数据量的总和是否大于路由器源标识的数据量;
若所述剩余可利用空间量以及所述可选字段特定种类数据量的总和大于路由器源标识的数据量,则需要清除所述可选字段特定种类数据量;
若所述可选字段特定种类数据量大于所述剩余可利用空间量,则不需要清除所述可选字段特定种类数据量;
若所述剩余可利用空间量以及所述可选字段特定种类数据量的总和不大于路由器源标识的数据量,则进入结束步骤。
5.根据权利要求1所述的路由器上行数据溯源方法,其特征在于,所述判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件之后,还包括:
若所述协议类型、所述出口网卡名称以及所述网络层数据不是都满足设定条件,则进入结束步骤。
6.根据权利要求1所述的路由器上行数据溯源方法,其特征在于,所述结构体包括应用层数据、传输层数据、网络层数据以及网络数据包的出口网卡名称。
7.根据权利要求1所述的路由器上行数据溯源方法,其特征在于,所述对新的数据包重新计算所述网络层数据的校验和以及所述传输层数据的校验和,包括:
将新的数据包的网络层数据以及传输层数据进行二进制反码求和,以得到结果,将所述结果存入校验和字段内。
8.路由器上行数据溯源装置,其特征在于,包括:
注册单元,用于注册自定义的钩子函数至规则链内;
设置单元,用于由应用程序对驱动程序设置路由器源标识以及WAN网卡名称;
结构体获取单元,用于当linux内核网络协议栈发送网络数据包时,由钩子函数获取所述网络数据包的结构体的协议类型、出口网卡名称以及网络层数据;
第一判断单元,用于判断所述协议类型、所述出口网卡名称以及所述网络层数据是否都满足设定条件;
传输层数据获取单元,用于若所述协议类型、所述出口网卡名称以及所述网络层数据都满足设定条件,则从所述结构体内获取传输层数据;
第一计算单元,用于计算所述传输层数据的头部剩余可利用的空间量,以得到剩余可利用空间量;
第二计算单元,用于计算所述传输层数据的头部可选字段中种类等于一和种类等于八所占用的数据量,以得到可选字段特定种类数据量;
第二判断单元,用于根据所述剩余可利用空间量、所述可选字段特定种类数据量以及所述路由器源标识对应的数据量判断是否需要清除所述可选字段特定种类数据量;
标记单元,用于若需要清除所述可选字段特定种类数据量,则标记所述可选字段特定种类数据量;
网络层数据获取单元,用于从所述结构体内获取网络层数据的头部;
第一处理单元,用于将所述网络层数据以及所述传输层数据的头部向前移动至满足插入所述路由器源标识的数据量,并清除所述传输层数据的头部可选字段中种类等于一和种类等于八的字段,将种类不等于一和八的字段向前移动至所述传输层数据的头部可选字段的开始位置;
第二处理单元,用于在种类不等于一和八的字段的尾部位置插入种类等于254且携带路由器源标识的数据,且当所述传输层数据的头部不符合四字节对齐时,插入种类等于一的字段,以使得所述传输层数据的头部的四字节进行对齐;
更新单元,用于更新所述网络层数据的头部中长度字段,更新所述传输层数据的头部中指示头部长度的字段,以得到新的数据包;
校验和计算单元,用于对新的数据包重新计算所述网络层数据的校验和以及所述传输层数据的校验和。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如权利要求1至7中任一项所述的方法。
CN202111242792.XA 2021-10-25 2021-10-25 路由器上行数据溯源方法、装置、计算机设备及存储介质 Active CN113905364B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111242792.XA CN113905364B (zh) 2021-10-25 2021-10-25 路由器上行数据溯源方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111242792.XA CN113905364B (zh) 2021-10-25 2021-10-25 路由器上行数据溯源方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN113905364A true CN113905364A (zh) 2022-01-07
CN113905364B CN113905364B (zh) 2023-07-04

Family

ID=79026696

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111242792.XA Active CN113905364B (zh) 2021-10-25 2021-10-25 路由器上行数据溯源方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN113905364B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314319A (zh) * 2022-08-26 2022-11-08 绿盟科技集团股份有限公司 一种网络资产识别方法、装置、电子设备及存储介质

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020039516A (ko) * 2000-11-21 2002-05-27 김경환 데이터통신을 이용한 정보전송 또는 차단방법
KR20030007260A (ko) * 2002-10-29 2003-01-23 이영석 Mpls vpn에서 이동 서비스 제공 방안
CN1543142A (zh) * 2003-05-01 2004-11-03 ��ʽ����Ntt����Ħ 路由器和地址标识信息管理服务器
CN101175067A (zh) * 2006-11-02 2008-05-07 华为技术有限公司 一种网络安全实现系统及方法
WO2009074057A1 (fr) * 2007-11-30 2009-06-18 Huawei Technologies Co., Ltd. Procede de protection de nœud de tete, systeme et dispositif pour le trajet de commutation d'etiquettes point a multipoint
CN102624935A (zh) * 2011-01-26 2012-08-01 华为技术有限公司 一种转发报文的方法,装置和系统
CN103036875A (zh) * 2012-12-04 2013-04-10 杭州迪普科技有限公司 一种用户身份处理装置及识别装置
CN106027395A (zh) * 2016-04-29 2016-10-12 清华大学 基于路由器随机标识的路径恢复方法及装置
CN106233759A (zh) * 2014-04-22 2016-12-14 华为技术有限公司 互联网协议报文的转发方法、移动网关和无线网络控制器
CN108173982A (zh) * 2018-03-26 2018-06-15 深圳市风云实业有限公司 跨板报文的nat处理方法及装置
CN108377262A (zh) * 2017-01-30 2018-08-07 汤姆逊许可公司 管理网络设备处的服务链的方法、对应的网络设备
CN109756498A (zh) * 2019-01-04 2019-05-14 烽火通信科技股份有限公司 通信设备上tcp协议的nat alg转换方法及系统
CN110868409A (zh) * 2019-11-08 2020-03-06 中国科学院信息工程研究所 一种基于tcp/ip协议栈指纹的操作系统被动识别方法及系统
CN111277602A (zh) * 2020-01-23 2020-06-12 奇安信科技集团股份有限公司 网络数据包的识别处理方法、装置、电子设备及存储介质
CN112637071A (zh) * 2020-12-22 2021-04-09 山东兆物网络技术股份有限公司 基于数据包标记的溯源方法及数据包标记装置
CN112822198A (zh) * 2021-01-15 2021-05-18 中国电子科技集团公司第十五研究所 面向追踪溯源应用的多层协议网络信标植入检测方法
CN112995040A (zh) * 2021-04-29 2021-06-18 中国人民解放军国防科技大学 一种基于设备标识计算的报文路径溯源方法及装置

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020039516A (ko) * 2000-11-21 2002-05-27 김경환 데이터통신을 이용한 정보전송 또는 차단방법
KR20030007260A (ko) * 2002-10-29 2003-01-23 이영석 Mpls vpn에서 이동 서비스 제공 방안
CN1543142A (zh) * 2003-05-01 2004-11-03 ��ʽ����Ntt����Ħ 路由器和地址标识信息管理服务器
CN101175067A (zh) * 2006-11-02 2008-05-07 华为技术有限公司 一种网络安全实现系统及方法
WO2009074057A1 (fr) * 2007-11-30 2009-06-18 Huawei Technologies Co., Ltd. Procede de protection de nœud de tete, systeme et dispositif pour le trajet de commutation d'etiquettes point a multipoint
CN102624935A (zh) * 2011-01-26 2012-08-01 华为技术有限公司 一种转发报文的方法,装置和系统
CN103036875A (zh) * 2012-12-04 2013-04-10 杭州迪普科技有限公司 一种用户身份处理装置及识别装置
CN106233759A (zh) * 2014-04-22 2016-12-14 华为技术有限公司 互联网协议报文的转发方法、移动网关和无线网络控制器
CN106027395A (zh) * 2016-04-29 2016-10-12 清华大学 基于路由器随机标识的路径恢复方法及装置
CN108377262A (zh) * 2017-01-30 2018-08-07 汤姆逊许可公司 管理网络设备处的服务链的方法、对应的网络设备
CN108173982A (zh) * 2018-03-26 2018-06-15 深圳市风云实业有限公司 跨板报文的nat处理方法及装置
CN109756498A (zh) * 2019-01-04 2019-05-14 烽火通信科技股份有限公司 通信设备上tcp协议的nat alg转换方法及系统
CN110868409A (zh) * 2019-11-08 2020-03-06 中国科学院信息工程研究所 一种基于tcp/ip协议栈指纹的操作系统被动识别方法及系统
CN111277602A (zh) * 2020-01-23 2020-06-12 奇安信科技集团股份有限公司 网络数据包的识别处理方法、装置、电子设备及存储介质
CN112637071A (zh) * 2020-12-22 2021-04-09 山东兆物网络技术股份有限公司 基于数据包标记的溯源方法及数据包标记装置
CN112822198A (zh) * 2021-01-15 2021-05-18 中国电子科技集团公司第十五研究所 面向追踪溯源应用的多层协议网络信标植入检测方法
CN112995040A (zh) * 2021-04-29 2021-06-18 中国人民解放军国防科技大学 一种基于设备标识计算的报文路径溯源方法及装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ADRIAN RIESCO: "Implementing and analyzing in Maude the Enhanced Interior Gateway Routing Protocol", 《SCIENCEDIRECT》 *
SUPRATIM DEB: "Learning Based Uplink Interference Mangement in 4G LTE Cellular systems", 《IEEE》 *
尚振宏: "基于速率的TCP在无线广域网上改进", 《中国硕士学位论文全文数据库》 *
达青: "浅析IP溯源技术的发展应用", 《科技创新与应用》 *
黄振江: "串口转WiFi下的物联网终端远程控制实现方法研究", 《数字技术与应用》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314319A (zh) * 2022-08-26 2022-11-08 绿盟科技集团股份有限公司 一种网络资产识别方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113905364B (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
US7864806B2 (en) Method and system for transmission control packet (TCP) segmentation offload
JP2002538731A (ja) 高性能ネットワークインターフェースにおけるダイナミックな構文解析
CN110958213B (zh) 处理tcp报文的方法、toe组件以及网络设备
CN113905364A (zh) 路由器上行数据溯源方法、装置、计算机设备及存储介质
US8019826B2 (en) Reliable reception of messages written via RDMA using hashing
CN112104596B (zh) 一种聚合多种车联网通信协议的数据接入方法和系统
CN111078241B (zh) Ota升级方法和装置
CN110543324B (zh) 一种应用程序的插件增量更新方法及装置
CN106330776A (zh) 报文处理方法及装置
CN110460488B (zh) 业务流识别方法和装置、模型生成方法和装置
CN106878311B (zh) Http报文的重写方法及装置
CN112015575A (zh) 一种报文处理方法、装置及相关设备
JP2002538721A (ja) 高性能ネットワークインターフェースにおけるネットワークトラフィックを分類するための方法および装置
WO2019033891A1 (zh) 一种基于rdma的网络流量确定方法及装置
CN111786953A (zh) 一种安全防护方法、装置和安全管理设备
CN109951532B (zh) 一种基于dpdk的流量模型自动变换装置
CN107544928B (zh) 直接存储器访问控制装置和对此的运行方法
CN115460075A (zh) 基于云原生的多网络模式实现方法、装置、设备及介质
CN115048129A (zh) 从站设备的固件程序更新方法、装置、设备及存储介质
TWI353150B (en) System and method for a method for reducing latenc
CN113791808A (zh) 底层程序升级方法、装置、计算机设备及存储介质
CN112149696A (zh) 图嵌入模型的训练方法及装置
CN111090578A (zh) 工程开发联调方法、装置、计算机设备及存储介质
CN111865884A (zh) 一种报文处理方法、装置及设备
CN113949738B (zh) 一种广告推送方法、装置和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 510000 room 1301, No. 37, Jinlong street, Xiangjiang financial and business center, Nansha District, Guangzhou City, Guangdong Province (office only)

Patentee after: Guangzhou Tongze Kangwei Technology Co.,Ltd.

Patentee after: Communication and information center of emergency management department

Address before: 510000 room 1301, No. 37, Jinlong street, Xiangjiang financial and business center, Nansha District, Guangzhou City, Guangdong Province (office only)

Patentee before: Guangzhou Tongze Kangwei Intelligent Technology Co.,Ltd.

Patentee before: Communication and information center of emergency management department