CN108933756A - 一种数据包的处理方法、接入网设备及计算机可读存储介质 - Google Patents
一种数据包的处理方法、接入网设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108933756A CN108933756A CN201710362029.8A CN201710362029A CN108933756A CN 108933756 A CN108933756 A CN 108933756A CN 201710362029 A CN201710362029 A CN 201710362029A CN 108933756 A CN108933756 A CN 108933756A
- Authority
- CN
- China
- Prior art keywords
- information
- modification
- data packet
- preset
- enabling
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 14
- 238000012986 modification Methods 0.000 claims abstract description 418
- 230000004048 modification Effects 0.000 claims abstract description 418
- 238000000034 method Methods 0.000 claims abstract description 59
- 230000015654 memory Effects 0.000 claims description 36
- 238000012217 deletion Methods 0.000 claims description 25
- 230000037430 deletion Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 3
- 101150082208 DIABLO gene Proteins 0.000 claims 2
- 102100033189 Diablo IAP-binding mitochondrial protein Human genes 0.000 claims 2
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 claims 2
- HRULVFRXEOZUMJ-UHFFFAOYSA-K potassium;disodium;2-(4-chloro-2-methylphenoxy)propanoate;methyl-dioxido-oxo-$l^{5}-arsane Chemical compound [Na+].[Na+].[K+].C[As]([O-])([O-])=O.[O-]C(=O)C(C)OC1=CC=C(Cl)C=C1C HRULVFRXEOZUMJ-UHFFFAOYSA-K 0.000 claims 2
- 238000006243 chemical reaction Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000002715 modification method Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种数据包的处理方法,所述方法包括:获取数据包的描述符信息,以及所述描述符信息对应的预设使能标志位和预设使能修改信息;根据所述预设使能标志位查找所述数据包中待修改的第一数据信息,将所述第一数据信息替换为所述预设使能信息,获得使能数据包;获取与所述描述符信息对应的预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改。本发明还同时公开了一种接入网设备和计算机可读存储介质。
Description
技术领域
本发明涉及通信技术,尤其涉及一种数据包的处理方法、接入网设备及计算机可读存储介质。
背景技术
随着互联网技术的迅猛发展,用户对接入网的流量需求越来越大,如互联网协议电视(IPTV,Internet Protocol Television)、在线直播、高清视频、无线智能设备同时接入等,为了满足用户对高速率的传输需求,因此,上下行传输速率超1000兆比特/秒(Mbps)的设备开始逐步研发和生产。
对于接入网设备,若要完成数据包的交换和路由功能,则需要对该数据包进行相应的修改,如:媒体访问控制(MAC,Media Access Control)地址转换,虚拟局域网(VLAN,Virtual Local Area Network)增加、删除或修改,三层互联网协议(IP,InternetProtocol)地址和网络端口地址(NAPT,Network Address Port Translation)修改,基于以太网的点对点通讯协议(PPPOE,Point to Point Protocol over Ethernet)配置信息修改、互联网协议第四版本(IPv4,Internet Protocol Version 4)到互联网协议第六版本(IPv6,Internet Protocol Version 6)的轻型双栈(Ds-lite,Double stack-lite)配置信息修改等。
目前,常用的数据包处理方法为指令修改,其处理方法是:把指令和修改数据写入随机存取存储器(RAM,Random Access Memory)中,通过解析指令进行逐步修改,直到完成最后一条指令。通过指令修改的方法,由于在数据包修改过程中,需要使用大量的指令来实现数据包的修改,而过多的指令解析会影响设备的性能。
发明内容
有鉴于此,本发明实施例期望提供一种数据包的处理方法、接入网设备及计算机可读存储介质,实现数据包的快速修改。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种数据包的处理方法,所述方法包括:
获取数据包的描述符信息,以及所述描述符信息对应的预设使能标志位和预设使能修改信息;
根据所述预设使能标志位查找所述数据包中待修改的第一数据信息,将所述第一数据信息替换为所述预设使能信息,获得使能数据包;
获取与所述描述符信息对应的预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改。
上述方案中,所述预设使能修改信息包括以下至少之一:源媒体访问控制地址(SMAC,Source Media Access Control)、目的媒体访问控制地址(DMAC,DestinationMedia Access Control)、差分服务代码点(DSCP,Differentiated Services CodePoint)、源互联网协议地址(SIP,Source Internet Protocol)、目的互联网协议地址(DIP,Destination Internet Protocol)、源端口号(SPORT,Source PORT)、目的端口号(DPORT,Destination PORT)、所述数据包的生存时间(TTL,Time To Live)、校验和(CHECKSUM)。
上述方案中,所述获取与所述描述符信息对应的预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改,包括:
根据预设优先级从预设指令集合中获取与所述描述符信息对应的预设修改指令;
解析获取到的预设修改指令,获得所述预设修改指令携带的修改信息和所述修改信息对应的修改指示符;
根据所述修改指示符对应的修改方式和所述修改信息,修改所述使能数据包。
上述方案中,所述修改指示符包括以下类型至少之一:替换指示符、添加指示符和删除指示符。
上述方案中,所述根据所述预设修改指令对所述使能数据包进行修改之前,所述方法还包括:
根据所述描述符信息获取所述使能数据包中待替换或待删除的第二数据信息。
上述方案中,所述根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包,包括:
当所述修改指示符为替换指示符时,将所述使能数据包中的第三数据信息替换为与所述替换指示符对应的修改信息;
当所述修改指示符为添加指示符时,在所述使能数据包添加由与所述添加指示符对应的修改信息组成的包头;
当所述修改指示符为删除指示符时,根据与所述删除指示符对应的修改信息,删除所述使能数据包中的第三数据信息对应的信息。
上述方案中,所述修改信息包括以下至少之一:VLAN信息、PPPoE报头信息、IPv6报头信息、IPv4报头信息。
上述方案中,所述获取数据包的描述符信息之后,所述方法还包括:
获取接入网设备所连接的网络的类型信息;
所述将所述第一数据信息替换为所述预设使能信息,获得使能数据包,包括:
当所述类型信息满足第一预设规则时,将所述第一数据信息替换为所述预设使能信息,获得使能数据包。
所述根据所述预设修改指令对所述使能数据包进行修改,包括:
当所述类型信息满足第二预设规则时,根据所述预设修改指令对所述使能数据包进行修改。
上述方案中,所述描述符信息用于描述所述数据包的结构;
所述获取与所述描述符信息对应的预设使能修改信息,包括:
根据所述数据包的结构获取对应的预设使能修改信息。
本发明实施例还提供了一种接入网设备,所述设备包括:
数据包描述符模块,用于获取数据包的描述符信息,以及所述描述符信息对应的预设使能标志位和预设使能修改信息;
使能修改模块,用于根据所述预设使能标志位查找所述数据包中待修改的第一数据信息,将所述第一数据信息替换为所述预设使能信息,获得使能数据包;
指令修改模块,用于获取与所述描述符信息对应的所述预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改;
数据包存储模块,用于存储网络侧发送的数据包;
预设信息存储模块,用于存储所述预设使能修改信息和预设修改指令。
上述方案中,所述预设使能修改信息包括以下至少之一:SMAC、DMAC、DSCP、SIP、DIP、SPORT、DPORT、所述数据包的TTL,以及CHECKSUM。
上述方案中,所述指令修改模块,具体用于:
根据预设优先级从预设指令集合中获取与所述描述符信息对应的预设修改指令;
解析获取到的预设修改指令,获得所述预设修改指令携带的修改信息和所述修改信息对应的修改指示符;
根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包。
上述方案中,所述修改指示符包括以下类型至少之一:替换指示符、添加指示符和删除指示符。
上述方案中,所述指令修改模块,还用于在根据所述预设修改指令对所述使能数据包进行修改之前,根据所述描述符信息获取所述使能数据包中待替换或待删除的第二数据信息。
上述方案中,所述指令修改模块,具体用于:
当所述修改指示符为替换指示符时,将所述使能数据包中的第三数据信息替换为与所述替换指示符对应的修改信息;
当所述修改指示符为添加指示符时,在所述使能数据包添加由与所述添加指示符对应的修改信息组成的包头;
当所述修改指示符为删除指示符时,根据与所述删除指示符对应的修改信息删除使能数据包中的第三数据信息对应的信息。
上述方案中,所述修改信息包括以下至少之一:VLAN信息、PPPoE报头信息、IPv6报头信息、IPv4报头信息。
上述方案中,所述数据包描述符模块,还用于在获取数据包的描述符信息之后,获取所述接入网设备所连接的网络的类型信息;
所述使能修改模块,具体用于:
当所述类型信息满足第一预设规则时,将所述第一数据信息替换为所述预设使能信息,获得使能数据包。
所述指令修改模块,具体用于:
当所述类型信息满足第二预设规则时,根据所述预设修改指令对所述使能数据包进行修改。
上述方案中,所述描述符信息用于描述所述数据包的结构;
所述指令修改模块,具体用于:
根据所述数据包的结构获取对应的预设使能修改信息。
本发明实施例还提供了一种接入网设备,所述设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行本发明实施例所述的数据包的处理方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行本发明实施例所述的数据包的处理方法。
本发明实施例提供了一种数据包的处理方法、接入网设备及计算机可读存储介质,通过本发明实施例,可以读取以太网数据包中的描述符信息,并基于读取的描述符信息分别获取预设的使能修改信息和修改指令,然后,根据获取到的使能修改信息对该以太网数据包进行使能修改;此外,还根据获取到的修改指令对使能修改后的以太网数据包进行指令修改。本发明实施例方案结合了使能修改方法和使能修改方法,与只用指令修改的方法相比,具有修改速度快、控制简单等优点,避免了单纯指令修改带来的指令过多、修改复杂等缺点,提高了网络输出性能等;与只用使能修改的方法相比,具有更加灵活的特点,可以满足兼容未来新的修改需求。
附图说明
图1为本发明实施例提供的一种数据包的处理方法的实现流程示意图;
图2为本发明实施例提供的一种接入网设备的组成结构示意图;
图3为使能修改的流程示意图;
图4为指令修改的流程示意图;
图5为本发明实施例提供的一种数据包的处理方法的实现流程示意图;
图6为本发明实施例提供的一种接入网设备的组成结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明实施例提供的一种数据包的处理方法的实现流程示意图,如图1所示,所述方法可以包括以下步骤:
步骤101:获取数据包的描述符信息,以及所述描述符信息对应的预设使能标志位和预设使能修改信息。
本发明实施例中,数据包的处理方法应用于接入网设备,所述接入网设备可以是路由器或三层交换机,或其它具有路由功能的设备。这里,所述数据包可以是以太网数据包。值得注意的是,该数据包可以是IPv4类型或IPv6类型的以太网数据包;也可以是IPv4类型数据包在IPv6网络中传输的以太网数据包,或者也可以是IPv6类型数据包在IPv4网络中传输的以太网数据包。这里解释一下,IPv4类型数据包在IPv6网络中传输的以太网数据包指的是:在IPv4类型数据包的基础上添加一个IPv6的报头,以便于IPv4类型数据在IPv6网络中传输;同理,IPv6类型数据包在IPv4网络中传输的以太网数据包指的是:在IPv6类型数据包的基础上添加一个IPv4的报头,以便于IPv6类型数据在IPv4网络中传输。
这里,所述预设使能标志位用于查找所述数据包中待修改的数据信息,如表1所示,其中,表1为使能位名称、待替换的数据和相应存储地址说明。。所述预设使能修改信息用于替换数据包中待修改的数据参数。所述描述符信息用于描述所述数据包的结构和类型,包括但不限于:1)用于指明同步的前导码、标明下一个字节为目的MAC字段的帧开始符、指明帧的接受者的DMAC地址、指明帧的发送者的SMAC地址、标识帧的数据字段长度和指明帧中数据的协议类型的信息;2)用于指明IP协议的版本的数据类型(如IPv4或IPv6)、指明IP数据报首部长度、指明IP数据报总长度、标识IP数据报是否还有分片的标识(flag)、标识标识分组在分片后在原分组中的相对位置的片偏移、指明数据包生成时间、指明该数据报携带的数据为何种协议、计算该数据报的首部CHECKSUM、指明发送方的源IP地址、指明接收方的目的IP地址和区分服务的优先级的DSCP的信息;3)用于标识和区分源端设备的应用进程的SPORT、标识目的端设备的应用进程的DPORT和校验传输控制协议(TCP,TransmissionControl Protocol)报头部分和数据部分的正确性的信息等。
表1
本发明实施例中,在获得所示描述符信息后,根据所述描述符信息获取相应的预设使能修改信息;所述使能修改信息包括但不限于:预先设定的SMAC、DMAC、DSCP、SIP、DIP、SPORT、DPORT,以及所述数据包的TTL。
例如,根据用于指明帧的接受者的DMAC地址的信息获取对应的预先设定的DMAC;根据用于指明帧的接受者的DMAC地址的信息获取对应的预先设定的SMAC等等。
步骤102:根据所述预设使能标志位查找所述数据包中待修改的第一数据信息,将所述第一数据信息替换为所述预设使能信息,获得使能数据包。
这里,步骤102完成的是使能修改过程。所述第一数据信息包括:数据包中待修改的SMAC、DMAC、DSCP、SIP、DIP、SPORT、DPORT、TTL和CHECKSUM等。上述数据信息仅仅是举例,并非穷举,包括但不仅限于上述数据信息。
本发明实施例中,获取到所述描述符信息和所述预设使能信息后,根据预设使能标识位查找数据包中需要修改的数据信息,然后将查找到的所需修改的数据信息后,将其替换为预设使能信息,从而得到修改后的数据包,即使能数据包。指的注意的是,使能修改所述数据包前,需计算CHECKSUM的信息,使用计算出来的CHECKSUM替换原有CHECKSUM,得到所述使能数据包。在后续的指令修改过程中,也可能涉及CHECKSUM的重新计算。
例如,根据用于指明帧的接受者的DMAC地址的信息查找所述数据包中待修改的DMAC地址,并将所述待修改的MAC地址替换为预先设定的DMAC;根据用于指明帧的发送者的SMAC地址的信息查找所述数据包中待修改的SMAC地址,并根据所述待修改的MAC地址替换为预先设定的SMAC等等。此外,当对需要修改的数据进行修改后,对数据包进行CHECKSUM计算,所示CHECKSUM计算包括:IP_CHECKSUM、TCP_CHECKSUM、UDP_CHECKSUM。
或者,获取到所述描述符信息和所述预设使能信息后,根据描述符信息获取针对所述数据包中待修改的使能位名称、和/或所述数据包中待修改数据的指针,通过该使能位和/或指针查找数据包中需要修改的数据信息,然后将查找到的所需修改的数据信息后,将其替换为预设使能信息,从而得到修改后的数据包,即使能数据包。
例如,如表1所示,根据DMAC地址的使能位查找所述数据包中待修改的DMAC地址,并将所述待修改的MAC地址替换为预先设定的DMAC;根据SMAC地址的使能位查找所述数据包中待修改的SMAC地址,并根据所述待修改的MAC地址替换为预先设定的SMAC等等。此外,当对需要修改的数据进行修改后,对数据包进行CHECKSUM计算,所示CHECKSUM计算包括:IP_CHECKSUM、TCP_CHECKSUM、UDP_CHECKSUM。
本发明实施例中,所述获取所述数据包的描述符信息之后,所述方法还包括:获取接入网设备所连接的网络的类型信息;所述将所述第一数据信息替换为所述预设使能信息,获得使能数据包,包括:当所述类型信息满足第一预设规则时,将所述第一数据信息替换为所述预设使能信息,获得使能数据包,如图3所示。
这里,所述当前网络的类型信息包括:接入网设备的输入端和输出端的网络类型。所述网络类型包括:公网和私网,或者IPv4网络和IPv6网络。所述第一预设规则为:接入网设备的输入端和输出端的分别连接的网络为相同类型网络,如输入端为私网IP地址、输出端为公网IP地址时,则输入端和输出端不是同一种类型网络;若输入端和输出端同为公网IP地址时,则输入端和输出端为同一种类型网络。其中,私网IP地址包括以下三种:10.0.0.0至10.255.255.255,或172.16.0.0至172.31.255.255,或192.168.0.0至192.168.255.255。判断输入端和输出端的网络地址,可以为是否修改数据包中的信息做铺垫。值得注意的是,所述输入端和输出端是相对于用户终端而言的,连接用户终端的端口为输入端,连接互联网侧的端口为输出端。上述修改的内容仅仅是举例,并非穷举,包括但不仅限于与上述修改的内容。
例如,私网用户若要上公网,需要接入网设备将私网用户终端发送或接收的数据包中的IP地址和MAC地址和端口号进行相应转换。举例来说,若私网用户接收公网侧发送的数据包,则需要接入网设备将该数据包中的IP地址和MAC地址和端口号替换为私网用户终端的相应信息;若私网用户向公网侧发送数据包,则需要接入网设备将该数据包中的IP地址和MAC地址和端口号替换为接入网设备的相应信息,以实现私网用户能正常的上公共网络。具体地,首先获取接入网设备所连接的网络的类型信息,判断出接入网设备的输入端和输出端处于不同网段,如输入端地址为200.176.23.4,输出端地址为192.168.1.1时,说明用户终端为私网用户端,此时,若用户终端接收数据包,则需要对该数据包进行目的IP地址转换、目的IP地址的端口转换,以及DMAC地址的转换,转换完成后,将该数据包转发到用户终端;若用户终端发送数据包,则需要对该数据包进行源IP地址转换、源IP地址的端口转换,以及SMAC地址的转换,转换完成后,将该数据包转发到网络另外一侧。判断出接入网设备的输入端和输出端处于同一网段,如输入端地址为200.176.23.4,输出端地址为200.176.23.10时,说明用户终端为公网用户端,此时接入网设备不需要对SMAC、DMAC、SIP、DIP、SPORT和DPORT做修改。
步骤103:获取与所述描述符信息对应的预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改。
这里,步骤(3)完成的是指令修改过程。所述预设修改指令的指令结构如表2所示。
表2
本发明实施例中,所述根据所述预设修改指令对所述使能数据包进行修改,包括:当所述类型信息满足第二预设规则时,根据所述预设修改指令对所述使能数据包进行修改。
这里,所述第二预设规则为:接入网设备所连接的网络类型与所述数据包的数据类型不一致,即接入网设备所连接的网络为IPv4,所述数据包为IPv6类型数据包;或者接入网设备所连接的网络为IPv6,所述数据包为IPv4类型数据包。
例如,由于目前网络有IPv4的网络,也有IPv6的网络,数据包的类型有IPv4类型和IPv6类型。若所述接入网设备处于IPv4的网络中,接收到的数据包为IPv6的以太网数据包时,则需要根据预设修改指令,将所述数据包添加一个IPv4的包头信息,从而保证IPv6类型的数据包能够在IPv4的网络中进行传输;或者,若所述接入网设备处于IPv6的网络中,接收到的数据包为IPv4的以太网数据包时,则需要根据预设修改指令,将所述数据包添加一个IPv6的包头信息,从而保证IPv4类型的数据包能够在IPv6的网络中进行传输。
或者,所述数据包中的相应特征参数满足预设规则时,根据所述预设修改指令对所述使能数据包进行修改。例如,本发明实施例中的接入网设备为家庭、或学校、或企事业单位中用来连接私网和公网的设备,用户发送或接收的数据均通过该接入网设备进行处理转发。那么,假设用户A需要接收一个以太网数据包a,首先,接入网设备接收到以太网数据包a时,检查该包中的相应特征参数之后,获知该包为用户A的以太网数据包,那么,将该包中的目的MAC、目的IP和NAPT等参数进行修改。
本发明实施例中,所述获取与所述描述符信息对应的预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改,包括:根据预设优先级从预设指令集合中获取与所述描述符信息对应的预设修改指令;解析获取到的预设修改指令,获得所述预设修改指令携带的修改信息和所述修改信息对应的修改指示符;根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包。这里,所述修改指示符包括以下至少之一:替换指示符、添加指示符和删除指示符。
本发明实施例中,所述根据所述预设修改指令对所述使能数据包进行修改之前,所述方法还包括:根据所述描述符信息获取所述使能数据包中待替换或待删除的第二数据信息。
所述根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包,包括:
当所述修改指示符为替换指示符时,将所述使能数据包中的第三数据信息替换为与所述替换指示符对应的修改信息;
当所述修改指示符为添加指示符时,在所述使能数据包添加由与所述添加指示符对应的修改信息组成的包头;
当所述修改指示符为删除指示符时,根据与所述删除指示符对应的修改信息删除所述使能数据包中的第三数据信息对应的信息。
下面列举几个典型指令的数据处理过程:
Replace:用命令里的两字节数据替换原始的两字节数据;
添加(Add):直接将命令里的两字节数据以包头的形式添加至数据包;
跳过(Skip):根据命令里的数据来决定跳过的字节数,如Skip 3就是跳过6个字节不做任何修改;
删除(Delete):根据命令里的数据决定删除的字节数,将这些数据丢弃。
另外还有一些复合指令:如PPPoE、Ds-lite等,这样指令是按顺序完成一系列的添加操作,直接按顺序连续读取修改数据。
例如,如图4所示,指令修改的方法步骤如下所述:
步骤401:读取一条指令。
在读取指令之前,获取到使能修改后的以太网包,提取该以太网包的包头,并存入到8个258bit寄存器中,然后根据指令地址读取一条指令。
步骤402:解析指令,读取指令修改所需要的数据。
解析指令,读取指令修改所需要的针对以太网数据包包头的待修改数据。
步骤403:根据指令对以太网包头进行修改。
例如,删除包头,增加/删除/替换VLAN号,增加或删除PPPoE的包头,增加或删除Ds-lite配置信息(如:添加或删除IPv6报头的修改信息)、增加或删除等修改用于IPv4基础设施的IPv6快速部署6rd的修改信息(如:添加或删除IPv4报头的修改信息)。
步骤404:判断指令结束标记,如果是最后一条指令,结束修改;否则继续步骤401的操作。
这里,所述修改信息包括以下至少之一:VLAN的修改信息、PPPoE报头的修改信息、IPv6报头的修改信息、IPv4报头的修改信息。
为实现上述方法,本发明实施例一还提供了一种接入网设备,如图2所示,所述设备包括:数据包描述符模块201、使能修改模块202、指令修改模块203、数据包存储模块204和预设信息存储模块205;其中,
数据包描述符模块201,获取数据包的描述符信息,以及所述描述符信息对应的预设使能标志位和预设使能修改信息;
使能修改模块202,用于根据所述预设使能标志位查找所述数据包中待修改的第一数据信息,将所述第一数据信息替换为所述预设使能信息,获得使能数据包;
指令修改模块203,用于获取与所述描述符信息对应的所述预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改;
数据包存储模块204,用于存储网络侧发送的数据包;
预设信息存储模块205,用于存储所述预设使能修改信息和预设修改指令。
可选的,所述指令修改模块203,具体用于:
根据预设优先级从预设指令集合中获取与所述描述符信息对应的预设修改指令;
解析获取到的预设修改指令,获得所述预设修改指令携带的修改信息和所述修改信息对应的修改指示符;
根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包。
可选的,所述指令修改模块203,还用于在根据所述预设修改指令对所述使能数据包进行修改之前,根据所述描述符信息获取所述使能数据包中待替换或待删除的第二数据信息。
所述指令修改模块203,具体用于:
当所述修改指示符为替换指示符时,将所述使能数据包中的第三数据信息替换为与所述替换指示符对应的修改信息;
当所述修改指示符为添加指示符时,在所述使能数据包添加由与所述添加指示符对应的修改信息组成的包头;
当所述修改指示符为删除指示符时,根据与所述删除指示符对应的修改信息删除使能数据包中的第三数据信息对应的信息。
所述数据包描述符模块201,还用于在获取数据包的描述符信息之后,获取所述接入网设备所连接的网络的类型信息;
所述使能修改模块202,具体用于:
当所述类型信息满足第一预设规则时,将所述第一数据信息替换为所述预设使能信息,获得使能数据包。
所述指令修改模块203,具体用于:
当所述类型信息满足第二预设规则时,根据所述预设修改指令对所述使能数据包进行修改。
所述数据包描述符模块201,根据所述数据包的结构获取对应的预设使能修改信息。
由上述结构组成的接入网设备,可以执行以下方法和步骤:
(1)数据包描述符模块201获取数据包的描述符信息,以及所述描述符信息对应的预设使能标志位和预设使能修改信息。
本发明实施例中,数据包的处理方法应用于接入网设备,所述接入网设备可以是路由器或三层交换机,或其它具有路由功能的设备。这里,所述数据包可以是以太网数据包。值得注意的是,该数据包可以是IPv4类型或IPv6类型的以太网数据包;也可以是IPv4类型数据包在IPv6网络中传输的以太网数据包,或者也可以是IPv6类型数据包在IPv4网络中传输的以太网数据包。这里解释一下,IPv4类型数据包在IPv6网络中传输的以太网数据包指的是:在IPv4类型数据包的基础上添加一个IPv6的报头,以便于IPv4类型数据在IPv6网络中传输;同理,IPv6类型数据包在IPv4网络中传输的以太网数据包指的是:在IPv6类型数据包的基础上添加一个IPv4的报头,以便于IPv6类型数据在IPv4网络中传输。
具体地,数据包描述符模块201获取存储于数据包存储模块204数据包的描述符信息,以及所述描述符信息对应的且存储于使能寄存器的预设使能标志位和存储于预设信息存储模块205的预设使能修改信息。
这里,所述预设使能标志位用于查找所述数据包中待修改的数据信息,如表1所示。所述预设使能修改信息用于替换数据包中待修改的数据参数。所述描述符信息用于描述所述数据包的结构和类型,包括但不限于:1)用于指明同步的前导码、标明下一个字节为目的MAC字段的帧开始符、指明帧的接受者的DMAC地址、指明帧的发送者的SMAC地址、标识帧的数据字段长度和指明帧中数据的协议类型的信息;2)用于指明IP协议的版本的数据类型(如IPv4或IPv6)、指明IP数据报首部长度、指明IP数据报总长度、标识IP数据报是否还有分片的标识(flag)、标识标识分组在分片后在原分组中的相对位置的片偏移、指明数据包生成时间、指明该数据报携带的数据为何种协议、计算该数据报的首部CHECKSUM、指明发送方的源IP地址、指明接收方的目的IP地址和区分服务的优先级的DSCP的信息;3)用于标识和区分源端设备的应用进程的SPORT、标识目的端设备的应用进程的DPORT和校验TCP报头部分和数据部分的正确性的信息等。
本发明实施例中,在获得所示描述符信息后,数据包描述符模块201根据所述描述符信息获取相应的预设使能修改信息;所述使能修改信息包括但不限于:预先设定的SMAC、DMAC、DSCP、SIP、DIP、SPORT、DPORT,以及所述数据包的TTL。
例如,数据包描述符模块201根据用于指明帧的接受者的DMAC地址的信息获取对应的预先设定的DMAC;数据包描述符模块201根据用于指明帧的接受者的DMAC地址的信息获取对应的预先设定的SMAC等等。
(2)使能修改模块202根据所述预设使能标志位查找所述数据包中待修改的第一数据信息,将所述第一数据信息替换为所述预设使能信息,获得使能数据包。
这里,步骤(2)完成的是使能修改过程。所述第一数据信息包括:数据包中待修改的SMAC、DMAC、DSCP、SIP、DIP、SPORT、DPORT、TTL和CHECKSUM等。上述数据信息仅仅是举例,并非穷举,包括但不仅限于上述数据信息。
本发明实施例中,获取到所述描述符信息和所述预设使能信息后,使能修改模块202根据预设使能标识位查找数据包中需要修改的数据信息,然后将查找到的所需修改的数据信息后,将其替换为预设使能信息,从而得到修改后的数据包,即使能数据包。指的注意的是,使能修改所述数据包前,需计算CHECKSUM的信息,使用计算出来的CHECKSUM替换原有CHECKSUM,得到所述使能数据包。在后续的指令修改过程中,也可能涉及CHECKSUM的重新计算。
例如,根据用于指明帧的接受者的DMAC地址的信息查找所述数据包中待修改的DMAC地址,并将所述待修改的MAC地址替换为预先设定的DMAC;根据用于指明帧的发送者的SMAC地址的信息查找所述数据包中待修改的SMAC地址,并根据所述待修改的MAC地址替换为预先设定的SMAC等等。此外,当对需要修改的数据进行修改后,对数据包进行CHECKSUM计算,所示CHECKSUM计算包括:IP_CHECKSUM、TCP_CHECKSUM、UDP_CHECKSUM。
或者,获取到所述描述符信息和所述预设使能信息后,根据描述符信息获取针对所述数据包中待修改的使能位名称、和/或所述数据包中待修改数据的指针,通过该使能位和/或指针查找数据包中需要修改的数据信息,然后将查找到的所需修改的数据信息后,将其替换为预设使能信息,从而得到修改后的数据包,即使能数据包。
例如,如表1所示,根据DMAC地址的使能位查找所述数据包中待修改的DMAC地址,并将所述待修改的MAC地址替换为预先设定的DMAC;根据SMAC地址的使能位查找所述数据包中待修改的SMAC地址,并根据所述待修改的MAC地址替换为预先设定的SMAC等等。此外,当对需要修改的数据进行修改后,对数据包进行CHECKSUM计算,所示CHECKSUM计算包括:IP_CHECKSUM、TCP_CHECKSUM、UDP_CHECKSUM。
本发明实施例中,所述获取所述数据包的描述符信息之后,所述方法还包括:获取接入网设备所连接的网络的类型信息;所述将所述第一数据信息替换为所述预设使能信息,获得使能数据包,包括:当所述类型信息满足第一预设规则时,使能修改模块202将所述第一数据信息替换为所述预设使能信息,获得使能数据包,如图3所示。
这里,所述当前网络的类型信息包括:接入网设备的输入端和输出端的网络类型。所述网络类型包括:公网和私网,或者IPv4网络和IPv6网络。所述第一预设规则为:接入网设备的输入端和输出端的分别连接的网络为相同类型网络,如输入端为私网IP地址、输出端为公网IP地址时,则输入端和输出端不是同一种类型网络;若输入端和输出端同为公网IP地址时,则输入端和输出端为同一种类型网络。其中,私网IP地址包括以下三种:10.0.0.0至10.255.255.255,或172.16.0.0至172.31.255.255,或192.168.0.0至192.168.255.255。判断输入端和输出端的网络地址,可以为是否修改数据包中的信息做铺垫。值得注意的是,所述输入端和输出端是相对于用户终端而言的,连接用户终端的端口为输入端,连接互联网侧的端口为输出端。上述修改的内容仅仅是举例,并非穷举,包括但不仅限于与上述修改的内容。
例如,私网用户若要上公网,需要接入网设备将私网用户终端发送或接收的数据包中的IP地址和MAC地址和端口号进行相应转换。举例来说,若私网用户接收公网侧发送的数据包,则需要接入网设备将该数据包中的IP地址和MAC地址和端口号替换为私网用户终端的相应信息;若私网用户向公网侧发送数据包,则需要接入网设备将该数据包中的IP地址和MAC地址和端口号替换为接入网设备的相应信息,以实现私网用户能正常的上公共网络。具体地,首先获取接入网设备所连接的网络的类型信息,判断出接入网设备的输入端和输出端处于不同网段,如输入端地址为200.176.23.4,输出端地址为192.168.1.1时,说明用户终端为私网用户端,此时,若用户终端接收数据包,则需要对该数据包进行目的IP地址转换、目的IP地址的端口转换,以及DMAC地址的转换,转换完成后,将该数据包转发到用户终端;若用户终端发送数据包,则需要对该数据包进行源IP地址转换、源IP地址的端口转换,以及SMAC地址的转换,转换完成后,将该数据包转发到网络另外一侧。判断出接入网设备的输入端和输出端处于同一网段,如输入端地址为200.176.23.4,输出端地址为200.176.23.10时,说明用户终端为公网用户端,此时接入网设备不需要对SMAC、DMAC、SIP、DIP、SPORT和DPORT做修改。
(3)指令修改模块203获取与所述描述符信息对应的预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改。
这里,步骤(3)完成的是指令修改过程。所述预设修改指令的指令结构如表2所示。
本发明实施例中,所述根据所述预设修改指令对所述使能数据包进行修改,包括:当所述类型信息满足第二预设规则时,指令修改模块203根据所述预设修改指令对所述使能数据包进行修改。
这里,所述第二预设规则为:接入网设备所连接的网络类型与所述数据包的数据类型不一致,即接入网设备所连接的网络为IPv4,所述数据包为IPv6类型数据包;或者接入网设备所连接的网络为IPv6,所述数据包为IPv4类型数据包。
例如,由于目前网络有IPv4的网络,也有IPv6的网络,数据包的类型有IPv4类型和IPv6类型。若所述接入网设备处于IPv4的网络中,接收到的数据包为IPv6的以太网数据包时,指令修改模块203则需要根据预设修改指令,将所述数据包添加一个IPv4的包头信息,从而保证IPv6类型的数据包能够在IPv4的网络中进行传输;或者,若所述接入网设备处于IPv6的网络中,接收到的数据包为IPv4的以太网数据包时,则需要根据预设修改指令,将所述数据包添加一个IPv6的包头信息,从而保证IPv4类型的数据包能够在IPv6的网络中进行传输。
或者,所述数据包中的相应特征参数满足预设规则时,指令修改模块203根据所述预设修改指令对所述使能数据包进行修改。例如,本发明实施例中的接入网设备为家庭、或学校、或企事业单位中用来连接私网和公网的设备,用户发送或接收的数据均通过该接入网设备进行处理转发。那么,假设用户A需要接收一个以太网数据包a,首先,接入网设备接收到以太网数据包a时,检查该包中的相应特征参数之后,获知该包为用户A的以太网数据包,那么,将该包中的目的MAC、目的IP和NAPT等参数进行修改。
本发明实施例中,所述获取与所述描述符信息对应的预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改,包括:指令修改模块203根据预设优先级从预设指令集合中获取与所述描述符信息对应的预设修改指令;指令修改模块203解析获取到的预设修改指令,获得所述预设修改指令携带的修改信息和所述修改信息对应的修改指示符;指令修改模块203根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包。这里,所述修改指示符包括以下至少之一:替换指示符、添加指示符和删除指示符。
本发明实施例中,所述根据所述预设修改指令对所述使能数据包进行修改之前,所述方法还包括:指令修改模块203根据所述描述符信息获取所述使能数据包中待替换或待删除的第二数据信息。
所述根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包,包括:
当所述修改指示符为替换指示符时,将所述使能数据包中的第三数据信息替换为与所述替换指示符对应的修改信息;
当所述修改指示符为添加指示符时,在所述使能数据包添加由与所述添加指示符对应的修改信息组成的包头;
当所述修改指示符为删除指示符时,根据与所述删除指示符对应的修改信息删除所述使能数据包中的第三数据信息对应的信息。
下面列举几个典型指令的数据处理过程:
Replace:用命令里的两字节数据替换原始的两字节数据;
Add:直接将命令里的两字节数据以包头的形式添加至数据包;
Skip:根据命令里的数据来决定跳过的字节数,如Skip 3就是跳过6个字节不做任何修改;
Delete:根据命令里的数据决定删除的字节数,将这些数据丢弃。
另外还有一些复合指令:如PPPoE、Ds-lite等,这样指令是按顺序完成一系列的添加操作,直接按顺序连续读取修改数据。
例如,如图4所示,指令修改的方法步骤如下所述:
步骤401:读取指令。
在读取指令之前,获取到使能修改后的以太网包,提取该以太网包的包头,并存入到8个258bit寄存器中,然后根据指令地址读取一条指令。
步骤402:解析指令,读取指令修改所需要的数据。
解析指令,读取指令修改所需要的针对以太网数据包包头的待修改数据。
步骤403:根据指令对以太网包头进行修改。
例如,删除包头,增加/删除/替换VLAN号,增加或删除PPPoE的包头,增加或删除Ds-lite配置信息(如:添加或删除IPv6报头的修改信息)、增加或删除等修改用于IPv4基础设施的IPv6快速部署6rd的修改信息(如:添加或删除IPv4报头的修改信息)。
步骤404:判断指令结束标记,如果是最后一条指令,结束修改;否则继续步骤401的操作。
这里,所述修改信息包括以下至少之一:VLAN的修改信息、PPPoE报头的修改信息、IPv6报头的修改信息、IPv4报头的修改信息。
本发明实施例中,所述获取与所述描述符信息对应的预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改,包括:指令修改模块203根据预设优先级从预设指令集合中获取与所述描述符信息对应的预设修改指令;解析获取到的预设修改指令,获得所述预设修改指令携带的修改信息和所述修改信息对应的修改指示符;根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包。这里,所述修改指示符包括以下至少之一:替换指示符、添加指示符和删除指示符。
例如,如图4所示,指令修改的方法步骤如下所述:
步骤401:获取完成使能修改后的以太网包头,并存入到8个258bit寄存器中。
步骤402:根据指令地址读取一条指令。
步骤403:解析指令,读取指令修改需要的数据。
步骤404:根据指令对以太网包头进行修改。
例如,删除包头,增加/删除/替换VLAN号,增加或删除PPPoE的包头,增加或删除Ds-lite配置信息(如:添加或删除IPv6报头的修改信息)、增加或删除等修改用于IPv4基础设施的IPv6快速部署6rd的修改信息(如:添加或删除IPv4报头的修改信息)。
步骤405:判断指令结束标记,如果是最后一条指令,结束修改;否则继续步骤402的操作。
本发明实施例中,所述根据所述预设修改指令对所述使能数据包进行修改之前,所述方法还包括:根据所述描述符信息获取所述使能数据包中待替换或待删除的第二数据信息;
所述根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包,包括:
当所述修改指示符为替换指示符时,指令修改模块203将所述第二数据信息替换为与所述替换指示符对应的修改信息;
当所述修改指示符为添加指示符时,指令修改模块203在所述使能数据包添加由与所述添加指示符对应的修改信息组成的包头;
当所述修改指示符为删除指示符时,指令修改模块203根据与所述删除指示符对应的修改信息删除所述第二数据信息中的数据。
这里,所述修改信息包括以下至少之一:用于修改VLAN的修改信息、用于添加PPPoE报头的修改信息、用于添加或删除IPv6报头的修改信息、用于添加或删除IPv4报头的修改信息。
需要说明的是:上述实施例提供的接入网设备在进行数据包的修改时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的接入网设备与数据包的处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例方案结合了使能修改方法和使能修改方法,通过该方案,可以读取以太网数据包中的描述符信息,并基于读取的描述符信息分别获取预设的使能修改信息和修改指令,然后,根据获取到的使能修改信息对该以太网数据包进行使能修改;此外,还根据获取到的修改指令对使能修改后的以太网数据包进行指令修改。本发明实施例方案结合了使能修改方法和使能修改方法,与只用指令修改的方法相比,具有修改速度快、控制简单等优点,避免了单纯指令修改带来的指令过多、修改复杂等缺点,提高了网络输出性能等;与只用使能修改的方法相比,具有更加灵活的特点,可以满足兼容未来新的修改需求。
本发明实施例提供了另一种数据包的处理方法,如图5所示,所述方法可以包括以下步骤:
步骤501:接收网络侧发送的以太网数据包。
步骤502:读取以太网数据包。
使能修改模块读取以太网数据包的详细步骤为:从数据包存储模块的先进先出阵列(记为DATA_FIFO)一次读取一个数据包,然后,将读取到的数据包送往使能修改模块;当读到数据包截止符标识(记为packet_eop)时,就停止从DATA_FIFO中读数据。数据包描述模块为了获取该以太网数据包的描述符信息,也会从数据包存储模块中读取以太网数据包。
步骤503:获取以太网数据包的描述符信息。
数据包描述符模块获取到以太网数据包后,根据该以太网数据包读取相应的数据包描述符,并将该数据包描述符存储于描述符模块的先入先出阵列(记为DESC_FIFO),当DATA_FIFO非空时,对应的描述符已经写入DESC_FIFO。
步骤504:数据流flow信息、MAC信息、VLAN信息和QoS信息等。
步骤505:获取描述符信息对应的修改信息。
这些信息至少包括以下之一:flow信息、MAC信息、VLAN信息和QoS信息等。
步骤506:根据描述符信息和获取到的修改信息修改以太网数据包。
将描述符中的二层偏移量(l2_offset)、三层偏移量(l3_offset)、包长(pkt_length,packet length)、包标识(untag_flag)、TCP/UDP等信息送给使能修改模块,供修改模块确定包的结构。同时,以数据流标识flow_id为地址去索引修改使能RAM,修改VLANRAM,指令RAM等,把这些信息送往使能修改模块,供该模块确定修改操作。
步骤507:得到使能修改后的以太网数据包。
固定修改模块(记为pm_modify_fix)根据使能寄存器里的值及描述符IPv4_flag,IPv6_flag,TCP_flag、UDP_flag,l2_offset,l3_offset信息,一次完成对该模块寄存的256字节包头数据的MAC修改、DSCP/TC修改、SIP/DIP修改、SPORT/DPORT修改、IP_CHECKUM、TCP_CHECKSUM校验信息更新和TTL修改,并将修改后的数据发往指令修改模块。
步骤508:将使能修改后的以太网数据包传输至指令修改模块,以进行指令修改。
步骤509:存储指令,包括:修改命令(记为cmd)和包修改所需的数据(记为cmd_dat)。
数据包描述符模块模块(记为pm_desc_ctrl)根据描述符信息,从预设信息存储模块中的指令存储单元和数据存储单元中读取的指令和修改数据,将读取的指令和修改数据传输给指令修改模块,指令修改模块对以太网包进行VLAN修改、PPPOE增加删除,Ds-lite增加删除等,边修改边发送最终修改后的数据,直到读取的指令包含结束标记,结束指令修改,剩余数据直接透传。指令格式及相应描述如表2所示。
步骤510:描述符信息对应的指令。
步骤511:根据指令修改使能修改后的以太网数据包。
根据指令地址(记为cmd_addr)读取一条指令,解析指令,读取指令修改需要的数据。进行相应包头跳转、删除、VLAN增加/删除/替换、PPPOE增加删除,Ds-lite增加删除、v6rd增加或删除等修改,如图4所示。
这里,PPPOE增加删除指的是:在IPv4类数据包添加IPv6包头,以使IPv4类数据能在IPv6网络传输;或者,当完成传输后,将IPv4类数据包的IPv6包头删除。v6rd增加或删除指的是:在IPv6类数据包添加IPv4包头,以使IPv6类数据能在IPv4网络传输;或者,当完成传输后,将IPv6类数据包的IPv4包头删除。
本发明实施例还提供了另一种接入网设备,如图6所示,该接入网设备600包括:处理器601和用于存储能够在处理器上运行的计算机程序的存储器602。
接入网设备600可以是路由器、三层交换机,或其它具有路由功能的设备等。图6所示的接入网设备600包括:至少一个处理器601和存储器602。接入网设备600中的各个组件通过总线系统603耦合在一起。可理解,总线系统603用于实现这些组件之间的连接通信。总线系统603除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统603。
可以理解,存储器602可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器602旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器602用于存储各种类型的数据以支持接入网设备600的操作。这些数据的示例包括:用于在接入网设备600上操作的任何计算机程序,如存储数据包、预设使能修改信息和预设修改指令。实现本发明实施例方法的程序存储在存储器602。
上述本发明实施例揭示的方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器601可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成以下方法的步骤:
获取数据包的描述符信息,以及所述描述符信息对应的预设使能标志位和预设使能修改信息;
根据所述预设使能标志位查找所述数据包中待修改的第一数据信息,将所述第一数据信息替换为所述预设使能信息,获得使能数据包;
获取与所述描述符信息对应的预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改。
可选的,处理器601根据预设优先级从预设指令集合中获取与所述描述符信息对应的预设修改指令;
解析获取到的预设修改指令,获得所述预设修改指令携带的修改信息和所述修改信息对应的修改指示符;
根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包。
可选的,处理器601根据所述描述符信息获取所述使能数据包中待替换或待删除的第二数据信息。
可选的,处理器601当所述修改指示符为替换指示符时,将所述使能数据包中的第三数据信息替换为与所述替换指示符对应的修改信息;
当所述修改指示符为添加指示符时,在所述使能数据包添加由与所述添加指示符对应的修改信息组成的包头;
当所述修改指示符为删除指示符时,根据与所述删除指示符对应的修改信息删除所述使能数据包中的第三数据信息对应的信息。
可选的,处理器601获取接入网设备所连接的网络的类型信息;
当所述类型信息满足第一预设规则时,将所述第一数据信息替换为所述预设使能信息,获得使能数据包。
所述根据所述预设修改指令对所述使能数据包进行修改,包括:
当所述类型信息满足第二预设规则时,根据所述预设修改指令对所述使能数据包进行修改。
可选的,当所述类型信息满足第二预设规则时,处理器601根据所述预设修改指令对所述使能数据包进行修改。
可选的,处理器601根据所述数据包的结构获取对应的预设使能修改信息。
本发明实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器602,上述计算机程序可由接入网设备600的处理器601执行,以完成前述方法所述步骤。计算机可读存储介质可以是铁电存储器(FRAM)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read Only Memory)、可编程可擦除只读存储器(EPROM,Erasable Programmable Read Only Memory)、电可擦可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、闪速存储器(FlashMemory)、磁表面存储器、或光盘等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器运行时,执行:
获取数据包的描述符信息,以及所述描述符信息对应的预设使能标志位和预设使能修改信息;
根据所述预设使能标志位查找所述数据包中待修改的第一数据信息,将所述第一数据信息替换为所述预设使能信息,获得使能数据包;
获取与所述描述符信息对应的预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改。
该计算机程序被处理器运行时,还执行:根据预设优先级从预设指令集合中获取与所述描述符信息对应的预设修改指令;
解析获取到的预设修改指令,获得所述预设修改指令携带的修改信息和所述修改信息对应的修改指示符;
根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包。
该计算机程序被处理器运行时,还执行:在根据所述预设修改指令对所述使能数据包进行修改之前,根据所述描述符信息获取所述使能数据包中待替换或待删除的第二数据信息。
该计算机程序被处理器运行时,还执行:当所述修改指示符为替换指示符时,将所述使能数据包中的第三数据信息替换为与所述替换指示符对应的修改信息;
当所述修改指示符为添加指示符时,在所述使能数据包添加由与所述添加指示符对应的修改信息组成的包头;
当所述修改指示符为删除指示符时,根据与所述删除指示符对应的修改信息删除所述使能数据包中的第三数据信息对应的信息。
该计算机程序被处理器运行时,还执行:获取接入网设备所连接的网络的类型信息;
所述将所述第一数据信息替换为所述预设使能信息,获得使能数据包,包括:
当所述类型信息满足第一预设规则时,将所述第一数据信息替换为所述预设使能信息,获得使能数据包。
所述根据所述预设修改指令对所述使能数据包进行修改,包括:
当所述类型信息满足第二预设规则时,根据所述预设修改指令对所述使能数据包进行修改。
该计算机程序被处理器运行时,还执行:根据所述数据包的结构获取对应的预设使能修改信息
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (20)
1.一种数据包的处理方法,其特征在于,所述方法包括:
获取数据包的描述符信息,以及所述描述符信息对应的预设使能标志位和预设使能修改信息;
根据所述预设使能标志位查找所述数据包中待修改的第一数据信息,将所述第一数据信息替换为所述预设使能信息,获得使能数据包;
获取与所述描述符信息对应的预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改。
2.根据权利要求1所述的方法,其特征在于,所述预设使能修改信息包括以下至少之一:源媒体访问控制地址SMAC、目的媒体访问控制地址DMAC、差分服务代码点DSCP、源互联网协议地址SIP、目的互联网协议地址DIP、源端口号SPORT、目的端口号DPORT、所述数据包的生存时间TTL、校验和CHECKSUM。
3.根据权利要求1所述的方法,其特征在于,所述获取与所述描述符信息对应的预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改,包括:
根据预设优先级从预设指令集合中获取与所述描述符信息对应的预设修改指令;
解析获取到的预设修改指令,获得所述预设修改指令携带的修改信息和所述修改信息对应的修改指示符;
根据所述修改指示符对应的修改方式和所述修改信息,修改所述使能数据包。
4.根据权利要求3所述的方法,其特征在于,所述修改指示符包括以下类型至少之一:替换指示符、添加指示符和删除指示符。
5.根据权利要求4所述的方法,其特征在于,所述根据所述预设修改指令对所述使能数据包进行修改之前,所述方法还包括:
根据所述描述符信息获取所述使能数据包中待替换或待删除的第二数据信息。
6.根据权利要求4所述的方法,其特征在于,所述根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包,包括:
当所述修改指示符为替换指示符时,将所述使能数据包中的第三数据信息替换为与所述替换指示符对应的修改信息;
当所述修改指示符为添加指示符时,在所述使能数据包添加由与所述添加指示符对应的修改信息组成的包头;
当所述修改指示符为删除指示符时,根据与所述删除指示符对应的修改信息,删除所述使能数据包中的第三数据信息对应的信息。
7.根据权利要求3所述的方法,其特征在于,所述修改信息包括以下至少之一:虚拟局域网VLAN信息、以太网的点对点通讯协议PPPoE报头信息、互联网协议第六版本IPv6报头信息、互联网协议第四版本IPv4报头信息。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述获取数据包的描述符信息之后,所述方法还包括:
获取接入网设备所连接的网络的类型信息;
所述将所述第一数据信息替换为所述预设使能信息,获得使能数据包,包括:
当所述类型信息满足第一预设规则时,将所述第一数据信息替换为所述预设使能信息,获得使能数据包。
所述根据所述预设修改指令对所述使能数据包进行修改,包括:
当所述类型信息满足第二预设规则时,根据所述预设修改指令对所述使能数据包进行修改。
9.根据权利要求1所述的方法,其特征在于,所述描述符信息用于描述所述数据包的结构;
所述获取与所述描述符信息对应的预设使能修改信息,包括:
根据所述数据包的结构获取对应的预设使能修改信息。
10.一种接入网设备,其特征在于,所述设备包括:
数据包描述符模块,用于获取数据包的描述符信息,以及所述描述符信息对应的预设使能标志位和预设使能修改信息;
使能修改模块,用于根据所述预设使能标志位查找所述数据包中待修改的第一数据信息,将所述第一数据信息替换为所述预设使能信息,获得使能数据包;
指令修改模块,用于获取与所述描述符信息对应的所述预设修改指令,并根据所述预设修改指令对所述使能数据包进行修改;
数据包存储模块,用于存储网络侧发送的数据包;
预设信息存储模块,用于存储所述预设使能修改信息和预设修改指令。
11.根据权利要求10所述的设备,其特征在于,所述预设使能修改信息包括以下至少之一:SMAC、DMAC、DSCP、SIP、DIP、SPORT、DPORT、所述数据包的TTL,以及CHECKSUM。
12.根据权利要求10所述的设备,其特征在于,所述指令修改模块,具体用于:
根据预设优先级从预设指令集合中获取与所述描述符信息对应的预设修改指令;
解析获取到的预设修改指令,获得所述预设修改指令携带的修改信息和所述修改信息对应的修改指示符;
根据所述修改指示符对应的修改方式和所述修改信息修改所述使能数据包。
13.根据权利要求12所述的设备,其特征在于,所述修改指示符包括以下类型至少之一:替换指示符、添加指示符和删除指示符。
14.根据权利要求13所述的设备,其特征在于,
所述指令修改模块,还用于在根据所述预设修改指令对所述使能数据包进行修改之前,根据所述描述符信息获取所述使能数据包中待替换或待删除的第二数据信息。
15.根据权利要求13所述的设备,其特征在于,所述指令修改模块,具体用于:
当所述修改指示符为替换指示符时,将所述使能数据包中的第三数据信息替换为与所述替换指示符对应的修改信息;
当所述修改指示符为添加指示符时,在所述使能数据包添加由与所述添加指示符对应的修改信息组成的包头;
当所述修改指示符为删除指示符时,根据与所述删除指示符对应的修改信息删除使能数据包中的第三数据信息对应的信息。
16.根据权利要求12所述的设备,其特征在于,所述修改信息包括以下至少之一:VLAN信息、PPPoE报头信息、IPv6报头信息、IPv4报头信息。
17.根据权利要求10至16任一项所述的设备,其特征在于,
所述数据包描述符模块,还用于在获取数据包的描述符信息之后,获取所述接入网设备所连接的网络的类型信息;
所述使能修改模块,具体用于:
当所述类型信息满足第一预设规则时,将所述第一数据信息替换为所述预设使能信息,获得使能数据包。
所述指令修改模块,具体用于:
当所述类型信息满足第二预设规则时,根据所述预设修改指令对所述使能数据包进行修改。
18.根据权利要求10所述的设备,其特征在于,所述描述符信息用于描述所述数据包的结构;
所述指令修改模块,具体用于:
根据所述数据包的结构获取对应的预设使能修改信息。
19.一种接入网设备,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行权利要求1至9任一项所述的数据包的处理方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至9任一项所述的数据包的处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710362029.8A CN108933756B (zh) | 2017-05-22 | 2017-05-22 | 一种数据包的处理方法、接入网设备及计算机可读存储介质 |
PCT/CN2017/103768 WO2018214359A1 (zh) | 2017-05-22 | 2017-09-27 | 一种数据包的处理方法、接入网设备及非暂态可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710362029.8A CN108933756B (zh) | 2017-05-22 | 2017-05-22 | 一种数据包的处理方法、接入网设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108933756A true CN108933756A (zh) | 2018-12-04 |
CN108933756B CN108933756B (zh) | 2020-06-30 |
Family
ID=64396139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710362029.8A Active CN108933756B (zh) | 2017-05-22 | 2017-05-22 | 一种数据包的处理方法、接入网设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108933756B (zh) |
WO (1) | WO2018214359A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110850132A (zh) * | 2019-12-19 | 2020-02-28 | 协成科技股份有限公司 | 一种基于无线通信的电力计量装置 |
CN111382117A (zh) * | 2018-12-29 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 发送装置、神经网络处理器芯片、组合装置以及电子设备 |
CN111382110A (zh) * | 2018-12-29 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 接收装置、神经网络处理器芯片、组合装置以及电子设备 |
CN113765728A (zh) * | 2020-06-04 | 2021-12-07 | 深信服科技股份有限公司 | 网络探测方法、装置、设备及存储介质 |
CN114553559A (zh) * | 2022-02-25 | 2022-05-27 | 北京华云安信息技术有限公司 | 一种路由器中协议数据的修改方法、装置及可读存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782140A (zh) * | 2020-06-18 | 2020-10-16 | 杭州安恒信息技术股份有限公司 | 网络数据包存储方法、装置、计算机设备和存储介质 |
CN114650445B (zh) * | 2020-12-17 | 2023-08-01 | 深圳Tcl新技术有限公司 | 一种tlv数据包的过滤方法、存储介质及终端设备 |
CN113239001A (zh) * | 2021-05-21 | 2021-08-10 | 珠海金山网络游戏科技有限公司 | 一种数据存储方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425955A (zh) * | 2008-12-05 | 2009-05-06 | 中兴通讯股份有限公司 | 一种由交换机添加报文外层标签的方法 |
CN102100051A (zh) * | 2008-05-23 | 2011-06-15 | 高通股份有限公司 | 用于在移动广播网络上携带广播服务的系统和方法 |
CN103095545A (zh) * | 2013-01-04 | 2013-05-08 | 杭州华三通信技术有限公司 | 一种基于桥协议数据单元隧道的报文转发方法和交换设备 |
CN103685032A (zh) * | 2013-12-09 | 2014-03-26 | 福建星网锐捷网络有限公司 | 报文转发方法及网络地址转换服务器 |
CN103780481A (zh) * | 2012-10-18 | 2014-05-07 | 中兴通讯股份有限公司 | 一种数据通信网络中报文修改与转发的方法及装置 |
CN104660511A (zh) * | 2015-01-16 | 2015-05-27 | 杭州华三通信技术有限公司 | 一种sdn网络中多播报文的传输方法和设备 |
US20150172252A1 (en) * | 2013-12-18 | 2015-06-18 | Cisco Technology, Inc. | Visual representation of complex network address translation rules |
CN105791128A (zh) * | 2016-01-28 | 2016-07-20 | 东南大学 | 一种ip报文接收处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9282164B2 (en) * | 2013-03-15 | 2016-03-08 | Cisco Technology, Inc. | Application hints for network action |
-
2017
- 2017-05-22 CN CN201710362029.8A patent/CN108933756B/zh active Active
- 2017-09-27 WO PCT/CN2017/103768 patent/WO2018214359A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102100051A (zh) * | 2008-05-23 | 2011-06-15 | 高通股份有限公司 | 用于在移动广播网络上携带广播服务的系统和方法 |
CN101425955A (zh) * | 2008-12-05 | 2009-05-06 | 中兴通讯股份有限公司 | 一种由交换机添加报文外层标签的方法 |
CN103780481A (zh) * | 2012-10-18 | 2014-05-07 | 中兴通讯股份有限公司 | 一种数据通信网络中报文修改与转发的方法及装置 |
CN103095545A (zh) * | 2013-01-04 | 2013-05-08 | 杭州华三通信技术有限公司 | 一种基于桥协议数据单元隧道的报文转发方法和交换设备 |
CN103685032A (zh) * | 2013-12-09 | 2014-03-26 | 福建星网锐捷网络有限公司 | 报文转发方法及网络地址转换服务器 |
US20150172252A1 (en) * | 2013-12-18 | 2015-06-18 | Cisco Technology, Inc. | Visual representation of complex network address translation rules |
CN104660511A (zh) * | 2015-01-16 | 2015-05-27 | 杭州华三通信技术有限公司 | 一种sdn网络中多播报文的传输方法和设备 |
CN105791128A (zh) * | 2016-01-28 | 2016-07-20 | 东南大学 | 一种ip报文接收处理方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382117A (zh) * | 2018-12-29 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 发送装置、神经网络处理器芯片、组合装置以及电子设备 |
CN111382110A (zh) * | 2018-12-29 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 接收装置、神经网络处理器芯片、组合装置以及电子设备 |
CN110850132A (zh) * | 2019-12-19 | 2020-02-28 | 协成科技股份有限公司 | 一种基于无线通信的电力计量装置 |
CN113765728A (zh) * | 2020-06-04 | 2021-12-07 | 深信服科技股份有限公司 | 网络探测方法、装置、设备及存储介质 |
CN114553559A (zh) * | 2022-02-25 | 2022-05-27 | 北京华云安信息技术有限公司 | 一种路由器中协议数据的修改方法、装置及可读存储介质 |
CN114553559B (zh) * | 2022-02-25 | 2023-05-23 | 北京华云安信息技术有限公司 | 一种路由器中协议数据的修改方法、装置及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2018214359A1 (zh) | 2018-11-29 |
CN108933756B (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108933756B (zh) | 一种数据包的处理方法、接入网设备及计算机可读存储介质 | |
WO2022078509A1 (zh) | IPv6报文的扩展头封装方法及装置 | |
US10237130B2 (en) | Method for processing VxLAN data units | |
US20080181216A1 (en) | Optimized mobile IPv6 encapsulation for wireless networks | |
US7830870B2 (en) | Router and method for transmitting packets | |
CN107580079B (zh) | 一种报文传输方法和装置 | |
US8140709B2 (en) | Two stage internet protocol header compression | |
WO2022022229A1 (zh) | 一种处理报文的方法及装置 | |
US20090135833A1 (en) | Ingress node and egress node with improved packet transfer rate on multi-protocol label switching (MPLS) network, and method of improving packet transfer rate in MPLS network system | |
CN111510513B (zh) | 一种map-e链路加速方法、装置、存储介质及网络设备 | |
CN107770072A (zh) | 一种发送和接收报文的方法和设备 | |
CN106713144A (zh) | 一种报文出口信息的读写方法及转发引擎 | |
JP2006025121A (ja) | フレーム転送方法及びその装置 | |
WO2020142880A1 (zh) | 一种数据传输方法及装置 | |
US9172775B2 (en) | Network communication system, device, and method for reducing a network addressing header | |
US9143448B1 (en) | Methods for reassembling fragmented data units | |
WO2023116355A1 (zh) | 通信方法、装置、相关设备及存储介质 | |
CN108848202B (zh) | 电子装置、数据传输方法及相关产品 | |
CN104348821B (zh) | 管理IPv4/IPv6业务的方法、设备和系统 | |
TWI281804B (en) | Packet forwarding method and system | |
CN112055094B (zh) | 一种arp查找与arpmiss处理的实现方法及系统 | |
CN107547687B (zh) | 一种报文传输方法和装置 | |
WO2023125563A1 (zh) | 路由信息的编辑方法、装置、存储介质及电子装置 | |
WO2024083219A1 (zh) | 报文处理方法、装置、设备及存储介质 | |
KR100908843B1 (ko) | 라우팅 시스템에서의 포워딩 테이블 구성 방법 |
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 |