CN118118561A - 传输层数据包的封装方法和装置 - Google Patents
传输层数据包的封装方法和装置 Download PDFInfo
- Publication number
- CN118118561A CN118118561A CN202211505225.3A CN202211505225A CN118118561A CN 118118561 A CN118118561 A CN 118118561A CN 202211505225 A CN202211505225 A CN 202211505225A CN 118118561 A CN118118561 A CN 118118561A
- Authority
- CN
- China
- Prior art keywords
- packet
- data packet
- application layer
- layer data
- peid
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000004806 packaging method and process Methods 0.000 title claims abstract description 23
- 230000005540 biological transmission Effects 0.000 claims abstract description 103
- 238000005538 encapsulation Methods 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本申请提供一种传输层数据包的封装方法和装置。本申请传输层数据包的封装方法,包括:获取第一传输层数据包的可封装数据长度;获取待封装的第一应用层数据包,所述第一应用层数据包对应一个数据包封装标识符PEID,所述PEID用于指示独立发送或者合并发送所述第一应用层数据包;根据所述PEID和所述第一传输层数据包的可封装数据长度对所述第一应用层数据包进行封装。本申请可以避免由于传输层和应用层的相对独立造成的破坏应用层特定功能的情况,提升应用层的体验质量。
Description
技术领域
本申请涉及网络技术,尤其涉及一种传输层数据包的封装方法和装置。
背景技术
网络设备之间要实现通信,需要定义一些规则进行信息匹配才能交流,这样的交流规则被定义为各种协议。数据在网络传输过程中,首先会在发送端协议栈自上而下进行数据包的封装,然后经过网络传输到达接收端,最后接收端协议栈则自下而上对数据包进行解封装。在逐层封装的过程中,上层协议数据包作为下层协议的载荷,同时下层协议会加入该层的协议头。
相关技术中,例如,快速用户数据报协议网络传输层协议(Quick User DatagramProtocol Internet Connection,QUIC)为了降低QUIC包头开销,QUIC在封装数据包(Datagram)帧时,如果新的Datagram帧的加入不会超过QUIC包的最大传输单元(MaximumTransmission Unit,MTU),则会将新的Datagram帧封装到QUIC包。因而在一个QUIC包中可能存在出现多个Datagram帧的情况,亦即一个QUIC包中有可能出现多个应用层数据包。
但是,传输层如果直接按照传输层规则封装应用层数据包,有可能会破坏应用层的特殊设计,从而影响应用层的体验质量。
发明内容
本申请提供一种传输层数据包的封装方法和装置,以避免由于传输层和应用层的相对独立造成的破坏应用层特定功能的情况,提升应用层的体验质量。
第一方面,本申请提供一种传输层数据包的封装方法,包括:获取第一传输层数据包的可封装数据长度;获取待封装的第一应用层数据包,所述第一应用层数据包对应一个数据包封装标识符PEID,所述PEID用于指示独立发送或者合并发送所述第一应用层数据包;根据所述PEID和所述第一传输层数据包的可封装数据长度对所述第一应用层数据包进行封装。其中,独立发送第一应用层数据包是指将第一应用层数据包单独封装到第一传输层数据包中进行发送,在这种情况下,第一传输层数据包只包括第一应用层数据包,不包括其他应用层数据包;合并发送第一应用层数据包是指将第一应用层数据包与其他应用层数据包合并封装在第一传输层数据中进行发送,在这种情况下,第一传输层数据包中包括2个或更多个应用层数据包。
本申请实施例,网络设备通过在封装应用层数据包时基于其特性标记PEID,可以感知应用层数据包的特性,并根据应用层要求确定传输层的封装合并规则,避免了由于传输层和应用层的相对独立造成的破坏应用层特定功能的情况,提升应用层的体验质量。
传输层可以采用用户数据报协议(User Datagram Protocol,UDP),也可以采用QUIC协议,还可以采用其他协议,本申请对此不做具体限定。通常网络设备的传输层在封装该层的数据包时,放入载荷的是应用层数据包,再在载荷前加上包头,即可得到封装完成的传输层数据包。例如,传输层的UDP包,其载荷部分是应用层的RTP包,其包头是UDP包头。又例如,QUIC协议中,每个应用层数据包对应一个QUIC Datagram帧,在封装应用层数据包(Datagram)帧时,如果新的Datagram帧的加入不会超过QUIC包的最大传输单元(MaximumTransmission Unit,MTU),则会将新的Datagram帧封装到QUIC包。本申请实施例中,传输层数据包的封装过程可以是一个动态过程,其包括创建传输层数据包、封装传输层数据包以及封装完成传输层数据包三个阶段。
在第一方面的一种实现方式中,传输层数据包采用的传输层协议为QUIC协议。
上述第一传输层数据包可以是处于封装阶段的传输层数据包,即当获取下文的第一应用层数据包时,该第一传输层数据包中已封装入至少一个应用层数据包。此时,第一传输层数据包的可封装数据长度小于第一传输层数据包的MTU。可封装数据长度可以是第一传输层数据包的MTU与第一传输层数据包中已封装的至少一个应用层数据包的总长度之差。
在网络设备的应用层封装该第一应用层数据包时,对其标记了数据包封装标识符(Packet Encapsulation Identifier,PEID),该PEID用于指示独立发送或者合并发送第一应用层数据包,其中,独立发送表示应用层在封装第一应用层数据包时,根据其特性确定该数据包只能独立发送,不能与其他应用层数据包合并发送,否则会破坏应用层的特殊设计,从而影响应用层的体验质量;合并发送表示应用层在封装第一应用层数据包时,根据其特性确定该数据包可以与前面的应用层数据包合并发送,以提高传输层的封装效率,减少传输层的包头开销。
在一种可能的实现方式中,当传输层要对第一应用层数据包进行封装时,可以向应用层请求获取第一应用层数据包对应的PEID,由应用层通知传输层第一应用层数据包对应的PEID。例如,应用层可以调用传输层的接口函数,通过该接口函数写入第一应用层数据包对应的PEID。此外,应用层还可以通过该接口函数写入第一应用层数据包的首地址和包长度,以及其他信息,对此本申请实施例不做具体限定。
本申请实施例中,网络设备的应用层在封装应用层数据包时,可以对每个应用层数据包标记上文的PEID,该标记方法可以包括以下两种方式,以第一应用层数据包为例进行说明,第一应用层数据包可以是任意一个应用层数据包:
(1)当当前丢包率大于预设阈值时,将第一应用层数据包对应的PEID标记为指示独立发送;当当前丢包率小于或等于预设阈值时,将第一应用层数据包对应的PEID标记为指示合并发送。
该方式是根据抗丢包能力确定PEID。预先设置应用层数据包的抗随机丢包能力阈值X,如果当前丢包率大于阈值X,则PEID=False(表示独立发送),否则PEID=True(表示合并发送)。阈值X可以根据应用层需求进行设置,其取值包括但不限于5%,10%,20%,等等。需要说明的是,本申请实施例对阈值X的取值不做具体限定。
(2)当第一应用层数据包为重传包或者音频数据包时,将第一应用层数据包对应的PEID标记为指示独立发送第一应用层数据包;当第一应用层数据包为视频数据包时,将第一应用层数据包对应的PEID标记为指示合并发送第一应用层数据包。
该方式是根据优先级确定PEID。在音视频数据传输中,应用层数据包一般存在如下优先级:重传包=音频数据包>视频I帧数据包>视频P帧数据包。因此可以根据前述优先级的要求确定PEID,例如,如果应用层数据包为重传包或者音频数据包,PEID=False(表示独立发送);如果应用层数据包为视频数据包(I帧或P帧),PEID=True(表示合并发送)。需要说明的是,数据包的优先级还可以采用其他设定规则,以及根据优先级与PEID还可以采用其他的对应关系,本申请实施例对此不做具体限定。
在获取第一应用层数据包时,网络设备已经往第一传输层数据包中封装了至少一个应用层数据包,亦即第一传输层数据包不是新创建的传输层数据包,此时需要比较第一传输层数据包的可封装数据长度和第一应用层数据包的长度,若前者大于或等于后者,则表示第一传输层数据包的剩余长度足够用于封装第一应用层数据包;若前者小于后者,则表示第一传输层数据包的剩余长度不够用于封装第一应用层数据包。因此网络设备对第一应用层数据包进行封装可以包括以下几种情况:
1、第一传输层数据包的可封装数据长度大于或等于第一应用层数据包的长度
(1)若PEID指示合并发送第一应用层数据包,则将第一应用层数据包封装到第一传输层数据包中。
在第1种情况下,第一传输层数据包的可封装数据长度足够用于封装第一应用层数据包,则需要根据第一应用层数据包对应的PEID进一步判断是否合并发送第一应用层数据包。如上文所述,PEID指示合并发送第一应用层数据包,表示应用层封装第一应用层数据包时,基于其特性确定该第一应用层数据包可以与前面的应用层数据包合并发送,那么网络设备的传输层就可以将第一应用层数据包封装到第一传输层数据包中。
(2)若PEID指示独立发送第一应用层数据包,则将第一传输层数据包封装完毕,并创建第二传输层数据包;将第一应用层数据包封装到第二传输层数据包中。
如上文所述,PEID指示独立发送第一应用层数据包,表示应用层封装第一应用层数据包时,基于其特性确定该第一应用层数据包不能与前面的应用层数据包合并发送,只能独立发送,那么网络设备的传输层可以将第一传输层数据包封装完毕,并且新创建一个第二传输层数据包,将第一应用层数据包封装到该新创建的传输层数据包中。
2、第一传输层数据包的可封装数据长度小于第一应用层数据包的长度
第一传输层数据包封装完毕,并创建第三传输层数据包;将第一应用层数据包封装到第三传输层数据包中。
第一传输层数据包的可封装长度不够封装第一应用层数据包,此时网络设备的传输层可以将第一传输层数据包封装完毕,并且新创建一个第三传输层数据包,将第一应用层数据包封装到该新创建的传输层数据包中。
在一种可能的实现方式中,网络设备可以创建第四传输层数据包;获取待封装的第二应用层数据包;将第二应用层数据包封装到第四传输层数据包中。
网络设备的传输层创建一个新的传输层数据包(第四传输层数据包),此时由于第四传输层数据包新创建,还没有封装应用层数据包,而按照网络协议,通常下层协议的MTU大于上层协议的MTU,因此第四传输层数据包的可封装数据长度是大于第二应用层数据包的,可以将第二应用层数据包直接封装到第四传输层数据包,而无需根据第二应用层数据包对应的PEID判断是否合并发送第二应用层数据包。
通过上述方法传输层可以得到封装完毕的数据包,然后将该封装完毕的数据包发送给网络协议的下一层协议层(例如,IP层),由下一层协议层对该数据包进行封装。
第二方面,本申请提供一种封装装置,包括:获取模块,用于获取第一传输层数据包的可封装数据长度;获取待封装的第一应用层数据包,所述第一应用层数据包对应一个数据包封装标识符PEID,所述PEID用于指示独立发送或者合并发送所述第一应用层数据包;封装模块,用于根据所述PEID和所述第一传输层数据包的可封装数据长度对所述第一应用层数据包进行封装。
在一种可能的实现方式中,所述封装模块,具体用于当所述第一传输层数据包的可封装数据长度大于或等于所述第一应用层数据包的长度时,若所述PEID指示合并发送所述第一应用层数据包,则将所述第一应用层数据包封装到所述第一传输层数据包中。
在一种可能的实现方式中,所述封装模块,还用于若所述PEID指示独立发送所述第一应用层数据包,则将所述第一传输层数据包封装完毕,并创建第二传输层数据包;将所述第一应用层数据包封装到所述第二传输层数据包中。
在一种可能的实现方式中,所述封装模块,具体用于当所述第一传输层数据包的可封装数据长度小于所述第一应用层数据包的长度时,将所述第一传输层数据包封装完毕,并创建第三传输层数据包;将所述第一应用层数据包封装到所述第三传输层数据包中。
在一种可能的实现方式中,当获取所述第一应用层数据包时,所述第一传输层数据包中已封装入至少一个应用层数据包。
在一种可能的实现方式中,所述获取模块,还用于当当前丢包率大于预设阈值时,将所述PEID标记为指示独立发送;当所述当前丢包率小于或等于所述预设阈值时,将所述PEID标记为指示合并发送。
在一种可能的实现方式中,所述获取模块,还用于当所述第一应用层数据包为重传包或者音频数据包时,将所述PEID标记为指示独立发送;当所述第一应用层数据包为视频数据包时,将所述PEID标记为指示合并发送。
在一种可能的实现方式中,所述获取模块,还用于创建第四传输层数据包;获取待封装的第二应用层数据包;所述封装模块,还用于将所述第二应用层数据包封装到所述第四传输层数据包中。
第三方面,本申请提供一种网络设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面中任一项所述的方法。
第四方面,本申请提供一种计算机可读存储介质,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行上述第一方面中任一项所述的方法。
第五方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面中任一项所述的方法。
第六方面,本身请提供一种芯片,包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行如上述第一方面中任一项所述的方法。
第七方面,本申请提供一种网络***,包括多个网络设备,所述网络设备采用上述第三方面所述的网络设备;
此外,任意一个所述网络设备包括发送装置和接收装置,以便于与其他网络设备进行通信。
附图说明
图1为数据包封装过程示意图;
图2为QUIC封装Datagram帧的流程图;
图3为同一时刻存在多个应用层小包的场景的示意图;
图4为本申请的方法在协议栈中工作位置的示意图;
图5为本申请提供的网络设备500的结构示意图;
图6为本申请传输层数据包的封装方法的过程600的流程图;
图7为QUIC封装Datagram帧的流程图;
图8为QUIC合并与不合并Datagram帧在QUIC包头开销和抗丢包能力的对比;
图9为本申请实施例的封装装置900的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书实施例和权利要求书及附图中的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
网络设备之间要实现通信,需要定义一些规则进行信息匹配才能交流,这样的交流规则被定义为各种协议。协议的出现使得网络设备之间只要能够支持同一种协议就能正常通信,进行交流。为了对网络的管理更加规范化,国际标准化组织(InternationalOrganization for Standardization,ISO)指定了一个开放式***互联(Open SystemInterconnection,OSI)模型,OSI模型包括七层协议,每层协议实现独立的功能,并且下层协议为上层协议提供服务。传输控制协议(Transmission Control Protocol,TCP)/网络协议(Internet Protocol,IP)模型则是由国际网络工程任务组(Internet EngineeringTask Force,IETF)推出的简化的网络模型,TCP/IP模型包括四层协议,被广泛应用。
表1
表1中给出了上述两种模型的对比,包括每层协议各自的功能,以及具有代表性的协议。
数据在网络传输过程中,首先会在发送端协议栈自上而下进行数据包的封装,然后经过网络传输到达接收端,最后接收端协议栈则自下而上对数据包进行解封装。图1为数据包封装过程示意图,如图1所示,在逐层封装的过程中,上层协议数据包作为下层协议的载荷,同时下层协议会加入该层的协议头。
在数据包封装的过程中,有一个概念是最大传输单元(Maximum TransmissionUnit,MTU),用于表示某层协议所能通过的最大数据包大小(通常以字节为单位)。例如,在以太网上由于通信接口等限制,数据链路层的以太网帧的MTU为1518字节,扣减掉以太网头(14字节)和以太网尾(4字节),还剩1500字节,这1500字节则被称为网络层的IP包的MTU。以此类推,传输层的数据包(TCP协议数据包或者UDP协议数据包)的MTU则是在IP包的MTU的基础上减去TCP头的长度或者UDP头的长度。
当前最广泛使用的传输层协议主要是TCP协议和UDP协议,以及新型传输层协议QUIC。TCP协议是一种面向字节流传输的传输协议,UDP是一种面向报文的传输协议,QUIC是一种既可以面向字节流也可以面向报文的传输协议。其中,
UDP协议中,在封装UDP包的过程中,每一个应用层数据包作为一个UDP的载荷,也就是说每一个应用层数据包对应一个UDP包。添加UDP包头和应用层数据包后,UDP协议将封装好的UDP包交给下层IP协议进行网络传输。可见,UDP协议封装数据包的过程中不考虑应用层数据包的大小,是对每个应用层数据包单独封装。该方法的好处是使得每个应用层数据包相互独立传输,在网络随机丢包的情况下独立发送可以一定程度降低整体的丢包概率。该方法的缺点是每个应用层数据包对应一个UDP包,造成UDP包包头开销较大(尤其是在应用层数据包长度比较小的场景),造成网络带宽利用率较低。
在QUIC中,使用QUIC Datagram帧实现对应用层数据包的封装。每个应用层数据包对应一个QUIC Datagram帧。为了降低QUIC包头开销,在封装Datagram帧时,如果新的Datagram帧的加入不会超过QUIC包的MTU,则会将新的Datagram帧封装到QUIC包。因而在一个QUIC包中可能存在出现多个Datagram帧的情况,亦即一个QUIC包中有可能出现多个应用层数据包。图2为QUIC封装Datagram帧的流程图。
图3为同一时刻存在多个应用层小包的场景的示意图,如图3所示,场景1中,为提高应用层抗丢包能力,应用层对媒体包进行FEC编码产生冗余包。在QUIC层,每个媒体包和冗余包都会被封装到独立的Datagram帧,在这些Datagram帧比较小的情况下,QUIC包中会同时封装多个Datagram帧。在场景2中,多条数据流存在时,每条流各自独立产生应用层数据包,在数据流比较小(如音频流,144p视频流)情况下,每个媒体包比较小。在媒体包被各自封装为Datagram帧时,同样会存在一个QUIC包含有多个Datagram帧的情况。
在以上两种场景中,当前QUIC封装Datagram帧的技术缺点非常明显。场景1中,应用层前向纠错(Feedforward Error Correction,FEC)冗余保护,需要每个应用层数据包独立传输,QUIC封装Datagram帧的方式将使得应用层的FEC功能失效,破坏了应用层对媒体包的冗余保护。场景2中,不同流的多个媒体包会存在不同优先级,通常优先级更高的数据包需要优先发送,如果多个实时传输协议(Real-time Transport Protocol,RTP)包在同一QUIC包中发送,则失去应用层数据包的优先级功能。另外,如果一个QUIC包丢失则会造成多条流的媒体包一起丢失,同时影响多条流的传输。
可见,QUIC中的传输层数据包的封装方法不感知应用层数据包的特性,仅从应用层获取应用层数据包并按照传输层封包规则进行封装处理。但是在实际应用中,应用层往往会针对业务特定需求进行针对性的设计。例如为了提高应用层数据包抗丢包能力进行FEC冗余保护,为了区分不同数据源的重要性进行优先级排序等。传输层在不感知应用层特性时,直接按照传输层规则封装应用层数据包,有可能会破坏应用层的特殊设计,从而影响应用层的体验质量。
为了解决上述技术问题,本申请提供了一种传输层数据包的封装方法,下文将对本申请的技术方案进行说明。
首先介绍本申请涉及到的相关术语:
数据包(Data Packet):是网络上信息传输的基本单位。一个数据包分成两个部分,包括控制信息(亦即包头(head)和包尾(tail))和数据本身(亦即载荷(payload))。
数据包封装(Data Packet Encapsulation):是将上层协议的数据包作为下层协议的数据包的载荷进行封装的过程。
数据包解封装(Data Packet Decapsulation):数据包封装的逆过程,下层协议拆解本层数据包的包头和载荷,并将载荷作为上层协议的数据包的过程。
图4为本申请的方法在协议栈中工作位置的示意图,如图4所示,本申请提出的传输层数据包的封装方法,可以适用于网络协议栈中的应用层和传输层,该方法可用于任意一种传输层协议封装应用层数据包的场景,包括但不限于实时音视频传输、云桌面、云游戏等场景。
在应用层数据包封装时,为每个应用层数据包添加PEID,用于标识应用层数据包能否和前一个应用层数据包合并封装。在传输层封装应用层数据包时,不仅读取应用层数据包,同时会读取应用层数据包对应的PEID,在传输层根据PEID控制应用层数据包是否合并封装。
图5为本申请提供的网络设备500的结构示意图,如图5所示,网络设备500可以对应网络中的任意一种设备,例如,计算机、终端、接入网设备等。网络设备500包括天线501、射频装置502、基带装置503。天线501与射频装置502连接。在上行方向上,射频装置502通过天线501接收来自其他网络设备的信号,并将接收到的信号发送给基带装置503进行处理。在下行方向上,基带装置503生成需要发送给其他网络设备的信号,并将生成的信号发送给射频装置502。射频装置502通过天线501将该信号发射出去。
基带装置503可以包括一个或多个处理单元5031。处理单元5031具体可以为处理器。
此外,基带装置503还可以包括一个或多个存储单元5032以及一个或多个通信接口5033。存储单元5032用于存储计算机程序和/或数据。通信接口5033用于与射频装置502交互信息。存储单元5032具体可以为存储器,通信接口5033可以为输入输出接口或者收发电路。
可选地,存储单元5032可以是和处理单元5031处于同一芯片上的存储单元,即片内存储单元,也可以是与处理单元5031处于不同芯片上的存储单元,即片外存储单元。本申请对此不作限定。
基于此,图6为本申请传输层数据包的封装方法的过程600的流程图。过程600可由网络设备500执行。过程600描述为一系列的步骤或操作,应当理解的是,过程600可以以各种顺序执行和/或同时发生,不限于图6所示的执行顺序。过程600包括如下步骤:
步骤601、获取第一传输层数据包的可封装数据长度。
通常网络设备的传输层在封装该层的数据包时,放入载荷的是应用层数据包,再在载荷前加上包头,即可得到封装完成的传输层数据包,例如,传输层的UDP包,其载荷部分是应用层的RTP包,其包头是UDP包头。本申请实施例中,传输层数据包的封装过程可以是一个动态过程,其包括创建传输层数据包、封装传输层数据包以及封装完成传输层数据包三个阶段。
上述第一传输层数据包可以是处于封装阶段的传输层数据包,即当获取下文的第一应用层数据包时,该第一传输层数据包中已封装入至少一个应用层数据包。此时,第一传输层数据包的可封装数据长度小于第一传输层数据包的MTU。可封装数据长度可以是第一传输层数据包的MTU与第一传输层数据包中已封装的至少一个应用层数据包的总长度之差。
步骤602、获取待封装的第一应用层数据包,第一应用层数据包对应一个PEID。
在网络设备的应用层封装该第一应用层数据包时,对其标记了数据包封装标识符(Packet Encapsulation Identifier,PEID),该PEID用于指示独立发送或者合并发送第一应用层数据包,其中,独立发送表示应用层在封装第一应用层数据包时,根据其特性确定该数据包只能独立发送,不能与其他应用层数据包合并发送,否则会破坏应用层的特殊设计,从而影响应用层的体验质量;合并发送表示应用层在封装第一应用层数据包时,根据其特性确定该数据包可以与前面的应用层数据包合并发送,以提高传输层的封装效率,减少传输层的包头开销。
在一种可能的实现方式中,当传输层要对第一应用层数据包进行封装时,可以向应用层请求获取第一应用层数据包对应的PEID,由应用层通知传输层第一应用层数据包对应的PEID。例如,应用层可以调用传输层的接口函数,通过该接口函数写入第一应用层数据包对应的PEID。此外,应用层还可以通过该接口函数写入第一应用层数据包的首地址和包长度,以及其他信息,对此本申请实施例不做具体限定。
本申请实施例中,网络设备的应用层在封装应用层数据包时,可以对每个应用层数据包标记上文的PEID,该标记方法可以包括以下两种方式,以第一应用层数据包为例进行说明,第一应用层数据包可以是任意一个应用层数据包:
(1)当当前丢包率大于预设阈值时,将第一应用层数据包对应的PEID标记为指示独立发送;当当前丢包率小于或等于预设阈值时,将第一应用层数据包对应的PEID标记为指示合并发送。
该方式是根据抗丢包能力确定PEID。预先设置应用层数据包的抗随机丢包能力阈值X,如果当前丢包率大于阈值X,则PEID=False(表示独立发送),否则PEID=True(表示合并发送)。阈值X可以根据应用层需求进行设置,其取值包括但不限于5%,10%,20%,等等。需要说明的是,本申请实施例对阈值X的取值不做具体限定。
(2)当第一应用层数据包为重传包或者音频数据包时,将第一应用层数据包对应的PEID标记为指示独立发送;当第一应用层数据包为视频数据包时,将第一应用层数据包对应的PEID标记为指示合并发送。
该方式是根据优先级确定PEID。在音视频数据传输中,应用层数据包一般存在如下优先级:重传包=音频数据包>视频I帧数据包>视频P帧数据包。因此可以根据前述优先级的要求确定PEID,例如,如果应用层数据包为重传包或者音频数据包,PEID=False(表示独立发送);如果应用层数据包为视频数据包(I帧或P帧),PEID=True(表示合并发送)。需要说明的是,数据包的优先级还可以采用其他设定规则,以及根据优先级与PEID还可以采用其他的对应关系,本申请实施例对此不做具体限定。
步骤603、根据PEID和第一传输层数据包的可封装数据长度对第一应用层数据包进行封装。
如上文所述,第一传输层数据包是封装中的传输层数据包,第一应用层数据包是应用层已经封装好的应用层数据包。在获取第一应用层数据包时,网络设备已经往第一传输层数据包中封装了至少一个应用层数据包,亦即第一传输层数据包不是新创建的传输层数据包,此时需要比较第一传输层数据包的可封装数据长度和第一应用层数据包的长度,若前者大于或等于后者,则表示第一传输层数据包的剩余长度足够用于封装第一应用层数据包;若前者小于后者,则表示第一传输层数据包的剩余长度不够用于封装第一应用层数据包。因此网络设备对第一应用层数据包进行封装可以包括以下几种情况:
1、第一传输层数据包的可封装数据长度大于或等于第一应用层数据包的长度
(1)若PEID指示合并发送第一应用层数据包,则将第一应用层数据包封装到第一传输层数据包中。
在第1种情况下,第一传输层数据包的可封装数据长度足够用于封装第一应用层数据包,则需要根据第一应用层数据包对应的PEID进一步判断是否合并发送第一应用层数据包。如上文所述,PEID指示合并发送第一应用层数据包,表示应用层封装第一应用层数据包时,基于其特性确定该第一应用层数据包可以与前面的应用层数据包合并发送,那么网络设备的传输层就可以将第一应用层数据包封装到第一传输层数据包中。
(2)若PEID指示独立发送第一应用层数据包,则将第一传输层数据包封装完毕,并创建第二传输层数据包;将第一应用层数据包封装到第二传输层数据包中。
如上文所述,PEID指示独立发送第一应用层数据包,表示应用层封装第一应用层数据包时,基于其特性确定该第一应用层数据包不能与前面的应用层数据包合并发送,只能独立发送,那么网络设备的传输层可以将第一传输层数据包封装完毕,并且新创建一个第二传输层数据包,将第一应用层数据包封装到该新创建的传输层数据包中。
2、第一传输层数据包的可封装数据长度小于第一应用层数据包的长度
第一传输层数据包封装完毕,并创建第三传输层数据包;将第一应用层数据包封装到第三传输层数据包中。
第一传输层数据包的可封装长度不够封装第一应用层数据包,此时网络设备的传输层可以将第一传输层数据包封装完毕,并且新创建一个第三传输层数据包,将第一应用层数据包封装到该新创建的传输层数据包中。
在一种可能的实现方式中,网络设备可以创建第四传输层数据包;获取待封装的第二应用层数据包;将第二应用层数据包封装到第四传输层数据包中。
网络设备的传输层新创建一个传输层数据包(第四传输层数据包),此时由于第四传输层数据包还没有封装应用层数据包,而按照网络协议,通常下层协议的MTU大于上层协议的MTU,因此第四传输层数据包的可封装数据长度是大于第二应用层数据包的,可以将第二应用层数据包封装到第四传输层数据包,而无需根据第二应用层数据包对应的PEID判断第二应用层数据包是否可以合并发送。
通过上述方法传输层可以得到封装完毕的数据包,然后将该封装完毕的数据包发送给网络协议的下一层协议层(例如,IP层),由下一层协议层对该数据包进行封装。
本申请实施例,网络设备通过在封装应用层数据包时基于其特性标记PEID,可以感知应用层数据包的特性,并根据应用层要求确定传输层的封装合并规则,避免了由于传输层和应用层的相对独立造成的破坏应用层特定功能的情况,提升应用层的体验质量。
以下通过具体的实施例对本申请的方案进行说明。
本申请的方案涉及网络协议栈中的应用层和传输层,即应用层数据包对应的PEID标记,传输层根据PEID进行合并封装判断。其中,
应用层数据包对应的PEID标记的流程包括:
1、应用层根据应用层的MTU将原始数据划分为应用层数据包。
2、执行应用层特殊功能,对各个应用层数据包做进一步处理,例如,FEC冗余编码、优先级排序,等。
3、根据应用层数据包对应的特殊功能,对该应用层数据包进行PEID标记。
a)如果应用层功能需要该应用层数据包独立发送,则设置PEID=False;
b)如果应用层功能需要该应用层数据包合并发送,则设置PEID=True。
传输层根据PEID进行合并封装判断的流程包括:
1、创建新的传输层数据包。
2、读取应用层数据包作为待封装数据,同时获取该应用层数据包对应的PEID。
3、基于封装中的传输层数据包的可封装数据长度、待封装的应用层数据包长度、封装中的传输层数据包有没有其他应用层包、待封装的应用层数据包对应的PEID:
a)如果可封装数据长度<待封装的应用层数据包长度,则将封装中的传输层数据包封装完毕传递给下层协议处理,同时回到步骤1创建新的传输层数据包,封装待封装的应用层数据包;
b)如果可封装数据长度≥待封装的应用层数据包长度,并且当前传输层包没有其他应用层包,直接封装当前应用层数据包,同时回到步骤2读取新的应用层数据包;
c)如果可封装数据长度≥待封装的应用层数据包长度,封装中的传输层数据包有其他应用层包,且PEID=True,则将待封装的应用层数据包封装到封装中的传输层数据包,同时回到步骤2读取新的应用层数据包;
d)如果可封装数据长度≥待封装的应用层数据包长度,封装中的传输层数据包有其他应用层包,且PEID=False,则将封装中的传输层数据包封装完毕传递给下层协议处理,同时回到步骤1创建新的传输层数据包,封装待封装的应用层数据包。
图7为QUIC封装Datagram帧的流程图,如图7所示,网络设备基于QUIC协议封装Datagram帧。QUIC协议中的Datagram帧用来承载应用层数据包,一个应用层数据包对应一个Datagram帧,QUIC通过封装Datagram帧完成对应用层数据包的封装。
以待传输的数据为音视频数据为例进行说明,基于QUIC作为传输层协议传输音视频数据时,首先应用层协议(例如,RTP协议、SRT协议等)将音视频数据封装成为应用层数据包。为了提高应用层抗丢包能力或者增加不同音视频流的优先级功能,应用层对应用层数据包做额外处理。然后在应用层数据包处理后,对每一个应用层数据包按照该数据包的特性进行PEID标记。以下给出根据应用层数据包抗丢包能力或者应用层数据包优先级确定PEID的方法。应注意,本申请实施例的方法不限定应用层数据包包括的数据类型。
1、根据抗丢包能力确定PEID
定义应用层数据包要求抗随机丢包能力阈值X,如果当前丢包率大于阈值,则PEID=False,否则PEID=True。阈值X的确定根据应用层需求自定义,典型取值包括但不限于5%、10%、20%。
2、根据优先级确定PEID
在音视频数据传输中,应用层数据包一般存在如下优先级:重传包=音频数据包>视频I帧数据包>视频P帧数据包。我们可以根据对优先级的要求确定PEID,例如,如果应用层数据包为重传包或者音频数据包,PEID=False,否则PEID=True。
接下来,在QUIC层进行封包处理的流程包括:
1、创建新的QUIC包。
2、读取应用层数据包并将应用层数据包封装成QUIC Datagram帧,同时读取该应用层包PEID。
3、判断当前QUIC包剩余空间能否容纳Datagram帧:
a)如果可以容纳,当Datagram帧的PEID=True时,QUIC包添加该Datagram帧,并回到步骤2;
b)如果可以容纳,当Datagram帧的PEID=Flase时,QUIC包封装完毕发送至网络,并回到步骤1创建新的QUIC包,封装该Datagram帧;
c)如果不可以容纳,则该QUIC包封装完毕发送至网络,并回到步骤1创建新的QUIC包,封装该Datagram帧。
本申请的方法用于QUIC Datagram帧封装,可以避免QUIC封装对应用层特性的破坏,保障应用层功能完整性(例如FEC冗余保护、优先级顺序等)。同时,应用层还可以考虑在QUIC包头开销和抗随机丢包能力灵活确定是否对Datagram帧进行合并,如图8所示。
需要说明的是,上述示例以传输层采用QUIC协议为例,本申请实施例的方案还可以应用于传输层采用UDP协议的场景,对此本申请实施例不做具体限定。
图9为本申请实施例的封装装置900的结构示意图。该封装装置900可以用于网络设备500,其包括:获取模块901和封装模块902。其中,
获取模块901,用于获取第一传输层数据包的可封装数据长度;获取待封装的第一应用层数据包,所述第一应用层数据包对应一个数据包封装标识符PEID,所述PEID用于指示独立发送或者合并发送所述第一应用层数据包;封装模块902,用于根据所述PEID和所述第一传输层数据包的可封装数据长度对所述第一应用层数据包进行封装。
在一种可能的实现方式中,所述封装模块902,具体用于当所述第一传输层数据包的可封装数据长度大于或等于所述第一应用层数据包的长度时,若所述PEID指示合并发送所述第一应用层数据包,则将所述第一应用层数据包封装到所述第一传输层数据包中。
在一种可能的实现方式中,所述封装模块902,还用于若所述PEID指示独立发送所述第一应用层数据包,则将所述第一传输层数据包封装完毕,并创建第二传输层数据包;将所述第一应用层数据包封装到所述第二传输层数据包中。
在一种可能的实现方式中,所述封装模块902,具体用于当所述第一传输层数据包的可封装数据长度小于所述第一应用层数据包的长度时,将所述第一传输层数据包封装完毕,并创建第三传输层数据包;将所述第一应用层数据包封装到所述第三传输层数据包中。
在一种可能的实现方式中,当获取所述第一应用层数据包时,所述第一传输层数据包中已封装入至少一个应用层数据包。
在一种可能的实现方式中,所述获取模块901,还用于当当前丢包率大于预设阈值时,将所述PEID标记为指示独立发送;当所述当前丢包率小于或等于所述预设阈值时,将所述PEID标记为指示合并发送。
在一种可能的实现方式中,所述获取模块901,还用于当所述第一应用层数据包为重传包或者音频数据包时,将所述PEID标记为指示独立发送;当所述第一应用层数据包为视频数据包时,将所述PEID标记为指示合并发送。
在一种可能的实现方式中,所述获取模块901,还用于创建第四传输层数据包;获取待封装的第二应用层数据包;所述封装模块902,还用于将所述第二应用层数据包封装到所述第四传输层数据包中。
本实施例的装置,可以用于执行图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、特定应用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的***和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种传输层数据包的封装方法,其特征在于,包括:
获取第一传输层数据包的可封装数据长度;
获取待封装的第一应用层数据包,所述第一应用层数据包对应一个数据包封装标识符PEID,所述PEID用于指示独立发送或者合并发送所述第一应用层数据包;
根据所述PEID和所述第一传输层数据包的可封装数据长度对所述第一应用层数据包进行封装。
2.根据权利要求1所述的方法,其特征在于,所述根据所述PEID和所述第一传输层数据包的可封装数据长度对所述第一应用层数据包进行封装,包括:
当所述第一传输层数据包的可封装数据长度大于或等于所述第一应用层数据包的长度时,若所述PEID指示合并发送所述第一应用层数据包,则将所述第一应用层数据包封装到所述第一传输层数据包中。
3.根据权利要求2所述的方法,其特征在于,所述根据所述PEID和所述第一传输层数据包的可封装数据长度对所述第一应用层数据包进行封装,还包括:
若所述PEID指示独立发送所述第一应用层数据包,则将所述第一传输层数据包封装完毕,并创建第二传输层数据包;
将所述第一应用层数据包封装到所述第二传输层数据包中。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据所述PEID和所述第一传输层数据包的可封装数据长度对所述第一应用层数据包进行封装,包括:
当所述第一传输层数据包的可封装数据长度小于所述第一应用层数据包的长度时,将所述第一传输层数据包封装完毕,并创建第三传输层数据包;
将所述第一应用层数据包封装到所述第三传输层数据包中。
5.根据权利要求1-4中任一项所述的方法,其特征在于,当获取所述第一应用层数据包时,所述第一传输层数据包中已封装入至少一个应用层数据包。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一应用层数据包对应的所述PEID通过以下方式确定:
当当前丢包率大于预设阈值时,将所述PEID标记为指示独立发送;
当所述当前丢包率小于或等于所述预设阈值时,将所述PEID标记为指示合并发送。
7.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一应用层数据包对应的所述PEID通过以下方式确定:
当所述第一应用层数据包为重传包或者音频数据包时,将所述PEID标记为指示独立发送所述第一应用层数据包;
当所述第一应用层数据包为视频数据包时,将所述PEID标记为指示合并发送所述第一应用层数据包。
8.根据权利要求1-7中任一项所述的方法,其特征在于,还包括:
创建第四传输层数据包;
获取待封装的第二应用层数据包;
将所述第二应用层数据包封装到所述第四传输层数据包中。
9.一种封装装置,其特征在于,包括:
获取模块,用于获取第一传输层数据包的可封装数据长度;获取待封装的第一应用层数据包,所述第一应用层数据包对应一个数据包封装标识符PEID,所述PEID用于指示独立发送或者合并发送所述第一应用层数据包;
封装模块,用于根据所述PEID和所述第一传输层数据包的可封装数据长度对所述第一应用层数据包进行封装。
10.根据权利要求9所述的装置,其特征在于,所述封装模块,具体用于当所述第一传输层数据包的可封装数据长度大于或等于所述第一应用层数据包的长度时,若所述PEID指示合并发送所述第一应用层数据包,则将所述第一应用层数据包封装到所述第一传输层数据包中。
11.根据权利要求10所述的装置,其特征在于,所述封装模块,还用于若所述PEID指示独立发送所述第一应用层数据包,则将所述第一传输层数据包封装完毕,并创建第二传输层数据包;将所述第一应用层数据包封装到所述第二传输层数据包中。
12.根据权利要求9-11中任一项所述的装置,其特征在于,所述封装模块,具体用于当所述第一传输层数据包的可封装数据长度小于所述第一应用层数据包的长度时,将所述第一传输层数据包封装完毕,并创建第三传输层数据包;将所述第一应用层数据包封装到所述第三传输层数据包中。
13.根据权利要求9-12中任一项所述的装置,其特征在于,当获取所述第一应用层数据包时,所述第一传输层数据包中已封装入至少一个应用层数据包。
14.根据权利要求9-13中任一项所述的装置,其特征在于,所述获取模块,还用于当当前丢包率大于预设阈值时,将所述PEID标记为指示独立发送;当所述当前丢包率小于或等于所述预设阈值时,将所述PEID标记为指示合并发送。
15.根据权利要求9-13中任一项所述的装置,其特征在于,所述获取模块,还用于当所述第一应用层数据包为重传包或者音频数据包时,将所述PEID标记为指示独立发送所述第一应用层数据包;当所述第一应用层数据包为视频数据包时,将所述PEID标记为指示合并发送所述第一应用层数据包。
16.根据权利要求9-15中任一项所述的装置,其特征在于,所述获取模块,还用于创建第四传输层数据包;获取待封装的第二应用层数据包;
所述封装模块,还用于将所述第二应用层数据包封装到所述第四传输层数据包中。
17.一种网络设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行权利要求1-8中任一项所述的方法。
19.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行权利要求1-8中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211505225.3A CN118118561A (zh) | 2022-11-29 | 2022-11-29 | 传输层数据包的封装方法和装置 |
PCT/CN2023/104055 WO2024113837A1 (zh) | 2022-11-29 | 2023-06-29 | 传输层数据包的封装方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211505225.3A CN118118561A (zh) | 2022-11-29 | 2022-11-29 | 传输层数据包的封装方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118118561A true CN118118561A (zh) | 2024-05-31 |
Family
ID=91210849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211505225.3A Pending CN118118561A (zh) | 2022-11-29 | 2022-11-29 | 传输层数据包的封装方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118118561A (zh) |
WO (1) | WO2024113837A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102595199A (zh) * | 2011-01-11 | 2012-07-18 | 中兴通讯股份有限公司 | 一种流媒体数据包的封装、传输方法及流媒体处理装置 |
WO2022067791A1 (zh) * | 2020-09-30 | 2022-04-07 | 华为技术有限公司 | 一种数据处理、传输方法及相关设备 |
CN115134864A (zh) * | 2021-03-22 | 2022-09-30 | 华为技术有限公司 | 一种数据传输方法、相关装置以及设备 |
-
2022
- 2022-11-29 CN CN202211505225.3A patent/CN118118561A/zh active Pending
-
2023
- 2023-06-29 WO PCT/CN2023/104055 patent/WO2024113837A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024113837A1 (zh) | 2024-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9325812B2 (en) | Method and apparatus for compressing nested protocol packet header | |
US9166917B2 (en) | Link layer preemption | |
WO2017161999A1 (zh) | 一种报文处理的方法及相关设备 | |
US11563832B2 (en) | Data sending method and device, data receiving method and device, and system | |
EP2478677B1 (en) | An apparatus for analyzing a data packet, a data packet processing system and a method | |
CN110740481B (zh) | 基于服务质量的数据处理方法、设备和计算机存储介质 | |
US9729903B2 (en) | Data transmitting device and method | |
CN112787902B (zh) | 报文封装方法及装置、报文解封装方法及装置 | |
US20230163875A1 (en) | Method and apparatus for packet wash in networks | |
KR20220159456A (ko) | 서비스 처리 방법, 장치, 설비 및 저장 매체 | |
CN111934941A (zh) | 一种用于时间敏感网络的数据切片方法和*** | |
CN118118561A (zh) | 传输层数据包的封装方法和装置 | |
CN105763659A (zh) | 一种IPv6隧道报文封装方法及*** | |
CN111277580B (zh) | 节点数据发送方法、接收方法以及传输方法 | |
US20230078814A1 (en) | Data transmission method and related device | |
US20230105937A1 (en) | Systems and methods for seamless reset for seamless redundancy of tsn/detnet | |
SE522919C2 (sv) | Återberäkning av kontrollsumma för transportprotokoll | |
JP2004153471A (ja) | チェックサム算出方法、チェックサム記録方法、およびその方法を利用可能な通信装置 | |
JP2017516346A (ja) | 通信システムにおけるパケット送受信方法及び装置 | |
CN112243159B (zh) | 基于dvb的数据处理、读取方法及服务器、终端以及*** | |
US11765102B2 (en) | Network device and conversion apparatus | |
CN114363234A (zh) | 数据处理方法及***、电子设备、路由器 | |
CN117641066A (zh) | 直播回源方法及*** | |
CN109196870B (zh) | 用于发射和接收mmtp分组的方法和装置 | |
CN116233563A (zh) | 音视频数据传输的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |