CN113676389B - 报文发送方法及装置 - Google Patents
报文发送方法及装置 Download PDFInfo
- Publication number
- CN113676389B CN113676389B CN202010415229.7A CN202010415229A CN113676389B CN 113676389 B CN113676389 B CN 113676389B CN 202010415229 A CN202010415229 A CN 202010415229A CN 113676389 B CN113676389 B CN 113676389B
- Authority
- CN
- China
- Prior art keywords
- message
- network device
- packet
- value
- tunnel
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000012545 processing Methods 0.000 claims abstract description 36
- 230000005540 biological transmission Effects 0.000 claims abstract description 27
- 239000012634 fragment Substances 0.000 claims description 62
- 238000004422 calculation algorithm Methods 0.000 claims description 24
- 230000015654 memory Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 7
- 238000013467 fragmentation Methods 0.000 abstract description 29
- 238000006062 fragmentation reaction Methods 0.000 abstract description 29
- 238000013461 design Methods 0.000 description 29
- 241000465502 Tobacco latent virus Species 0.000 description 20
- 238000010586 diagram Methods 0.000 description 14
- 238000005538 encapsulation Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000005641 tunneling Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 241000645803 Trailing lespedeza virus 1 Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种报文发送方法及装置,第一隧道的隧道入口设备,即第一网络设备向报文来源的第三网络设备发送匹配规则和该匹配规则对应的最大报文值,使得第三网络设备发送需要经过第一隧道的报文时,当待传输报文的整包数据量大于最大报文值时,则对待传输报文进行分片得到第一报文后再发送给第一网络设备,如此一来,第一网络设备对第一报文封装后得到的第二报文的整包数据量不会超过第一隧道对应的MTU值,避免了报文的二次分片,降低报文处理复杂度的同时提高网络传输效率的目的。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种报文发送方法及装置。
背景技术
隧道技术是一种使用互联网络的基础设施在网络之间传递数据的方式,使用隧道传递的数据是不同协议的数据帧或数据包。隧道技术通过使用一种网络协议,对其他网络协议的数据帧或数据包在外层封装隧道包头,并通过隧道发送封装后的报文。
通常情况下,网络设备发送报文时,会受到用于发送报文的物理接口的最大传输单元(maximum transmission unit,MTU)的制约。也就是说,网络设备通过物理接口发送报文时,报文的大小必须小于或等于该物理接口对应的MTU的值。当报文大小大于该物理接口的MTU值时,网络设备需要对待发送报文进行分片处理得到多个分片报文,再发送多个分片报文。其中,分片报文指经过分片处理之后整包长度不超过MTU大小的报文。
现有网络中存在多种隧道组网,报文可能会经过多个网络设备。一个网络设备通过一个物理接口接收到上述的分片报文后,可能需要对分片报文继续分片才能通过另一物理端口发送出去。显然,上述报文传输方法会存在大量报文被二次或多次分片的现象,这种现象导致报文处理复杂度高且影响网络传输效率。
发明内容
本申请实施例提供一种报文发送方法及装置,通过降低报文分片次数来降低报文处理复杂度的同时提高网络传输效率。
第一方面,本申请实施例提供一种报文发送方法,该方法能够应用于第一网络设备,即隧道入口设备,也能够应用于第一网络设备中的芯片。下面一应用于第一网络设备对该方法进行描述,该方法包括:第一隧道的隧道入口设备,即第一网络设备向报文来源的第三网络设备发送匹配规则和该匹配规则对应的最大报文值,使得第三网络设备发送需要经过第一隧道的报文时,当待传输报文的整包数据量大于最大报文值时,则对待传输报文进行分片得到第一报文后再发送给第一网络设备。采用该种方案,由于第一网络设备向第三网络设备告知匹配规则和该匹配规则对应的最大报文值,使得第三网络设备发送给第一网络设备的报文的整包数据量小于最大报文值,进而使得第一网络设备对来自第三网络设备的报文封装后得到的隧道报文的整包数据量小于隧道对应的MTU值,避免了隧道入口设备对报文的二次分片,在降低报文处理复杂度的同时提高网络传输效率的目的。
一种可行的设计中,第一网络设备确定匹配规则对应的最大报文值时,先确定匹配规则对应的报文开销以及第一隧道对应的物理接口的MTU值,然后根据报文开销和MTU,确定匹配规则对应的最大报文值,其中,报文开销包括隧道报文的报文头。采用该种方案,实现第一网络设备根据报文开销和第一隧道对应的MTU确定出最大报文值的目的。
一种可行的设计中,第一网络设备确定匹配规则对应的报文开销时,先确定第一隧道的协议类型和加密算法类型中的至少一个。然后,第一网络设备根据协议类型和加密算法中的至少一个,确定匹配规则对应的报文开销。采用该种方案,实现第一网络设备根据隧道的协议类型、加密算法等确定出报文开销的目的。
一种可行的设计中,第一网络设备通过第一TCP报文向第三网络设备发送匹配规则和最大报文值。采用该种方案,第一网络设备能够通过第一TCP报文中扩展的TLV灵活的向第三网络设备发送匹配规则等。
一种可行的设计中,第一网络设备向第三网络设备发送第一TCP报文之后,还向第三网络设备发送第二TCP报文,第二TCP报文携带更新后的最大报文值和更新后的匹配规则中的至少一个。采用该种方案,实现匹配规则和最大报文值的更新。
一种可行的设计中,匹配规则用于指示下述信息中的至少一个:第一隧道的目的地址、第一隧道的协议类型或第一网络设备上端口的端口号。
一种可行的设计中,第一网络设备向第三网络设备发送匹配规则和最大报文值之后,还接收来自第三网络设备的第一报文,第一报文的整包数据量小于或等于最大报文值,对第一报文进行封装得到第二报文,向第二网络设备发送第二报文。采用该种方案,由于第三网络设备发送的第一报文的整包数据量受到最大报文值的限制,第一网络设备对该第一报文封装后得到的第二报文的整包数据量小于第一隧道对应的MTU值,避免了二次分片,提高报文传输成功率并降低报文处理难度。
第二方面,本申请实施例提供一种报文发送方法,该方法能够应用于第三网络设备,即源网络设备、也能够应用于第三网络设备中的芯片,下面以应用于第三网络设备为例对该方法进行描述,该方法包括:报文来源的网络设备,即第三网络设备接收来自第一隧道的隧道入口设备的匹配规则和该匹配规则对应的最大报文值。后续发送需要经过第一隧道的报文时,若待传输报文的整包数据量大于最大报文值,则第三网络设备对待传输报文进行分片得到至少两个分片报文后再向第一网络设备发送分片得到的分片报文。其中,至少两个分片报文中每个分片报文的整包数据量小于或等于最大报文值,待传输报文是满足匹配规则的报文且整包数据量大于最大报文值的报文。采用该种方案,由于第三网络设备发送给第一网络设备的报文的整包数据量小于最大报文值,使得第一网络设备对来自第三网络设备的报文封装后得到的隧道报文的整包数据量小于隧道对应的MTU值,避免了隧道入口设备对报文的二次分片,降低报文处理复杂度的同时提高网络传输效率的目的。
一种可行的设计中,第三网络设备通过第一TCP报文接收来自第一网络设备的匹配规则和最大报文值。采用该种方案,第三网络设备能够通过第一TCP报文中扩展的TLV 灵活的确定出匹配规则、最大报文值等。
一种可行的设计中,第三网络设备接收来自第一网络设备的第一TCP报文之后,还接收来自第一网络设备的第二TCP报文,该第二TCP报文携带更新后的最大报文值和更新后的匹配规则中的至少一个。采用该种方案,实现匹配规则和最大报文值的更新。
一种可行的设计中,匹配规则用于指示下述信息中的至少一个:第一隧道的目的地址、第一隧道的协议类型或第一网络设备上端口的端口号。
第三方面,本申请实施例提供一种报文发送装置,包括:
处理单元,用于确定匹配规则以及所述匹配规则对应的最大报文值,所述匹配规则对应第一隧道,所述第一隧道是第一网络设备与第二网络设备之间至少两条隧道中的一条隧道,所述最大报文值用于指示所述第一隧道传输的隧道报文允许封装的负载数据量的最大值,所述隧道报文整包数据量小于或等于所述第一网络设备上与所述第一隧道对应的物理接口的最大传输单元MTU值;
收发单元,用于向第三网络设备发送所述匹配规则和所述最大报文值。
一种可行的设计中,所述处理单元在确定所述匹配规则对应的最大报文值时,用于确定所述匹配规则对应的报文开销以及所述第一隧道对应的物理接口的MTU,根据所述报文开销和所述MTU,确定所述匹配规则对应的最大报文值,其中,所述报文开销包括所述隧道报文的报文头。
一种可行的设计中,所述处理单元在确定所述匹配规则对应的报文开销时,用于确定所述第一隧道的协议类型和加密算法类型中的至少一个,根据所述协议类型和所述加密算法中的至少一个,确定所述匹配规则对应的报文开销。
一种可行的设计中,所述收发单元,用于向所述第三网络设备发送第一传输控制协议 TCP报文,所述第一TCP报文携带所述匹配规则和所述最大报文值。
一种可行的设计中,所述收发单元,在向所述第三网络设备发送第一TCP报文之后,还用于向所述第三网络设备发送第二TCP报文,所述第二TCP报文携带更新后的最大报文值和更新后的匹配规则中的至少一个。
一种可行的设计中,所述匹配规则用于指示下述信息中的至少一个:所述第一隧道的目的地址、所述第一隧道的协议类型或所述第一网络设备上端口的端口号。
一种可行的设计中,所述收发单元,在向第三网络设备发送所述匹配规则和所述最大报文值之后,还用于接收来自所述第三网络设备的第一报文,所述第一报文的整包数据量小于或等于所述最大报文值;
所述处理单元,还用于对所述第一报文进行封装得到所述第二报文,所述第一报文是所述第二报文的隧道负载;
所述收发单元,还用于向所述第二网络设备发送所述第二报文。
第四方面,本申请实施例提供一种报文发送装置,包括:
接收单元,用于接收来自第一网络设备的匹配规则和最大报文值,所述匹配规则对应第一隧道,所述第一隧道是所述第一网络设备与第二网络设备之间至少两条隧道中的一条隧道,所述最大报文值用于指示所述第一隧道传输的隧道报文允许封装的负载数据量的最大值。
处理单元,用于对待传输报文分片,以得到至少两个分片报文,所述至少两个分片报文中每个分片报文的整包数据量小于或等于所述最大报文值,所述待传输报文是满足所述匹配规则的报文,所述待传输报文的整包数据量大于所述最大报文值。
发送单元,用于向所述第一网络设备发送所述至少两个分片报文。
一种可行的设计中,所述接收单元,用于接收来自所述第一网络设备的第一传输控制协议TCP报文,所述第一TCP报文携带所述匹配规则和所述最大报文值。
一种可行的设计中,所述接收单元,在接收来自所述第一网络设备的第一TCP报文之后,还用于接收来自所述第一网络设备的第二TCP报文,所述第二TCP报文携带更新后的最大报文值和更新后的匹配规则中的至少一个。
一种可行的设计中,所述匹配规则用于指示下述信息中的至少一个:所述第一隧道的目的地址、所述第一隧道的协议类型或所述第一网络设备上端口的端口号。
第五方面,本申请实施例提供一种报文发送装置,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时使得报文发送装置实现如上第一方面或第一个方面的各种可能的实现方式中的方法。
第六方面,本申请实施例提供一种报文发送装置,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时使得报文发送装置实现如上第二方面或第二个方面的各种可能的实现方式中的方法。
第七方面,本申请实施例提供一种芯片,包括:逻辑电路和输入接口,其中,所述输入接口用于获取待处理的数据,所述逻辑电路用于对待处理的数据执行如第一方面任一项所述的方法得到处理后的数据。
一种可行的设计中,该芯片还包括:输出接口,该输出接口用于输出所述处理后的数据。
第八方面,本申请实施例提供一种芯片,包括:逻辑电路和输入接口,其中,所述输入接口用于获取待处理的数据,所述逻辑电路用于对待处理的数据执行如第二方面任一项所述的方法得到处理后的数据。
一种可行的设计中,该芯片还包括:输出接口,该输出接口用于输出所述处理后的数据。
第九方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序,所述程序在被处理器执行时用于执行第一方面任一项所述的方法。
第十方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序,所述程序在被处理器执行时用于执行第二方面任一项所述的方法。
第十一方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在报文发送装置上运行时,使得所述报文发送装置执行第一方面任一项所述的方法。
第十二方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在报文发送装置上运行时,使得所述报文发送装置执行第二方面任一项所述的方法。
本申请实施例提供的报文发送方法及装置,第一隧道的隧道入口设备,即第一网络设备向报文来源的第三网络设备发送匹配规则和该匹配规则对应的最大报文值,使得第三网络设备发送需要经过第一隧道的报文时,当待传输报文的整包数据量大于最大报文值时,则对待传输报文进行分片得到第一报文后再发送给第一网络设备,如此一来,第一网络设备对第一报文封装后得到的第二报文的整包数据量不会超过第一隧道对应的MTU值,避免了报文的二次分片,降低报文处理复杂度的同时提高网络传输效率的目的。
附图说明
图1是通过二次分片转发报文的网络架构示意图;
图2是本申请实施例提供的报文发送方法的网络架构示意图;
图3是本申请实施例提供的报文发送方法的流程图;
图4是本申请实施例提供的报文发送方法一种网络架构示意图;
图5是本申请实施例提供的报文发送方法中类型长度值的结构示意图;
图6为本申请实施例提供的一种报文发送装置的结构示意图;
图7为本申请实施例提供的另一种报文发送装置的结构示意图;
图8为本申请实施例提供的又一种报文发送装置的结构示意图。
具体实施方式
利用隧道发送报文的技术中,隧道入口设备和隧道出口设备之间建立隧道,隧道入口设备通过隧道对应的物理接口将报文发送给隧道出口设备。当待发送报文的整包数据量大于隧道入口设备的物理接口对应的MTU值时,隧道入口设备需要对该报文进行分片处理,得到至少两个新的报文并发送给隧道出口设备。其中,新的报文即为分片报文,分片报文的整包数据量均小于隧道入口设备的物理接口的MTU值。
由于现有网络中存在多种隧道组网,而且报文可能会经过多个网络设备。假设第一网络设备为隧道入口设备,第二网络设备为隧道出口设备,第一网络设备和第二网络设备之间建立隧道。第一网络设备接收到来自第三网络设备的报文(该报文可能是第三网络设备已经进行过分片后得到的分片报文)后,很有可能需要通过隧道向第二网络设备发送该分片报文。此时,第一网络设备对分片报文进行封装,得到新的报文,并通过隧道将该新的报文发送给第二网络设备。第一网络设备在封装过程中由于需要对分片报文添加新的报文头,会使得新的报文的整包数据量大于分片报文的大小,该种现象叫作撑大报文。若新的报文的数据量大于隧道的物理接口的MTU值,则第一网络设备需要对该新的报文进行二次分片。
图1是通过二次分片转发报文的网络架构示意图。该网络架构包括交换机(switch, SW)-1、防火墙(fire work,FW)-2、FW-3和SW-4。其中,FW-2和FW-3之间建立隧道。当SW-1向FW-2发送一个1600字节的报文时,先对该1600字节的报文进行分片处理,得到1500字节的分片报文和100字节的分片报文,记为1500+100。之后,SW-A向 FW-B发送该1500字节的分片报文和100字节的分片报文。其中,1600字节的报文称之为待发送报文。
FW-2分别接收到1500字节的分片报文和100字节的分片报文后,需要通过隧道向FW-3发送该分片报文时发现:隧道的物理接口对应的MTU为1500字节。显然,FW-2 对1500字节的分片报文进行封装后得到的新报文的整包数据量大于MTU值。此时,FW-2 对1500字节的报文进行二次分片。例如,FW-2先将1500字节的分片报文分成1400字节的报文和100字节的报文,然后,FW-2封装1400字节的报文,得到1450字节的新报文, 1450字节中的50字节为封装带来的报文开销。同理FW-2封装100字节的报文得到150 字节的新报文。通过二次分片,SW-1发出的1600字节的报文被分成三份,分别是一个 1400字节的报文和两个100字节的报文,记为1400+100+100。最后,FW-2向FW-3发送封装后的报文,即一个1450字节的新报文和两个150字节的新报文。FW-3接收到该些新报文后,对基于1500字节的报文得到的1450字节的报文和150字节的报文进行解封装,得到1400字节的报文和100字节的报文,并对另一个150字节的报文进行解封装,得到 100字节的分片报文。之后,FW-3将解封装得到的1400字节的报文和两个100字节的报文发送给SW-4,由SW-4对该三个分片报文进行重组,得到1600字节的原始报文。
另外一种方式中,FW-2分别接收到100字节的分片报文和1500字节的分片报文后,先对100字节的报文进行封装得到150字节的新报文,对1500字节的分片报文进行封装后得到1600字节的报文,将该1600字节的报文分片为1450字节的新报文和150字节的新报文。其中,1450字节的报文包含SW-1发出的1500字节中的1400字节,150字节的报文包含SW-1发出的1500字节报文中剩余的100字节。也就是说,SW-1发送的1600 字节的报文被分成三份,分别是一个1400字节的报文和两个100字节的报文,记为 1400+100+100。FW-2向FW-3发送封装后的报文,即一个1450字节的新报文和两个150 字节的新报文。FW-3接收到新报文后,先解封装并重组1450字节的新报文和一个150字节的新报文,得到1500字节的分片报文;FW-3还解封装另外一个150字节的报文,得到 100字节的分片报文。之后,FW-3向SW-4发送该1500字节的分片报文和100字节的分片报文,SW-4重组1500字节的分片报文和100字节的分片报文。该种分片方式中,FW-2 先封装再分片。
上述报文发送过程中,报文经过FW-2时因封装新的报文头从而撑大报文,导致FW-2 对分片报文进行二次分片,容易产生较多碎片报文,进而导致报文处理复杂度高且影响网络传输效率。
为避免二次分片,常见的方式是采用路径最大传输单元(path maximumtransmission unit,PMTU)方案。PMTU方案中,SW-1通过发送因特网控制消息协议(internet control message protocol,ICMP)探测报文,以探测网络中的最小MTU值。
然而,当隧道的物理接口对应的MTU发生变化、FW-2的加密算法等发生改变时,FW-2的物理接口的MTU都有可能发生变化,而PMTU方案无法动态实时更新隧道变化情况。而且,并不是所有的报文都需要通过隧道发送,当待发送报文的整包数据量超过通过ICMP报文探测出的MTU值时,很有可能是待发送的报文中仅有部分报文需要通过隧道发送。此时,若根据ICMP报文探测出的MTU值控制待发送报文的发送,则无法有针对性的控制进入隧道的报文的大小。另外,ICMP报文本身很有可能被网络中的某些网络设备屏蔽,导致SW-1无法获取到网络中最小的MTU。
有鉴于此,本申请实施例提供一种报文发送方法及装置,通过降低报文分片次数来降低报文处理复杂度的同时提高网络传输效率。
图2是本申请实施例提供的报文发送方法的网络架构示意图。请参照图2,该网络架构包括第一网络设备、第二网络设备、第三网络设备和第四网络设备。第一网络设备和第二网络设备之间建立至少两条隧道,该至少两条隧道包括第一隧道和第二隧道,如图中粗黑线条所示。第一网络设备和第三网络设备连接,第二网络设备和第四网络设备连接。其中,连接包括直接连接和间接连接,直接连接的两个网络设备之间不存在其他网络设备,而两个网络设备间接连接时,该两个网络设备之间存在其他网络设备。例如,第一网络设备和第三网络设备直接连接时,该两个网络设备直接建立无线连接或有线连接,且该两个网络设备直接不存在其他网络设备;第一网络设备和第三网络设备间接连接时,该两个网络设备之间存在其他网络设备(图中未示出)。同理,第一网络设备和第二网络设备之间的隧道上存在或不存在其他网络设备(图中未示出)。
图2中,第一网络设备为隧道入口设备,第二网络设备为隧道出口设备,第三网络设备为源网络设备,第四网络设备为目的网络设备,源网络设备和目的网络设备之间存在多个网络设备,比如第一网络设备和第二网络设备。源网络设备是向目的网络设备发送报文的网络设备,目的网络设备是最终接收报文的网络设备。第一网络设备和第二网络设备之间建立至少两条隧道。第三网络设备发送的报文能够通过一般的路由方式到达第四网络设备。或者,第三网络设备发送的报文对安全性的要求比较高,需要加密时,该报文到达第一网络设备后,第一网络设备对该报文进行加密,将加密后的报文经由隧道发送给第二网络设备,再由第二网络设备通过路由方式发送给第四网络设备。
图2中,第三网络设备和第四网络设备之间存在至少两种网络,例如,第三网络设备和第一网络设备之间是互联网协议第6版本(internet protocol version 6,IPV6)网络,第一网络设备和第二网络设备之间为互联网协议第4版本(internet protocolversion 4,IPV 4)网络,第二网络设备和第四网络设备之间为IPV6网络。另外,若仅仅是出于安全性考虑,要求第一网络设备对来自第三网络设备的报文通过隧道发送时,第三网络设备和第四网络设备之间存在一种网络或多种网络。
第一网络设备、第二网络设备、第三网络设备和第四网络设备例如是防火墙(firework, FW)设备、交换(switch,SW)机、服务器、基站、中继基站、个人电脑(personalcomputer, PC)等。可选地,第三网络设备和第四网络设备是网络接入设备,如接入节点(access node, AN)或者网关GPRS支持节点(Gateway GPRS Support Node,GGSN)等;而第一网络设备和第二网络设备是核心网或汇聚层转发设备,如网关等等。当第三网络设备的报文经由第一网络设备和第二网络设备之间的隧道发送给第四网络设备时,为了避免报文经过隧道时发生二次分片,源网络设备,即第三网络设备提前动态调整报文的整包数据量并发送给第一网络设备,使得第一网络设备通过隧道向第二网络设备发送报文时,无需对报文进行二次分片,从而减少网络中报文的分片次数,实现降低报文处理复杂度的同时提高网络传输效率的目的。
图3是本申请实施例提供的报文发送方法的流程图。本实施例是从第一网络设备和第二网络设备交互的角度,对本申请实施例所述的报文发送方法进行详细说明。本实施例所示的流程包括步骤101至步骤105。
101、第一网络设备确定匹配规则。
其中,所述匹配规则对应第一隧道,所述第一隧道是所述第一网络设备与第二网络设备之间至少两条隧道中的一条隧道。
本申请实施例中,第一网络设备和第二网络设备之间建立多个隧道,该些隧道包括通用路由封装协议(generic routing encapsulation,GRE)、互联网协议第6版本(internet protocol version 6,IPV6)隧道、互联网协议第4版本(internet protocolversion 4,IPV 4)隧道、二层隧道协议(layer 2tunneling protocol,L2TP)隧道、互联网协议安全(internet protocol security,IPSec)隧道等。
第一网络设备上维护一个访问控制列表(Access Control List,ACL),该ACL中存储多个匹配规则,每一条匹配规则也能称之为一条路由或一个表项。对于ACL中的任意一条匹配规则,第一网络设备能够通过读取ACL确定出该匹配规则中包含的第一隧道的目的地址(destination)、第一隧道协议(protocol)类型或第一网络设备上的端口(port) 的端口号中的至少一个。该ACL例如是预先配置在第一网络设备上的,或者第一网络设备动态生成的,本申请实施例并不限制。
102、所述第一网络设备确定所述匹配规则对应的最大报文值。
其中,最大报文值用于指示所述第一隧道传输的隧道报文允许封装的负载数据量的最大值,所述隧道报文整包数据量小于或等于所述第一网络设备上与所述第一隧道对应的物理接口的最大传输单元MTU值。
本申请实施例中,匹配规则对应的最大报文值小于该匹配规则对应的第一隧道的物理接口的MTU值,例如,第一隧道的物理接口的MTU为1500字节,而最大报文值为1430 字节。
第一网络设备通过查表等方式确定出最大报文值。可选地,例如,第一网络设备上存储一个匹配规则与最大报文值的映射关系,确定出匹配规则后,第一网络设备通过查表即可确定出最大报文值。再如,预先设置最大报文值和匹配规则对应的第一隧道的物理接口的MTU值的预设关系,根据该预设关系确定最大报文值。举例来说,最大报文值是第一隧道的物理接口的MTU值与预设值的差值,该预设值为50字节等,则最大报文值为MTU 值减去50的差值。
103、所述第一网络设备向第三网络设备发送所述匹配规则和所述最大报文值。
相应的,第三网络设备接收来自第一网络设备的匹配规则和最大报文值。
本申请实施例中,第一网络设备向第三网络设备发送匹配规则和该匹配规则对应的最大报文值的目的在于:当第三网络设备发送给第四网络设备的报文需要经过第一隧道时,该报文必须小于匹配规则对应的最大报文值。如此一来,第一网络设备接收到报文后,对该报文进行封装得到的隧道报文的整包数据量小于第一隧道的物理接口对应的MTU值,从而不会触发二次分片。其中,隧道报文的整包数据量即为隧道报文的大小,隧道报文的整包数据量包括了报文头的数据量和载荷的数据量。
104、所述第三网络设备对待传输报文分片,以得到至少两个分片报文。
可选地,当第三网络设备向第二网络设备发送待传输报文时,若该待传输报文整包数据量大于最大报文值时,第三网络设备对该待传输报文进行分片处理,得到至少两个分片报文,该至少两个分片报文中每个分片报文的整包数据量小于最大报文值。另外,若待传输报文的整包数据量小于最大报文值,则第三网络设备无需对待传输报文分片,而是直接将待传输报文发送给第一网络设备。
105、所述第三网络设备向所述第一网络设备发送所述至少两个报文。
相应的,第一网络设备接收来自第三网络设备的至少两个分片报文。第一网络设备接收到至少分片报文后,对各分片报文进行隧道封装。以至少两个分片报文中的一个分片报文记为第一报文为例,第一网络设备对第一报文添加隧道封装的报文头,从而得到第二报文,并通过第一隧道将第二报文发送给第二网络设备。之后,第二网络设备将第二报文发送给第四网络设备,由第四网络设备进行重组等。其中,封装了报文头的第二报文为隧道报文。
本申请实施例提供的报文发送方法,第一隧道的隧道入口设备,即第一网络设备向报文来源的第三网络设备发送匹配规则和该匹配规则对应的最大报文值,使得第三网络设备发送需要经过第一隧道的报文时,当待传输报文的整包数据量大于最大报文值时,则对待传输报文进行分片得到至少两个分片报文后再发送给第一网络设备,如此一来,第一网络设备对每个分片报文封装后得到的隧道报文的整包数据量不会超过第一隧道对应的MTU 值,避免了报文的二次分片,在降低报文处理复杂度的同时提高网络传输效率的目的。
上述实施例中,第一网络设备确定所述匹配规则对应的最大报文值时,先确定所述匹配规则对应的报文开销,以及第一隧道对应的MTU值,然后根据该报文开销和MTU,确定匹配规则对应的最大报文值。
可选地,第三网络设备发送给第一网络设备的分片报文为原始报文,也能称之为原始数据帧或数据包等,第一网络设备对原始报文封装后得到的报文为隧道报文。报文开销指隧道报文相对于原始数据帧或数据包增加的部分,该增加的部分即为对原始数据帧和数据包在外层封装的报文头部分。
第一网络设备能够通过查表等方式确定出匹配规则对应的报文开销和第一隧道的 MTU值等。例如,第一网络设备上储存包含匹配规则、报文开销和MTU值的对应关系的映射表,对于每一条匹配规则,第一网络设备通过读取映射表,即可确定出匹配规则对应的报文开销和第一隧道的MTU值。确定出匹配规则对应的报文开销和第一隧道对应的 MTU后,第一网络设备利用MTU值减去报文开销,即可确定出最大报文值。再如,第一网络设备与预先存储匹配规则对应的第一隧道的类型、加密算法等,第一网络设备确定出匹配规则后,确定该匹配规则对应的第一隧道的类型和/或加密算法等,即可根据类型和/ 或加密算法确定出报文开销,进而利用MTU值减去报文开销确定出最大报文值。
采用该种方案,实现第一网络设备根据报文开销和第一隧道对应的MTU确定出最大报文值的目的。
当第一网络设备根据第一隧道的类型、加密算法中的至少一个确定第一隧道对应的报文开销时,隧道类型例如为IPV6、GRE、L2TP等,与隧道采用的协议有关。加密算法包括高级加密标准(advanced,encryption,standard,AES)算法、三重数据加密标准(TripleData Encryption Standard,3DES)算法等。
图4是本申请实施例提供的报文发送方法一种网络架构示意图。请参照图4,附图2或附图3中的第一网络设备为附图4中的FW-B,附图2或附图3中的第二网络设备为附图4中的FW-C,附图2中的第三网络设备为SW-A,附图2中的第四网络设备为SW-D。 FW-B和FW-C之间的隧道包括第一隧道和第二隧道,第一隧道的目的地址为1.1.1.1/32,第二隧道的目的地址为2.2.2.2/32。
如果第一隧道为IPSec隧道,采用隧道安全有效负载(Encapsulating SecurityPayload, ESP)封装,当加密算法采用AES算法时,则第一隧道的报文开销计算方式如下:报文开销=20+4+4+16+12+2~17=58~73字节。其中,20指20字节的互联网协议(internetprotocol, IP)头,第一个4表示4字节的安全参数索引(security parameters index,SPI),第二个 4表示4字节的序列号(SeqNum),16表示16字节的初始向量(initializationvector,IV), 12表示12字节的校验和(checksum),2~17表示填充字节的大小。若第一隧道的物理接口的MTU值为1500字节,则第一隧道的最大报文值=1500字节-73字节=1427字节。由此可知:倘若FW-B接收到的一个分片报文,即第一报文的整包数据量大于1427字节时, FW-B对该第一报文进行封装得到的第二报文,该第二报文很有可能大于1500字节,该1500字节即为第一隧道的物理接口对应的MTU值。因此,FW-B将该最大报文值发送给 SW-A,使得SW-A发送给FW-B的第一报文的整包数据量小于该最大报文值,进而使得 FW-B对第一报文封装得到的第二报文的整包数据量小于第一隧道的物理接口对应的MTU值。
若第二隧道为IPSec隧道,采用ESP封装。当加密算法采用3DES算法时,则第二隧道的报文开销计算方式如下:报文开销=20+4+4+8+12+2~9=50~57字节。其中,20指20 字节的IP头,第一个4表示4字节的SPI,第二个4表示4字节的序列号(SeqNum),8 表示8字节的初始向量(initialization vector,IV),12表示12字节的校验和(checksum), 2~9表示填充字节的大小。第二隧道的MTU为1500字节,则第二隧道的最大报文值=1500 字节-57字节=1443字节。由此可知:倘若FW-B接收到一个分片报文,即第一报文的整包数据量大于1443字节,FW-B对该第一报文进行封装得到第二报文,该第二报文很有可能大于1500字节,该1500字节即为第二隧道的物理接口对应的MTU值。因此,FW-B 将该最大报文值发送给SW-A,使得SW-A发送给FW-B的第一报文的整包数据量小于该最大报文值,进而使得FW-B对第一报文封装得到的第二报文的整包数据量小于第二隧道的物理接口对应的MTU值。
采用该种方案,实现第一网络设备根据隧道的协议类型、加密算法等确定出报文开销的目的。
上述实施例中,第一网络设备和第三网络设备之间建立传输控制协议(Transmission Control Protocol,TCP)连接,第一网络设备通过该TCP连接向第三网络设备发送第一TCP 报文,该第一TCP报文携带匹配规则和该匹配规则对应的最大报文值。
可选地,第一网络设备和第三网络设备之间的TCP连接为一个私有的TCP连接,该私有TCP连接的端口号例如为50001,在TCP协议上扩展一个类型长度值(type lengthvalue, TLV)结构,示例性的,可参见图5。
图5是本申请实施例提供的报文发送方法中类型长度值的结构示意图。请参照图5,该扩展的TLV结构包括3个参数(parameter),分别为type字段、length字段和value字段。type字段和length字段的长度往往固定,value字段的长度可变。其中,type字段表示类型,如删除匹配规则、更新匹配规则、目的地址、端口号或最大报文值。
例如,type字段的值为1时,表示更新匹配规则。
再如,type字段的值为0时,表示删除匹配规则。
又如,type字段的值为2时,表示TLV的valve字段为目的地址(destination)。
又如,type字段的值为3时,表示TLV的valve字段为协议(protocol)类型。
又如,type字段的值为4时,表示TLV的valve字段为端口(port)号。
又如,type字段的值为5时,表示TLV的valve字段为具体的最大报文值。
上述各示例中,length字段表示长度,比如length字段的值为8时,表示length字段后的第8个比特位为value字段,value字段存放具体值。可选地,每一个匹配规则包含多个TLV,基于该些扩展的TLV,第一网络设备能够灵活的指示第三网络设备更新匹配规则、删除匹配规则等。
例如,“匹配规则+最大报文值”为“Type 1dest 1.1.1.1/32protocol ip port 0-65535 tunMTU 1427”(仅为“匹配规则+最大报文值”的示意性描述,并不代表5个TLV的实际字段内容)。当第一网络设备指示第三网络设备新增该条匹配规则及对应的最大报文值时,第一网络设备针对该匹配规则及对应的最大报文值生成包含5个TLV的第一TCP报文并发送给第三网络设备。第三网络设备接收到该第一TCP报文后,在本地ACL中新增一条目的地址为1.1.1.1/32、协议类型为IP、端口号为0~65536的匹配规则,且该匹配规则对应的最大报文值为1427。其中,5个TLV分别为TLV1、TLV2、TLV3、TLV4和TLV5。
TLV1“Type 1”的type字段的值为1,length和value为空,表示更新匹配规则。
TLV2“dest 1.1.1.1/32”的type字段的值为2,表示TLV2的valve字段为目的地址,length字段的值例如为32,value的值为目的地址,如1.1.1.1/32等。
TLV3“protocol ip”的type字段的值例如为3,表示TLV3的value字段为协议类型,length字段的值例如为10,value的值为具体的协议类型,如IP。
TLV4“port 0-65535”的type字段的值例如为4,表示TLV4的value字段为端口号,length例如为8,value的值为具体的端口号,如0~65536。
TLV5“tunMTU 1427”的type字段的值例如为5,表示TLV5的value字段为最大报文值,length字段例如为32,value的值为提前计算好的最大报文值,如1427等。
本实施例中,若第三网络设备本地的ACL中不存在第一TCP报文携带的匹配规则,则第三网络设备将第一TCP报文携带的匹配规则及对应的最大报文值添加至本地ACL中;若第三网络设备本地的ACL存在一条相似匹配规则,例如,相似匹配规则与第一TCP报文携带的匹配规则的目的地址相同、协议类型相同,但端口号和/或对应的最大报文值不同,则第三网络设备将该相似匹配规则及对应的最大报文值更新为第一TCP报文携带的匹配规则及对应的最大报文值。
再如,“匹配规则+最大报文值”为“Type 1dest 2.2.2.2/32protocol ip port 0-65535 tunMTU 1443”(仅为“匹配规则+最大报文值”的示意性描述,并不代表5个TLV的实际字段内容)。当第一网络设备指示第三网络设备在本地新增该匹配规则及对应的最大报文值时,第一网络设备针对该匹配规则及对应的最大报文值生成包含5个TLV的第一TCP 报文并发送给第三网络设备。第三网络设备接收到该匹配规则及对应的最大报文值后,在本地ACL中新增一条目的地址为2.2.2.2/32、协议类型为IP、端口号为0~655365的匹配规则,且该匹配规则对应的最大报文值为1443。
本实施例中,5个TLV中第一个TLV“Type 1”的type字段的值为1,length和value为空或不为空,表示更新匹配规则。
第二个TLV“dest 2.2.2.2/32”的type字段的值为2,value字段的值为2.2.2.2/32。
第三个TLV“protocol ip”的type字段的值为3,value字段的值为IP。
第四个TLV“port 0-65535”的type字段的值为4,value字段的值为0~65535。
第五个TLV“tunMTU 1443”的type字段的值为5,value字段的值为1443。
又如,“匹配规则+最大报文值”为“Type 0dest 3.3.3.3/32protocol ip port 0-65535 tunMTU 1443”(仅为“匹配规则+最大报文值”的示意性描述,并不代表5个TLV的实际内容)。当第一网络设备指示第三网络设备删除该匹配规则及对应的最大报文值时,第一网络设备针对该匹配规则及对应的最大报文值生成包含5个TLV的第一TCP报文并发送给第三网络设备。第三网络设备接收到该匹配规则及对应的最大报文值后,从本地ACL 中删除一条目的地址为3.3.3.3/32、协议类型为IP、端口号为0~65536的匹配规则及最大报文值1443。
本实施例中,5个TLV中第一个TLV“Type 0”的type字段的值为0,length和value为空或不为空,表示更新匹配规则。
第二个TLV“dest 3.3.3.3/32”的type字段的值为2,value字段的值为3.3.3.3/32。
第三个TLV“protocol ip”的type字段的值为3,value字段的值为IP。
第四个TLV“port 0-65535”的type字段的值为4,value字段的值为0~65535。
第五个TLV“tunMTU 1443”的type字段的值为5,value的值为1443。
上述实施例中,第三网络设备接收到第一网络设备发送的第一TCP报文后,根据第一TCP报文生成访问控制列表(Access Control List,ACL)。第三网络设备在后续发送报文时,将待发送报文与保存的匹配规则进行匹配。当第三网络设备确定待发送报文为需要通过第一隧道发送的报文时,进一步查询本地的ACL确定匹配规则对应的最大报文值,根据最大报文值对待发送的报文提前分片,避免报文经过隧道时触发二次分片。
再请参照图4,SW-A需要向FW-B发送报文,待发送报文的目的地址为1.1.1.1/32、协议(protocol)类型为IP、端口号为60000、待发送报文的整包数据量为1600字节。与该待发送报文匹配的匹配规则为:目的地址为1.1.1.1/32、协议(protocol)类型为IP、端口号为60000。SW-A查询本地的ACL发现:匹配规则对应的最大报文值为1427字节。显然,待发送报文的整包数据量大于该最大报文值。因此,SW-A对待发送报文进行分片处理,将待发送报文分片为1427字节的第一报文和173字节的第一报文。然后,SW-A将 1427字节的第一报文和173字节的第一报文发送给FW-B。FW-B接收到第一报文后,根据匹配规则确定出第一隧道,并对将该两个第一报文分别进行隧道封装,得到两个第二报文,该两个第二报文的整包数据量都小于1500字节。因此,不会触发FW-B的二次分片。另外,如果待发送报文的整包数据量小于1427字节,则SW-A无需对该待发送报文进行分片处理,而是直接发送给FW-B。
上述实施例中的,当一条匹配规则的目的地址、协议类型、端口号或最大报文值发生变化时,第一网络设备向第二网络设备发送第二TCP报文,该第二TCP报文用于更新匹配规则及对应的最大报文值。例如,再请参照图4,FW-B一开始发送给SW-A的第一TCP 报文,该第一TCP报文指示第三网络设备新增一条匹配规则及对应的最大报文值:dest 1.1.1.1/32protocol ip port 0-65535tunMTU 1427。当第一网络设备需要将该匹配规则的端口号从“0-65535”更新为“65534”时,由于端口号的变更,会导致该匹配规则对应的最大报文值发生变化,例如变化为1400。也就是说,旧匹配规则及对应的最大报文值为: dest1.1.1.1/32protocol ip port 0-65535tunMTU 1427;新匹配规则及对应的最大报文值为:dest 1.1.1.1/32protocol ip port65534tunMTU 1400。更新匹配规则实质上是删除旧的匹配规则及对应的最大报文值、增加新匹配规则及对应的最大报文值的过程。此时,第一网络设备针对删除旧匹配规则及对应的最大报文值生成第一组TLV,针对增加新匹配规则及对应的最大报文值生成第二组TLV。
第一组TLV包含5个TLV,该5个TLV中第一个TLV的type字段的值为0。
第二个TLV的type字段的值为2,value为1.1.1.1/32。
第三个TLV的type字段的值3为value字段的值为IP。
第四个TLV的type字段的值4,value的值为0~65535。
第五个TLV的type字段的值为5,value字段的值为1427。
如此一来,第三网络设备接收第二TCP报文后,根据该第二TCP报文的第一组TLV,删除目的地址为1.1.1.1/32、协议类型为IP、端口号为0~65535、最大报文值为1427的匹配规则。
第二组TLV包含5个TLV,该5个TLV中第一个TLV的type字段的值为1。
第二个TLV的type字段的值为2,value为1.1.1.1/32。
第三个TLV的type字段的值为3,value的值为IP。
第四个TLV的type字段的值为4,value的值为65534。
第五个TLV的type字段的值为5,value字段的值为1400。
如此一来,第三网络设备接收第二TCP报文后,根据该第二TCP报文的第二组TLV,新增目的地址为1.1.1.1/32、协议类型为IP、端口号为65534的匹配规则及对应的最大报文值1400。
可以理解的是,上述各TLV的举例中length字段的值能够根据实际情况灵活设置。比如,value字段位于length字段后的第8个比特位,则length字段的值为8;再如,value 字段位于length字段后的第10个比特位,则length字段的值为10。
图6为本申请实施例提供的一种报文发送装置的结构示意图。可选地,本实施例所涉及的报文发送装置为前面各实施例中的第一网络设备,或者为应用于第一网络设备的芯片。该报文发送装置用于执行上述实施例中第一网络设备的功能。可选地,如图6所示,该报文发送装置100包括:处理单元11和收发单元12。
处理单元11,用于确定匹配规则以及所述匹配规则对应的最大报文值,所述匹配规则对应第一隧道,所述第一隧道是第一网络设备与第二网络设备之间至少两条隧道中的一条隧道,所述最大报文值用于指示所述第一隧道传输的隧道报文允许封装的负载数据量的最大值,所述隧道报文整包数据量小于或等于所述第一网络设备上与所述第一隧道对应的物理接口的最大传输单元MTU值。
收发单元12,用于向第三网络设备发送所述匹配规则和所述最大报文值。
一种可行的设计中,所述处理单元11在确定所述匹配规则对应的最大报文值时,用于确定所述匹配规则对应的报文开销以及所述第一隧道对应的物理接口的MTU,根据所述报文开销和所述MTU,确定所述匹配规则对应的最大报文值,其中,所述报文开销包括所述隧道报文的报文头。
一种可行的设计中,所述处理单元11在确定所述匹配规则对应的报文开销时,用于确定所述第一隧道的协议类型和加密算法类型中的至少一个,根据所述协议类型和所述加密算法中的至少一个,确定所述匹配规则对应的报文开销。
一种可行的设计中,所述收发单元12,用于向所述第三网络设备发送第一传输控制协议TCP报文,所述第一TCP报文携带所述匹配规则和所述最大报文值。
一种可行的设计中,所述收发单元12,在向所述第三网络设备发送第一TCP报文之后,还用于向所述第三网络设备发送第二TCP报文,所述第二TCP报文携带更新后的最大报文值和更新后的匹配规则中的至少一个。
一种可行的设计中,所述匹配规则用于指示下述信息中的至少一个:所述第一隧道的目的地址、所述第一隧道的协议类型或所述第一网络设备上端口的端口号。
一种可行的设计中,所述收发单元12,在向第三网络设备发送所述匹配规则和所述最大报文值之后,还用于接收来自所述第三网络设备的第一报文,所述第一报文的整包数据量小于或等于所述最大报文值;
所述处理单元11,还用于对所述第一报文进行封装得到所述第二报文,所述第一报文是所述第二报文的隧道负载;
所述收发单元12,还用于向所述第二网络设备发送所述第二报文。
本申请实施例提供的报文发送装置,能够执行上述实施例中第一网络设备的动作,其实现原理和技术效果类似,在此不再赘述。
图7为本申请实施例提供的另一种报文发送装置的结构示意图。可选地,本实施例所涉及的报文发送装置为上述各实施例中的第三网络设备,或者为应用于第三网络设备的芯片。该报文发送装置用于执行上述实施例中第三网络设备的功能。如图7所示,该报文发送装置200包括接收单元21、处理单元22和发送单元23。
接收单元21,用于接收来自第一网络设备的匹配规则和最大报文值,所述匹配规则对应第一隧道,所述第一隧道是所述第一网络设备与第二网络设备之间至少两条隧道中的一条隧道,所述最大报文值用于指示所述第一隧道传输的隧道报文允许封装的负载数据量的最大值。
处理单元22,用于对待传输报文分片,以得到至少两个分片报文,所述至少两个分片报文中每个分片报文的整包数据量小于或等于所述最大报文值,所述待传输报文是满足所述匹配规则的报文,所述待传输报文的整包数据量大于所述最大报文值。
发送单元23,用于向所述第一网络设备发送所述至少两个报文。
一种可行的设计中,所述接收单元21,用于接收来自所述第一网络设备的第一传输控制协议TCP报文,所述第一TCP报文携带所述匹配规则和所述最大报文值。
一种可行的设计中,所述接收单元21,在接收来自所述第一网络设备的第一TCP报文之后,还用于接收来自所述第一网络设备的第二TCP报文,所述第二TCP报文携带更新后的最大报文值和更新后的匹配规则中的至少一个。
一种可行的设计中,所述匹配规则用于指示下述信息中的至少一个:所述第一隧道的目的地址、所述第一隧道的协议类型或所述第一网络设备上端口的端口号。
本申请实施例提供的报文发送装置,能够执行上述实施例中第三网络设备的动作,其实现原理和技术效果类似,在此不再赘述。
图8为本申请实施例提供的又一种报文发送装置的结构示意图。如图8所示,该报文发送装置300包括处理器31和存储器32。
所述存储器32存储计算机执行指令。
所述处理器31执行所述存储器32存储的计算机执行指令,使得所述报文发送装置执行如上第一网络设备执行的报文发送方法;或者,使得所述报文发送装置执行如上第三网络设备执行的报文发送方法。
处理器31的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
可选地,该报文发送装置300还包括通信接口33。其中,处理器31、存储器32以及通信接口33能够通过总线34连接。
在上述在报文发送装置的实现中,存储器和处理器之间直接或间接地电性连接,以实现数据的传输或交互,也就是存储器和处理器通过接口连接或集成在一起。例如,这些元件相互之间通过一条或者多条通信总线或信号线实现电性连接,如通过总线连接。存储器中存储有实现数据访问控制方法的计算机执行指令,包括至少一个软件或固件的形式存储于存储器中的软件功能模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理。
存储器包括但不限于,随机存取存储器(Random Access Memory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(Programmable Read-OnlyMemory,简称:PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,简称:EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,简称:EEPROM)等。其中,存储器用于存储程序,处理器在接收到执行指令后,执行程序。进一步地,上述存储器内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通信,从而提供其他软件组件的运行环境。
处理器是一种集成电路芯片,具有信号的处理能力。上述的处理器例如是通用处理器,包括中央处理器(Central Processing Unit,简称:CPU)、网络处理器(NetworkProcessor,简称:NP)等,能够实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器例如是微处理器或者任何常规的处理器等。
在上述基础上,本申请还提供一种芯片,包括:逻辑电路、输入接口,其中:所述输入接口用于获取待处理的数据,如协议类型、加密算法类型等;所述逻辑电路用于对待处理的数据执行前述方法实施例中第一网络设备侧的技术方案,得到处理后的数据,如匹配规则、最大报文值等。
可选的,该芯片还包括:输出接口,所述输出接口用于输出处理后的数据。
本申请还提供一种芯片,包括:逻辑电路和输入接口,其中:所述输入接口用于获取待处理的数据,如待传输报文、匹配规则和最大报文值等;所述逻辑电路用于对待处理的数据执行前述方法实施例中第三网络设备侧的技术方案,得到处理后的数据。该待处理的数据包括第一报文等。
可选的,该芯片还包括:输出接口,所述输出接口用于输出处理后的数据。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序,所述程序在被处理器执行时用于执行前述实施例中第一网络设备侧的技术方案。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序,所述程序在被处理器执行时用于执行前述实施例中第三网络设备侧的技术方案。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在报文发送装置上运行时,使得所述报文发送装置执行前述实施例中第一网络设备侧的技术方案;或者,使得所述报文发送装置执行前述实施例中第三网络设备的技术方案。
本领域普通技术人员应理解:实现上述各方法实施例的全部或部分步骤能够通过程序指令相关的硬件来完成。前述的程序能够存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种存储程序代码的介质,具体的介质类型本申请不做限制。
Claims (25)
1.一种报文发送方法,其特征在于,包括:
第一网络设备确定匹配规则,所述匹配规则对应第一隧道,所述第一隧道是所述第一网络设备与第二网络设备之间至少两条隧道中的一条隧道;
所述第一网络设备确定所述匹配规则对应的最大报文值,所述最大报文值用于指示所述第一隧道传输的隧道报文允许封装的负载数据量的最大值,所述隧道报文整包数据量小于或等于所述第一网络设备上与所述第一隧道对应的物理接口的最大传输单元MTU值;
所述第一网络设备向第三网络设备发送所述匹配规则和所述最大报文值,以使所述第三网络设备向所述第一网络设备发送的第一报文的整包数据量小于或等于所述最大报文值,所述第一报文为需要经过所述第一隧道发送的报文。
2.根据权利要求1所述的方法,其特征在于,所述第一网络设备确定所述匹配规则对应的最大报文值,包括:
所述第一网络设备确定所述匹配规则对应的报文开销,所述报文开销包括所述隧道报文的报文头;
所述第一网络设备确定所述第一隧道对应的物理接口的MTU值;
所述第一网络设备根据所述报文开销和所述MTU,确定所述匹配规则对应的最大报文值。
3.根据权利要求2所述的方法,其特征在于,所述第一网络设备确定所述匹配规则对应的报文开销,包括:
所述第一网络设备确定所述第一隧道的协议类型和加密算法类型中的至少一个;
所述第一网络设备根据所述协议类型和所述加密算法中的至少一个,确定所述匹配规则对应的报文开销。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一网络设备向第三网络设备发送所述匹配规则和所述最大报文值,包括:
所述第一网络设备向所述第三网络设备发送第一传输控制协议TCP报文,所述第一TCP报文携带所述匹配规则和所述最大报文值。
5.根据权利要求4所述的方法,其特征在于,所述第一网络设备向所述第三网络设备发送第一TCP报文之后,还包括:
所述第一网络设备向所述第三网络设备发送第二TCP报文,所述第二TCP报文携带更新后的最大报文值和更新后的匹配规则中的至少一个。
6.根据权利要求1-3、5任一项所述的方法,其特征在于,所述匹配规则用于指示下述信息中的至少一个:所述第一隧道的目的地址、所述第一隧道的协议类型或所述第一网络设备上端口的端口号。
7.根据权利要求1-3、5任一项所述的方法,其特征在于,所述第一网络设备向第三网络设备发送所述匹配规则和所述最大报文值之后,还包括:
所述第一网络设备接收来自所述第三网络设备的所述第一报文,所述第一报文的整包数据量小于或等于所述最大报文值;
所述第一网络设备对所述第一报文进行封装得到第二报文,所述第一报文是所述第二报文的隧道负载;
所述第一网络设备向所述第二网络设备发送所述第二报文。
8.一种报文发送方法,其特征在于,包括:
第三网络设备接收来自第一网络设备的匹配规则和最大报文值,所述匹配规则对应第一隧道,所述第一隧道是所述第一网络设备与第二网络设备之间至少两条隧道中的一条隧道,所述最大报文值用于指示所述第一隧道传输的隧道报文允许封装的负载数据量的最大值;
所述第三网络设备对待传输报文分片,以得到至少两个分片报文,所述至少两个分片报文中每个分片报文的整包数据量小于或等于所述最大报文值,所述待传输报文是满足所述匹配规则的报文,所述待传输报文的整包数据量大于所述最大报文值;
所述第三网络设备向所述第一网络设备发送所述至少两个分片报文。
9.根据权利要求8所述的方法,其特征在于,所述第三网络设备接收来自第一网络设备的匹配规则和最大报文值,包括:
所述第三网络设备接收来自所述第一网络设备的第一传输控制协议TCP报文,所述第一TCP报文携带所述匹配规则和所述最大报文值。
10.根据权利要求9所述的方法,其特征在于,所述第三网络设备接收来自所述第一网络设备的第一TCP报文之后,还包括:
所述第三网络设备接收来自所述第一网络设备的第二TCP报文,所述第二TCP报文携带更新后的最大报文值和更新后的匹配规则中的至少一个。
11.根据权利要求8-10任一项所述的方法,其特征在于,所述匹配规则用于指示下述信息中的至少一个:所述第一隧道的目的地址、所述第一隧道的协议类型或所述第一网络设备上端口的端口号。
12.一种报文发送装置,其特征在于,包括:
处理单元,用于确定匹配规则以及所述匹配规则对应的最大报文值,所述匹配规则对应第一隧道,所述第一隧道是第一网络设备与第二网络设备之间至少两条隧道中的一条隧道,所述最大报文值用于指示所述第一隧道传输的隧道报文允许封装的负载数据量的最大值,所述隧道报文整包数据量小于或等于所述第一网络设备上与所述第一隧道对应的物理接口的最大传输单元MTU值;
收发单元,用于向第三网络设备发送所述匹配规则和所述最大报文值,以使所述第三网络设备向所述第一网络设备发送的第一报文的整包数据量小于或等于所述最大报文值,所述第一报文为需要经过所述第一隧道发送的报文。
13.根据权利要求12所述的装置,其特征在于,
所述处理单元在确定所述匹配规则对应的最大报文值时,用于确定所述匹配规则对应的报文开销以及所述第一隧道对应的物理接口的MTU,根据所述报文开销和所述MTU,确定所述匹配规则对应的最大报文值,其中,所述报文开销包括所述隧道报文的报文头。
14.根据权利要求13所述的装置,其特征在于,所述处理单元在确定所述匹配规则对应的报文开销时,用于确定所述第一隧道的协议类型和加密算法类型中的至少一个,根据所述协议类型和所述加密算法中的至少一个,确定所述匹配规则对应的报文开销。
15.根据权利要求12-14任一项所述的装置,其特征在于,
所述收发单元,用于向所述第三网络设备发送第一传输控制协议TCP报文,所述第一TCP报文携带所述匹配规则和所述最大报文值。
16.根据权利要求15所述的装置,其特征在于,
所述收发单元,在向所述第三网络设备发送第一TCP报文之后,还用于向所述第三网络设备发送第二TCP报文,所述第二TCP报文携带更新后的最大报文值和更新后的匹配规则中的至少一个。
17.根据权利要求12-14、16任一项所述的装置,其特征在于,所述匹配规则用于指示下述信息中的至少一个:所述第一隧道的目的地址、所述第一隧道的协议类型或所述第一网络设备上端口的端口号。
18.根据权利要求12-14、16任一项所述的装置,其特征在于,
所述收发单元,在向第三网络设备发送所述匹配规则和所述最大报文值之后,还用于接收来自所述第三网络设备的所述第一报文,所述第一报文的整包数据量小于或等于所述最大报文值;
所述处理单元,还用于对所述第一报文进行封装得到第二报文,所述第一报文是所述第二报文的隧道负载;
所述收发单元,还用于向所述第二网络设备发送所述第二报文。
19.一种报文发送装置,其特征在于,包括:
接收单元,用于接收来自第一网络设备的匹配规则和最大报文值,所述匹配规则对应第一隧道,所述第一隧道是所述第一网络设备与第二网络设备之间至少两条隧道中的一条隧道,所述最大报文值用于指示所述第一隧道传输的隧道报文允许封装的负载数据量的最大值;
处理单元,用于对待传输报文分片,以得到至少两个分片报文,所述至少两个分片报文中每个分片报文的整包数据量小于或等于所述最大报文值,所述待传输报文是满足所述匹配规则的报文,所述待传输报文的整包数据量大于所述最大报文值;
发送单元,用于向所述第一网络设备发送所述至少两个分片报文。
20.根据权利要求19所述的装置,其特征在于,
所述接收单元,用于接收来自所述第一网络设备的第一传输控制协议TCP报文,所述第一TCP报文携带所述匹配规则和所述最大报文值。
21.根据权利要求20所述的装置,其特征在于,
所述接收单元,在接收来自所述第一网络设备的第一TCP报文之后,还用于接收来自所述第一网络设备的第二TCP报文,所述第二TCP报文携带更新后的最大报文值和更新后的匹配规则中的至少一个。
22.根据权利要求19-21任一项所述的装置,其特征在于,所述匹配规则用于指示下述信息中的至少一个:所述第一隧道的目的地址、所述第一隧道的协议类型或所述第一网络设备上端口的端口号。
23.一种报文发送装置,其特征在于,包括:处理器和存储器,所述存储器用于存储指令,所述处理器用于执行所述存储器中存储的指令,实现如权利要求1~7任一项所述的方法;或者,实现如权利要求8~11任一项所述的方法。
24.一种计算机可读存储介质,其特征在于,用于存储计算机程序或指令,当所述计算机程序或指令在报文发送装置上运行时,使得所述报文发送装置执行如权利要求1~7任一项所述的方法;或者,使得所述报文发送装置执行如权利要求8~11任一项所述的方法。
25.一种芯片,其特征在于,所述芯片包括可编程逻辑电路和输入接口,所述输入接口用于获取待处理的数据,所述逻辑电路用于对待处理的数据执行如权利要求1~7任一项所述的方法;或者,如权利要求8~11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010415229.7A CN113676389B (zh) | 2020-05-15 | 2020-05-15 | 报文发送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010415229.7A CN113676389B (zh) | 2020-05-15 | 2020-05-15 | 报文发送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113676389A CN113676389A (zh) | 2021-11-19 |
CN113676389B true CN113676389B (zh) | 2022-10-18 |
Family
ID=78537800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010415229.7A Active CN113676389B (zh) | 2020-05-15 | 2020-05-15 | 报文发送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113676389B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113438178B (zh) * | 2021-06-22 | 2023-04-18 | 北京天融信网络安全技术有限公司 | 报文转发方法、装置、计算机设备和存储介质 |
CN115051957B (zh) * | 2022-08-17 | 2022-11-11 | 北京左江科技股份有限公司 | 一种基于fpga的网络报文快速分片方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863165A (zh) * | 2006-01-24 | 2006-11-15 | 华为技术有限公司 | 分组域网络中减少数据ip分片数量的方法 |
CN102957590A (zh) * | 2011-08-29 | 2013-03-06 | 盛科网络(苏州)有限公司 | 报文分片方法及装置 |
CN103079232A (zh) * | 2013-01-16 | 2013-05-01 | 大唐移动通信设备有限公司 | 一种确定报文的最大容量的方法及装置 |
CN104618275A (zh) * | 2015-01-21 | 2015-05-13 | 大唐移动通信设备有限公司 | 一种分片处理的方法和设备 |
CN106411783A (zh) * | 2016-09-30 | 2017-02-15 | 杭州华三通信技术有限公司 | 一种报文发送方法及装置 |
US9923835B1 (en) * | 2015-09-23 | 2018-03-20 | Juniper Networks, Inc. | Computing path maximum transmission unit size |
CN108270673A (zh) * | 2016-12-30 | 2018-07-10 | 中兴通讯股份有限公司 | 报文发送方法、装置以及系统 |
CN110177052A (zh) * | 2019-04-30 | 2019-08-27 | 佛山易识科技有限公司 | 一种隧道报文的分片处理方法及装置 |
-
2020
- 2020-05-15 CN CN202010415229.7A patent/CN113676389B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863165A (zh) * | 2006-01-24 | 2006-11-15 | 华为技术有限公司 | 分组域网络中减少数据ip分片数量的方法 |
CN102957590A (zh) * | 2011-08-29 | 2013-03-06 | 盛科网络(苏州)有限公司 | 报文分片方法及装置 |
CN103079232A (zh) * | 2013-01-16 | 2013-05-01 | 大唐移动通信设备有限公司 | 一种确定报文的最大容量的方法及装置 |
CN104618275A (zh) * | 2015-01-21 | 2015-05-13 | 大唐移动通信设备有限公司 | 一种分片处理的方法和设备 |
US9923835B1 (en) * | 2015-09-23 | 2018-03-20 | Juniper Networks, Inc. | Computing path maximum transmission unit size |
CN106411783A (zh) * | 2016-09-30 | 2017-02-15 | 杭州华三通信技术有限公司 | 一种报文发送方法及装置 |
CN108270673A (zh) * | 2016-12-30 | 2018-07-10 | 中兴通讯股份有限公司 | 报文发送方法、装置以及系统 |
CN110177052A (zh) * | 2019-04-30 | 2019-08-27 | 佛山易识科技有限公司 | 一种隧道报文的分片处理方法及装置 |
Non-Patent Citations (3)
Title |
---|
"How to Find Maximum Size of IP Data Payload that can Traverse WAN Environment Without Fragmentation";CITRIX SYSTEMS;《URL:https://support.citrix.com/article/CTX115434》;20180905;全文 * |
"嵌套移动网络中基于位置更新的隧道MTU发现机制";陈龙,汤红波,王领伟;《计算机应用》;20121231;第2090-2094页 * |
"解决 GRE 和 IPsec 中的 IPv4 分段、MTU、MSS 和 PMTUD 问题";思科系统公司;《URL:https://www.cisco.com/c/zh_cn/support/docs/ip/generic-routing-encapsulation-gre/25885-pmtud-ipfrag.html》;20190108;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113676389A (zh) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112152985B (zh) | 在中间路由器处具有减少的分组加密的gre隧穿 | |
US7647492B2 (en) | Architecture for routing and IPSec integration | |
US6834342B2 (en) | Method and system for secure communication over unstable public connections | |
US6708218B1 (en) | IpSec performance enhancement using a hardware-based parallel process | |
US7082477B1 (en) | Virtual application of features to electronic messages | |
EP2777217B1 (en) | Protocol for layer two multiple network links tunnelling | |
EP1698136B1 (en) | Method and system for sending a message through a secure connection | |
US10044841B2 (en) | Methods and systems for creating protocol header for embedded layer two packets | |
US20070217424A1 (en) | Apparatus and method for processing packets in secure communication system | |
CN110535748B (zh) | 一种vpn隧道模式优化方法及系统 | |
US9445384B2 (en) | Mobile device to generate multiple maximum transfer units and data transfer method | |
US9769116B2 (en) | Encapsulating traffic while preserving packet characteristics | |
CN104426737B (zh) | 一种实现动态虚拟专用网络链路层通信的方法和装置 | |
CN113676389B (zh) | 报文发送方法及装置 | |
US11424958B2 (en) | Managing transmission control protocol (TCP) maximum segment size (MSS) values for multiple tunnels supported by a computing site gateway | |
US20210092054A1 (en) | Gre tunneling with reduced packet encryption at intermediate routers using loose source routing | |
EP4387190A1 (en) | Packet sending method, network device, storage medium, and program product | |
CN115333859A (zh) | 一种基于芯片方案的IPsec协议报文加密及解密方法 | |
CN108282391B (zh) | 一种vxlan报文分片方法和装置 | |
CN112787905A (zh) | Mtu确定方法及系统、电子设备及存储介质 | |
CN115225414B (zh) | 基于ipsec的加密策略匹配方法、装置及通信系统 | |
CN101361325A (zh) | 用于数据分组的分组封装和重定向的方法 | |
CN116471345B (zh) | 一种数据通信方法、装置、设备及介质 | |
JP4367106B2 (ja) | ネットワーク、通信ノード及びそれらに用いるセキュリティ方法並びにそのプログラム | |
CN115720214B (zh) | IPSec传输模式下IP数据报文重组方法、系统、介质及设备 |
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 |