CN115065734A - 一种数据处理方法、装置及芯片 - Google Patents
一种数据处理方法、装置及芯片 Download PDFInfo
- Publication number
- CN115065734A CN115065734A CN202110221842.XA CN202110221842A CN115065734A CN 115065734 A CN115065734 A CN 115065734A CN 202110221842 A CN202110221842 A CN 202110221842A CN 115065734 A CN115065734 A CN 115065734A
- Authority
- CN
- China
- Prior art keywords
- protocol layer
- layer
- header
- packet
- protocol
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims description 72
- 238000004590 computer program Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 10
- 238000005538 encapsulation Methods 0.000 abstract description 35
- 239000002699 waste material Substances 0.000 abstract description 14
- 230000005540 biological transmission Effects 0.000 description 45
- 238000013461 design Methods 0.000 description 36
- 238000010586 diagram Methods 0.000 description 31
- 238000004891 communication Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 239000012634 fragment Substances 0.000 description 7
- 235000008694 Humulus lupulus Nutrition 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 241000406668 Loxodonta cyclotis Species 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000006798 recombination Effects 0.000 description 2
- 238000005215 recombination Methods 0.000 description 2
- 230000008521 reorganization Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/56—Routing software
- H04L45/566—Routing instructions carried by the data packet, e.g. active networks
-
- 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/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- 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/03—Protocol definition or specification
-
- 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/321—Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
Abstract
本申请实施例提供一种数据处理方法、装置及芯片,用以提高资源利用率。一种方式中,通过在协议层的包头中增加第一字段,第一字段指示上一层(或者内层)协议层是哪一层,通过第一字段在执行数据封装或者解封装时,可以根据需求跳过不必需的协议层。另一种方式中,在封装的协议层的包头中添加第二字段,第二字段用于指示当前协议层的所采用的包头格式。不同的包头格式包含的字段的数量不同,或者不同的包头格式包含的相同字段占用的比特数不同,或者不同的包头格式包括的字段数量不同和某个或者某几个字段占用的比特数不同。通过该第一字段和/或第二字段,针对某个协议层可以采用所需求的包头格式进行封装或解封装,减少资源浪费。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种数据处理方法、装置及芯片。
背景技术
目前通信网络,比如以太网(ethernet,ETH)/网络互联协议(Internet Protocol,IP)/无限带宽(infiniband,IB)网络,网络设备之间的通信是分层实现的,不同的网络协议基本遵循开放系统互联(open system interconnection,OSI)七层模型。OSI把网络按照层次分为七层,由下到上分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
通信网络中,在发送端的网络设备组装报文发送时,是由高到低一层一层依次进行调用,层层添加各层帧头,最后封装好报文发到网络上;接收端的网络设备由低到高一层一层依次进行解析,层层剥离各层帧头解析得到用户数据。各个网络协议层均是固定的,不能满足目前灵活的网络协议需求,导致资源浪费。
发明内容
本申请实施例提供一种数据处理方法、装置及芯片,用以提高资源利用率。
第一方面,本申请实施例提供一种数据处理方法,所述方法应用第一网络设备,包括:获取第一数据包;将所述第二协议层的包头添加到第一数据包以得到第二数据包,其中,第二协议层为所述第一协议层的外层,所述第二协议层的包头中包括第一字段,所述第二协议层的包头中第一字段的取值指示所述第二协议层的内层为所述第一协议层。
基于以上实现方式,通过在协议层的包头中增加第一字段,第一字段指示上一层(或者内层)协议层是哪一层,通过该第一字段在执行数据封装或者解封装时,可以根据需求跳过不必需的协议层,针对跳过的协议层不进行该协议层包头的封装和解封装,从而减少资源浪费。
在一种可能的设计中,所述第一协议层和所述第二协议层属于在开放系统互连OSI模型包括的七层中相邻的两层;或者,所述第一协议层和所述第二协议层属于在开放系统互连OSI模型包括的七层中不相邻的两层;或者,所述第一协议层和所述第二协议层属于OSI模型包括的七层中的同一层。
在一种可能的设计中,将第二协议层的包头添加到所述第一数据包以得到第二数据包之前,还包括:根据第一配置信息,确定所述第二协议层的包头中所述第一字段的取值;其中,所述第一配置信息中包括第一字段的不同取值与不同协议层的对应关系。通过上述设计,第一网络设备中预配置有用于描述全局协议层与第一字段取值的对应关系的第一配置信息,从而通过第一配置信息来确定字段的取值,简单易实现。
在一种可能的设计中,将第二协议层的包头添加到所述第一数据包以得到第二数据包之前,还包括:根据第二协议层对应的第二配置信息,确定所述第二协议层的包头中所述第一字段的取值;其中,所述第二配置信息中包括在第二协议层中,所述第一字段的不同取值与不同协议层的对应关系。上述设计中,针对不同的协议层单独配置有字段取值与协议层之间的对应关系,相对全局配置来说,减少字段占用的比特位,进而可以减少资源浪费。
在一种可能的设计中,确定所述第一协议层的外层为第二协议层,包括:根据第三配置信息,确定所述第一协议层的外层为第二协议层;其中,所述第三配置信息指示用于封装数据包的协议层,以及不同的协议层之间的邻接关系。上述设计,在网络设备部署后,可以根据部署的通信场景来确定需要封装的各个协议层的邻接关系,比如需要跳过哪些协议层等,从而在封装是依据协议层的邻接关系来添加第一字段的取值,进而可以实现根据需求跳过不必需的协议层,针对跳过的协议层不进行该协议层包头的封装和解封装,从而减少资源浪费。
在一种可能的设计中,所述第一数据包包括待发送给第二网络设备的数据,所述方法还包括:与所述第二网络设备协商协议层信息,所述协议层信息指示用于封装待发送给第二网络设备的数据的协议层,以及不同的协议层之间的邻接关系;确定所述第一协议层的外层为第二协议层,包括:根据所述协议层信息确定所述第一协议层的外层为所述第二协议层。上述设计中,发送端的网络设备与接收端的网络设备在发送数据之前可以先协商需要封装的协议层,以及协议层之间的邻接关系,不同的场景下使用不同的协议层封装,进一步使得本申请提供地方案灵活地应用到不同的应用场景中。
在一种可能的设计中,所述第二协议层的包头中还包括第二字段,所述第二字段的取值指示所述第二协议层所采用的包头格式。进一步,所述第二字段的不同取值指示的第二协议层所采用的包头格式不同。通过上述设计,针对某个协议层可以采用所需求的包头格式进行封装或解封装,比如某个域段不需要的情况下,选择不包括该域段的包头格式,再比如某个域段的长度可以缩减,则可以采用缩减该域段比特数的包头格式。从而减少资源浪费。
在一种可能的设计中,将第二协议层的包头添加到所述第一数据包以得到第二数据包,包括:根据指示信息确定所述第二协议层的包头格式,根据确定的所述第二协议层的包头格式将第二协议层的包头添加到所述第一数据包以得到第二数据包;其中,所述指示信息用于指示所述第二协议层所采用的包头格式。通过上述设计,发送端采用的协议层的包头格式可以预先配置于设备中。进而可以基于配置的指示信息来封装协议层包头。
在一种可能的设计中,所述方法还包括:接收网络管理设备发送的所述指示信息。
在一种可能的设计中,所述第一数据包包括待发送给第二网络设备的数据,将第二协议层的包头添加到所述第一数据包以得到第二数据包之前,还包括:
所述第一网络设备与所述第二网络设备协商包头信息,所述包头信息包括用于指示所述第二协议层所采用的包头格式的信息;将第二协议层的包头添加到所述第一数据包以得到第二数据包,包括:根据所述包头信息确定所述第二协议层的包头格式,根据确定的所述第二协议层的包头格式将第二协议层的包头添加到所述第一数据包以得到第二数据包。
上述设计中,发送端的网络设备与接收端的网络设备在发送数据之前可以先协商需要封装的协议层包头格式,不同的场景下封装不同格式的协议层包头,进一步使得本申请提供地方案灵活地应用到不同的应用场景中。
在一种可能的设计中,将第二协议层的包头添加到所述第一数据包以得到第二数据包,包括:根据确定的所述第二协议层的包头格式和第四配置信息将第二协议层的包头添加到所述第一数据包以得到第二数据包;其中,所述第四配置信息包括所述第二字段的不同取值与所述第二协议层所采用的不同包头格式的对应关系。
第二方面,本申请实施例提供一种数据处理方法,所述方法应用于第二网络设备,包括:接收数据包,所述数据包中封装有来自第一网络设备的数据以及N个协议层的包头,N为大于1的整数,所述N个协议层至少包括第一协议层和第二协议层;其中,第二协议层的包头包括第一字段,所述第一字段的取值指示所述第二协议层的内层为所述第一协议层;在针对所述数据包完成所述第二协议层的包头的解封装时,根据所述第二协议层的包头中第一字段的取值,对所述第一协议层的包头进行解封装。
在一种可能的设计中,根据所述第二协议层的包头中第一字段的取值,对所述第一协议层的包头进行解封装,包括:根据所述第二协议层的包头中第一字段的取值以及第一配置信息确定所述第二协议层的内层为所述第一协议层;所述第一配置信息中包括第一字段的不同取值与不同协议层的对应关系;对所述第一协议层的包头进行解封装。
基于以上实现方式,通过在协议层的包头中增加第一字段,第一字段指示上一层(或者内层)协议层是哪一层,通过该第一字段在执行数据封装或者解封装时,可以根据需求跳过不必需的协议层,针对跳过的协议层不进行该协议层包头的封装和解封装,从而减少资源浪费。
在一种可能的设计中,根据所述第二协议层的包头中第一字段的取值,对所述第一协议层的包头进行解封装,包括:根据所述第二协议层的包头中第一字段的取值以及第二协议层对应的第二配置信息确定所述第二协议层的内层为所述第一协议层;所述第二配置信息中包括在第二协议层中,第一字段的不同取值与不同协议层的对应关系;对所述第一协议层的包头进行解封装。
在一种可能的设计中,所述第二协议层的包头还包括第二字段,所述第二协议层中第二字段的取值指示所述第二协议层所采用的包头格式;针对所述第一数据包完成所述第二协议层的包头的解封装,包括:根据所述第二协议层中第二字段的取值,对所述第二协议层的包头进行解封装。
在一种可能的设计中,根据所述第二协议层中第二字段的取值,完成所述第二协议层的包头的解封装,包括:
根据所述第二协议层中第二字段的取值和第四配置信息确定所述第二协议层所采用的包头格式;
根据所述第二协议层所采用的包头格式对所述第二协议层的包头进行解封装;
其中,所述第四配置信息包括所述第二字段的不同取值与所述第二协议层所采用的包头格式的对应关系。
第三方面,本申请实施例提供一种数据处理方法,应用于第一网络设备,包括:获取数据包;在所述数据包的协议层的包头配置第二字段,所述第二字段的取值指示所述第二协议层所采用的包头格式。进一步地,所述第二字段的不同取值指示的第二协议层所采用的包头格式不同。
在一种可能的设计中,在所述数据包的协议层的包头配置第二字段,包括:根据指示信息确定所述第二协议层的包头格式,根据确定的所述第二协议层的包头格式在所述数据包的协议层的包头配置第二字段;其中,所述指示信息用于指示所述第二协议层所采用的包头格式。
在一种可能的设计中,所述方法还包括:接收来自网络管理设备的所述指示信息。
在一种可能的设计中,所述第一数据包包括待发送给第二网络设备的数据,对所述第一数据包封装第二协议层的包头得到第二数据包之前,还包括:与所述第二网络设备协商包头信息,所述包头信息包括用于指示所述第二协议层所采用的包头格式的信息;在所述数据包的协议层的包头配置第二字段,包括:根据所述包头信息确定所述第二协议层的包头格式,根据确定的所述第二协议层的包头格式在所述数据包的协议层的包头配置第二字段。
在一种可能的设计中,在所述数据包的协议层的包头配置第二字段,包括:根据确定的所述第二协议层的包头格式和第四配置信息在所述数据包的协议层的包头配置第二字段;其中,所述第四配置信息包括所述第二字段的不同取值与所述第二协议层所采用的不同包头格式的对应关系。
在一种可能的设计中,以将所述协议层称为第二协议层为例。所述方法还包括,在所述数据包的协议层的包头配置第一字段,所述第一字段的取值指示所述协议层的内层为第一协议层。
在一种可能的设计中,所述第一协议层和所述第二协议层属于在开放系统互连OSI模型包括的七层中相邻的两层;或者,所述第一协议层和所述第二协议层属于在开放系统互连OSI模型包括的七层中不相邻的两层;或者,所述第一协议层和所述第二协议层属于OSI模型包括的七层中的同一层。
第四方面,本申请实施例提供一种数据处理方法,所述方法应用于第二网络设备,包括:接收数据包,所述数据包中封装有来自第一网络设备的数据以及协议层的包头;其中,协议层的包头包括第二字段,所述协议层中第二字段的取值指示所述协议层所采用的包头格式;根据所述协议层中第二字段的取值,对所述第二协议层的包头进行解封装。
为了便于区分,将所述协议层称为第二协议层。所述数据包中可以包括N个协议层,所述N个协议层至少包括所述第二协议层。比如,还可以包括第一协议层。第一协议层可以为第二协议层的内层。
在一种可能的设计中,根据所述第二协议层中第二字段的取值,对所述第二协议层的包头进行解封装,包括:根据所述第二协议层中第二字段的取值和第四配置信息确定所述第二协议层所采用的包头格式;根据所述第二协议层所采用的包头格式对所述第二协议层的包头进行解封装;其中,所述第四配置信息包括所述第二字段的不同取值与所述第二协议层所采用的包头格式的对应关系。
在一种可能的设计中,所述第二协议层的包头还包括第一字段,所述第一字段的取值指示所述第二协议层的内层为所述第一协议层。所述方法还包括,在针对所述数据包完成所述第二协议层的包头的解封装时,根据所述第二协议层的包头中所述第一字段的取值,对所述第一协议层的包头进行解封装。
第五方面,本申请实施例提供一种数据处理装置,所述方法应用于网络设备,可以由网络设备中的处理器来实现,或者由网络设备中网卡来实现。包括第一协议层模块和第二协议层模块。
第一协议层模块,用于向第二协议层模块发送第一数据包;所述第二协议层模块,用于将第二协议层的包头添加到所述第一数据包以得到第二数据包;其中,所述第二协议层的包头中包括第一字段,所述第二协议层的包头中第一字段的取值指示所述第二协议层的内层为所述第一协议层。
该第五方面中,数据处理装置其它可选地的实施方式可以参见上述第一方面的相关内容,此处不再赘述。
第六方面,本申请实施例提供一种数据处理装置,所述方法应用于网络设备,可以由网络设备实现,或者由网络设备中的处理器来实现,或者由网络设备中网卡来实现。包括第一协议层模块和第二协议层模块。
第二协议层模块,用于接收数据包,所述数据包中封装有来自第一网络设备的数据以及N个协议层的包头,所述N个协议层至少包括第一协议层和第二协议层;其中,第二协议层的包头包括第一字段,所述第二协议层的包头中第一字段的取值指示所述第二协议层的内层为所述第一协议层;所述第二协议层模块在针对所述数据包完成所述第二协议层的包头的解封装得到第二数据包时,根据所述第二协议层的包头中第一字段的取值,将完成第二协议层的包头的解封装得到的第二数据包发送给第一协议层模块,所述第一协议层模块,用于对所述第一协议层的包头进行解封装。
另外,该第六方面中,数据处理装置其他可选的实施方式可参见上述第二方面的相关内容,此处不再详述。
第七方面,本申请实施例提供一种数据处理装置,所述方法应用于网络设备,可以由网络设备中的处理器来实现,或者由网络设备中网卡来实现。包括协议层模块,用于获取数据包;在所述数据包的协议层的包头配置第二字段,所述第二字段的取值指示所述协议层所采用的包头格式。举例来说,数据处理装置包括至少两个协议层模块,以第一协议层模块和第二协议层模块为例。
第一协议层模块,用于向第二协议层模块发送第一数据包,第一数据包封装有第一协议层的包头;第二协议层模块,用于将第二协议层的包头添加到所述第一数据包得到第二数据包;其中,所述第二协议层的包头中包括第二字段,所述第二协议层的包头中第二字段的取值指示所述第二协议层所采用的包头格式;其中,所述第二字段的不同取值指示的第二协议层所采用的包头格式不同。示例性地,第一协议层的包头包括第二字段,所述第一协议层的包头的第二字段的取值指示所述第一协议层的包头格式。
另外,该第七方面中,数据处理装置其他可选的实施方式可参见上述第三方面的相关内容,此处不再详述。
第八方面,本申请实施例提供一种数据处理装置,所述方法应用于网络设备,可以由网络设备实现,或者由网络设备中的处理器来实现,或者由网络设备中网卡来实现。包括协议层模块。
第二协议层模块,用于接收数据包,所述数据包中封装有来自第一网络设备的数据以及协议层的包头;其中,协议层的包头包括第二字段,所述协议层中第二字段的取值指示所述协议层所采用的包头格式;所述协议层模块在针对所述数据包执行所述协议层的包头的解封装时,根据所述协议层中第二字段的取值,完成所述协议层的包头的解封装。
另外,该第八方面中,数据处理装置其他可选的实施方式可参见上述第四方面的相关内容,此处不再详述。
第九方面,提供了一种数据处理装置,该数据处理装置包括处理器和网卡。网卡用于接收处理器发送的数据包,或向处理器发送数据包,且处理器用于实现上述第一方面-第四方面的任意一种实施方式的方法。或者,处理器用于向网卡发送数据包,或者接收来自网卡的数据包,网卡用于实现上述第一方面-第四方面任一实施方式的方法。
第十方面,提供了一种芯片,该芯片包括控制器和接口。控制器和接口相互配合,使得芯片执行上述第一方面-第四方面的任意一种实施方式中的方法。
第十一方面,本申请提供一种芯片,包括存储器和控制器;所述存储器用于存储计算机程序;所述控制器用于执行所述存储器中存储的计算程序,实现上述第一方面-第四方面的任一可能的设计所描述的方法。
第十二方面,提了供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面-第四方面的任意一种实施方式中的方法。
第十三方面,提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面-第四方面的任意一种实施方式中的方法。
附图说明
图1为本申请实施例中OSI七层协议示意图;
图2为本申请实施例中OSI模型下数据传输过程流程示意图;
图3A为本申请实施例中一种可能的L2的包头格式示意图;
图3B为本申请实施例中一种可能的L3的包头格式示意图;
图3C为本申请实施例中一种可能的L4的包头格式示意图;
图4为本申请实施例中ETH/IP网络中一种数据包的封装和解封装的流程示意图;
图5为本申请实施例中IB网络架构示意图;
图6为本申请实施例中IB数据包采用的包头格式示意图;
图7为本申请实施例中LBH的结构示意图;
图8为本申请实施例中一种可能的网络系统架构示意图;
图9为本申请实施例中主机结构示意图;
图10为本申请实施例中协议层包头格式示意图;
图11为本申请实施例中发送端的数据处理方法流程示意图;
图12为本申请实施例中接收端的数据处理方法流程示意图;
图13为本申请实施例中交换机/路由器解析数据包的包头实现报文转发的处理示意图;
图14为本申请实施例中一个机框或一个机柜的小规模网络系统架构示意图;
图15为本申请实施例中包括多个机柜的大规模网络系统架构示意图;
图16为本申请实施例中数据处理装置1600结构示意图;
图17为本申请实施例中芯片结构示意图。
具体实施方式
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
应注意到本申请实施例中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
为了便于理解,首先介绍本申请实施例涉及的技术特征。
计算机之间的网络通信是采用分层方式传输的。不同的层遵循不同的网络协议。各种不同的网络协议基本遵循开放系统互连(open system interconnect,OSI)七层模型。OSI的概念,是由国际标准化组织(international organization for standardization,ISO)定义的。它是个灵活的、稳健的和可互操作的模型,并不是协议,常用来分析和设计网络体系结构。OSI模型的目的是规范不同网络系统的互联标准,使两个不同的系统能够较容易的通信,而不需要改变底层的硬件或软件的逻辑。
如图1所示,OSI把网络按照层次分为七层,由下到上分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。由下开始的第1层(L1,即物理层)-第4层(L4,传输层)负责底层物理网络的数据传输。由下开始的第5层(L5)-第7层(L7)负责主机之间的数据传输。
下面针对7层的功能进行详细描述:
L7,应用层:主要为系统提供应用接口。
L6,表示层:主要负责数据格式的转换,以确保系统生成的应用层数据能够被另一个系统的应用层所识别和理解。
L5,会话层:主要负责在通信双方之间建立会话、管理会话和终止会话。
L4,传输层:主要负责建立、维护或者取消一次端到端的数据传输过程、控制传输节奏的快慢,调整数据的排序等等。
L3,网络层:主要负责定义逻辑地址,实现数据从源到目的地的转发过程。
L2,数据链路层:主要负责将分组数据封装成帧,在数据链路上实现数据的点到点、或者点到多点方式的直接通信,差错检测等。
L1,物理层:主要负责建立、维护或断开物理连接;在媒介上传输比特流;提供机械的和电气的规约。
可选地,一些应用场景中可以采用5层协议。5层协议中,L5-L7可以合并为应用层,L5-L7也可以简称为上层协议层(可以简称为上层)或者高层协议层(可以简称为高层)。
示例性地,OSI模型下的数据传输过程,可以参见图2所示,针对会话层、表示层、应用层,发送端主机无论采用什么样的协议发送数据给接收端主机,中间负责转发的交换机或者路由器均把该三层看做透明的,只有主机之间进行数据协议对接和解释。物理层、数据链路层、网络层、传输层负责端到端的把数据从发送端的主机网卡发出去,穿过网络交换机/路由器等转发设备,到达接收端主机的网卡,再进一步交给接收端主机的上层协议。
本申请实施例可以应用于以太网(ethernet,ETH)/网络互联协议(internetprotocol,IP)/无限带宽(infiniband,IB)网等通信网络。
以ETH/IP网络为例,按照OSI七层模型实现的协议族,不同层均支持各种基本协议和扩展衍生协议。
作为一种示例,下面针对七层分别支持采用的协议进行举例说明。
L7,应用层支持采用的协议可以包括:简单网络管理协议(simple networkmanagement protocol,SNMP)、无线应用协议(wireless application protocol,WAP)、动态主机设置协议(dynamic host configuration protocol,DHCP)、会话初始协议(sessioninitiation protocol,SIP)、超文本传输协议(hypertext transfer protocol,HTTP)、域名系统(domain name system,DNS)、文件传输协议(file transfer protocol,FTP)等。
L6,表示层支持采用的协议可以包括:美国信息交换标准代码(americanstandard code for information interchange,ASCII)、动态图像专家组(movingpicture experts group,MPEG)、抽象语法标记(abstract syntax notation one,ASN.1)、联合图像专家组(joint photographic experts group,JEPG)等。
L5,会话层支持采用的协议可以包括:远程认证拨号用户服务(remoteauthentication dial-in user server,RADIUS)、直连(diameter)、通用无线分组业务(General packet radio service,GPRS)隧道协议(GPRS Tunneling Protocol GTP)、GTP-控制面(GTP-control,GTP-C)V0/V1/V2、GTP-用户面(GTP-user,GTP-U)等。
L4,传输层支持采用的协议可以包括负载均衡协议、安全与虚拟专用网络(virtual private network,VPN)、访问控制列表(access control lists,ACL)、服务质量(quality of service,QoS)、传输控制协议(transmission control protocol,TCP)、用户数据报协议(user datagram protocol,UDP)、流控制传输协议(stream controltransmission protocol,SCTP)、网络地址转换(network address translation,NAT)、实时传输协议(real-time transport protocol,RTP)/RTP控制协议(RTP controlprotocol,RTCP)等。
L3,网络层支持采用的协议可以包括通用路由封装(generic routingencapsulation,GRE)、开放式最短路径优先(open shortest path First,OSPF)、IP协议(比如IPv4协议或者IPv6协议)、组播协议、因特网控制消息协议(internet controlmessage protocol,ICMP)、静态路由协议、子网掩码协议、双向转发检测(bidirectionalforwarding detection,BFP)协议、虚拟路由冗余协议(virtual router redundancyprotocol,VRRP)、多协议标签交换(multi-protocol label switching,MPLS)等。
L2,数据链路层支持采用的协议可以包括地址解析协议(address resolutionprotocol,ARP)、ARP代理、802.3ae、帧中继(frame relay,FR)协议、第二层隧道协议(layer2tunneling protocol,L2TP)、MPLS协议、交换技术、虚拟局域网(virtual local areanetwork,VLAN)、以太网链路聚合(eth-trunk)、异步传输模式(asynchronous transfermode,ATM)等。
L1,物理层支持采用的协议可以包括以太网、光纤模式、接口类型、单双工等。
应理解的是,不同的网络协议所采用包头格式不同。作为一种举例,参见图3A、图3B和图3C所示,示例有L2的包头格式、L3的IP协议包头格式和L4的TCP包头格式。
参见图3A所示,为一种可能的L2的包头格式示意图。目的地址表示数据包接收方的MAC地址,在局域网中使用这一地址来传输网络包。源地址表示数据包发送方的MAC地址,接收方通过源地址判断谁发送的该数据包。长度(length)/类型(type)中length表示数据长度,Type表示使用的协议类型。帧校验序列(frame check sequence,FCS)表示数据帧尾校验,用检测接收到的数据包是否完整。TAG字段中类型(Type),表示帧类型,802.1Q TAG帧中type字段取固定值0x8100,如果不支持802.1Q的设备收到802.1Q帧,则将其丢弃。PRI(priority)表示以太网帧的优先级,取值范围是0~7,数值越大,优先级越高。规范格式指示(canonical formatIndicator,CFI)表示MAC地址是否是经典格式。CFI为0说明是经典格式,CFI为1表示为非经典格式。在以太网帧中,CFI取值为0。VID表示VLAN ID。
参见图3B所示,为一种可能的IP协议包头格式示意图。IP协议包头中的Version(版本)表示数据报文的IP版本号。头部长度(heather length)表示数据报文的报文头的长度。Total Length(总长度)表示数据报文的总长度,可以用于计算数据报文中有效载荷的长度。Identification(标识符)字段长度为16位,通常与标记字段和分片偏移字段一起用于数据包的分段。如果数据包原始长度超过数据包所要经过的数据链路的最大传输单元(maximum transmission unit,MTU),那么必须将数据包分段为更小的数据包。例如,一个大小为5000字节的数据包在穿过网络时,如果遇到一条MTU为1500字节的数据链路,即数据帧最多容纳大小为1500字节的数据包。节点需要在数据成帧之前将数据包分段成多个数据包,其中每个数据包长度不得超过1500字节;然后路由器在每片数据包的标识字段上打上相同的标记,以便接收设备可以识别出属于一个数据包的分段。标记(IP Flags)字段长度为3位,第1位没有使用。第二位不分段位(DF),置1之后路由器不能对其分段处理,如果超过MTU值则路由器不能对其转发将其丢弃,并向源点发送错误消息。分片偏移(FragmentOffset)字段长度为13位,用于指明分段起始点相对于报头起始点的偏移量。由于分段到达时可能错序,所以分段偏移字段可以使接收者按照正确的顺序重组数据包。生存时间(TimeTo Live)字段长度为8位,用于指示传输的跳数。协议(Protocol)字段长度为8位,指示数据报文的协议号。头部校验和(header checksum)是针对IP报文头的纠错字段。源地址(Source Address)和目的地址(destination address)分别表示发送者数据报文源节点和目的节点的IP地址。可选字段(Options),数据部分为数据报文承载的数据。
参见图3C所示,为一种可能的TCP包头格式示意图。源端口号用于指示发送端的端口号,目的端口号用于指示接收端的端口号。序号,也称为序列号,表示数据包所发送的数据的第一个字节的编号。确认序号,表示接收方希望收到发送方下一个报文段的第一个字节数据的编号。首部长度用于指示TCP包的长度。URG(urgent,紧急)表示TCP包中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效。ACK(acknowledge,确认)表示前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。PSH(push,推送)用于提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。如果为1,则表示接收方应当立即把数据提交给上层应用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中。RST(reset,复位)表示连接重置。SYN(synchronous,建立联机)表示建立连接。当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。FIN表示通知对方本端要关闭连接。窗口大小表示现在允许对方发送的数据量。校验和用于提供额外的可靠性。紧急指针(urgent pointer)标记紧急数据在数据字段中的位置。
参见图4所示,以ETH/IP网络为例,示意一种数据包的封装和解封装的流程。以数据链路层采用eth协议、网络层采用IP协议、传输层采用TCP协议为例。ETH/IP网络中在发送端主机组装数据包时,是由高到低一层一层依次调用,层层添加包头,最后封装好数据包从网卡发送到网络上。而接收端在接收到数据包时,由低到高一层一层依次解析,层层剥离各层包头,最后把用户数据发送给上层应用。
下面针对IB技术进行简要描述。IB技术不是用于一般网络连接的,它的主要设计目的是针对服务器端的连接问题的。IB技术可以应用于服务器与服务器(比如复制,分布式工作等),服务器和存储设备(比如存储区域网络(storage area network,SAN)和直接存储附件)以及服务器和网络之间(比如局域网,广域网和因特网)的通信。
IB网与IP网络类似,也基于OSI七层模型较松散的定义的模块化层中的协议,覆盖L1-L4。上层可以按照OSI的L5-L7来划分,也可以简化为上层协议层。参见图5所示,IB网络架构由物理层、链路层、网络层和传输层组成。参见图6所示,为IB数据包采用的包头格式示意图。IB数据包位于起始与结束定界符之间,包括包头、有效载荷(Payload)以及校验码。
具体地,包头包括本地路由头(local route header,LRH)、全局路由头(globalrouting header,GRH)、基本传输头(base transport header,BTH)、扩展传输头(extendedtransport header,ETH),校验码包括标准循环冗余码校验(invariant cyclicredundancy check,ICRC)码和变种循环冗余码校验(variant cyclic redundancy check,VCRC)码。
其中,L2层包头采用LBH结构,L3层包头采用GRH结构,L4层包头采用BTH结构。
参见图7所示,示意一种LBH的结构示意图。虚拟名称(virtual name,VL)占用4bit,用于识别数据包所使用的虚拟通道。链路版本(link version,LVer)占用4bit,用于识别数据包的链路层协议。服务等级(service level,SL)占用4bit,用于识别子网内数据包所要求的服务等级。Reserved(保留位,REV)占用2bit。链接下一路由头(link nextheader,LNH)占用2bit,用于识别跟随LR和信息的数据包头。目标地址(destination localID,DLID)占用16bit,用于识别本地子网中的目的端口以及路径。Reserved(保留位,RESV)占用5bit。报文长度(packet length,PktLen),占4个字节,用于识别数据包长度,包括从LRH信息的第一个字节至CRC校验符之前的最后一个字节之间的所有区域。源地址(sourcelocal ID)占16bit,用于确定在本地子网中的源端口。
GRH可以为40个字节,比如,可以采用IPv6报头格式。传输层L4层包括BTH,还可以包括ETH。在IB网络中,传输层的功能时将数据包传送到某个指定的队列对(queue pair,QP)中,并指示QP如何处理该数据包。接收端的QP将数据重组到指定的数据缓冲区中。BTH指定目的QP并指明操作类型、数据包序列号和分区信息。
在IB网络中,发送端在经过上层协议层封装的数据包到达传输层后,在传输层封装ETH和BTH,然后经过网络层封装GRH,再经过链路层封装LBH到达物理层,经过物理层处理后发送出去。接收端接收到数据包后,通过层层解析和剥离,最后把用户数据发送给上层。
一方面,网络设备的收发基本遵循OSI 7层模型,按照分层的设计理念和思想进行报文格式的设计,和报文封装解封装过程的定义。网络设备在执行数据包封装和解封装中,组装数据包是由高到低一层一层依次进行调用并添加各层包头,接收解析数据包是层层剥离各层包头,每一层都是必须的,都是层层之间固定依次进行处理的。不能满足目前灵活的网络协议需求,导致资源浪费。
另一方面,在网络中每一层包头中,每个域都是固定长度,各个域段的组合也是固定的。而没有考虑网络的规模、网络的流量特点、以及网络的特殊需求,是否需要这么长的域段,是否需要这么多域段,导致资源浪费。
基于此,本申请实施例提供一种数据处理方法及装置,实现灵活地进行协议层包头的封装,以减少资源浪费。
下面结合具体实施例对本申请提供的方案进行详细说明。
本申请实施例中可以应用于包括至少两个网络设备的网络系统中。网络设备可以是用于生成或者接收数据包的主机服务器、个人计算机等。网络设备也可以是负责转发数据包的转发设备,比如路由器、交换机、转发器等。
作为一种示例,参见图8所示,为一种可能的网络系统架构示意图。网络系统中包括至少两台主机服务器。主机服务器之间建立通信连接。作为一种举例,主机服务器之间可以通过交换机网络和/或路由器网络互联。图8中以两台主机服务器为例,两台主机服务器之间通过交换器A-交换机D进行通信,应理解的是,图8仅是一种示例,并不对网络系统包括的主机服务器的数量以及交换机的数量进行限定。后续描述时,将主机服务器可以简称为主机为例。
主机也可以是终端设备,其中,终端设备可以为用户设备(user equipment,UE),移动台(mobile station,MS)或订户单元(subscriber unit,SU)。终端设备具体可以是但不限于移动电话、平板电脑(tabletcomputer),膝上型电脑(laptop computer),可穿戴设备(智能手表、智能手环,智能头盔,智能眼镜等),以及其他具备无线接入能力的通信装置,如各种物联网设备,包括智能家居设备(智能电表、智能家电等),智能车辆等。
作为一种示例,参见图9所示,主机服务器可以包括网卡和一个或者多个处理器。处理器可以采用通用的中央处理器(centralprocessing unit,CPU),微处理器,应用专用集成电路(application specificintegrated circuit,ASIC),或者一个或多个集成电路,或者图像处理器(graphics processing unit,GPU))用于执行相关程序,以实现本申请实施例所提供的技术方案。该网卡可以称为该处理单元的网卡。该网卡也可以称为网络接口卡(network interface card)、网络适配器(network adapter)、物理网络接口(physicalnetwork interface)等。其中,一个或者多个处理器可以实现5-7协议层任意协议层的包头的封装。网卡可以用于实现1-4层协议层中任意协议层的包头的封装。作为一种举例,一个或者多个处理器可以用于部署用户的应用软件,用于封装或者解封装5-7层协议层的包头并执行各个协议层的相应处理,网卡可以用于为用户的应用软件提供1-4层的网络服务,用于封装或者解封装1-4层协议层的包头并执行各个协议层的相应处理。
交换机可以工作于数据链路层,主要用于实现数据链路层的封装或者解封装,以对主机服务器产生的数据包进行转发。交换机也可以工作于网络层,主要用于实现数据链路层和网络层的封装或者解封装,以对主机服务器产生的数据包进行转发。路由器一般工作在网络层,主要实现网络层和数据链路层的封装或者解封装,以实现对主机服务器的数据包进行转发。
为实现降低资源的浪费,本申请实施例示例性地提供如下方案:
第一种可能的实施方式中,网络设备在封装的协议层的包头添加第一字段,第一字段用于指示当前协议层的内层协议层为哪个协议层。本申请实施例中,内层也可以描述为上层。外层也可以描述为下层或下一层。通过该第一字段在执行数据封装或者解封装时,可以根据需求跳过不必需的协议层,针对跳过的协议层不进行该协议层包头的封装和解封装,从而减少资源浪费。
需要说明的是,本申请实施例中,包头中的字段可以称为域或者域段,本申请实施例对此不作具体限定。
第一字段也可以命名为下一层协议(next layer protocol,NLP)字段,当然还可以采用其它的命名,本申请实施例对此不作具体限定。后续描述时,以称为NLP字段为例。
第二种可能的实施方式中,网络设备在封装的协议层的包头中添加第二字段,第二字段用于指示当前协议层的所采用的包头格式。不同的包头格式包含的字段的数量不同,或者不同的包头格式包含的相同字段占用的比特数不同,或者不同的包头格式包括的字段数量不同和某个或者某几个字段占用的比特数不同。通过该第二字段,针对某个协议层可以采用所需求的包头格式进行封装或解封装,比如某个域段不需要的情况下,选择不包括该域段的包头格式,再比如某个域段的长度可以缩减,则可以采用缩减该域段比特数的包头格式。从而减少资源浪费。
第二字段也可以命名为配置(configuration,CFG)字段,当前还可以采用其它的命名,本申请实施例对此不作具体限定。后续描述时,以称为CFG字段为例。
需要说明的是,在一些实施例中,可以单独实施第一种可能的实施方式,在另一些实施例中,可以单独实施第二种可能的实施方式,在又一些实施例中,可以共同实施第一种可能的实施方式和第二种可能的实施方式。
首先,以共同实施第一种可能的实施方式和第二种可能的实施方式为例进行详细说明。
每个协议层的包头中包括NLP字段和CFG字段。NLP字段指示当前协议层的上一层(内层)协议层为哪个协议层,或者描述为NLP字段指示上一层协议层的协议类型。CFG字段指示当前协议层的包头格式。CFG字段的不同取值指示的协议层采用的包头格式不同。以第一协议层的外层为第二协议层为例,在第二协议层的包头中NLP字段的取值指示第二协议层的内层为第一协议层,第二协议层的包头中CFG字段的取值指示第二协议层的包头格式。第一协议层和第二协议层可以属于OSI模型包括的七层中相邻的两层,或者第一协议层和第二协议层可以属于OSI模型包括的七层中不相邻的两层,或者第一协议层和第二协议层属于OSI模型包括的七层中的同一层,比如均属于网络层,网络层中封装多个协议层包头。
作为一种示例,NLP字段和CFG字段可以占用协议层包头的固定的位置。NLP字段和CFG字段在不同协议层包头所占的位宽可以相同。比如NLP字段和CFG字段占用各个协议层包头的开始的固定数量的比特位,或者NLP字段和CFG字段占用各个协议层最后的固定数量的比特位。本申请实施例不限定NLP字段和CFP字段的前后位置顺序,可以是NLP字段在前,CFG字段在后,或者NLP字段在后,CFG字段在前。又或者NLP字段占用各个协议层开始的固定数量的比特位,CFG字段占用协议层最后的固定数量的比特位。再或者,NLP字段占用各个协议层最后的固定数量的比特位,CFG字段占用各个协议层开始的固定数量的比特位。
作为一种举例,参见图10所示,NLP字段和CFG字段占用各个协议层包头的开始的固定数量的比特位,图10中以CFG字段在前,NLP字段在后为例。从而接收端能够从固定位置解析每个协议层的NLP字段和CFG字段,从而获知当前协议层的包头格式以及当前协议层的内层协议层的协议类型,进而执行当前协议层的解析,以及确定进一步执行哪个协议层的解析。
一些实施例中,在同一协议层中,NLP字段的不同取值表示不同的协议类型。一种举例中,不同协议层可以采用统一配置,即在不同的协议层,NLP字段的相同取值表示相同的协议类型。另一种举例中,不同协议层的NLP的取值代表的含义可以根据各层自身的需求进行定义。不同的协议层,NLP字段的相同取值可能表示不同的协议类型,比如第一协议层和第二协议层中,NLP字段均取值为1,则表示的协议类型可以不同。
另一些实施例中,在同一协议层中,CFG字段的不同取值表示不同的包头格式。一种举例中,不同协议层可以采用统一配置,即在不同的协议层,CFG字段的相同取值表示相同的包头格式。另一种举例中,不同协议层的CFG的取值代表的含义可以根据各层自身的需求进行定义。不同的协议层,CFG字段的相同取值可能表示不同的包头格式,比如第一协议层和第二协议层中,CFG字段均取值为1,则表示的包头格式可以不同。
下面结合图11对本申请实施例中发送端的数据处理方法流程进行说明。图11示例一种较为完整的多层调用封装流程示意图。当然结合本申请实施例提供的方案,可以根据网络中的业务需求进行跨层传输,比如跨过网络层,不进行网络层包头的封装,以减少资源浪费。
发送端的主机服务器封装报文时,由上层到下层,每一协议层添加包头中NLP字段和CFG字段的取值以及其它字段的取值后,将添加包头的数据包发送给下一协议层,下一协议层确定上一协议层的协议类型,填加包头中NLP字段和CFG字段的取值以及其它字段的取值,采用层层添加包头的方式封装得到数据包发送给网络。发送端的主机服务器将用户数据封装为数据包,数据包的包头包括N个协议层的包头,向接收端的主机服务器发送该数据包。以N个协议层至少包括第一协议层和第二协议层为例,第二协议层的内层为第一协议层,第二协议层的包头中包括NLP字段和CFG字段,第二协议层的NLP字段的取值指示第二协议层的内层为第一协议层,第二协议层的CFG字段的取值指示第二协议层的包头格式。具体的,将封装完第一协议层包头的数据包称为第一数据包,封装完第二协议层的包头的数据包称为第二数据包。发送端的主机服务器获取已封装第一协议层包头的第一数据包,确定第一协议层的外层为第二协议层,然后对第一数据包封装第二协议层的包头得到第二数据包。第二协议层的包头中包括NLP字段和CFG字段,第二协议层的包头中NLP字段的取值指示第二协议层的内层为第一协议层,第二协议层的包头中CFG字段的取值指示第二协议层的包头格式。
在一种可能实施方式中,主机服务器中配置有NLP取值与协议层的对应关系。
一种举例中,NLP字段的取值与协议层的对应关系可以采用全局的配置方式,比如任意协议层均可以采用该配置信息来确定协议层所对应的NLP的取值。为了便于描述,将采用全局的配置方式的配置信息称为第一配置信息。第一配置信息中包括NLP字段的不同取值与不同协议层的对应关系。具体的,发送端的主机服务器根据第一配置信息确定第二协议层的包头中NLP字段的取值。
例如,表1所示,示例一种可能的NLP字段的取值与协议层的对应关系。表1仅作为一种示例,表1中仅示例性的描述NLP字段的几种取值与几种协议层的对应关系。应理解的是,表1并不对NLP的占用的比特数构成具体限定。
表1
协议层 | NLP字段的取值 |
IP | 00000 |
GRE | 00001 |
TCP | 00010 |
UDP | 00011 |
BFD | 00100 |
SCTP | 00101 |
例如,以第一协议层为TCP层、第二协议层为IP层为例。主机服务器的网卡获取到来自传输层的封装TCP协议包头的TCP数据包,确定TCP层的外层为IP层,以表1为例,则确定IP层包头的NLP字段的取值为00010,进一步地,将TCP数据包作为数据,在数据基础上封装包头,包头中NLP字段的取值00010指示IP层上一协议层为TCP层。
另一种举例中,不同的协议层中,NLP字段的取值与协议层的对应关系可以不同。比如,第二协议层对应第二配置信息,第二配置信息包括第二协议层中,NLP字段的不同取值与不同协议层的对应关系。不同的协议层对应不同的配置信息。具体的,发送端的主机服务器根据第二协议层对应的第二配置信息确定第二协议层的包头中NLP字段的取值。
例如,表2所示,示例一种不同的协议层中可能的NLP字段的取值与指示的上一协议层的对应关系。表2仅作为一种示例,表2中仅示例性的描述NLP字段的几种取值与几种协议层的对应关系。应理解的是,表2并不对NLP的占用的比特数构成具体限定。
表2
例如,以第一协议层为TCP层、第二协议层为IP层为例。主机服务器的网卡获取到来自传输层的封装TCP协议包头的TCP数据包,确定TCP层的外层为IP层,以表2为例,则确定当前协议层为IP层,IP层的上一协议层为TCP层,根据表2确定IP层包头的NLP字段的取值为001,进一步地,将TCP数据包作为数据,在数据基础上封装包头,包头中NLP字段的取值001指示IP层上一协议层为TCP层。
在一些实施例中,发送端与接收端之间需要封装哪些协议层,以及协议层之间的邻接关系可以是预先配置在发送端的主机服务器和接收端的主机服务器中的。比如,发送端配置有第三配置信息,第三配置信息指示用于封装数据包的协议层,以及不同的协议层之间的邻接关系。发送端可以根据第三配置信息确定第一协议层的外层为第二协议层。
作为一种举例,第三配置信息可以是由网络管理设备发送给发送端的主机服务器和接收端的主机服务器的。
在另一些实施例中,发送端与接收端之间需要封装哪些协议层,以及协议层之间的邻接关系也可以是发送端与接收端之间协商确定的。发送端与接收端之间协商协议层信息,协议层信息指示用于封装数据包的协议层,以及不同的协议层之间的邻接关系;进而发送端可以根据协议层信息确定第一协议层的外层为第二协议层。后续针对协商的方式进行详细描述,此处不再重复描述。
在一种可能实施方式中,发送端的主机服务器和接收端的主机服务器中均配置有CFG取值与包头格式的对应关系。
一种举例中,CFG字段的取值与包头格式的对应关系可以采用全局的配置方式,比如任意协议层均可以采用该配置信息来确定包头格式所对应的NLP的取值。为了便于描述,将采用全局的配置方式的配置信息称为第四配置信息。第四配置信息中包括CFG字段的不同取值与不同包头格式的对应关系。
例如,表3所示,示例一种可能的CFG字段的取值与包头格式的对应关系。表3仅作为一种示例,表3中仅示例性的描述CFG字段的几种取值与几种包头格式的对应关系。应理解的是,表3并不对CFG字段的占用的比特数构成具体限定。
表3
另一种举例中,不同的协议层中,CFG字段的取值与包头格式的对应关系可以不同。比如,第二协议层对应第五配置信息,第五配置信息包括第二协议层中,CFG字段的不同取值与不同包头格式的对应关系。不同的协议层对应不同的配置信息。
例如,表4所示,示例一种不同的协议层中可能的CFG字段的取值与指示的包头格式的对应关系。表4仅作为一种示例,表4中仅示例性的描述CFG字段的几种取值与几种包头格式的对应关系。应理解的是,表4并不对CFG字段的占用的比特数构成具体限定。
表4
例如,以第一协议层为TCP层、第二协议层为IP层为例。主机服务器的网卡获取到来自传输层的封装TCP协议包头的TCP数据包,确定TCP层的外层为IP层,以表2为例,则确定当前协议层为IP层,IP层的上一协议层为TCP层,根据表2确定IP层包头的NLP字段的取值为001,进一步地,将TCP数据包作为数据,在数据基础上封装包头,包头中NLP字段的取值001指示IP层上一协议层为TCP层。
在一些实施例中,每一协议层需要采用哪种包头格式可以是预先配置在发送端的主机服务器。比如,每一协议层需要采用哪种包头格式可以是根据发送端与接收端所在的应用场景预先配置在发送端的主机服务器中的。发送端配置有指示信息,指示信息用于指示协议层的包头格式。发送端可以根据指示信息确定各个协议层的包头格式。
作为一种举例,指示信息可以是由网络管理设备发送给发送端的主机服务器的。
在另一些实施例中,发送端与接收端之间传输数据包时,各个协议层采用哪种包头格式可以是发送端与接收端之间协商确定的。发送端与接收端之间协商格式信息,格式信息指示用于封装数据包的协议层采用的包头格式;进而发送端可以根据格式信息确定各个协议层所采用的包头格式。
如下针对发送端与接收端之间协商封装数据包的各个协议层以及协议层之间的邻接关系,以及各个协议层采用哪个包头格式的协商方式进行说明。
第一种可能的实施方式中,发送端与接收端之间采用整体打包协商的方式。发送端与接收端协商时采用的数据包格式可以采用双方都认识的完备层级和每一层的默认包头格式进行封装。
A1,发送端发送自身的能力信息、位置信息和需求信息给接收端,进而接收端向发送端反馈自身的能力信息、位置信息和需求信息给发送端。
其中,能力信息可以包括如下一项或者多项:
网卡端口的带宽,网卡接收乱序报文重组能力,网卡支持的优先级队列数量,处理器的处理能力,应用程序的类型等等信息。
位置信息可以包括如下一项或者多项:
国家/城市,机房号,机柜号,框号,单板号等物理位置信息,也可能包括IP地址等信息。
需求信息可以包括如下一项或者多项:
待发送的数据包括小流量短报文(时延敏感的老鼠流)或者包括大流量长报文(带宽敏感的大象流),是否需要网卡虚拟化的双层网络头等等信息。
其中,大象流是通过网络链路进行大量的,持续的传递的数据流。老鼠流是通过网络链路进行少量的,短时间传输数据流。
A2,发送端和接收端分别根据双方的能力信息、位置信息或者需求信息中的一项或者多项,结合设定的判断规则(规则需要预先配置或者固化在协商程序中),选择层级组合以及确定协议层的包头格式。进一步地将选择的层级组合以及确定的协议层的包头格式保存在本地,指导后续的数据包的封装和解封装。层级组合包括封装数据包的协议层,各个协议层之间的邻接关系。
作为一种举例,以针对网络层的协议层包括3种包头格式为例,分别为网络层的简化协议层包头格式、标准的协议层包头格式和大规模的协议层包头格式。作为另一种举例,针对传输层的协议层包括两种包头格式,分别为传输层的简化的协议层包头格式和标准的协议层包头格式。比如,简化的协议层包头格式的字段数小于标准的协议层包头格式的字段数,标准的协议层包头格式的字段数小于大规模的协议层包头格式的字段数。再比如,针对协议层包头中的某个或者某几个字段,简化的协议层包头格式中的字段位宽小于标准的协议层包头格式的字段位宽,标准的协议层包头格式的字段位宽小于大规模的协议层包头格式的字段位宽。需要说明的是,针对某些协议层配置的包头格式的种类可以是1种、两种或者多种,本申请实施例对此不作具体限定。结合以上举例,判断规则可以满足如下一项或者多项:
(1)根据位置信息判断发送端和接收端双方位于一个机柜内,则省略传输层,使用简化的网络层格式。一个机柜内的不同网络设备传递数据时,因为可靠性高,网络规模小,网络层的字段可以少一些,位宽可以短一些,从而可以提高传输效率,提高资源利用率。
(2)根据位置信息判断发送端和接收端双方位于同一个机房内的不同机柜,使用传输层的简化协议层包头格式,使用网络层的标准协议层包头格式。
(3)根据位置信息判断发送端和接收端双方位于不同城市的机房,使用传输层的标准协议层包头格式,使用网络层的大规模协议层包头格式。不同城市的机房中的两个网络设备之间传递数据时,因为传输距离远,容易丢包,网络规模也大,网络层的字段会多一些,位宽也会宽一些,可以降低丢包率。
(4)根据网卡虚拟化的双层网络头等信息,确定在网络层包括至少两个协议层。
(5)根据发送端和接收端双方的网卡接收乱序报文重组能力,网卡支持的优先级队列数量以及流量特征等,选择合适的传输层的包头格式和网络层包头格式(比如包括优先级队列等字段)。
比如,接收端网卡没有接收乱序报文重组能力,则传输层的包头格式中需要有序列号等字段,来用于接收端根据序列号进行数据包重组。因此,发送端与接收端之间传输数据包可以采用传输层包括序列号字段的协议层包头格式。再比如,接收端网卡具有接收乱序报文重组能力,则传输层的包头格式中不再需要有序列号等字段。因此,发送端与接收端之间传输数据包可以采用传输层不包括序列号字段的协议层包头格式。
比如,接收端网卡优先级队列支持4个,则发送的网络层包头格式的虚通道号(virtual lane)字段的位宽可以为2bit。因此,发送端与接收端之间传输数据包可以采用传输层的虚通道号的字段位宽为2bit的协议层包头格式。再比如,接收端网卡优先级队列支持16个,则发送的网络层包头格式的虚通道号(virtual lane)字段的位宽可以为4bit。因此,发送端与接收端之间传输数据包可以采用传输层的虚通道号的字段位宽为4bit的协议层包头格式。
(6)根据发送端和接收端双方的处理器的处理能力,应用程序的类型等信息,选择合适的上层协议层的包头格式。
第二种可能的实施方式中,发送端与接收端之间采用整体打包协商的方式,且依据时延信息。发送端与接收端协商时采用的数据包可以采用双方都认识的完备层级和每一层的默认格式进行封装。
B1,发送端发送自身的能力信息、位置信息和需求信息给接收端,进而接收端向发送端反馈自身的能力信息、位置信息和需求信息给发送端,并且接收端指示发送端返回确认信息。
B2,发送端记录发送一次报文往返的时延T1,即接收发送端反馈的自身的能力信息、位置信息和需求信息的时间与发送自身的能力信息、位置信息和需求信息的时间之间的时间差。
B3,接收端记录发送一次报文往返的时延T2,发送端返回确认信息的时间与向发送端反馈自身的能力信息、位置信息和需求信息的时间之间的时间差。
B4,发送端和接收端分别根据双方的能力信息、位置信息或者需求信息中的一项或者多项,结合设定的判断规则(规则需要预先配置或者固化在协商程序中),选择层级组合以及确定协议层的包头格式。进一步地将选择的层级组合以及确定的协议层的包头格式保存在本地,指导后续的数据包的封装和解封装。层级组合包括封装数据包的协议层,各个协议层之间的邻接关系。
作为一种示例,判断规则可以满足如下一项或者多项:
(1)根据位置信息判断发送端和接收端双方位于一个机柜内,则省略传输层,使用简化的网络层格式。
(2)根据位置信息判断发送端和接收端双方位于同一个机房内的不同机柜,使用简化的传输层的包头格式,使用标准的网络层格式。
(3)根据位置信息判断发送端和接收端双方位于不同城市的机房,使用标准传输层的包头格式,使用大规模的网络层格式。
(4)根据网卡虚拟化的双层网络头等信息,确定在网络层包括至少两个协议层。
(5)根据对方的网卡接收乱序报文重组能力,网卡支持的优先级队列数量、流量特征、时延信息或者中间交换机的跳数等中的一项或者多项,选择合适的传输层和网络层的包头格式(比如优先级队列等字段)。比如,若时延小或者跳数少,可以选择简化的网络层包头和/或传输头包头,若时延大/跳数多,可以选择标准的网络层包头和/或传输层包头。
(6)根据发送端和接收端双方的处理器的处理能力,应用程序的类型等信息,选择合适的上层协议层的包头格式。
第三种可能的实施方式中,发送端与接收端之间采用第一种可能的实施方式或者第二种可能的实施方式的基础上,还可以进一步针对某个协议层进行具体包头格式的协商。发送端和接收端之间交互该协议层所关注的信息,比如关注对端使用的内存大小,可以双发可以交互双方的内存大小,进而根据交互的信息来进行包头格式的协商。
第四种可能的实施方式中,发送端与接收端可以分层的方式进行协商。发送端与接收端的协议层之间协商是否需要封装本层,以及本层所采用的包头格式。
发送端与接收端的第一协议层之间协商为例。
C1,发送端将自身第一协议层的关注信息发送给接收端,接收端向发送端反馈自身第一协议层的关注信息。
第一协议层的关注信息可以包括如下一项或者多项:能力信息、需求信息或者位置信息。
其中,能力信息可以包括如下一项或者多项:
网卡端口的带宽,网卡接收乱序报文重组能力,网卡支持的优先级队列数量,处理器的处理能力,应用程序的类型等等信息。
位置信息可以包括如下一项或者多项:
国家/城市,机房号,机柜号,框号,单板号等物理位置信息,也可能包括IP地址等信息。
需求信息可以包括如下一项或者多项:
待发送的数据包括小流量短报文(时延敏感的老鼠流)或者待发送的数据包括大流量长报文(带宽敏感的大象流),是否需要网卡虚拟化的双层网络头等信息。
C2,发送端和接收端,根据双方的第一协议层的关注信息确定是否需要第一协议层以及第一协议层的包头格式。
一种示例中,第一协议层为传输层。比如,根据位置信息确定发送端和接收端位于一个机柜内,则省略传输层。比如,根据位置信息确定发送端和接收端位于同一个机房内的不同机柜,采用简化的传输层包头格式。比如,根据位置信息确定发送端和接收端位于不同城市的机房,使用标准的传输层包头格式。比如,根据对方的网卡接收乱序报文重组能力,网卡支持的优先级队列数量以及流量特征,选择合适的传输层的包头格式(比如需要包括优先级队列字段)。再比如,根据时延信息或者中间交换机的跳数来选择合适的传输层包头格式。比如,时延小/跳数少选择简化的传输层包头格式,时延大/跳数多,选择标准的传输层包头格式。
另一种示例中,第一协议层为网络层。比如根据位置信息确定发送端和接收端位于一个机柜内,则使用标准的网络层包头格式。比如,根据位置信息确定发送端和接收端位于同一个机房内的不同机柜,采用标准的网络层包头格式。比如,根据位置信息确定发送端和接收端位于不同城市的机房,使用大规模的网络层包头格式。比如,根据对方的网卡接收乱序报文重组能力,网卡支持的优先级队列数量以及流量特征,选择合适的网络层的包头格式(比如需要包括优先级队列字段)。再比如,根据时延信息或者中间交换机的跳数来选择合适的网络层包头格式。比如,时延小/跳数少选择简化的网络层包头格式,时延大/跳数多,选择标准的网络层包头格式。又比如,根据网卡虚拟化的双层网络头等信息,确定在网络层包括至少两个协议层。
又一种示例中,第一协议层为上层协议层。比如根据发送端和接收端双方的处理器的处理能力,应用程序的类型等信息,选择合适的上层协议层的包头格式。
如图12所示是作为接收端的主机服务器解封装数据包的流程示意图。接收端的主机服务器接收到来自发送端的数据包后,由下层到上层(或者由外层到内层),每一层解封装完成后,按照当前协议层的CFG字段的指示确定当前协议层的包头格式,从而执行当前协议层的包头的解封装(也可以描述为对当前协议层的包头进行解封装),根据NLP字段的指示确定上一协议层,进一步进行上一协议层包头的解封装。通过层层解封装的方式获得发送端的用户数据。以解封装第一协议层和第二协议层为例。接收端的主机服务器接收数据包,所述数据包中封装有来自发送端的用户数据以及N个协议层的包头,所述N个协议层至少包括第一协议层和第二协议层;其中,第二协议层的包头包括NLP字段和CFG字段,根据所述第二协议层的包头中CFG字段的指示确定第二协议层的包头格式,从而执行第二协议层的包头的解封装,然后按照第二协议层的NLP字段的指示确定第一协议层,以执行第一协议层的包头的解封装。
一种举例中,接收端的主机服务器中配置有第一配置信息。第一配置信息中包括NLP字段的不同取值与不同协议层的对应关系,例如,参见表1所示。具体的,接收端的主机服务器根据第二协议层的包头中NLP字段的取值以及第一配置信息确定第二协议层的内层为第一协议层;进而执行第一协议层的包头的解封装。
另一种举例中,接收端的主机服务器中配置有第二协议层对应的第二配置信息。第二配置信息包括第二协议层中,NLP字段的不同取值与不同协议层的对应关系,例如参见表2所示。接收端的主机服务器根据第二协议层的包头中NLP字段的取值以及第二协议层对应的第二配置信息确定第二协议层的内层为第一协议层;执行第一协议层的包头的解封装。
又一种举例中,接收端的主机服务器中配置有第四配置信息,第四配置信息包括CFG字段的不同取值与不同的包头格式的对应关系,例如,参见表3所示。接收端的主机服务器根据第二协议层包头中CFG字段的取值以及第四配置信息确定第二协议层的包头格式,进而执行第二协议层的包头的解封装。
再一种举例中,接收端的主机服务器中配置有第二协议层对应的第五配置信息,第五配置信息包括在第二协议层中,CFG字段的不同取值与不同的包头格式的对应关系,例如,参见表4所示。接收端的主机服务器根据第二协议层包头中CFG字段的取值以及第五配置信息确定第二协议层的包头格式,进而执行第二协议层的包头的解封装。
交换机/路由器主要承担的是报文的转发功能。参见图13所示,为交换机/路由器解析数据包的包头实现报文转发的处理示意图。交换机/路由器收到数据包时,根据CFG字段的取值解析最外层协议层的包头,识别出其中的转发地址等字段进行转发,如果需要解析内层协议层的包头才能决定转发行为,则根据NLP字段所指示的下一协议层,解析对应的包头识别到转发地址,进行转发处理。图13所示的数据包的包头中包含网络层和数据链路层,图13仅作为一种举例。比如,数据包的包头还可以不包括网络层,也可以包括网络层中的多层协议层。
作为一种举例,交换机或者路由器中可以包括第一配置信息或者第二配置信息,还可以包括第四配置信息或者第五配置信息。作为另一种举例,以交换机工作于数据链路层为例,交换机可以仅配置针对数据链路层的,NLP字段的不同取值与不同的协议层的对应关系,以及针对数据链路层的,CFG字段的不同取值与不同的协议层包头格式的对应关系。以交换机/路由器工作于网络层为例,交换机可以配置针对数据链路层和网络层的,NLP字段的不同取值与不同的协议层的对应关系,以及针对数据链路层和网络层的,CFG字段的不同取值与不同的协议层的对应关系。
其次,以单独实施第一种可能的实施方式为例进行详细说明。
每个协议层包括的包头包括NLP字段。NLP字段指示当前协议层的上一层(内层)协议层为哪个协议层,或者描述为NLP字段指示上一层协议层的协议类型。以第一协议层的外层协议层为第二协议层为例,在第二协议层的包头中包括NLP字段的取值指示第二协议层的内层协议层为第一协议层。
第一协议层和第二协议层可以属于OSI模型包括的七层中相邻的两层,或者第一协议层和第二协议层可以属于OSI模型包括的七层中不相邻的两层,或者第一协议层和第二协议层属于OSI模型包括的七层中的同一层,比如均属于网络层,网络层中封装多个协议层包头。
作为一种示例,NLP字段可以占用协议层包头的固定的位置,比如NLP字段占用第二协议层包头的开始的固定数量的比特,或者NLP字段占用第二协议层开头的最后的固定数量的比特,又或者NLP字段占用第二协议层中间位置的固定数量的比特。NLP字段在不同协议层的位置相同。比如,各个协议层中,NLP字段均占用包头开始的固定数量的比特。从而接收端能够从固定位置解析每个协议层的NLP字段,从而获知内层协议层的协议类型,进而执行内层协议层包头的解析。
一些实施例中,在同一协议层中,NLP字段的不同取值表示不同的协议类型。一种举例中,不同协议层可以采用统一配置,即在不同的协议层,NLP字段的相同取值表示相同的协议类型。另一种举例中,不同协议层的NLP的取值代表的含义可以根据各层自身的需求进行定义。不同的协议层,NLP字段的相同取值可能表示不同的协议类型,比如第一协议层和第二协议层中,NLP字段均取值为1,则表示的协议类型可以不同。
发送端的主机服务器封装报文时,由上层到下层,每一协议层添加包头中NLP字段的取值以及其它字段的取值后,将添加包头的数据包发送给下一协议层,下一协议层确定上一协议层的协议类型,填加包头中NLP字段的取值以及其它字段的取值,采用层层添加包头的方式封装得到数据包发送给网络。发送端的主机服务器将用户数据封装为数据包,数据包的包头包括N个协议层的包头,向接收端的主机服务器发送该数据包。以N个协议层至少包括第一协议层和第二协议层为例,第二协议层的内层为第一协议层,第二协议层的包头中包括NLP字段,第二协议层的NLP字段的取值指示第二协议层的内层为第一协议层。具体的,将封装完第一协议层包头的数据包称为第一数据包,封装完第二协议层的包头的数据包称为第二数据包。发送端的主机服务器获取已封装第一协议层包头的第一数据包,确定第一协议层的外层为第二协议层,然后对第一数据包封装第二协议层的包头得到第二数据包。第二协议层的包头中包括NLP字段,第二协议层的包头中NLP字段的取值指示第二协议层的内层为第一协议层。
在一种可能实施方式中,主机服务器中配置有NLP取值与协议层的对应关系,具体可以参见上述第一配置信息和第二配置信息的相关描述,此处不再赘述。
接收端的主机服务器接收到来自发送端的数据包后,由下层到上层(或者由外层到内层),每一层解封装完成后,按照当前协议层的NLP字段的指示确定上一协议层,进一步进行上一协议层的包头的解封装。通过层层解封装的方式获得发送端的用户数据。以解封装第一协议层和第二协议层为例。接收端的主机服务器接收数据包,所述数据包中封装有来自发送端的用户数据以及N个协议层的包头,所述N个协议层至少包括第一协议层和第二协议层;其中,第二协议层的包头包括第一字段,所述第二协议层的包头中NLP字段的取值指示所述第二协议层的内层为所述第一协议层;在针对所述数据包完成所述第二协议层的包头的解封装时,根据所述第二协议层的包头中NLP字段的取值,执行所述第一协议层的包头的解封装。
交换机/路由器收到数据包时,解析最外层协议层包头,识别出其中的转发地址等字段进行转发,如果需要解析内层的包头来决定转发行为,则根据NLP字段所指示的下一协议层,解析对应的包头识别到转发地址,进行转发处理。
其次,以单独实施第二种可能的实施方式为例进行详细说明。
每个协议层包括的包头包括CFG字段。CFG字段指示当前协议层的包头格式。CFG字段的不同取值指示的第二协议层采用的包头格式不同。
作为一种示例,CFG字段可以占用协议层包头的固定的位置,比如CFG字段占用协议层包头的开始的固定数量的比特,或者CFG字段占用协议层开头的最后的固定数量的比特,又或者CFG字段占用协议层中间位置的固定数量的比特。CFG字段在不同协议层的位置相同。比如,各个协议层中,CFG字段均占用包头开始的固定数量的比特,参见图13所示。从而接收端能够从固定位置解析每个协议层的CFG字段,从而获知内层协议层的协议类型,进而执行内层协议层包头的解析。
一些实施例中,在同一协议层中,CFG字段的不同取值表示不同的包头格式。一种举例中,不同协议层可以采用统一配置,即在不同的协议层,CFG字段的相同取值表示相同的包头格式。另一种举例中,不同协议层的CFG的取值代表的含义可以根据各层自身的需求进行定义。不同的协议层,CFG字段的相同取值可能表示不同的包头格式,比如第一协议层和第二协议层中,CFG字段均取值为1,则表示的包头格式可以不同。
发送端的主机服务器封装报文时,由上层到下层,每一协议层添加包头中CFG字段的取值以及其它字段的取值后,将添加包头的数据包发送给下一协议层,下一协议层确定上一协议层的协议类型,填加包头中CFG字段的取值以及其它字段的取值,采用层层添加包头的方式封装得到数据包发送给网络。发送端的主机服务器将用户数据封装为数据包,数据包的包头包括N个协议层的包头,向接收端的主机服务器发送该数据包。N个协议层的包头中均包括CFG字段,每个协议层包头中的CFG字段的取值指示该协议层的包头格式。以第二协议层为例,第二协议层的包头中包括CFG字段,CFG的取值指示第二协议层的包头格式。
接收端的主机服务器接收到来自发送端的数据包后,由下层到上层(或者由外层到内层)执行解封装,具体的,每一层按照当前协议层的CFG字段的指示确定当前协议层的包头格式,根据当前协议层的包头格式进行解封装。通过层层解封装的方式获得发送端的用户数据。以解封装第二协议层为例。接收端的主机服务器接收数据包,所述数据包中封装有来自发送端的用户数据以及N个协议层的包头,所述N个协议层至少包括第一协议层和第二协议层;其中,第二协议层的包头包括CFG字段,根据所述第二协议层的包头中固定位置的CFG字段的取值确定第二协议层的包头格式,从而执行第二协议层的包头的解封装。
在一种可能实施方式中,主机服务器中配置有CFG取值与包头格式的对应关系。
下面结合具体应用场景对本申请实施例提供的方案进行描述。
第一种可能的应用场景,针对一个机框或一个机柜的小规模网络场景,线缆较短并且硬件信号可靠性很高,硬件物理层可以保证数据的可靠性。在该网络场景下不需要传输层。根据以上业务场景的特点,封装或者解封装数据包时,网络协议层次可以简化。
在该第一种可能的应用场景中,封装或者解封装时,由上层到下层依次可以包括:上层协议层(也可以称为高层)、网络层、数据链路层和物理层。参见图14所示,为一个机框或一个机柜的小规模网络系统架构示意图。网络系统中包括主机A和主机B,主机A与主机B之间通过交换机或者路由器连接。图14中以上层协议层(也可以称为高层协议层)、网络层、数据链路层和物理层均包括一个协议层为例。在一些实施例中,网络层或者数据链路层也可以包括多个协议层,比如,网络层可以封装多个协议层包头,再比如,数据链路层可以封装多个协议层包头,本申请实施例对此不作具体限定。
以主机A与主机B通信为例。主机A进行高层的数据封装,高层上面没有其它协议层,高层包头的NLP字段的取值可以是缺省值。高层根据配置或者协商的包头格式,在CFG字段添加对应的取值,封装高层协议层的包头的数据包称为数据包(DATA)1。高层协议层完成数据包的封装后,越过传输层,直接调用网络层针对数据包1进行封装。网络层确定上一层为高层协议层,则网络层在数据包1上封装网络层包头,在包头的NLP字段添加指示高层协议层的取值,在CFG字段添加指示网络层包头格式的取值,封装网络层的包头的数据包称为数据包(DATA)2。网络层再调用数据链路层针对数据包2进行封装。数据链路层确定上一层为网络层,则数据链路层在数据包2上封装数据链路层包头,在包头的NLP字段添加指示网络层的取值,在CFG字段添加指示数据链路层包头格式的取值,封装数据链路层的包头的数据包称为数据包(DATA)3。通过网卡将数据包3发送出去。
交换机根据数据链路层和网络层中的地址信息进行转发,最后发给接收端的主机。
主机B接收到数据包3,针对数据包3的包头进行由低到高地解封装,先解析数据链路层的CFG字段,根据数据链路层的CFG字段的取值解析数据链路层的包头,之后识别数据链路层的NLP字段,确定下一协议层是网络层的协议层,把剥离数据链路层的包头的数据包2整体交给网络层处理。网络层解析网络层的CFG字段,根据网络层的协议层的CFG字段的取值解析网络层的协议层的包头,之后识别网络层的协议层的NLP字段,确定下一协议层是高层协议层,把剥离网络层的协议层包头的数据包1整体交给高层协议层,进行高层协议层的处理获得用户数据,最后把用户数据交给业务软件。
第二种可能的应用场景,针对包括多个机柜的大规模网络场景。一种示例中,位于同一机柜内的主机/设备一般规模较小,网络层的字段可以少一些,位宽可以短一些,从而可以提高传输效率,提高资源利用率。比如,转发地址占用的位宽可以短一些,用于指示服务质量(quality of service,QoS)的字段(后续描述时简称QoS字段)可以短一些。可选地,位于同一机柜内的主机/设备间,通信的线缆较短并且硬件信号可靠性很高,硬件物理层可以保证数据的可靠性,不需要传输层。另一种示例中,位于不同机柜内的主机/设备之间通信时,网络层的字段的需求量较大,位宽较短可能无法实现。比如网络层的转发地址占用的位宽相比机柜内的设备间通信采用的位宽大,用于指示服务质量(quality of service,QoS)的字段占用的位宽相比机柜内的设备间通信采用的QoS字段位宽大。
作为一种举例,用于指示服务质量(quality of service,QoS)的字段可以是网络层的协议层包头中的优先级字段(Priority),优先级值越高,在网络中传输时可以获得更多的资源,更及时的调度和处理。
参见图15所示,为包括多个机柜的大规模网络系统架构示意图。网络系统中包括主机A、主机B和主机C,主机A、主机B和主机C之间可以通过路由器或者交换机通信。主机A和主机B位于同一个机柜内。主机A和主机B属于不同的机柜。
作为一种举例,在网络系统中,针对网络层采用的协议层包头格式定义两种,其中一种为简化的协议层包头格式。另外一种为标准的协议层包头。比如,简化的协议层包头中,地址占用的比特数小于标准的协议层包头中地址字段占用的比特数。例如,简化的协议层包头中,源地址字段和目的地址字段均占用16bit;标准的协议层包头中源地址字段和目的地址字段均占用8bit。再比如,简化的协议层包头中,QoS字段占用比特数小于标准的协议层包头中QoS占用的比特数。例如,简化的协议层包头中,QoS字段占用4bit;标准的协议层包头中QoS字段占用8bit。示例性地,在CFG字段中,取值为0表示在网络层中采用简化的协议层包头格式,取值为1表示在网络层采用标准的协议层包头格式。
一种可能的示例中,以主机A与主机B之间通信为例。主机A作为发送端,主机B作为接收端。
主机A进行高层的数据封装,高层上面没有其它协议层,高层包头的NLP字段的取值可以是缺省值。高层根据配置或者协商的包头格式,在CFG字段添加对应的取值,封装高层协议层的包头的数据包称为数据包(DATA)1。高层协议层完成数据包的封装后,越过传输层,直接调用网络层针对数据包1进行封装。网络层确定上一层为高层协议层,则网络层在数据包1上封装网络层包头,在包头的NLP字段添加指示高层协议层的取值,由于主机B与主机A位于一个机柜内,针对目的IP地址为主机B时,网络层中配置的协议层包头格式为简化的协议层包头格式,网络层在包头的CFG字段添加0。封装网络层的包头的数据包称为数据包(DATA)2。网络层再调用数据链路层针对数据包2进行封装。数据链路层确定上一层为网络层,则数据链路层在数据包2上封装数据链路层包头,在包头的NLP字段添加指示网络层的取值,在CFG字段添加指示数据链路层包头格式的取值,封装数据链路层的包头的数据包称为数据包(DATA)3。通过网卡将数据包3发送出去。
交换机/路由器根据网络层中的CFG字段的取值0指示的简化的协议层包头格式,对网络层的协议层包头进行解封装,以获得目的地址进行转发到达主机B。
主机B接收到数据包3,针对数据包3的包头进行由低到高地解封装,先解析数据链路层的CFG字段,根据数据链路层的CFG字段的取值解析数据链路层的包头,之后识别数据链路层的NLP字段,确定下一协议层是网络层的协议层,把剥离数据链路层的包头的数据包2整体发送个网络层处理。网络层解析网络层的CFG字段取值为0,根据网络层中的CFG字段的取值0指示的简化的协议层包头格式,对网络层的协议层包头进行解封装,根据NLP字段的取值,确定下一协议层是高层协议层,把剥离网络层的协议层包头的数据包1整体发送给高层协议层,以进行高层协议层的处理获得用户数据,最后把用户数据交给业务软件。
另一种可能的示例中,以主机A与主机C之间通信为例。主机A作为发送端,主机C作为接收端。
主机A进行高层的数据封装,高层上面没有其它协议层,高层包头的NLP字段的取值可以是缺省值。高层根据配置或者协商的包头格式,在CFG字段添加对应的取值,封装高层协议层的包头的数据包称为数据包(DATA)11。高层协议层完成数据包11的封装后,调用传输层针对数据包11封装传输层的协议层包头,传输层确定上一层为高层协议层,根据配置或者协商的协议层包头格式封装传输层的协议层包头,在CFG字段添加对应的取值,在包头的NLP字段添加指示高层协议层的取值,得到数据包12。传输层调用网络层针对数据包12进行封装。网络层确定上一层为传输层的协议层,则网络层在数据包12上封装网络层包头,在包头的NLP字段添加指示传输层的协议层的取值,由于主机C与主机A位于不同的机柜内,针对目的IP地址为主机C时,网络层中配置的协议层包头格式为标准的协议层包头格式,网络层在包头的CFG字段添加1。封装网络层的包头的数据包称为数据包(DATA)13。网络层再调用数据链路层针对数据包13进行封装。数据链路层确定上一层为网络层,则数据链路层在数据包13上封装数据链路层包头,在包头的NLP字段添加指示网络层的取值,在CFG字段添加指示数据链路层包头格式的取值,封装数据链路层的包头的数据包称为数据包(DATA)14。通过网卡将数据包14发送出去。
交换机/路由器根据网络层中的CFG字段的取值1指示的标准的协议层包头格式,对网络层的协议层包头进行解封装,以获得目的地址进行转发到达主机C。
主机C接收到数据包14,针对数据包14的包头进行由低到高地解封装,先解析数据链路层的CFG字段,根据数据链路层的CFG字段的取值解析数据链路层的包头,之后识别数据链路层的NLP字段,确定下一协议层是网络层的协议层,把剥离数据链路层的包头的数据包13整体交给网络层处理。网络层解析网络层的CFG字段取值为1,根据网络层中的CFG字段的取值1指示的简化的协议层包头格式,对网络层的协议层包头进行解封装,根据NLP字段的取值,确定下一协议层是传输层,把剥离网络层的协议层包头的数据包12整体发送给传输层的协议层,根据传输层的CFG字段的取值对传输层的协议层包头进行解封装,根据NLP字段的取值,确定下一协议层是高层协议层,把剥离传输层的协议层包头的数据包11整体发送给高层协议层,以进行高层协议层的处理获得用户数据,最后把用户数据交给业务软件。
基于与上述方法同样的发明构思,本申请实施例提供一种数据处理装置1600,参见图16所示,所述装置1600应用于网络设备,可以由网络设备中的处理器来实现,或者由网络设备中网卡来实现。数据处理装置1600用于实现上述任一实施例中主机或者交换机或者处理器或者网卡实现的方法。数据处理装置可以包括第一协议层模块1601和第二协议层模块1602。
第一种可能的应用场景中:
第一协议层模块1601,用于向第二协议层模块1602发送封装有第一协议层的包头的第一数据包;所述第二协议层模块1602,用于对所述第一数据包封装第二协议层的包头得到第二数据包(或者描述为将所述第二协议层的包头添加至所述第一数据包以得到第二数据包);其中,所述第二协议层的包头中包括第一字段,所述第二协议层的包头中第一字段的取值指示所述第二协议层的内层为所述第一协议层。图16中以第一种可能的应用场景为例。
第二种可能的应用场景中:
第二协议层模块1602,用于接收数据包,所述数据包中封装有来自第一网络设备的数据以及N个协议层的包头,所述N个协议层至少包括第一协议层和第二协议层;其中,第二协议层的包头包括第一字段,所述第二协议层的包头中第一字段的取值指示所述第二协议层的内层为所述第一协议层;所述第二协议层模块1602在针对所述数据包完成所述第二协议层的包头的解封装得到第二数据包时,根据所述第二协议层的包头中第一字段的取值,将完成第二协议层的包头的解封装得到的第二数据包发送给第一协议层模块1601,所述第一协议层模块1601,用于执行所述第一协议层的包头的解封装。
第三种可能的应用场景中:
第一协议层模块1601,用于向第二协议层模块1602发送封装有第一协议层包头的第一数据包;第二协议层模块1602,用于确定所述第一协议层的外层协议层为第二协议层时,对所述第一数据包封装第二协议层的包头得到第二数据包;其中,所述第二协议层的包头中包括第二字段,所述第二协议层的包头中第二字段的取值指示所述第二协议层所采用的包头格式;其中,所述第二字段的不同取值指示的第二协议层所采用的包头格式不同。
第四种可能的应用场景中:
第二协议层模块1602,用于接收数据包,所述数据包中封装有来自第一网络设备的数据以及N个协议层的包头,所述N个协议层至少包括第二协议层;其中,第二协议层的包头包括第二字段,所述第二协议层中第二字段的取值指示所述第二协议层所采用的包头格式;所述第二协议层模块1602在针对所述数据包执行所述第二协议层的包头的解封装时,根据所述第二协议层中第二字段的取值,完成所述第二协议层的包头的解封装。
参见图17,是本申请另一实施例提供的一种芯片的结构性框图。如图17所示的本实施例中的芯片可以包括控制器1710和接口1720。控制器1710和接口1720相互配合,使得芯片600执行上述实施例中网卡所执行的方法或者处理器所执行的方法。其中,控制器510可以是中央控制器(CPU,central processing unit),通用处理器,协控制器,数字信号控制器(digital signal processor,DSP),专用集成电路(ASIC,application-specificintegrated circuit),现场可编程门阵列(FPGA,field programmable gate array)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。该控制器也可以是实现计算功能的组合,例如包含一个或多个微控制器组合,DSP和微控制器的组合等等。
此外,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,上述计算机程序在被计算设备执行时实现前述主机或者交换机或者处理器或者网卡所实现的方法。
此外,本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机指令。当该计算机指令被计算设备执行时实现前述主机或者交换机或者处理器或者网卡所实现的方法。
基于同一发明构思,本申请实施例中提供的数据处理装置解决问题的原理与本申请方法实施例解决问题的原理相似,因此各设备的实施可以参见装置的实施,为简洁描述,在这里不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (25)
1.一种数据处理方法,其特征在于,所述方法应用于第一网络设备,包括:
获取第一数据包,所述第一数据包封装有第一协议层的包头;
将第二协议层的包头添加到所述第一数据包以得到第二数据包;
其中,所述第二协议层为所述第一协议层的外层,所述第二协议层的包头中包括第一字段,所述第一字段的取值指示所述第二协议层的内层为所述第一协议层。
2.如权利要求1所述的方法,其特征在于,所述第一协议层和所述第二协议层属于在开放系统互连OSI模型包括的七层中相邻的两层;或者,所述第一协议层和所述第二协议层属于在开放系统互连OSI模型包括的七层中不相邻的两层;或者,所述第一协议层和所述第二协议层属于OSI模型包括的七层中的同一层。
3.如权利要求1或2所述的方法,其特征在于,将所述第二协议层的包头添加到所述第一数据包以得到第二数据包之前,还包括:
根据第一配置信息,确定所述第二协议层的包头中所述第一字段的取值;
其中,所述第一配置信息中包括所述第一字段的不同取值与不同协议层的对应关系。
4.如权利要求1或2所述的方法,其特征在于,将所述第二协议层的包头添加到所述第一数据包以得到第二数据包之前,还包括:
根据第二协议层对应的第二配置信息,确定所述第二协议层的包头中所述第一字段的取值;
其中,所述第二配置信息中包括在所述第二协议层中,所述第一字段的不同取值与不同协议层的对应关系。
5.如权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
根据第三配置信息,确定所述第一协议层的外层为第二协议层;
其中,所述第三配置信息指示用于封装数据包的协议层,以及不同的协议层之间的邻接关系。
6.如权利要求1-4任一项所述的方法,其特征在于,所述第一数据包包括待发送给第二网络设备的数据,所述方法还包括:
与所述第二网络设备协商协议层信息,所述协议层信息指示用于封装待发送给第二网络设备的数据的协议层,以及不同的协议层之间的邻接关系;
所述确定所述第一协议层的外层为第二协议层,包括:
根据所述协议层信息确定所述第一协议层的外层为所述第二协议层。
7.如权利要求1-6任一项所述的方法,其特征在于,所述第二协议层的包头中还包括第二字段,所述第二字段的取值指示所述第二协议层所采用的包头格式。
8.如权利要求7所述的方法,其特征在于,将所述第二协议层的包头添加到所述第一数据包以得到第二数据包,包括:
根据指示信息确定所述第二协议层的包头格式;
根据确定的所述第二协议层的包头格式对所述第一数据包封装所述第二协议层的包头得到所述第二数据包;
其中,所述指示信息用于指示所述第二协议层所采用的包头格式。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
接收网络管理设备发送的所述指示信息。
10.如权利要求7所述的方法,其特征在于,所述第一数据包包括待发送给第二网络设备的数据,将所述第二协议层的包头添加到所述第一数据包以得到第二数据包之前,还包括:
所述第一网络设备与所述第二网络设备协商包头信息,所述包头信息包括用于指示所述第二协议层所采用的包头格式的信息;
将所述第二协议层的包头添加到所述第一数据包以得到第二数据包,包括:
根据所述包头信息确定所述第二协议层的包头格式,根据确定的所述第二协议层的包头格式将所述第二协议层的包头添加到所述第一数据包以得到所述第二数据包。
11.如权利要求8-10任一项所述的方法,其特征在于,所述根据确定的所述第二协议层的包头格式将所述第二协议层的包头添加到所述第一数据包以得到所述第二数据包,包括:
根据确定的所述第二协议层的包头格式和第四配置信息将所述第二协议层的包头添加到所述第一数据包以得到所述第二数据包;
其中,所述第四配置信息包括所述第二字段的不同取值与所述第二协议层所采用的不同包头格式的对应关系。
12.一种数据处理方法,其特征在于,所述方法应用于第二网络设备,包括:
接收数据包,所述数据包中封装有来自第一网络设备的数据以及N个协议层的包头,N为大于1的整数,所述N个协议层至少包括第一协议层和第二协议层;
其中,所述第二协议层的包头包括第一字段,所述第一字段的取值指示所述第二协议层的内层为所述第一协议层;
在针对所述数据包完成所述第二协议层的包头的解封装时,根据所述第二协议层的包头中所述第一字段的取值,对所述第一协议层的包头进行解封装。
13.如权利要求12所述的方法,其特征在于,根据所述第二协议层的包头中所述第一字段的取值,对所述第一协议层的包头进行解封装,包括:
根据所述第二协议层的包头中所述第一字段的取值以及第一配置信息确定所述第二协议层的内层为所述第一协议层;所述第一配置信息中包括所述第一字段的不同取值与不同协议层的对应关系;
对所述第一协议层的包头进行解封装。
14.如权利要求12所述的方法,其特征在于,根据所述第二协议层的包头中所述第一字段的取值,对所述第一协议层的包头进行解封装,包括:
根据所述第二协议层的包头中所述第一字段的取值以及第二协议层对应的第二配置信息确定所述第二协议层的内层为所述第一协议层;所述第二配置信息中包括在第二协议层中,所述第一字段的不同取值与不同协议层的对应关系;
对所述第一协议层的包头进行解封装。
15.如权利要求12-14任一项所述的方法,其特征在于,所述第二协议层的包头还包括第二字段,所述第二字段的取值指示所述第二协议层所采用的包头格式;
针对所述第一数据包完成所述第二协议层的包头的解封装,包括:
根据所述第二协议层中所述第二字段的取值,对所述第二协议层的包头的进行解封装。
16.如权利要求15所述的方法,其特征在于,根据所述第二协议层中所述第二字段的取值,完成所述第二协议层的包头的解封装,包括:
根据所述第二协议层中第二字段的取值和第四配置信息确定所述第二协议层所采用的包头格式;
根据所述第二协议层所采用的包头格式对所述第二协议层的包头进行解封装;
其中,所述第四配置信息包括所述第二字段的不同取值与所述第二协议层所采用的包头格式的对应关系。
17.一种数据处理方法,其特征在于,应用于第一网络设备,包括:
获取数据包;
在所述数据包的协议层的包头配置第二字段,所述第二字段的取值指示所述协议层所采用的包头格式。
18.如权利要求17所述的方法,其特征在于,在所述数据包的协议层的包头配置第二字段,包括:
根据指示信息确定所述第二协议层的包头格式,根据确定的所述第二协议层的包头格式在所述数据包的协议层的包头配置第二字段;
其中,所述指示信息用于指示所述第二协议层所采用的包头格式。
19.如权利要求17所述的方法,其特征在于,所述数据包包括待发送给第二网络设备的数据,在所述数据包的协议层的包头配置第二字段之前,还包括:
与所述第二网络设备协商包头信息,所述包头信息包括用于指示所述第二协议层所采用的包头格式的信息;
在所述数据包的协议层的包头配置第二字段,包括:
根据所述包头信息确定所述第二协议层的包头格式,根据确定的所述第二协议层的包头格式在所述数据包的协议层的包头配置第二字段。
20.一种数据处理方法,其特征在于,所述方法应用于第二网络设备,包括:
接收数据包,所述数据包中封装有来自第一网络设备的数据以及协议层的包头;
其中,所述协议层的包头包括第二字段,所述第二字段的取值指示所述协议层所采用的包头格式;
根据所述协议层中所述第二字段的取值,对所述协议层的包头进行解封装。
21.如权利要求20所述的方法,其特征在于,根据所述协议层中所述第二字段的取值,对所述协议层的包头进行解封装,包括:
根据所述协议层中第二字段的取值和第四配置信息确定所述协议层所采用的包头格式;
根据所述协议层所采用的包头格式对所述协议层的包头进行解封装;
其中,所述第四配置信息包括所述第二字段的不同取值与所述协议层所采用的包头格式的对应关系。
22.一种数据处理装置,其特征在于,所述数据处理装置包括处理器和网卡;所述处理器用于接收所述网卡发送的数据包,或向所述网卡发送数据包;所述网卡用于实现如权利要求1至11或者12-16或者17-19或者20-21任一项所述的方法。
23.一种芯片,其特征在于,包括:控制器和接口,所述控制器和所述接口相互配合,使得所述芯片执行如权利要求1至11或者12-16或者17-19或者20-21任一项所述的方法。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序在被计算设备执行时实现权利要求1至11或者12-16或者17-19或者20-21所述的方法。
25.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,当所述计算机指令被计算设备执行时,所述计算设备可以执行权利要求1至11或者12-16或者17-19或者20-21任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110221842.XA CN115065734A (zh) | 2021-02-27 | 2021-02-27 | 一种数据处理方法、装置及芯片 |
EP22758818.3A EP4287567A1 (en) | 2021-02-27 | 2022-02-18 | Data processing method, apparatus and chip |
PCT/CN2022/076961 WO2022179454A1 (zh) | 2021-02-27 | 2022-02-18 | 一种数据处理方法、装置及芯片 |
US18/456,147 US20230412501A1 (en) | 2021-02-27 | 2023-08-25 | Data processing method and apparatus, and chip |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110221842.XA CN115065734A (zh) | 2021-02-27 | 2021-02-27 | 一种数据处理方法、装置及芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115065734A true CN115065734A (zh) | 2022-09-16 |
Family
ID=83047772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110221842.XA Pending CN115065734A (zh) | 2021-02-27 | 2021-02-27 | 一种数据处理方法、装置及芯片 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230412501A1 (zh) |
EP (1) | EP4287567A1 (zh) |
CN (1) | CN115065734A (zh) |
WO (1) | WO2022179454A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8315243B2 (en) * | 2007-08-14 | 2012-11-20 | Qualcomm Incorporated | Transport of PDCP control PDUs within MAC frames |
US10833892B2 (en) * | 2015-03-05 | 2020-11-10 | Blackberry Limited | Bridged local area network communication between a device and a cellular access network node |
CN105992242B (zh) * | 2015-03-06 | 2019-07-26 | 电信科学技术研究院 | 一种空口协议栈的配置方法、数据传输方法及设备 |
CN105991625B (zh) * | 2015-03-06 | 2020-11-06 | 电信科学技术研究院 | 一种进行数据传输的方法和设备 |
-
2021
- 2021-02-27 CN CN202110221842.XA patent/CN115065734A/zh active Pending
-
2022
- 2022-02-18 WO PCT/CN2022/076961 patent/WO2022179454A1/zh active Application Filing
- 2022-02-18 EP EP22758818.3A patent/EP4287567A1/en active Pending
-
2023
- 2023-08-25 US US18/456,147 patent/US20230412501A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4287567A1 (en) | 2023-12-06 |
WO2022179454A1 (zh) | 2022-09-01 |
US20230412501A1 (en) | 2023-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8825829B2 (en) | Routing and service performance management in an application acceleration environment | |
US11418629B2 (en) | Methods and systems for accessing remote digital data over a wide area network (WAN) | |
US20220078114A1 (en) | Method and Apparatus for Providing Service for Traffic Flow | |
US8634308B2 (en) | Path detection in trill networks | |
JP4627669B2 (ja) | パケット転送装置およびその転送制御方式 | |
US7782841B2 (en) | Method and system for transporting data using pseudowire circuits over a bridged network | |
US20160337146A1 (en) | Method of data delivery across a network fabric in a router or ethernet bridge | |
CN110266578B (zh) | 用于传输和接收包的方法和系统 | |
EP2434697B1 (en) | Method for interconnecting multi-protocol label switching network and ethernet, thereof device and system | |
CN111628921B (zh) | 一种报文的处理方法、报文转发装置以及报文处理装置 | |
US11627077B2 (en) | Reliable overlay based on reliable transport layer | |
CN112583718B (zh) | 一种SRoU场景下SRv6报文传递方法、系统、设备及介质 | |
US11165893B2 (en) | Techniques for packet data conversion | |
EP2600569A1 (en) | Method, apparatus and system for processing a tunnel packet | |
CN107231316B (zh) | 报文的传输方法及装置 | |
CN115514828A (zh) | 数据传输方法及电子设备 | |
WO2022179454A1 (zh) | 一种数据处理方法、装置及芯片 | |
US20220408310A1 (en) | Lightweight fragmentation and reliability for fixed mobile convergence access stratum and non-access stratum signaling | |
US8054834B2 (en) | Method and equipment for demultiplexing variable size protocol data units | |
CN115225567A (zh) | 一种报文处理方法及相关设备 | |
Herrmann et al. | An UDP/IP network stack in FPGA | |
NAKAMURA | Improving Packet Transport in Virtual Networking by Encapsulation Techniques | |
Wadekar | InfiniBand, iWARP, and RoCE | |
JP2004088718A (ja) | パケット処理装置 |
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 |