CN117640555A - Quic报文的传输方法及相关设备 - Google Patents

Quic报文的传输方法及相关设备 Download PDF

Info

Publication number
CN117640555A
CN117640555A CN202211234574.6A CN202211234574A CN117640555A CN 117640555 A CN117640555 A CN 117640555A CN 202211234574 A CN202211234574 A CN 202211234574A CN 117640555 A CN117640555 A CN 117640555A
Authority
CN
China
Prior art keywords
header
quic
message
network device
ipv6
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
Application number
CN202211234574.6A
Other languages
English (en)
Inventor
范大卫
李振斌
陈双龙
杨宏杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to PCT/CN2023/096437 priority Critical patent/WO2024041064A1/zh
Publication of CN117640555A publication Critical patent/CN117640555A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种QUIC报文的传输方法及相关设备,属于网络技术领域。本申请通过将QUIC头设于IPv6扩展头的下一个头,或者将QUIC头设于IPv6扩展头的内部,实现了在不携带UDP头的情况下,携带QUIC头,从而简化了QUIC报文的封装格式,节省了传输QUIC报文的开销。

Description

QUIC报文的传输方法及相关设备
本申请要求于2022年8月25日提交的申请号为202211028659.9、发明名称为“一种基于IPv6的QUIC报文封装方法和相关设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及网络技术领域,特别涉及一种QUIC报文的传输方法及相关设备。
背景技术
快速用户数据报协议互联网连接(quick user datagram protocol internetconnection,QUIC)是一种传输层协议。QUIC具有支持处理更多的连接、安全性较高、时延较低等优势,从而较好地满足了当今传输层和应用层面临的各种需求。
QUIC报文目前基于UDP传输。具体地,网络设备在互联网协议第6版(internetprotocol version 6,IPv6)网络中传输QUIC报文的过程中,QUIC报文包括IPv6基本头、IPv6扩展头、UDP头、QUIC头以及载荷。QUIC头位于UDP头与载荷之间。
采用上述方法时,QUIC报文的封装格式过于冗余,导致传输QUIC报文的开销较大。
发明内容
本申请提供了一种QUIC报文的传输方法及相关设备,能够节省传输QUIC报文的开销。技术方案如下。
第一方面,提供了一种QUIC报文的传输方法,包括:
第一网络设备生成QUIC报文,QUIC报文包括IPv6扩展头和QUIC头,QUIC头为IPv6扩展头的下一个头或者QUIC头位于IPv6扩展头的内部;
第一网络设备发送QUIC报文。
根据第一方面提供的方法,通过将QUIC头设于IPv6扩展头的下一个头,或者将QUIC头设于IPv6扩展头的内部,实现了在不携带UDP头的情况下,携带QUIC头,从而简化了QUIC报文的封装格式,节省了传输QUIC报文的开销。
在一些实施方式中,QUIC头为IPv6扩展头的下一个头,IPv6扩展头中下一个头(next header,NH)字段的值指示QUIC头。
通过上述实施方式,接收端在解析报文的过程中,当从一个IPv6扩展头中nextheader字段读取到表示QUIC的取值时,即可获知该IPv6扩展头的下一个报文头是QUIC头,以便读取QUIC头中的信息来处理报文。这种实施方式使得接收端的报文处理流程符合IPv6标准定义的报文处理流程,因此兼容性较好,设备支持IPv6即可实现上述实施方式,实现复杂度较低。
在一些实施方式中,IPv6扩展头包括目的选项头(destination options header,DOH)、段路由头(segment routing header,SRH)或者逐跳选项头(hop-by-hop optionsheader,HBH)。
在一些实施方式中,IPv6扩展头包括选项字段,选项字段包括选项类型字段以及选项数据字段,选项类型字段的值指示QUIC头,选项数据字段包括QUIC头。
通过上述实施方式,相当于将QUIC头作为IPv6扩展头中一种新的选项,接收端在解析报文的过程中,当从一个IPv6扩展头中一个选项类型字段读取到表示QUIC的取值时,即可获知该选项类型字段之后的选项数据字段存在QUIC头,以便基于QUIC头中的信息处理报文,这种方式能够兼容IPv6扩展头已有的处理流程,实现复杂度较低。
在一些实施方式中,IPv6扩展头包括DOH、SRH或者HBH。
在一些实施方式中,IPv6扩展头包括第一段标识(segment ID,SID)和第二SID,第一SID标识第一QUIC连接的起点设备,第二SID标识第一QUIC连接的终点设备,第一QUIC连接用于传输QUIC报文。
通过上述实施方式,由于利用SID来标识转发路径中基于QUIC传输的段,从而满足任意一段或多段基于QUIC传输报文的需求。
在一些实施方式中,第一SID中功能字段的值指示通过第一QUIC连接发送QUIC报文,第一SID中参数字段的值指示添加QUIC头,第二SID中功能字段的值指示通过第一QUIC连接接收QUIC报文,第二SID中参数字段的值指示剥离QUIC头。
在一些实施方式中,第一SID中功能字段的值指示通过第一QUIC连接发送QUIC报文并添加QUIC头,第二SID中功能字段的值指示通过第一QUIC连接接收QUIC报文并剥离QUIC头。
在一些实施方式中,IPv6扩展头包括DOH、SRH或者HBH,IPv6扩展头包括选项字段,选项字段包括选项数据字段,选项数据字段包括QUIC头、第一SID和第二SID;或者,
IPv6扩展头包括SRH,SRH中的SID列表包括第一SID和第二SID,SRH中的选项字段包括QUIC头或者SRH的下一个头为QUIC头。
在一些实施方式中,IPv6扩展头包括第一SID,第一SID标识第一QUIC连接的一个端点设备,第一网络设备为第一QUIC连接中端点设备之外的另一个端点设备,第一QUIC连接用于传输QUIC报文。
在一些实施方式中,IPv6扩展头还包括第三SID和第四SID,第三SID标识第二QUIC连接的起点设备,第四SID标识第二QUIC连接的终点设备,第二QUIC连接为QUIC报文的转发路径中第一QUIC连接之后的QUIC连接。
在一些实施方式中,第一网络设备生成QUIC报文,包括:
第一网络设备接收IPv6报文,IPv6报文包括IPv6扩展头;
第一网络设备向IPv6报文添加QUIC头,以得到QUIC报文;
相应地,第一网络设备发送QUIC报文,包括:
第一网络设备通过第一QUIC连接发送QUIC报文。
在一些实施方式中,第一网络设备生成QUIC报文,包括:
第一网络设备接收来自用户设备的数据报文;
第一网络设备向数据报文添加IPv6扩展头和QUIC头,以得到QUIC报文,QUIC报文的载荷字段包括数据报文。
在一些实施方式中,第一网络设备生成QUIC报文,包括:
第一网络设备基于第一网络设备生成的业务数据,生成QUIC报文,QUIC报文的载荷字段包括业务数据。
在一些实施方式中,QUIC报文不包括用户数据报协议互联网连接(user datagramprotocol,UDP)头。
第二方面,提供了一种网络设备,该网络设备具有实现上述第一方面或第一方面任一种可选方式的功能。该网络设备包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面任一种可选方式所提供的方法。
在一些实施方式中,网络设备中的单元通过软件实现,网络设备中的单元是程序模块。在另一些实施方式中,网络设备中的单元通过硬件或固件实现。第二方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第三方面,提供了一种网络设备,该网络设备包括处理器和网络接口,该处理器用于执行指令,使得该网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法,网络接口用于接收或发送QUIC报文。第三方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第四方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
第五方面,提供了一种计算机程序产品,计算机程序产品包括一个或多个计算机程序指令,当计算机程序指令被计算机加载并运行时,使得计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
第六方面,提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第一方面及其第一方面任意可能的实现方式中的方法。
附图说明
图1是本申请实施例提供的一种应用场景的示意图;
图2是本申请实施例提供的一种应用场景的示意图;
图3是本申请实施例提供的一种应用场景的示意图;
图4是本申请实施例提供的一种应用场景的示意图;
图5是本申请实施例提供的一种应用场景的示意图;
图6是本申请实施例提供的一种应用场景的示意图;
图7是本申请实施例提供的一种QUIC报文的传输方法的流程图;
图8是本申请实施例提供的一种报文格式示意图;
图9是本申请实施例提供的一种报文格式示意图;
图10是本申请实施例提供的一种报文格式示意图;
图11是本申请实施例提供的一种报文格式示意图;
图12是本申请实施例提供的一种报文格式示意图;
图13是本申请实施例提供的一种报文格式示意图;
图14是本申请实施例提供的一种报文格式示意图;
图15是本申请实施例提供的一种报文格式示意图;
图16是本申请实施例提供的一种报文格式示意图;
图17是本申请实施例提供的一种报文格式示意图;
图18是本申请实施例提供的一种报文格式示意图;
图19是本申请实施例提供的一种报文格式示意图;
图20是本申请实施例提供的一种报文格式示意图;
图21是本申请实施例提供的一种报文格式示意图;
图22是本申请实施例提供的一种报文格式示意图;
图23是本申请实施例提供的一种报文格式示意图;
图24是本申请实施例提供的一种报文格式示意图;
图25是本申请实施例提供的一种报文格式示意图;
图26是本申请实施例提供的一种应用场景的示意图;
图27是本申请实施例提供的一种报文格式示意图;
图28是本申请实施例提供的一种应用场景的示意图;
图29是本申请实施例提供的一种报文格式示意图;
图30是本申请实施例提供的一种报文格式示意图;
图31是本申请实施例提供的一种应用场景的示意图;
图32是本申请实施例提供的一种应用场景的示意图;
图33是本申请实施例提供的一种应用场景的示意图;
图34是本申请实施例提供的一种应用场景的示意图;
图35是本申请实施例提供的一种应用场景的示意图;
图36是本申请实施例提供的一种网络设备的结构示意图;
图37是本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
现有技术在互联网协议第6版(internet protocol version 6,IPv6)网络中传输QUIC报文的场景下,按照从报文头至报文尾,或者说从外层至内层的顺序而言,QUIC报文中,首先是IPv6头,之后是用户数据报协议(user datagram protocol,UDP)头,之后是QUIC头,之后是载荷(payload)。总结来看,现有技术中QUIC头设于UDP头之后。
然而,本申请的发明人发现,在IPv6网络的传输场景下,由于UDP头的存在,QUIC报文的封装过于冗余,导致传输QUIC报文的开销较大。
具体地,IPv6网络的传输场景下,报文会携带IPv6头。IPv6头至少包括IPv6基本头,IPv6头可选地还包括一个或多个IPv6扩展头。IPv6头承担了UDP头原有的一些功能。例如,UDP头中的端口号用于承担负载分担以及识别上层应用的功能,而IPv6基本头中的流标签(flow label)同样能够实现负载分担,IPv6基本头以及IPv6扩展头中的下一个头(nextheader,NH)字段同样能够实现识别上层应用的功能。由此可见,IPv6头能够一定程度上替代UDP头,而UDP头的价值不大,反而造成报文的封装冗余。
有鉴于此,本申请的一些实施例中,针对IPv6网络中传输QUIC报文的场景,提供了一种更精简的报文封装格式。在本申请实施例的报文封装格式中,QUIC头设于IPv6基本头与载荷之间。例如,QUIC头设于IPv6扩展头中的任意位置。比如说,QUIC头设于已有的任一种IPv6扩展头内部;或者,QUIC头作为一种独立的IPv6扩展头,插入至已有的IPv6扩展头中的任意位置。根据该实施例,实现了在不携带UDP头的情况下,携带QUIC头,从而解决IPv6网络中QUIC报文封装冗余的问题,节省传输QUIC报文的开销。
下面对本申请实施例的应用场景举例说明。
本申请实施例应用在两个设备在IPv6网络中传输QUIC报文的场景。例如,两个设备先基于QUIC协议建立一条连接,然后通过这条连接,实施本申请实施例提供的方法以传输QUIC报文。
QUIC连接的端点设备的产品形态包括很多种实施方式。例如,QUIC连接的端点设备为网络侧的设备,如路由器、交换机或防火墙等;或者,QUIC连接的端点设备为用户侧的设备,如个人计算机、笔记本电脑、手机等终端;再如,QUIC连接的端点设备为业务侧的设备,如服务器或者存储设备等。
本申请实施例后续以两个网络设备传输QUIC报文的场景为例进行说明,为了区分描述,将这两个网络设备分别称为“第一网络设备”和“第二网络设备”。如图1所示,第一网络设备11和第二网络设备12之间建立了QUIC连接,第一网络设备11和第二网络设备12为QUIC连接的两个端点设备。第一网络设备11和第二网络设备12均处于IPv6网络中。第一网络设备11和第二网络设备12也可以根据使用场景的不同,替换为网络设备之外的其他类型的设备,如替换为第一用户设备和第二用户设备,或者替换为第一服务器和第二服务器。
本申请实施例后续以第一网络设备11向第二网络设备12发送QUIC报文为例描述。第一网络设备11为QUIC连接的起点设备。第一网络设备11为QUIC报文的发送端。第二网络设备12为QUIC报文的接收端。第二网络设备12为QUIC连接的终点设备。第一网络设备11例如用于添加QUIC头、对载荷进行加密以及通过QUIC连接发送报文。第二网络设备12例如用于剥离QUIC头、对载荷进行解密以及通过QUIC连接接收报文。
本申请实施例适用于QUIC客户端向QUIC服务端传输报文的场景,在该场景下,第一网络设备11为QUIC客户端,第二网络设备12为QUIC服务端;本申请实施例也适用于QUIC服务端向QUIC客户端传输报文的场景,在该场景下,第一网络设备11为QUIC服务端,第二网络设备12为QUIC客户端。
QUIC连接的端点设备部署于IPv6网络,下面结合四种可能的部署位置举例说明。
部署位置一、QUIC连接的两个端点设备均部署于IPv6网络的边界。例如,请参考图2,图2示出的场景中,第一网络设备11为IPv6网络的入口节点。第二网络设备12为IPv6网络的出口节点。
部署位置二、QUIC连接的两个端点设备均部署于IPv6网络的内部。例如,请参考图3,图3示出的场景中,第三网络设备13为IPv6网络的入口节点。第四网络设备14为IPv6网络的出口节点。第一网络设备11以及第二网络设备12部署于IPv6网络内部,第一网络设备11与第三网络设备13基于IPv6协议建立链路,第二网络设备12与第四网络设备14基于IPv6协议建立链路。
部署位置三、QUIC连接的起点设备部署于IPv6网络的内部,QUIC连接的终点设备部署于IPv6网络的边界。例如,请参考图4,图4示出的场景中,第一网络设备11为IPv6网络的入口节点。第二网络设备12部署于IPv6网络内部。第四网络设备14为IPv6网络的出口节点。第二网络设备12与第四网络设备14基于IPv6协议建立链路。
部署位置四、QUIC连接的起点设备部署于IPv6网络的边界,QUIC连接的终点设备部署于IPv6网络的内部。例如,请参考图5,图5示出的场景中,第三网络设备13为IPv6网络的入口节点。第一网络设备11部署于IPv6网络内部,第一网络设备11与第三网络设备13基于IPv6协议建立链路。第二网络设备12为IPv6网络的出口节点。
本申请实施例适用于QUIC连接的两个端点设备通过一条IPv6链路直连的场景,在该场景下,QUIC连接的起点设备的下一跳IPv6节点为QUIC连接的终点设备。本申请实施例也适用于QUIC连接的两个端点设备之间存在一个或多个中间节点的场景,中间节点用于将QUIC连接的起点设备发送的QUIC报文转发至QUIC连接的终点设备。例如,请参考图6,图6示出的场景中,第一网络设备11与第二网络设备12之间存在2个中间节点,第一网络设备11与中间节点17-1建立IPv6链路,中间节点17-1与中间节点17-2建立IPv6链路,中间节点17-2与第二网络设备12建立IPv6链路。
本申请实施例适用于基于QUIC传输本设备的业务数据的场景,也适用于基于QUIC传输来自其他设备的业务数据的场景。比如说,QUIC连接的两个端点设备的两侧部署了用户设备,QUIC连接的两个端点设备基于QUIC传输用户设备的业务数据。例如,请参考图2,图2示出的场景中,第一网络设备11与第一用户设备15网络连接,第二网络设备12与第二用户设备16网络连接,第一网络设备11用于在接收到来自第一用户设备15的数据报文241后,基于QUIC中的加密机制对数据报文241加密,将密文形式的数据报文242作为载荷,添加QUIC头和IPv6头后,得到QUIC报文20。第二网络设备12用于基于QUIC连接接收QUIC报文20,解封装QUIC头和IPv6头,并对密文形式的数据报文242解密,得到明文形式的数据报文241,将数据报文241转发给第二用户设备16。
在一个示例性场景中,本申请实施例应用于部署虚拟专用网络(Virtual PrivateNetwork,VPN)业务。例如,第一用户设备15和第二用户设备16位于同一个VPN中,第一用户设备15为VPN中第一站点的用户网络边缘设备(Customer Edge,CE),第二用户设备16为VPN中第二站点的CE。第一网络设备11以及第二网络设备12均为服务提供商网络中的服务提供商网络的边缘设备(Provider Edge,PE),第一网络设备11与第二网络设备12之间的中间节点为服务提供商网络中的骨干设备(Provider,P)。
在另一个示例性应用场景中,本申请实施例应用于数据中心内传输流量。例如,第一用户设备15以及第二用户设备16均为数据中心的服务器,第一网络设备11以及第二网络设备12均为数据中心中的交换机。比如说,第一网络设备11以及第二网络设备12基于leaf-spine(叶脊)架构通信,第一网络设备11以及第二网络设备12均为叶(leaf)交换机,第一网络设备11与第二网络设备12之间的中间节点为脊(spine)交换机。或者,第一网络设备11以及第二网络设备12基于接入-汇聚-核心的三层架构通信,第一网络设备11以及第二网络设备12均为接入交换机,第一网络设备11与第二网络设备12之间的中间节点包括汇聚交换机以及核心交换机。
下面结合上述应用场景对本申请实施例的方法流程举例说明。
图7是本申请实施例提供的一种QUIC报文的传输方法的流程图。图7所示方法所基于的应用场景包括而不限于上述图1至图6中任一个附图示出的场景,图7所示方法中的第一网络设备例如为图1至图6中任一个附图中的第一网络设备11,图7所示方法中的第二网络设备例如为图1至图6中任一个附图中的第二网络设备12。图7所示方法包括以下步骤S701至步骤S704。
步骤S701,第一网络设备生成QUIC报文。
上述QUIC报文为IPv6报文。QUIC报文的报文头部分包括IPv6基本头、一个或多个IPv6扩展头以及QUIC头。QUIC报文的载荷字段包括业务数据。
QUIC头用于携带与QUIC传输相关的参数。图8是QUIC头的格式示意图。如图8所示,QUIC头包括一个或多个标志(flags)字段、连接标识(connection ID)字段、版本号(version)字段以及长度可变的报文序列号(packet number)字段。标志字段用于标识connection ID字段的长度或packet number字段的长度等信息。连接标识字段用于携带QUIC连接的标识。QUIC连接的标识例如是第一网络设备生成的一串随机数。版本号字段携带QUIC协议的版本号。QUIC头的更多细节可参考RFC9000。
IPv6扩展头是位于IPv6基本头之后的一种IPv6报文头。图9是IPv6扩展头的格式示意图。如图9所示,IPv6扩展头包括next header字段21、扩展头长度(Hdr Ext Len)字段以及一个或多个选项(Options)。
QUIC头的携带位置包括多种情况,下面结合携带位置一和携带位置二举例说明。
携带位置一、QUIC头为IPv6扩展头的下一个头。
在采用携带位置一时,QUIC头作为一个独立的报文头。QUIC头与已有的IPv6扩展头地位并列,可将QUIC头理解为一种新类型的IPv6扩展头。
QUIC头与IPv6扩展头的顺序关系包括多种情况。在一些实施例中,QUIC头为最后一个IPv6扩展头的下一个头。也即是,QUIC头位于所有IPv6扩展头之后、载荷之前。在另一些实施例中,QUIC头位于两个IPv6扩展头之间。在另一些实施例中,QUIC头位于第一个IPv6扩展头(如HBH)之前。本实施例对QUIC头与其他IPv6扩展头的顺序关系的顺序关系不做限定。
针对将QUIC头位于哪一种类型的IPv6扩展头之后,本实施例提供了多种实现方式,下面结合四种实现方式举例说明。
实现方式一、QUIC头为目的选项头(destination options header,DOH)的下一个头。
DOH用于携带目的节点所需处理的数据。DOH包括DOH1和DOH2。DOH1是位于路由头(routing header,RH)之前的DOH。DOH2是位于RH之后的DOH。DOH1要求报文在RH指定的路径上转发的过程中,RH指定的路径上每个端点设备解析DOH1的内容并执行相应的功能。DOH2要求报文在RH指定的路径上转发的过程中,RH指定的路径上每个端点设备无需解析DOH2的内容,而RH指定的路径上的目的端点设备要解析DOH2的内容并执行相应的功能。在报文中不存在RH的情况下,由IPv6基本头中目的IP地址指定的设备解析DOH中的内容并执行相应的功能。在RH为段路由头(segment routing header,SRH)的情况下,SRH指定的路径经过SID列表中每一个SID对应的设备,DOH1用于指示SID列表中每个SID对应的设备解析DOH1的内容并执行相应的功能。
可选地,QUIC头为DOH2的下一个头。例如,请参考图10,图10是QUIC头为DOH2的下一个头的示例。或者,QUIC头为DOH1的下一个头。
实现方式二、QUIC头为逐跳选项头(hop-by-hop options header,HBH)的下一个头。
HBH用于传递在转发路径所经过的每一跳IPv6节点所需的数据。当报文中携带HBH时,报文在转发过程中沿途经过的每一跳IPv6节点通常都会读取HBH中的数据,按照HBH中的数据处理报文。
例如,请参考图11,图11是QUIC头为HBH的下一个头的示例。
实现方式三、QUIC头为SRH的下一个头。
SRH是一种IPv6中的RH。SRH主要包括SID列表(segment list)、路由类型(routingtype)字段以及剩余段数量(segments left,SL)字段。SL和segments list信息共同决定IPv6基本头中的目的地址。每经过一个SRv6节点,SL字段减1,IPv6目的地址(DestinationAddress,DA)变换一次,IPv6 DA取值是指针当前指向的SID。SL和segment list字段共同决定IPv6 DA。例如,如果SL值是n,则IPv6 DA取值就是SID[0]的值;如果SL值是n-1,则IPv6DA取值就是SID[1]的值;如果SL值是1,则IPv6 DA取值就是SID[n-1]的值;如果SL值是0,则IPv6 DA取值就是SID[n]的值。
例如,请参考图12,图12是QUIC头为SRH的下一个头的示例。
针对如何指明IPv6报文中存在QUIC头,在一些实施例中,通过位于QUIC头之前、与QUIC头相邻的IPv6扩展头中next header字段的值指示QUIC头。
next header字段是IPv6协议中规定的IPv6基本头或者IPv6扩展头所需携带的字段。next header字段用于指示下一个报文头的协议类型。例如,若next header字段的值为0,指示下一个报文头为HBH;若next header字段的值为17,指示下一个报文头为UDP;若next header字段的值为60,指示下一个报文头为DOH;若next header字段的值为43,指示下一个报文头为RH(如SRH);若next header字段的值为59,指示没有下一个扩展报文头。
在本申请的一些实施方式中,定义了next header字段的一种新的取值,这种取值的含义表示QUIC。在采用这种实施方式时,第一网络设备将QUIC头插入至一个IPv6扩展头之后,并向该IPv6扩展头的next header字段写入表示QUIC的取值,使得该IPv6扩展头中next header字段的值指示QUIC头。
例如,请参考图10,图10是QUIC头为DOH2的下一个头的示例,DOH2中next header字段21-1的值指示QUIC头。又如,请参考图11,图11是QUIC头为HBH的下一个头的示例,HBH中next header字段21-2的值指示QUIC头。又如,请参考图12,图12是QUIC头为SRH的下一个头的示例,SRH中next header字段21-3的值指示QUIC头。又如,请参考图13,图13是QUIC头为IPv6基本头的下一个头的示例,IPv6基本头中next header字段21-4的值指示QUIC头。
通过上述实施方式,接收端在解析报文的过程中,当从一个IPv6扩展头中nextheader字段读取到表示QUIC的取值时,即可获知该IPv6扩展头的下一个报文头是QUIC头,以便读取QUIC头中的信息来处理报文。这种实施方式使得接收端的报文处理流程符合IPv6标准定义的报文处理流程,因此兼容性较好,设备支持IPv6即可实现上述实施方式,实现复杂度较低。
携带位置二、QUIC头位于IPv6扩展头的内部。
在采用携带位置二时,QUIC头为已有的IPv6扩展头包含的一部分。
针对将QUIC头封装至哪一种IPv6扩展头的内部,本实施例提供了多种实现方式。在一些实施例中,QUIC头位于DOH的内部。例如,如图14所示,QUIC头位于DOH2的内部。在另一些实施例中,如图15所示,QUIC头位于DOH1的内部。在另一些实施例中,如图16所示,QUIC头位于SRH的内部。在另一些实施例中,如图17所示,QUIC头位于HBH的内部。
由于DOH2是转发路径的出口节点所需处理的报文头,通过将QUIC头封装至DOH2的内部,转发路径的出口节点接收到QUIC报文时,发现QUIC报文中存在DOH2,则由于本节点是出口节点,则会解析DOH2包含的内容,出口节点发现DOH2中存在QUIC头,即可获知需要终结QUIC传输,如从报文中去掉QUIC头,对载荷进行解密等。
由于HBH是转发路径中每一跳节点所需处理的报文头,通过将QUIC头封装至HBH的内部,从而支持转发路径上每一跳节点根据HBH中的QUIC头的内容,通过QUIC传输报文。
针对将QUIC头封装至IPv6扩展头中的哪个字段,在一些实施例中,第一网络设备将QUIC头作为一种选项(option),将QUIC头封装至已有的一个IPv6扩展头的选项字段中。
在采用这种方式时,QUIC头与已有的IPv6选项地位并列,相当于QUIC头是一种新类型的IPv6选项,例如称为QUIC选项。
选项也称为类型-长度-值(type-length-value,TLV)选项或者可选TLV(optionalTLV)。选项是一种IPv6扩展头中可选字段。图18是IPv6扩展头中选项字段的格式示意图,如图18所示,选项字段通常采用TLV的数据结构,选项字段包括选项类型(option type)字段22、选项数据长度(option data length,opt data len)字段以及选项数据字段23。选项类型字段22为TLV数据结构中的type部分,选项类型字段22例如是一个8比特的字段,选项类型字段22用于指示选项的类型,如选项数据字段23的内容。选项数据长度字段为TLV数据结构中的length部分,选项数据长度字段例如是一个8比特的字段,选项数据长度字段用于指示选项的长度。选项数据字段23为TLV数据结构中的value部分,选项数据字段23用于携带选项的内容。
在IPv6扩展头中包括多个选项字段的情况下,QUIC头在IPv6扩展头所处的选项字段包括多种情况。例如,QUIC头位于一个IPv6扩展头中第一个选项字段中。在另一些实施例中,QUIC头位于一个IPv6扩展头中最后一个选项字段中。在另一些实施例中,QUIC头位于一个IPv6扩展头中两个选项字段之间,本实施例对QUIC头在IPv6扩展头中所处的选项字段不做限定。
针对如何指明IPv6扩展头的选项字段中存在QUIC头,在一些实施例中,通过选项类型字段的值指示QUIC头。例如,请参考图19或图20,IPv6扩展头包括选项字段。选项字段包括选项类型字段22以及选项数据字段23。选项类型字段22的值指示QUIC头,选项数据字段23包括QUIC头。通过上述实施方式,相当于将QUIC头作为IPv6扩展头中一种新的选项,接收端在解析报文的过程中,当从一个IPv6扩展头中一个选项类型字段读取到表示QUIC的取值时,即可获知该选项类型字段之后的选项数据字段存在QUIC头,以便基于QUIC头中的信息处理报文。
针对将QUIC头封装为哪一种IPv6扩展头的选项,本实施例提供了多种实现方式。在一些实施例中,第一网络设备将QUIC头封装至DOH2的选项字段中。图14是QUIC头封装至DOH2的选项字段的示意图,如图14所示,DOH2中选项字段包括选项类型字段22-1以及选项数据字段23-1。选项类型字段22-1的值指示QUIC头,选项数据字段23-1包括QUIC头。
在另一些实施例中,第一网络设备将QUIC头封装至DOH1的选项字段中。图15是QUIC头封装至DOH1的选项字段的示意图,如图15所示,DOH1中选项字段包括选项类型字段22-2以及选项数据字段23-2。选项类型字段22-2的值指示QUIC头,选项数据字段23-2包括QUIC头。
在另一些实施例中,第一网络设备将QUIC头封装至SRH的选项字段中。图16是QUIC头封装至SRH的选项字段的示意图,如图16所示,SRH中选项字段例如位于段列表(segmentlist)之后。SRH中选项字段包括选项类型字段22-3以及选项数据字段23-3。选项类型字段22-3的值指示QUIC头,选项数据字段23-3包括QUIC头。
在另一些实施例中,第一网络设备将QUIC头封装至HBH的选项字段中。图17是QUIC头封装至HBH的选项字段的示意图,如图17所示,HBH中选项字段包括选项类型字段22-4以及选项数据字段23-4。选项类型字段22-4的值指示QUIC头,选项数据字段23-4包括QUIC头。
在一些实施例中,QUIC报文不包括UDP头。通过去掉UDP的报文头封装,从而避免UDP头带来的报文封装格式冗余。
QUIC报文中每个字段的内容的获得方式包括多种情况。在一些实施例中,在以上列举的QUIC报文中的各个字段,即IPv6基本头、IPv6扩展头、QUIC头以及载荷中,QUIC头的内容是第一网络设备生成的,QUIC头之外的其他部分的内容可选地是第一网络设备生成的,或者由第一网络设备之外的其他设备生成并发送给第一网络设备。
针对QUIC报文中的载荷字段,在一些实施例中,载荷字段的内容是第一网络设备本地生成的。例如,第一网络设备上运行的应用生成业务数据,第一网络设备基于该业务数据,生成QUIC报文。QUIC报文的载荷字段包括业务数据。在另一些实施例中,载荷字段的内容来自于用户设备。例如,用户设备生成数据报文,向第一网络设备发送数据报文。第一网络设备接收数据报文,将该数据报文作为载荷,向数据报文的外层添加上述QUIC头,以得到QUIC报文。QUIC报文的载荷字段包括数据报文。
针对QUIC报文中的IPv6基本头以及IPv6扩展头,在一些实施例中,IPv6基本头或者IPv6扩展头的内容是第一网络设备本地生成的。IPv6基本头中的源IP地址为第一网络设备的IPv6地址。例如,第一网络设备为IPv6网络的入口节点,第一网络设备接收到数据报文后,向数据报文的外层添加QUIC头,向QUIC头的外层添加IPv6基本头,可选地还添加一个或多个IPv6扩展头,得到上述QUIC报文。
在另一些实施例中,IPv6基本头或者IPv6扩展头的内容是位于第一网络设备上游的其他网络设备生成的。例如,IPv6网络的入口节点发送IPv6报文,该IPv6报文包括IPv6基本头以及IPv6扩展头,第一网络设备向接收到的IPv6报文添加QUIC头,以得到QUIC报文。在再一些实施例中,IPv6基本头或者IPv6扩展头的内容是用户设备生成的,比如,用户设备与第一网络设备部署于同一个IPv6网络中,用户设备与第一网络设备基于IPv6协议通信,用户设备发送的数据报文本身即为IPv6报文,第一网络设备接收到数据报文后,向数据报文的外层添加QUIC头,得到QUIC报文。
参考附图7,步骤S702,第一网络设备发送QUIC报文。
第一网络设备通过QUIC连接发送QUIC报文。在一些实施例中,第一网络设备按照QUIC协议要求的传输方式发送QUIC报文。例如,第一网络设备使用密钥对载荷进行加密,以得到密文形式的载荷。第一网络设备发送的QUIC报文中,QUIC头以及IPv6扩展头均是明文形式,而载荷是密文形式。第一网络设备加密时使用的密钥例如是第一网络设备与第二网络设备在握手阶段通过协商确定的。又如,第一网络设备采用滑动窗口机制实现流量控制。再如,第一网络设备按照QUIC协议对QUIC报文所属的报文流进行拥塞控制。
步骤S703,第二网络设备接收QUIC报文。
步骤S704,第二网络设备处理QUIC报文。
例如,第二网络设备从QUIC报文剥离QUIC头,对载荷字段进行解密,得到载荷字段中的业务数据。
本实施例提供的方法,通过将QUIC头设于IPv6扩展头的下一个头,或者将QUIC头设于IPv6扩展头的内部,实现了在不携带UDP头的情况下,携带QUIC头,从而简化了QUIC报文的封装格式,节省了传输QUIC报文的开销。
图7所示实施例侧重描述两个设备如何在无需封装UDP头的情况下基于QUIC传输报文的流程。报文在沿途转发过程中,可能经过很多跳设备,有些设备需要基于QUIC传输报文,而有些设备可能无需基于QUIC传输报文。
有鉴于此,为了更加灵活地控制转发路径中哪些设备基于QUIC传输报文,本申请的一些实施例提供了QUIC相关的段标识(segment ID,SID),通过SID来标识转发路径中基于QUIC传输的段,从而满足任意一段或多段基于QUIC传输报文的需求。下面对QUIC相关的SID举例说明。
针对QUIC相关的SID的含义,在一些实施例中,QUIC相关的SID用于指示SID对应的节点基于QUIC传输报文。例如,QUIC相关的SID包括QUIC连接的起点SID和QUIC连接的终点SID。QUIC连接的起点SID指示通过QUIC连接发送QUIC报文并添加QUIC头。QUIC连接的终点SID指示通过QUIC连接接收QUIC报文并剥离QUIC头。
针对QUIC相关的SID的数据结构,在一些实施例中,如图21所示,QUIC相关的SID具有locator(定位)字段、function(功能)字段和参数(arguments)字段。locator字段占SID的高比特位,locator字段用于携带设备的位置信息,以便指导报文转发至该设备。locator字段通常包含block(块)字段以及node ID(节点标识)字段。block字段用于指示SID所属的IP地址块,该IP地址块一般由运营商分配给一个子网。node ID字段用于携带设备的标识,通常用于在一个子网内区分不同的设备。function字段用于携带设备所具有的功能标识,该功能标识的形式例如是一个字符串,功能标识与设备上保存的指令具有绑定关系,因此能够指示设备执行指令以实现相应的功能。function字段位于locator字段之后。参数字段是SID中的可选字段。参数字段用于携带function相关的参数。
针对QUIC相关的SID中locator字段的内容,在一些实施例中,QUIC相关的SID中locator字段包括QUIC连接的端点设备的位置信息。在一种可能的实现中,QUIC相关的SID中locator字段中的node ID字段包括QUIC连接的端点设备的标识。示例性地,QUIC连接的起点SID中locator字段包括QUIC连接的起点设备的位置信息,例如locator字段中node ID字段包括QUIC连接的起点设备的标识。QUIC连接的终点SID中的locator字段包括QUIC连接的终点设备的位置信息,例如locator字段中node ID字段包括QUIC连接的终点设备的标识。通过在QUIC相关的SID中locator字段携带QUIC连接的起点设备的位置信息,从而指导报文转发至QUIC连接的起点设备,触发报文从该设备开始基于QUIC传输。通过在QUIC相关的SID中locator字段携带QUIC连接的终点设备的位置信息,从而指导报文转发至QUIC连接的终点设备,触发报文从该设备开始终结QUIC传输。
针对QUIC相关的SID中function字段的内容,在一些实施例中,QUIC相关的SID中function字段包括基于QUIC传输报文的功能标识,而设备上保存有基于QUIC传输报文的指令以及该指令与功能标识之间的绑定关系。基于QUIC传输报文的功能标识的含义包括而不限于针对报文整体的发送与接收、针对QUIC头的添加和剥离(或者说封装与解封装)、针对载荷的加解密等动作。在一种可能的实现中,如图22所示,QUIC连接的起点SID中功能字段包括第一功能标识,第一功能标识用于指示QUIC连接的发送端所需执行的功能,例如通过QUIC连接发送报文、添加QUIC头或加密载荷中至少一项。如图23所示,QUIC连接的终点SID中功能字段包括第二功能标识,第二功能标识用于指示QUIC连接的接收端所需执行的功能,例如通过QUIC连接接收报文、剥离QUIC头或解密载荷中至少一项。
以上列举的针对报文整体的发送与接收、针对QUIC头的封装与解封装以及针对载荷的加解密这三类QUIC相关的功能标识可选地携带在function字段以及参数字段这两个字段中任意位置。例如,QUIC连接的起点SID中功能字段的值指示通过QUIC连接发送QUIC报文并添加QUIC头,QUIC连接的终点SID中功能字段的值指示通过QUIC连接接收QUIC报文并剥离QUIC头。又如,QUIC连接的起点SID中功能字段的值指示通过QUIC连接发送QUIC报文、添加QUIC头以及对载荷加密,QUIC连接的终点SID中功能字段的值指示通过QUIC连接接收QUIC报文、剥离QUIC头以及对载荷解密。又如,QUIC连接的起点SID中功能字段的值指示通过QUIC连接发送QUIC报文。QUIC连接的终点SID中功能字段的值指示通过QUIC连接接收QUIC报文。QUIC连接的起点SID中参数字段的值指示添加QUIC头。QUIC连接的终点SID中参数字段的值指示剥离QUIC头。
针对QUIC相关的SID的形式,在一些实施例中,采用基于互联网协议第6版的段路由(internet protocol version 6for segment routing,SRv6)中的SID实现QUIC相关的SID,例如,QUIC相关的SID是一个128比特的IPv6地址。在另一些实施例中,采用SR-多协议标签交换(multi-protocol label switching,MPLS)中的SID实现QUIC相关的SID,例如,QUIC相关的SID是一个32比特的MPLS标签,本实施例对QUIC相关的SID的形式不做限定。
针对QUIC相关的SID的携带位置,在一些实施例中,如图24或者图25所示,QUIC相关的SID携带在IPv6扩展头中。可选地,如图24所示,QUIC相关的SID携带在IPv6扩展头中的选项字段中。
QUIC相关的SID位于哪一种IPv6扩展头包括多种实施方式,在一些实施例中,QUIC相关的SID携带在DOH中;例如,QUIC相关的SID携带在DOH1或者DOH2中。在另一些实施例中,QUIC相关的SID携带在SRH中。在另一些实施例中,QUIC相关的SID携带在HBH中。
QUIC相关的SID与QUIC头之间的位置关系包括多种实施方式,下面结合四种位置关系举例说明。
位置关系A、QUIC相关的SID与QUIC头位于同一个IPv6扩展头中。
在另一些实施方式中,QUIC相关的SID与QUIC头位于同一个IPv6扩展头的同一个选项中。例如,请参考图24,图24示出的IPv6扩展头中,选项字段包括选项类型字段、选项数据长度字段、QUIC头以及QUIC相关的SID,QUIC头位于QUIC相关的SID之后。图24所示的格式适用于任一种IPv6扩展头,例如图24示出的IPv6扩展头是DOH,又如图24示出的IPv6扩展头是SRH,再如图24示出的IPv6扩展头是HBH。
在另一些实施方式中,QUIC相关的SID与QUIC头位于同一个IPv6扩展头的不同选项中,例如,IPv6扩展头包括第一选项和第二选项,第一选项包括QUIC相关的SID,第二选项包括QUIC头。
位置关系B、QUIC相关的SID与QUIC头位于不同的IPv6扩展头中。
例如,QUIC报文包括第一IPv6扩展头和第二IPv6扩展头,第一IPv6扩展头中包括QUIC相关的SID,第二IPv6扩展头包括QUIC头。第一IPv6扩展头包括而不限于SRH、DOH或者HBH。第二IPv6扩展头可选地为DOH。
位置关系C、QUIC相关的SID位于一个IPv6扩展头的内部,QUIC头位于该IPv6扩展头的下一个头。
位置关系D、QUIC相关的SID位于IPv6基本头的目的地址字段,QUIC头位于IPv6扩展头的内部或者为IPv6扩展头的下一个头。
下面结合几种具体的IPv6扩展头,对以上列举的QUIC头与SID的位置关系举例说明。
在QUIC相关的SID携带在DOH的情况下,在一些实施例中,DOH包括选项字段,选项字段包括选项数据字段,选项数据字段包括QUIC头以及上述QUIC相关的SID。在另一些实施例中,DOH的选项字段包括QUIC相关的SID,且DOH的下一个头为QUIC头。
在QUIC相关的SID携带在SRH的情况下,在一些实施例中,SRH包括选项字段,选项字段包括选项数据字段,选项数据字段包括QUIC头以及QUIC相关的SID。在另一些实施例中,如图25中(a)所示,SRH中的SID列表(segment list)包括QUIC相关的SID,且SRH的下一个头为QUIC头。在另一些实施例中,如图25中(b)所示,SRH中的SID列表包括QUIC相关的SID以及其他类型的SID,SRH中的选项包括QUIC头。
QUIC相关的SID例如位于SID列表中的任意位置。比如说,在需要指定SR路径中头节点基于QUIC传输的情况下,SID列表中第一个SID为QUIC连接的起点SID。在需要指定SR路径中第m个中间节点基于QUIC传输的情况下,SID列表中间第m个SID为QUIC连接的起点SID;在SR路径中尾节点为QUIC传输的终点的情况下,SID列表中最后一个SID为QUIC连接的终点SID。
在QUIC相关的SID携带在HBH的情况下,在一些实施例中,HBH包括选项字段,选项字段包括选项数据字段,选项数据字段包括QUIC头以及上述QUIC相关的SID。在另一些实施例中,HBH的选项字段中包括上述QUIC相关的SID,且HBH的下一个头为QUIC头。
此外,除了IPv6扩展头可能包含QUIC相关的SID之外,由于SRv6技术中,每一跳SRv6节点会将下一跳节点的SID复制到IPv6基本头中的目的地址字段,则IPv6基本头中的目的地址字段也可能包括QUIC相关的SID。
针对QUIC连接的起点SID的使用过程,以图7所示方法实施例中第一网络设备11的处理流程为例,例如,第一网络设备11保存有本地SID表(local SID table)。第一网络设备11的本地SID表包括QUIC连接的起点SID。此外,第一网络设备11保存了QUIC连接的起点SID中第一功能标识与第一指令之间的对应关系。第一指令指示通过QUIC连接发送QUIC报文、添加QUIC头以及对载荷加密。当第一网络设备11接收到一个IPv6报文时,第一网络设备11读取IPv6报文中IPv6基本头中目的地址字段的内容,根据目的地址字段的内容查询第一网络设备11的本地SID表。或者,第一网络设备11读取IPv6报文中IPv6扩展头携带的SID,如DOH1的选项、HBH的选项或SRH的选项中携带的SID,然后根据IPv6扩展头携带的SID查询第一网络设备11的本地SID表。如果查表过程中匹配到本地SID表中QUIC连接的起点SID,第一网络设备11根据起点SID中的第一功能标识查询对应的指令,得到第一指令。第一网络设备11执行第一指令,实现S701和S702。可选地,第一网络设备11使用QUIC连接的终点SID更新QUIC报文中IPv6基本头中的目的地址字段,或者,第一网络设备11将QUIC连接的终点SID添加到QUIC报文中的IPv6扩展头中,以便通过QUIC连接的终点SID指示第二网络设备12执行S703和S704。
针对QUIC连接的终点SID的使用过程,以图7所示方法实施例中第二网络设备12的处理流程为例,第二网络设备12保存有本地SID表,第二网络设备12的本地SID表包括QUIC连接的终点SID。此外,第二网络设备12保存了QUIC连接的终点SID中的第二功能标识与第二指令之间的对应关系。第二指令指示通过QUIC连接接收QUIC报文、剥离QUIC头以及对载荷解密。当第二网络设备12接收到一个IPv6报文时,第二网络设备12读取IPv6报文中IPv6基本头中目的地址字段的内容,根据目的地址字段的内容查询第二网络设备12的本地SID表。或者,第二网络设备12读取IPv6报文中IPv6扩展头携带的SID,如DOH1的选项、HBH的选项或SRH的选项中携带的SID,然后第二网络设备12根据IPv6扩展头携带的SID查询第二网络设备12的本地SID表。如果查表过程中匹配到本地SID表中QUIC连接的终点SID,第二网络设备12根据终点SID中的第二功能标识查询对应的指令,得到第二指令。第二网络设备12执行第二指令,实现S703和S704。
针对IPv6扩展头中QUIC相关的SID的数量,在一些实施例中,IPv6扩展头中QUIC相关的SID的数量是根据转发路径中需要基于QUIC传输的段的数量确定的。
在一种可能的实施方式中,IPv6扩展头中QUIC相关的SID成对出现,每一对QUIC相关的SID对应于一个基于QUIC传输的段,每一对QUIC相关的SID包括一个段的起点SID和终点SID。
例如,如图26所示,SR转发路径包括一个需要基于QUIC传输的段,即第一网络设备11与第二网络设备12之间的段。第一网络设备11与第二网络设备12建立了第一QUIC连接。相应地,上述QUIC相关的SID包括第一SID和第二SID。第一SID标识第一QUIC连接的起点设备,即第一网络设备11。第二SID标识第一QUIC连接的终点设备,即第二网络设备12。示例性地,第三网络设备13向第一网络设备11发送的IPv6报文25中的IPv6扩展头包括第一SID和第二SID。第一网络设备11接收到IPv6报文25后,从IPv6扩展头获得第一SID,根据第一SID确定要基于第一QUIC连接发送IPv6报文,并向IPv6扩展头中添加QUIC头,得到QUIC报文20。QUIC报文20中IPv6扩展头的格式如图27所示。第二网络设备12接收到QUIC报文20后,从IPv6扩展头获得第二SID,根据第二SID确定要基于第一QUIC连接接收QUIC报文20,并从QUIC报文20剥离QUIC头,得到IPv6报文25,将IPv6报文25发送给第四网络设备14。根据上述实施方式,实现通过报文头的内容,显式地指定转发路径中需要基于QUIC传输的起点和终点,灵活性较高。
又如,如图28所示,SR的转发路径包括两个需要基于QUIC传输的段,第一段的两个端点设备包括第一网络设备11以及第二网络设备12,第一网络设备11以及第二网络设备12通过第一QUIC连接传输QUIC报文。第二段的两个端点设备包括网络设备18和网络设备19,网络设备18和网络设备19通过第二QUIC连接传输QUIC报文。相应地,上述QUIC相关的SID包括第一SID、第二SID、第三SID和第四SID,第一SID标识第一QUIC连接的起点设备,如第一网络设备11。第二SID标识第一QUIC连接的终点设备,如第二网络设备12。第三SID标识第二QUIC连接的起点设备,如网络设备18。第四SID标识第二QUIC连接的终点设备,如网络设备19。第二QUIC连接为QUIC报文的转发路径中第一QUIC连接之后的QUIC连接。
再如,转发路径包括k个需要基于QUIC传输的段,IPv6扩展头包括2*k个QUIC相关的SID。
以上列举的第一SID、第二SID、第三SID或者第四SID具有QUIC相关的SID的特征,第一SID、第二SID、第三SID或者第四SID的数据结构、携带位置、与QUIC头之间的位置关系等,均可参考对QUIC相关的SID的整体性描述,为描述简洁,在此不做一一列举。
以上描述的IPv6扩展头中QUIC相关的SID成对出现的情况是示例性地。在另一些实施例中,IPv6扩展头包括单数个QUIC相关的SID。例如,IPv6扩展头中仅包括一个QUIC相关的SID。作为示例,如图30所示,IPv6扩展头包括第一SID,第一SID标识QUIC连接的一个端点设备,第一网络设备为第一QUIC连接中端点设备之外的另一个端点设备,第一QUIC连接用于传输QUIC报文。下面结合2种场景,对单数个SID的使用场景举例说明。
在一个示例性应用场景中,如图31所示,SR转发路径的头节点与QUIC连接的起点是同一个设备,均为图31中的第三网络设备13,SR转发路径的头节点无需封装本节点的SID,因此省略封装本节点上QUIC连接的起点SID,而封装本节点上QUIC连接的终点SID。
在另一个示例性应用场景中,如图32所示,SR转发路径的尾节点与QUIC连接的终点是同一个设备,均为图32中的第四网络设备14,也即是,基于QUIC传输的段是SID列表中的一个SID到最后一个SID。在该场景下,QUIC连接的起点设备通过将QUIC头封装至DOH中,从而指示QUIC连接的终点设备基于QUIC传输报文,而无需封装QUIC连接的终点SID。以此类推,IPv6扩展头中可能包括3个、5个或7个QUIC相关的SID。
下面结合3个实例,对图7所示方法举例说明。
实例1
实例1是针对如何将图7所示方法应用于QUIC连接的端点设备部署于IPv6网络的边界,并基于QUIC传输来自于用户设备的数据报文的场景的具体示例。实例1包括以下步骤S710至步骤S715。实例1中的步骤S712是图7所示方法中S701的具体示例,实例1中的步骤S714是图7所示方法中S703的具体示例,实例1中的步骤S715是图7所示方法中S704的具体示例。
示例性地,请参考图33,实例1所基于的场景如图33所示。图33所示的场景包括第一用户设备15、第二用户设备16、第一网络设备11、第二网络设备12以及中间节点17。第一用户设备15以及第二用户设备16位于IPv4网络。第一用户设备15的IP地址包括IPv4地址10.1.1.1,第二用户设备16的IP地址包括IPv4地址10.1.1.2。第一网络设备11为IPv6网络的入口节点。第二网络设备12为IPv6网络的出口节点。中间节点17位于IPv6网络的内部。第一网络设备11的IP地址包括IPv6地址10::1。第二网络设备12的IP地址包括IPv6地址10::2,中间节点17的IP地址包括IPv6地址20::1。
步骤S710,第一网络设备11和第二网络设备12握手建立QUIC连接,第一网络设备11和第二网络设备12通过协商,得到传输数据时使用的密钥。步骤S710在图33中未示出。
步骤S711,第一用户设备15发送数据报文241至第一网络设备11。数据报文241包括IPv4头和业务数据,IPv4头中的源IP地址为第一用户设备15的IPv4地址10.1.1.1,IPv4头中的目的IP地址为第二用户设备16的IPv4地址10.1.1.2。
步骤S712,第一网络设备11接收数据报文241,将数据报文241作为载荷,使用预先协商的密钥对数据报文241进行加密后,在密文形式的数据报文242的外层封装IPv6基本头、HBH、SRH、DOH及QUIC头,得到QUIC报文20,第一网络设备11通过QUIC连接发送QUIC报文20。
QUIC报文20中不包括UDP头,QUIC头为DOH的下一个头,DOH中next header(NH)字段的值指示QUIC头。具体地,如图33所示,IPv6基本头位于QUIC报文20最外层,IPv6基本头的下一个头是HBH,HBH的下一个头是SRH,SRH的下一个头是DOH,DOH的下一个头是QUIC头。IPv6基本头中源IP地址为第一网络设备11的IPv6地址10::1,IPv6基本头中目的IP地址为中间节点17的IPv6地址20::1,SRH中的SID列表包括中间节点17的IPv6地址20::1。
步骤S713,中间节点17接收到QUIC报文20之后,从SRH的SID列表中获得第二网络设备12的IPv6地址10::2,使用第二网络设备12的IPv6地址10::2更新IPv6基本头中目的IP地址,得到QUIC报文20',发送QUIC报文20'。
步骤S714,第二网络设备12接收QUIC报文20',解封装IPv6基本头、HBH、SRH、DOH及QUIC头,使用密钥对载荷进行解密,得到明文形式的数据报文242。
步骤S715,第二网络设备12将数据报文242发送至第二用户设备16。
实例2
实例2是针对如何将图7所示方法应用于QUIC连接的端点设备部署于IPv6网络的边界,并基于QUIC传输本设备的业务数据的具体示例,实例2的处理流程如图34所示。实例2与实例1的区别在于,省略了第一网络设备11与第一用户设备15交互的步骤以及第二网络设备12与第二用户设备16交互的步骤,将步骤S712替换为以下步骤S712’,将步骤S714至步骤S715替换为以下步骤S714’。实例2中也包括上述步骤S711以及上述步骤S713。
步骤S712’,第一网络设备11将本设备的业务数据作为载荷,使用预先协商的密钥对本设备的业务数据进行加密后,在密文形式的业务数据的外层封装IPv6基本头、HBH、SRH、DOH及QUIC头,得到QUIC报文20,第一网络设备11通过QUIC连接发送QUIC报文20。
步骤S714’,第二网络设备12接收QUIC报文20,解封装IPv6基本头、HBH、SRH、DOH及QUIC头,使用密钥对载荷进行解密,得到明文形式的业务数据,第二网络设备12基于明文形式的业务数据处理业务。
实例3
实例3包括与实例1类似的处理流程,实例3与实例1的区别在于报文封装格式的不同。具体地,请参考图35,实例1是将QUIC头作为IPv6扩展头的下一个头封装至报文中,通过IPv6扩展头中next header的值来指示IPv6扩展头之后存在QUIC头,而实例3将QUIC头作为IPv6扩展头中的一种选项封装至报文中,通过option type字段的值来指示选项中包含QUIC头。
附图36是本申请实施例提供的一种网络设备800的结构示意图。网络设备800包括生成单元801和发送单元802。
可选地,结合附图1示出的应用场景来看,附图36所示的网络设备800为附图1所示应用场景中的第一网络设备11。生成单元801用于生成附图1中示出的QUIC报文20,发送单元802用于向附图1示出的第二网络设备12发送QUIC报文20。
可选地,结合附图2示出的应用场景来看,附图36所示的网络设备800为附图2所示应用场景中的第一网络设备11。生成单元801用于生成附图2中示出的QUIC报文20,发送单元802用于向附图2示出的第二网络设备12发送QUIC报文20。
可选地,结合附图3示出的应用场景来看,附图36所示的网络设备800为附图3所示应用场景中的第一网络设备11。生成单元801用于生成附图3中示出的QUIC报文20,发送单元802用于向附图3示出的第二网络设备12发送QUIC报文20。
可选地,结合附图4示出的应用场景来看,附图36所示的网络设备800为附图4所示应用场景中的第一网络设备11。生成单元801用于生成附图4中示出的QUIC报文20,发送单元802用于向附图4示出的第二网络设备12发送QUIC报文20。
可选地,结合附图5示出的应用场景来看,附图36所示的网络设备800为附图5所示应用场景中的第一网络设备11。生成单元801用于生成附图5中示出的QUIC报文20,发送单元802用于向附图5示出的第二网络设备12发送QUIC报文20。
可选地,结合附图6示出的应用场景来看,附图36所示的网络设备800为附图6所示应用场景中的第一网络设备11。生成单元801用于生成附图6中示出的QUIC报文20,发送单元802用于向附图6示出的第二网络设备12发送QUIC报文20。
可选地,结合附图7所示方法流程来看,附图36所示的网络设备800是附图7所示方法流程中的第一网络设备,生成单元801用于执行S701。发送单元802用于执行S702。
可选地,结合附图10所示的报文格式来看,附图36所示的生成单元801用于生成具有附图10所示格式的QUIC报文。
可选地,结合附图11所示的报文格式来看,附图36所示的生成单元801用于生成具有附图11所示格式的QUIC报文。
可选地,结合附图12所示的报文格式来看,附图36所示的生成单元801用于生成具有附图12所示格式的QUIC报文。
可选地,结合附图13所示的报文格式来看,附图36所示的生成单元801用于生成具有附图13所示格式的QUIC报文。
可选地,结合附图14所示的报文格式来看,附图36所示的生成单元801用于生成具有附图14所示格式的QUIC报文。
可选地,结合附图15所示的报文格式来看,附图36所示的生成单元801用于生成具有附图15所示格式的QUIC报文。
可选地,结合附图16所示的报文格式来看,附图36所示的生成单元801用于生成具有附图16所示格式的QUIC报文。
可选地,结合附图17所示的报文格式来看,附图36所示的生成单元801用于生成具有附图17所示格式的QUIC报文。
可选地,结合附图19来看,附图36所示的生成单元801用于生成具有附图19所示格式的IPv6扩展头。
可选地,结合附图20来看,附图36所示的生成单元801用于生成具有附图20所示格式的IPv6扩展头。
可选地,结合附图24来看,附图36所示的生成单元801用于生成具有附图24所示格式的IPv6扩展头。
可选地,结合附图25来看,附图36所示的生成单元801用于生成具有附图25所示格式的报文。
可选地,结合附图26示出的应用场景来看,附图36所示的网络设备800为附图26所示应用场景中的第一网络设备11。生成单元801用于生成附图6中示出的QUIC报文20,发送单元802用于向附图26示出的第二网络设备12发送QUIC报文20。
可选地,结合附图27来看,附图36所示的生成单元801用于生成包括附图27所示格式的IPv6扩展头。
可选地,结合附图28示出的应用场景来看,附图36所示的网络设备800为附图28所示应用场景中的第一网络设备11。生成单元801用于生成附图28中示出的QUIC报文20,发送单元802用于向附图28示出的第二网络设备12发送QUIC报文20。
可选地,结合附图29来看,附图36所示的生成单元801用于生成包括附图29所示格式的IPv6扩展头。
可选地,结合附图30来看,附图36所示的生成单元801用于生成包括附图30所示格式的IPv6扩展头。
可选地,结合附图31示出的应用场景来看,附图36所示的网络设备800为附图31所示应用场景中的第一网络设备11。生成单元801用于生成附图31中示出的QUIC报文20,发送单元802用于向附图31示出的第二网络设备12发送QUIC报文20。
可选地,结合附图32示出的应用场景来看,附图36所示的网络设备800为附图32所示应用场景中的第一网络设备11。生成单元801用于生成附图32中示出的QUIC报文20,发送单元802用于向附图32示出的第二网络设备12发送QUIC报文20。
可选地,结合附图33示出的应用场景来看,附图36所示的网络设备800为附图33所示应用场景中的第一网络设备11。生成单元801用于基于用户设备15在S711中发送的数据报文241生成附图33中示出的QUIC报文20,发送单元802用于执行S712,以向附图33示出的第二网络设备12发送QUIC报文20。
可选地,结合附图34示出的应用场景来看,附图36所示的网络设备800为附图34所示应用场景中的第一网络设备11。生成单元801用于生成附图34中示出的QUIC报文20,发送单元802用于执行S712’,以向附图34示出的第二网络设备12发送QUIC报文20。
可选地,结合附图35示出的应用场景来看,附图36所示的网络设备800为附图35所示应用场景中的第一网络设备11。生成单元801用于生成附图35中示出的QUIC报文20,发送单元802用于执行S712,以向附图35示出的第二网络设备12发送QUIC报文20。
附图36所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
网络设备800中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。
下面结合后文描述的网络设备900,描述使用硬件或软件来实现网络设备800中的各个功能单元的一些可能实现方式。
在采用软件实现的情况下,例如,上述生成单元801是由附图37中的至少一个处理器901读取存储器902中存储的程序代码后,生成的软件功能单元来实现。
在采用硬件实现的情况下,例如,附图36中上述各个单元由网络设备中的不同硬件分别实现,例如生成单元801由附图37中的至少一个处理器901中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,或者采用现场可编程门阵列(field-programmable gate array,FPGA)、或协处理器等可编程器件来完成。发送单元802由附图37中的网络接口903实现。
附图37是本申请实施例提供的一种网络设备900的结构示意图。网络设备900包括至少一个处理器901、存储器902以及至少一个网络接口903。
可选地,结合附图1示出的应用场景来看,附图37所示的网络设备900为附图1所示应用场景中的第一网络设备11。处理器901用于生成附图1中示出的QUIC报文20,网络接口903用于向附图1示出的第二网络设备12发送QUIC报文20。
可选地,结合附图2示出的应用场景来看,附图37所示的网络设备900为附图2所示应用场景中的第一网络设备11。处理器901用于生成附图2中示出的QUIC报文20,网络接口903用于向附图2示出的第二网络设备12发送QUIC报文20。
可选地,结合附图3示出的应用场景来看,附图37所示的网络设备900为附图3所示应用场景中的第一网络设备11。处理器901用于生成附图3中示出的QUIC报文20,网络接口903用于向附图3示出的第二网络设备12发送QUIC报文20。
可选地,结合附图4示出的应用场景来看,附图37所示的网络设备900为附图4所示应用场景中的第一网络设备11。处理器901用于生成附图4中示出的QUIC报文20,网络接口903用于向附图4示出的第二网络设备12发送QUIC报文20。
可选地,结合附图5示出的应用场景来看,附图37所示的网络设备900为附图5所示应用场景中的第一网络设备11。处理器901用于生成附图5中示出的QUIC报文20,网络接口903用于向附图5示出的第二网络设备12发送QUIC报文20。
可选地,结合附图6示出的应用场景来看,附图37所示的网络设备900为附图6所示应用场景中的第一网络设备11。处理器901用于生成附图6中示出的QUIC报文20,网络接口903用于向附图6示出的第二网络设备12发送QUIC报文20。
可选地,结合附图7所示方法流程来看,附图37所示的网络设备900是附图7所示方法流程中的第一网络设备,处理器901用于执行S701。网络接口903用于执行S702。
可选地,结合附图10所示的报文格式来看,附图37所示的处理器901用于生成具有附图10所示格式的QUIC报文。
可选地,结合附图11所示的报文格式来看,附图37所示的处理器901用于生成具有附图11所示格式的QUIC报文。
可选地,结合附图12所示的报文格式来看,附图37所示的处理器901用于生成具有附图12所示格式的QUIC报文。
可选地,结合附图13所示的报文格式来看,附图37所示的处理器901用于生成具有附图13所示格式的QUIC报文。
可选地,结合附图14所示的报文格式来看,附图37所示的处理器901用于生成具有附图14所示格式的QUIC报文。
可选地,结合附图15所示的报文格式来看,附图37所示的处理器901用于生成具有附图15所示格式的QUIC报文。
可选地,结合附图16所示的报文格式来看,附图37所示的处理器901用于生成具有附图16所示格式的QUIC报文。
可选地,结合附图17所示的报文格式来看,附图37所示的处理器901用于生成具有附图17所示格式的QUIC报文。
可选地,结合附图19来看,附图37所示的处理器901用于生成具有附图19所示格式的IPv6扩展头。
可选地,结合附图20来看,附图37所示的处理器901用于生成具有附图20所示格式的IPv6扩展头。
可选地,结合附图24来看,附图37所示的处理器901用于生成具有附图24所示格式的IPv6扩展头。
可选地,结合附图25来看,附图37所示的处理器901用于生成具有附图25所示格式的报文。
可选地,结合附图26示出的应用场景来看,附图37所示的网络设备900为附图26所示应用场景中的第一网络设备11。处理器901用于生成附图6中示出的QUIC报文20,网络接口903用于向附图26示出的第二网络设备12发送QUIC报文20。
可选地,结合附图27来看,附图37所示的处理器901用于生成包括附图27所示格式的IPv6扩展头。
可选地,结合附图28示出的应用场景来看,附图37所示的网络设备900为附图28所示应用场景中的第一网络设备11。处理器901用于生成附图28中示出的QUIC报文20,网络接口903用于向附图28示出的第二网络设备12发送QUIC报文20。
可选地,结合附图29来看,附图37所示的处理器901用于生成包括附图29所示格式的IPv6扩展头。
可选地,结合附图30来看,附图37所示的处理器901用于生成包括附图30所示格式的IPv6扩展头。
可选地,结合附图31示出的应用场景来看,附图37所示的网络设备900为附图31所示应用场景中的第一网络设备11。处理器901用于生成附图31中示出的QUIC报文20,网络接口903用于向附图31示出的第二网络设备12发送QUIC报文20。
可选地,结合附图32示出的应用场景来看,附图37所示的网络设备900为附图32所示应用场景中的第一网络设备11。处理器901用于生成附图32中示出的QUIC报文20,网络接口903用于向附图32示出的第二网络设备12发送QUIC报文20。
可选地,结合附图33示出的应用场景来看,附图37所示的网络设备900为附图33所示应用场景中的第一网络设备11。处理器901用于基于用户设备15在S711中发送的数据报文241生成附图33中示出的QUIC报文20,网络接口903用于执行S712,以向附图33示出的第二网络设备12发送QUIC报文20。
可选地,结合附图34示出的应用场景来看,附图37所示的网络设备900为附图34所示应用场景中的第一网络设备11。处理器901用于生成附图34中示出的QUIC报文20,网络接口903用于执行S712’,以向附图34示出的第二网络设备12发送QUIC报文20。
可选地,结合附图35示出的应用场景来看,附图37所示的网络设备900为附图35所示应用场景中的第一网络设备11。处理器901用于生成附图35中示出的QUIC报文20,网络接口903用于执行S712,以向附图35示出的第二网络设备12发送QUIC报文20。
处理器901例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器901包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器902例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。可选地,存储器902独立存在,并通过内部连接904与处理器901相连接。或者,可选地存储器902和处理器901集成在一起。
网络接口903使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口903例如包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络网络接口或其组合等。
在一些实施例中,处理器901包括一个或多个CPU,如附图37中所示的CPU0和CPU1。
在一些实施例中,网络设备900可选地包括多个处理器,如附图37中所示的处理器901和处理器905。这些处理器中的每一个例如是一个单核处理器(single-CPU),又如是一个多核处理器(multi-CPU)。这里的处理器可选地指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在一些实施例中,网络设备900还包括内部连接904。处理器901、存储器902以及至少一个网络接口903通过内部连接904连接。内部连接904包括通路,在上述组件之间传送信息。可选地,内部连接904是单板或总线。可选地,内部连接904分为地址总线、数据总线、控制总线等。
在一些实施例中,网络设备900还包括输入输出接口906。输入输出接口906连接到内部连接904上。
可选地,处理器901通过读取存储器902中保存的程序代码实现上述实施例中的方法,或者,处理器901通过内部存储的程序代码实现上述实施例中的方法。在处理器901通过读取存储器902中保存的程序代码实现上述实施例中的方法的情况下,存储器902中保存实现本申请实施例提供的方法的程序代码910。
处理器901实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可互相参考,每个实施例重点说明的都是与其他实施例的不同之处。
A参考B,指的是A与B相同或者A为B的简单变形。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序,也不能理解为指示或暗示相对重要性。例如,第一SID和第二SID用于区别不同的SID,而不是用于描述SID的特定顺序,也不能理解为第一SID比第二SID更重要。
本申请实施例,除非另有说明,“至少一个”的含义是指一个或多个,“多个”的含义是指两个或两个以上。例如,多个IPv6扩展头是指两个或两个以上的IPv6扩展头。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例描述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (29)

1.一种快速用户数据报协议互联网连接QUIC报文的传输方法,其特征在于,包括:
第一网络设备生成QUIC报文,所述QUIC报文包括互联网协议第6版IPv6扩展头和QUIC头,所述QUIC头为所述IPv6扩展头的下一个头或者所述QUIC头位于所述IPv6扩展头的内部;
所述第一网络设备发送所述QUIC报文。
2.根据权利要求1所述的方法,其特征在于,所述QUIC头为所述IPv6扩展头的下一个头,所述IPv6扩展头中下一个头next header字段的值指示所述QUIC头。
3.根据权利要求2所述的方法,其特征在于,所述IPv6扩展头包括目的选项头DOH、段路由头SRH或者逐跳选项头HBH。
4.根据权利要求1所述的方法,其特征在于,所述IPv6扩展头包括选项字段,所述选项字段包括选项类型字段以及选项数据字段,所述选项类型字段的值指示所述QUIC头,所述选项数据字段包括所述QUIC头。
5.根据权利要求4所述的方法,其特征在于,所述IPv6扩展头包括DOH、SRH或者HBH。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述IPv6扩展头包括第一段标识SID和第二SID,所述第一SID标识第一QUIC连接的起点设备,所述第二SID标识第一QUIC连接的终点设备,所述第一QUIC连接用于传输所述QUIC报文。
7.根据权利要求6所述的方法,其特征在于,所述第一SID中功能字段的值指示通过所述第一QUIC连接发送所述QUIC报文,所述第一SID中参数字段的值指示添加所述QUIC头,所述第二SID中功能字段的值指示通过所述第一QUIC连接接收所述QUIC报文,所述第二SID中参数字段的值指示剥离所述QUIC头。
8.根据权利要求6所述的方法,其特征在于,所述第一SID中功能字段的值指示通过所述第一QUIC连接发送所述QUIC报文并添加所述QUIC头,所述第二SID中功能字段的值指示通过所述第一QUIC连接接收所述QUIC报文并剥离所述QUIC头。
9.根据权利要求6至8中任一项所述的方法,其特征在于,
所述IPv6扩展头包括DOH、SRH或者HBH,所述IPv6扩展头包括选项字段,所述选项字段包括选项数据字段,所述选项数据字段包括所述QUIC头、所述第一SID和所述第二SID;或者,
所述IPv6扩展头包括SRH,所述SRH中的SID列表包括所述第一SID和所述第二SID,所述SRH中的选项字段包括所述QUIC头或者所述SRH的下一个头为所述QUIC头。
10.根据权利要求1至5中任一项所述的方法,其特征在于,所述IPv6扩展头包括第一SID,所述第一SID标识第一QUIC连接的一个端点设备,所述第一网络设备为所述第一QUIC连接中所述端点设备之外的另一个端点设备,所述第一QUIC连接用于传输所述QUIC报文。
11.根据权利要求6至10中任一项所述的方法,其特征在于,所述IPv6扩展头还包括第三SID和第四SID,所述第三SID标识第二QUIC连接的起点设备,所述第四SID标识所述第二QUIC连接的终点设备,所述第二QUIC连接为所述QUIC报文的转发路径中所述第一QUIC连接之后的QUIC连接。
12.根据权利要求1至11中任一项所述的方法,其特征在于,所述第一网络设备生成QUIC报文,包括:
所述第一网络设备接收IPv6报文,所述IPv6报文包括所述IPv6扩展头;
所述第一网络设备向所述IPv6报文添加所述QUIC头,以得到所述QUIC报文;
相应地,所述第一网络设备发送所述QUIC报文,包括:
所述第一网络设备通过所述第一QUIC连接发送所述QUIC报文。
13.根据权利要求1至11中任一项所述的方法,其特征在于,所述第一网络设备生成QUIC报文,包括:
所述第一网络设备接收来自用户设备的数据报文;
所述第一网络设备向所述数据报文添加所述IPv6扩展头和所述QUIC头,以得到所述QUIC报文,所述QUIC报文的载荷字段包括所述数据报文。
14.根据权利要求1至11中任一项所述的方法,其特征在于,所述第一网络设备生成QUIC报文,包括:
所述第一网络设备基于所述第一网络设备生成的业务数据,生成所述QUIC报文,所述QUIC报文的载荷字段包括所述业务数据。
15.根据权利要求1至14中任一项所述的方法,其特征在于,所述QUIC报文不包括用户数据报协议UDP头。
16.一种网络设备,其特征在于,包括:
生成单元,用于生成快速用户数据报协议互联网连接QUIC报文,所述QUIC报文包括互联网协议第6版IPv6扩展头和QUIC头,所述QUIC头为所述IPv6扩展头的下一个头或者所述QUIC头位于所述IPv6扩展头的内部;
发送单元,用于发送所述QUIC报文。
17.根据权利要求16所述的设备,其特征在于,所述QUIC头为所述IPv6扩展头的下一个头,所述IPv6扩展头中下一个头next header字段的值指示所述QUIC头。
18.根据权利要求17所述的设备,其特征在于,所述IPv6扩展头包括目的选项头DOH、段路由头SRH或者逐跳选项头HBH。
19.根据权利要求16所述的设备,其特征在于,所述IPv6扩展头包括选项字段,所述选项字段包括选项类型字段以及选项数据字段,所述选项类型字段的值指示所述QUIC头,所述选项数据字段包括所述QUIC头。
20.根据权利要求19所述的设备,其特征在于,所述IPv6扩展头包括DOH、SRH或者HBH。
21.根据权利要求16至20中任一项所述的设备,其特征在于,所述IPv6扩展头包括第一段标识SID和第二SID,所述第一SID标识第一QUIC连接的起点设备,所述第二SID标识第一QUIC连接的终点设备,所述第一QUIC连接用于传输所述QUIC报文。
22.根据权利要求21所述的设备,其特征在于,所述第一SID中功能字段的值指示通过所述第一QUIC连接发送所述QUIC报文,所述第一SID中参数字段的值指示添加所述QUIC头,所述第二SID中功能字段的值指示通过所述第一QUIC连接接收所述QUIC报文,所述第二SID中参数字段的值指示剥离所述QUIC头;或者,所述第一SID中功能字段的值指示通过所述第一QUIC连接发送所述QUIC报文并添加所述QUIC头,所述第二SID中功能字段的值指示通过所述第一QUIC连接接收所述QUIC报文并剥离所述QUIC头。
23.根据权利要求16至22中任一项所述的设备,其特征在于,所述生成单元,用于接收IPv6报文,所述IPv6报文包括所述IPv6扩展头;向所述IPv6报文添加所述QUIC头,以得到所述QUIC报文;所述发送单元,用于通过所述第一QUIC连接发送所述QUIC报文。
24.根据权利要求16至22中任一项所述的设备,其特征在于,所述生成单元,用于接收来自用户设备的数据报文;向所述数据报文添加所述IPv6扩展头和所述QUIC头,以得到所述QUIC报文,所述QUIC报文的载荷字段包括所述数据报文。
25.根据权利要求16至22中任一项所述的设备,其特征在于,所述生成单元,用于生成业务数据,基于所述业务数据生成所述QUIC报文,所述QUIC报文的载荷字段包括所述业务数据。
26.根据权利要求16至22中任一项所述的设备,其特征在于,所述QUIC报文不包括用户数据报协议UDP头。
27.一种网络设备,其特征在于,所述网络设备包括处理器和网络接口,所述处理器用于执行指令,使得所述网络设备执行如权利要求1至权利要求15中任一项所述的方法,所述网络接口用于发送QUIC报文。
28.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令在计算机上运行时,使得计算机执行如权利要求1-15中任一项所述的方法。
29.一种计算机程序产品,其特征在于,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行权利要求1-15中任一项所述的方法。
CN202211234574.6A 2022-08-25 2022-10-10 Quic报文的传输方法及相关设备 Pending CN117640555A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2023/096437 WO2024041064A1 (zh) 2022-08-25 2023-05-26 Quic报文的传输方法及相关设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211028659 2022-08-25
CN2022110286599 2022-08-25

Publications (1)

Publication Number Publication Date
CN117640555A true CN117640555A (zh) 2024-03-01

Family

ID=90022282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211234574.6A Pending CN117640555A (zh) 2022-08-25 2022-10-10 Quic报文的传输方法及相关设备

Country Status (1)

Country Link
CN (1) CN117640555A (zh)

Similar Documents

Publication Publication Date Title
US11979322B2 (en) Method and apparatus for providing service for traffic flow
US10412008B2 (en) Packet processing method, apparatus, and system
US9130859B1 (en) Methods and apparatus for inter-virtual local area network multicast services
CN112019433B (zh) 一种报文转发方法和装置
CN107770072B (zh) 一种发送和接收报文的方法和设备
US10833975B2 (en) Operations processing of multiple-protocol packets by packet switching devices in a network
CN112751769B (zh) 发送报文的方法、装置及系统
CN113259238A (zh) 分段标识的处理方法及设备
CN107370654B (zh) 一种伪线数据报文的封装、解封装方法和相关装置
CN114189564A (zh) 一种报文传输方法、装置及系统
EP4274123A1 (en) Packet encapsulation and de-encapsulation method and device, storage medium, and electronic device
CN112637237B (zh) 基于SRoU的业务加密方法、系统、设备及存储介质
CN108075991A (zh) 报文转发方法及装置
CN111277426B (zh) 一种ioam信息的处理方法和装置
RU2461131C2 (ru) Сервер, система передачи и реализуемый ими способ переноса инкапсуляции по gre-туннелю
WO2023030160A1 (zh) 发送报文的方法、网络设备、存储介质及程序产品
CN117640555A (zh) Quic报文的传输方法及相关设备
US10171368B1 (en) Methods and apparatus for implementing multiple loopback links
WO2024041064A1 (zh) Quic报文的传输方法及相关设备
CN111447131B (zh) 报文解封装方法及装置、报文封装方法及装置
US11082540B2 (en) Network operations including protocol processing of a packet updating an operations data field of a different protocol
CN114079583A (zh) 发送组播报文的方法、获取转发表项的方法及装置
CN113055268A (zh) 隧道流量负载均衡的方法、装置、设备及介质
WO2024001701A1 (zh) 数据处理方法、装置及系统
WO2022135321A1 (zh) 报文传输方法、设备及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication