一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于通信节点的解析深度的数据包处理方法和装置与流程

2022-02-22 07:16:14 来源:中国专利 TAG:


1.本公开涉及数字通信领域,尤其涉及基于通信节点的解析深度的数据包处理方法和装置。


背景技术:

2.数据包交换技术构成了现代数据电信的基础。数据包交换技术支持通过网络传送数据流。可以在包括协议特定控制信息和用户数据的协议数据单元(pdu)中的网络的对等实体之间传输数据。pdu可以包括网际协议(ip)层的数据包和传输控制协议(tcp)层的段。如本文所用,除非上下文另有明确规定,术语“数据包”和“pdu”可互换使用。
3.数据包通常有一个以上协议报头。每个报头可以对应网络层模型的不同层中的网络协议。网络协议报头可以为各种长度。接收数据包的网络设备需要解析或检查报头,以对其进行处理。如本文所用,携带将由数据包处理设备处理的关键信息的pdu开头的几个字节被称为pdu的“关键前缀”。所需的解析深度,即,数据包处理设备需要读取的字节数,可以从几字节到几百字节。
4.在许多情况下,为了提高通信速度,pdu的处理被卸载到网络设备硬件。硬件通常只能处理pdu的一小部分,例如:64字节、128字节或256字节。如本文所用,这种有限的解析深度能力被称为硬件的“解析深度能力”(pdc)。pdc可以与任何网络设备相关,包括使用网络接口卡(nic)、交换机、路由器和/或中间盒(例如,防火墙)的主机(例如,个人计算机或服务器)。
5.通常,相互通信的网络实体具有不同的pdc。在这种情况下,如果接收器的pdc短于接收的pdu的关键前缀,就会出现问题。
6.例如,网络实体可以接收其有效载荷包括tcp段的ip数据包,如表1所示。
[0007][0008]
表1其有效载荷包含tcp段的ip数据包
[0009]
如果网络实体包括用于路由数据包的路由器,则路由器的硬件可以只需要处理包括开头20字节的ip报头。因此,pdu关键前缀只有20字节。
[0010]
然而,如果网络实体包括实现tcp卸载的网络接口卡(nic),则nic的硬件可以需要处理ip报头(20字节)和tcp报头。由于tcp报头包含20字节的固定报头和0-40字节的可选报头,因此pdu关键前缀为80字节(20字节 20字节 40字节)。
[0011]
如果相关报头太长而无法被硬件读取,则它可以只是被软件部分解析或处理,这可能不充分和/或可能导致性能不佳。例如,ip分片可以导致过度重传,例如,当分片遇到数据包丢失,以及tcp等协议需要重传所有分片时,以从单片的丢失中恢复。


技术实现要素:

[0012]
本公开的实施例的目的是提供一种方案,其减轻或解决传统方案的缺点和问题。本技术的实施例使用新方法,其中每个网络实体具有被称为硬件解析深度能力(pdc属性)的属性。该属性可以为网络实体所知,并且可以以多种方式传送给其他网络实体。本公开旨在提供一种解决方案,用于确保协议数据单元(pdu)的关键前缀不长于处理pdu的实体的解析深度能力(pdc)。
[0013]
上述以及进一步目的是通过独立权利要求的主题来解决的。在从属权利要求中可以找到进一步的有利实施例。
[0014]
根据本技术的第一方面,提供了一种用于处理在计算机网络中接收的数据包的数据包处理设备,被配置为:
[0015]-在计算机网络连接与远程设备的设置期间接收容量数据包;
[0016]-在该设置期间,解码指示来自该容量数据包的报头的解析深度的容量数据包值;
[0017]-根据该容量数据包值编码传输层数据包;以及
[0018]-通过该计算机网络将该传输层数据包发送到该远程设备。
[0019]
根据本技术的第二方面,提供了一种用于处理在计算机网络中接收的数据包的数据包处理设备,被配置为:
[0020]-在容量数据包的报头中编码指示解析深度的容量数据包值,其中该容量数据包值用于在传输层处理数据包;以及
[0021]-在计算机网络连接与远程设备的设置期间发送该容量数据包。
[0022]
根据本技术的第三方面,提供了一种处理在计算机网络中接收的数据包的方法,包括:
[0023]-在计算机网络连接与远程设备的设置期间接收容量数据包;
[0024]-在该设置期间,解码来自该容量数据包的报头的解析深度值;
[0025]-根据该解析深度值编码传输层数据包;以及
[0026]-通过该计算机网络将该传输层数据包发送到该远程设备。
[0027]
根据本技术的第四方面,提供了一种处理在计算机网络中接收的数据包的方法,包括:
[0028]-在容量数据包的报头中编码指示解析深度的容量数据包值,其中该容量数据包值用于在传输层处理数据包;以及
[0029]-在计算机网络连接与远程设备的设置期间发送该容量数据包。
[0030]
根据本技术的第五方面,提供了一种计算机软件产品,包括用于在计算机上执行时用于执行根据第三方面所述的方法和/或根据第四方面所述的方法的程序代码。
[0031]
根据本技术的第六方面,提供了一种非瞬态计算机可读存储介质,在其上存储有计算机程序产品,该计算机程序产品在由处理器执行时执行根据第三方面和/或第四方面所述的方法。计算机可读存储介质包括来自以下组中的一个或多个:rom(只读存储器)、prom(可编程rom)、eprom(可擦除prom)、闪存、eeprom(电eprom)和硬盘驱动器。
[0032]
根据本技术的第七方面,提供了一种用于处理在计算机网络中接收的数据包的装置,包括处理器和存储器。存储器存储在计算机上执行时使处理器执行第三方面的方法和/或第四方面的方法的指令。
[0033]
传统上,如果数据包报头包括太长而无法被设备的硬件读取的关键前缀,则它可以被软件部分解析和/或处理,这可能不充分和/或可能导致性能不佳。所公开的方面提供的改进是通过在容量数据包报头中编码解析深度,在网络协议本身中使用解析深度。通过在网络连接与数据包处理设备的设置期间发送容量数据包,通告的解析容量确保发送到数据包处理设备的传输层数据包的关键前缀不长于数据包处理设备硬件的pdc,从而实现来自不同供应商的网络设备之间的灵活性和互操作性。所公开的方面的进一步优点包括:促进在异构环境中利用网络设备的硬件能力;协议栈各层的可用性;各种环境中各种网络协议的可用性;以及易于检测pdc,例如,通过数据包分析器。
[0034]
在第一方面的进一步实现方式中,该数据包处理设备还被配置为从该远程设备或从中央网络节点接收该容量数据包。实现方式的改进可以包括容量数据包数据的简化直接可用性,而无需附加设备参与。替代地,可以发现改进,例如,在集中管理的网络中,其中网络由中央节点管理,被配置为简化对关于每个实体的pdc属性的信息的访问,并以优化的方式与一些或所有其他相关实体共享该信息。
[0035]
在第一方面的进一步实现方式中,该计算机网络是软件定义网络(sdn)。实现方式的改进可以包括,例如,sdn控制器被配置为简化对关于每个附属实体的pdc属性的数据的访问,并且以优化的方式与一些或所有其他相关实体分发该信息。sdn的使用可以促进动态、灵活、编程高效的网络配置,从而提高网络性能和监控。
[0036]
在第一方面的进一步实现方式中,该数据包处理设备还被配置为根据用户数据报协议(udp)编码该传输层数据包。使用中央实体的通告适用于udp的无连接通信模型。与使用udp相关的改进包括提供数据完整性和提供端口号的校验和,用于在传输数据报的源和目的地寻址不同功能。通信通道的设置不需要事先通信。使用udp可以避免协议栈中不必要的错误检查开销。同样,由于发送方知道接收方硬件的解析深度,因此可以不太需要与重传相关的延迟。
[0037]
在第一方面的进一步实现方式中,该数据包处理设备还被配置为执行强制功能,以保证每个该传输层数据包的关键前缀符合该容量数据包值。强制功能可以通过在向对等网络设备发送数据包时应用对等网络设备的pdc来提供改进,从而强制发送数据包的关键前缀在对等网络设备的pdc内。因此,数据包处理设备不生成数据包,其中关键报头或其部分超过pdc。
[0038]
在第一方面的进一步实现方式中,该数据包处理设备还被配置为具有不同的解析深度容量,用于在该传输层处理数据包;其中,该数据包处理设备还被配置为在不同容量数据包的报头中,编码指示该不同解析深度的不同容量数据包值;以及其中,该数据包处理设备还被配置为在该设置期间发送该不同容量数据包。通过在网络连接的设置期间发送容量数据包,通告的解析容量确保发送到数据包处理设备的传输层数据包的关键前缀不长于数据包处理设备硬件的pdc,从而实现来自不同供应商的网络设备之间的灵活性和互操作性。
[0039]
在第一方面的进一步实现方式中,该容量数据包是传输控制协议(tcp)同步(syn)数据包。通过包括远程设备的解析深度,例如,在tcp选项中,在经由tcp syn数据包的连接发起期间,可以确保对于在初始tcp syn数据包后从数据包处理设备传输到远程设备的所有数据包符合远程设备的pdc。在稍后阶段编码/解码容量数据包值,可能导致在容量数据包值的编码/解码之前传输的数据包不符合远程设备的pdc。
[0040]
在第一方面的进一步实现方式中,该容量数据包是快速udp互联网连接、quic、初始数据包,并且该解析深度值被定义为传输参数。quic具有更短的延迟,并且比tcp更灵活。通过将解析深度值定义为quic初始数据包的传输参数之一,可以确保在quic初始数据包后从数据包处理设备传输的所有数据包符合远程设备的pdc。在稍后阶段编码/解码容量数据包值,可能导致在容量数据包值的编码/解码之前传输的数据包不符合远程设备的pdc。
[0041]
在第一方面的进一步实现方式中,该数据包处理设备还被配置为根据该容量数据包值更新第2层(l2),即,数据链路层,数据包的报头。当为开放系统互连(osi)模型的数据链路层或第2层定义解析深度时,它包括所有数据包报头,包括l2、第3层(l3),即网络层、第4层(l4),即传输层,以及任何其他报头。因此,解析深度不是报头特定的。来自不同级别的解析深度通告可以由第2层硬件模块修改,其可以更新通告的深度,以补偿软件模块未考虑的第2层报头。
[0042]
在第二方面的进一步实现方式中,该容量数据包值是针对传输控制协议(tcp)定义的,并且定义了解析深度,用于由数据包处理单元解析从第4层报头开始的任何报头。tcp可以促进在通过ip网络通信的设备上运行的应用程序之间的可靠、有序和错误检查的数据传输。传输层或l4的协议被配置为为应用程序提供主机到主机的通信服务。l4可以促进面向连接的通信、可靠性、流量控制和多路复用。通过为tcp定义l4的解析深度,pdc包括从l4报头开始的所有报头。因此,包括l2和l3报头在内的实际解析深度大于通告的l4解析深度。
[0043]
根据第三方面或第四方面所述的方法可以分别扩展为与根据第一方面或第二方面所述的数据包处理设备的实现方式相对应的实现方式。因此,该方法的实现方式包括数据包处理设备的相应实现方式的特征。
[0044]
根据第三方面或第四方面所述的方法的优点与根据第一方面或第二方面所述的相应数据包处理设备的实现方式的优点分别相同。
[0045]
本公开的其他系统、方法、特征和优点对于本领域技术人员在研究以下附图和详细描述后将会或者变得显而易见。旨在将所有这些附加的系统、方法、特征和优点包括在本说明书内、在本公开的范围内,并且由所附权利要求保护。
[0046]
除非另外限定,否则本文所使用的所有技术术语和/或科学术语与本技术所属领域内的普通技术人员普遍理解的含义相同。尽管在实践或测试本技术的实施例时可以使用与本文所描述的方法和材料相似或等同的方法和材料,但是以下描述了示例性的方法和/或材料。在冲突的情况下,将以本专利说明书(包括定义)为准。此外,材料、方法和示例仅仅是说明性的,而不一定是限制性的。
[0047]
本技术实施例的方法和/或系统的实现可以涉及自动执行或完成选定的任务。此外,根据本技术的方法和/或系统的实施例的实际仪器和设备,可以通过硬件、软件或固件或其组合使用操作系统来实现几个选定任务。
[0048]
例如,根据本技术的实施例用于执行选定任务的硬件可以被实现为芯片或电路。作为软件,根据本技术的实施例的选定任务可以被实现为由使用任何合适操作系统的计算机执行的多个软件指令。在本技术的示例性实施例中,根据如本文所述的方法和/或系统的示例性实施例的一个或多个任务由数据处理器执行,例如,用于执行多个指令的计算平台。可选地,数据处理器包括用于存储指令和/或数据的易失性存储器和/或用于存储指令和/或数据的非易失性存储器,例如,磁性硬盘和/或可移动介质。可选地,还提供网络连接。可
选地,也提供显示器和/或键盘或鼠标等用户输入设备。
附图说明
[0049]
在此仅通过示例的方式参考附图描述本技术的一些实施例。现在详细地具体参考附图,需要强调的是,所示出的细节为举例说明并且是出于说明性地论述本技术实施例的目的。就此而言,结合附图所做的描述使得本领域技术人员清楚如何实践本技术实施例。
[0050]
在附图中:
[0051]
图1是根据本技术原理的示例性网络系统的示意图;
[0052]
图2是根据本技术原理的示例性处理的流程图;
[0053]
图3是根据本技术原理的示例性处理的流程图;
[0054]
图4是根据本技术原理的示意性架构的示意图;
[0055]
图5是根据本技术原理的示意性架构的示意图;以及
[0056]
图6是根据本技术原理的示意性架构的示意图。
具体实施方式
[0057]
本技术在其一些实施例中涉及数字通信,并且更具体地,但非排他地,涉及数据包交换数据网络。
[0058]
根据本技术的一些实施例,提供了用于一个或一个以上协议数据单元(pdu)的一个或一个以上关键前缀不长于处理pdu的实体的解析深度能力(pdc)的装置和方法。装置可以包括并且方法可以涉及一个或多个系统、设备和/或计算机程序产品。
[0059]
装置可以包括并且方法可以涉及一个或一个以上数据包处理设备。数据包处理设备可以被配置用于处理在计算机网络中接收的数据包。数据包处理设备可以被配置用于处理一个或一个以上pdu。数据包处理设备可以被配置用于处理一个或多个数据包。数据包可以包括一个或一个以上pdu。可以通过一个或一个以上计算机网络接收数据包。
[0060]
该装置可以涉及并且方法可以包括处理一个或多个数据包的方法。数据包处理设备可以被配置为实施方法的一个或多个步骤。数据包处理设备可以包括和/或利用被配置用于处理数据包的硬件和/或软件。数据包处理设备可以包括和/或利用被配置为实现方法的一个或多个步骤的硬件和/或软件。数据包处理设备可以包括被配置为执行方法的一个或多个步骤的电路。数据包处理设备可以包括和/或利用一个或一个以上被配置为存储方法的一个或多个步骤的存储介质。数据包处理设备可以包括和/或利用一个或一个以上处理器,其被配置为执行方法的一个或多个步骤。
[0061]
该方法可以涉及并且数据包处理设备可以包括一个或一个以上计算机软件产品。软件产品可以包括软件和/或硬件。软件产品可以包括程序代码,其在一个或一个以上计算机上执行时用于执行方法。软件产品可以包括程序代码,其在一个或一个以上计算机上执行时用于执行方法的一个或多个步骤。
[0062]
数据包处理设备和方法可以包括或涉及一个或一个以上计算机可读存储介质。计算机可读介质可以是非瞬态的。计算机可读介质可包括或涉及一个或一个以上存储器。计算机可读介质可以存储机器可读指令。机器可读指令可以包括方法。机器可读指令可包括方法的一个或多个步骤。存储介质可以在其中存储一个或一个以上计算机程序产品。当由
处理器执行时,计算机程序产品可以使方法的一个、一些或所有步骤被执行。数据包处理设备可以包括软件产品和/或存储介质。数据包处理设备可以包括或涉及处理器。
[0063]
数据包处理设备可以涉及或被包括在一个或一个以上个人计算机中。数据包处理设备可以涉及或被包括在一个或一个以上服务器中。数据包处理设备可以包括一个或一个以上网络接口卡(nic)、交换机、路由器、网络设备和/或中间盒,例如,防火墙、网络地址转换器、负载平衡器和/或深度数据包检测盒。
[0064]
数据包处理设备可以被配置用于接收一个或一个以上容量数据包。容量数据包的接收可以在一个或一个以上计算机网络连接与一个或一个以上远程设备的设置期间进行。方法可以包括网络连接的设置。方法可以包括容量数据包的接收。远程设备可以包括数据包处理设备的一个、一些或所有特征。网络连接可以通过有线和/或无线硬件。容量数据包的接收可以来自远程设备。容量数据包的接收可以来自一个或一个以上中央网络节点。
[0065]
容量数据包可以包括pdu。容量数据包可包括一个或一个以上ip数据包。容量数据包可包括一个或一个以上报头。报头可以包括网际协议(ip)报头。报头可以包括传输控制协议(tcp)报头。容量数据包可以包括tcp有效载荷。容量数据包可以包括tcp段。有效载荷可以包括tcp段。容量数据包可包括一个或一个以上pdc通告。pdc通告可以指示一个或一个以上远程设备的一个或一个以上相应的pdc。报头可以包括pdc通告。
[0066]
该方法可以包括从容量数据包的报头解码一个或一个以上容量数据包值。pdc通告可以包括容量数据包值。可以在设置期间实现解码。容量数据包值可以指示一个或一个以上解析深度。解析深度可以是远程设备的。数据包处理设备可以被配置用于解析容量数据包值。解码可以包括通告远程设备的pdc。容量数据包值可以指示远程设备的pdc。
[0067]
数据包处理设备和/或远程设备可以包括一个或多个模块。第一模块可以生成pdc通告。第二模块可以在传输到对等网络节点(例如,数据包处理设备和/或远程设备)时截取pdc通告。截取pdc通告可以促进将通告的pdc值减小到适用于第二模块的新值。
[0068]
替代地或附加地,可查询一个或一个以上网络实体。网络实体可以包括为一些或所有网络存储pdc数据的协调器实体。在一些实施例中,一个或一个以上中央节点,例如,卸载交换机,促进确保传输层数据包的前缀不长于远程设备的pdc。中央节点可以促进传输数据的分段,从而确保传输层数据包的前缀不长于远程设备的pdc。
[0069]
该方法可以包括根据容量数据包值编码一个或多个传输层数据包。编码可以包括截取pdc通告。编码可以包括减少通告的pdc值。数据包处理设备可以被配置用于编码传输层数据包。编码传输层数据包可以确保传输层数据包的前缀不长于远程设备的pdc。
[0070]
方法可以包括通过计算机网络将传输层数据包发送到远程设备。发送可以是编码的传输层数据包的。数据包处理设备可以被配置用于传输层数据包的发送。
[0071]
计算机网络可以包括软件定义网络(sdn)。sdn可以促进动态和编程高效的网络配置。sdn可以提高网络性能和监控。sdn可以分离网络数据包的转发过程与路由过程。sdn可以将网络智能集中在一个网络组件中。sdn的控制平面可以包括一个或多个控制器。
[0072]
在一些实施例中,数据包处理设备可以被配置为使用具有最少协议机制的简单无连接通信模型。例如,数据包处理设备可以被配置为根据用户数据报协议(udp)编码传输层数据包。udp的使用可以提供数据完整性和端口号的校验和,用于在数据包处理设备和远程设备处寻址不同功能。
[0073]
在一些实施例中,可以封装数据包。网络可以包括云环境。主机实体可以促进确保传输层数据包的前缀不长于虚拟机和/或主机流量的pdc。根据需要,可以向传输的数据包添加额外的报头以指示相关的pdc。
[0074]
本技术的一些实施例可以使用网络虚拟化技术,例如,虚拟可扩展局域网(vxlan)。方法可以包括在第4层udp数据报中封装osi第2层以太网帧。vxlan端点可以包括虚拟或物理交换机端口。由于基础架构报头对于处理pdu的虚拟机或应用程序是未知的,因此使用vxlan封装,可以将pdu的多字节透明地减少到虚拟机或应用程序的pdc。
[0075]
在一些实施例中,例如,当在网络接口级别可能需要纠错时,数据包处理设备的应用程序可以使用,例如,传输控制协议(tcp)和/或流控制传输协议(sctp)。
[0076]
数据包处理设备可以被配置用于执行一个或一个以上强制功能。方法可以包括执行强制功能。强制功能可以确保一个或多个传输层数据包的一个或一个以上关键前缀符合容量数据包值。强制功能可以确保每个传输层数据包的关键前缀符合容量数据包值。强制功能可以包括截取pdc通告。强制功能可以包括减少通告的pdc值。编码传输层数据包可以包括强制功能。
[0077]
数据包处理设备可以被配置为具有不同的pdc,用于在传输层处理数据包。数据包处理设备可以被配置为在不同容量数据包的报头中编码指示不同解析深度的不同容量数据包值。不同的解析深度可以是数据包处理设备的和/或一个或一个以上附加设备的。数据包处理设备可以被配置为在设置期间发送不同容量数据包。附加设备可以包括数据包处理设备和/或远程设备的特征。
[0078]
容量数据包可以包括传输控制协议(tcp)syn数据包。通过包括远程设备的解析深度,例如,在tcp选项中,在经由tcp syn数据包的连接发起期间,可以确保对于在初始tcp syn数据包后从数据包处理设备传输到远程设备的所有数据包符合远程设备的pdc。在稍后阶段编码/解码容量数据包值,可能导致在容量数据包值的编码/解码之前传输的数据包不符合远程设备的pdc。
[0079]
容量数据包可以包括quic初始数据包。解析深度值可以定义为传输参数。quic具有更短的延迟,并且比tcp更灵活。通过将解析深度值定义为quic初始数据包的传输参数之一,可以确保在quic初始数据包后从数据包处理设备传输的所有数据包符合远程设备的pdc。在稍后阶段编码/解码容量数据包值,可能导致在容量数据包值的编码/解码之前传输的数据包不符合远程设备的pdc。
[0080]
数据包处理设备可以被配置为根据容量数据包值更新数据包的第2层报头。当为开放系统互连(osi)模型的数据链路层或第2层定义解析深度时,它包括所有数据包报头,包括l2、第3层(l3)、第4层(l4)和任何其他报头。因此,解析深度不是报头特定的。来自不同级别的解析深度通告可以由第2层硬件模块修改,其可以更新通告的深度,以补偿软件模块未考虑的第2层报头。
[0081]
数据包处理设备可以被配置为编码指示解析深度的容量数据包值。解析深度可以包括数据包处理设备的pdc。解析深度可以包括不同网络设备的pdc。可以由数据包处理设备在容量数据包中编码容量数据包值。可以在容量数据包的报头中编码容量数据包值。容量数据包值可用于在传输层处理数据包。可以为传输控制协议(tcp)定义容量数据包值。容量数据包值可以定义解析深度,用于由数据包处理单元解析从第4层报头开始的任何报头。
[0082]
数据包处理设备可以被配置用于发送容量数据包。发送可以在计算机网络连接与远程设备的设置期间。可以发送到远程设备。远程设备可以包括数据包处理设备的一个、一些或所有特征。远程设备可以包括对等设备和/或中央节点。
[0083]
装置可以包括并且方法可以涉及一个或一个以上非暂时性计算机可读存储介质。计算机可读存储介质可以在其中存储计算机程序产品。该方法可以涉及并且装置可以包括一个或一个以上计算机软件产品。计算机程序产品可包含计算机软件产品。当由处理器执行时,计算机程序产品可以使方法被执行。软件产品可以包括程序代码,其在一个或一个以上计算机上执行时用于执行方法。方法可以包括在计算机网络连接与远程设备的设置期间接收容量数据包。该方法可以包括在设置期间解码来自容量数据包的报头的解析深度值。方法可以包括根据解析深度值编码传输层数据包。该方法可以包括通过计算机网络将传输层数据包发送到远程设备。该方法可以包括在容量数据包的报头中编码指示解析深度的容量数据包值。容量数据包值可用于在传输层处理数据包。方法可以包括在计算机网络连接与远程设备的设置期间发送容量数据包。
[0084]
在详细说明本技术的至少一个实施例之前,应理解,本技术并不一定局限于它在细节构造上的应用和以下说明中所提出的附图和/或示例所示出的部件和/或方法的排列。本技术能够具有其他实施例或者能够以各种方式实践或实施。
[0085]
所属技术领域的技术人员知道,本技术的各个方面可以实现为系统、方法或计算机程序产品。因此,本技术的各个方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)的形式,或者结合软件和硬件方面的实施例,该软件和硬件方面此处通常可以被称为“电路”、“模块”或者“系统”。此外,本技术的方面可以采取计算机程序产品的形式,该计算机程序产品体现在一个或多个计算机可读介质上,其中计算机可读程序代码体现在该计算机可读介质上。
[0086]
可以采用一个或多个计算机可读介质的任意组合。计算机可读存储介质可以是有形设备,其可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是例如,但不限于电子存储设备,磁存储设备,光存储设备,电磁存储设备,半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘,硬盘,随机存取存储器(ram),只读存储器(rom),可擦除可编程读取器-仅存储器(eprom或闪存),静态随机存取存储器(sram),便携式光盘只读存储器(cd-rom),数字通用光盘(dvd),记忆棒,软盘,机械编码装置,例如,在其上记录有指令的凹槽中的穿孔卡或凸起结构,以及前述的任何合适的组合。如本文所用,计算机可读存储介质不应被解释为暂时性信号本身,例如,无线电波或其他自由传播的电磁波,通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)或通过电线传输的电信号。
[0087]
包括体现在计算机可读介质上的计算机可读程序指令的计算机程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0088]
本文描述的计算机可读程序指令可以经由网络从计算机可读存储介质或外部计算机或外部存储设备下载到相应的计算/处理设备,例如,因特网,局域网,广域区域网络和/或无线网络。网络可以包括铜传输电缆,光传输光纤,无线传输,路由器,防火墙,交换机,网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网
络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
[0089]
本技术中用于执行本技术操作的计算机程序指令可以是用一种或多种程序设计语言的任何组合编写,例如,汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,该编程语言包括面向对象的编程语言,例如c 等,以及过程式编程语言,例如,“c”语言或类似的编程语言。
[0090]
计算机可读程序指令可以完全在用户的计算机上,部分在用户的计算机上,作为独立的软件包,部分地在用户的计算机上,部分地在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(用于例如,通过互联网使用互联网服务提供商)。为了执行本技术的各个方面,在一些实施例中,包括例如,可编程逻辑电路、现场可编程门阵列(field-programmablegatearray,fpga)或可编程逻辑阵列(programmablelogicarrays,pla)的电子电路可以利用计算机可读程序指令的状态信息来执行该计算机可读程序指令,为了执行本技术的方面。
[0091]
下面将参照根据本技术实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述本技术的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。
[0092]
附图中的流程图和框图显示了根据本技术的各种实施例的系统,方法和计算机程序产品的可能实现的架构,功能和操作。在这方面,流程图或框图中的每个框可以表示模块,段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中提到的功能可以不按图中所示的顺序发生。例如,连续示出的两个方框实际上可以基本上同时执行,或者这些方框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图说明的每个框以及框图和/或流程图说明中的框的组合可以由执行特定功能或动作的基于专用硬件的系统来实现,或由专用硬件和计算机指令的组合来执行或运行。
[0093]
现在参考附图,图1示出了示例性数据包处理系统100的示例性框图。系统100包括数据包处理系统141、181和/或191。系统141可以包括用于控制系统141和系统141的相关组件的操作的处理器143。在本技术的一些实施例中,系统141包括存储器155。处理器143执行在系统141上运行的软件,例如,包括方法的一个或多个步骤的软件。
[0094]
存储器155包括任何合适的存储技术,例如,硬盘驱动器。存储器155存储包括应用程序159的软件。应用程序159可包括软件,其包括方法的一个或多个步骤。由系统141使用的应用程序159可以包括计算机可执行指令,其包括方法的步骤。替代地或附加地,一些或所有计算机可执行指令,例如,包括方法的步骤的那些计算机可执行指令,可以体现在硬件或固件中。系统141可以执行由软件体现的指令,以执行各种功能,例如,方法的一个或多个步骤。
[0095]
系统100的网络连接包括局域网(lan)153和广域网(wan)169,但也可以包括其它网络。系统100包括网络接口控制器(nic)151和用于通过wan 169(例如,因特网171)建立通信的其他装置。系统141通过nic 151连接到其他系统。系统141在支持连接到一个或多个远
程系统(例如,系统181和191)的网络环境中操作。系统181和191可以被包括在和/或涉及一个或多个个人计算机或服务器,其包括许多或所有上述关于系统141的元件。
[0096]
应当理解,所示的网络连接是示例性的,并且可以使用系统141、181和191之间建立通信链路的其他装置。假设存在各种众所周知的协议,例如,tcp/ip、udp/ip、quic、以太网、ftp、http等,并且系统100可以在客户端-服务器配置中操作,包括一个或一个以上基于网络的服务器。基于网络的服务器可以被配置为将数据传输到任何其他合适的系统,例如,系统181和191。
[0097]
系统141、181和/或191还可以包括各种其他组件,例如,电池、扬声器和天线(未示出)。
[0098]
系统181和191可以是便携式设备,例如,膝上型电脑、智能手机或用于存储、传输和/或传输相关信息的任何其他合适的设备。系统181和191可以包括其他设备。这些设备可以与系统100相同或不同。差异可以与硬件组件和/或软件组件有关。
[0099]
系统100可以包括所公开的装置和/或设备的一些或所有特征。系统100可以被配置为实施所公开方法的一个、一些或所有步骤。数据包处理设备可以包括系统141、181和/或191。远程设备可以包括系统141、181和/或191。系统141、181和/或191可以包括和/或执行所公开的计算机软件产品。存储器155可以在其中存储有计算机程序产品,该计算机程序产品在由处理器(例如,处理器143)执行时使方法的一个或多个步骤被执行。计算机网络连接可以包括lan 153和/或wan 169。
[0100]
系统181和/或191可以在容量数据包的报头中编码指示系统181和/或191的硬件的解析深度的容量数据包值。系统181和/或191可以在计算机网络连接的设置期间执行容量数据包的发送。
[0101]
处理器143可以执行来自容量数据包的报头的解析深度值的解码。处理器143可以根据解析深度值执行传输层数据包的编码。处理器143可以通过lan 153和/或wan 169向系统181和/或191发送传输层数据包。
[0102]
系统141、181和/或191可以运行tcp。示例性地,系统141(例如,nic 151)的pdc属性可以是40字节,并且系统181和/或191的pdc属性可以是60字节。系统141可以存储和/或访问系统181和/或191的pdc属性。系统181和/或191可以存储和/或访问系统141的pdc属性。当nic 151向系统181和/或191发送tcp段时,nic 151被配置为将发送的数据包中的tcp选项字段限制为20字节。类似地,当系统181和/或191的nic向a发送tcp段时,系统181和/或191的nic被配置为将其发送的数据包中的tcp选项字段限制为0字节,即,不应有选项字段。
[0103]
该方法可以包括为多个网络实体中的每一个定义pdc属性。网络实体可以包括主机和/或节点,例如,系统141、181和/或191。方法可以包括将网络实体之一的pdc属性传输到网络实体中的第二个。网络实体可以运行一个或一个以上连接设置协议,例如,tcp、quic和/或rdma。网络实体可以通过一个或一个以上集中管理网络(例如,sdn)进行通信。集中管理网络可以由中央节点管理,例如,sdn控制器或网络管理系统(nms)。中央节点可以获取网络实体的pdc属性信息。中央节点可以传输关于一个、一些或所有网络实体的信息。可以根据需要和/或相关地执行传输。
[0104]
该方法可以包括确定第一网络设备(例如,系统141)的本地pdc。本地pdc可以是nic 151。本地pdc可以是关于数据包的开始。本地pdc可以相对于数据包的协议报头之一的
开始。
[0105]
该方法可以包括通告本地pdc的值。通告可以包括指示本地pdc的数据的通告。通告可以是针对第二网络设备,例如,系统181和/或191。通告可以在第一和第二网络设备之间的连接设置期间执行。替代地或附加地,pdc值的通告可以针对中央网络节点。替代地或附加地,方法可以包括允许中央网络节点获得本地设备的pdc值。在一些实施例中,系统181和/或191可以包括中央节点。
[0106]
方法可以包括维护每个对等网络设备的pdc值。可以在连接设置期间从对等网络设备获得pdc值。替代地或附加地,可以从中央节点获得pdc值。
[0107]
方法可以包括一个或一个以上强制功能。可以由机器可读代码实现强制功能。机器可读代码可以包括在所公开的计算机软件产品中。机器可读代码可以存储在存储器155中和/或可以由处理器143执行。当向对等网络设备发送数据包时,强制功能可以应用对等网络设备(例如,系统181和/或191)的pdc,从而强制数据包的关键前缀在对等网络设备的pdc内。因此,可以防止实现强制功能的网络设备(例如,系统141)生成数据包,其中关键报头或其一部分超过对等设备(例如,系统181和/或191)的pdc。
[0108]
根据本技术的一些实施例,多个网络节点可以通过一个或一个以上网络协议相互通信。网络节点中的一个或一个以上可维持指示一个或一个以上对等节点的一个或以上解析深度的一个或一个以上属性。每个网络节点可以使用对等节点的解析深度作为限制数据包报头长度的标准,来生成用于传输的数据包。节点不能生成任何超出对等节点解析深度的报头,例如,可选报头、扩展报头或类型/长度/值(tlv)字段。
[0109]
在一些实施例中,网络设备包括和/或实现多个模块。多个模块中的第一个可以执行pdc值的通告。模块中的第二个可以执行pdc通告的截取。可以在传输到对等网络节点时执行截取。可以将通告的pdc值减少到适用于第二模块的新值。在通告时,第二模块可以执行pdc通告的截取。在截取时,可以将通告的pdc值减小到新值。
[0110]
可以相对于数据包的开头来定义pdc。替代地或附加地,可以相对于特定层中的特定协议报头的开头来定义pdc。例如,如果仅针对第4层(例如,针对tcp)定义解析深度,则定义的解析深度可以包括从第4层报头开始的报头。因此,包括l2和l3报头的实际解析深度可以大于通告的l4解析深度。pdc的起始点,例如,数据包的开始或特定报头的开头,可以事先商定和/或关于通信网络设备定义和/或可以作为通告的一部分通告。
[0111]
中央网络实体可以包括控制器和/或网络管理系统。中央网络实体可以读取每个网络设备的pdc。中央网络实体可以在每个网络设备中执行对等网络设备的pdc的配置。可以通过网络管理协议进行配置,例如,网络配置协议(netconf)和/或简单网络管理协议(snmp),或任何其他合适的网络管理协议。
[0112]
连接设置期间的通告可以适用于面向连接的协议,例如,tcp。使用中央实体的通告可以适用于面向连接和/或无连接的协议,例如,udp。
[0113]
软件产品可以包括一个或一个以上用于低层截取的扩展。解析深度通告可以发生在两个连接端点之间,例如,系统141和191。端点可以包括多个层。这些层可以在不同的模块中实现,例如,在软件中实现的应用层模块和在硬件中实现的链路层模块。低层模块可以截取端点的通告。低层模块可以基于当前层的相应报头深度来修改所通告的解析深度。例如,第4层软件模块可以通告从第4层报头开始的解析深度。可以由第2层硬件模块修改通
告。l2模块可以更新通告的深度,以补偿软件模块未考虑的第2层报头。
[0114]
现在参见图2,其示意性地示出了示意性解析深度实现过程200。过程200可以由图1示出的系统141、181和/或191实现。过程200可以在步骤201开始。
[0115]
在步骤201,数据包处理设备(例如,系统141、181和/或191)可以在计算机网络连接与远程设备的设置期间接收容量数据包。容量数据包的接收可以来自远程设备。替代地,容量数据包的接收可以来自中央网络节点。容量数据包可以包括报头,其包括指示远程设备的pdc的编码容量数据包值。
[0116]
在步骤203,数据包处理设备从容量数据包的报头解码容量数据包值。可以在网络连接的设置期间实现解码。
[0117]
在步骤205,数据包处理设备根据解码的容量数据包值编码一个或多个传输层数据包。编码传输层数据包可以确保传输层数据包的前缀不长于远程设备的pdc。
[0118]
在步骤207,数据包处理设备通过计算机网络将编码的传输层数据包发送到远程设备。发送可以是编码的传输层数据包的。
[0119]
现在参见图3,其示意性地示出了示意性解析深度通告过程300。过程300可以由图1示出的系统141、181和/或191实现。过程300可以在步骤301开始。
[0120]
在步骤301,数据包处理设备(例如,系统141、181和/或191)在容量数据包的报头中编码指示pdc的容量数据包值。pdc可以是数据包处理设备的和/或一个或一个以上附加设备的,例如,是关于图2中描绘的过程200描述的远程设备的。步骤301可以包括pdc通告封装。可以将pdc通告数据集成到连接设置协议中。编码的容量数据包可以包括传输控制协议(tcp)syn数据包。可以使用tcp syn数据包中的tcp选项来通告解析深度,即,在连接发起期间。
[0121]
在步骤303,数据包处理设备在与对等设备(例如,与关于图2中描绘的过程200描述的设备之一)的网络连接设置期间发送容量数据包。
[0122]
网络实体可以运行一个或一个以上连接设置协议,例如,tcp、快速udp互联网连接(quic)和/或远程直接存储器访问(rdma)。通过将pdc,例如,包括在tcp选项中,在经由tcp syn数据包的连接发起期间,可以确保在初始tcp syn数据包发送后从对等设备传输到数据包处理设备的所有数据包符合数据包处理设备的pdc。
[0123]
现在参见图4,其示出了示意性容量数据包400的示意图。容量数据包400可以由图1所示的系统141、181和/或191产生。容量数据包400可以经由网络连接发送,例如,图1所示的连接153和/或169。
[0124]
可以在图3所示的步骤301处编码容量数据包400。可以在图3所示的步骤303处发送容量数据包400。可以在图2所示的步骤201处接收容量数据包400。可以在图2所示的步骤203处解码容量数据包400。
[0125]
容量数据包400可以包括ip数据包,其包含传输控制协议(tcp)段。容量数据包可以包括tcp syn数据包。数据包400可以包括有效载荷401、tcp选项403、tcp报头405、ip报头407和以太网报头409。
[0126]
容量数据包400可以通过pdc通告封装生成。可以使用tcp选项403来通告解析深度,即,在连接发起期间。数据包处理设备可以在与对等设备(例如,与关于图2中描绘的过程200描述的设备之一)的网络连接设置期间发送容量数据包400。通过将pdc,例如,包括在
tcp选项中,在经由tcp syn数据包的连接发起期间,可以确保在初始tcp syn数据包发送后从对等设备传输到数据包处理设备的所有数据包符合数据包处理设备的pdc。
[0127]
在一些实施例中,网络实体可以运行quic传输层网络协议。因此,设置密钥和支持协议的交换可以是初始握手过程的一部分。在网络连接打开时,quic连接设置使用被配置为包括用于未来数据包的数据的quic初始数据包,从而无需设置tcp连接,然后使用附加数据包协商安全协议。可以类似地服务其他协议,将多个步骤组合成单个请求-响应。接收到的数据可用于初始设置中的后续请求,以及可以用于否则必须作为单独连接进行协商的后续请求。
[0128]
现在参见图5,其示出了示意性quic初始数据包500的示意图。quic初始数据包500可以包括quic传输协议中的pdc通告。quic初始数据包500可由图1中所示的系统141、181和/或191生成。quic初始数据包500可以经由网络连接发送,例如,图1中所示的连接153和/或169。
[0129]
可以在图3所示的步骤301处编码quic初始数据包500。可以在图3所示的步骤303处发送quic初始数据包500。可以在图2所示的步骤201处接收quic初始数据包500。可以在图2所示的步骤203处解码quic初始数据包500。
[0130]
quic初始数据包500包括传输参数501、quic报头503、udp报头505、ip报头507和以太网报头509。传输参数501与quic连接有关。在quic初始数据包500中,pdc被定义为传输参数501之一。
[0131]
可以通过pdc通告封装生成quic初始数据包500。可以使用传输参数501通告解析深度。数据包处理设备可以在与对等设备(例如,与关于图2中描绘的过程200描述的设备之一)的网络连接设置期间发送quic初始数据包500。通过将pdc包括在传输参数501中,在连接发起期间,可以确保在quic初始数据包500发送后从对等设备传输到数据包处理设备的所有数据包符合数据包处理设备的pdc。
[0132]
通过将解析深度包括在quic网络协议本身中,通告的解析能力可以实现来自不同供应商的网络设备之间的灵活性和互操作性。
[0133]
可以以各种方式通告解析深度,是所提出的方法的变体。例如,不仅可以在连接设置期间,而且可以在连接的生命周期期间的任何时间通告所通告的pdc。另一种可能的变体是使用否定通告,即,仅在超过pdc时才通告pdc,作为发送到对等网络设备的错误消息的形式。
[0134]
在一些实施例中,pdc可以被包括在传输的数据包的第2级有效载荷中。现在参见图6,其示出了示意性数据包600的示意图。数据包600可以包括pdc通告。数据包600可以由图1所示的系统141、181和/或191产生。可以经由网络连接发送数据包600,例如,图1中所示的连接153。
[0135]
可以在图3所示的步骤301处编码数据包600。可以在图3所示的步骤303处发送数据包600。可以在图2所示的步骤201处接收数据包600。可以在图2所示的步骤203处解码数据包600。
[0136]
数据包600包括第2级有效载荷601和报头603。在数据包600中,pdc被包括在有效载荷601中。数据包600可以被配置为涉及任何合适的网络协议。
[0137]
在一些实施例中,可以通过pdc通告封装生成数据包600。可以使用有效载荷601通
告解析深度。数据包处理设备可以在与对等设备(例如,与关于图2中描绘的过程200描述的设备之一)的网络连接设置期间发送数据包600。通过将pdc包括在有效载荷601中,例如,在连接发起期间,可以确保在数据包600发送后从对等设备传输到数据包处理设备的所有数据包符合数据包处理设备的pdc。
[0138]
预期在本技术成熟的专利期间,将开发许多相关的系统、方法和计算机程序,并且安全代码和加密技术的范围旨在包括所有这些新技术的先验。
[0139]
如本文所用,术语“约”是指10%。
[0140]
术语“包含”、“包含”、“包括”、“包括”、“具有”及其组合物表示“包括但不限于”。该术语包含术语“组成”和“基本上组成”。
[0141]“基本上组成”是指组合物或方法可包括另外的成分和/或步骤,但仅在其他成分和/或步骤不实质上改变要求保护的组合物或方法的基本和新颖特征的情况下。
[0142]
如本文所用,单数形式“一”,“一个”和“该”包括复数指代,除非上下文另有明确说明。例如,术语“化合物”或“至少一种化合物”可包括多种化合物,包括其混合物。
[0143]
本文中所使用的“示例性”一词是指“作为示例、例子或实例”。被描述为“示例性”的任何实施例不必被解释为比其他实施例优选或有利和/或排除将特征与其他实施例结合。
[0144]
本文所使用的“可选地”一词是指“在一些实施例中提供并且未在其他实施例中提供”。本技术的任何具体实施例可以包括多个“可选的”特征,除非这些特征相冲突。
[0145]
在整个申请中,本技术的各个实施例可以以范围形式呈现。应该理解,范围形式的描述仅仅是为了方便和简洁,且不应被解释为对本技术范围的僵化限制。因此,应该认为范围的描述具体公开了所有可能的子范围以及该范围内的各个数值。例如,应该认为对诸如1至6的范围的描述具有特别公开的子范围,例如,从1到3、1到4、1到5、2到4、从2到6、从3到6等,在该范围内的个别数字,例如,1、2、3、4、5和6。无论范围的广度如何,这都适用。
[0146]
无论何时在本文中指示数值范围,其意图包括在所指示的范围内的任何引用的数字(分数或积分)。短语第一指示数字和第二指示数字“之间的范围”和“从”第一指示数字“到”第二指示数字“的范围”在本文中可互换使用,并且意在包括该第一指示数字和该第二指示数字以及它们之间的所有小数和整数。
[0147]
本文中所使用的“示例性”一词是指“作为示例、例子或实例”。被描述为“示例性”的任何实施例不必被解释为比其他实施例优选或有利和/或排除将特征与其他实施例结合。
[0148]
本文所使用的“可选地”一词是指“在一些实施例中提供并且未在其他实施例中提供”。本技术的任何具体实施例可以包括多个“可选的”特征,除非这些特征相冲突。
[0149]
应当理解,为了清楚起见,在单独的实施方案的上下文中描述的本技术的某些特征也可以在单个实施方案中组合提供。相反,为了简洁起见,在单个实施方案的上下文中描述的本技术的各种特征也可以单独提供或以任何合适的子组合提供或者在本技术的任何其他描述的实施方案中合适提供。在各种实施例的上下文中描述的某些特征不被认为是那些实施例的必要特征,除非该实施例在没有那些元件的情况下不起作用。
[0150]
尽管已经结合本技术的具体实施方案描述了本技术,但显然许多替代,修改和变化对于本领域技术人员而言是显而易见的。因此,旨在涵盖落入所附权利要求的精神和广
泛范围内的所有这些替代,修改和变化。
[0151]
本说明书中提及的所有出版物,专利和专利申请均通过引用整体并入本说明书中,其程度如同每个单独的出版物,专利或专利申请被具体和单独地指出通过参考方式并入本文中。另外,本技术中任何参考文献的引用或标识不应被解释为承认这样的参考文献可用作本技术的现有技术。在使用章节标题的范围内,它们不应被解释为必然限制。
[0152]
此外,本技术的任何优先权文件均在此全文引用且并入本文。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献