CN114793187A - L2tp消息的处理方法、装置及存储介质 - Google Patents
L2tp消息的处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114793187A CN114793187A CN202110018854.2A CN202110018854A CN114793187A CN 114793187 A CN114793187 A CN 114793187A CN 202110018854 A CN202110018854 A CN 202110018854A CN 114793187 A CN114793187 A CN 114793187A
- Authority
- CN
- China
- Prior art keywords
- bit
- message
- l2tp
- values
- target
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract description 5
- 238000000034 method Methods 0.000 claims abstract description 80
- 238000004590 computer program Methods 0.000 claims description 21
- 239000004973 liquid crystal related substance Substances 0.000 claims description 7
- 230000005641 tunneling Effects 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 43
- 238000006243 chemical reaction Methods 0.000 description 51
- 238000010586 diagram Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 235000014510 cooky Nutrition 0.000 description 7
- 230000007774 longterm Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- 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
-
- 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/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/12—Setup of transport tunnels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/20—Manipulation of established connections
- H04W76/22—Manipulation of transport tunnels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/30—Connection release
- H04W76/32—Release of transport tunnels
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种L2TP消息的处理方法、装置及存储介质,该方法包括:接收第二设备发送的第一L2TP消息;确定所述第一L2TP消息对应的L2TP版本标识;若所述L2TP版本标识与目标版本标识不同,则将所述第一L2TP消息转换为目标版本对应的第二L2TP消息。本申请提供的L2TP消息的处理方法、装置及存储介质能够避免现有技术中需要将原来的L2TP版本对应的隧道连接释放,并重新建立新的L2TP版本对应的隧道连接的现象,从而可以降低通信时延,提高通信性能。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种L2TP消息的处理方法、装置及存储介质。
背景技术
二层隧道协议(Layer Two Tunneling Protocol,L2TP)是一种Internet隧道协议,通常用于虚拟专用网(Virtual Private Network,VPN),实现终端设备与远程服务器的点对点连接。目前常用的L2TP有L2TPv2和L2TPv3两个版本。两种L2TP版本在头格式上不同,在实际使用时,如果系统间所支持的L2TP版本不同,则需要进行版本转换,否则L2TP隧道便无法建立。
目前,在进行版本转换时,如果第一设备中L2TPv3运行在网络协议(InterworkingProtocol,IP)层上,其可通过回退(fall back)到运行在用户数据报协议(User DatagramProtocol,UDP)上的L2TPv2或L2TPv3来进行版本转换。如果第一设备中L2TPv3运行在UDP层上,其可通过向对端的第二设备发送请求建立控制连接(Start-Control-Connection-Request,SCCRQ)消息获取第二设备的L2TP版本,如果第二设备返回的响应消息中指示其只支持L2TPv2版本,则该第一设备将会用L2TPv2版本与对端设备建立隧道连接。
然而,在上述方式中,无论L2TP是运行在IP层上还是运行在UDP层上,第一设备都需要将原来的L2TP版本对应的隧道连接释放,并重新建立新的L2TP版本对应的隧道连接,因此会增大通信时延,降低通信性能。
发明内容
本申请提供一种L2TP消息的处理方法、装置及存储介质,能够降低通信时延,提高通信性能。
一方面,本申请提供一种L2TP消息的处理方法,应用于第一设备,包括:
接收第二设备发送的第一L2TP消息;
确定所述第一L2TP消息对应的L2TP版本标识;
若所述L2TP版本标识与目标版本标识不同,则将所述第一L2TP消息转换为目标版本对应的第二L2TP消息。
在本方案中,当系统间所支持的L2TP版本不同时,可以根据第一L2TP消息生成第二L2TP消息,避免了现有技术中需要将原来的L2TP版本对应的隧道连接释放,并重新建立新的L2TP版本对应的隧道连接的现象,从而可以降低通信时延,提高通信性能。
在一种可能的实现方式中,所述将所述第一L2TP消息转换为目标版本对应的第二L2TP消息,包括:
根据所述第一L2TP消息的消息头,生成目标消息头;
将所述第一L2TP消息的消息体中第一字段的第1个比特位设置为0,得到目标消息体;
根据所述目标消息头和所述目标消息体,生成所述第二L2TP消息。
在本方案中,将第一L2TP消息的消息体中第一字段的第1个比特位设置为0,可以避免由于系统不能识别原版本的L2TP中的AVP,造成会话或者连接的关闭。
在一种可能的实现方式中,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第一版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP控制消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识,所述第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中的第33个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
在本方案中,若第一L2TP消息为L2TP控制消息,目标版本标识为第一版本标识时,可以将L2TP控制消息中的相关字段的内容,填充到对应的目标消息头中的相关字段中,从而不仅可以简单且快速的实现L2TPv3版本向L2TPv2版本的转换,而且在版本转换过程中,可以不用将L2TP v3版本对应的隧道连接释放,并重新建立L2TP v2版本对应的隧道连接,降低了通信时延,提高了通信性能。
在一种可能的实现方式中,所述第一L2TP消息为L2TP数据消息,所述目标版本标识为第一版本标识;
所述目标消息头中第1个比特位的值为0,第2个比特位的值为所述L2TP数据消息的长度标识;
所述目标消息头中第5个比特位的值为所述L2TP数据消息的消息头中第二字段后的第2个比特位的值,其中,所述第二字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述目标消息头中第7个比特位的值为偏移量标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP数据消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识;
第65个比特位至第80个比特位的值为所述L2TP数据消息的序列号,第81个比特位至第96个比特位的值为所述L2TP数据消息的下一个L2TP数据消息的序列号。
在本方案中,在第一L2TP消息为L2TP数据消息,且目标版本标识为第一版本标识时,可以将L2TP数据消息中的相关字段的内容,填充到对应的目标消息头中的相关字段中,从而不仅可以简单且快速的实现L2TPv3版本向L2TPv2版本的转换,而且在版本转换过程中,可以不用将L2TP v3版本对应的隧道连接释放,并重新建立L2TP v2版本对应的隧道连接,降低了通信时延,提高了通信性能。
在一种可能的实现方式中,所述长度标识为0;或者,
所述字段长度标识为1,且所述目标消息头中第17个比特位至第32个比特位的值为所述第二L2TP消息的消息长度。
在本方案中,由于目标消息头中的长度标识可以根据实际情况灵活设置,从而可以提高L2TP消息版本转换的灵活性。
在一种可能的实现方式中,所述偏移量标识为0;或者,
所述偏移量标识为1,且所述目标消息头中第97个比特位至第112个比特位的值为有效载荷数据的偏移字节数,从第113个比特位开始的第一预设数量个比特位的值设置为有效载荷数据的偏移字节的长度。
在本方案中,由于目标消息头中的偏移量标识可以根据实际情况灵活设置,从而可以提高L2TP消息版本转换的灵活性。
在一种可能的实现方式中,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值,所述目标消息头中第81个比特位至第96个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值加一后得到的值。
在本方案中,由于第一设备可以直接从L2TP数据消息的序列号(SequenceNumber)字段中提取数值,并填充到目标消息头的Ns字段中,从而可以保证生成的目标消息头的准确性。
在一种可能的实现方式中,若所述第二字段后的第9个比特位至第33个比特位的值大于所述目标消息头中第65个比特位至第80个比特位所能表达的第一最大值时,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值除以所述第一最大值的余数,所述目标消息头中第81个比特位至第96个比特位的值为所述余数加一后得到的值。
在本方案中,当L2TPv3版本中序列号(Sequence Number)字段所能表达的数据长度超出Ns字段所能表达的第一最大值时,将Ns字段的值重新进行计数,也即按照序列号(Sequence Number)字段的值除以第一最大值的余数进行设置,从而可以确保消息序列号准确,提高了目标消息头的准确性。
在一种可能的实现方式中,若所述余数加一后得到的值大于所述目标消息头中第81个比特位至第96个比特位所能表达的第二最大值时,则所述目标消息头中第81个比特位至第96个比特位的值均为0。
在本方案中,当计算出的Nr字段的值超出其所能表达的最大值时,将Nr字段的值重新进行计数,也即将Nr字段中的所有比特位均设置为0,从而可以进一步保证目标消息头的准确性。
在一种可能的实现方式中,所述L2TP数据消息运行在网络协议IP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第1个比特位至第32个比特位的值确定出的。
在本方案中,在L2TP数据消息运行在IP层时,由于第一设备可以直接从L2TP数据消息的控制连接标识(control connection ID)字段中提取数值,并生成隧道标识(TunnelID)和会话标识(Session ID),以填充到目标消息头的隧道标识(Tunnel ID)字段和会话标识(Session ID)字段中,从而可以保证生成的目标消息头的准确性。
在一种可能的实现方式中,所述L2TP数据消息运行在用户数据报协议UDP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第64个比特位的值确定出的。
在本方案中,在L2TP数据消息运行在UDP层时,由于第一设备可以直接从L2TP数据消息的控制连接标识(control connection ID)字段中提取数值,并生成隧道标识(TunnelID)和会话标识(Session ID),以填充到目标消息头的隧道标识(Tunnel ID)字段和会话标识(Session ID)字段中,从而可以保证生成的目标消息头的准确性。
在一种可能的实现方式中,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值用于表示控制连接标识,所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
在本方案中,若第一L2TP消息为L2TP控制消息,目标版本标识为第二版本标识时,可以将L2TPv2版本的L2TP控制消息中的相关字段的内容,填充到对应的目标消息头中的相关字段中,从而不仅可以简单且快速的实现L2TPv2版本向L2TPv3版本的转换,而且在版本转换过程中,可以不用将L2TP v2版本对应的隧道连接释放,并重新建立L2TP v3版本对应的隧道连接,降低了通信时延,提高了通信性能。
在一种可能的实现方式中,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在网络协议IP层;所述目标版本标识为第二版本标识;
所述目标消息头中第1个比特位至第32个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第33个比特位开始的第二预设数量个比特位中包括第三字段的值,所述第三字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述第三字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第三字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
在本方案中,在L2TP数据消息运行在IP层时,由于第一设备可以直接根据L2TP数据消息的隧道标识(Tunnel ID)和会话标识(Session ID)生成控制连接标识(controlconnection ID),以填充到目标消息头的控制连接标识字段中,并通过提取L2TP数据消息的S字段的数值,填充到目标消息头的相关字段中,从而可以保证生成的目标消息头的准确性。
在一种可能的实现方式中,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第三字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第三字段后的第9个比特位至第16个比特位的值均为0,所述第三字段后的第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
在本方案中,由于第一设备可以直接从L2TP数据消息的Ns字段中提取数值,并填充到目标消息头的序列号(Sequence Number)字段中,从而可以保证生成的目标消息头的准确性。
在一种可能的实现方式中,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在用户数据报协议UDP层;所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第65个比特位开始的第三预设数量个比特位中包括第四字段的值,所述第四字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述第四字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第四字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
在本方案中,在L2TP数据消息运行在UDP层时,由于第一设备可以直接根据L2TP数据消息的隧道标识(Tunnel ID)和会话标识(Session ID)生成控制连接标识(controlconnection ID),以填充到目标消息头的控制连接标识字段中,并通过提取L2TP数据消息的S字段的数值,填充到目标消息头的相关字段中,从而可以保证生成的目标消息头的准确性。
在一种可能的实现方式中,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第四字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第四字段后的第9个比特位至第16个比特位的值均为0,第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
在本方案中,由于第一设备可以直接从L2TP数据消息的Ns字段中提取数值,并填充到目标消息头的序列号(Sequence Number)字段中,从而可以保证生成的目标消息头的准确性。
在一种可能的实现方式中,所述方法还包括:
将所述第二L2TP消息发送给第三设备。
另一方面,本申请提供一种L2TP消息的处理装置,包括存储器,收发机,处理器:
存储器,用于存储计算机程序;收发机,用于在所述处理器的控制下收发数据;处理器,用于读取所述存储器中的计算机程序并执行以下操作:
接收第二设备发送的第一L2TP消息;
确定所述第一L2TP消息对应的L2TP版本标识;
若所述L2TP版本标识与目标版本标识不同,则将所述第一L2TP消息转换为目标版本对应的第二L2TP消息。
在一种可能的实现方式中,所述处理器,具体用于:
根据所述第一L2TP消息的消息头,生成目标消息头;
将所述第一L2TP消息的消息体中第一字段的第1个比特位设置为0,得到目标消息体;
根据所述目标消息头和所述目标消息体,生成所述第二L2TP消息。
在一种可能的实现方式中,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第一版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP控制消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识,所述第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中的第33个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
在一种可能的实现方式中,所述第一L2TP消息为L2TP数据消息,所述目标版本标识为第一版本标识;
所述目标消息头中第1个比特位的值为0,第2个比特位的值为所述L2TP数据消息的长度标识;
所述目标消息头中第5个比特位的值为所述L2TP数据消息的消息头中第二字段后的第2个比特位的值,其中,所述第二字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述目标消息头中第7个比特位的值为偏移量标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP数据消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识;
第65个比特位至第80个比特位的值为所述L2TP数据消息的序列号,第81个比特位至第96个比特位的值为所述L2TP数据消息的下一个L2TP数据消息的序列号。
在一种可能的实现方式中,所述长度标识为0;或者,
所述字段长度标识为1,且所述目标消息头中第17个比特位至第32个比特位的值为所述第二L2TP消息的消息长度。
在一种可能的实现方式中,所述偏移量标识为0;或者,
所述偏移量标识为1,且所述目标消息头中第97个比特位至第112个比特位的值为有效载荷数据的偏移字节数,从第113个比特位开始的第一预设数量个比特位的值设置为有效载荷数据的偏移字节的长度。
在一种可能的实现方式中,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值,所述目标消息头中第81个比特位至第96个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值加一后得到的值。
在一种可能的实现方式中,若所述第二字段后的第9个比特位至第33个比特位的值大于所述目标消息头中第65个比特位至第80个比特位所能表达的第一最大值时,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值除以所述第一最大值的余数,所述目标消息头中第81个比特位至第96个比特位的值为所述余数加一后得到的值。
在一种可能的实现方式中,若所述余数加一后得到的值大于所述目标消息头中第81个比特位至第96个比特位所能表达的第二最大值时,则所述目标消息头中第81个比特位至第96个比特位的值均为0。
在一种可能的实现方式中,所述L2TP数据消息运行在网络协议IP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第1个比特位至第32个比特位的值确定出的。
在一种可能的实现方式中,所述L2TP数据消息运行在用户数据报协议UDP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第64个比特位的值确定出的。
在一种可能的实现方式中,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值用于表示控制连接标识,所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
在一种可能的实现方式中,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在网络协议IP层;所述目标版本标识为第二版本标识;
所述目标消息头中第1个比特位至第32个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第33个比特位开始的第二预设数量个比特位中包括第三字段的值,所述第三字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述第三字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第三字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
在一种可能的实现方式中,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第三字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第三字段后的第9个比特位至第16个比特位的值均为0,所述第三字段后的第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
在一种可能的实现方式中,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在用户数据报协议UDP层;所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第65个比特位开始的第三预设数量个比特位中包括第四字段的值,所述第四字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述第四字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第四字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
在一种可能的实现方式中,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第四字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第四字段后的第9个比特位至第16个比特位的值均为0,第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
在一种可能的实现方式中,所述处理器,具体用于:
将所述第二L2TP消息发送给第三设备。
再一方面,本申请提供一种L2TP消息的处理装置,包括:
接收单元,用于接收第二设备发送的第一L2TP消息;
处理单元,用于确定所述第一L2TP消息对应的L2TP版本标识;
所述处理单元,还用于在所述L2TP版本标识与目标版本标识不同时,将所述第一L2TP消息转换为目标版本对应的第二L2TP消息。
在一种可能的实现方式中,所述处理单元,具体用于:
根据所述第一L2TP消息的消息头,生成目标消息头;
将所述第一L2TP消息的消息体中第一字段的第1个比特位设置为0,得到目标消息体;
根据所述目标消息头和所述目标消息体,生成所述第二L2TP消息。
在一种可能的实现方式中,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第一版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP控制消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识,所述第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中的第33个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
在一种可能的实现方式中,所述第一L2TP消息为L2TP数据消息,所述目标版本标识为第一版本标识;
所述目标消息头中第1个比特位的值为0,第2个比特位的值为所述L2TP数据消息的长度标识;
所述目标消息头中第5个比特位的值为所述L2TP数据消息的消息头中第二字段后的第2个比特位的值,其中,所述第二字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述目标消息头中第7个比特位的值为偏移量标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP数据消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识;
第65个比特位至第80个比特位的值为所述L2TP数据消息的序列号,第81个比特位至第96个比特位的值为所述L2TP数据消息的下一个L2TP数据消息的序列号。
在一种可能的实现方式中,所述长度标识为0;或者,
所述字段长度标识为1,且所述目标消息头中第17个比特位至第32个比特位的值为所述第二L2TP消息的消息长度。
在一种可能的实现方式中,所述偏移量标识为0;或者,
所述偏移量标识为1,且所述目标消息头中第97个比特位至第112个比特位的值为有效载荷数据的偏移字节数,从第113个比特位开始的第一预设数量个比特位的值设置为有效载荷数据的偏移字节的长度。
在一种可能的实现方式中,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值,所述目标消息头中第81个比特位至第96个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值加一后得到的值。
在一种可能的实现方式中,若所述第二字段后的第9个比特位至第33个比特位的值大于所述目标消息头中第65个比特位至第80个比特位所能表达的第一最大值时,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值除以所述第一最大值的余数,所述目标消息头中第81个比特位至第96个比特位的值为所述余数加一后得到的值。
在一种可能的实现方式中,若所述余数加一后得到的值大于所述目标消息头中第81个比特位至第96个比特位所能表达的第二最大值时,则所述目标消息头中第81个比特位至第96个比特位的值均为0。
在一种可能的实现方式中,所述L2TP数据消息运行在网络协议IP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第1个比特位至第32个比特位的值确定出的。
在一种可能的实现方式中,所述L2TP数据消息运行在用户数据报协议UDP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第64个比特位的值确定出的。
在一种可能的实现方式中,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值用于表示控制连接标识,所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
在一种可能的实现方式中,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在网络协议IP层;所述目标版本标识为第二版本标识;
所述目标消息头中第1个比特位至第32个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第33个比特位开始的第二预设数量个比特位中包括第三字段的值,所述第三字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述第三字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第三字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
在一种可能的实现方式中,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第三字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第三字段后的第9个比特位至第16个比特位的值均为0,所述第三字段后的第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
在一种可能的实现方式中,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在用户数据报协议UDP层;所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第65个比特位开始的第三预设数量个比特位中包括第四字段的值,所述第四字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述第四字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第四字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
在一种可能的实现方式中,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第四字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第四字段后的第9个比特位至第16个比特位的值均为0,第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
在一种可能的实现方式中,所述处理单元,具体用于:
将所述第二L2TP消息发送给第三设备。
再一方面,本申请提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行上述任意一种可能的实施方式中的L2TP消息的处理方法。
再一方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任意一种可能的实施方式中的L2TP消息的处理方法。
本申请提供一种L2TP消息的处理方法、装置及存储介质,通过接收第二设备发送的第一L2TP消息,并确定第一L2TP消息对应的L2TP版本标识,若L2TP版本标识与目标版本标识不同,则将第一L2TP消息转换为目标版本对应的第二L2TP消息。这样,当系统间所支持的L2TP版本不同时,可以根据第一L2TP消息生成第二L2TP消息,避免了现有技术中需要将原来的L2TP版本对应的隧道连接释放,并重新建立新的L2TP版本对应的隧道连接的现象,从而可以降低通信时延,提高通信性能。
应当理解,上述发明内容部分中所描述的内容并非旨在限定本发明的实施例的关键或重要特征,亦非用于限制本发明的范围。本发明的其它特征将通过以下的描述变得容易理解。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的L2TP消息的一种应用场景示意图;
图2为L2TPv2消息的头格式示意图;
图3为L2TPv3的控制信息(control message)的头格式示意图;
图4为L2TPv3的数据信息(data message)的头格式示意图;
图5为在IP层上的L2TP数据消息的L2TP会话头的示意图;
图6为在UDP层上的L2TP数据消息的L2TP会话头的示意图;
图7为图4中的二层特定子层的示意图;
图8为L2TPv2和L2TPv3的AVP的格式示意图;
图9为本申请一实施例提供的L2TP消息的处理方法的流程示意图;
图10为本申请实施例提供的一种L2TP消息的处理方法的信令流程图;
图11为本申请实施例提供的另一种L2TP消息的处理方法的信令流程图;
图12为本申请实施例提供的一种设备的示意图;
图13为本申请实施例提供的一种L2TP消息的处理装置的示意图。
具体实施方式
本申请中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的L2TP消息的处理方法及装置,用以在系统间所支持的L2TP版本不同时,需要进行L2TP版本转换的场景中。其中,L2TP由因特网工程任务组(InternetEngineering Task Force,IETF)定义,是一种Internet隧道协议,通常用于虚拟专用网(VPN),实现用户与远程服务器的点对点连接。目前常用的L2TP有L2TPv2和L2TPv3两个版本。两种L2TP版本在头格式上不同,在实际使用时,如果系统间所支持的L2TP版本不同,则需要进行版本转换,否则L2TP隧道便无法建立。在通信系统中,可能用到L2TP版本转换的场景有很多,以5G系统(5GS)为例,包括但不限于:(1)终端设备在进行切换时,源用户面功能(User Plane Function,UPF)与目标UPF所支持的L2TP版本不同时,需要进行L2TP版本转换;(2)终端设备在进行切换时,源UPF与目标会话管理功能(Session ManagementFunction,SMF)所支持的L2TP版本不同时,需要进行L2TP版本转换;(3)终端设备在进行切换时,源SMF与目标SMF所支持的L2TP版本不同时,需要进行L2TP版本转换;(4)SMF和/或UPF与远端服务器所支持的L2TP版本不同时,需要进行L2TP版本转换;(5)插入I-SMF和/或I-UPF时,其与原SMF和/或原UPF所支持的L2TP版本不同时,需要进行L2TP版本转换。
示例性的,图1为本申请实施例提供的L2TP消息的一种应用场景示意图,如图1所示,该系统中包括有终端设备11、网络设备12、UPF13和远端服务器14,其中,UPF13在接收到远端服务器14发送的L2TP消息后,会将该L2TP消息转发给网络设备12,或者转发给其他网元,如SMF,或者,UPF13在接收到网络设备12或者SMF发送的L2TP消息后,会将该L2TP消息转发给远端服务器14。其中,以终端设备11在进行切换时,源UPF与目标UPF所支持的L2TP版本不同时,需要进行L2TP版本转换为例,UPF 13在接收到远端服务器14发送的第一L2TP消息后,会先确定第一L2TP消息对应的L2TP版本标识,若该L2TP版本标识与其所需要的目标版本标识不同时,会进行版本标识的转换,也即将第一L2TP消息转换为目标版本对应的第二L2TP消息。这样,当系统间所支持的L2TP版本不同时,可以根据第一L2TP消息生成第二L2TP消息,避免了现有技术中需要将原来的L2TP版本对应的隧道连接释放,并重新建立新的L2TP版本对应的隧道连接的现象,从而可以降低通信时延,提高通信性能。
其中,需要的目标版本标识可以为转发后的设备所能支持的L2TP版本,例如网络设备12或SMF所能支持的L2TP版本,也可以为UPF 13自己所能支持的L2TP版本。
需要进行说明的是,在前述各网络场景中,进行L2TP版本转换的方式和原理类似。
其中,方法和装置是基于同一申请构思的,由于方法和装置解决问题的原理相似,因此装置和方法的实施可以相互参见,重复之处不再赘述。
本申请实施例提供的技术方案可以适用于多种系统,尤其是5G系统。例如适用的系统可以是全球移动通讯(global system of mobile communication,GSM)系统、码分多址(code division multiple access,CDMA)系统、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)通用分组无线业务(general packet radio service,GPRS)系统、长期演进(long term evolution,LTE)系统、LTE频分双工(frequencydivision duplex,FDD)系统、LTE时分双工(time division duplex,TDD)系统、高级长期演进(long term evolution advanced,LTE-A)系统、通用移动系统(universal mobiletelecommunication system,UMTS)、全球互联微波接入(worldwide interoperabilityfor microwave access,WiMAX)系统、5G新空口(New Radio,NR)系统等。这多种系统中均包括终端设备和网络设备。系统中还可以包括核心网部分,例如演进的分组系统(EvlovedPacket System,EPS)、5G系统(5GS)等。
本申请实施例涉及的终端设备,可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备等。在不同的系统中,终端设备的名称可能也不相同,例如在5G系统中,终端设备可以称为用户设备(User Equipment,UE)。无线终端设备可以经无线接入网(Radio Access Network,RAN)与一个或多个核心网(Core Network,CN)进行通信,无线终端设备可以是移动终端设备,如移动电话(或称为“蜂窝”电话)和具有移动终端设备的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(Personal Communication Service,PCS)电话、无绳电话、会话发起协议(Session Initiated Protocol,SIP)话机、无线本地环路(Wireless Local Loop,WLL)站、个人数字助理(Personal Digital Assistant,PDA)等设备。无线终端设备也可以称为系统、订户单元(subscriber unit)、订户站(subscriber station),移动站(mobilestation)、移动台(mobile)、远程站(remote station)、接入点(access point)、远程终端设备(remote terminal)、接入终端设备(access terminal)、用户终端设备(userterminal)、用户代理(user agent)、用户装置(user device),本申请实施例中并不限定。
本申请实施例涉及的网络设备,可以是基站,该基站可以包括多个为终端提供服务的小区。根据具体应用场合不同,基站又可以称为接入点,或者可以是接入网中在空中接口上通过一个或多个扇区与无线终端设备通信的设备,或者其它名称。网络设备可用于将收到的空中帧与网际协议(Internet Protocol,IP)分组进行相互更换,作为无线终端设备与接入网的其余部分之间的路由器,其中接入网的其余部分可包括网际协议(IP)通信网络。网络设备还可协调对空中接口的属性管理。例如,本申请实施例涉及的网络设备可以是全球移动通信系统(Global System for Mobile communications,GSM)或码分多址接入(Code Division Multiple Access,CDMA)中的网络设备(Base Transceiver Station,BTS),也可以是带宽码分多址接入(Wide-band Code Division Multiple Access,WCDMA)中的网络设备(NodeB),还可以是长期演进(long term evolution,LTE)系统中的演进型网络设备(evolutional Node B,eNB或e-NodeB)、5G网络架构(next generation system)中的5G基站(gNB),也可以是家庭演进基站(Home evolved Node B,HeNB)、中继节点(relaynode)、家庭基站(femto)、微微基站(pico)等,本申请实施例中并不限定。在一些网络结构中,网络设备可以包括集中单元(centralized unit,CU)节点和分布单元(distributedunit,DU)节点,集中单元和分布单元也可以地理上分开布置。
网络设备与终端设备之间可以各自使用一或多根天线进行多输入多输出(MultiInput Multi Output,MIMO)传输,MIMO传输可以是单用户MIMO(Single User MIMO,SU-MIMO)或多用户MIMO(Multiple User MIMO,MU-MIMO)。根据根天线组合的形态和数量,MIMO传输可以是2D-MIMO、3D-MIMO、FD-MIMO或massive-MIMO,也可以是分集传输或预编码传输或波束赋形传输等。
本申请实施例涉及的UPF,是3GPP定义的5G Core(核心网)基础设施系统架构的基本组成部分。
值得注意的是,本申请实施例中涉及的第一设备,可以是UPF,也可以是SMF,第二设备可以是远端服务器,也可以是网络设备,第三设备可以是网络设备,也可以是远端服务器等。其中,第一设备用于将从第二设备接收到的第一L2TP消息转发给第三设备,也可以在本地对该第一L2TP消息进行处理。
在对本申请提供的L2TP消息的处理方法的技术方案进行介绍之前,先对L2TPv2版本和L2TPv3版本的消息头的数据格式进行说明。
图2为L2TPv2消息的头格式示意图,如图2所示,L2TPv2版本的L2TP消息的消息头中,第1个比特位T表示L2TP消息的消息类型,其中,若L2TP消息为数据消息,则T为0,若L2TP消息为控制消息,则T为1。第2个比特位L表示L2TP消息的长度标识,当L为0时,第17个比特位到第32个比特位中的长度(length)字段为空,当L为1时,第17个比特位到第32个比特位中的长度(length)字段表示L2TP消息的实际长度。另外,第5个比特位S表示L2TP消息的序列号标识,当S为0时,第65个比特位到第80个比特位的序列号(Ns)字段为空,当S为1时,第65个比特位到第80个比特位中的序列号(Ns)字段表示L2TP消息的序列号,第81个比特位至第96个比特位中的下一个消息的序列号(Nr)字段表示希望接收的下一个L2TP消息的序列号;第7个比特位O表示L2TP消息的偏移值标识,当O为0时,第97个比特位到第112个比特位的偏移值(offset Size)字段为空,当O为1时,第97个比特位到第112个比特位的偏移值(offset Size)字段表示L2TP消息的有效载荷数据的偏移字节数,从第113个比特位开始的预设数量个比特位的偏移长度(offset pad)表示有效载荷数据的偏移字节的长度。另外,第8个比特位P表示L2TP消息的优先级,当P的值为1时,表示该L2TP消息将被优先处理;第13个比特位到第16个比特位的版本(ver)字段表示L2TP消息的当前版本,如L2TPv2。
另外,在L2TPv2版本中,控制信息(control message)和数据信息(data message)共用上述同一种消息头格式。
图3为L2TPv3的控制信息(control message)的头格式示意图,如图3所示,L2TPv2版本的L2TP消息的消息头中,第1个比特位T表示L2TP消息的消息类型,L表示L2TP消息的长度标识,当L为1时,第17个比特位到第32个比特位中的长度(length)字段表示L2TP消息的实际长度,其中,对于控制信息来说,L通常均为1。另外,第5个比特位S表示L2TP消息的序列号标识,当S为1时,第65个比特位到第80个比特位中的序列号(Ns)字段表示L2TP消息的序列号,第81个比特位至第96个比特位中的下一个消息的序列号(Nr)字段表示希望接收的下一个L2TP消息的序列号,其中,对于控制信息来说,S通常均为1;第13个比特位到第16个比特位的版本(ver)字段表示L2TP消息的当前版本,如L2TPv3;第33个比特位至第64个比特位表示控制连接标识(control connection ID)。
图4为L2TPv3的数据信息(data message)的头格式示意图,如图4所示,L2TPv3版本的L2TP数据消息的消息头中包括L2TP会话头(L2TP Session Header)、二层特定子层(L2-Specific Sublayer)以及隧道载荷(Tunnel Payload)。
图5为在IP层上的L2TP数据消息的L2TP会话头的示意图,如图5所示,该L2TP会话头(L2TP Session Header)中的第1个比特位到第32个比特位表示会话标识(Session ID),从第33个比特位开始为Cookie字段,其用于检查设备接收到的消息的关联会话ID所标识的会话信息,其中,Cookie字段为可选字段,该字段的最大长度为64个比特。
图6为在UDP层上的L2TP数据消息的L2TP会话头的示意图,如图6所示,该L2TP会话头(L2TP Session Header)中的第1个比特位T为消息类型,其中,若L2TP消息为数据消息,则T为0,若L2TP消息为控制消息,则T为1。第13个比特位到第16个比特位的版本(ver)字段表示L2TP消息的当前版本,如L2TPv3。第17个比特位到第32个比特位为预留字段(Reserved),第33个比特位到第64个比特位表示会话标识(Session ID),从第65个比特位开始为Cookie字段,其用于检查设备接收到的消息的关联会话ID所标识的会话信息,其中,Cookie字段为可选字段,该字段的最大长度为64个比特。
图7为图4中的二层特定子层的示意图,如图7所示,在该二层特定子层中的第2个比特位表示L2TP消息的序列号标识,当S为1时,在该二层特定子层中的第9个比特位到第32个比特位中的序列号(Sequence Number)字段表示L2TP消息的序列号。
另外,L2TP为了提高可扩展性,在L2TP中使用消息类型和消息体这种编码方式,这种编码被称为属性值对(Attribute Value Pair,AVP)。图8为L2TPv2和L2TPv3的AVP的格式示意图,如图8所示,第1个比特位M表示设备在接收到无法识别的AVP时如何处理这个AVP。当M位被设置为1时,表示接收到无法识别的AVP时会关闭隧道,当M位被设置为0时,表示接收到无法识别的AVP时会将这个AVP忽略。第2个比特位H表示是否隐藏AVP的属性值字段中的数据,将属性值字段的值不以明文传输。第3个比特位到第6个比特位为预留位(rsvd),第7个比特位到第16个比特位表示AVP包含的字节数,第17个比特位到第32个比特位表示供应商标识(Vendor ID),第33个比特位到第48个比特位表示属性类型(Attritube type),从第49个比特位开始,表示属性值(Attribute value),其中,属性值可能占一个字节,也可能是多个字节,其长度不固定,其长度需要根据实际情况进行设置,直到达到所需要的字节数。
需要进行说明的是,图2-图8中的x均表示保留位。
目前,在LETF中规定,如果某个系统中的设备的L2TPv3运行在IP层上,其可通过回退(fall back)到运行在UDP上的L2TPv2或L2TPv3来进行版本转换。如果某系统中的设备的L2TPv3运行在UDP层上,其可通过向对端设备发送开始控制连接请求(Start-Control-Connection-Request,SCCRQ)获取对端设备所能支持的L2TP版本,如果对端设备返回的响应消息中指示其只支持L2TPv2版本,则该设备将会用L2TPv2版本与对端设备进行隧道连接。在上述方案中,虽然可以从L2TPv3版本回退到L2TPv2版本,但是该设备需要先判定自己传输所需要的L2TP版本,之后以此版本与对端设备直接建立相应隧道,而且需要释放之前的版本所对应的隧道,从而会造成资源的浪费,而且导致通信时延较大,降低了通信性能。另外,上述方案中仅支持从L2TPv3版本回退到L2TPv2版本,并不能实现从L2TPv2版本到L2TPv3版本的转换。因此,如何在不造成通信资源浪费,且保证通信时延的前提下,实现L2TPv3版本与L2TPv2版本的互相转换,是目前亟待解决的技术问题。
本申请实施例中考虑到上述问题,提出一种L2TP消息的处理方法,在该方法中,第一设备在接收到第二设备发送的第一L2TP消息后,若确定需要进行L2TP消息的版本转换时,可以从第一L2TP消息的消息头的字段中提取相关信息,并按照目标版本对应的L2TP消息消息头的格式,填充到对应的位置,从而实现将第一L2TP消息转换为目标版本对应的第二L2TP消息的目的。采用该方式,由于是从第一L2TP消息的消息头中提取出相关信息后直接填充到目标版本的消息头中对应的位置即可,不需要像现有技术中将原来的L2TP版本对应的隧道连接释放,并重新建立新的L2TP版本对应的隧道连接,因而不仅可以实现L2TPv3版本与L2TPv2版本的互相转换,而且可以节省通信资源,降低通信时延,提高通信性能。
图9为本申请一实施例提供的L2TP消息的处理方法的流程示意图,该方法可以应用于第一设备。其中,如图9所示,该方法包括:
步骤901:接收第二设备发送的第一L2TP消息。
在本步骤中,第一终端设备可以对第一L2TP消息进行本地处理,也可以对第一L2TP消息进行转发处理,也即将从第二设备接收到的第一L2TP消息转发到第三设备。
步骤902:确定第一L2TP消息对应的L2TP版本标识。
在本步骤中,如图2、图3和图6所示,第一设备在接收到第一L2TP消息后,可以根据该第一L2TP消息的消息头中的第13个比特位到第16个比特位的版本(ver)字段,确定第一L2TP消息对应的L2TP版本标识。其中,L2TP版本标识可以包括L2TPv2版本和L2TPv3版本。
步骤903:若L2TP版本标识与目标版本标识不同,则将第一L2TP消息转换为目标版本对应的第二L2TP消息。
在本步骤中,目标版本标识可以理解为第一设备所需要的版本标识,例如其自身能支持或者处理的版本标识,或者第三设备所能支持或者处理的版本标识。其中,目标版本标识可以包括L2TPv2版本和L2TPv3版本。
若第一设备接收到的第一L2TP消息对应的L2TP版本标识与目标版本标识相同,则可以直接按照当前版本对第一L2TP消息进行处理,如将该版本的第一L2TP消息转发给第三设备。
若第一设备接收到的第一L2TP消息对应的L2TP版本标识与目标版本标识不同时,则将根据接收到的第一L2TP消息,将根据目标版本的L2TP消息的消息头的头格式,从第一L2TP消息的消息头中的相关字段中提取对应的数值,填充到目标版本的L2TP消息的消息头中的相关字段中,从而重新生成目标版本对应的第二L2TP消息,也即将第一L2TP消息转换为目标版本对应的第二L2TP消息。
示例性的,在生成第二L2TP消息时,将根据第一L2TP消息的消息头,生成目标消息头,并将第一L2TP消息的消息体中第一字段的第1个比特位设置为0,得到目标消息体,再根据目标消息头和目标消息体,生成第二L2TP消息。
可以理解,L2TPv2版本和L2TPv3版本对应的L2TP消息,其消息体通常是相同的,因此,在进行版本转换时,主要是进行消息头的转换。第一设备在接收到第一L2TP消息时,可以从该第一L2TP消息的消息头中,提取与目标版本对应的L2TP消息的消息头相关的内容,以填充到目标版本对应的L2TP消息的消息头中,从而生成目标消息头。
下面,将分别以第一L2TP消息为L2TP控制消息和L2TP数据消息时,L2TPv3版本向L2TPv2版本转换的过程进行详细说明。
在一种可能的实现方式中,若第一L2TP消息为L2TP控制消息,目标版本标识为第一版本标识时,生成的目标消息头中第13个比特位至第16个比特位的值为第一版本标识,目标消息头中第33个比特位至第48个比特位的值用于表示L2TP控制消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示L2TP控制消息对应的会话标识,第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据L2TP控制消息的消息头中的第33个比特位至第64个比特位的值确定出的;目标消息头中除第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与L2TP控制消息的消息头中对应比特位的值相同。
具体的,若第一设备确定出其自身所能支持或者处理的版本标识、或者第三设备所能支持或者处理的版本标识为第一版本标识,也即目标版本标识为第一版本标识,示例性的,该第一版本标识为L2TPv2版本。第一设备根据第一L2TP消息的消息头中的T字段,确定出第一L2TP消息为L2TP控制消息,且根据版本(ver)字段确定出第一L2TP消息的版本标识为L2TPv3版本。此时,由于第一L2TP消息的版本标识与目标版本标识不同,因此,需要进行L2TPv3版本向L2TPv2版本的转换。
其中,如图2和图3所示,对于L2TPv3版本和L2TPv2版本的L2TP消息,其T字段、L字段和S字段在L2TP控制消息中均为1,而L2TPv2版本中的O字段和P字段在控制消息中都须置0,因此,L2TPv3版本的消息头中的前12个比特位的值与L2TPv2版本的消息头中的前12个比特位的值相同,故可以直接将L2TPv3版本的消息头中的前12个比特位的值填充到目标消息头的前12个比特位中。
另外,如图2所示,L2TPv2版本的消息头中第13个比特位至第16个比特位表示L2TP消息的版本信息,因此,可以将第13个比特位至第16个比特位的值设置为第一版本标识,如设置为L2TPv2版本。
示例性的,由于L2TPv3版本和L2TPv2版本的L2TP控制消息中L位都须置1,且由于L2TPv2中的O位在控制消息中须置0,意味着偏移值(Offset size)和偏移长度(Offsetpad)字段不存在,因此,在进行消息头的转换时不影响消息长度,故可将L2TPv3的长度(Length)字段的长度直接填充到目标消息头中对应的长度(Length)字段中,也即填充到目标消息头的第17个比特位到第32个比特位中。
进一步的,如图3所示,在L2TPv3版本中,消息头的第33个比特位至第64个比特位的值表示控制连接标识(control connection ID),可以根据第一设备的配置或者预设的规则,将这32个比特位的值进行拆分,以生成16位的隧道标识(Tunnel ID)和16位的会话标识(Session ID),并将生成的隧道标识(Tunnel ID)填充到目标消息头的第33个比特位至第48个比特位中,将生成的会话标识(Session ID)填充到目标消息头的第49个比特位至第64个比特位中。
另外,第一设备可以将L2TP控制消息的消息头中第65个比特位至第80个比特位的序列号(Ns)字段的值提取出来,直接填充到目标消息头的第65个比特位至第80个比特位的序列号(Ns)字段中,将L2TP控制消息的消息头中第81个比特位至第96个比特位的序列号(Nr)字段的值提取出来,直接填充到目标消息头的第81个比特位至第96个比特位的序列号(Nr)字段中。
可以理解的是,由于L2TPv2版本的L2TP控制消息中O位为0,因此,L2TPv2版本的L2TP控制消息中的偏移值(Offset size)字段和偏移长度(Offset pad)字段不存在。
在本实施例中,若第一L2TP消息为L2TP控制消息,目标版本标识为第一版本标识时,可以将L2TP控制消息中的相关字段的内容,填充到对应的目标消息头中的相关字段中,从而不仅可以简单且快速的实现L2TPv3版本向L2TPv2版本的转换,而且在版本转换过程中,可以不用将L2TP v3版本对应的隧道连接释放,并重新建立L2TP v2版本对应的隧道连接,降低了通信时延,提高了通信性能。
在另一种可能的实现方式中,若第一L2TP消息为L2TP数据消息,目标版本标识为第一版本标识时,生成的目标消息头中第1个比特位的值为0,第2个比特位的值为L2TP数据消息的字段长度标识;目标消息头中第5个比特位的值为L2TP数据消息的消息头中第二字段后的第2个比特位的值,其中,第二字段用于检查第一设备接收到的消息的关联会话ID所标识的会话信息;目标消息头中第7个比特位的值为偏移量标识;目标消息头中第13个比特位至第16个比特位的值为第一版本标识;目标消息头中第33个比特位至第48个比特位的值用于表示L2TP数据消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示L2TP控制消息对应的会话标识;65个比特位至第80个比特位的值为L2TP数据消息的序列号,第81个比特位至第96个比特位的值为L2TP数据消息的下一个L2TP数据消息的序列号。
具体的,若第一设备确定出其自身所能支持或者处理的版本标识、或者第三设备所能支持或者处理的版本标识为第一版本标识,也即目标版本标识为第一版本标识,示例性的,该第一版本标识为L2TPv2版本。第一设备根据第一L2TP消息的消息头中的T字段,确定出第一L2TP消息为L2TP数据消息,且根据版本(ver)字段确定出第一L2TP消息的版本标识为L2TPv3版本。此时,由于第一L2TP消息的版本标识与目标版本标识不同,因此,需要进行L2TPv3版本向L2TPv2版本的转换。
其中,如图2所示,对于L2TPv2版本的T字段在L2TP数据消息中须置0,因此,将目标消息头中的第1个比特位的值填充为0。
另外,如图2所示,L2TPv2版本的L字段表示长度,因此,生成的目标消息头的第2个比特位的值即为该L2TP数据消息的长度标识。其中,由于L2TPv3版本的L2TP数据消息的消息头中没有长度字段,因此,可以将该长度标识设置为0,即在目标消息头的第2个比特位(L位)填充0,此时,目标消息头中的第17个比特位到第32个比特位表示的长度(Length)字段为空,或者说该长度(Length)字段不存在。示例性的,也可以在进行版本转换后,计算生成的L2TPv2版本的第二L2TP消息的长度后,将目标消息头的第2个比特位(L位)填充1,此时,目标消息头中第17个比特位至第32个比特位的值为生成的L2TPv2版本的第二L2TP消息的消息长度。由于目标消息头中的长度标识可以根据实际情况灵活设置,从而可以提高L2TP消息版本转换的灵活性。
进一步的,如图2所示,L2TPv2版本的S字段表示序列号标识,图7中L2TPv3版本的二层特定子层中的S字段也表示序列号标识,因此,可以将L2TPv3版本的二层特定子层中的S字段的值填充到L2TPv2版本的S字段中。具体的,L2TPv3版本的二层特定子层中的S字段位于L2TP数据消息的消息头中第二字段后的第2个比特位,L2TPv2版本的S字段位于目标消息头中的第5个比特位,因此,第一设备可以通过提取第二字段后的第2个比特位的值,以填充到目标消息头中的第5个比特位中。其中,第二字段用于检查第一设备接收到的消息的关联会话ID所标识的会话信息。示例性的,该第二字段例如可以为图5或图6中的Cookie字段,该字段最大可以为64比特。
同样的,L2TPv2版本的序列号(Ns)字段表示消息的序列号,L2TPv3版本的二层特定子层中的序列号(Sequence Number)字段也表示消息的序列号,因此,可以将L2TPv3版本的二层特定子层中的序列号(Sequence Number)字段的值填充到L2TPv2版本的序列号(Ns)字段中。具体的,L2TPv3版本的二层特定子层中的序列号(Sequence Number)字段位于L2TP数据消息的消息头中第二字段后的第9个比特位至第33个比特位,L2TPv2版本的序列号(Ns)字段位于目标消息头中的第65个比特位至第80个比特位,因此,第一设备可以通过提取L2TP数据消息的消息头中第二字段后的第9个比特位至第33个比特位的值,以填充到目标消息头中的第65个比特位至第80个比特位中。
进一步的,L2TPv2版本的下一个消息的序列号(Nr)字段的值为Ns的值加一后得到的值,因此,目标消息头中第81个比特位至第96个比特位的值为L2TP数据消息的消息头中第二字段后的第9个比特位至第33个比特位的值加一后得到的值。
可以理解的是,若L2TPv3版本的二层特定子层中的S字段的值为0,则L2TPv2版本中的Ns和Nr字段置空,也可以理解为此时不存在Ns和Nr字段。
在上述方式中,由于第一设备可以直接从L2TP数据消息的序列号(SequenceNumber)字段中提取数值,并填充到目标消息头的Ns字段中,从而可以保证生成的目标消息头的准确性。
值得注意的是,由于L2TPv2版本的Ns字段和Nr字段所能表达的数据长度小于L2TPv3版本中序列号(Sequence Number)字段所能表达的数据长度,因此,若L2TPv3版本中序列号(Sequence Number)字段所能表达的数据长度大于Ns字段所能表达的第一最大值时,也即L2TP数据消息中的第二字段后的第9个比特位至第33个比特位的值大于目标消息头中第65个比特位至第80个比特位所能表达的第一最大值时,Ns将重新计数,也可以理解为目标消息头中第65个比特位至第80个比特位的值为第二字段后的第9个比特位至第33个比特位的值除以第一最大值的余数,相应的,目标消息头中的Nr字段的值,也即第81个比特位至第96个比特位的值为该余数加一后得到的值。
其中,目标消息头中第65个比特位至第80个比特位所能表达的第一最大值,可以理解为将目标消息头中第65个比特位至第80个比特位全部置1后得到的值。
在本实施例中,当L2TPv3版本中序列号(Sequence Number)字段所能表达的数据长度超出Ns字段所能表达的第一最大值时,将Ns字段的值重新进行计数,也即按照序列号(Sequence Number)字段的值除以第一最大值的余数进行设置,从而可以确保消息序列号准确,提高了目标消息头的准确性。
进一步的,对于L2TPv2版本的Nr字段来说,其值为Ns的值加一后得到的数值,若Ns的值为序列号(Sequence Number)字段的值除以第一最大值的余数,当该余数加一后得到的值大于Nr字段所能表达的第二最大值时,也即大于目标消息头中第81个比特位至第96个比特位所能表达的第二最大值时,则将Nr字段中的所有比特位均设置为0,例如将目标消息头中第81个比特位至第96个比特位的值均设为0。
其中,目标消息头中第81个比特位至第96个比特位所能表达的第二最大值,可以理解为将目标消息头中第81个比特位至第96个比特位全部置1后得到的值。
在本实施例中,当计算出的Nr字段的值超出其所能表达的最大值时,将Nr字段的值重新进行计数,也即将Nr字段中的所有比特位均设置为0,从而可以进一步保证目标消息头的准确性。
示例性的,如图2所示,L2TPv2版本第7个比特位为O字段,其值为偏移量标识。第一设备可以根据自身的配置或者预设的规则,确定L2TPv2版本第7个比特位,也即O字段的取值。示例性的,该值可以为0,此时,则图2中的偏移值(Offset size)字段和偏移长度(Offset pad)字段置空,也可以理解为偏移值(Offset size)字段和偏移长度(Offsetpad)字段不存在。示例性的,该值也可以为1,则偏移值(Offset size)字段中的取值,表示之后空置的字节数,在这些空置的字节数之后再开始填充有效载荷(payload)数据,偏移长度(Offset pad)字段中的值为上述对应的字节数。因此,第一设备可以将目标消息头中的偏移值(Offset size)字段所占的第97个比特位至第112个比特位的值设置为有效载荷数据的偏移字节数,将偏移长度(Offset pad)字段所占的从第113个比特位开始的第一预设数量个比特位的值设置为有效载荷数据的偏移字节的长度。其中,第一预设数量可以根据实际情况进行设置。
在本实施例中,由于目标消息头中的偏移量标识可以根据实际情况灵活设置,从而可以提高L2TP消息版本转换的灵活性。
另外,如图2所示,L2TPv2版本的消息头中第13个比特位至第16个比特位表示L2TP消息的版本信息,因此,可以将目标消息头中的第13个比特位至第16个比特位的值设置为第一版本标识,如设置为L2TPv2版本。
进一步的,对于L2TP数据消息,其可以运行在IP层,也可以运行在UDP层。如图4和图5所示,当L2TP数据消息运行在IP层时,L2TPv3版本中,消息头的第1个比特位至第32个比特位的值表示控制连接标识(control connection ID),第一设备可以根据第一设备的配置或者预设的规则,将这32个比特位的值进行拆分,以生成16位的隧道标识(Tunnel ID)和16位的会话标识(Session ID),并将生成的隧道标识(Tunnel ID)填充到目标消息头的第33个比特位至第48个比特位中,将生成的会话标识(Session ID)填充到目标消息头的第49个比特位至第64个比特位中。也可以理解为,在L2TP数据消息运行在IP层时,目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据L2TP数据消息的消息头中的第1个比特位至第32个比特位的值确定出的。
在本实施例中,在L2TP数据消息运行在IP层时,由于第一设备可以直接从L2TP数据消息的控制连接标识(control connection ID)字段中提取数值,并生成隧道标识(Tunnel ID)和会话标识(Session ID),以填充到目标消息头的隧道标识(Tunnel ID)字段和会话标识(Session ID)字段中,从而可以保证生成的目标消息头的准确性。
示例性的,如图4和图6所示,当L2TP数据消息运行在UDP层时,L2TPv3版本中,消息头的第33个比特位至第64个比特位的值表示控制连接标识(control connection ID),第一设备可以根据第一设备的配置或者预设的规则,将这32个比特位的值进行拆分,以生成16位的隧道标识(Tunnel ID)和16位的会话标识(Session ID),并将生成的隧道标识(Tunnel ID)填充到目标消息头的第33个比特位至第48个比特位中,将生成的会话标识(Session ID)填充到目标消息头的第49个比特位至第64个比特位中。也可以理解为,在L2TP数据消息运行在UDP层时,目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据L2TP数据消息的消息头中的第33个比特位至第64个比特位的值确定出的。
在本实施例中,在L2TP数据消息运行在UDP层时,由于第一设备可以直接从L2TP数据消息的控制连接标识(control connection ID)字段中提取数值,并生成隧道标识(Tunnel ID)和会话标识(Session ID),以填充到目标消息头的隧道标识(Tunnel ID)字段和会话标识(Session ID)字段中,从而可以保证生成的目标消息头的准确性。
综上所述,在第一L2TP消息为L2TP数据消息,且目标版本标识为第一版本标识时,可以将L2TP数据消息中的相关字段的内容,填充到对应的目标消息头中的相关字段中,从而不仅可以简单且快速的实现L2TPv3版本向L2TPv2版本的转换,而且在版本转换过程中,可以不用将L2TP v3版本对应的隧道连接释放,并重新建立L2TP v2版本对应的隧道连接,降低了通信时延,提高了通信性能。
下面,将分别以第一L2TP消息为L2TP控制消息和L2TP数据消息时,L2TPv2版本向L2TPv3版本转换的过程进行详细说明。
在一种可能的实现方式中,若第一L2TP消息为L2TP控制消息,目标版本标识为第二版本标识时,生成的目标消息头中第13个比特位至第16个比特位的值为第二版本标识,目标消息头中第33个比特位至第64个比特位的值用于表示控制连接标识,该目标消息头中第33个比特位至第64个比特位的值为根据L2TP控制消息的消息头中第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;目标消息头中除第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与L2TP控制消息的消息头中对应比特位的值相同。
具体的,若第一设备确定出其自身所能支持或者处理的版本标识、或者第三设备所能支持或者处理的版本标识为第二版本标识,也即目标版本标识为第二版本标识,示例性的,该第二版本标识为L2TPv3版本。第一设备根据第一L2TP消息的消息头中的T字段,确定出第一L2TP消息为L2TP控制消息,且根据版本(ver)字段确定出第一L2TP消息的版本标识为L2TPv2版本。此时,由于第一L2TP消息的版本标识与目标版本标识不同,因此,需要进行L2TPv2版本向L2TPv3版本的转换。
其中,如图2和图3所示,对于L2TPv3版本和L2TPv2版本的L2TP消息,其T字段、L字段和S字段在L2TP控制消息中均为1,而L2TPv2版本中的O字段和P字段在控制消息中都须置0,因此,L2TPv2版本的消息头中的前12个比特位的值与L2TPv3版本的消息头中的前12个比特位的值相同,故可以直接将L2TPv2版本的消息头中的前12个比特位的值填充到目标消息头的前12个比特位中。
另外,如图3所示,L2TPv3版本的消息头中第13个比特位至第16个比特位表示L2TP消息的版本信息,因此,可以将目标消息头的第13个比特位至第16个比特位的值设置为第二版本标识,如设置为L2TPv3版本。
示例性的,由于L2TPv2版本和L2TPv3版本的L2TP控制消息中L位都须置1,且由于L2TPv2中的O位在控制消息中须置0,意味着偏移值(Offset size)字段和偏移长度(Offsetpad)字段不存在,因此,在进行消息头的转换时不影响消息长度,故可将L2TPv2的长度(Length)字段的长度直接填充到目标消息头中对应的长度(Length)字段中,也即填充到目标消息头的第17个比特位到第32个比特位中。
进一步的,如图2所示,在L2TPv2版本中,消息头的第33个比特位至第48个比特位表示隧道标识(Tunnel ID),第49个比特位至第64个比特位表示会话标识(Session ID)。如图3所示,在L2TPv3版本中,消息头的第33个比特位至第64个比特位的值表示控制连接标识(control connection ID)。因此,第一设备可以根据自身的配置或者预设的规则,将16位的隧道标识(Tunnel ID)和16位的会话标识(Session ID),合并生成32位的控制连接标识(control connection ID),并将生成的控制连接标识(control connection ID)的值,填充到目标消息头的第33个比特位至第64个比特位中。
另外,第一设备可以将L2TPv2版本的L2TP控制消息的消息头中第65个比特位至第80个比特位的序列号(Ns)字段的值提取出来,直接填充到目标消息头的第65个比特位至第80个比特位的序列号(Ns)字段中,将L2TPv2版本的L2TP控制消息的消息头中第81个比特位至第96个比特位的序列号(Nr)字段的值提取出来,直接填充到目标消息头的第81个比特位至第96个比特位的序列号(Nr)字段中。
可以理解的是,由于L2TPv2版本的L2TP控制消息中O位为0,因此,L2TPv2版本的L2TP控制消息中的偏移值(Offset size)字段和偏移长度(Offset pad)字段不存在。
在本实施例中,若第一L2TP消息为L2TP控制消息,目标版本标识为第二版本标识时,可以将L2TPv2版本的L2TP控制消息中的相关字段的内容,填充到对应的目标消息头中的相关字段中,从而不仅可以简单且快速的实现L2TPv2版本向L2TPv3版本的转换,而且在版本转换过程中,可以不用将L2TP v2版本对应的隧道连接释放,并重新建立L2TP v3版本对应的隧道连接,降低了通信时延,提高了通信性能。
在另一种可能的实现方式中,若第一L2TP消息为L2TP数据消息,且L2TP数据消息运行在IP层,目标版本标识为第二版本标识时,目标消息头中第1个比特位至第32个比特位的值为根据L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;目标消息头中从第33个比特位开始的第二预设数量个比特位中包括第三字段的值,该第三字段用于检查第一设备接收到的消息的关联会话ID所标识的会话信息;第三字段后的第2个比特位的值为L2TP数据消息的消息头中第5个比特位的值;第三字段后的第9个比特位至第33个比特位的值表示L2TP数据消息的序列号。
具体的,如图4和图5所示,L2TPv3版本中,消息头的第1个比特位至第32个比特位的值表示控制连接标识(control connection ID)。如图2所示,L2TPv2版本中,第33个比特位至第48个比特位表示隧道标识(Tunnel ID),第49个比特位至第64个比特位表示会话标识(Session ID)。因此,第一设备可以根据自身的配置或者预设的规则,将L2TPv2版本中,第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值,合并生成为控制连接标识(control connection ID),并将生成的控制连接标识(control connection ID)填充到目标消息头中的第1个比特位至第32个比特位中。
另外,如图4和图5所示,L2TPv3版本中,从第33个比特位开始的第二预设数量个比特位中包括第三字段的值,该第三字段用于检查第一设备接收到的消息的关联会话ID所标识的会话信息,其中,第三字段例如可以为Cookie字段,其值最大可以为64比特。
进一步的,如图4和图7所示,L2TPv3版本中,L2TPv3版本的二层特定子层中的S字段用于表示序列号标识,如图2所示,L2TPv2版本中,S字段也表示序列号标识。因此,可以将L2TPv2版本中的S字段的值填充到L2TPv3版本的二层特定子层中的S字段中。具体的,L2TPv2版本的S字段位于L2TP数据消息的消息头中第5个比特位,L2TPv3版本的二层特定子层中的S字段位于第三字段后的第2个比特位,因此,第一设备可以通过提取L2TP数据消息的消息头中第5个比特位的值,以填充到目标消息头中第三字段后的第2个比特位中。
在本实施例中,在L2TP数据消息运行在IP层时,由于第一设备可以直接根据L2TP数据消息的隧道标识(Tunnel ID)和会话标识(Session ID)生成控制连接标识(controlconnection ID),以填充到目标消息头的控制连接标识字段中,并通过提取L2TP数据消息的S字段的数值,填充到目标消息头的相关字段中,从而可以保证生成的目标消息头的准确性。
另外,目标消息头中的第三字段后的第9个比特位至第33个比特位的值表示L2TP数据消息的序列号。
可以理解的是,若L2TP数据消息的消息头中第5个比特位的值为0,也即L2TP数据消息的消息头中的S字段的值为0时,则可以将目标消息头中第三字段后的第9个比特位至第33个比特位的值均设置为0,也即将L2TPv3版本的二层特定子层中的序列号(SequenceNumber)字段的值设置为0。
若L2TP数据消息的消息头中第5个比特位的值为1,也即L2TP数据消息的消息头中的S字段的值为1时,由于L2TPv2版本的序列号(Ns)字段表示消息的序列号,L2TPv3版本的二层特定子层中的序列号(Sequence Number)字段也表示消息的序列号,因此,可以将L2TPv2版本的序列号(Ns)字段的值填充到L2TPv3版本的二层特定子层中的序列号(Sequence Number)字段中。具体的,L2TPv3版本的二层特定子层中的序列号(SequenceNumber)字段位于第三字段后的第9个比特位至第33个比特位,L2TPv2版本的序列号(Ns)字段位于L2TP数据消息的消息头中的第65个比特位至第80个比特位,因此,第一设备可以通过提取L2TP数据消息的消息头中的第65个比特位至第80个比特位的值,以填充到目标消息头中的第三字段后的第17个比特位至第32个比特位中。另外,由于序列号(Ns)字段所占的比特位和序列号(Sequence Number)字段所占的比特位不同,因此,可以将第三字段后的第9个比特位至第16个比特位的值均设置为0,以补足位数。
示例性的,也可以将L2TPv3版本的二层特定子层中的序列号(Sequence Number)字段的值设置为其他值,当设置为其他值时,在对生成的第二L2TP消息进行处理时,会忽略该序列号(Sequence Number)字段的值。
在上述方式中,由于第一设备可以直接从L2TP数据消息的Ns字段中提取数值,并填充到目标消息头的序列号(Sequence Number)字段中,从而可以保证生成的目标消息头的准确性。
在又一种可能的实现方式中,若第一L2TP消息为L2TP数据消息,且L2TP数据消息运行在UDP层,目标版本标识为第二版本标识时,目标消息头中第13个比特位至第16个比特位的值为第二版本标识;目标消息头中第33个比特位至第64个比特位的值为根据L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;目标消息头中从第65个比特位开始的第三预设数量个比特位中包括第四字段的值,第四字段用于检查第一设备接收到的消息的关联会话ID所标识的会话信息;第四字段后的第2个比特位的值为L2TP数据消息的消息头中第5个比特位的值;第四字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
具体的,由于不论是在L2TPv2版本还是L2TPv3版本中,在L2TP数据消息中,T字段均为0,因此,可以直接将L2TPv2版本中消息头中的第1个比特位的值填充到目标消息头中的第1个比特位中,或者也可以直接将目标消息头中的第1个比特位的值设置为0。
另外,如图4和图6所示,L2TPv3版本的消息头中第13个比特位至第16个比特位表示L2TP消息的版本信息,因此,可以将目标消息头中的第13个比特位至第16个比特位的值设置为第二版本标识,如设置为L2TPv3版本。
进一步的,如图4和图6所示,L2TPv3版本中,消息头的第33个比特位至第64个比特位的值表示控制连接标识(control connection ID)。如图2所示,L2TPv2版本中,第33个比特位至第48个比特位表示隧道标识(Tunnel ID),第49个比特位至第64个比特位表示会话标识(Session ID)。因此,第一设备可以根据自身的配置或者预设的规则,将L2TPv2版本中,第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值,合并生成控制连接标识(control connection ID),并将生成的控制连接标识(control connection ID)填充到目标消息头中的第33个比特位至第64个比特位中。
另外,如图4和图6所示,L2TPv3版本中,从第65个比特位开始的第三预设数量个比特位中包括第四字段的值,该第四字段用于检查第一设备接收到的消息的关联会话ID所标识的会话信息,其中,第四字段例如可以为Cookie字段,其值最大可以为64比特。第三预设数量可以根据实际情况进行设置。
进一步的,如图4、图6和图7所示,L2TPv3版本中,L2TPv3版本的二层特定子层中的S字段用于表示序列号标识,如图2所示,L2TPv2版本中,S字段也表示序列号标识。因此,可以将L2TPv2版本中的S字段的值填充到L2TPv3版本的二层特定子层中的S字段中。具体的,L2TPv2版本的S字段位于L2TP数据消息的消息头中第5个比特位,L2TPv3版本的二层特定子层中的S字段位于第四字段后的第2个比特位,因此,第一设备可以通过提取L2TP数据消息的消息头中第5个比特位的值,以填充到目标消息头中第四字段后的第2个比特位中。
在本实施例中,在L2TP数据消息运行在UDP层时,由于第一设备可以直接根据L2TP数据消息的隧道标识(Tunnel ID)和会话标识(Session ID)生成控制连接标识(controlconnection ID),以填充到目标消息头的控制连接标识字段中,并通过提取L2TP数据消息的S字段的数值,填充到目标消息头的相关字段中,从而可以保证生成的目标消息头的准确性。
另外,目标消息头中的第四字段后的第9个比特位至第33个比特位的值表示L2TP数据消息的序列号。
可以理解的是,若L2TP数据消息的消息头中第5个比特位的值为0,也即L2TP数据消息的消息头中的S字段的值为0时,则可以将目标消息头中第四字段后的第9个比特位至第33个比特位的值均设置为0,也即将L2TPv3版本的二层特定子层中的序列号(SequenceNumber)字段的值设置为0。
若L2TP数据消息的消息头中第5个比特位的值为1,也即L2TP数据消息的消息头中的S字段的值为1时,由于L2TPv2版本的序列号(Ns)字段表示消息的序列号,L2TPv3版本的二层特定子层中的序列号(Sequence Number)字段也表示消息的序列号,因此,可以将L2TPv2版本的序列号(Ns)字段的值填充到L2TPv3版本的二层特定子层中的序列号(Sequence Number)字段中。具体的,L2TPv3版本的二层特定子层中的序列号(SequenceNumber)字段位于第四字段后的第9个比特位至第33个比特位,L2TPv2版本的序列号(Ns)字段位于L2TP数据消息的消息头中的第65个比特位至第80个比特位,因此,第一设备可以通过提取L2TP数据消息的消息头中的第65个比特位至第80个比特位的值,以填充到目标消息头中的第四字段后的第17个比特位至第32个比特位中。另外,由于序列号(Ns)字段所占的比特位和序列号(Sequence Number)字段所占的比特位不同,因此,可以将第四字段后的第9个比特位至第16个比特位的值均设置为0,以补足位数。
示例性的,也可以将L2TPv3版本的二层特定子层中的序列号(Sequence Number)字段的值设置为其他值,当设置为其他值时,在对生成的第二L2TP消息进行处理时,会忽略该序列号(Sequence Number)字段的值。
在上述方式中,由于第一设备可以直接从L2TP数据消息的Ns字段中提取数值,并填充到目标消息头的序列号(Sequence Number)字段中,从而可以保证生成的目标消息头的准确性。
另外,第一设备还需要对第一L2TP消息的消息体中的第一字段中的第1个比特位设置为1,以得到目标消息体。第一设备将目标消息头和目标消息体进行组合,从而可以得到第二L2TP消息。
其中,第一字段例如可以为AVP,如图8所示,第一字段中的第1个比特位可以为M字段。在将L2TPv3版本转换为L2TPv2版本时,由于只支持L2TPv2的系统不能识别特定于L2TPv3的AVP,故第一设备应将所有非L2TPv2的AVP中的M位置0,即如果某系统不能识别此L2TPv3的AVP时,可以直接将其忽略,否则会要求相关session(会话)或者connection(连接)直接关闭,造成错误。
在将L2TPv2版本转换为L2TPv3版本时,由于只支持L2TPv3的系统不能识别特定于L2TPv2的AVP,故第一设备应将所有非L2TPv3的AVP中的M位置0,即如果某系统不能识别此L2TPv2的AVP时,可以直接将其忽略,否则会要求相关session或者connection直接关闭造成错误。
需要进行说明的是,第一设备可以先生成目标消息头,再生成目标消息体,也可以先生成目标消息体头,再生成目标消息头,当然,也可以同时生成目标消息头和目标消息体。
在本实施例中,将第一L2TP消息的消息体中第一字段的第1个比特位设置为0,可以避免由于系统不能识别原版本的L2TP中的AVP,造成会话或者连接的关闭。
进一步的,第一设备在生成第二L2TP消息后,可以直接对该第二L2TP消息进行处理,也可以将该第二L2TP消息转发给第三设备,如转发给SMF或者UPF等。
其中,若L2TP消息是由L2TPv3版本转换为L2TPv2版本,则原L2TPv3版本对应的第一L2TP消息的标识信息可以被释放,如32比特的控制连接标识(Control Connection ID)或32比特的会话标识(Session ID)可以被释放,而转换后的第二L2TP消息则以新版本L2TPv2版本的标识信息进行识别,如根据16比特的隧道标识(Tunnel ID)和16比特的会话标识(Session ID)进行识别。
若L2TP消息是由L2TPv2版本转换为L2TPv3版本,则原L2TPv2版本对应的第一L2TP消息的标识信息可以被释放,如16比特的隧道标识(Tunnel ID)和16比特的会话标识(Session ID)可以被释放,而转换后的第二L2TP消息则以新版本L2TPv3版本的标识信息进行识别,如根据32比特的控制连接标识(Control Connection ID)或32比特的会话标识(Session ID)进行识别。
本申请实施例提供的L2TP消息的处理方法,通过接收第二设备发送的第一L2TP消息,并确定第一L2TP消息对应的L2TP版本标识,若L2TP版本标识与目标版本标识不同,则将第一L2TP消息转换为目标版本对应的第二L2TP消息。这样,当系统间所支持的L2TP版本不同时,可以根据第一L2TP消息生成第二L2TP消息,避免了现有技术中需要将原来的L2TP版本对应的隧道连接释放,并重新建立新的L2TP版本对应的隧道连接的现象,从而可以降低通信时延,提高通信性能。
图10为本申请实施例提供的一种L2TP消息的处理方法的信令流程图,本实施例中以第一设备为UPF,第二设备为远端服务器,第一L2TP消息对应的L2TP版本标识为L2TPv3版本,目标版本标识为L2TPv2版本为例进行说明。如图10所示,该方法包括:
步骤1001:远端服务器向UPF发送L2TPv3版本的第一L2TP消息。
其中,第一L2TP消息可以为控制消息或数据消息。
步骤1002:UPF根据第一L2TP消息的版本标识判断是否需要进行版本转换。
其中,若UPF判断出第一L2TP消息的版本标识与目标版本标识相同,则不需要进行版本转换,并执行步骤1003后流程结束,若第一L2TP消息的版本标识与目标版本标识不同,则需要进行版本转换,并执行步骤1004。
步骤1003:UPF按照L2TPv3版本进行消息的处理。
步骤1004:UPF根据第一L2TP消息的消息头,生成目标消息头。
其中,具体的生成过程可以参照前述各实施例中的描述,此处不再赘述。
步骤1005:UPF将所有非L2TPv2版本中的AVP中的M字段设置为0,生成目标消息体。
步骤1006:UPF根据目标消息头和目标消息体,生成L2TPv2版本对应的第二L2TP消息。
步骤1007:UPF读取使用该L2TPv2版本对应的第二L2TP消息或者将该第二L2TP消息转发给第三设备,并将L2TPv3版本的第一L2TP消息的ID释放,并采用L2TPv2版本的第二L2TP消息的ID进行识别。
本申请实施例提供的L2TP消息的处理方法,第一设备在接收到第二设备发送的第一L2TP消息后,若确定需要进行L2TP消息的版本转换时,可以从第一L2TP消息的消息头的字段中提取相关信息,并按照目标版本对应的L2TP消息消息头的格式,填充到对应的位置,从而实现将第一L2TP消息转换为目标版本对应的第二L2TP消息的目的。采用该方式,由于是从第一L2TP消息的消息头中提取出相关信息后直接填充到目标版本的消息头中对应的位置即可,不需要像现有技术中将原来的L2TP版本对应的隧道连接释放,并重新建立新的L2TP版本对应的隧道连接,因而不仅可以实现L2TPv3版本向L2TPv2版本的转换,而且可以节省通信资源,降低通信时延,提高通信性能。
图11为本申请实施例提供的另一种L2TP消息的处理方法的信令流程图,本实施例中以第一设备为UPF,第二设备为远端服务器,第一L2TP消息对应的L2TP版本标识为L2TPv2版本,目标版本标识为L2TPv3版本为例进行说明。如图11所示,该方法包括:
步骤1101:远端服务器向UPF发送L2TPv2版本的第一L2TP消息。
其中,第一L2TP消息可以为控制消息或数据消息。
步骤1102:UPF根据第一L2TP消息的版本标识判断是否需要进行版本转换。
其中,若UPF判断出第一L2TP消息的版本标识与目标版本标识相同,则不需要进行版本转换,并执行步骤1103后流程结束,若第一L2TP消息的版本标识与目标版本标识不同,则需要进行版本转换,并执行步骤1104。
步骤1103:UPF按照L2TPv2版本进行消息的处理。
步骤1104:UPF根据第一L2TP消息的消息头,生成目标消息头。
其中,具体的生成过程可以参照前述各实施例中的描述,此处不再赘述。
步骤1105:UPF将所有非L2TPv3版本中的AVP中的M字段设置为0,生成目标消息体。
步骤1106:UPF根据目标消息头和目标消息体,生成L2TPv3版本对应的第二L2TP消息。
步骤1107:UPF读取使用该L2TPv3版本对应的第二L2TP消息或者将该第二L2TP消息转发给第三设备,并将L2TPv2版本的第一L2TP消息的ID释放,并采用L2TPv3版本的第二L2TP消息的ID进行识别。
本申请实施例提供的L2TP消息的处理方法,第一设备在接收到第二设备发送的第一L2TP消息后,若确定需要进行L2TP消息的版本转换时,可以从第一L2TP消息的消息头的字段中提取相关信息,并按照目标版本对应的L2TP消息消息头的格式,填充到对应的位置,从而实现将第一L2TP消息转换为目标版本对应的第二L2TP消息的目的。采用该方式,由于是从第一L2TP消息的消息头中提取出相关信息后直接填充到目标版本的消息头中对应的位置即可,不需要像现有技术中将原来的L2TP版本对应的隧道连接释放,并重新建立新的L2TP版本对应的隧道连接,因而不仅可以实现L2TPv2版本向L2TPv3版本的转换,而且可以节省通信资源,降低通信时延,提高通信性能。
图12为本申请实施例提供的一种设备的示意图,如图12所示,收发机1200,用于在处理器1210的控制下接收和发送数据。
其中,在图12中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1210代表的一个或多个处理器和存储器1220代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机1200可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元,这些传输介质包括无线信道、有线信道、光缆等传输介质。处理器1210负责管理总线架构和通常的处理,存储器1220可以存储处理器1210在执行操作时所使用的数据。
处理器1210可以是中央处埋器(CPU)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD),处理器也可以采用多核架构。
处理器通过调用存储器存储的计算机程序,用于按照获得的可执行指令执行本申请实施例提供的任一所述方法。处理器与存储器也可以物理上分开布置。
其中,处理器1210用于读取所述存储器中的计算机程序并执行以下操作:
接收第二设备发送的第一L2TP消息;
确定所述第一L2TP消息对应的L2TP版本标识;
若所述L2TP版本标识与目标版本标识不同,则将所述第一L2TP消息转换为目标版本对应的第二L2TP消息。
可选的,所述处理器1210,具体用于:
根据所述第一L2TP消息的消息头,生成目标消息头;
将所述第一L2TP消息的消息体中第一字段的第1个比特位设置为0,得到目标消息体;
根据所述目标消息头和所述目标消息体,生成所述第二L2TP消息。
可选的,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第一版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP控制消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识,所述第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中的第33个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
可选的,所述第一L2TP消息为L2TP数据消息,所述目标版本标识为第一版本标识;
所述目标消息头中第1个比特位的值为0,第2个比特位的值为所述L2TP数据消息的长度标识;
所述目标消息头中第5个比特位的值为所述L2TP数据消息的消息头中第二字段后的第2个比特位的值,其中,所述第二字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述目标消息头中第7个比特位的值为偏移量标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP数据消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识;
第65个比特位至第80个比特位的值为所述L2TP数据消息的序列号,第81个比特位至第96个比特位的值为所述L2TP数据消息的下一个L2TP数据消息的序列号。
可选的,所述长度标识为0;或者,
所述字段长度标识为1,且所述目标消息头中第17个比特位至第32个比特位的值为所述第二L2TP消息的消息长度。
可选的,所述偏移量标识为0;或者,
所述偏移量标识为1,且所述目标消息头中第97个比特位至第112个比特位的值为有效载荷数据的偏移字节数,从第113个比特位开始的第一预设数量个比特位的值设置为有效载荷数据的偏移字节的长度。
可选的,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值,所述目标消息头中第81个比特位至第96个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值加一后得到的值。
可选的,若所述第二字段后的第9个比特位至第33个比特位的值大于所述目标消息头中第65个比特位至第80个比特位所能表达的第一最大值时,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值除以所述第一最大值的余数,所述目标消息头中第81个比特位至第96个比特位的值为所述余数加一后得到的值。
可选的,若所述余数加一后得到的值大于所述目标消息头中第81个比特位至第96个比特位所能表达的第二最大值时,则所述目标消息头中第81个比特位至第96个比特位的值均为0。
可选的,所述L2TP数据消息运行在网络协议IP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第1个比特位至第32个比特位的值确定出的。
可选的,所述L2TP数据消息运行在用户数据报协议UDP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第64个比特位的值确定出的。
可选的,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值用于表示控制连接标识,所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
可选的,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在网络协议IP层;所述目标版本标识为第二版本标识;
所述目标消息头中第1个比特位至第32个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第33个比特位开始的第二预设数量个比特位中包括第三字段的值,所述第三字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述第三字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第三字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
可选的,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第三字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第三字段后的第9个比特位至第16个比特位的值均为0,所述第三字段后的第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
可选的,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在用户数据报协议UDP层;所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第65个比特位开始的第三预设数量个比特位中包括第四字段的值,所述第四字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述第四字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第四字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
可选的,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第四字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第四字段后的第9个比特位至第16个比特位的值均为0,第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
可选的,所述处理器1210,具体用于:
将所述第二L2TP消息发送给第三设备。
在此需要说明的是,本申请提供的上述装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
图13为本申请实施例提供的一种L2TP消息的处理装置的示意图,示例的,请参见图13所示,该L2TP消息的处理装置130可以包括:
接收单元1301,用于接收第二设备发送的第一L2TP消息;
处理单元1302,用于确定所述第一L2TP消息对应的L2TP版本标识;
所述处理单元1302,还用于在所述L2TP版本标识与目标版本标识不同时,将所述第一L2TP消息转换为目标版本对应的第二L2TP消息。
可选的,所述处理单元1302,具体用于:
根据所述第一L2TP消息的消息头,生成目标消息头;
将所述第一L2TP消息的消息体中第一字段的第1个比特位设置为0,得到目标消息体;
根据所述目标消息头和所述目标消息体,生成所述第二L2TP消息。
可选的,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第一版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP控制消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识,所述第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中的第33个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
可选的,所述第一L2TP消息为L2TP数据消息,所述目标版本标识为第一版本标识;
所述目标消息头中第1个比特位的值为0,第2个比特位的值为所述L2TP数据消息的长度标识;
所述目标消息头中第5个比特位的值为所述L2TP数据消息的消息头中第二字段后的第2个比特位的值,其中,所述第二字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述目标消息头中第7个比特位的值为偏移量标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP数据消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识;
第65个比特位至第80个比特位的值为所述L2TP数据消息的序列号,第81个比特位至第96个比特位的值为所述L2TP数据消息的下一个L2TP数据消息的序列号。
可选的,所述长度标识为0;或者,
所述字段长度标识为1,且所述目标消息头中第17个比特位至第32个比特位的值为所述第二L2TP消息的消息长度。
可选的,所述偏移量标识为0;或者,
所述偏移量标识为1,且所述目标消息头中第97个比特位至第112个比特位的值为有效载荷数据的偏移字节数,从第113个比特位开始的第一预设数量个比特位的值设置为有效载荷数据的偏移字节的长度。
可选的,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值,所述目标消息头中第81个比特位至第96个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值加一后得到的值。
可选的,若所述第二字段后的第9个比特位至第33个比特位的值大于所述目标消息头中第65个比特位至第80个比特位所能表达的第一最大值时,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值除以所述第一最大值的余数,所述目标消息头中第81个比特位至第96个比特位的值为所述余数加一后得到的值。
可选的,若所述余数加一后得到的值大于所述目标消息头中第81个比特位至第96个比特位所能表达的第二最大值时,则所述目标消息头中第81个比特位至第96个比特位的值均为0。
可选的,所述L2TP数据消息运行在网络协议IP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第1个比特位至第32个比特位的值确定出的。
可选的,所述L2TP数据消息运行在用户数据报协议UDP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第64个比特位的值确定出的。
可选的,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值用于表示控制连接标识,所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
可选的,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在网络协议IP层;所述目标版本标识为第二版本标识;
所述目标消息头中第1个比特位至第32个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第33个比特位开始的第二预设数量个比特位中包括第三字段的值,所述第三字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述第三字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第三字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
可选的,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第三字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第三字段后的第9个比特位至第16个比特位的值均为0,所述第三字段后的第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
可选的,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在用户数据报协议UDP层;所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第65个比特位开始的第三预设数量个比特位中包括第四字段的值,所述第四字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述第四字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第四字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
可选的,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第四字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第四字段后的第9个比特位至第16个比特位的值均为0,第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
可选的,所述处理单元1302,具体用于:
将所述第二L2TP消息发送给第三设备。
在此需要说明的是,本申请提供的上述装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种处理器可读存储介质,该处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行如上述方法实施例中的L2TP消息的处理方法。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上述方法实施例中的L2TP消息的处理方法。
所述处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机可执行指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机可执行指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些处理器可执行指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的处理器可读存储器中,使得存储在该处理器可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些处理器可执行指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (37)
1.一种二层隧道协议L2TP消息的处理方法,其特征在于,应用于第一设备,所述方法包括:
接收第二设备发送的第一L2TP消息;
确定所述第一L2TP消息对应的L2TP版本标识;
若所述L2TP版本标识与目标版本标识不同,则将所述第一L2TP消息转换为目标版本对应的第二L2TP消息。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一L2TP消息转换为目标版本对应的第二L2TP消息,包括:
根据所述第一L2TP消息的消息头,生成目标消息头;
将所述第一L2TP消息的消息体中第一字段的第1个比特位设置为0,得到目标消息体;
根据所述目标消息头和所述目标消息体,生成所述第二L2TP消息。
3.根据权利要求2所述的方法,其特征在于,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第一版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP控制消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识,所述第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中的第33个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
4.根据权利要求2所述的方法,其特征在于,所述第一L2TP消息为L2TP数据消息,所述目标版本标识为第一版本标识;
所述目标消息头中第1个比特位的值为0,第2个比特位的值为所述L2TP数据消息的长度标识;
所述目标消息头中第5个比特位的值为所述L2TP数据消息的消息头中第二字段后的第2个比特位的值,其中,所述第二字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述目标消息头中第7个比特位的值为偏移量标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP数据消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识;
第65个比特位至第80个比特位的值为所述L2TP数据消息的序列号,第81个比特位至第96个比特位的值为所述L2TP数据消息的下一个L2TP数据消息的序列号。
5.根据权利要求4所述的方法,其特征在于,所述长度标识为0;或者,
所述字段长度标识为1,且所述目标消息头中第17个比特位至第32个比特位的值为所述第二L2TP消息的消息长度。
6.根据权利要求4或5所述的方法,其特征在于,所述偏移量标识为0;或者,
所述偏移量标识为1,且所述目标消息头中第97个比特位至第112个比特位的值为有效载荷数据的偏移字节数,从第113个比特位开始的第一预设数量个比特位的值设置为有效载荷数据的偏移字节的长度。
7.根据权利要求4或5所述的方法,其特征在于,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值,所述目标消息头中第81个比特位至第96个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值加一后得到的值。
8.根据权利要求7所述的方法,其特征在于,若所述第二字段后的第9个比特位至第33个比特位的值大于所述目标消息头中第65个比特位至第80个比特位所能表达的第一最大值时,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值除以所述第一最大值的余数,所述目标消息头中第81个比特位至第96个比特位的值为所述余数加一后得到的值。
9.根据权利要求8所述的方法,其特征在于,若所述余数加一后得到的值大于所述目标消息头中第81个比特位至第96个比特位所能表达的第二最大值时,则所述目标消息头中第81个比特位至第96个比特位的值均为0。
10.根据权利要求4或5所述的方法,其特征在于,所述L2TP数据消息运行在网络协议IP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第1个比特位至第32个比特位的值确定出的。
11.根据权利要求4或5所述的方法,其特征在于,所述L2TP数据消息运行在用户数据报协议UDP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第64个比特位的值确定出的。
12.根据权利要求2所述的方法,其特征在于,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值用于表示控制连接标识,所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
13.根据权利要求2所述的方法,其特征在于,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在网络协议IP层;所述目标版本标识为第二版本标识;
所述目标消息头中第1个比特位至第32个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第33个比特位开始的第二预设数量个比特位中包括第三字段的值,所述第三字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述第三字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第三字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
14.根据权利要求13所述的方法,其特征在于,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第三字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第三字段后的第9个比特位至第16个比特位的值均为0,所述第三字段后的第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
15.根据权利要求2所述的方法,其特征在于,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在用户数据报协议UDP层;所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第65个比特位开始的第三预设数量个比特位中包括第四字段的值,所述第四字段用于检查所述第一设备接收到的消息的关联会话ID所标识的会话信息;
所述第四字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第四字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
16.根据权利要求15所述的方法,其特征在于,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第四字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第四字段后的第9个比特位至第16个比特位的值均为0,第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
17.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
将所述第二L2TP消息发送给第三设备。
18.一种二层隧道协议L2TP消息的处理装置,其特征在于,包括存储器,收发机,处理器:
存储器,用于存储计算机程序;收发机,用于在所述处理器的控制下收发数据;处理器,用于读取所述存储器中的计算机程序并执行以下操作:
接收第二设备发送的第一L2TP消息;
确定所述第一L2TP消息对应的L2TP版本标识;
若所述L2TP版本标识与目标版本标识不同,则将所述第一L2TP消息转换为目标版本对应的第二L2TP消息。
19.根据权利要求18所述的装置,其特征在于,所述处理器,具体用于:
根据所述第一L2TP消息的消息头,生成目标消息头;
将所述第一L2TP消息的消息体中第一字段的第1个比特位设置为0,得到目标消息体;
根据所述目标消息头和所述目标消息体,生成所述第二L2TP消息。
20.根据权利要求19所述的装置,其特征在于,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第一版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP控制消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识,所述第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中的第33个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
21.根据权利要求19所述的装置,其特征在于,所述第一L2TP消息为L2TP数据消息,所述目标版本标识为第一版本标识;
所述目标消息头中第1个比特位的值为0,第2个比特位的值为所述L2TP数据消息的长度标识;
所述目标消息头中第5个比特位的值为所述L2TP数据消息的消息头中第二字段后的第2个比特位的值,其中,所述第二字段用于检查所述装置接收到的消息的关联会话ID所标识的会话信息;
所述目标消息头中第7个比特位的值为偏移量标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第一版本标识;
所述目标消息头中第33个比特位至第48个比特位的值用于表示所述L2TP数据消息对应的隧道标识,第49个比特位至第64个比特位的值用于表示所述L2TP控制消息对应的会话标识;
第65个比特位至第80个比特位的值为所述L2TP数据消息的序列号,第81个比特位至第96个比特位的值为所述L2TP数据消息的下一个L2TP数据消息的序列号。
22.根据权利要求21所述的装置,其特征在于,所述长度标识为0;或者,
所述字段长度标识为1,且所述目标消息头中第17个比特位至第32个比特位的值为所述第二L2TP消息的消息长度。
23.根据权利要求21或22所述的装置,其特征在于,所述偏移量标识为0;或者,
所述偏移量标识为1,且所述目标消息头中第97个比特位至第112个比特位的值为有效载荷数据的偏移字节数,从第113个比特位开始的第一预设数量个比特位的值设置为有效载荷数据的偏移字节的长度。
24.根据权利要求21或22所述的装置,其特征在于,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值,所述目标消息头中第81个比特位至第96个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值加一后得到的值。
25.根据权利要求24所述的装置,其特征在于,若所述第二字段后的第9个比特位至第33个比特位的值大于所述目标消息头中第65个比特位至第80个比特位所能表达的第一最大值时,所述目标消息头中第65个比特位至第80个比特位的值为所述第二字段后的第9个比特位至第33个比特位的值除以所述第一最大值的余数,所述目标消息头中第81个比特位至第96个比特位的值为所述余数加一后得到的值。
26.根据权利要求25所述的装置,其特征在于,若所述余数加一后得到的值大于所述目标消息头中第81个比特位至第96个比特位所能表达的第二最大值时,则所述目标消息头中第81个比特位至第96个比特位的值均为0。
27.根据权利要求21或22所述的装置,其特征在于,所述L2TP数据消息运行在网络协议IP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第1个比特位至第32个比特位的值确定出的。
28.根据权利要求21或22所述的装置,其特征在于,所述L2TP数据消息运行在用户数据报协议UDP层;
所述目标消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第64个比特位的值确定出的。
29.根据权利要求19所述的装置,其特征在于,所述第一L2TP消息为L2TP控制消息,所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值用于表示控制连接标识,所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP控制消息的消息头中第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中除所述第13个比特位至第16个比特位,以及第33个比特位至第64个比特位之外的其他比特位的值,与所述L2TP控制消息的消息头中对应比特位的值相同。
30.根据权利要求19所述的装置,其特征在于,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在网络协议IP层;所述目标版本标识为第二版本标识;
所述目标消息头中第1个比特位至第32个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第33个比特位开始的第二预设数量个比特位中包括第三字段的值,所述第三字段用于检查所述装置接收到的消息的关联会话ID所标识的会话信息;
所述第三字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第三字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
31.根据权利要求30所述的装置,其特征在于,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第三字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第三字段后的第9个比特位至第16个比特位的值均为0,所述第三字段后的第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
32.根据权利要求19所述的装置,其特征在于,所述第一L2TP消息为L2TP数据消息,所述L2TP数据消息运行在用户数据报协议UDP层;所述目标版本标识为第二版本标识;
所述目标消息头中第13个比特位至第16个比特位的值为所述第二版本标识;
所述目标消息头中第33个比特位至第64个比特位的值为根据所述L2TP数据消息的消息头中的第33个比特位至第48个比特位以及第49个比特位至第64个比特位的值确定出的;
所述目标消息头中从第65个比特位开始的第三预设数量个比特位中包括第四字段的值,所述第四字段用于检查所述装置接收到的消息的关联会话ID所标识的会话信息;
所述第四字段后的第2个比特位的值为所述L2TP数据消息的消息头中第5个比特位的值;所述第四字段后的第9个比特位至第33个比特位的值表示所述L2TP数据消息的序列号。
33.根据权利要求32所述的装置,其特征在于,若所述L2TP数据消息的消息头中第5个比特位的值为0,则所述第四字段后的第9个比特位至第33个比特位的值均为0,或者;
若所述L2TP数据消息的消息头中第5个比特位的值为1,则所述第四字段后的第9个比特位至第16个比特位的值均为0,第17个比特位至第32个比特位的值为所述L2TP数据消息的消息头中第65个比特位至第80个比特位的值。
34.根据权利要求18-22任一项所述的装置,其特征在于,所述处理器,具体用于:
将所述第二L2TP消息发送给第三设备。
35.一种L2TP消息的处理装置,其特征在于,包括:
接收单元,用于接收第二设备发送的第一L2TP消息;
处理单元,用于确定所述第一L2TP消息对应的L2TP版本标识;
所述处理单元,还用于在所述L2TP版本标识与目标版本标识不同时,将所述第一L2TP消息转换为目标版本对应的第二L2TP消息。
36.一种处理器可读存储介质,其特征在于,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行权利要求1至17任一项所述的方法。
37.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至17任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110018854.2A CN114793187B (zh) | 2021-01-07 | 2021-01-07 | L2tp消息的处理方法、装置及存储介质 |
PCT/CN2021/135163 WO2022148190A1 (zh) | 2021-01-07 | 2021-12-02 | L2tp消息的处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110018854.2A CN114793187B (zh) | 2021-01-07 | 2021-01-07 | L2tp消息的处理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114793187A true CN114793187A (zh) | 2022-07-26 |
CN114793187B CN114793187B (zh) | 2024-03-01 |
Family
ID=82357877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110018854.2A Active CN114793187B (zh) | 2021-01-07 | 2021-01-07 | L2tp消息的处理方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114793187B (zh) |
WO (1) | WO2022148190A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024035174A1 (en) * | 2022-08-10 | 2024-02-15 | Samsung Electronics Co., Ltd. | Methods and systems for managing layer two tunneling protocol connection establishment |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634189A (zh) * | 2012-08-29 | 2014-03-12 | 中兴通讯股份有限公司 | L2tp隧道的建立方法及系统 |
CN104954333A (zh) * | 2014-03-28 | 2015-09-30 | 华为技术有限公司 | 一种转发报文的方法、系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102318402B (zh) * | 2010-04-30 | 2014-12-03 | 华为技术有限公司 | 多代移动通信网络中移动性管理流程的处理方法及系统 |
JP6734248B2 (ja) * | 2017-11-24 | 2020-08-05 | 日本電信電話株式会社 | フォーマット変換装置及びフォーマット変換プログラム |
-
2021
- 2021-01-07 CN CN202110018854.2A patent/CN114793187B/zh active Active
- 2021-12-02 WO PCT/CN2021/135163 patent/WO2022148190A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634189A (zh) * | 2012-08-29 | 2014-03-12 | 中兴通讯股份有限公司 | L2tp隧道的建立方法及系统 |
CN104954333A (zh) * | 2014-03-28 | 2015-09-30 | 华为技术有限公司 | 一种转发报文的方法、系统 |
Non-Patent Citations (1)
Title |
---|
M. KELKAR 等: "PPP over L2TP Tunnel Switching\ndraft-ietf-l2tpext-tunnel-switching-06.txt", IETF, pages 4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024035174A1 (en) * | 2022-08-10 | 2024-02-15 | Samsung Electronics Co., Ltd. | Methods and systems for managing layer two tunneling protocol connection establishment |
Also Published As
Publication number | Publication date |
---|---|
CN114793187B (zh) | 2024-03-01 |
WO2022148190A1 (zh) | 2022-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2019537379A (ja) | 符号化方式判定方法および装置 | |
CN114727397A (zh) | 模式指示方法、终端设备及网络设备 | |
CN114071564A (zh) | 用户终端与网络进行通信的方法、终端、网络设备及装置 | |
CN114071805A (zh) | 业务处理方法、信息指示方法、终端和网络设备 | |
CN114390557A (zh) | 数据传输控制方法、装置及存储介质 | |
CN111107591B (zh) | 一种进行切换的方法及设备 | |
CN114793187A (zh) | L2tp消息的处理方法、装置及存储介质 | |
WO2019090770A1 (zh) | 切换过程中确定核心网类型的方法、终端设备、接入网设备和核心网设备 | |
JP6818774B2 (ja) | 通信方法及び通信装置 | |
CN114827920A (zh) | 一种通信方法、装置、设备和可读存储介质 | |
CN114390619A (zh) | 传输方法及设备 | |
US11064503B2 (en) | Method and apparatus for transmitting control information | |
WO2022156439A1 (zh) | 信息传输方法、装置、基站及介质 | |
WO2022152092A1 (zh) | 数据传输控制方法和装置 | |
CN114390699A (zh) | 状态参量处理方法及装置、网络设备 | |
CN114640714A (zh) | 一种4g和5g共站的方法、5g基站及存储介质 | |
CN115086981A (zh) | 信息处理方法、装置及存储介质 | |
EP4195513A1 (en) | Data compression method and apparatus, and storage medium | |
WO2022218075A1 (zh) | Uci的级联确定方法、装置、终端及网络侧设备 | |
US20240178984A1 (en) | Method and apparatus for reducing latency, terminal and device | |
EP4255073A1 (en) | Wireless communication method, terminal device, and network device | |
WO2019047211A1 (zh) | 用于传输数据的方法和设备 | |
EP4319014A1 (en) | Method and apparatus for reducing delay, terminal, and device | |
KR20240029783A (ko) | 사용자 단말 접속 방법, 장치, 사용자 단말 및 저장매체 | |
CN115707151A (zh) | 状态转换方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |