CN112311692A - 报文处理方法及装置、端设备 - Google Patents
报文处理方法及装置、端设备 Download PDFInfo
- Publication number
- CN112311692A CN112311692A CN201910704773.0A CN201910704773A CN112311692A CN 112311692 A CN112311692 A CN 112311692A CN 201910704773 A CN201910704773 A CN 201910704773A CN 112311692 A CN112311692 A CN 112311692A
- Authority
- CN
- China
- Prior art keywords
- message
- packet
- fragment
- fragmented
- type
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种报文处理方法及装置、端设备,属于计算机领域。方法包括:接收多个第一分片报文,其中多个第一分片报文均携带有第一类报文标识,第一类报文标识包括报文ID,且多个第一分片报文中的至少两个第一分片报文携带的报文ID相同;在报文标识集合中查询多个第一分片报文携带的第一类报文标识;其中至少一个分片报文中任一分片报文所携带的第一类报文标识均具有对应的处理操作序列,任一分片报文所携带的第一类报文标识对应处理操作序列包括:OVS对任一分片报文执行过的部分或全部处理操作;当查询到该第一类报文标识时,对第一分片报文依次执行第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作。
Description
技术领域
本申请涉及计算机领域,特别涉及一种报文处理方法及装置、端设备。
背景技术
端设备在通过传输链路向另一端设备发送报文时,若该报文的负载长度超出该传输链路的最大传输单元(maximum transmission unit,MTU),则发送报文的端设备需要将该报文进行分片为多个长度小于MTU的分片报文,并在该传输链路上传输这些分片报文。
目前的端设备包括:客户机、开放虚拟交换机(open vswitch,OVS)和网卡。该网卡中存储分片报文携带的报文标识,以及报文标识对应的处理操作序列。其中,该分片报文携带的报文标识包括传输层信息。当该端设备进行数据转发时,网卡接收分片报文后,在查询该分片报文携带的报文标识。若查询到该报文标识,则该网卡对该分片报文执行其报文标识对应的处理操作序列中的处理操作;若未查询到该报文标识,则该网卡将该分片报文发送至OVS,以使该OVS对该分片报文进行处理。当该端设备接收分片报文时,网卡将接收的分片报文直接发送至客户机,由该客户机对接收到的分片报文进行重组,以得到完整的报文。
但是,这样会造成该端设备的资源浪费,降低端设备的报文处理能力。例如,由于报文中仅首个分片报文携带有该报文标识,因此,网卡需要将大量的分片报文发送至OVS处理,造成OVS的资源浪费。又例如,由于需要客户机对接收到的分片报文进行重组,因此,造成了客户机资源的浪费。
发明内容
本申请提供一种报文处理方法,可以在一定程度上解决相关技术中端设备资源浪费的问题,所述技术方案如下:
第一方面,提供了一种报文处理方法,应用于端设备中的网卡,所述方法包括:
接收多个第一分片报文,其中,所述多个第一分片报文均携带有所述第一类报文标识,所述第一类报文标识包括报文ID,且所述多个第一分片报文中的至少两个第一分片报文携带的报文ID相同;在报文标识集合中查询所述第一分片报文携带的第一类报文标识;其中,当所述报文标识集合为非空集时,所述报文标识集合包括:所述端设备中OVS处理过的至少一个分片报文携带的第一类报文标识,且所述至少一个分片报文中任一分片报文所携带的第一类报文标识均具有对应的处理操作序列,所述任一分片报文所携带的第一类报文标识对应的处理操作序列包括:所述OVS对所述任一分片报文执行过的部分或全部处理操作;当查询到所述第一分片报文携带的第一类报文标识时,对所述第一分片报文依次执行所述第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作。
本申请实施例中,在考虑到同一报文的多个分片报文在转发面上的实际处理操作均相同的情况下,通过使得报文标识集合中至少一个分片报文中任一分片报文所携带的第一类报文标识均具有对应的处理操作序列。从而使得网卡可以在该报文标识集合汇总查询到第一报文分片对应的第一类报文标识时,可以对该第一报文分片依次执行该第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作。且由于任一报文中的每个分片报文均携带有所述第一类报文标识,因此,网卡可以对任一报文汇总的每个分片报文执行该分片报文携带的第一类报文标识对应的处理操作序列中的处理操作,无需将大量的分片报文上传至OVS处理,提高了数据转发效率。
可选地,所述第一类报文标识还包括:目的互联网协议地址IP和源IP。
在本申请实施例中,通过存储在网卡中的映射表和流表,来反映第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列。则所述在报文标识集合中查询所述第一分片报文携带的第一类报文标识,包括:在映射表中查询所述第一分片报文携带的第一类报文标识,所述映射表用于记录:所述在报文标识集合中的第一类报文标识与流表的流表项的对应关系,所述流表用于记录:所述流表的流表项与所述任一分片报文所携带的第一类报文标识对应的处理操作序列的对应关系。
需要说明的是,上述流表还可以用于记录流表的流表项、处理操作序列以及第二类报文标识的对应关系。本申请实施例中,任一报文中的首个分片报文携带有第二类报文标识,且任一报文中的非首个分片报文未携带有第二类报文标识。其中,该第二类报文标识可以包括:报文的子网标识符和五元组信息(源IP地址、目的IP地址、协议类型、源端口和目的端口)
由于相关技术中,归一流表记录的报文标识和其处理操作序列与本申请实施例中流表的第二类报文标识和处理操作序列相同,因此,本申请实施例中可以复用相关技术中的第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列,更有效地提高了该对应关系的利用率。
示例地,在通过存储在网卡中的映射表和流表,来反映第一分片报文携带的第一类报文标识的情况下,在对所述第一分片报文依次执行所述第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作之前,所述方法还包括:根据所述映射表确定所述第一分片报文携带的第一类报文标识对应的第一流表项;在所述流表中查询所述第一流表项;当在所述流表中查询到所述第一流表项时,根据所述流表确定所述第一流表项对应的处理操作序列;将所述第一流表项对应的处理操作序列,作为所述第一分片报文携带的第一类报文标识对应的处理操作序列。
可选地,所述方法还包括:当未查询到所述第一分片报文携带的第一类报文标识时,将所述第一分片报文发送至所述端设备中的OVS,以便于所述OVS对所述第一分片报文执行一个或多个处理操作,并在所述第一分片报文为所述第一分片报文所属的报文中的首个分片报文时,向所述网卡发送所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列,分片报文携带的报文ID为所述分片报文所属报文的ID;接收所述OVS发送的所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列;在所述报文标识集合中增加所述第一分片报文携带的第一类报文标识。
其中,未查询到第一分片报文携带的第一类报文标识的情况可能有多种。例如,当上述报文标识集合为空集时,该网卡查询不到第一分片报文携带的第一类报文标识。或者,在上述报文标识集合为非空集的情况下,该报文标识集合不包括该第一类报文标识。
OVS在接收到该第一分片报文时,可以判断该第一分片报文是否为首个分片报文。示例地,可以根据该第一分片报文中报头包含的信息确定该第一分片报文是否为首个分片报文。当判断第一分片报文为其所属的报文中的首个分片报文时,OVS对该第一分片报文执行一个或多个处理操作时,该OVS可以跟踪记录该一个或多个处理操作,然后根据该一个或多个处理操作对应的第一分片报文,生成第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列。
这样,当采用映射表和流表来反映第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列,且该流表记录为流表的流表项、处理操作序列以及第二类报文标识的对应关系时,由于该流表与相关技术中的相关技术中的归一流表相同,因此,网卡可以充分利用流表直接对较多分片报文进行快速处理,提高流表的利用效率。
进一步地,本申请实施例中,由于网卡仅需进行映射表至流表之间的一次跳转,即可获取与该第一分片报文所属报文的多个分片报文所需执行的处理操作,相较于相关技术中,可能需要进行多个项目表的跳转,简化了处理操作的查询流程。且由于流表中的处理操作序列可以包括相关技术中确定的一个或多个处理操作中的部分处理操作,因此,也简化了对该第一分片报文的处理操作。
第二方面,提供了一种报文处理方法,应用于端设备中的机OVS,所述方法包括:
接收所述端设备中的网卡发送的第一分片报文;对所述第一分片报文执行一个或多个处理操作;在所述第一分片报文为所述第一分片报文所属的报文中的首个分片报文时,生成所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列,任一报文中的每个分片报文均携带有所述第一类报文标识,所述第一分片报文携带的第一类报文标识对应的处理操作序列包括:所述一个或多个处理操作中的部分或全部处理操作;携带有所述第一类报文标识的多个第一分片报文中,至少两个第一分片报文携带的报文ID相同,所述第一类报文标识包括报文ID,分片报文携带的报文ID为所述分片报文所属报文的ID;向所述网卡发送所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列。
OVS在接收到该第一分片报文时,可以判断该第一分片报文是否为首个分片报文。示例地,可以根据该第一分片报文中报头包含的信息确定该第一分片报文是否为首个分片报文。当判断第一分片报文为其所属的报文中的首个分片报文时,OVS对该第一分片报文执行一个或多个处理操作时,该OVS可以跟踪记录该一个或多个处理操作,然后根据该一个或多个处理操作对应的第一分片报文,生成第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列。
第三方面,提供了一种报文处理方法,用于端设备,所述端设备中包括虚拟主机和客户机,所述方法包括:
所述虚拟主机确定所述端设备中的网卡接收到的多个分片报文的顺序;所述虚拟主机生成指示信息,所述指示信息用于指示:所述多个分片报文的顺序;所述客户机获取所述指示信息;所述客户机按照所述指示信息对所述多个分片报文进行聚合,以得到初始报文。
由于通过网卡将接收到分片报文进行存储,并利用虚拟主机将存储的分片报文在存储器中的存储地址进行排列。客户机通过排列后的存储地址获取其内存储的分片报文即可以得到完整的报文,因此,无需客户机进行分片报文的重组。相对于相关技术中,客户机需要对接收到的分片报文进行解析后,重组成一个完整的报文,节约了客户机的处理资源,使得客户机可以最大程度提供资源处理业务。
可选地,所述端设备中还包括:存储器,所述多个分片报文存储在所述端设备的存储器中,所述虚拟主机确定所述端设备中的网卡接收到的多个分片报文的顺序,包括:根据所述存储器中存储的所述多个分片报文,确定所述多个分片报文的顺序。所述方法还包括:在生成所述指示信息之后,所述虚拟主机将所述指示信息存储在所述存储器中,所述指示信息包括:所述多个分片报文的存储地址的描述符,且所述多个分片报文的存储地址的描述符按照所述多个分片报文的顺序排布。
其中,虚拟主机将该指示信息存储在存储器的第三存储区中,客户机虚拟主机和客户机存储均可以访问该第三存储区,该第三存储区可以为描述符表所指向的存储区。
所述根据所述虚拟主机存储器中存储的所述多个分片报文,确定所述多个分片报文的顺序,包括:
所述虚拟主机根据所述存储器中存储的报头集合,确定所述多个分片报文的顺序,所述报头集合包括:属于所述初始报文的所有非首个分片报文的报头,分片报文携带的报文ID为所述分片报文所属报文的ID。
其中,虚拟主机可以根据存储器中存储的多个分片报文,确定多个分片报文的顺序。示例地,虚拟主机可以根据存储器中存储的报头集合,确定多个分片报文的顺序,报头集合包括:属于初始报文的所有非首个分片报文的报头。示例地,分片报文的报头中具有分片偏移信息,该分片偏移信息包括该分片报文偏移其所属的初始报文的开始处的位置。虚拟主机可以根据第二分片报文的分片偏移信息确定第二分片报文在其所属的报文中的位置。该第二分片报文为网卡接收到的多个分片报文中的任一分片报文。需要说明的是,分片报文携带的报文ID为所述分片报文所属报文的ID。
需要说明的是,属于所述初始报文的首个分片报文的报头和负载存储在所述存储器中的第一存储区,属于所述初始报文的非首个分片报文的报头存储在第二存储区,所述非首个分片报文的负载存储在所述存储器的所述第一存储区。
上述所述虚拟主机生成指示信息,包括:所述虚拟主机对所述报头集合哈希,以得到第一哈希值;所述虚拟主机在哈希表中查询所述第一哈希值对应的第一地址队列链,其中,所述哈希表用于记录:哈希值和地址队列链的对应关系,所述地址队列链包括多个第三类报文标识对应的地址队列,且不同第三类报文标识对应的地址队列不同,任一报文中的每个分片报文均携带有所述第三类报文标识;所述虚拟主机基于所述报头集合中每个报头携带的第三类报文标识,确定所述第一地址队列链中所述每个报头携带的第三类报文标识对应的第一地址队列;所述虚拟主机根据所述多个分片报文的顺序,确定所述多个分片报文中每个分片报文的目标位次;所述虚拟主机将所述每个分片报文在所述存储器中的存储地址写入所述第一地址队列中的第一地址位置,其中,所述第一地址队列具有依次排布的多个地址位置,所述第一地址位置为所述多个地址位置中所述目标位次的地址位置;所述虚拟主机获取属于所述初始报文的首个分片报文的存储地址;所述虚拟主机将所述首个分片报文的存储地址写入所述多个地址位置中的首个地址位置;所述虚拟主机根据所述多个地址位置中的存储地址,生成所述指示信息。
其中,虚拟主机生成指示信息前,需要满足重组条件。该重组条件包括多个地址位置中存储有属于初始报文的分片报文的存储地址。示例地,虚拟主机可以根据属于初始报文的报头判断该多个地址位置中是否存储有属于初始报文的的分片报文的存储地址。
由于虚拟主机可以通过存储地址的描述符,以描述分片报文的存储地址。则所述多个分片报文和所述指示信息均存储在所述端设备的存储器中,所述客户机获取所述指示信息,包括:所述客户机从所述存储器中获取所述指示信息,所述指示信息包括:所述多个分片报文的存储地址的描述符,且所述多个分片报文的存储地址的描述符按照所述多个分片报文的顺序排布。
所述客户机按照所述指示信息对所述多个分片报文进行聚合,包括:所述客户机依次获取所述指示信息所指示的每个存储地址中存储的分片报文;所述客户机将获取到的分片报文按照分片报文的获取顺序依次排布。
其中,在虚拟主机将指示信息存储在存储器后,可以先客户机发送收包信息,该收包信息中可以包括聚合标识,以使得该客户机在接收到该收包信息后,确定对后续获取的多个分片报文进行聚合操作,以得到完整的初始报文。
第四方面,提供一种报文处理方法,应用于端设备,所述端设备包括网卡和OVS,所述方法包括:
所述网卡接收多个第一分片报文,其中,所述多个第一分片报文均携带有所述第一类报文标识,所述第一类报文标识包括报文ID,且所述多个第一分片报文中的至少两个第一分片报文携带的报文ID相同;所述网卡在报文标识集合中查询所述第一分片报文携带的第一类报文标识;其中,当所述报文标识集合为非空集时,所述报文标识集合包括:OVS处理过的至少一个分片报文携带的第一类报文标识,且所述至少一个分片报文中任一分片报文所携带的第一类报文标识均具有对应的处理操作序列,所述任一分片报文所携带的第一类报文标识对应的处理操作序列包括:所述OVS对所述任一分片报文执行过的部分或全部处理操作;当查询到所述第一分片报文携带的第一类报文标识时,所述网卡对所述第一分片报文依次执行所述第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作。
可选地,所述第一类报文标识还包括:目的互联网协议地址IP和源IP。
在本申请实施例中,上述所述网卡在报文标识集合中查询所述第一分片报文携带的第一类报文标识,包括:所述网卡在映射表中查询所述第一分片报文携带的第一类报文标识;所述映射表用于记录:所述在报文标识集合中的第一类报文标识与流表的流表项的对应关系,所述流表用于记录:所述流表的流表项与所述任一分片报文所携带的第一类报文标识对应的处理操作序列的对应关系。
可选地,所述网卡在对所述第一分片报文依次执行所述第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作之前,所述方法还包括:
所述网卡根据所述映射表确定所述第一分片报文携带的第一类报文标识对应的第一流表项;所述网卡在所述流表中查询所述第一流表项;当在所述流表中查询到所述第一流表项时,所述网卡根据所述流表确定所述第一流表项对应的处理操作序列;所述网卡将所述第一流表项对应的处理操作序列,作为所述第一分片报文携带的第一类报文标识对应的处理操作序列。
进一步可选地,所述方法还包括:
当未查询到所述第一分片报文携带的第一类报文标识时,所述网卡将所述第一分片报文发送至所述端设备中的OVS;所述OVS接收所述端设备中的网卡发送的第一分片报文;所述OVS对所述第一分片报文执行一个或多个处理操作;所述OVS在所述第一分片报文为所述第一分片报文所属的报文中的首个分片报文时,生成所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列,任一报文中的每个分片报文均携带有所述第一类报文标识,所述第一分片报文携带的第一类报文标识对应的处理操作序列包括:所述一个或多个处理操作中的部分或全部处理操作;所述OVS向所述网卡发送所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列。所述网卡接收所述OVS发送的所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列;所述网卡在所述报文标识集合中增加所述第一分片报文携带的第一类报文标识;其中,分片报文携带的报文ID为所述分片报文所属报文的ID。
第五方面,提供了一种报文处理装置,应用于端设备中的网卡,所述装置包括:
第一接收模块,用于接收多个第一分片报文,其中,所述多个第一分片报文均携带有所述第一类报文标识,所述第一类报文标识包括报文ID,且所述多个第一分片报文中的至少两个第一分片报文携带的报文ID相同;
第一查询模块,用于在报文标识集合中查询所述第一分片报文携带的第一类报文标识;其中,当所述报文标识集合为非空集时,所述报文标识集合包括:所述端设备中开放虚拟交换机OVS处理过的至少一个分片报文携带的第一类报文标识,且所述至少一个分片报文中任一分片报文所携带的第一类报文标识均具有对应的处理操作序列,所述任一分片报文所携带的第一类报文标识对应的处理操作序列包括:所述OVS对所述任一分片报文执行过的部分或全部处理操作;
执行模块,用于当查询到所述第一分片报文携带的第一类报文标识时,对所述第一分片报文依次执行所述第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作。
可选地,所述第一类报文标识还包括:目的互联网协议地址IP和源IP。
可选地,所述第一查询模块,用于:在映射表中查询所述第一分片报文携带的第一类报文标识;所述映射表用于记录:所述在报文标识集合中的第一类报文标识与流表的流表项的对应关系,所述流表用于记录:所述流表的流表项与所述任一分片报文所携带的第一类报文标识对应的处理操作序列的对应关系;
可选地,所述装置还包括:
第一确定模块,用于在对所述第一分片报文依次执行所述第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作之前,根据所述映射表确定所述第一分片报文携带的第一类报文标识对应的第一流表项;
第二查询模块,用于在所述流表中查询所述第一流表项;
第二确定模块,用于当在所述流表中查询到所述第一流表项时,根据所述流表确定所述第一流表项对应的处理操作序列;
第三确定模块,用于将所述第一流表项对应的处理操作序列,作为所述第一分片报文携带的第一类报文标识对应的处理操作序列。
可选地,所述装置还包括:
发送模块,用于当未查询到所述第一分片报文携带的第一类报文标识时,将所述第一分片报文发送至所述端设备中的OVS,以便于所述OVS对所述第一分片报文执行一个或多个处理操作,并在所述第一分片报文为所述第一分片报文所属的报文中的首个分片报文时,向所述网卡发送所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列,分片报文携带的报文ID为所述分片报文所属报文的ID;
第二接收模块,用于接收所述OVS发送的所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列;
更新模块,用于在所述报文标识集合中增加所述第一分片报文携带的第一类报文标识。
第六方面,提供了一种报文处理装置,应用于端设备中的开放虚拟交换机OVS,所述装置包括:
接收模块,用于接收所述端设备中的网卡发送的第一分片报文;
执行模块,用于对所述第一分片报文执行一个或多个处理操作;
生成模块,用于在所述第一分片报文为所述第一分片报文所属的报文中的首个分片报文时,生成所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列,任一报文中的每个分片报文均携带有所述第一类报文标识,所述第一分片报文携带的第一类报文标识对应的处理操作序列包括:所述一个或多个处理操作中的部分或全部处理操作,分片报文携带的报文ID为所述分片报文所属报文的ID;
发送模块,用于向所述网卡发送所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列。
第七方面,提供了一种报文处理装置,所述装置包括:客户机和虚拟主机;
所述虚拟主机用于确定所述端设备中的网卡接收到的多个分片报文的顺序;
所述虚拟主机用于生成指示信息,所述指示信息用于指示:所述多个分片报文的顺序;
所述客户机用于获取所述指示信息;
所述客户机用于按照所述指示信息对所述多个分片报文进行聚合,以得到初始报文。
可选地,所述装置还包括:存储器;所述多个分片报文存储在所述端设备的存储器中,所述虚拟主机还用于:
根据所述存储器中存储的所述多个分片报文,确定所述多个分片报文的顺序;
在生成所述指示信息之后,所述虚拟主机用于将所述指示信息存储在所述存储器中,所述指示信息包括:所述多个分片报文的存储地址的描述符,且所述多个分片报文的存储地址的描述符按照所述多个分片报文的顺序排布。
可选地,所述虚拟主机还用于:根据所述存储器中存储的报头集合,确定所述多个分片报文的顺序,所述报头集合包括:属于所述初始报文的所有非首个分片报文的报头,分片报文携带的报文ID为所述分片报文所属报文的ID。
可选地,属于所述初始报文的首个分片报文的报头和负载存储在所述存储器中的第一存储区,属于所述初始报文的非首个分片报文的报头存储在第二存储区,所述非首个分片报文的负载存储在所述存储器的所述第一存储区。
可选地,所述虚拟主机还用于:对所述报头集合哈希,以得到第一哈希值;在哈希表中查询所述第一哈希值对应的第一地址队列链,其中,所述哈希表用于记录:哈希值和地址队列链的对应关系,所述地址队列链包括多个第三类报文标识对应的地址队列,且不同第三类报文标识对应的地址队列不同,任一报文中的每个分片报文均携带有所述第三类报文标识;基于所述报头集合中每个报头携带的第三类报文标识,确定所述第一地址队列链中所述每个报头携带的第三类报文标识对应的第一地址队列;根据所述多个分片报文的顺序,确定所述多个分片报文中每个分片报文的目标位次;将所述每个分片报文在所述存储器中的存储地址写入所述第一地址队列中的第一地址位置,其中,所述第一地址队列具有依次排布的多个地址位置,所述第一地址位置为所述多个地址位置中所述目标位次的地址位置;获取属于所述初始报文的首个分片报文的存储地址;将所述首个分片报文的存储地址写入所述多个地址位置中的首个地址位置;根据所述多个地址位置中的存储地址,生成所述指示信息。
可选地,所述多个分片报文和所述指示信息均存储在所述端设备的存储器中,所述客户机还用于:从所述存储器中获取所述指示信息,所述指示信息包括:所述多个分片报文的存储地址的描述符,且所述多个分片报文的存储地址的描述符按照所述多个分片报文的顺序排布;依次获取所述指示信息所指示的每个存储地址中存储的分片报文;将获取到的分片报文按照分片报文的获取顺序依次排布。
第八方面,提供了一种网卡,所述网卡包括处理组件、存储介质和通信接口,所述处理组件和所述存储介质均与所述通信接口连接,所述处理组件基于所述存储介质中的程序执行如上述第一方面任一所述的报文处理方法。
第九方面,提供了一种端设备,所述端设备包括:处理器、存储器和上述第八方面提供的网卡;所述处理器用于基于所述存储器中的程序运行开放虚拟交换机OVS,并通过OVS执行如上述第二方面所述的报文处理方法。
第十方面。提供了一种端设备,所述端设备包括:处理器和存储器;
所述处理器用于基于所述存储器中的程序运行虚拟主机和客户机,并通过所述虚拟主机执行如第三方面任一所述的报文处理方法中所述客户机执行的方法,通过所述客户机执行如第三方面任一所述的报文处理方法中所述客户机的方法。
可选地,所述端设备还包括:上述第八方面提供的网卡;所述处理器还用于基于所述存储器中的程序运行开放虚拟交换机OVS,并通过OVS执行如上述第二方面所述的报文处理方法。
第十一方面,提供了一种芯片,所述芯片用于运行OVS,所述OVS用于执行第二方面所述的报文处理方法。
第十二方面,提供了一种芯片,所述芯片包括:虚拟主机和客户机;所述虚拟主机用于执行如第三方面任一所述的报文处理方法中所述客户机执行的方法;所述客户机用于执行如第三方面任一所述的报文处理方法中所述客户机执行的方法。
可选地,所述芯片还包括:OVS,OVS用于执行第二方面所述的报文处理方法。
可选地,所述芯片为处理器。
第十三方面,提供了一种可读存储介质,所述存储介质内存储有程序;所述程序被处理组件执行时实现权利要求第一方面至第四方面任一所述的方法。
附图说明
图1是本申请实施例提供的一种数据传输系统的示意图;
图2是一种报文分片的原理示意图;
图3是相关技术中一种采用快速路径卸载至网卡的数据转发示意图;
图4是本申请实施例提供的一种报文处理方法的流程图;
图5是本申请实施例提供的一种报文的示意图;
图6是本申请实施例提供的一种OVS处理报文的过程示意图;
图7是本申请实施例提供的一种端设备的部分结构示意图;
图8是本申请实施例提供的一种端设备的结构示意图;
图9是相关技术中重组分片报文的过程示意图;
图10是本申请实施例提供的另一种报文处理方法的流程图;
图11是本申请实施例提供的报文处理方法中报文重组阶段的流程示意图;
图12是本申请实施例提供的一种生成指示信息的方法流程示意图;
图13是本申请实施例提供的一种生成指示信息的流程示意图;
图14是本申请实施例提供的一种端设备的部分结构示意图;
图15是本申请实施例提供的一种报文处理装置的框图;
图16是本申请实施例提供的又一种报文处理装置的框图;
图17为本申请实施例提供的一种端设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请实施例提供的一种数据传输系统。该数据传输系统包括:多个端设备1,可选地,该数据传输系统还可以包括网络设备0。上述多个端设备1可以通过该网络设备0连接。示例地,该端设备1可以为终端、服务器和由多个服务器构成的服务区集群等。网络设备0可以为网关、交换机以及服务器代理等。该端设备可以对应一个连接的端节点,网络设备可以对应一个连接的中间节点。
该端设备1可以包括:开放虚拟交换机(open vswitch,OVS)202、网卡203和存储器204。其中,存储器204可以为OVS 202以及网卡203共享的存储空间,以使得在网卡203将数据存储在该存储器204时。示例地,该存储器204可以为缓存器。
示例地,端设备包括处理器206,该客户机201和OVS 202可以均属于该处理器。比如,OVS 202可以为一种虚拟机,OVS 202可以包括:搭载在处理器上的OVS软件,以及处理器中OVS软件所搭载的硬件。网卡203可以为智能网卡(smart network interface card,smartNIC)。
其中,每个端设备均能够通过其中的网卡对其他端设备转发数据。示例地,端设备1可以网卡将数据发送至网络设备0中,该网络设备0将接收到的数据发送至另一端设备1中。在该转发数据的过程中,将数据发送至网络设备0的端设备可以称为源端设备,接收由网络设备0发送的数据的端设备可以称为目的端设备。
源端设备和目的端设备之间可以依次通过多条传输链路传输报文。但是,不同传输链路上可传输的报文长度受限于该传输链路所使用的链路层协议,且不同的链路层协议规定的报文的负载长度不同。其中,报文包括:报头和负载部分,报文的负载长度指的是报文的负载部分的长度。基于此,当需要在某一传输链路上进行报文的传输时,若该报文的长度超过该传输链路对应的链路层协议所规定的MTU,则需要对该报文进行分片,从而得到多个长度小于MTU的分片报文,之后再在该传输链路上传输这些分片报文。
其中,每个分片报文均可以包括:报头和负载部分。报文的分片过程包括:首先,将报文的负载部分切分成一个或多个负载子部分。然后对每个负载子部分添加报头,该分片报头是根据报文的报头获取或修改的。当该负载子部分为对负载部分进行切分后得到的第一个负载子部分时,对该第一个负载子部分添加的报头与该第一个负载子部分所属的报文的报头相比,除报头中的标志和片偏移两个字段信息外,其余信息均相同。当该负载子部分为非第一个负载子部分时,对该非第一个负载子部分添加的报头与该第一个负载子部分添加的报头相比,不仅报头中的标志和片偏移两个字段的信息不同,且该非第一个负载子部分的报头中不包含传输层信息。其中,第一个负载子部分添加报头后可以称为首个分片报文,非第一个负载子部分添加报头后可以称为非首个分片报文。因此,该多个分片报文可以认为包括:首个分片报文和非首个分片报文。且首个分片报文的报头包括传输层信息,而非首个分片报文的报头不包括传输层信息。示例地,被分片的报文通常指的是传输层采用用户数据报协议(user datagram protocol,UDP)的报文。其中,分片报文携带的报文ID为该分片报文所属报文的ID,也即是,分片报文是由其所属报文进行分片得到的。
如图2所示,其示出了一种报文分片的原理示意图。假设源端设备101的报文通过第一路由器102和第二路由器103发往目的端设备104。其中,源端设备101和第一路由器102之间的传输链路的MTU为65535字节(Byte,B),第一路由器102和第二路由器103之间的传输链路的MTU为400B,第二路由器103和目的端设备104之间的传输链路的MTU为2500B。
假设源端设备101需要向目的端设备104发送图2中的第一报文A0,该第一报文A0包括互联网协议(Internet Protocol,IP)报头(header)H_0和负载长度为1000B的负载PL_0。当第一路由器102接收到该第一报文A0时,由于第一报文A0的负载长度(1000B)大于第一路由器102和第二路由器103之间的传输链路的MTU(400B),因此,第一路由器102需要将该第一报文A0进行分片,再将分片后得到的每个分片报文发送至第二路由器103。其中,第一路由器102可以将第一报文A0分片得到:首个分片报文A01,以及分片报文A02和分片报文A03共两个非首个分片报文。其中,该首个分片报文A01包括报头H_01和负载长度为3976的负载PL_01。分片报文A02包括报头H_02和负载长度为3976的负载PL_02。分片报文A03包括报头H_03和负载长度为2048的负载PL_03。
类似的,第二路由器103在接收到每个分片报文(如第一路由器对第一报文分片后得到的三个分片报文)后,也需要在接收到的分片报文的负载长度大于第二路由器103和目的端设备104之间的传输链路的MTU时,对该接收的分片报文进行再次分片,再向目标虚拟主机发送再次分片后得到的分片报文。示例地,由于第二路由器103接收到分片报文A01的负载长度(3976B)和分片报文A02的负载长度(3976B)均大于第二路由器103和目的端设备104之间的传输链路的MTU(2500B),因此,第二路由器103对分片报文A01进行分片,再将分片后得到的每个分片报文发送至目的端设备。其中,第二路由器可以将分片报文A01分片得到:首个分片报文A011,以及分片报文A012一个非首个分片报文。对分片报文A02进行分片,再将分片后得到的每个分片报文发送至目的端设备。其中,第二路由器可以将分片报文A02分片得到:分片报文A021和分片报文A022共两个非首个分片报文。该分片报文A011包括报头H_011和负载长度为2480B的负载PL_011。分片报文A012包括报头H_012和负载长度为1496B的负载PL_012。分片报文A021包括报头H_021和负载长度为2480B的负载PL_021。分片报文A022包括报头H_022和负载长度为1496B的负载PL_022。由于分片报文A03的负载长度(2048B)小于第二路由器103和目的端设备104之间的传输链路的MTU(2500B),因此,该第二路由器103直接将该分片报文A03发送至目的端设备104。
目前的OVS对于接收到的分片报文可以通过慢速路径或和快速路径进行处理。该慢速路径指的是,OVS对接收的分片报文进行解析,然后根据解析的结果查询该OVS中存储的多个流项目表项,然后根据该多个流项目表项决定该分片报文的处理操作。该处理操作可以包括:将该分片报文转发至某一端口、修改该分片报文的某一字段和/或将该分片报文丢弃。当OVS对分片报文采用慢速路径处理后,通常会建立该分片报文与该分片报文的处理操作的对应关系。则快速处理路径指的是,OVS在前述建立的分片报文与处理操作的对应关系中,查询接收到的分片报文,并根据查询到的结果执行该分片报文对应的处理操作。其中,当接收到的分片报文为首个分片报文时,该OVS对该首个分片报文通过慢速路径进行处理。当接收到的分片报文为非首个分片报文时,该OVS对该非首个分片报文通过快速路径进行处理。这样,由于通常只有首个分片报文通过慢速路径进行处理,而较多数目的分片报文通过快速路径进行处理,因此,该快速路径的转发性能影响该OVS对报文(或者是数据)的转发性能。
当端设备进行数据转发时,为了提高转发性能,可以将快速路径卸载至网卡。请参考图3,其示出了相关技术中一种采用快速路径卸载至网卡的数据转发示意图。如图3所示,网卡203中可以存储分片报文携带的报文标识,以及报文标识对应的处理操作序列。其中,可以通过归一流表2041。记录分片报文携带的报文标识,以及报文标识对应的处理操作序列,且报文标识可以为该归一流表的匹配项,处理操作序列可以为该归一流表的行为项。示例地,该报文标识可以为从该分片报文提取的子网标识符以及从该分片报文的报头提取的源IP、目的IP、协议类型、源端口和目的端口信息。且该源端口和目的端口属于传输层信息。处理操作序列可以包括该分片报文在进行转发时依次所需执行的处理操作。
当该网卡203接收到分片报文时,该网卡首先查询该分片报文携带的报文标识。若查询到该分片报文携带的报文标识,则该网卡确定该分片报文携带的报文标识对应的处理操作序列,无需传输至OVS 202进行处理。若未查询到该分片报文携带的报文标识,则该网卡将该分片报文传输至OVS 202。该OVS 202在接收到分片报文后,采用慢速路径对该分片报文进行处理。其中,OVS 202中包括智能卸载引擎单元2021,该智能卸载引擎单元2021跟踪记录该分片报文的处理操作,然后根据记录的处理操作生成分片报文携带的报文标识,以及报文标识对应的处理操作序列,并将该生成的分片报文携带的报文标识,以及报文标识对应的处理操作序列卸载至网卡203中的归一流表中。
但是,由于网卡中存储分片报文携带的报文标识,以及报文标识对应的处理操作序列中,该报文标识包括源IP、目的IP、协议类型、源端口和目的端口信息,其包含传输层的信息。而分片报文中,除首个分片报文之外均的分片报文均不包含该传输层的信息。因此,当网卡对接收到的分片报文进行处理时,无法查询到该接收到的分片报文携带的报文标识,因而无法确定该分片报文携带的报文标识对应的处理操作序列,进而使得网卡需要大量的分片报文上传至OVS进行处理。而该OVS处理数据的性能较差,直接影响了数据转发性能。
本申请实施例提供一种报文处理方法,可以解决上述问题。请参考图4,其示出了本申请实施例提供的一种报文处理方法,该报文处理方法可以应用于上述图1所示的端设备。如图4所示,该报文处理方法可以包括如下步骤:
步骤101、网卡接收多个第一分片报文。
其中,该多个第一分片报文均携带有第一类报文标识,该第一类报文标识包括报文ID,且多个第一分片报文中的至少两个第一分片报文携带的报文ID相同。也即是,至少两个第一分片报文为由同一报文分片得到的分片报文。
第一分片报文可以是该端设备中产生并传输至网卡的分片报文,也可以是网卡从外部网络中接收到的分片报文。该第一分片报文可以是由报文直接分片得到的(第一分片报文属于该报文),其中,被分片的该报文可以是从未被分片过的报文,或者是分片后得到的分片报文。且该第一分片报文可以是其所属的报文中的首个分片报文,也可以是非首个分片报文。需要说明的是,分片报文携带的报文ID为该分片报文所属报文的ID。
本申请实施例中,如图5所示,多个分片报文中的首个分片报文包括:报头和负载。该报头包括:传输层信息(例如,源端口和目的端口)和其他信息(如版本、首部长度、区分服务、总长度、报文身份标识号(identification,ID)、标志、分片偏移、生存时间、协议类型、首部检验和、源IP地址、目的IP地址等)。非首个分片报文包括:报头和负载。该报头相较于首个分片报文的报头不包括:传输层信息。
步骤102、网卡在报文标识集合中查询多个第一分片报文携带的第一类报文标识。
报文标识集合可以为空集也可以为非空集。当报文标识集合为非空集时,报文标识集合包括:端设备中OVS处理过的至少一个分片报文携带的第一类报文标识,且至少一个分片报文中任一分片报文所携带的第一类报文标识均具有对应的处理操作序列。该至少一个分片报文指的是一个或多个分片报文。
本申请实施例中,任一分片报文所携带的第一类报文标识对应的处理操作序列包括:OVS对该任一分片报文执行过的部分或全部处理操作。示例地,网卡可以在第一类报文标识与处理操作序列的对应关系中,查询第一分片报文携带的第一类报文标识。上述报文标识集合可以为该对应关系中所有的第一类报文标识。OVS对任一分片报文执行过的处理操作可以包括:将该分片报文转发至某一端口、修改该分片报文的某一字段和/或将该分片报文丢弃。该第一类报文标识可以为每个分片报文的报头均携带的报文标识,例如,该第一类报文标识可以包括如图5所示的源IP地址、目的IP地址和报文ID的信息,该信息为每个分片报文的报头均携带的信息。或者,该第一类报文标识可以包括报文ID。根据实际情况,该第一类报文标识还可以包括报文ID和其他信息,本申请实施例对此不做限定。
可选地,可以通过存储在网卡中的映射表和流表,来反映第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列,比如,该映射表用于记录:在报文标识集合中的第一类报文标识与流表的流表项的对应关系。流表用于记录流表的流表项与任一分片报文所携带的第一类报文标识对应的处理操作序列的对应关系。此时,报文标识集合指的是该映射表中所有第一类报文标识的集合。则在步骤102中,网卡可以直接在映射表中查询第一分片报文携带的第一类报文标识。可以理解的是,在映射表和流表中,可以使用流ID(flow_id)来标识流表的流表项。映射表可以具有匹配项和流表项,该映射表中的匹配项可以为第一类报文标识,此时,该匹配项可以称为碎片匹配密钥(fragment_match_key)。
示例地,上述映射表可以如下述表1所示,映射表可以如下述表2所示。
表1
流表项 | 处理操作序列 |
1 | {处理操作1、处理操作2和处理操作3} |
2 | {处理操作4和处理操作5} |
如表1所示,在流ID为1的流表项中,处理操作序列包括处理操作1、处理操作2和处理操作3。在流ID为2的流表项中,处理操作序列包括处理操作4和处理操作5。
表2
第一类报文标识 | 流表项 |
1 | 1 |
2 | 2 |
如表2所示,第一类报文标识1对应的流表项为1。相应地,也即是,第一类报文标识1对应的处理操作序列包括处理操作1、处理操作2和处理操作3。第一类报文标识2对应的流表项为2。相应地,第一类报文标识2对应的处理操作序列包括处理操作3和处理操作4。
步骤103、当查询到第一分片报文携带的第一类报文标识时,网卡确定第一分片报文携带的第一类报文标识对应的处理操作序列。
其中,继续以映射表和流表来记录第一类报文标识与处理操作序列的对应关系为例进行说明。当查询到第一分片报文携带的第一类报文标识时,网卡确定第一分片报文携带的第一类报文标识对应的处理操作序列的过程可以包括:网卡首先根据映射表确定第一分片报文携带的第一类报文标识对应的第一流表项。然后,网卡在流表中查询第一流表项。当在流表中查询到第一流表项时,网卡根据流表确定第一流表项对应的处理操作序列。之后,网卡将第一流表项对应的处理操作序列,作为第一分片报文携带的第一类报文标识对应的处理操作序列。
示例地,假设第一分片报文携带的第一类报文标识为1,且网卡中存储有上述表3所示的流表以及上述表2所示的映射表。网卡首先根据映射表确定第一类报文标识1对应的流ID为1的流表项。然后,网卡在流表中查询流ID为1的流表项,确定该流表项对应的处理操作序列{处理操作1、处理操作2和处理操作3}。
步骤104、网卡对第一分片报文依次执行第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作。
网卡在确定第一分片报文携带的第一类报文标识对应的处理操作序列后,可以对该第一分片报文执行该处理操作序列中的处理操作。示例地,继续以上述步骤103中所示的例子为例。在确定第一分片报文携带的第一类报文标识对应处理操作序列{处理操作1、处理操作2和处理操作3}时,网卡可以对第一分片报文依次执行处理操作1、处理操作2和处理操作3。
步骤105、当未查询到第一分片报文携带的第一类报文标识时,网卡将第一分片报文发送至OVS。
其中,未查询到第一分片报文携带的第一类报文标识的情况可能有多种。例如,当上述报文标识集合为空集时,该网卡查询不到第一分片报文携带的第一类报文标识。或者,在上述报文标识集合为非空集的情况下,该报文标识集合不包括该第一类报文标识。
步骤106、OVS对第一分片报文执行一个或多个处理操作。
OVS接收端设备的网卡发送的第一分片报文,并对该第一分片报文进行处理。该OVS对第一分片报文的处理方式与上述OVS采用慢速路径对分片报文的处理方式基本相同。
步骤107、OVS在该第一分片报文为第一分片报文所属的报文中的首个分片报文时,生成第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列。任一报文中的每个分片报文均携带有第一类报文标识,第一分片报文携带的第一类报文标识对应的处理操作序列包括:所述一个或多个处理操作中的部分或全部处理操作。
OVS在接收到该第一分片报文时,可以判断该第一分片报文是否为首个分片报文。示例地,可以根据该第一分片报文中报头包含的信息确定该第一分片报文是否为首个分片报文。当判断第一分片报文为其所属的报文中的首个分片报文时,OVS对该第一分片报文执行一个或多个处理操作时,该OVS可以跟踪记录该一个或多个处理操作,然后根据该一个或多个处理操作对应的第一分片报文,生成第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列。
示例地,OVS中可以存储有一个或多个流项目表,每个流项目表可以用于记录一个分片报文的标识以及OVS对该一个分片报文执行的一个处理操作。并且,对于每两个依次执行的处理操作中,用于记录上一个处理操作的流项目表还记录有用于记录下一个处理操作的流项目表的标识。其中,如图6所示,OVS中存储的多个流项目表包括:流项目(flowentry)表1至流项目表5以及CT项目表1共5个项目表。OVS根据第一分片报文对应的流项目1、CT项目1、流项目2至流项目5依次确定第一分片报文所需执行的连接跟踪动作(CTaction)、状态更新(CT state update)、插入虚拟局域网头部(VLAN push)、去掉虚拟局域网头部(VLAN pop)、插入隧道头部(tunnel push)和插入虚拟局域网头部共6个处理操作。
OVS可以通过跟踪该第一分片报文经过的多个流项目表,确定OVS对第一分片报文执行的一个或多个处理操作,从而生成上述流表。然后,该OVS可以根据提取该第一分片报文携带的第二类报文标识,并根据上述流表,生成上述映射表。最终通过该流表和映射表反映第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列。
可选地,由于OVS对分片报文执行的部分处理操作,在网卡对同一分片报文执行同一处理时可能并不需要。因此,该OVS可以根据网卡对该第一分片报文对应的一个或多个处理操作进行统一编排,从而使得流表中的处理操作序列可以包括该一个或多个处理操作中的部分处理操作。示例地,该统一编排可以指的是,根据网卡所需执行的处理操作,对该一个或多个处理操作进行筛选,从而保留该网卡所需执行的必要处理操作。示例地,上时示例中,由于网卡处理第一分片报文时可能并不需要插入虚拟局域网头部和去掉虚拟局域网头部。因此,OVS对处理操作进行统一编排后,确定该第一分片报文对应的处理操作序列可以包括连接跟踪动作、插入隧道头部和插入虚拟局域网头部。
可选地,该OVS可以包括智能引擎处理模块,则上述跟踪记录该一个或多个处理操作、对该一个或多个处理操作进行统一编排以及生成上述第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列均可以由该智能引擎处理模块执行。
需要说明的是,当上述判断的第一分片报文为其所属的报文中的非首个分片报文时,OVS对该非首个分片报文进行处理,不会生成第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列。
步骤108、OVS向所述网卡发送第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列。
示例地,OVS将生成的流表和映射表卸载至网卡。其中,步骤203可以由OVS中的智能引擎处理模块执行。
步骤109、网卡在报文标识集合中增加第一分片报文携带的第一类报文标识。
网卡在接收OVS发送的第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列之后,可以将从OVS接收到的第一分片报文携带的第一类报文标识,添加至网卡存储的报文标识集合。示例地,网卡可以在映射表中记录该第一分片报文携带的第一类报文标识与流表的一个表项的对应关系,网卡还可以在流表中记录该表项与该第一类报文标识对应的处理操作序列的对应关系。
或者,网卡在接收OVS发送的第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列之后,网卡可以将从OVS接收到的第一分片报文携带的第一类报文标识,更新该标识集合中的包括的报文标识集合。示例地,网卡可以将映射表中记录的对应关系更新为:该第一分片报文携带的第一类报文标识与流表的一个表项的对应关系,网卡还可以将流表中记录的对应关系更新为:该表项与该第一类报文标识对应的处理操作序列的对应关系。
需要说明的是,本申请实施例提供的流表还可以用于记录流表的流表项、处理操作序列以及第二类报文标识的对应关系。本申请实施例中,任一报文中的首个分片报文携带有第二类报文标识,且任一报文中的非首个分片报文未携带有第二类报文标识。其中,流表包括匹配项和行为项。该第二类报文标识可以为该流表中的匹配项,该匹配项可以称为匹配密钥(match_key)。示例地,该第二类报文标识可以包括:报文的子网标识符和五元组信息(源IP地址、目的IP地址、协议类型、源端口和目的端口)。该处理操作序列可以为该流表的行为项。由于相关技术中,归一流表记录的报文标识和其处理操作序列与本申请实施例中流表的第二类报文标识和处理操作序列相同,因此,本申请实施例中可以复用相关技术中的第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列,更有效地提高了该对应关系的利用率。
示例地,用于记录其流表项、处理操作序列以及第二类报文标识的对应关系的流表可以如下述表3所示。该流表可以与相关技术中的归一流表相同。
表3
流表项 | 第二类报文标识 | 处理操作序列 |
1 | 1_1 | {处理操作1、处理操作2和处理操作3} |
2 | 2_1 | {处理操作4和处理操作5} |
如表3所示,第二类报文标识1_1对应的流表项为2,对应的处理操作序列包括处理操作1、处理操作2和处理操作3。第二类报文标识2_1对应的流表项为2,对应的处理操作序列包括处理操作4和处理操作5。
还需要说明的是,在端设备为Linux操作系统下,数据可以在二层(数据链路层)上的进行转发。此时,该OVS可以包括处于桥接(bridged)模式的客户机(VMware)和多个网桥。该桥接模式的客户机指的是将网卡与客户机的虚拟网卡利用虚拟的网桥进行连接,以实现OVS和网卡的通信。如图7所示,该OVS可以包括客户机301、第一网桥302、第二网桥303、第三网桥304、第四网桥305,且第四网桥305与网卡203(如智能网卡)连接。其中,第一网桥303可以为ply网桥;第二网桥303可以为Linux网桥;第三网桥304可以为集成网桥(br-int);第四网桥305可以为通道网桥(br-tun)。当第一分片报文为首个分片报文时,该第一分片报文在该端设备上处理、并转发并创建上述流表和映射表的过程可以包括:
首先,该第一分片报文由客户机301进入第一网桥302。然后,该第一网桥302将接收到的第一分片报文送入第二网桥303,该第二网桥303对该第一分片报文执行一个或多个处理操作,并跟踪和记录该一个或多个处理操作进行跟踪(也即是连接跟踪),以及对该第一分片报文进行安全检查。之后,该第一分片报文经过第二网桥303后再次进入第一网桥302,此时,该第一网桥302根据第二网桥303记录的该第一分片报文执行的部分或全部一个或多个处理操作,生成第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列。然后,该第一分片报文被送入第三网桥304,该第三网桥304对该第一分片报文写入内部的虚拟局域网标签(VLAN tag)。之后,该第一分片报文被送入第四网桥305,该第四网桥305剥离该第一分片报文上的虚拟局域网标签,写入虚拟可拓展局域网网络标识(VXLAN network identifier,VNI)并将该第一分片报恩封装为虚拟可拓展局域网(virtual extensible LAN,VXLAN)隧道报文。然后第四网桥305在该VXLAN隧道报文内写入外部VLAN tag。
在OVS对第一分片报文执行完毕上述处理操作后,OVS可以将处理后的第一分片报文发送给网卡,并由网卡将该第一分片报文发送至其他端设备。比如,第四网桥305可以将写入外部VLAN tag的第一分片报文传输至网卡,并由网卡发送至其他端设备。
综上所述,本申请实施例提供的报文处理方法,由于在考虑到同一报文的多个分片报文在转发面上的实际处理操作均相同的情况下,通过使得报文标识集合中至少一个分片报文中任一分片报文所携带的第一类报文标识均具有对应的处理操作序列,从而使得网卡可以在该报文标识集合汇总查询到第一报文分片对应的第一类报文标识时,可以对该第一报文分片依次执行该第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作,且由于任一报文中的每个分片报文均携带有所述第一类报文标识,因此,网卡可以对任一报文汇总的每个分片报文执行该分片报文携带的第一类报文标识对应的处理操作序列中的处理操作,无需将大量的分片报文上传至OVS处理,提高了数据转发效率。
进一步地,当采用映射表和流表来反映第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列,且该流表记录为流表的流表项、处理操作序列以及第二类报文标识的对应关系时,由于该流表与相关技术中的相关技术中的归一流表相同,因此,网卡可以对任一报文汇总的每个分片报文执行该分片报文携带的第一类报文标识对应的处理操作序列中的处理操作,提高了数据转发效率。
进一步地,当采用映射表和流表来反映第一分片报文携带的第一类报文标识,以及第一类报文标识对应的处理操作序列,且该流表记录为流表的流表项、处理操作序列以及第二类报文标识的对应关系时,由于该流表与相关技术中的相关技术中的归一流表相同,因此,网卡可以充分利用流表直接对较多分片报文进行快速处理,提高流表的利用效率。
进一步地,本申请实施例中,由于网卡仅需进行映射表至流表之间的一次跳转,即可获取该第一分片报文所属报文的多个分片报文所需执行的处理操作,相较于相关技术中,可能需要进行多个项目表的跳转,简化了处理操作的查询流程。且由于流表中的处理操作序列可以包括相关技术中确定的一个或多个处理操作中的部分处理操作,因此,也简化了对该第一分片报文的处理操作。
请参考图8,其示出了本申请实施例提供的一种端设备的结构示意图。在图1所示的端设备的基础上,该端设备还可以包括:客户机201和虚拟主机(vHost)205。相应的,端设备中的处理器也可以包括该客户机201和虚拟主机205,比如,该客户机201和虚拟主机205均可以为虚拟机,比如,该虚拟主机205包括:搭载在处理器上的虚拟主机软件,以及处理器中虚拟主机软件所搭载的硬件;该客户机201包括:搭载在处理器上的客户机软件,以及处理器中客户机软件所搭载的硬件。
当该端设备为目的端设备时,属于同一报文的多个分片报文达到在达到该端设备后,网卡203将该多个分片报文直接存储至存储器204。客户机201从该存储器204中接收该多个分片报文,然后由该客户机201的内核对该多个分片报文进行解析,并将该多个分片报文重组成一个完整报文。在重组成一个完整报文后,客户机201的内核将该完整报文进行后续处理。
其中,客户机201中存储有哈希表(ip4_frags.hash[]),该哈希表用于记录:哈希值和多个报文队列的存储空间的对应关系。该哈希值可以为客户机201对报文中源IP地址、目的IP地址、协议类型和报文标识符进行哈希处理得到的。该多个报文队列的存储空间包括多个重组报文标识对应的报文(inet_frag_queue)的对应关系。该重组报文标识可以包括源IP地址、目的IP地址、协议类型、报文标示符和重组报文的用户等信息。报文可以包括指向分片链表中首个分片报文的指针(fargments)和指向分片链表中末尾分片报文的指针(fargments_tail)。该分片链表可以用于存储依次排布的多个分片报文,且分片链表由缓冲结构(sk_buff)构成的,分片链表可以由sk_buff表示。
请参考图9,其示出了相关技术中重组分片报文的过程示意图。如图9所示,frag_fri表示指向分片链表中首个分片报文的指针。Frag_tai表示指向分片链表中末尾分片报文的指针。D表示分片链表中存储的多个分片报文。该客户机201解析并重组该多个分片报文的过程可以包括:客户机201首先对分片报文进行解析,然后提取该分片报文的报头中包括的源IP地址、目的IP地址、协议类型和报文标识符的信息,并对该信息进行哈希处理,得到哈希值。然后,该客户机201在哈希表中查询该哈希值。若该哈希表中查询到该哈希值,则客户机201根据该哈希表确定该哈希值对应的多个报文队列的存储空间。之后,客户机201在多个报文队列的存储空间中查询该重组报文标识,确定该重组报文标识对应的报文。并根据该分片报文的报头中分片偏移(fragment offset)的信息,确定该分片报文在其所属的报文中的目标位次,然后将该分片报文插入到分片链表中的第一位置,该第一位置为分片链表中该多个分片报文所在位置中目标位次的位置。当所有分片报文均存储在分片链表后,该多个分片报文就组成了一个完整的报文。
但是,由于客户机需要对接收到的分片报文进行解析后,以使该分片报文重组成一个完整的报文,因此,较高的消耗该客户机的处理资源,降低客户机的资源的利用率。且由于客户机对数据的处理性能相对较差,因此,该客户机对分片报文的处理效率较低。
请参考图10,其示出了本申请实施例提供的另一种报文处理方法。可以解决相关技术中客户机资料利用率较低的问题。该报文处理方法可以应用于图8所示的端设备中,如图10所示,该报文处理方法包括:
步骤201、网卡接收多个分片报文。
网卡可以接收到很多分片报文,步骤201中提到的多个分片报文均携带有第一类报文标识,且第一类报文标识包括报文ID,且该多个分片报文携带的报文ID相同。
步骤202、网卡将多个分片报文存储在存储器中。
其中,客户机、虚拟主机和网卡均可以访问该存储器。网卡将多个分片报文存储在存储器中的过程可以包括:网卡判断其接收到的多个分片报文为属于初始报文的首个分片报文还是非首个报文,分片报文携带的报文ID为所述分片报文所属报文的ID。当其接收的分片报文为首个分片报文时,网卡将该首个分片报文的报头和负载存储在存储器中的第一存储区。当其接受的分片报文为非首个分片报文时,网卡将该非首个分片报文的报头存储在第二存储区,并将该非首个分片报文的负载存储在存储器的第一存储区。其中,第二存储区可以称为元数据(metedata)存储区。该第二存储区与第一存储区一一对应。示例地,网卡可以采用直接内存存取(direct memory access,DMA)将分片报文的报头和负载存储在存储器中。该DMA指的是网卡无需通过中央处理器(central processing unit,CPU)而直接与存储器进行数据交互的接口技术。
示例地,如图11所示,其示出了本申请实施例提供的报文处理方法中报文重组阶段的流程示意图。假设网卡的接收的分片报文包括分片报文包括分片报文B01、分片报文B02...以及分片报文B0n共n个分片报文,n为正整数,且n>1。其中,分片报文B01包括报头B011和负载B012;分片报文B02包括报头B021和负载B022...分片报文B0n包括报头B0n1和负载B0n2。网卡可以分别将分片报文B01、分片报文B02...以及分片报文B0n存储在存储器204的第一存储区中,地址为mbuf_1、mbuf_2...以及mbuf_n的区域。
步骤203、虚拟主机从存储中读取其存储的多个分片报文。
步骤204、虚拟主机确定从存储器中读取的多个分片报文的顺序。
其中,虚拟主机可以根据存储器中存储的多个分片报文,确定多个分片报文的顺序。示例地,虚拟主机可以根据存储器中存储的报头集合,确定多个分片报文的顺序,报头集合包括:属于初始报文的所有非首个分片报文的报头,分片报文携带的报文ID为所述分片报文所属报文的ID。示例地,分片报文的报头中具有分片偏移信息,该分片偏移信息包括该分片报文偏移其所属的初始报文的开始处的位置。需要说明的是,分片报文携带的报文ID为该分片报文所属报文的ID。虚拟主机可以根据第二分片报文的分片偏移信息确定第二分片报文在其所属的报文中的位置。该第二分片报文为网卡接收到的多个分片报文中的任一分片报文。
步骤205、虚拟主机生成指示信息。该指示信息包括:多个分片报文的存储地址的描述符,且多个分片报文的存储地址的描述符按照多个分片报文的顺序排布。
也即是,该指示信息可以用于指示:多个分片报文的顺序。其中,如图12和图13所示,虚拟主机生成指示信息的过程可以包括:
步骤2051、虚拟主机对报头集合哈希,以得到第一哈希值。
虚拟主机将报头集合中第二分片报文的报头进行哈希处理,得到第一哈希值,该第一哈希值可以为该第二分片报文所属报文的唯一ID(可以用ufid标识)。
步骤2052、虚拟主机在哈希表中查询第一哈希值对应的第一地址队列链,其中,哈希表用于记录:哈希值和地址队列链的对应关系,地址队列链包括多个第三类报文标识对应的地址队列,且不同地址队列对应的第三类报文标识不同。
虚拟主机以第一哈希值为键值,插入哈希表中,确定该第一哈希值对应的第一地址队列链。示例地,虚拟主机根据第一哈希值在哈希表中确定第一地址队列链H[X]。该第一地址队列链H[X]包括多个报文标识对应的IP地址队列(ip queue)。其中,该第三类报文标识包括列表(list)信息、ufid标识、地址所属分片的报文ID(ip.id)、地址所属分片报文的分片偏移(ip.offset)、地址所属分片报文的标志(ip.more_flag)。该第三类报文标识对应的地址队列(mbuf)。
步骤2053、虚拟主机基于报头集合中每个报头携带的第三类报文标识,确定第一地址队列链中每个报头携带的第三类报文标识对应的第一地址队列。
示例地,虚拟主机在第一地址队列链H[X]中查询第三类报文标识对应的第一地址队列(iq_1).
步骤2054、虚拟主机根据每个报头,确定每个报头所属的分片报文的目标位次,并将每个报头所属的分片报文在存储器中的存储地址写入第一地址队列中的第一地址位置,其中,第一地址队列具有依次排布的多个地址位置,第一地址位置为多个地址位置中目标位次的地址位置。
示例地,虚拟主机首先根据分片报文B02的报头中包括的偏移信息确定该报头所属的分片报文的负载在初始报文的负载中的第2位次。然后虚拟主机将该分片报文B02在存储器中的存储地址mbuf_2写入第一地址队列中的第2个地址位置。
步骤2055、虚拟主机获取属于初始报文的首个分片报文的存储地址。
示例地,假设该初始报文汇总的首个分片报文为分片报文B01。虚拟主机获取该分片报文B01在存储器中改的存储地址mbuf_1。
步骤2056、虚拟主机将首个分片报文的存储地址写入多个地址位置中的首个地址位置。示例地,虚拟主机将该分片报文B01的存储地址mbuf_1写入第1个地址位置。
步骤2057、虚拟主机根据多个地址位置中的存储地址,生成指示信息。
其中,虚拟主机生成指示信息前,需要满足重组条件。该重组条件包括多个地址位置中存储有属于初始报文的分片报文的存储地址。示例地,虚拟主机可以根据初始报文中的报头判断该多个地址位置中是否存储有属于初始报文的分片报文的存储地址。例如,虚拟主机首先根据该初始报文的报头包括的分片报文的标志中MF字段判断该分片报文是否属于其所属报文的最后一个分片报文。当该MF字段为0时,该该分片报文为最后一个分片报文;该MF字段为1时,该该分片报文不为最后一个分片报文。当存储器中存储有最后一个分片报文时,可以根据其报头包括的分片偏移和总长度信息,确定该最后一个分片报文所属报文的全部长度(分片偏移与总长度之和)。在确定该最后一个分片报文所属报文的全部长度之后,当存储器中存储的属于该报文的所有分片报文的长度之和等于该全部长度,确定重组条件满足。
可选地,虚拟主机可以通过存储地址的描述符,以描述分片报文的存储地址。则虚拟主机根据多个地址位置中的存储地址,生成的指示信息包括:多个分片报文的存储地址的描述符,且多个分片报文的存储地址的描述符按照多个分片报文的顺序排布。也可以理解为,虚拟主机将存储地址对应的描述符进行重新排序,该重新排序后的描述符的排布顺序与多个分片报文的排布顺序相同。
示例地,请继续参考图11,上述分片报文B01、分片报文B02...以及分片报文B0n的在其所属的报文中的排布顺序为分片报文B0n、分片报文B01...以及分片报文B02。分片报文B0n、分片报文B01...以及分片报文B02依次对应的描述符包括描述符2(desc_2)、描述符n(desc_n)...以及描述符1(desc_1)。则该分片报文B01、分片报文B02...以及分片报文B0n的存储地址的描述符按照分片报文的顺序排布为:desc_1、desc_2...以及desc_n。
步骤206、虚拟主机将指示信息存储在存储器中。
其中,虚拟主机将该指示信息存储在存储器的第三存储区中,客户机虚拟主机和客户机存储均可以访问该第三存储区,该第三存储区可以为描述符表(descriptor table)所指向的存储区。其中,该描述符表具有虚拟输入/输出头部标识符(virtio_hdr)。
步骤207、客户机从存储器中获取指示信息,并按照指示信息对多个分片报文进行聚合,以得到初始报文。
其中,在虚拟主机将指示信息存储在存储器后,可以先客户机发送收包信息,该收包信息中可以包括聚合标识,以使得该客户机在接收到该收包信息后,确定对后续获取的多个分片报文进行聚合操作,以得到完整的初始报文。
可选地,客户机依次获取指示信息所指示的每个存储地址中存储的分片报文,并将获取到的分片报文按照分片报文的获取顺序依次排布。
需要说明的是,上述报文重组阶段可以应用于在如图14所示的客户机204的网卡驱动2041为virtio的场景中。该网卡驱动2041包括描述符表2041a、可用环(availablering)2041b和用过的环(used ring)2041c。其中,可用环2041b中存储有可用的描述符。用过的环2041c中存储有已使用的描述符。虚拟主机在上述步骤205生成指示信息后,可以将指示信息中包括的多个分片报文的存储地址的描述符,加载入可用环内,此时存储器中的第三存储区指的是该可用环在存储器中所存储的区域。客户机的网卡驱动可以获取该可用环内的指示信息,并按照该指示信息读取存储器中该描述符指向的存储地址中存储的负载。
综上所述,本申请实施例提供的报文处理方法,由于通过网卡将接收到分片报文进行存储,并利用虚拟主机将存储的分片报文在存储器中的存储地址进行排列。客户机通过排列后的存储地址获取其内存储的分片报文即可以得到完整的报文,因此,无需客户机进行分片报文的重组。相对于相关技术中,客户机需要对接收到的分片报文进行解析后,重组成一个完整的报文,节约了客户机的处理资源,使得客户机可以最大程度提供资源处理业务。
本申请实施例提供的两种报文处理方法(如图4和图10所示的报文处理方法)可以均应用于一个端设备,也即是一个端设备可以执行上述两种报文处理方法。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
本申请实施例提供一种报文处理装置,应用于端设备中的网卡,如图15所示,报文处理装置400包括:第一接收模块401、第一查询模块402和执行模块403。
第一接收模块401,用于接收多个第一分片报文,其中,所述多个第一分片报文均携带有第一类报文标识,所述第一类报文标识包括报文ID,且所述多个第一分片报文中的至少两个第一分片报文携带的报文ID相同;
第一查询模块402,用于在报文标识集合中查询所述多个第一分片报文携带的第一类报文标识;其中,当报文标识集合为非空集时,报文标识集合包括:端设备中OVS处理过的至少一个分片报文携带的第一类报文标识,且至少一个分片报文中任一分片报文所携带的第一类报文标识均具有对应的处理操作序列,任一分片报文所携带的第一类报文标识对应的处理操作序列包括:OVS对任一分片报文执行过的部分或全部处理操作;
执行模块403,用于当查询到所述第一分片报文携带的第一类报文标识时,对所述第一分片报文依次执行所述第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作。
可选地,第一类报文标识还包括:目的互联网协议地址IP和源IP。
可选地,上述第一查询模块402,用于:在映射表中查询所述第一分片报文携带的第一类报文标识,所述映射表用于记录:所述在报文标识集合中的第一类报文标识与流表的流表项的对应关系,所述流表用于记录:所述流表的流表项与所述任一分片报文所携带的第一类报文标识对应的处理操作序列的对应关系。
可选地,报文处理装置400还包括:第一确定模块404、第二查询模块405、第二确定模块406和第三确定模块407
第一确定模块404,用于在对所述第一分片报文依次执行所述第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作之前,根据所述映射表确定所述第一分片报文携带的第一类报文标识对应的第一流表项。
第二查询模块405,用于在所述流表中查询所述第一流表项;
第二确定模块406,用于当在所述流表中查询到所述第一流表项时,根据所述流表确定所述第一流表项对应的处理操作序列;
第三确定模块407,用于将所述第一流表项对应的处理操作序列,作为所述第一分片报文携带的第一类报文标识对应的处理操作序列。
可选地,报文处理装置400还包括:发送模块408、第二接收模块409和更新模块410。
发送模块408,用于当未查询到所述第一分片报文携带的第一类报文标识时,将所述第一分片报文发送至所述端设备中的OVS,以便于所述OVS对所述第一分片报文执行一个或多个处理操作,并在所述第一分片报文为所述第一分片报文所属的报文中的首个分片报文时,向所述网卡发送所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列,分片报文携带的报文ID为该分片报文所属报文的ID;
第二接收模块409,用于接收所述OVS发送的所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列;
更新模块410,用于在所述报文标识集合中增加所述第一分片报文携带的第一类报文标识。
本申请实施例提供一种报文处理装置,应用于端设备中的OVS,如图16所示,报文处理装置500包括:接收模块501、执行模块502、生成模块503和发送模块504。
接收模块501,用于接收端设备中的网卡发送的第一分片报文;
执行模块502,用于对所述第一分片报文执行一个或多个处理操作;
生成模块503,用于在第一分片报文为所述第一分片报文所属的报文中的首个分片报文时,生成第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列,携带有所述第一类报文标识的多个第一分片报文中,至少两个第一分片报文携带的报文ID相同,所述第一类报文标识包括报文ID,分片报文携带的报文ID为所述分片报文所属报文的ID;第一分片报文携带的第一类报文标识对应的处理操作序列包括:一个或多个处理操作中的部分或全部处理操作;
发送模块504,用于向网卡发送所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列。
本申请实施例提供一种报文处理装置,报文处理装置包括:客户机和虚拟主机;
虚拟主机用于确定端设备中的网卡接收到的多个分片报文的顺序;
虚拟主机用于生成指示信息,指示信息用于指示:多个分片报文的顺序;
客户机用于获取指示信息;
客户机用于按照指示信息对多个分片报文进行聚合,以得到初始报文。
可选地,报文处理装置还包括:存储器;多个分片报文存储在端设备的存储器中,虚拟主机还用于:根据存储器中存储的多个分片报文,确定多个分片报文的顺序;
在生成指示信息之后,虚拟主机用于将指示信息存储在存储器中,指示信息包括:多个分片报文的存储地址的描述符,且多个分片报文的存储地址的描述符按照多个分片报文的顺序排布。
可选地,虚拟主机还用于:根据存储器中存储的报头集合,确定多个分片报文的顺序,报头集合包括:属于初始报文的所有非首个分片报文的报头,分片报文携带的报文ID为所述分片报文所属报文的ID。
可选地,属于初始报文的首个分片报文的报头和负载存储在存储器中的第一存储区,属于初始报文的非首个分片报文的报头存储在第二存储区,非首个分片报文的负载存储在存储器的第一存储区。
可选地,虚拟主机还用于:
对报头集合哈希,以得到第一哈希值;
在哈希表中查询第一哈希值对应的第一地址队列链,其中,哈希表用于记录:哈希值和地址队列链的对应关系,地址队列链包括多个第三类报文标识对应的地址队列,且不同第三类报文标识对应的地址队列不同,任一报文中的每个分片报文均携带有第三类报文标识;
基于报头集合中每个报头携带的第三类报文标识,确定第一地址队列链中每个报头携带的第三类报文标识对应的第一地址队列;
根据多个分片报文的顺序,确定多个分片报文中每个分片报文的目标位次;
将每个分片报文在存储器中的存储地址写入第一地址队列中的第一地址位置,其中,第一地址队列具有依次排布的多个地址位置,第一地址位置为多个地址位置中目标位次的地址位置;
获取属于初始报文的首个分片报文的存储地址;
将首个分片报文的存储地址写入多个地址位置中的首个地址位置;
根据多个地址位置中的存储地址,生成指示信息。
可选地,多个分片报文和指示信息均存储在端设备的存储器中,客户机还用于:
从存储器中获取指示信息,指示信息包括:多个分片报文的存储地址的描述符,且多个分片报文的存储地址的描述符按照多个分片报文的顺序排布;
依次获取指示信息所指示的每个存储地址中存储的分片报文;
将获取到的分片报文按照分片报文的获取顺序依次排布。
需要说明的是:上述实施例提供的报文处理装置仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将端设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的报文处理装置与报文处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例提供一种网卡,该网卡包括处理组件、存储介质和通信接口,处理组件和存储介质均与通信接口连接,处理组件基于存储介质中的程序执行上述方法实施例中网卡执行的步骤。例如,图4所示的实施例中的步骤101至步骤105、步骤109以及图10所示的实施例中的步骤201。示例地,该处理组件可以为处理电路等具有处理功能的组件。
本申请实施例提供一种端设备,端设备包括:处理器、存储器和上述实施例提供的网卡;处理器用于基于存储器中的程序运行OVS,并通过OVS执行上述方法实施例中OVS执行的步骤。例如,图4所示的实施例中步骤106至步骤108。
本申请实施例提供一种端设备,端设备包括:处理器和存储器;
处理器用于基于存储器中的程序运行虚拟主机和客户机,并通过虚拟主机执行上述方法实施例中虚拟主机执行的步骤。例如,图10所示的实施例中的步骤203至步骤206。通过客户机执行上述方法实施例中客户机执行的步骤。例如,图10所示的实施例中的步骤207。
示例地,图17为本申请实施例提供的一种端设备结构示意图,该端设备可以为图1或图8中的路径判定设备、记录设备或管理设备。请参见图17,图17示出的设备可以包括处理器401、存储器402、通信接口403和总线404。该处理器401、存储器402、通信接口403通过总线404通信连接。其中,通信接口403为多个,用于在处理器401的控制下与其他设备通信,存储器402用于存放指令;处理器401能够通过总线404调用存储器402中存储的指令。
本申请实施例提供一种可读存储介质,存储介质内存储有程序;程序被处理组件执行时实现图4或图10所示的方法。示例地,该处理组件可以为处理电路或处理器等具有处理功能的组件。
本发明实施例还提供了一种程序产品。当该程序产品在网卡上运行时,使得网卡执行本发明实施例提供的报文处理方法中网卡执行的步骤。例如,图4所示的实施例中的步骤101至步骤105、步骤109以及图10所示的实施例中的步骤201。或者,当该程序产品在处理器上运行时,使得处理器执行本发明实施例提供的报文处理方法中客户机、OVS或虚拟主机的步骤。例如,图4所示的实施例中的步骤106至步骤108,或图10所示的实施例中的步骤203至步骤207。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本申请中,术语“第一”和“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。
本申请中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (28)
1.一种报文处理方法,其特征在于,应用于端设备中的网卡,所述方法包括:
接收多个第一分片报文,其中,所述多个第一分片报文均携带有第一类报文标识,所述第一类报文标识包括报文ID,且所述多个第一分片报文中的至少两个第一分片报文携带的报文ID相同;
在报文标识集合中查询所述多个第一分片报文携带的第一类报文标识;其中,当所述报文标识集合为非空集时,所述报文标识集合包括:所述端设备中开放虚拟交换机OVS处理过的至少一个分片报文携带的第一类报文标识,且所述至少一个分片报文中任一分片报文所携带的第一类报文标识均具有对应的处理操作序列,所述任一分片报文所携带的第一类报文标识对应的处理操作序列包括:OVS对所述任一分片报文执行过的部分或全部处理操作;
当查询到所述第一分片报文携带的第一类报文标识时,对所述第一分片报文依次执行所述第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作。
2.根据权利要求1所述的方法,其特征在于,所述第一类报文标识包括:目的互联网协议地址IP和源IP。
3.根据权利要求1或2所述的方法,其特征在于,所述在报文标识集合中查询所述第一分片报文携带的第一类报文标识,包括:
在映射表中查询所述第一分片报文携带的第一类报文标识;
所述映射表用于记录:所述在报文标识集合中的第一类报文标识与流表的流表项的对应关系,所述流表用于记录:所述流表的流表项与所述任一分片报文所携带的第一类报文标识对应的处理操作序列的对应关系。
4.根据权利要求3所述的方法,其特征在于,在对所述第一分片报文依次执行所述第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作之前,所述方法还包括:
根据所述映射表确定所述第一分片报文携带的第一类报文标识对应的第一流表项;
在所述流表中查询所述第一流表项;
当在所述流表中查询到所述第一流表项时,根据所述流表确定所述第一流表项对应的处理操作序列;
将所述第一流表项对应的处理操作序列,作为所述第一分片报文携带的第一类报文标识对应的处理操作序列。
5.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
当未查询到所述第一分片报文携带的第一类报文标识时,将所述第一分片报文发送至所述端设备中的OVS,以便于所述OVS对所述第一分片报文执行一个或多个处理操作,并在所述第一分片报文为所述第一分片报文所属的报文中的首个分片报文时,向所述网卡发送所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列,分片报文携带的报文ID为所述分片报文所属报文的ID;
接收所述OVS发送的所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列;
在所述报文标识集合中增加所述第一分片报文携带的第一类报文标识。
6.一种报文处理方法,其特征在于,应用于端设备中的开放虚拟交换机OVS,所述方法包括:
接收所述端设备中的网卡发送的第一分片报文;
对所述第一分片报文执行一个或多个处理操作;
在所述第一分片报文为所述第一分片报文所属的报文中的首个分片报文时,生成所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列,携带有所述第一类报文标识的多个第一分片报文中,至少两个第一分片报文携带的报文ID相同,所述第一类报文标识包括报文ID,分片报文携带的报文ID为所述分片报文所属报文的ID;所述第一分片报文携带的第一类报文标识对应的处理操作序列包括:所述一个或多个处理操作中的部分或全部处理操作;
向所述网卡发送所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列。
7.一种报文处理方法,其特征在于,用于端设备,所述端设备中包括:虚拟主机和客户机,所述方法包括:
所述虚拟主机确定所述端设备中的网卡接收到的多个分片报文的顺序;
生成指示信息,以便于所述通信设备中的客户机组件获取所述指示信息,并按照所述指示信息对所述多个分片报文进行聚合,以得到初始报文,其中,所述指示信息用于指示:所述多个分片报文的顺序。
8.根据权利要求7所述的方法,其特征在于,所述多个分片报文存储在所述通信设备的存储器中,所述确定所述通信设备中的网卡接收到的多个分片报文的顺序,包括:
根据所述存储器中存储的所述多个分片报文,确定所述多个分片报文的顺序;
所述方法还包括:
在生成所述指示信息之后,将所述指示信息存储在所述存储器中,所述指示信息包括:所述多个分片报文的存储地址的描述符,且所述多个分片报文的存储地址的描述符按照所述多个分片报文的顺序排布。
9.根据权利要求8所述的方法,其特征在于,所述虚拟主机根据所述存储器中存储的所述多个分片报文,确定所述多个分片报文的顺序,包括:
所述虚拟主机根据所述存储器中存储的报头集合,确定所述多个分片报文的顺序,所述报头集合包括:属于所述初始报文的所有非首个分片报文的报头,分片报文携带的报文ID为所述分片报文所属报文的ID。
10.根据权利要求9所述的方法,其特征在于,属于所述初始报文的首个分片报文的报头和负载存储在所述存储器中的第一存储区,属于所述初始报文的非首个分片报文的报头存储在第二存储区,所述非首个分片报文的负载存储在所述存储器的所述第一存储区。
11.根据权利要求9或10所述的方法,其特征在于,所述虚拟主机生成指示信息,包括:
所述虚拟主机对所述报头集合哈希,以得到第一哈希值;
所述虚拟主机在哈希表中查询所述第一哈希值对应的第一地址队列链,其中,所述哈希表用于记录:哈希值和地址队列链的对应关系,所述地址队列链包括多个第三类报文标识对应的地址队列,且不同第三类报文标识对应的地址队列不同,任一报文中的每个分片报文均携带有所述第三类报文标识;
所述虚拟主机基于所述报头集合中每个报头携带的第三类报文标识,确定所述第一地址队列链中所述每个报头携带的第三类报文标识对应的第一地址队列;
所述虚拟主机根据所述多个分片报文的顺序,确定所述多个分片报文中每个分片报文的目标位次;
所述虚拟主机将所述每个分片报文在所述存储器中的存储地址写入所述第一地址队列中的第一地址位置,其中,所述第一地址队列具有依次排布的多个地址位置,所述第一地址位置为所述多个地址位置中所述目标位次的地址位置;
所述虚拟主机获取属于所述初始报文的首个分片报文的存储地址;
所述虚拟主机将所述首个分片报文的存储地址写入所述多个地址位置中的首个地址位置;
所述虚拟主机根据所述多个地址位置中的存储地址,生成所述指示信息。
12.根据权利要求7至11任一所述的方法,其特征在于,所述多个分片报文和所述指示信息均存储在所述端设备的存储器中,所述客户机获取所述指示信息,包括:
所述客户机从所述存储器中获取所述指示信息,所述指示信息包括:所述多个分片报文的存储地址的描述符,且所述多个分片报文的存储地址的描述符按照所述多个分片报文的顺序排布;
所述客户机按照所述指示信息对所述多个分片报文进行聚合,包括:
所述客户机依次获取所述指示信息所指示的每个存储地址中存储的分片报文;
所述客户机将获取到的分片报文按照分片报文的获取顺序依次排布。
13.一种报文处理装置,其特征在于,应用于端设备中的网卡,所述装置包括:
第一接收模块,用于接收多个第一分片报文,其中,所述多个第一分片报文均携带有第一类报文标识,所述第一类报文标识包括报文ID,且所述多个第一分片报文中的至少两个第一分片报文携带的报文ID相同;
第一查询模块,用于在报文标识集合中查询所述多个第一分片报文携带的第一类报文标识;其中,当所述报文标识集合为非空集时,所述报文标识集合包括:所述端设备中开放虚拟交换机OVS处理过的至少一个分片报文携带的第一类报文标识,且所述至少一个分片报文中任一分片报文所携带的第一类报文标识均具有对应的处理操作序列,所述任一分片报文所携带的第一类报文标识对应的处理操作序列包括:OVS对所述任一分片报文执行过的部分或全部处理操作;
执行模块,用于当查询到所述第一分片报文携带的第一类报文标识时,对所述第一分片报文依次执行所述第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作。
14.根据权利要求13所述的装置,其特征在于,所述第一类报文标识包括:目的互联网协议地址IP和源IP。
15.根据权利要求13或14所述的装置,其特征在于,所述第一查询模块,用于:
在映射表中查询所述第一分片报文携带的第一类报文标识;
所述映射表用于记录:所述在报文标识集合中的第一类报文标识与流表的流表项的对应关系,所述流表用于记录:所述流表的流表项与所述任一分片报文所携带的第一类报文标识对应的处理操作序列的对应关系。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于在对所述第一分片报文依次执行所述第一分片报文携带的第一类报文标识对应的处理操作序列中的处理操作之前,根据所述映射表确定所述第一分片报文携带的第一类报文标识对应的第一流表项;
第二查询模块,用于在所述流表中查询所述第一流表项;
第二确定模块,用于当在所述流表中查询到所述第一流表项时,根据所述流表确定所述第一流表项对应的处理操作序列;
第三确定模块,用于将所述第一流表项对应的处理操作序列,作为所述第一分片报文携带的第一类报文标识对应的处理操作序列。
17.根据权利要求13至16任一所述的装置,其特征在于,所述装置还包括:
发送模块,用于当未查询到所述第一分片报文携带的第一类报文标识时,将所述第一分片报文发送至所述端设备中的OVS,以便于所述OVS对所述第一分片报文执行一个或多个处理操作,并在所述第一分片报文为所述第一分片报文所属的报文中的首个分片报文时,向所述网卡发送所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列,分片报文携带的报文ID为所述分片报文所属报文的ID;
第二接收模块,用于接收所述OVS发送的所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列;
更新模块,用于在所述报文标识集合中增加所述第一分片报文携带的第一类报文标识。
18.一种报文处理装置,其特征在于,应用于端设备中的开放虚拟交换机OVS,所述装置包括:
接收模块,用于接收所述端设备中的网卡发送的第一分片报文;
执行模块,用于对所述第一分片报文执行一个或多个处理操作;
生成模块,用于在所述第一分片报文为所述第一分片报文所属的报文中的首个分片报文时,生成所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列,任一报文中的每个分片报文均携带有所述第一类报文标识,所述第一分片报文携带的第一类报文标识对应的处理操作序列包括:所述一个或多个处理操作中的部分或全部处理操作,分片报文携带的报文ID为所述分片报文所属报文的ID;
发送模块,用于向所述网卡发送所述第一分片报文携带的第一类报文标识,以及所述第一类报文标识对应的处理操作序列。
19.一种报文处理装置,其特征在于,所述装置包括:客户机和虚拟主机;
所述虚拟主机用于确定所述端设备中的网卡接收到的多个分片报文的顺序;
所述虚拟主机用于生成指示信息,所述指示信息用于指示:所述多个分片报文的顺序;
所述客户机用于获取所述指示信息;
所述客户机用于按照所述指示信息对所述多个分片报文进行聚合,以得到初始报文。
20.根据权利要求19所述的装置,其特征在于,所述装置还包括:存储器;所述多个分片报文存储在所述端设备的存储器中,所述虚拟主机还用于:
根据所述存储器中存储的所述多个分片报文,确定所述多个分片报文的顺序;
在生成所述指示信息之后,所述虚拟主机用于将所述指示信息存储在所述存储器中,所述指示信息包括:所述多个分片报文的存储地址的描述符,且所述多个分片报文的存储地址的描述符按照所述多个分片报文的顺序排布。
21.根据权利要求20所述的装置,其特征在于,所述虚拟主机还用于:
根据所述存储器中存储的报头集合,确定所述多个分片报文的顺序,所述报头集合包括:属于所述初始报文的所有非首个分片报文的报头,分片报文携带的报文ID为所述分片报文所属报文的ID。
22.根据权利要求21所述的装置,其特征在于,属于所述初始报文的首个分片报文的报头和负载存储在所述存储器中的第一存储区,属于所述初始报文的非首个分片报文的报头存储在第二存储区,所述非首个分片报文的负载存储在所述存储器的所述第一存储区。
23.根据权利要求21或22所述的装置,其特征在于,所述虚拟主机还用于:
对所述报头集合哈希,以得到第一哈希值;
在哈希表中查询所述第一哈希值对应的第一地址队列链,其中,所述哈希表用于记录:哈希值和地址队列链的对应关系,所述地址队列链包括多个第三类报文标识对应的地址队列,且不同第三类报文标识对应的地址队列不同,任一报文中的每个分片报文均携带有所述第三类报文标识;
基于所述报头集合中每个报头携带的第三类报文标识,确定所述第一地址队列链中所述每个报头携带的第三类报文标识对应的第一地址队列;
根据所述多个分片报文的顺序,确定所述多个分片报文中每个分片报文的目标位次;
将所述每个分片报文在所述存储器中的存储地址写入所述第一地址队列中的第一地址位置,其中,所述第一地址队列具有依次排布的多个地址位置,所述第一地址位置为所述多个地址位置中所述目标位次的地址位置;
获取属于所述初始报文的首个分片报文的存储地址;
将所述首个分片报文的存储地址写入所述多个地址位置中的首个地址位置;
根据所述多个地址位置中的存储地址,生成所述指示信息。
24.根据权利要求19至23任一所述的装置,其特征在于,所述多个分片报文和所述指示信息均存储在所述端设备的存储器中,所述客户机还用于:
从所述存储器中获取所述指示信息,所述指示信息包括:所述多个分片报文的存储地址的描述符,且所述多个分片报文的存储地址的描述符按照所述多个分片报文的顺序排布;
依次获取所述指示信息所指示的每个存储地址中存储的分片报文;
将获取到的分片报文按照分片报文的获取顺序依次排布。
25.一种网卡,其特征在于,所述网卡包括处理组件、存储介质和通信接口,所述处理组件和所述存储介质均与所述通信接口连接,所述处理组件基于所述存储介质中的程序执行如权利要求1至5任一所述的报文处理方法。
26.一种端设备,其特征在于,所述端设备包括:处理器、存储器和权利要求25所述的网卡;
所述处理器用于基于所述存储器中的程序运行开放虚拟交换机OVS,并通过OVS执行如权利要求6所述的报文处理方法。
27.一种端设备,其特征在于,所述端设备包括:处理器和存储器;
所述处理器用于基于所述存储器中的程序运行虚拟主机和客户机,并通过所述虚拟主机执行如权利要求7至12任一所述的报文处理方法中所述客户机执行的方法,通过所述客户机执行如权利要求7至12任一所述的报文处理方法中所述客户机的方法。
28.一种可读存储介质,其特征在于,所述存储介质内存储有程序;所述程序被处理组件执行时实现权利要求1至12任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910704773.0A CN112311692A (zh) | 2019-07-31 | 2019-07-31 | 报文处理方法及装置、端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910704773.0A CN112311692A (zh) | 2019-07-31 | 2019-07-31 | 报文处理方法及装置、端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112311692A true CN112311692A (zh) | 2021-02-02 |
Family
ID=74486207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910704773.0A Pending CN112311692A (zh) | 2019-07-31 | 2019-07-31 | 报文处理方法及装置、端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112311692A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113542131A (zh) * | 2021-05-25 | 2021-10-22 | 新华三信息安全技术有限公司 | 一种报文转发方法及装置 |
CN114253479A (zh) * | 2021-12-20 | 2022-03-29 | 国汽(北京)智能网联汽车研究院有限公司 | 一种can总线入侵检测方法及系统 |
CN114553938A (zh) * | 2022-02-25 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种通信报文的处理方法、装置、电子设备及存储介质 |
CN116095197A (zh) * | 2022-07-04 | 2023-05-09 | 荣耀终端有限公司 | 数据传输方法及相关装置 |
CN116886652A (zh) * | 2023-09-06 | 2023-10-13 | 深圳华云信息系统科技股份有限公司 | Ip报文分片的重组方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662461A (zh) * | 2008-08-27 | 2010-03-03 | 华为技术有限公司 | 一种多链路协议分片数据的重组方法、装置及系统 |
EP2273367A2 (en) * | 2009-06-22 | 2011-01-12 | Citrix Systems, Inc. | Systems and methods for identifying a processor from a plurality of processors to provide symmetrical request and response processing |
CN102546397A (zh) * | 2011-12-16 | 2012-07-04 | 福建星网锐捷网络有限公司 | 上链聚合端口的流量均衡方法、装置及设备 |
CN102811158A (zh) * | 2011-06-02 | 2012-12-05 | 中兴通讯股份有限公司 | 一种数据定位、重组方法及相应装置 |
US20150143368A1 (en) * | 2013-11-21 | 2015-05-21 | Centurylink Intellectual Property Llc | Physical to Virtual Network Transport Function Abstraction |
CN105610744A (zh) * | 2016-01-28 | 2016-05-25 | 东南大学 | 一种ip报文分片与重组方法及装置 |
CN109962832A (zh) * | 2017-12-26 | 2019-07-02 | 华为技术有限公司 | 报文处理的方法和装置 |
-
2019
- 2019-07-31 CN CN201910704773.0A patent/CN112311692A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662461A (zh) * | 2008-08-27 | 2010-03-03 | 华为技术有限公司 | 一种多链路协议分片数据的重组方法、装置及系统 |
EP2273367A2 (en) * | 2009-06-22 | 2011-01-12 | Citrix Systems, Inc. | Systems and methods for identifying a processor from a plurality of processors to provide symmetrical request and response processing |
CN102811158A (zh) * | 2011-06-02 | 2012-12-05 | 中兴通讯股份有限公司 | 一种数据定位、重组方法及相应装置 |
CN102546397A (zh) * | 2011-12-16 | 2012-07-04 | 福建星网锐捷网络有限公司 | 上链聚合端口的流量均衡方法、装置及设备 |
US20150143368A1 (en) * | 2013-11-21 | 2015-05-21 | Centurylink Intellectual Property Llc | Physical to Virtual Network Transport Function Abstraction |
CN105610744A (zh) * | 2016-01-28 | 2016-05-25 | 东南大学 | 一种ip报文分片与重组方法及装置 |
CN109962832A (zh) * | 2017-12-26 | 2019-07-02 | 华为技术有限公司 | 报文处理的方法和装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113542131A (zh) * | 2021-05-25 | 2021-10-22 | 新华三信息安全技术有限公司 | 一种报文转发方法及装置 |
CN113542131B (zh) * | 2021-05-25 | 2023-08-22 | 新华三信息安全技术有限公司 | 一种报文转发方法及装置 |
CN114253479A (zh) * | 2021-12-20 | 2022-03-29 | 国汽(北京)智能网联汽车研究院有限公司 | 一种can总线入侵检测方法及系统 |
CN114253479B (zh) * | 2021-12-20 | 2023-06-20 | 国汽(北京)智能网联汽车研究院有限公司 | 一种can总线入侵检测方法及系统 |
CN114553938A (zh) * | 2022-02-25 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种通信报文的处理方法、装置、电子设备及存储介质 |
CN114553938B (zh) * | 2022-02-25 | 2023-08-15 | 苏州浪潮智能科技有限公司 | 一种通信报文的处理方法、装置、电子设备及存储介质 |
CN116095197A (zh) * | 2022-07-04 | 2023-05-09 | 荣耀终端有限公司 | 数据传输方法及相关装置 |
CN116095197B (zh) * | 2022-07-04 | 2023-12-12 | 荣耀终端有限公司 | 数据传输方法及相关装置 |
CN116886652A (zh) * | 2023-09-06 | 2023-10-13 | 深圳华云信息系统科技股份有限公司 | Ip报文分片的重组方法、装置、电子设备及存储介质 |
CN116886652B (zh) * | 2023-09-06 | 2023-11-07 | 深圳华云信息系统科技股份有限公司 | Ip报文分片的重组方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112311692A (zh) | 报文处理方法及装置、端设备 | |
CN102104541B (zh) | 报头处理引擎 | |
CN113326228B (zh) | 基于远程直接数据存储的报文转发方法、装置及设备 | |
US7742478B2 (en) | Reply communication apparatus and ARP reply communication apparatus | |
US11496393B2 (en) | Method and apparatus for forwarding packet based on integrated flow table | |
US9154586B2 (en) | Method for parsing network packets having future defined tags | |
US11616738B2 (en) | Packet processing method and related device | |
US11431624B2 (en) | Communication method and network interface card | |
JP2002538724A (ja) | マルチプロセッサコンピュータでネットワークトラフィック処理を分散する方法および装置 | |
US11936562B2 (en) | Virtual machine packet processing offload | |
JP2002538731A (ja) | 高性能ネットワークインターフェースにおけるダイナミックな構文解析 | |
JP2002538730A (ja) | 高性能ネットワークインターフェースにおけるネットワークフローを管理する方法および装置 | |
CN116866283A (zh) | 一种流表处理方法及相关设备 | |
CN113746692A (zh) | 网络流量统计的方法、电子设备及存储介质 | |
CN112866206A (zh) | 一种单向数据传输方法及装置 | |
JP2002538721A (ja) | 高性能ネットワークインターフェースにおけるネットワークトラフィックを分類するための方法および装置 | |
CN110691139B (zh) | 一种数据传输方法、装置、设备及存储介质 | |
CN111740910A (zh) | 一种报文处理方法、装置、网络传输设备及报文处理系统 | |
CN109672594B (zh) | IPoE报文处理方法、装置及宽带远程接入服务器 | |
KR102420610B1 (ko) | 다층 캐싱 전략을 이용하는 패킷 데이터 처리 방법 및 이를 사용하는 전자 장치 | |
CN118140460A (zh) | 包括在封包交换设备内对封包的数据路径处理的网络节点到节点连通性验证 | |
CN117376233A (zh) | 数据处理方法、装置及系统 | |
JP2024506089A (ja) | パケット転送方法、装置、およびシステム | |
CN117714398B (zh) | 一种数据传输系统、方法、电子设备及存储介质 | |
EP4027594B1 (en) | Information processing device, information processing method, and information processing program |
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 |