WO2021204260A1 - 一种基于网际协议版本IPv6的无线网络通信方法和通信设备 - Google Patents

一种基于网际协议版本IPv6的无线网络通信方法和通信设备 Download PDF

Info

Publication number
WO2021204260A1
WO2021204260A1 PCT/CN2021/086217 CN2021086217W WO2021204260A1 WO 2021204260 A1 WO2021204260 A1 WO 2021204260A1 CN 2021086217 W CN2021086217 W CN 2021086217W WO 2021204260 A1 WO2021204260 A1 WO 2021204260A1
Authority
WO
WIPO (PCT)
Prior art keywords
field
message
flow label
plaintext
ipv6
Prior art date
Application number
PCT/CN2021/086217
Other languages
English (en)
French (fr)
Inventor
贺奇
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to KR1020227037606A priority Critical patent/KR20220160648A/ko
Priority to EP21785520.4A priority patent/EP4120731A4/en
Publication of WO2021204260A1 publication Critical patent/WO2021204260A1/zh
Priority to US18/045,145 priority patent/US20230074712A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/08Load balancing or load distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0252Traffic management, e.g. flow control or congestion control per individual bearer or channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0252Traffic management, e.g. flow control or congestion control per individual bearer or channel
    • H04W28/0263Traffic management, e.g. flow control or congestion control per individual bearer or channel involving mapping traffic to individual bearers or channels, e.g. traffic flow template [TFT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/659Internet protocol version 6 [IPv6] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels

Definitions

  • This application relates to the field of communication, and more specifically, to a wireless network communication method and communication device based on the Internet Protocol version IPv6.
  • IPv4 Internet Protocol version 4
  • IPv6 Internet Protocol version 6
  • This application provides a wireless network communication method and communication equipment based on the Internet Protocol version IPv6.
  • the communication method can realize that the IPv6 packets of the same bearer can be transmitted on the same path, and the IPv6 packets of different bearers can be hashed in Transmission through different transmission paths to achieve load balancing.
  • a communication method based on the Internet Protocol version IPv6 is provided.
  • the method can be executed by an access network device or a chip in an access network device, or the method can be executed by a core network device or a chip in a core network device.
  • the method includes: determining the transmission path of the plaintext IPv6 message according to the tunnel endpoint identifier TEID field in the plaintext IPv6 message, the TEID field is used to indicate the bearer to which the plaintext IPv6 message belongs; State the transmission path of the plaintext IPv6 message to transmit the plaintext IPv6 message.
  • the transmission path of the plaintext IPv6 message is determined according to the TEID field of the tunnel endpoint identifier in the plaintext IPv6 message.
  • the TEID field of the tunnel endpoint identifier is the bearer identifier. Each bearer TEID field is different. Therefore, according to the plaintext IPv6 message
  • the TEID field of the tunnel endpoint identifier in the inside determines the transmission path of the plaintext IPv6 packet, which can ensure that the IPv6 packets of the same bearer can be transmitted on the same path, or the IPv6 packets of different bearers can be hashed and transmitted on different transmission paths. , To achieve load balancing.
  • the determining the transmission path of the plaintext IPv6 message according to the tunnel endpoint identifier TEID field in the plaintext IPv6 message includes: according to the plaintext IPv6 message The TEID field of the tunnel endpoint identifier is filled in the Flow Label field of the plaintext IPv6 packet; the first hash value is obtained by hash calculation according to the filled Flow Label field and the first parameter involved in the hash calculation, so The SIP and the DIP are SIP and DIP of the plaintext IPv6 message; the transmission path of the plaintext IPv6 message is determined according to the first hash value.
  • the filling of the Flow Label field of the plaintext IPv6 packet according to the TEID field of the tunnel endpoint identifier of the plaintext IPv6 packet includes: adding the The N bits of the TEID field are filled in the N bits of the Flow Label field, and the Flow Label field includes N bits; or, the TEID field and the first parameter are hashed to obtain the second hash value, and the The N bits of the second hash value are filled in the N bits of the Flow Label field, and the Flow Label field includes N bits.
  • the Flow Label field of the plaintext IPv6 message includes a first field and a second field
  • the TEID field is based on the tunnel endpoint identifier of the plaintext IPv6 message
  • Filling the Flow Label field of the flow label of the plaintext IPv6 message includes: intercepting the TEID field with the same length as the first or second field of the Flow Label field, and filling the first field of the Flow Label Or the second field; or, hash the TEID field and the first parameter to obtain a second hash value, and intercept the second hash value with the first field or the second field of the Flow Label field For parts with the same length, fill the first field or the second field of the Flow Label.
  • the method further includes: according to each data code of the multiple data chips The FlowLabel field of the slice, the source address SIP and the destination address DIP are hashed to obtain the third hash value.
  • the SIP and the DIP are the SIP and DIP of each data chip, where each data The content of the Flow Label field of the chip is the same as the content of the Flow Label field of the plaintext IPv6 message; the transmission path of each data chip is determined according to the third hash value.
  • the method further includes: when the plaintext IPv6 message needs to be encrypted for transmission, according to the filled flow label FlowLabel field of the plaintext IPv6 message Fill in the Flow Label field of the ciphertext IPv6 message, the ciphertext IPv6 message is a message encrypted by the plaintext IPv6 message; according to the FlowLabel field of the ciphertext IPv6 message after filling and the hash calculation part Performing a hash calculation with two parameters to obtain a fourth hash value; and determining the transmission path of the ciphertext IPv6 message according to the fourth hash value.
  • the filling of the Flow Label field of the ciphertext IPv6 packet according to the filled flow label Flow Label field of the plaintext IPv6 packet includes: the secret
  • the content of the Flow Label field of the IPv6 message is the same as the content of the Flow Label field of the plaintext IPv6 message; or, the Flow Label field of the plaintext IPv6 message and the second parameter are combined with each other. It is hoped that a fifth hash value is obtained by calculation, and the Flow Label field of the ciphertext IPv6 packet is filled according to the fifth hash value.
  • the Flow Label field of the cipher text message includes a third field and a fourth field, and the cipher text is filled in according to the fifth hash value
  • the Flow Label field of an IPv6 message includes: N bits of the Flow Label field of the ciphertext IPv6 message are filled with N bits of the fifth hash value, and the Flow Label field includes N bits; or
  • the fifth hash value intercepts the part with the same length as the third field or the fourth field of the Flow Label field of the ciphertext IPv6 message, and fills the third field of the Flow Label field of the ciphertext IPv6 message, or The fourth field.
  • the method further includes: filling the Flow Label field of the ciphertext IPv6 packet according to the tunnel endpoint identifier TEID field in the plaintext IPv4 packet, and the secret
  • the IPv6 message is the encrypted message of the plaintext message
  • the sixth hash value is obtained by hash calculation according to the Flow Label field of the filled ciphertext IPv6 message and the second parameter; according to the sixth The hash value determines the transmission path of the ciphertext IPv6 message.
  • the filling of the Flow Label field of the ciphertext IPv6 packet according to the TEID field of the tunnel endpoint identifier in the plaintext IPv4 packet includes: adding the TEID field Fill in the N bits of the Flow Label field of the ciphertext IPv6 message, and the Flow Label field of the ciphertext IPv6 message includes N bits; or, hash the TEID field and the second parameter The seventh hash value is calculated, and the N bits of the seventh hash value are filled into the N bits of the Flow Label field of the ciphertext IPv6 message, and the Flow Label field of the ciphertext IPv6 message includes N bits .
  • the Flow Label field of the ciphertext IPv6 message includes a fifth field and a sixth field
  • the TEID field is based on the tunnel endpoint identifier in the plaintext IPv6 message
  • Filling the Flow Label field of the ciphertext IPv6 message includes: intercepting the TEID field with the same length as the fifth or sixth field of the FlowLabel field of the ciphertext IPv6 message, and filling the secret The fifth field or the sixth field of the Flow Label of the IPv6 message; or, hash the TEID field and the second parameter to obtain the eighth hash value, and intercept the eighth hash value with the The fifth field or the sixth field of the Flow Label field of the ciphertext IPv6 packet with the same length is filled in the fifth field or the sixth field of the Flow Label field of the ciphertext IPv6 packet.
  • the method further includes: dividing the plaintext IPv4 message into multiple chips; Encrypt each of the multiple chips to obtain the ciphertext message of each chip; fill in the ciphertext of each chip according to the TEID field of the tunnel endpoint identifier in the plaintext Ipv4 message The Flow Label field of the message message; the ninth hash value is obtained by hash calculation according to the Flow Label field and the second parameter of the cipher message message; each ciphertext code is determined according to the ninth hash value The transmission path of the slice.
  • the filling of the Flow Label field of the cipher text message of each chip according to the tunnel endpoint identifier TEID field in the plain text IPv4 message includes : Fill the N bits of the TEID field into the N bits of the Flow Label field of the cipher text message of each chip, and the Flow Label field of the cipher text message of each chip includes N bits; or , Hashing the TEID field and the second parameter to obtain the tenth hash value, and filling the N bits of the tenth hash value into the Flow Label field of the cipher text message of each chip N bits, the Flow Label field of the cipher text message of each chip includes N bits.
  • the Flow Label field of the ciphertext message of each chip of the plaintext IPv4 message includes a seventh field and an eighth field
  • the Filling the Flow Label field of the cipher text message of each chip in the TEID field of the tunnel endpoint identifier in the plain text message includes: intercepting the TEID field and the value of the cipher text message of each chip Fill the seventh or eighth field of the Flow Label field with the same length of the seventh field or eighth field of the cipher text message of each chip; or, combine the TEID field with the first A parameter is hashed to obtain a ninth hash value, and the ninth hash value is intercepted with the same length as the seventh field or the eighth field of the Flow Label field of the cipher text message of each chip , Filling the seventh field or the eighth field of the Flow Label field of the cipher text message of each chip.
  • the first parameter includes at least one of the following parameters: SIP of the plaintext IPv6 message, DIP of the plaintext IPv6 message, and Next Header of the plaintext IPv6 message, the source port SPt of the plaintext IPv6 message, and the destination port DPt of the plaintext IPv6 message.
  • the second parameter includes at least one of the following parameters: SIP of the ciphertext message, DIP of the ciphertext message, and Next Header of the ciphertext message.
  • a communication method based on the Internet Protocol version IPv6 is provided, and the method can be executed by a security gateway device, or can be executed by a chip in the security gateway device.
  • the method includes: receiving a plaintext message sent by a core network device; filling the Flow Label field of a ciphertext IPv6 message according to the TEID field of the tunnel endpoint identifier in the plaintext message, and the ciphertext IPv6 message is the The encrypted message of the plaintext message; the first hash value is obtained by hash calculation according to the Flow Label field of the filled ciphertext IPv6 message and the first parameter involved in the hash calculation; according to the first hash value Determine the transmission path of the ciphertext IPv6 message.
  • the plaintext message is an IPv6 message or an IPv4 message
  • the ciphertext IPv6 message is filled in according to the TEID field of the tunnel endpoint identifier in the plaintext message
  • the Flow Label field of the message includes: filling N bits of the TEID field into the Flow Label field of the ciphertext IPv6 message, and the Flow Label field of the ciphertext IPv6 message includes N bits; Alternatively, perform a hash calculation on the TEID field and the first parameter to obtain a second hash value, and fill N bits of the second hash value into N in the Flow Label field of the ciphertext IPv6 packet.
  • bit the Flow Label field of the ciphertext IPv6 packet includes N bits.
  • the plaintext message is an IPv6 message or an IPv4 message
  • the Flow Label field of the ciphertext IPv6 message includes a first field and a second field
  • the filling of the Flow Label field of the ciphertext IPv6 message according to the TEID field of the tunnel endpoint identifier in the plaintext message includes: intercepting the TEID field and the first part of the FlowLabel field of the ciphertext IPv6 message.
  • the first field or the second field of the Flow Label of the ciphertext IPv6 packet is filled in a field or a part of the second field with the same length; or, the TEID field and the first parameter are hashed to obtain the first field
  • Three hash values, the third hash value is intercepted and the part of the same length as the first field or the second field of the FlowLabel field of the ciphertext IPv6 packet is filled in the FlowLabel of the ciphertext IPv6 packet.
  • the plaintext message is an IPv6 message
  • the flow label of the ciphertext IPv6 message is filled in according to the TEID field of the tunnel endpoint identifier in the plaintext message
  • the Flow Label field includes: filling the flow label Flow Label field of the plaintext IPv6 packet according to the tunnel endpoint identification TEID field of the plaintext IPv6 packet; copying the filled flow label Flow Label field of the plaintext IPv6 packet The Flow Label field of the ciphertext IPv6 packet.
  • the plaintext message is an IPv6 message
  • the method further includes: according to the plaintext IPv6 The TEID field of the tunnel endpoint identifier of the message is filled in the Flow Label field of the plaintext IPv6 message; the plaintext IPv6 message after the FlowLabel field is filled is divided into multiple chips.
  • Each chip contains the filled Flow Label field; the Flow Label field of each chip is copied to the Flow Label field of the encrypted cipher text message of each chip; according to the cipher text message Perform hash calculation on the FlowLabel field of the text and the first parameter to obtain a fourth hash value; and determine the transmission path of each cipher text message according to the fourth hash value.
  • the filling of the Flow Label field of the plaintext IPv6 packet according to the TEID field of the tunnel endpoint identifier of the plaintext IPv6 packet includes: The N bits of the TEID field are filled with the N bits of the Flow Label field of the plaintext IPv6 message, and the Flow Label field of the plaintext IPv6 message includes N bits; or, the TEID field and the second parameter are hashed The fifth hash value is obtained, and the N bits of the fifth hash value are filled into the N bits of the Flow Label field of the plaintext IPv6 message, and the Flow Label field of the plaintext IPv6 message includes N bits.
  • the Flow Label field of the plaintext IPv6 message includes a first field and a second field, and the TEID field according to the tunnel endpoint identifier of the plaintext IPv6 message
  • Filling the Flow Label field of the plaintext IPv6 packet includes: intercepting the TEID field with the same length as the first field or the second field of the FlowLabel field of the plaintext IPv6 packet, and filling the plaintext The first field or the second field of the FlowLabel of the IPv6 message; or, hash the TEID field and the second parameter to obtain a sixth hash value, and intercept the sixth hash value with the plaintext
  • the first field or the same length part of the second field of the Flow Label field of the IPv6 packet is filled with the first field or the second field of the Flow Label of the plaintext IPv6 packet.
  • the plaintext message is an IPv4 message or an IPv6 message
  • the method further includes: The plaintext message is divided into a plurality of chips; each of the plurality of chips is encrypted to obtain the ciphertext message of each chip; according to the tunnel endpoint identifier in the plaintext message
  • the TEID field fills the Flow Label field of the cipher text message of each chip; performs hash calculation according to the Flow Label field of the cipher text message and the first parameter to obtain the seventh hash value;
  • the seventh hash value determines the transmission path of each ciphertext message.
  • the filling of the Flow Label field of the cipher text message of each chip according to the TEID field of the tunnel endpoint identifier in the plain text message includes: Fill the N bits of the TEID field into the N bits of the Flow Label field of the cipher text message of each chip, and the Flow Label field of the cipher text message of each chip includes N bits; or Performing hash calculation on the TEID field and the first parameter to obtain an eighth hash value,
  • the Flow Label field of the ciphertext message of each chip includes a first field and a second field
  • the The tunnel endpoint identifier TEID field fills the Flow Label field of the cipher text message of each chip, including: intercepting the TEID field with the first field of the Flow Label field of the cipher text message of each chip Or the same length part of the second field is filled in the first field or the second field of the Flow Label field of the ciphertext message of each chip; or, the TEID field and the first parameter are hashed to obtain
  • the ninth hash value is to intercept the ninth hash value with the same length as the first field or the second field of the Flow Label field of the cipher text message of each chip, and fill in each code The first field or the second field of the Flow Label field of the ciphertext message of the slice.
  • the first parameter includes at least one of the following parameters: SIP of the ciphertext message, DIP of the ciphertext message, and Next Header of the ciphertext message.
  • the second parameter includes at least one of the following parameters: SIP of the plaintext message, DIP of the plaintext message, and the plaintext message Next Header of the message, the source port SPt of the plaintext message, and the destination port DPt of the plaintext message.
  • a communication device including: a processing unit, configured to determine the transmission path of the plaintext IPv6 message according to the tunnel endpoint identifier TEID field in the plaintext IPv6 message; State the transmission path of the plaintext IPv6 message to transmit the plaintext IPv6 message.
  • the processing unit is specifically configured to: fill in the Flow Label field of the plaintext IPv6 packet according to the tunnel endpoint identifier TEID field of the plaintext IPv6 packet Perform a hash calculation according to the filled Flow Label field and the first parameter involved in the hash calculation to obtain the first hash value; determine the transmission path of the plaintext IPv6 packet according to the first hash value.
  • the processing unit is specifically configured to: fill the N bits of the TEID field into the N bits of the Flow Label field, and the Flow Label field includes N bits. bit; or, hash the TEID field and the first parameter to obtain the second hash value, and fill the N bits of the second hash value into the N bits of the Flow Label field, the Flow Label The field includes N bits.
  • the Flow Label field of the plaintext IPv6 message includes a first field and a second field
  • the processing unit is specifically configured to include: using the TEID field Intercept the part with the same length as the first field or the second field of the Flow Label field, and fill the first field or the second field of the Flow Label; or, perform a hash calculation on the TEID field and the first parameter to obtain
  • the second hash value is a part of the second hash value that is the same length as the first field or the second field of the Flow Label field, and the first field or the second field of the Flow Label is filled.
  • the processing unit when the plaintext IPv6 message is divided into multiple data chips, the processing unit is further configured to: according to each of the multiple data chips The Flow Label field of the data chip and the first parameter are hashed to obtain a third hash value, where the content of the Flow Label field of each data chip and the Flow Label field of the plaintext IPv6 packet are The content is the same; the transmission path of each data chip is determined according to the third hash value.
  • the processing unit is further configured to: when the plaintext IPv6 message needs to be encrypted for transmission, according to the filled flow label Flow of the plaintext IPv6 message
  • the Label field is filled with the Flow Label field of the ciphertext IPv6 message, and the ciphertext IPv6 message is the encrypted message of the plaintext IPv6 message; according to the Flow Label field of the ciphertext IPv6 message after filling and participating in the hash calculation
  • the second parameter of the ciphertext IPv6 packet is hashed to obtain a fourth hash value, and the SIP and the DIP are the SIP and DIP of the ciphertext IPv6 packet; the ciphertext IPv6 packet is determined according to the fourth hash value
  • the transmission path of the text is further configured to: when the plaintext IPv6 message needs to be encrypted for transmission, according to the filled flow label Flow of the plaintext IPv6 message
  • the Label field is filled with the Flow Label field of the ciphertext IPv6 message, and
  • the processing unit is further configured to: copy the Flow Label field of the plaintext IPv6 message to the FlowLabel field of the ciphertext IPv6 message Or, hash the flow label Flow Label field and the second parameter of the plaintext IPv6 message to obtain a fifth hash value, and fill the FlowLabel of the ciphertext IPv6 message according to the fifth hash value Field.
  • the FlowLabel field of the ciphertext message includes a third field and a fourth field
  • the processing unit is further configured to include:
  • the N bits of the hash value are filled in the N bits of the Flow Label field of the ciphertext IPv6 packet, and the Flow Label field includes N bits; or, the fifth hash value is intercepted and the ciphertext IPv6 packet
  • the third field or the fourth field of the same length part of the Flow Label field of the message is filled in the third field or the fourth field of the Flow Label field of the ciphertext IPv6 message.
  • the processing unit is further configured to: fill in the Flow Label field of the ciphertext IPv6 packet according to the tunnel endpoint identifier TEID field in the plaintext IPv4 packet, so The ciphertext IPv6 message is a message after the plaintext message is encrypted; the processing unit is further configured to perform a hash calculation according to the Flow Label field of the filled ciphertext IPv6 message and the second parameter parameter The sixth hash value; the processing unit is further configured to determine the transmission path of the ciphertext IPv6 packet according to the sixth hash value.
  • the processing unit is further configured to: fill the N bits of the TEID field into the N bits of the Flow Label field of the ciphertext IPv6 packet, so The Flow Label field of the ciphertext IPv6 message includes N bits; or, hashing the TEID field and the second parameter to obtain the seventh hash value,
  • the N bits of the seventh hash value are filled into the N bits of the Flow Label field of the ciphertext IPv6 packet, and the Flow Label field of the ciphertext IPv6 packet includes N bits.
  • the Flow Label field of the ciphertext IPv6 message includes a fifth field and a sixth field
  • the processing unit is further configured to: intercept the TEID field
  • the fifth field or the sixth field of the Flow Label field of the ciphertext IPv6 message is filled with the fifth field or the sixth field of the Flow Label field of the ciphertext IPv6 message; or
  • the TEID field and the second parameter are hashed to obtain the eighth hash value, and the eighth hash value is truncated to the part with the same length as the fifth field or the sixth field of the Flow Label field of the ciphertext IPv6 packet , Filling the fifth field or the sixth field of the Flow Label of the ciphertext IPv6 packet.
  • the processing unit when the plaintext IPv4 message is divided into multiple chips, is further configured to: divide the plaintext IPv4 message into multiple codes Chip; encrypt each of the multiple chips to obtain the ciphertext message of each chip; fill each chip according to the TEID field of the tunnel endpoint identifier in the plaintext Ipv4 message
  • the Flow Label field of the cipher text message; the ninth hash value is obtained by hash calculation according to the Flow Label field and the second parameter of the cipher text message; the ninth hash value is determined according to the ninth hash value.
  • the transmission path of the text chip when the plaintext IPv4 message is divided into multiple chips, the processing unit is further configured to: divide the plaintext IPv4 message into multiple codes Chip; encrypt each of the multiple chips to obtain the ciphertext message of each chip; fill each chip according to the TEID field of the tunnel endpoint identifier in the plaintext Ipv4 message
  • the Flow Label field of the cipher text message; the ninth hash value is
  • the processing unit is further configured to: fill the N bits of the TEID field into the Flow Label field of the cipher text message of each chip.
  • N bits, the Flow Label field of the cipher text message of each chip includes N bits; or, hash calculation of the TEID field and the second parameter to obtain the tenth hash value, and the tenth hash value
  • the desired N bits are filled in the N bits of the Flow Label field of the cipher text message of each chip, and the Flow Label field of the cipher text message of each chip includes N bits.
  • the Flow Label field of the ciphertext message of each chip includes a seventh field and an eighth field
  • the processing unit is further configured to:
  • the TEID field intercepts the part with the same length as the seventh field or the eighth field of the Flow Label field of the cipher text message of each chip, and fills the part of the Flow Label field of the cipher text message of each chip.
  • the seventh field or the eighth field of the Flow Label field of the text is filled with the seventh field or the eighth field of the Flow Label field of the cipher text message of each chip.
  • the second parameter includes at least one of the following parameters: SIP of the plaintext message, DIP of the plaintext message, and the plaintext message Next Header of the message, the source port SPt of the plaintext message, and the destination port DPt of the plaintext message.
  • the second parameter includes at least one of the following parameters: SIP of the ciphertext message, DIP of the ciphertext message, and Next Header of the ciphertext message.
  • a security gateway device including: a transceiving unit, configured to receive a plaintext message sent by a core network device; and a processing unit, configured to fill a ciphertext according to the TEID field of the tunnel endpoint identifier in the plaintext message
  • the Flow Label field of the IPv6 message, the ciphertext IPv6 message is a message encrypted by the plaintext message; the processing unit is also used to fill in the ciphertext IPv6 message according to the Flow Label field and The first parameter involved in the hash calculation is hashed to obtain the first hash value; the processing unit is further configured to determine the transmission path of the ciphertext IPv6 packet according to the first hash value.
  • the plaintext message is an IPv6 message or an IPv4 message
  • the processing unit is configured to: fill the N bits of the TEID field in the secret N bits of the Flow Label field of the IPv6 message, the Flow Label field of the ciphertext IPv6 message includes N bits; alternatively, the TEID field and the first parameter are hashed to obtain the second hash value, and the The N bits of the second hash value are filled with the N bits of the Flow Label field of the ciphertext IPv6 packet, and the Flow Label field of the ciphertext IPv6 packet includes N bits.
  • the plaintext message is an IPv6 message or IPv4
  • the Flow Label field of the ciphertext IPv6 message includes a first field and a second field.
  • the processing unit is configured to intercept the TEID field with the same length as the first field or the second field of the FlowLabel field of the ciphertext IPv6 packet, and fill the first field of the FlowLabel field of the ciphertext IPv6 packet.
  • the plaintext message is an IPv6 message
  • the processing unit is configured to:
  • the plaintext message is an IPv6 message
  • the processing unit is further configured to:
  • the TEID field of the tunnel endpoint identifier of the plaintext IPv6 message is filled with the Flow Label field of the plaintext IPv6 message;
  • the plaintext IPv6 message after the FlowLabel field is filled is divided into multiple chips, the multiple chips
  • Each chip in the chip includes the Filled Flow Label field;
  • the Flow Label field of each chip is copied to the Flow Label field of the encrypted cipher text message of each chip;
  • the processing unit is configured to: fill the N bits of the TEID field into the N bits of the Flow Label field of the plaintext IPv6 packet, and the plaintext
  • the Flow Label field of the IPv6 message includes N bits; or, hash calculation of the TEID field and the second parameter to obtain a fifth hash value, and fill the N bits of the fifth hash value into the plaintext IPv6
  • the N bits of the Flow Label field of the message, and the Flow Label field of the plaintext IPv6 message includes N bits.
  • the Flow Label field of the plaintext IPv6 message includes a first field and a second field
  • the processing unit is configured to: intercept the TEID field and State the part of the same length of the first field or the second field of the Flow Label field of the plaintext IPv6 message, and fill the first field or the second field of the Flow Label field of the plaintext IPv6 message; or, combine the TEID field with the first field Perform a hash calculation with two parameters to obtain a sixth hash value, and intercept the sixth hash value with the same length as the first field or the second field of the Flow Label field of the plaintext IPv6 message, and fill the plaintext The first field or the second field of the Flow Label of the IPv6 packet.
  • the plaintext message is an IPv4 message or an IPv6 message
  • the processing unit is further configured to : Divide the plaintext message into a plurality of chips; encrypt each of the plurality of chips to obtain the ciphertext message of each chip; according to the tunnel in the plaintext message
  • the endpoint identifier TEID field fills the Flow Label field of the cipher text message of each chip; performs a hash calculation according to the Flow Label field of the cipher text message and the first parameter to obtain the seventh hash value;
  • the seventh hash value determines the transmission path of each ciphertext message.
  • the processing unit is further configured to: fill the N bits of the TEID field into the Flow Label field of the cipher text message of each chip.
  • N bit the Flow Label field of the cipher text message of each chip includes N bits; or, hash calculation of the TEID field and the first parameter to obtain the eighth hash value, and the eighth hash value
  • the desired N bits are filled in the N bits of the Flow Label field of the cipher text message of each chip, and the Flow Label field of the cipher text message of each chip includes N bits.
  • the Flow Label field of the ciphertext message of each chip includes a first field and a second field
  • the processing unit is further configured to:
  • the TEID field intercepts the part with the same length as the first field or the second field of the Flow Label field of the cipher text message of each chip, and fills the part of the Flow Label field of the cipher text message of each chip.
  • the first field or the second field of the same length part of the Flow Label field of the text is filled with the first field or the second field of the Flow Label field of the cipher text message of each chip.
  • the first parameter includes at least one of the following parameters: SIP of the ciphertext message, DIP of the ciphertext message, and Next Header of the ciphertext message.
  • the second parameter includes at least one of the following parameters: SIP of the plaintext message, DIP of the plaintext message, and the plaintext message The source port SPt of the message, the destination port DPt of the plaintext message, and the Next Header of the plaintext message.
  • a communication device including a processor connected to a memory, the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory, so that the device executes the above-mentioned first A method in one aspect or any possible implementation of the first aspect, or a method in the second aspect or any possible implementation of the second aspect.
  • a computer-readable storage medium stores a computer program. When the computer program is run, it implements the first aspect or any possible implementation of the first aspect. Method, or the second aspect or any possible implementation of the second aspect.
  • a chip which is characterized by comprising a processor and an interface; the processor is used to read instructions to execute the method in the first aspect or any possible implementation of the first aspect, or the second aspect Aspect or any possible implementation of the second aspect.
  • the chip may further include a memory in which instructions are stored, and the processor is configured to execute instructions stored in the memory or instructions derived from other sources.
  • a communication system in an eighth aspect, includes a device capable of implementing the methods and various possible design functions of the above-mentioned first aspect and a device capable of implementing the various methods and various possible design functions of the above-mentioned second aspect. Device.
  • Fig. 1 is a schematic diagram of an application scenario of an embodiment of the present application.
  • Fig. 2 is a schematic diagram of an end-to-end load balancing behavior according to an embodiment of the present application.
  • FIG. 3 is a schematic flowchart of data packets of the same session being forwarded on the same path in an embodiment of the present application to ensure that the data packets are not out of order.
  • Fig. 4 is a schematic flowchart of a wireless network communication method based on the Internet Protocol version IPv6 according to an embodiment of the present application.
  • FIG. 5 is a schematic diagram of the basic format of an IPv6 message.
  • Fig. 6a is a schematic diagram of the first chip after fragmentation of an IPv6 packet in an embodiment of the present application.
  • Fig. 6b is a schematic diagram of a second chip after fragmentation of an IPv6 packet in an embodiment of the present application.
  • FIG. 7 is a schematic flowchart of another wireless network communication method based on the Internet Protocol version IPv6 according to an embodiment of the present application.
  • Figure 8a shows a filling method in the IPsec AH encapsulation scenario.
  • Figure 8b shows the filling mode of the IPsec ESP encapsulation scenario.
  • FIG. 9 is a schematic diagram of the basic format of an IPv4 message.
  • FIG. 10 is a schematic diagram of load balancing performed by the Ethernet link aggregation technology in a plaintext scenario in an embodiment of the present application.
  • FIG. 11 is a schematic diagram of load balancing performed by an Ethernet link aggregation technology in a ciphertext scenario according to an embodiment of the present application.
  • FIG. 12 is a schematic diagram of equal-cost routing load balancing in a plaintext scenario according to an embodiment of the present application.
  • FIG. 13 is a schematic diagram for improving reliability by load balancing of equal-cost routing in a plaintext scenario in an embodiment of the present application.
  • FIG. 14 is a schematic block diagram of a communication device according to an embodiment of the present application.
  • FIG. 15 is a schematic structural diagram of an access network device provided by this application.
  • GSM global system for mobile communications
  • CDMA code division multiple access
  • WCDMA broadband code division multiple access
  • GPRS general packet radio service
  • LTE long term evolution
  • LTE frequency division duplex FDD
  • TDD LTE Time division duplex
  • UMTS universal mobile telecommunication system
  • WiMAX worldwide interoperability for microwave access
  • 5G fifth generation
  • the system or new radio (NR) can also be applied to the use of subsequent evolutionary systems, such as the sixth-generation 6G communication system, and even the higher-level seventh-generation 7G communication system.
  • the access network equipment in the embodiments of the present application may be equipment used to communicate with terminal equipment, may be a base station, or an access point, or a network equipment, or may refer to the access network through one or more devices on the air interface.
  • Each sector is a device that communicates with the wireless terminal.
  • the network device can be used to convert received air frames and IP packets into each other, as a router between the wireless terminal and the rest of the access network, where the rest of the access network can include an Internet Protocol (IP) network.
  • IP Internet Protocol
  • the network equipment can also coordinate the attribute management of the air interface.
  • the access network equipment can be a base station (BTS) in Global System of Mobile Communications (GSM) or Code Division Multiple Access (CDMA), or it can be a broadband code division.
  • GSM Global System of Mobile Communications
  • CDMA Code Division Multiple Access
  • the base station (NodeB, NB) in Wideband Code Division Multiple Access (WCDMA) can also be an evolved NodeB (eNB or eNodeB) in an LTE system, or it can be a cloud radio access network (cloud radio).
  • the wireless controller in the access network, CRAN) scenario, or the access device can be a relay station, access point, in-vehicle device, wearable device, and access device in a 5G network or a network device in a future evolved PLMN network, etc. It may be an access point (access point, AP) in a WLAN, or a gNB in a new radio system (new radio, NR) system, and this embodiment of the application is not limited.
  • the network device can also be divided into a control unit (Control Unit, CU) and a data unit (Data Unit, DU). Under a CU, there can be multiple DUs, where each DU and terminal are The measurement report method described in the embodiment of the present application can be used.
  • the difference between the CU-DU separation scenario and the multi-TRP scenario is that the TRP is only a radio frequency unit or an antenna device, and the DU can implement the protocol stack function, for example, the DU can implement the physical layer function.
  • the access network device is a device in an access network (radio access network, RAN), or in other words, a RAN node that connects a terminal device to a wireless network.
  • RAN radio access network
  • the access network device can include: gNB, transmission reception point (TRP), evolved Node B (eNB), radio network controller (radio network controller) , RNC), Node B (Node B, NB), base station controller (BSC), base transceiver station (base transceiver station, BTS), home base station (for example, home evolved NodeB, or home Node B, HNB) ), baseband unit (BBU), or wireless fidelity (Wifi) access point (AP), etc.
  • TRP transmission reception point
  • eNB evolved Node B
  • RNC radio network controller
  • Node B Node B
  • BSC base station controller
  • BTS base transceiver station
  • BTS home base station
  • BBU baseband unit
  • Wifi wireless fidelity
  • the access network equipment provides services for the cell, and the terminal equipment communicates with the access network equipment through the transmission resources (for example, frequency domain resources, or spectrum resources) used by the cell.
  • the cell may be an access network equipment (for example, a base station). ) Corresponding cell.
  • the cell can belong to a macro base station or a base station corresponding to a small cell.
  • the small cell here can include: metro cell, micro cell, pico cell ), femto cells, etc. These small cells have the characteristics of small coverage and low transmit power, and are suitable for providing high-rate data transmission services.
  • the core network device may be connected to the access network device, so that the terminal device can communicate with the core network device through the access network device.
  • the core network equipment may include the following network elements or functions:
  • Access management function Mainly responsible for access and mobility control, including registration management (RM) and connection management (CM), access authentication and access authorization, Reachability management and mobility management, etc.
  • User plane function mainly provides user plane support, including connection points between PDU sessions and data networks, data packet routing and forwarding, data packet inspection and user plane policy execution, processing QoS for the user plane, and downlink data Packet buffering and triggering of downstream data notifications, etc.
  • Packet control function Mainly a policy control function, including support for a unified policy framework to monitor network behavior and provide policy rules for the control plane to execute.
  • Authentication server function (authentication server function, AUSF): Mainly responsible for providing security-related functions, such as authentication, authentication, etc.
  • Unified data management responsible for functions related to user authentication, including: authentication credential processing, user identity processing, contract information management, access authorization, etc.
  • Session Session is the basic unit of business, and a business can consist of one or more Sessions. The important thing is that the messages within a session need to be strictly preserved, and the messages of different sessions do not need to be preserved.
  • the communication term "stream” and the "session” in the embodiments of this application can be equivalent.
  • the streams and sessions mentioned in the embodiments of this application are one-way, and a session in this article can be understood as all triples "hash value" A collection of the same messages.
  • PDN Public Data Network
  • EPS Evolved Packet System
  • PDN connection is a tunnel between UE and PGW
  • Evolved Packet System (EPS) bearer is a smaller tunnel included in PDN connection, and the role of PDN connection Is to achieve IP connectivity.
  • different EPS bearers represent different service qualities.
  • an EPS bearer is established at the same time, which is called the default bearer.
  • the EPS bearer established subsequently is called a dedicated bearer.
  • Data packets in one direction of a bearer have the same TEID value (in the GTP header). If there is only a default bearer, it can be simply considered that a UE corresponds to a bearer.
  • the bearer in this embodiment of the present application may be a 4G bearer or a 5G PDU Session, which will be described as a bearer in the following text.
  • Hash algorithm The mapping rule for mapping binary strings of any length to fixed-length binary strings is called a hash algorithm, also called a hash algorithm, and the binary value obtained after mapping the original data It is called a hash value.
  • Main features of hash algorithm :
  • Fig. 1 shows a schematic diagram of an application scenario 100 of an embodiment of the present application.
  • an access network device 110 and a core network device 120 are included.
  • the access network device 110 works in an evolved universal mobile communication system terrestrial radio access (evolved UMTS terrestrial radio access, E-UTRA) system, or works in an NR system, or works in a next-generation communication system or In other communication systems.
  • E-UTRA evolved universal mobile communication system terrestrial radio access
  • the access network device 110 and the core network device 120 can transmit data to each other, and this communication system is also called a wireless backhaul network.
  • the access network device in FIG. 1 is, for example, a base station.
  • the access network equipment corresponds to different equipment in different systems.
  • a 4G system it can correspond to an eNB
  • a 5G system it corresponds to an access network equipment in 5G, such as gNB.
  • the technical solutions provided by the embodiments of the present application can also be applied to future mobile communication systems. Therefore, the access network equipment in FIG. 1 can also correspond to the access network equipment in the future mobile communication system.
  • Figure 1 takes the access network equipment as a base station as an example. In fact, the access network equipment can refer to the previous introduction.
  • the communication system shown in FIG. 1 may also include more network nodes, such as terminal equipment, other access network equipment, security gateways, switches and other equipment.
  • the access network included in the communication system shown in FIG. 1 The device or core network device may be the access network device or core network device in various forms described above. The embodiments of the present application are not shown one by one in the figure.
  • IEEE 802.3ad is the standard method for performing link aggregation Ethernet link aggregation technology or equivalent routing
  • the combination of load balancing is used to double the bandwidth, and it can also provide stronger data transmission reliability.
  • a network node has multiple transmission paths PATH, in order to achieve the purpose of maximizing bandwidth utilization, it is necessary to divide the multiple data packets of the node on multiple PATHs as much as possible, and ensure that the data packets of the same Session are in one PATH Up forwarding to ensure that the data packets of the same Session or Flow will not be out of order.
  • Figure 2 depicts the end-to-end load balancing behavior, where the forwarding node R1 has two PATHs for forwarding, black represents the first session, white represents the second session, and the data packet of the first session arrives through the forwarding node R2 and the forwarding node R3 Forwarding node R5, the data message of the second session passes through the forwarding node R4 to the forwarding node R5, and the data message of the same Session is forwarded on a Path to ensure that the data messages of the same Session will not be out of order.
  • the forwarding node in Figure 2 may be the forwarding node between the access network device and the core network device shown in Figure 1.
  • the data link between the access network device and the core network device includes forwarding nodes R1, R2, R3 , R4 and R5.
  • FIG. 3 shows a schematic flow chart in which data messages of the same Session are forwarded on the same PATH to ensure that the data messages of the same Session will not be out of order.
  • the numbers in Figure 3 represent the sequence numbers of data packets in their respective sessions.
  • Figure 3 shows three sessions, namely the first session, the second session and the third session. Taking the first session as an example, the first one before forwarding The order of the data packets of the session is 1, 2, 3, and the order of the data packets of the first session after forwarding is still 1, 2, 3, and there is no disorder. Conversely, if data packets of the same Session are forwarded from different PATHs, disorder of 3, 1, 2 may occur, which affects service performance.
  • quintuples are usually used (for example, it can include source IP address (Source IP, SIP), destination IP address (Destination IP, DIP), transport layer protocol (Protocol, Prot), source port (Source Port, SPt) , The destination port (Destination Port, DPt)) to determine whether a data message belongs to the same session, that is, a hash calculation is performed on the 5-tuple of the IPv4 message. If the hash calculation results of the two data messages are consistent, then These two data messages belong to the same Session.
  • the process of calculating different hash values can also be called hash hashing. The more different hash values, the more sufficient the hash hashing is. From a statistical point of view, the easier it is to average the number of data packets. Forwarding is performed on the PATH in order to achieve the purpose of making full use of bandwidth.
  • the network node calculates a 5-tuple hash value for all data messages, and each hash value uniquely represents a Session. In order to preserve the sequence of forwarding data messages of the same Session, that is, messages with the same hash value can be forwarded on the same PATH, and messages with different hash values can be forwarded on multiple PATHs.
  • each part of the five-tuple is a hash key, and the five hash keys obtain a hash value through a hash algorithm; if one or more fields in the five-tuple are different, the resulting hash value may also be Not the same; a hash value uniquely identifies a session; data packets of the same session can be forwarded on one PATH, and data packets of different sessions can be forwarded on different PATHs, ensuring that any session is in the source node and the destination node Guarantee order.
  • the IETF-RFC 6437 standard (The Internet Engineering Task Force, IETF), document requirements (Request For Comments, RFC), RFC from the Internet Published by the Engineering Task Force (IETF), the description can be split according to the hash of the triplet (for example, it can include SIP, DIP, Flow_Label), but the industry usage of the IPv6Flow_Label field is open, there is no convention usage, and there is no mandatory requirement in the standard.
  • a current solution is to write all the 20bits of Flow_Label as 0, so according to the triple hash (SIP, DIP, flow label Flow_Label) hash to split the flow will determine that the transmission path of many data packets is the same, greatly Bandwidth was wasted.
  • a five-tuple hash (SIP, DIP, Next Header, SPt, DPt) hash is also used for IPv6 packets to distribute traffic, that is, multiple IPv6 packets are scattered and forwarded on different PATHs.
  • SIP Session Initiation Protocol
  • DIP Downlink Initiation Protocol
  • SPt Next Header
  • DPt DPt
  • the use of five-tuple hashing for IPv6 packets to distribute traffic cannot achieve sufficient load balancing in the following multiple scenarios.
  • the PGW/UPF is configured with an IPv6 address
  • the base station is configured
  • the content of the triples or quintuples of all data packets is the same, so the hash values calculated based on the triples or quintuples of all data packets are consistent, as shown in Table 2.
  • PGW/UPF is configured with two IPv6 addresses, namely IPv6_1 and IPv6_2; the base station is also configured with two IPv6 addresses, They are IPv6_1 and IPv6_2 respectively.
  • the triple or quintuple hash values of all data packets can be distinguished in a limited way, as shown in Table 3.
  • the number of IPv6 addresses configured by PGW/UPF/base station is limited, and data packets cannot be sufficient. Hashing, it is easy to cause the traffic to not be evenly distributed on multiple PATHs, and the load balancing performance is insufficient.
  • the base station IP1 shown in Table 3 is a plaintext IPv6 address.
  • IPsec Internet Protocol Security
  • IKE Internet Key Exchange
  • the encrypted SIP and DIP values of data messages of different users are the same, so the hash values of the encrypted cipher texts of all users’ data messages are the same (IPsec messages have no SPt regardless of ESP encapsulation or AH encapsulation.
  • DPt field as shown in Table 4, which cannot be hashed, resulting in load balancing failure.
  • the local IP of the tunnel in Table 4 is a ciphertext IPv6 address.
  • IPv6 introduces the Maximum Transmission Unit (PMTU) mechanism of the path, which makes the fragmentation uncontrollable compared to IPv4.
  • PMTU Maximum Transmission Unit
  • the first fragment is retained after the source packet is fragmented.
  • the subsequent fragments have only IPv6 headers and no User Datagram Protocol (UDP) headers.
  • UDP User Datagram Protocol
  • the slice hash value is different, different fragmented packets are forwarded in different PATHs, which may cause the same Session to be out of order.
  • the second code of a user s data packet in Table 5
  • the chip loses the UDP header information, so the hash value of the second chip is different from the hash value of the first chip, causing it to be forwarded from the two PATHs, which may arrive out of order at the sink node.
  • the second code The chip arrives at the destination first, and reaches the destination after the first chip, which affects performance.
  • the existing technology can only rely on the deployment of multiple SIPs or multiple DIPs in the source or destination of the backhaul network to achieve the purpose of hashing.
  • the details are as follows: It is recommended that the client configure the multi-service IPv6 method to construct SIP/DIP in the plaintext scenario. To ensure the hash, and there are requirements for multiple SIP/DIP
  • the access network equipment deploys 2 addresses, and the core network equipment deploys 2 addresses. Therefore, the hash values of data packets of different users are different, and load balancing may succeed. But it may also fail.
  • the modulus calculation is performed to map the path (for example, dual-path load balancing is a modulo 2 calculation, that is, the hash value is divided by 2 and the remainder is obtained.
  • the result is 0 chooses PATH1, the result is 1 chooses PATH2; if the three-path load balancing is modulo 3, that is, the hash value is divided by 3 to take the remainder, the result is 0 chooses PATH1, the result is 1 chooses PATH2, and the result is 2 chooses PATH3; And so on). It is necessary to ensure that the hash modulus calculated by multiple SIP/DIPs is not the same, otherwise the load balancing goal will still not be achieved. Therefore, when planning SIP/DIP, you must fully consider and calculate in advance to avoid the occurrence of the hash value obtained by the multi-group hash calculation. After the calculation, the result is unique and the load balancing fails. As shown in Table 6, Table 6 describes the base station deployment. Two IPv6 addresses, but because of improper selection of addresses, although the hash values of data packets of different users are different, the result of the modulo operation is the same, which causes load balancing to fail.
  • Table 7 describes the deployment of two IPv6 addresses in the base station.
  • the selected addresses are calculated in advance, and the hash values of data packets of different users are different, and the result of the modulo operation is also different, and the load balancing is successful.
  • the above technology not only requires customers to deploy additional IPv6 addresses, but also fully guarantees the non-uniqueness of the modulus after the multi-group hash calculation, which may disrupt network design, evolution schemes and address planning, etc., increasing costs and product competitiveness. Decrease, and the degree of hashing is seriously insufficient. For example, when two SIPs are configured at the base station, only two types of hash values can be hashed through the hash algorithm.
  • the corresponding two PATHs are used for load balancing, which is easy to cause serious inequality of load balancing ( One path has a lot of traffic, while the other path has a very small traffic), bandwidth resources cannot be fully utilized, and the value of load balancing is reduced; reliability depends on the detection mechanism of the transport layer (that is, the fourth layer protocol).
  • the control plane relies on the SCTP Heartbreak mechanism to detect the link. When the link fails, it generally takes 45-50 seconds to converge. Among them, 45-50 is a typical value, which can be affected by configuration; the data plane relies on the GTP-U Echo mechanism to detect the chain When the link fails, it generally takes 15-75 seconds to converge. Among them, 15-75 is a typical value, which can be affected by configuration.
  • a path fails and is switched it is easy to cause business disconnection and link disconnection for a long time, reducing service experience and reducing reliability.
  • this application provides a wireless network communication method based on the Internet Protocol version IPv6, which can realize the hash hashing with the granularity of the bearer under the premise of not increasing SIP/DIP to make full use of bandwidth resources.
  • FIG. 4 is a schematic flowchart of a wireless network communication method 200 based on the Internet Protocol version IPv6 according to an embodiment of the present application.
  • the method 200 can be applied in the scenario shown in FIG. 1, of course, can also be applied in other communication scenarios, and the embodiment of the present application is not limited herein.
  • the access network device and the core network device are taken as an example of the execution subject of the execution method to describe the method.
  • the execution subject of the execution method may also be a chip, a chip system, or a processor applied to the access network device and the core network device.
  • the method 200 shown in FIG. 4 may include S210 to S220.
  • each step in the method 200 will be described in detail with reference to FIG. 4.
  • S210 Determine the transmission path of the plaintext IPv6 packet according to the TEID field of the tunnel endpoint identifier in the plaintext IPv6 packet.
  • S220 Transmit the plaintext IPv6 message according to the determined transmission path of the plaintext IPv6 message.
  • the TEID field of the tunnel endpoint identifier is the identifier of the GTP tunnel.
  • the TEID fields of the bearer description) are all different, so the transmission path of the plaintext IPv6 packet is determined according to the tunnel endpoint identifier TEID field in the plaintext IPv6 packet, which can ensure that IPv6 packets of the same bearer can be transmitted on the same path , It can also make the IPv6 packets of different bearers be fully hashed to achieve load balancing.
  • the plaintext IPv6 message refers to the data service IPv6 message
  • the plaintext IPv4 message refers to the data service IPv4 message.
  • the plaintext message is only used to distinguish the ciphertext message in the encryption scenario.
  • the IPv6 message refers to the above-mentioned plaintext IPv6 or plaintext IPv4 encrypted data service IPv6 message.
  • step S210 is explained in detail below.
  • IPv6 messages include IPv6 headers and payloads, and IPv6 headers include:
  • Flow Label (20bit), Flow Label is used to mark the information carried by IPv6 data packets;
  • Payload Length (16bit), the extended header is also included in the Payload length;
  • Next Header (8bit), a new way of segmentation, security, mobility, loose source routing, record routing, etc.;
  • Hop Limit (8bit): Define the maximum number of hops that an IP data packet can pass, and subtract 1 from this value for each hop;
  • the Flow Label field of the IPv6 header of the IPv6 packet shown in Figure 5 is 0, and the hash values of the triples are consistent, and the purpose of load balancing cannot be achieved through the triples.
  • This application determines the transmission path of the plaintext IPv6 message according to the TEID field of the tunnel endpoint identifier in the plaintext IPv6 message. Since the TEID field of the tunnel endpoint identifier in the plaintext IPv6 message of different bearers is different, it is determined according to the TEID field in the plaintext IPv6 message.
  • the TEID field of the tunnel endpoint identifier determines the transmission path of the plaintext IPv6 packet, which can ensure that the packets of the bearer are forwarded on the same path, and ensure that the packets of the bearer are forwarded in order, and the hash values of different bearers are different. Different hash values fully hash the messages to achieve load balancing.
  • step S210 includes: filling the TEID field of the tunnel endpoint identifier of the plaintext IPv6 packet into the Flow Label field of the plaintext IPv6 packet; according to the filled Flow Label field and the first hash calculation Performing hash calculation on the parameters to obtain the first hash value; and determining the transmission path of the plaintext IPv6 packet according to the first hash value.
  • the TEID field of the tunnel endpoint identifier of the plaintext IPv6 packet is filled into the Flow Label field of the plaintext IPv6 packet, and then hashing is performed according to the filled Flow Label field and the first parameter participating in the hash calculation
  • the first hash value is calculated. Since the TEID field identifies a unique bearer, the hash value of the same bearer is the same, and the hash value of different bearers is different.
  • the transmission of the plaintext IPv6 packet is determined The path can ensure that the carried messages are forwarded on the same path, and ensure that the carried messages are forwarded in order, and the hash values of different bearers are different, and the messages are fully hashed according to the different hash values. Achieve load balancing.
  • both the base station and the core network have deployed an IPv6 address, but the TEID identifiers of different users are different.
  • the TEID is used to fill the flow label (Flow Label), and the flow after each user is filled
  • the value of Label is not the same.
  • the triplet hash value is calculated according to the filled Flow Label and SIP and DIP of each user, and different hash values are obtained. For example, the hash value of user 1 is 321, and the hash value of user 2 is 321. Is 432, the hash value of user 3 is 543, the hash value of user 4 is 654, and the hash value of user 5 is 765.
  • the path is selected by modulo multiple different hash values, and the transmission path of user 1 is obtained as PATH2, the transmission path of user 2 is PATH1, the transmission path of user 3 is PATH2, the transmission path of user 4 is PATH1, and the transmission path of user 5 is PATH2, which achieves load balancing.
  • the first parameter participating in the hash calculation may include any one or more of the following parameters: SIP of the plaintext IPv6 message, DIP of the plaintext IPv6 message, and the next parameter of the plaintext IPv6 message.
  • SIP of the plaintext IPv6 message DIP of the plaintext IPv6 message
  • DIP of the plaintext IPv6 message DIP of the plaintext IPv6 message
  • the next parameter of the plaintext IPv6 message may include any one or more of the following parameters: SIP of the plaintext IPv6 message, DIP of the plaintext IPv6 message, and the next parameter of the plaintext IPv6 message.
  • the Next Header the source port SPt of the plaintext IPv6 packet, and the destination port DPt of the plaintext IPv6 packet.
  • the first hash value is obtained by hash calculation according to the filled Flow Label field and the first parameter involved in the hash calculation, which may be based on the triplet (SIP of the plaintext IPv6 packet, the plaintext IPv6 packet
  • the DIP of the message and the filled Flow Label field) calculate the first hash value, or calculate the first hash value according to the six-tuple (SIP of the plaintext IPv6 message, DIP of the plaintext IPv6 message, and the value of the plaintext IPv6 message
  • the next header Next Header, the source port SPt of the plaintext IPv6 message, the destination port DPt of the plaintext IPv6 message, and the filled-in FlowLabel field) calculate the first hash value.
  • This application will not proceed to this limited.
  • triples are taken as an example to illustrate how to determine the transmission path of a plaintext message or a ciphertext message.
  • the intermediate node After the plaintext IPv6 message filled with the Flow Label field of the flow label is received by the intermediate node, the intermediate node also The transmission path of the plaintext IPv6 message can be determined according to the triplet, the intermediate node can also achieve load balancing, and at the same time, it can also realize the reasonable allocation of computing resources with bearing granularity.
  • the receiver After the plaintext IPv6 packet filled with the Flow Label field is received by the receiver, if the receiver receives It includes multiple calculation processing units, and the receiver can determine the calculation processing unit for processing the plaintext IPv6 message according to the triplet, which realizes the reasonable allocation of the receiver's computing resources and avoids uneven allocation of the calculation units.
  • the tunnel endpoint identifier TEID field of the plaintext IPv6 message is filled into the flow label Flow Label field of the plaintext IPv6 message , And then fragment the plaintext IPv6 packet, and then copy the filled flow label Flow Label field of the plaintext IPv6 packet to each fragment of the plaintext IPv6 packet to ensure that all fragments are triplet
  • the hash value is the same.
  • the tunnel endpoint identifier TEID field of the plaintext IPv6 packet is filled into the flow label Flow Label field of the plaintext IPv6 packet , And then fragment the plaintext IPv6 message.
  • Fig. 6a and Fig. 6b show schematic diagrams of a data message divided into two pieces of messages.
  • Table 9 shows the header information of the fragment message of the data message.
  • the next layer of the plaintext IPv6 packet header is the User Datagram Protocol (UDP) header and the General Packet Radio Service Tunnelling Protocol (GTPv1) header.
  • UDP User Datagram Protocol
  • GTPv1 General Packet Radio Service Tunnelling Protocol
  • the IPv6 packet shown in Figure 6a includes an IPv6 header, a fragment extension header, a UDP header, a GTPv1 header, and a payload.
  • the GTPv1 header is a type of GTP header, and the GTPv1 header Including the TEID field of the tunnel endpoint identification.
  • the first fragment When an IPv6 packet is fragmented, the first fragment will inherit the header of the original packet, while the remaining fragments just copy the IPv6 header.
  • the tunnel endpoint of the plaintext IPv6 packet The identification TEID field is filled into the Flow Label field of the plaintext IPv6 packet, and then the plaintext IPv6 packet is fragmented, and then the filled flow label of the plaintext IPv6 packet is copied to the plaintext IPv6 packet.
  • Figure 6a is the first chip, which includes IPv6 header, UDP header, GTPv1 header and payload
  • Figure 6b is the second chip, which includes IPv6 header and payload
  • Figure 6a corresponds to the first chip of the message in Table
  • Figure 6b corresponds to the second chip of the message in Table 9
  • the first chip and the flow label of the IPv6 header of the second chip The contents of the Flow Label field are the same. Therefore, the hash results obtained by calculating the triplet hash values for the first chip and the second chip are the same, and the paths of the two packets are determined to be consistent according to the hash result.
  • the following specifically describes how to fill the TEID field of the tunnel endpoint identifier of the plaintext IPv6 packet into the Flow Label field of the plaintext IPv6 packet.
  • the N bits of the TEID field are filled into the N bits of the Flow Label field, and the Flow Label field includes N bits; or, the TEID field and the first parameter are hashed to obtain the second Ha It is hoped that the N bits of the second hash value are filled into the N bits of the Flow Label field, and the Flow Label field includes N bits.
  • the Flow Label field of the plaintext IPv6 packet is filled according to the TEID field.
  • the TEID field is 32 bits and the Flow Label field is 20 bits.
  • the N bits of the TEID field can be the first 20 bits of the TEID field or The last 20 bits can also be selected randomly or in a certain order in the TEID field.
  • the first parameter when the transmission path of the plaintext IPv6 packet is determined by hash calculation according to the filled Flow Label field and the first parameter involved in the hash calculation, and The TEID field and the first parameter are hashed to obtain the second hash value, and the first parameter used to fill the Flow Label field according to the second hash value may be the same or different.
  • the Flow Label field of the plaintext IPv6 message includes a first field and a second field
  • the TEID field is truncated with the same length as the first field or the second field of the Flow Label field, and the The first field or the second field of the Flow Label; or, the TEID field and the first parameter are hashed to obtain the second hash value, and the second hash value is intercepted with the first field of the Flow Label field or The same length part of the second field is filled with the first field or the second field of the Flow Label.
  • the TEID field includes 32 bits
  • the Flow Label field includes 20 bits
  • the Flow Label field is divided into a first field and a second field
  • the first field includes 18 bits
  • the first field includes 2 bits.
  • the TEID field can be intercepted by 18 bits and filled into the first field of the Flow Label field; or the TEID field and the first parameter can be hashed to obtain the second hash value, and the second hash value can be intercepted by 18 bits and filled into The first field of the Flow Label field.
  • one field in the Flow Label field is filled, and the other field is reserved.
  • the reserved field can be used for other purposes, such as QoS identification, which is not limited in this application.
  • the number of bits in the first field and the second field may be valued according to specific application scenarios, which is not limited in this application.
  • the first parameter includes at least one of the following parameters: SIP of the plaintext IPv6 message, DIP of the plaintext IPv6 message, source port SPt of the plaintext IPv6 message, and the plaintext IPv6 message The destination port DPt of the message and the Next Header of the plaintext IPv6 message.
  • the above description is the implementation of flow load balancing based on bearer granularity in the IPv6 plaintext scenario Flow Label filling.
  • the following describes the implementation of flow load balancing based on bearer granularity in the IPv6 IPsec tunnel mode ciphertext scenario Flow Label filling.
  • the uplink data is encrypted by the access network device
  • the downlink data is encrypted by the Security Gateway (SeGW)
  • the core network device can also encrypt the downlink data.
  • SeGW Security Gateway
  • the plaintext message that is, the inner message
  • the plaintext message can be an IPv6 message or IPv4 message
  • the cipher message that is, the outer message
  • FIG. 7 is a schematic flowchart of another wireless network communication method 300 based on the Internet Protocol version IPv6 according to an embodiment of the present application.
  • the method 300 can be applied to FIG. In the scenario shown in 1, of course, it can also be applied in other communication scenarios, and the embodiment of the present application does not limit it here.
  • the method is described by taking the access network device and the security gateway as the execution subject of the execution method as an example.
  • the execution subject of the execution method may also be a chip, a chip system, or a processor applied to the access network device and the security gateway.
  • the method 300 shown in FIG. 7 may include S310 to S330. Each step in the method 300 will be described in detail below in conjunction with FIG. 7.
  • S310 Fill in the Flow Label field of the ciphertext IPv6 packet according to the TEID field of the tunnel endpoint identifier of the plaintext IPv6 packet.
  • S320 Perform hash calculation according to the filled Flow Label field and the first parameter involved in the hash calculation to obtain the first hash value.
  • S330 Determine a transmission path of the ciphertext IPv6 packet according to the first hash value.
  • the Flow Label field of the ciphertext IPv6 packet is associated with the bearer, and the first hash is calculated according to the filled Flow Label field and the first parameter involved in the hash calculation.
  • the transmission path of the ciphertext IPv6 packet is determined according to the first hash value, that is, it can ensure that the ciphertext IPv6 packets of the same bearer can be transmitted on the same path, or the ciphertext IPv6 packets of different bearers can be transmitted on the same path.
  • the text is fully hashed to achieve load balancing.
  • Table 10 describes the load balancing of ciphertext packets after filling the flow label (Flow Label) with TEID and calculating the triplet hash value in the dual PATH scenario. The local IP of the tunnel and the opposite end of the tunnel are described in Table 10 IP is a ciphertext IPv6 address.
  • the first parameter participating in the hash calculation may include any one or more of the following parameters: SIP of the ciphertext IPv6 message, DIP of the ciphertext IPv6 message, and the ciphertext IPv6 message Next Header of the article.
  • the Perform hash calculation according to the filled Flow Label field and the first parameter involved in the hash calculation to obtain the first hash value which may be based on triples (SIP of the ciphertext IPv6 message, the ciphertext
  • the DIP of the IPv6 message and the filled Flow Label field) calculate the first hash value, which is not limited in this application.
  • triples are taken as an example to illustrate how to determine the transmission path of a plaintext message or a ciphertext message.
  • the N bits of the TEID field are filled into the N bits of the Flow Label field of the ciphertext IPv6 message, and the Flow Label field of the ciphertext IPv6 message Including N bits; or, hash the TEID field and the first parameter to obtain the second hash value, and fill the N bits of the second hash value into the N bits of the Flow Label field of the ciphertext IPv6 packet ,
  • the Flow Label field of the ciphertext IPv6 packet includes N bits.
  • the Flow Label field of the ciphertext IPv6 message includes a first field and a second field
  • the TEID field is intercepted with the Flow Label field of the ciphertext IPv6 message.
  • Three hash values intercept the third hash value with the same length as the first field or the second field of the Flow Label field of the ciphertext IPv6 packet, and fill in the first field of the Flow Label field of the ciphertext IPv6 packet Field or second field.
  • the plaintext message is an IPv6 message
  • the Flow Label field of the plaintext IPv6 message is filled according to the TEID field of the tunnel endpoint identifier of the plaintext IPv6 message; the flow label field of the plaintext IPv6 message is filled in;
  • the Flow Label field duplicates the Flow Label field of the ciphertext IPv6 packet.
  • Figure 8a shows a filling method in the IPsec authentication header (Authentication Header, AH) encapsulation scenario.
  • the IPv6 header (Inner IPv6) of the plaintext message fills the TEID field into the FlowLabel field, and then encapsulates the ciphertext IPv6 header after encryption Outer IPv6, the Flow Label field of the plaintext message is then filled into the Flow Label field of the IPv6 header of the cipher text message.
  • the Flow Label of the cipher text message of different bearer services is different, so the hash value can be based on the bearer Hash it.
  • FIG. 8b shows the filling method of the IPsec Encapsulating Security Payload (ESP) encapsulation scenario. You can refer to one of the filling methods in the IPsec AH encapsulation scenario described above, which will not be repeated here.
  • ESP IPsec Encapsulating Security Payload
  • the plaintext message is an IPv6 message
  • the Flow Label field of the plaintext IPv6 message is populated according to the TEID field of the tunnel endpoint identifier of the plaintext IPv6 message;
  • the Flow Label field is filled with the Flow Label field of the ciphertext IPv6 packet.
  • the filling of the flow label Flow Label field of the ciphertext IPv6 message according to the filled flow label Flow Label field of the plaintext IPv6 message includes: adding the flow label Flow Label of the plaintext IPv6 message Perform hash calculation on the field and the first parameter to obtain a fourth hash value, and fill the Flow Label field of the ciphertext IPv6 message according to the fourth hash value.
  • the Flow Label field of the cipher text message includes a third field and a fourth field
  • filling the Flow Label field of the cipher text IPv6 message according to the fourth hash value includes : Fill the N bits of the fourth hash value into the N bits of the Flow Label field of the ciphertext IPv6 packet, where the Flow Label field includes N bits; or, intercept the fourth hash value with The third field or the fourth field of the same length part of the Flow Label field of the ciphertext IPv6 packet is filled in the third field or the fourth field of the Flow Label field of the ciphertext IPv6 packet.
  • the plaintext message is an IPv6 message
  • the flow label Flow of the plaintext IPv6 message is filled in according to the TEID field of the tunnel endpoint identifier of the plaintext IPv6 message.
  • Label field divide the plaintext IPv6 message after filling the Flow Label field into multiple chips, each of the multiple chips contains the filled Flow Label field; the Flow of each chip The Label field is copied to the Flow Label field of the encrypted cipher text message for each chip.
  • the plaintext message is an IPv6 message
  • the method further includes: dividing the plaintext message into multiple chips; Each chip in the chip is encrypted to obtain the cipher text message of each chip; the Flow Label field of the cipher text message of each chip is filled according to the TEID field of the tunnel endpoint identifier in the plain text message; The Flow Label field of the cipher text message and the second parameter involved in the hash calculation are hashed to obtain a fifth hash value, and the transmission path of the cipher text message is determined according to the fifth hash value.
  • the filling of the Flow Label field of the cipher text message of each chip according to the TEID field of the tunnel endpoint identifier in the plain text message includes: filling the N bits of the TEID field into each N bits of the Flow Label field of the cipher text message of the chip, the Flow Label field of the cipher text message of each chip includes N bits; alternatively, the TEID field and the first parameter are hashed to obtain the sixth Hash value, fill the N bits of the sixth hash value into the N bits of the Flow Label field of the cipher text message of each chip, and the Flow Label field of the cipher text message of each chip includes N bit.
  • the Flow Label field of the ciphertext message of each chip includes the fifth field and the sixth field, and the TEID field of the tunnel endpoint identifier in the plaintext message is filled in for each chip.
  • the Flow Label field of the cipher text message includes: intercepting the TEID field with the same length as the fifth or sixth field of the Flow Label field of the cipher text message of each chip, and filling each chip The fifth or sixth field of the Flow Label field of the ciphertext message; or, hash the TEID field and the first parameter to obtain the seventh hash value, and intercept the ninth hash value with the The fifth or sixth field of the Flow Label field of the cipher text message of each chip is filled with the fifth field or the sixth field of the Flow Label field of the cipher text message of each chip.
  • the first parameter includes at least one of the following parameters:
  • the SIP of the cipher text message The SIP of the cipher text message, the DIP of the cipher text message, and the Next Header of the cipher text message.
  • the second parameter includes at least one of the following parameters:
  • Out and Inner represent the IPv6 header of the outer ciphertext and inner plaintext of the IPsec tunnel mode.
  • the following describes how to determine the transmission path of the ciphertext IPv6 message according to the TEID field of the tunnel endpoint identifier in the plaintext message when the plaintext message is an IPv4 message.
  • Ipv4 message includes Ipv4 header and payload.
  • Ipv4 header includes:
  • TOS Type of Service
  • Total Length This 16-bit field indicates the length of the IP datagram in bytes. This length includes the IP header and data payload;
  • This 16-bit field is a value that increases in sequence and is assigned to the message sent by the source IP.
  • IP will split the message into multiple datagrams, and assign the same identification number to these datagrams, and the receiving end uses these values to reorganize into Original message
  • Flags the length of this field is three bits, the first bit is not used.
  • the second bit is the "No Fragmentation” bit, set to 1 means that the intermediate forwarding node cannot segment it.
  • the third bit is the "Fragmented” bit. Set to 1 to indicate that there are fragmented messages in the follow-up.
  • this field is a value, and the IP of the destination device uses this value to reorganize the fragments in the correct order;
  • the Time To Live (TTL) field indicates the number of router hops that a data message can retain before being discarded. Every router will check this field and subtract 1 from it at least. When the value of this field is 0, the data message will be discarded;
  • Protocol this field indicates the protocol used by the payload data
  • Header Checksum and Header Checksum this field is only used to check the validity of the header itself. Each router that the datagram passes through will recalculate this value, because the value of the TTL field is constantly changing;
  • Source IP address (Source IP Address, SIP);
  • DIP Destination IP address
  • Options field Options this field supports some optional header settings, mainly for testing, debugging and security purposes.
  • the IPv4 message does not have the Flow Label field. Therefore, in one implementation, when the plaintext message is an IPv4 message, the ciphertext IPv6 message should be filled with the TEID field of the tunnel endpoint identifier in the plaintext message.
  • the Flow Label field of the message includes: filling the N bits of the TEID field into the N bits of the Flow Label field of the ciphertext IPv6 message, and the Flow Label field of the ciphertext IPv6 message includes N bits; or
  • the TEID field and the first parameter are hashed to obtain the eighth hash value, and the N bits of the eighth hash value are filled into the N bits of the Flow Label field of the ciphertext IPv6 packet, and the ciphertext IPv6 packet
  • the Flow Label field includes N bits.
  • the plaintext message is IPv4
  • the FlowLabel field of the ciphertext IPv6 message includes the seventh field and the eighth field
  • the ciphertext IPv6 is filled in according to the tunnel endpoint identifier TEID field in the plaintext message.
  • the Flow Label field of the flow label of the message includes: intercepting the TEID field with the same length as the seventh or eighth field of the Flow Label field of the ciphertext IPv6 message, and padding the FlowLabel of the ciphertext IPv6 message Or the seventh field or the eighth field of the ciphertext; or, hash the TEID field and the first parameter to obtain the ninth hash value, and intercept the ninth hash value with the Flow Label field of the ciphertext IPv6 packet
  • the seventh field or the eighth field with the same length is filled with the seventh field or the eighth field of the Flow Label of the ciphertext IPv6 packet.
  • the plaintext message is IPv4, and the plaintext message is divided into multiple chips; each of the multiple chips is encrypted to obtain the ciphertext IPv6 message of each chip Text; Fill the Flow Label field of the ciphertext IPv6 packet of each chip according to the TEID field of the tunnel endpoint identifier in the plaintext packet.
  • the plaintext message is IPv4
  • the method of filling the Flow Label field of the ciphertext IPv6 message of each chip according to the TEID field of the tunnel endpoint identifier in the plaintext message can refer to the foregoing that the plaintext message is IPv6.
  • the method of filling the Flow Label field of the ciphertext IPv6 packet of each chip according to the TEID field of the tunnel endpoint identifier in the plaintext packet will not be repeated here.
  • the first parameter includes at least one of the following parameters:
  • the SIP of the cipher text message The SIP of the cipher text message, the DIP of the cipher text message, and the Next Header of the cipher text message.
  • the second parameter includes at least one of the following parameters:
  • the SIP of the plaintext message The SIP of the plaintext message, the DIP of the plaintext message, the Next Header of the plaintext message, the source port SPt of the plaintext message, and the destination port DPt of the plaintext message.
  • the access network device can directly Fill the Flow Label field of the ciphertext IPv6 message according to the Flow Label field of the plaintext IPv6 message.
  • the specific filling method can refer to the above method. In order to avoid repetition, it will not be repeated here.
  • the uplink plain and cipher text only uses 1 pair of service IPv6 scenarios and 1 pair of Internet key exchange IKE IPv6 address scenarios in the access network equipment.
  • the uplink plain cipher text can be transmitted on multiple transmission ports of the access network equipment. It realizes the flow load balancing of the load-bearing granularity, and effectively and fully utilizes the transmission bandwidth.
  • the downlink plaintext uses only one pair of service IPv6 scenarios in the core network equipment, and the downlink plaintext achieves load balancing of the load-bearing granularity on multiple transmission ports of the core network, effectively making full use of the transmission bandwidth.
  • the downlink ciphertext uses only one pair of business IPv6 and one pair of IKE IPv6 addresses in the security gateway. After the downlink packets are encrypted by the security gateway, the load balancing of the load-bearing granularity is realized on multiple transmission ports, and the transmission bandwidth is effectively and fully utilized.
  • the filling of field 1 into field 2 in the embodiment of the present application refers to filling the value of field 1 into field 2, that is, the value of field 1 and the value of field 2 are equal.
  • the TEID field is intercepted with the same length as the first field of the Flow Label field, and the first field of the Flow Label is filled, it means that the value of the intercepted part of the TEID field is filled into the Flow Label.
  • the first field of that is, the value of the intercepted part of the TEID field is equal to the value of the first field of the Flow Label.
  • the N bits of field 1 are filled into the N bits of field 2, which means that the value of the Nbit of field 1 is filled into the N bit of field 2.
  • the value of N bits in field 1 and the value of N bits in field 2 are the same.
  • filling the N bits of the TEID field into the N bits of the Flow Label field means filling the value of the TEID field into the Flow Label field, that is to say, the value of the TEID field and the Flow Label field are The values are equal.
  • Figure 10 describes the "IEEE 802.3ad Ethernet link aggregation" technology for load balancing.
  • Ethernet link aggregation is the aggregation of multiple Ethernet links together to form an aggregation group to achieve load sharing among member ports , It also provides higher connection reliability.
  • Figure 10 includes an access network device 410, a switch 420, and a router 430.
  • the two lines in Figure 10 represent that two links are aggregated.
  • the link to which the message is sent depends on the hash value, which corresponds to the implementation of this application.
  • the access network device 410 may execute the content described in the method 200, which corresponds to the flow in FIG. 4.
  • Different styles of packets in the figure represent packets of different bearers.
  • the same bearer packets are transmitted on the same PATH because of the same hash value.
  • Different bearer packets can be hashed and transmitted on different PATHs. If one of the PATHs fails, The stream packets that should have been transmitted on the failed PATH can be immediately transferred to other PATHs for transmission to increase reliability.
  • Figure 11 ciphertext scenario source and intermediate nodes implement bearer-based flow load balancing based on hash calculation.
  • Figure 11 is the ciphertext scenario of Figure 10, which includes access network equipment 510, switch 520, security gateway 530, and router 540.
  • the access network device 510 may execute the content described in method 200 and copy the Flow Label filled with the plaintext message to the ciphertext message, so that the ciphertext message also obtains the bearer information.
  • the load balancing can be performed in the manner shown in FIG. 10.
  • the security gateway 530 can execute the content described in the method 300, that is, corresponding to the flow in FIG. 7.
  • Figure 12 the equal-cost routing scenario source and intermediate nodes implement bearer-based flow load balancing based on hash calculation.
  • Figure 12 includes access network equipment 610, switch 620, router 630, and router 640. Two switches are configured on switch 620.
  • the access network device 610 can execute the content described in method 200, that is, corresponding to the flow in Figure 4, the access network device 610 calculates the hash value according to the filled Flow Label and the second parameter, and decides to use a different The route forwards the message to different PATHs to achieve load balancing of multiple PATHs.
  • Figure 13 includes access network equipment 710, switch 720, router 730, and router 740. Two routes with the same priority are configured on switch 720.
  • switch 720 fails, such as switch 720 to router If the 740 path fails, the service will quickly switch to the normal PATH for transmission to increase reliability, which will be much faster than the reliability switch of the fourth layer protocol.
  • the source device is the message sender, which may be an access network device or a core network device, and the intermediate node may be a router, a switch, and so on.
  • FIG. 14 shows a schematic block diagram of a communication device 800 according to an embodiment of the present application.
  • the apparatus 800 may be an access network device, or a chip or circuit, for example, a chip or circuit that can be provided in an access network device.
  • the apparatus 800 may be a core network device, or a chip or circuit, such as a chip or circuit that can be provided in a core network device.
  • the device 800 may be a security gateway device, or a chip or circuit, for example, a chip or circuit that can be provided in a security gateway device.
  • the device 800 may include a processing unit 810 (that is, an example of a processor) and a transceiver unit 830.
  • the processing unit 810 may also be referred to as a determining unit.
  • the transceiving unit 830 may include a receiving unit and a sending unit.
  • the transceiver unit 830 may be implemented by a transceiver or a transceiver-related circuit or interface circuit.
  • the device may further include a storage unit 820.
  • the storage unit 820 is used to store instructions.
  • the storage unit may also be used to store data or information.
  • the storage unit 820 may be implemented by a memory.
  • the processing unit 810 is configured to execute the instructions stored in the storage unit 820, so that the apparatus 800 implements the steps performed by the terminal device in the foregoing method.
  • the processing unit 810 may be used to call the data of the storage unit 820, so that the apparatus 800 implements the steps performed by the terminal device in the foregoing method.
  • the processing unit 810 is configured to execute the instructions stored in the storage unit 820, so that the apparatus 800 implements the steps performed by the access network device in the foregoing method.
  • the processing unit 810 may be used to call the data of the storage unit 820, so that the apparatus 800 implements the steps performed by the access network device in the foregoing method.
  • the processing unit 810, the storage unit 820, and the transceiving unit 830 may communicate with each other through an internal connection path to transfer control and/or data signals.
  • the storage unit 820 is used to store a computer program, and the processing unit 810 can be used to call and run the calculation program from the storage unit 820 to control the transceiver unit 830 to receive signals and/or send signals to complete the above method. Steps for terminal equipment or access network equipment.
  • the storage unit 820 may be integrated in the processing unit 810, or may be provided separately from the processing unit 810.
  • the transceiver unit 830 includes a receiver and a transmitter.
  • the receiver and the transmitter may be the same or different physical entities. When they are the same physical entity, they can be collectively referred to as transceivers.
  • the transceiver unit 830 includes an input interface and an output interface.
  • the function of the transceiving unit 830 may be implemented by a transceiving circuit or a dedicated chip for transceiving.
  • the processing unit 810 may be implemented by a dedicated processing chip, a processing circuit, a processing unit, or a general-purpose chip.
  • a general-purpose computer may be considered to implement the communication device (such as a terminal device or an access network device) provided in the embodiment of the present application. That is, the program code for realizing the functions of the processing unit 810 and the transceiving unit 830 is stored in the storage unit 820, and the general processing unit implements the functions of the processing unit 810 and the transceiving unit 830 by executing the code in the storage unit 820.
  • the apparatus 800 may be an access network device or a core network device, or a chip or circuit provided in the access network device or the core network device.
  • the processing unit 810 is configured to determine the TEID field according to the tunnel endpoint identifier TEID field in the plaintext IPv6 message.
  • the transmission path of the plaintext IPv6 message; the transceiver unit 830 is configured to transmit the plaintext IPv6 message according to the determined transmission path of the plaintext IPv6 message.
  • the processing unit 810 is specifically configured to: fill the flow label Flow Label field of the plaintext IPv6 packet according to the tunnel endpoint identifier TEID field of the plaintext IPv6 packet; according to the filled Flow Label field Performing hash calculation with the first parameter participating in the hash calculation to obtain a first hash value, where the SIP and the DIP are the SIP and DIP of the plaintext IPv6 message; and the first hash value is determined according to the first hash value. Transmission path of plaintext IPv6 packets.
  • the processing unit 810 is specifically configured to: fill the N bits of the TEID field into the N bits of the Flow Label field, and the Flow Label field includes N bits; or, the TEID The field and the first parameter are hashed to obtain the second hash value, and N bits of the second hash value are filled in the N bits of the Flow Label field, and the Flow Label field includes N bits.
  • the FlowLabel field of the plaintext IPv6 message includes a first field and a second field
  • the processing unit 810 is specifically configured to include: intercepting the TEID field and the FlowLabel field The first field or the part of the second field with the same length is filled in the first field or the second field of the Flow Label; or, the TEID field and the first parameter are hashed to obtain the second hash value, and all The second hash value intercepts a part of the same length as the first field or the second field of the Flow Label field, and fills the first field or the second field of the Flow Label.
  • the processing unit 810 is further configured to: copy the Flow Label field of the plaintext IPv6 message to the Flow Label field of the ciphertext IPv6 message; or, transfer the plaintext IPv6 A fifth hash value is obtained by hashing the Flow Label field and the second parameter of the flow label of the message, and the Flow Label field of the ciphertext IPv6 message is filled according to the fifth hash value.
  • each module or unit in the device 800 can be used to perform various actions or processes performed by the access network device or core network device in the above method.
  • the access network device or core network device in the above method.
  • detailed descriptions are omitted.
  • the device 800 may be a security gateway, or a chip or circuit provided in the security gateway.
  • the transceiver unit 830 is configured to receive a clear text message sent by a core network device;
  • the processing unit 810 is configured to identify TEID according to the tunnel endpoint in the clear text message
  • the field is filled with the Flow Label field of the ciphertext IPv6 message, and the ciphertext IPv6 message is a message encrypted by the plaintext message; the processing unit is also used for filling the flow label field of the ciphertext IPv6 message according to the filled ciphertext IPv6 message.
  • the Flow Label field and the first parameter involved in the hash calculation are hashed to obtain the first hash value, where the SIP and the DIP are SIP and DIP of the ciphertext IPv6 packet; the processing unit is further configured to The transmission path of the ciphertext IPv6 packet is determined according to the first hash value.
  • the plaintext message is an IPv6 message or an IPv4 message
  • the processing unit 810 is configured to: fill N bits of the TEID field into the Flow Label field of the ciphertext IPv6 message
  • the Flow Label field of the ciphertext IPv6 message includes N bits; or, the TEID field and the first parameter are hashed to obtain the second hash value, and the second hash value is N bits are filled in the N bits of the Flow Label field of the ciphertext IPv6 message, and the Flow Label field of the ciphertext IPv6 message includes N bits.
  • the plaintext message is an IPv6 message or IPv4
  • the Flow Label field of the ciphertext IPv6 message includes a first field and a second field
  • the processing unit 810 is configured to:
  • the TEID field intercepts the part with the same length as the first field or the second field of the Flow Label field of the ciphertext IPv6 packet, and fills the first field or the second field of the Flow Label field of the ciphertext IPv6 packet; or, Hashing the TEID field and the first parameter to obtain a third hash value, and intercepting the third hash value to be the same as the first field or the second field of the Flow Label field of the ciphertext IPv6 packet
  • the length part is filled in the first field or the second field of the Flow Label of the ciphertext IPv6 packet.
  • the plaintext message is an IPv6 message
  • the processing unit 810 is configured to: fill in the flow label Flow Label of the plaintext IPv6 message according to the tunnel endpoint identifier TEID field of the plaintext IPv6 message Field; copy the filled flow label Flow Label field of the plaintext IPv6 message to the flow label Flow Label field of the ciphertext IPv6 message.
  • the plaintext message is an IPv6 message
  • the processing unit 810 is further configured to: according to the tunnel endpoint identifier of the plaintext IPv6 message
  • the TEID field fills the Flow Label field of the plaintext IPv6 packet; the plaintext IPv6 packet filled with the FlowLabel field is divided into multiple chips, and each of the multiple chips includes Filled in the Flow Label field; copy the Flow Label field of each chip to the Flow Label field of the encrypted cipher text message of each chip;
  • the processing unit 810 is configured to: fill the N bits of the TEID field into the N bits of the Flow Label field of the plaintext IPv6 packet, and the Flow Label field of the plaintext IPv6 packet includes N bit; or, hash the TEID field and the second parameter to obtain a fifth hash value, and fill N bits of the fifth hash value into N in the Flow Label field of the plaintext IPv6 packet bit, the Flow Label field of the plaintext IPv6 message includes N bits.
  • the FlowLabel field of the plaintext IPv6 message includes a first field and a second field
  • the processing unit 810 is configured to: intercept the TEID field with the FlowLabel field of the plaintext IPv6 message.
  • the first field or the second field of the field with the same length is filled in the first field or the second field of the Flow Label of the plaintext IPv6 message; or, the TEID field and the second parameter are hashed to obtain the first field
  • Six hash values the sixth hash value is intercepted with the same length as the first field or the second field of the FlowLabel field of the plaintext IPv6 message, and the first field of the FlowLabel field of the plaintext IPv6 message is filled in.
  • the plaintext message is an IPv8 message or an IPv6 message
  • the processing unit 810 is further configured to: divide the plaintext message into Is a plurality of chips; each chip of the plurality of chips is encrypted to obtain the ciphertext message of each chip; and each of the ciphertext messages is filled according to the TEID field of the tunnel endpoint identification in the plaintext message.
  • each module or unit in the device 800 can be used to perform various actions or processing procedures performed by the security gateway in the foregoing method.
  • each module or unit in the device 800 can be used to perform various actions or processing procedures performed by the security gateway in the foregoing method.
  • detailed descriptions are omitted.
  • the access network equipment 900 includes one or more radio frequency units, such as a remote radio unit (RRU) 910 and one or more baseband units (BBU) (also referred to as digital units, digital units, DU)920.
  • RRU remote radio unit
  • BBU baseband units
  • the RRU 910 may be called a transceiver unit, a transceiver, a transceiver circuit, or a transceiver, etc., and it may include at least one antenna 911 and a radio frequency unit 912.
  • the RRU910 part is mainly used for receiving and sending radio frequency signals and converting radio frequency signals and baseband signals, for example, for sending the signaling messages described in the foregoing embodiments to terminal equipment.
  • the BBU920 part is mainly used to perform baseband processing, control the base station, and so on.
  • the RRU 910 and the BBU 920 may be physically set together, or may be physically separated, that is, a distributed base station.
  • the BBU 920 is the control center of the base station, and may also be called a processing unit, which is mainly used to complete baseband processing functions, such as channel coding, multiplexing, modulation, and spreading.
  • the BBU (processing unit) 920 may be used to control the base station 40 to execute the operation procedure of the network device in the foregoing method embodiment.
  • the BBU 920 may be composed of one or more single boards, and multiple single boards may jointly support a radio access network of a single access standard (such as an LTE system or a 9G system), and may also support different access networks respectively. Enter the standard wireless access network.
  • the BBU 920 further includes a memory 921 and a processor 922.
  • the memory 921 is used to store necessary instructions and data.
  • the memory 921 stores the codebook in the above-mentioned embodiment and the like.
  • the processor 922 is configured to control the base station to perform necessary actions, for example, to control the base station to execute the operation procedure of the network device in the foregoing method embodiment.
  • the memory 921 and the processor 922 may serve one or more single boards. In other words, the memory and the processor can be set separately on each board. It can also be that multiple boards share the same memory and processor. In addition, necessary circuits can be provided on each board.
  • SoC system-on-chip
  • all or part of the functions of part 920 and part 910 can be realized by SoC technology, for example, a base station function chip Realization, the base station function chip integrates a processor, a memory, an antenna interface and other devices, the program of the base station related functions is stored in the memory, and the processor executes the program to realize the relevant functions of the base station.
  • the base station function chip can also read a memory external to the chip to implement related functions of the base station.
  • FIG. 15 the structure of the access network device illustrated in FIG. 15 is only a possible form, and should not constitute any limitation in the embodiment of the present application. This application does not exclude the possibility of other types of base station structures that may appear in the future.
  • the processor may be a central processing unit (central processing unit, CPU), and the processor may also be other general-purpose processors, digital signal processors (digital signal processors, DSP), and dedicated integration Circuit (application specific integrated circuit, ASIC), ready-made programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc.
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
  • the memory in the embodiments of the present application may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory can be read-only memory (ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), and electrically available Erase programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • the volatile memory may be random access memory (RAM), which is used as an external cache.
  • RAM random access memory
  • static random access memory static random access memory
  • DRAM dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • Access memory synchronous DRAM, SDRAM
  • double data rate synchronous dynamic random access memory double data rate SDRAM, DDR SDRAM
  • enhanced synchronous dynamic random access memory enhanced SDRAM, ESDRAM
  • synchronous connection dynamic random access memory Take memory (synchlink DRAM, SLDRAM) and direct memory bus random access memory (direct rambus RAM, DR RAM).
  • the above-mentioned embodiments may be implemented in whole or in part by software, hardware, firmware or any other combination.
  • the above-mentioned embodiments may be implemented in the form of a computer program product in whole or in part.
  • the computer program product includes one or more computer instructions or computer programs.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium.
  • the computer instructions may be transmitted from a website, computer, server, or data center. Transmission to another website, computer, server or data center via wired (such as infrared, wireless, microwave, etc.).
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center that includes one or more sets of available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, and a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium.
  • the semiconductor medium may be a solid state drive.
  • the embodiments of the present application also provide a computer-readable medium on which a computer program is stored.
  • the steps performed by the access network device in any of the above-mentioned embodiments or the core network device is executed. Steps, or steps performed by the security gateway device.
  • the embodiments of the present application also provide a computer program product that, when executed by a computer, implements the steps performed by the access network device in any of the above embodiments, or the steps performed by the core network device, or the security gateway device. A step of.
  • An embodiment of the present application also provides a system chip, which includes: a communication unit and a processing unit.
  • the processing unit may be a processor, for example.
  • the communication unit may be, for example, a communication interface, an input/output interface, a pin or a circuit, or the like.
  • the processing unit can execute computer instructions so that the chip in the communication device executes the steps performed by the access network device provided in the embodiments of the present application, or the steps performed by the core network device, or the steps performed by the security gateway device.
  • the computer instructions are stored in a storage unit.
  • the embodiment of the present application also provides a communication system, which includes the aforementioned access network device, core network device, and security gateway device.
  • various aspects or features of the present application can be implemented as methods, devices, or products using standard programming and/or engineering techniques.
  • article of manufacture used in this application encompasses a computer program accessible from any computer-readable device, carrier, or medium.
  • computer-readable media may include, but are not limited to: magnetic storage devices (for example, hard disks, floppy disks, or tapes, etc.), optical disks (for example, compact discs (CD), digital versatile discs (DVD)) Etc.), smart cards and flash memory devices (for example, erasable programmable read-only memory (EPROM), cards, sticks or key drives, etc.).
  • various storage media described herein may represent one or more devices and/or other machine-readable media for storing information.
  • machine-readable medium may include, but is not limited to, wireless channels and various other media capable of storing, containing, and/or carrying instructions and/or data.
  • hash values there are multiple hash values in this application, such as “first hash value”, “second hash value”, “third hash value”, etc.
  • the “first hash value”, “Second Hash Value”, “Third Hash Value”, etc. respectively indicate the hash values obtained by performing hash operations according to different parameters.
  • the “first hash value”, “second hash value” and “first hash value” The specific value of the “three hash value” is determined by the hash parameters, and "first", “second”, “third”, etc. do not impose any restrictions on the hash value.
  • the disclosed system, device, and method can be implemented in other ways.
  • the device embodiments described above are merely illustrative, for example, the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components may be combined or It can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual couplings or direct couplings or communication connections may be indirect couplings or communication connections between devices or units through some interfaces, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of the present application essentially or the part that contributes to the existing technology or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program code .

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种基于网际协议版本IPv6的无线网络通信方法和通信设备,该方法包括:根据明文IPv6报文内的隧道端点标识TEID字段确定明文IPv6报文的传输路径,TEID字段用于指示明文IPv6报文所属的承载;根据确定的明文IPv6报文的传输路径传输明文IPv6报文。

Description

一种基于网际协议版本IPv6的无线网络通信方法和通信设备
本申请要求于2020年4月10日提交中国专利局、申请号为202010281148.2、申请名称为“一种基于网际协议版本IPv6的无线网络通信方法和通信设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,并且更具体的,涉及一种基于网际协议版本IPv6的无线网络通信方法和通信设备。
背景技术
随着网际协议版本4(Internet Protocol version 4,IPv4)地址的枯竭,各国IP地址向网际协议版本6(Internet Protocol version 6,IPv6)上迁移已成为趋势。在IPv4协议中,通信业界通常采用五元组来确定一个数据报文的转发路径,在IPv6协议中,可以根据三元组即源地址、目的地址和流标签来确定一个数据报文的转发路径,但目前根据三元组计算出的传输路径可能相同,导致所有报文皆从一条路径被传输,浪费了带宽。
发明内容
本申请提供一种基于网际协议版本IPv6的无线网络通信方法和通信设备,该通信方法可以实现同一个承载的IPv6报文可以在同一个路径传输,也可以使得不同承载的IPv6报文散列在不同传输路径传输,实现负载均衡。
第一方面,提供了一种基于网际协议版本IPv6的通信方法,该方法可以由接入网设备或者接入网设备中的芯片执行,或者该方法可以由核心网设备或者核心网设备中的芯片执行,该方法包括:根据明文IPv6报文内的隧道端点标识TEID字段确定所述明文IPv6报文的传输路径,所述TEID字段用于指示所述明文IPv6报文所属的承载;根据确定的所述明文IPv6报文的传输路径传输所述明文IPv6报文。
因此,根据明文IPv6报文内的隧道端点标识TEID字段确定该明文IPv6报文的传输路径,隧道端点标识TEID字段是承载的标识符,每个承载TEID字段均不相同,因此根据明文IPv6报文内的隧道端点标识TEID字段确定该明文IPv6报文的传输路径,即可以保证同一个承载的IPv6报文可以在同一个路径传输,也可以使得不同承载的IPv6报文散列在不同传输路径传输,实现负载均衡。
结合第一方面,在第一方面的某些实现方式中,所述根据明文IPv6报文内的隧道端点标识TEID字段确定所述明文IPv6报文的传输路径,包括:根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段;根据填充后的所述Flow Label字段和参与哈希计算的第一参数进行哈希计算得到第一哈希值,所述SIP和所述DIP为所述明文IPv6报文的SIP和DIP;根据所述第一哈希值确定所述明文IPv6报文的传输路径。
结合第一方面,在第一方面的某些实现方式中,所述根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段,包括:将所述TEID字段 的N bit填入所述Flow Label字段的N bit,所述Flow Label字段包括N bit;或者,将所述TEID字段和所述第一参数进行哈希计算得到第二哈希值,将所述第二哈希值的N bit填入所述Flow Label字段的N bit,所述Flow Label字段包括N bit。
结合第一方面,在第一方面的某些实现方式中,所述明文IPv6报文的Flow Label字段包括第一字段和第二字段,所述根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段,包括:将所述TEID字段截取与所述Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述Flow Label的第一字段或者第二字段;或者,将所述TEID字段和第一参数进行哈希计算得到第二哈希值,将所述第二哈希值截取与所述Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述Flow Label的第一字段或者第二字段。
结合第一方面,在第一方面的某些实现方式中,当所述明文IPv6报文分成多个数据码片时,所述方法还包括:根据所述多个数据码片的每个数据码片的Flow Label字段、源地址SIP和目的地址DIP进行哈希计算得到第三哈希值,所述SIP和所述DIP为所述每个数据码片的SIP和DIP,其中所述每个数据码片的Flow Label字段的内容和所述明文IPv6报文的Flow Label字段的内容相同;根据所述第三哈希值确定所述每个数据码片的传输路径。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:当所述明文IPv6报文需要加密传输时,根据填充后的所述明文IPv6报文的流标签Flow Label字段填充密文IPv6报文的Flow Label字段,所述密文IPv6报文为所述明文IPv6报文加密后的报文;根据填充后密文IPv6报文的Flow Label字段和参与哈希计算的第二参数进行哈希计算得到第四哈希值;根据所述第四哈希值确定所述密文IPv6报文的传输路径。
结合第一方面,在第一方面的某些实现方式中,所述根据填充后的所述明文IPv6报文的流标签Flow Label字段填充密文IPv6报文的Flow Label字段,包括:所述密文IPv6报文的Flow Label字段的内容与所述明文IPv6报文的流标签Flow Label字段的内容相同;或者,将所述明文IPv6报文的流标签Flow Label字段和所述第二参数进行哈希计算得到第五哈希值,根据所述第五哈希值填充所述密文IPv6报文的Flow Label字段。
结合第一方面,在第一方面的某些实现方式中,所述密文报文的Flow Label字段包括第三字段和第四字段,所述根据所述第五哈希值填充所述密文IPv6报文的Flow Label字段,包括:将所述第五哈希值的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述Flow Label字段包括N bit;或者,将所述第五哈希值截取与所述密文IPv6报文的Flow Label字段的第三字段或者第四字段相同长度的部分,填充所述密文IPv6报文的Flow Label字段的第三字段或者第四字段。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:根据明文Ipv4报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,所述密文IPv6报文为所述明文报文加密后的报文;根据填充后的密文IPv6报文的Flow Label字段和该第二参数进行哈希计算得到第六哈希值;根据所述第六哈希值确定所述密文IPv6报文的传输路径。
结合第一方面,在第一方面的某些实现方式中,所述根据明文Ipv4报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,包括:将所述TEID字段的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括 N bit;或者,将所述TEID字段和该第二参数进行哈希计算得到第七哈希值,将所述第七哈希值的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit。
结合第一方面,在第一方面的某些实现方式中,所述密文IPv6报文的Flow Label字段包括第五字段和第六字段,所述根据明文Ipv4报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,包括:将所述TEID字段截取与所述密文IPv6报文的Flow Label字段的第五字段或者第六字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第五字段或者第六字段;或者,将所述TEID字段和第二参数进行哈希计算得到第八哈希值,将所述第八哈希值截取与所述密文IPv6报文的Flow Label字段的第五字段或者第六字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第五字段或者第六字段。
结合第一方面,在第一方面的某些实现方式中,所述明文Ipv4报文分为多个码片时,所述方法还包括:将所述明文Ipv4报文分为多个码片;对所述多个码片中的每个码片加密得到所述每个码片的密文报文;根据所述明文Ipv4报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段;根据所述密文报文的Flow Label字段和第二参数进行哈希计算得到第九哈希值;根据所述第九哈希值确定所述每个密文码片的传输路径。
结合第一方面,在第一方面的某些实现方式中,所述根据所述明文Ipv4报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段,包括:将所述TEID字段的N bit填入所述每个码片的密文报文的Flow Label字段的N bit,所述每个码片的密文报文的Flow Label字段包括N bit;或者,将所述TEID字段和第二参数进行哈希计算得到第十哈希值,将所述第十哈希值的N bit填入所述每个码片的密文报文的Flow Label字段的N bit,所述每个码片的密文报文的Flow Label字段包括N bit。
结合第一方面,在第一方面的某些实现方式中,所述明文Ipv4报文的所述每个码片的密文报文的Flow Label字段包括第七字段和第八字段,所述根据所述明文报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段,包括:将所述TEID字段截取与所述每个码片的密文报文的Flow Label字段的第七字段或者第八字段相同长度的部分,填充所述每个码片的密文报文的Flow Label字段的第七字段或者第八字段;或者,将所述TEID字段和第一参数进行哈希计算得到第九哈希值,将所述第九哈希值截取与所述每个码片的密文报文的Flow Label字段的第七字段或者第八字段相同长度的部分,填充所述每个码片的密文报文的Flow Label字段的第七字段或者第八字段。
结合第一方面,在第一方面的某些实现方式中,所述第一参数包括以下参数中的至少一种:所述明文IPv6报文的SIP、所述明文IPv6报文的DIP、所述明文IPv6报文的下个首部Next Header、所述明文IPv6报文的源端口SPt和所述明文IPv6报文的目的端口DPt。
结合第一方面,在第一方面的某些实现方式中,所述第二参数包括以下参数中的至少一种:所述密文报文的SIP、所述密文报文的DIP和所述密文报文的下个首部Next Header。
第二方面,提供了一种基于网际协议版本IPv6的通信方法,该方法可以由安全网关设备执行,或者可以由安全网关设备中的芯片执行。该方法包括:接收核心网设备发送的明文报文;根据所述明文报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,所述密文IPv6报文为所述明文报文加密后的报文;根据填充后的密文IPv6报文的Flow Label字段和参与哈希计算的第一参数进行哈希计算得到第一哈希值;根据所述第 一哈希值确定所述密文IPv6报文的传输路径。
结合第二方面,在第二方面的某些实现方式中,所述明文报文为IPv6报文或者Ipv4报文,所述根据所述明文报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,包括:将所述TEID字段的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit;或者,将所述TEID字段和所述第一参数进行哈希计算得到第二哈希值,将所述第二哈希值的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit。
结合第二方面,在第二方面的某些实现方式中,所述明文报文为IPv6报文或者Ipv4报文,所述密文IPv6报文的Flow Label字段包括第一字段和第二字段,所述根据所述明文报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,包括:将所述TEID字段截取与所述密文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第一字段或者第二字段;或者,将所述TEID字段和所述第一参数进行哈希计算得到第三哈希值,将所述第三哈希值截取与所述密文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第一字段或者第二字段。
结合第二方面,在第二方面的某些实现方式中,所述明文报文为IPv6报文,所述根据所述明文报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,包括:根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段;将填充的所述明文IPv6报文的流标签Flow Label字段复制所述密文IPv6报文的流标签Flow Label字段。
结合第二方面,在第二方面的某些实现方式中,所述明文报文为IPv6报文,所述明文报文分为多个码片时,所述方法还包括:根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段;将填充Flow Label字段后的所述明文IPv6报文分为多个码片,所述多个码片中的每个码片均包含填充的所述Flow Label字段;将所述每个码片的Flow Label字段复制到所述每个码片加密的密文报文的Flow Label字段;根据所述密文报文的Flow Label字段和所述第一参数进行哈希计算得到第四哈希值;根据所述第四哈希值确定所述每个密文报文的传输路径。
结合第二方面,在第二方面的某些实现方式中,所述根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段,包括:将所述TEID字段的N bit填入所述明文IPv6报文的Flow Label字段的N bit,所述明文IPv6报文的Flow Label字段包括N bit;或者,将所述TEID字段和第二参数进行哈希计算得到第五哈希值,将所述第五哈希值的N bit填入所述明文IPv6报文的Flow Label字段的N bit,所述明文IPv6报文的Flow Label字段包括N bit。
结合第二方面,在第二方面的某些实现方式中,所述明文IPv6报文的Flow Label字段包括第一字段和第二字段,所述根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段,包括:将所述TEID字段截取与所述明文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述明文IPv6报文的Flow Label的第一字段或者第二字段;或者,将所述TEID字段和第二参数进行哈希计算得到第六哈希值,将所述第六哈希值截取与所述明文IPv6报文的Flow Label字段的第一字段 或者第二字段相同长度的部分,填充所述明文IPv6报文的Flow Label的第一字段或者第二字段。
结合第二方面,在第二方面的某些实现方式中,所述明文报文为Ipv4报文或者IPv6报文,所述明文报文分为多个码片时,所述方法还包括:将所述明文报文分为多个码片;对所述多个码片中的每个码片加密得到所述每个码片的密文报文;根据所述明文报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段;根据所述密文报文的Flow Label字段和所述第一参数进行哈希计算得到第七哈希值;根据所述第七哈希值确定所述每个密文报文的传输路径。
结合第二方面,在第二方面的某些实现方式中,所述根据所述明文报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段,包括:将所述TEID字段的N bit填入所述每个码片的密文报文的Flow Label字段的N bit,所述每个码片的密文报文的Flow Label字段包括N bit;或者将所述TEID字段和第一参数进行哈希计算得到第八哈希值,
将所述第八哈希值的N bit填入所述每个码片的密文报文的Flow Label字段的N bit,所述每个码片的密文报文的Flow Label字段包括N bit。
结合第二方面,在第二方面的某些实现方式中,所述每个码片的密文报文的Flow Label字段包括第一字段和第二字段,所述根据所述明文报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段,包括:将所述TEID字段截取与所述每个码片的密文报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述每个码片的密文报文的Flow Label字段的第一字段或者第二字段;或者,将所述TEID字段和第一参数进行哈希计算得到第九哈希值,将所述第九哈希值截取与所述每个码片的密文报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述每个码片的密文报文的Flow Label字段的第一字段或者第二字段。
结合第二方面,在第二方面的某些实现方式中,所述第一参数包括以下参数中的至少一种:所述密文报文的SIP、所述密文报文的DIP和所述密文报文的下个首部Next Header。
结合第二方面,在第二方面的某些实现方式中,所述第二参数包括以下参数中的至少一种:所述明文报文的SIP、所述明文报文的DIP、所述明文报文的下个首部Next Header、所述明文报文的源端口SPt和所述明文报文的目的端口DPt。
第三方面,提供了一种通信设备,包括:处理单元,用于根据明文IPv6报文内的隧道端点标识TEID字段确定所述明文IPv6报文的传输路径;收发单元,用于根据确定的所述明文IPv6报文的传输路径传输所述明文IPv6报文。
结合第三方面,在第三方面的某些实现方式中,所述处理单元具体用于:根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段;根据填充后的所述Flow Label字段和参与哈希计算的第一参数进行哈希计算得到第一哈希值;根据所述第一哈希值确定所述明文IPv6报文的传输路径。
结合第三方面,在第三方面的某些实现方式中,所述处理单元具体用于:将所述TEID字段的N bit填入所述Flow Label字段的N bit,所述Flow Label字段包括N bit;或者,将所述TEID字段和第一参数进行哈希计算得到第二哈希值,将所述第二哈希值的N bit填入所述Flow Label字段的N bit,所述Flow Label字段包括N bit。
结合第三方面,在第三方面的某些实现方式中,所述明文IPv6报文的Flow Label字段包括第一字段和第二字段,所述处理单元具体用于,包括:将所述TEID字段截取与所述Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述Flow Label的第一字段或者第二字段;或者,将所述TEID字段和第一参数进行哈希计算得到第二哈希值,将所述第二哈希值截取与所述Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述Flow Label的第一字段或者第二字段。
结合第三方面,在第三方面的某些实现方式中,当所述明文IPv6报文分成多个数据码片时,所述处理单元还用于:根据所述多个数据码片的每个数据码片的Flow Label字段和所述第一参数进行哈希计算得到第三哈希值,其中所述每个数据码片的Flow Label字段的内容和所述明文IPv6报文的Flow Label字段的内容相同;根据所述第三哈希值确定所述每个数据码片的传输路径。
结合第三方面,在第三方面的某些实现方式中,所述处理单元还用于:当所述明文IPv6报文需要加密传输时,根据填充后的所述明文IPv6报文的流标签Flow Label字段填充密文IPv6报文的Flow Label字段,所述密文IPv6报文为所述明文IPv6报文加密后的报文;根据填充后密文IPv6报文的Flow Label字段和参与哈希计算的第二参数进行哈希计算得到第四哈希值,所述SIP和所述DIP为所述密文IPv6报文的SIP和DIP;根据所述第四哈希值确定所述密文IPv6报文的传输路径。
结合第三方面,在第三方面的某些实现方式中,所述处理单元还用于:将所述明文IPv6报文的流标签Flow Label字段复制到所述密文IPv6报文的Flow Label字段;或者,将所述明文IPv6报文的流标签Flow Label字段和第二参数进行哈希计算得到第五哈希值,根据所述第五哈希值填充所述密文IPv6报文的Flow Label字段。
结合第三方面,在第三方面的某些实现方式中,所述密文报文的Flow Label字段包括第三字段和第四字段,所述处理单元还用于,包括:将所述第五哈希值的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述Flow Label字段包括N bit;或者,将所述第五哈希值截取与所述密文IPv6报文的Flow Label字段的第三字段或者第四字段相同长度的部分,填充所述密文IPv6报文的Flow Label字段的第三字段或者第四字段。
结合第三方面,在第三方面的某些实现方式中,所述处理单元还用于:根据明文Ipv4报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,所述密文IPv6报文为所述明文报文加密后的报文;所述处理单元还用于根据填充后的密文IPv6报文的Flow Label字段和所述第二参数参数进行哈希计算得到第六哈希值;所述处理单元还用于根据所述第六哈希值确定所述密文IPv6报文的传输路径。
结合第三方面,在第三方面的某些实现方式中,所述处理单元还用于:将所述TEID字段的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit;或者,将所述TEID字段和第二参数进行哈希计算得到第七哈希值,
将所述第七哈希值的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit。
结合第三方面,在第三方面的某些实现方式中,所述密文IPv6报文的Flow Label字段包括第五字段和第六字段,所述处理单元还用于:将所述TEID字段截取与所述密文IPv6报文的Flow Label字段的第五字段或者第六字段相同长度的部分,填充所述密文IPv6报文 的Flow Label的第五字段或者第六字段;或者,将所述TEID字段和第二参数进行哈希计算得到第八哈希值,将所述第八哈希值截取与所述密文IPv6报文的Flow Label字段的第五字段或者第六字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第五字段或者第六字段。
结合第三方面,在第三方面的某些实现方式中,所述明文Ipv4报文分为多个码片时,所述处理单元还用于:将所述明文Ipv4报文分为多个码片;对所述多个码片中的每个码片加密得到所述每个码片的密文报文;根据所述明文Ipv4报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段;根据所述密文报文的Flow Label字段和第二参数进行哈希计算得到第九哈希值;根据所述第九哈希值确定所述每个密文码片的传输路径。
结合第三方面,在第三方面的某些实现方式中,所述处理单元还用于:将所述TEID字段的N bit填入所述每个码片的密文报文的Flow Label字段的N bit,所述每个码片的密文报文的Flow Label字段包括N bit;或者,将所述TEID字段和第二参数进行哈希计算得到第十哈希值,将所述第十哈希值的N bit填入所述每个码片的密文报文的Flow Label字段的N bit,所述每个码片的密文报文的Flow Label字段包括N bit。
结合第三方面,在第三方面的某些实现方式中,所述每个码片的密文报文的Flow Label字段包括第七字段和第八字段,所述处理单元还用于:将所述TEID字段截取与所述每个码片的密文报文的Flow Label字段的第七字段或者第八字段相同长度的部分,填充所述每个码片的密文报文的Flow Label字段的第七字段或者第八字段;或者,将所述TEID字段和第二参数进行哈希计算得到第九哈希值,将所述第九哈希值截取与所述每个码片的密文报文的Flow Label字段的第七字段或者第八字段相同长度的部分,填充所述每个码片的密文报文的Flow Label字段的第七字段或者第八字段。
结合第三方面,在第三方面的某些实现方式中,所述第二参数包括以下参数中的至少一种:所述明文报文的SIP、所述明文报文的DIP、所述明文报文的下个首部Next Header、所述明文报文的源端口SPt和所述明文报文的目的端口DPt。
结合第三方面,在第三方面的某些实现方式中,所述第二参数包括以下参数中的至少一种:所述密文报文的SIP、所述密文报文的DIP和所述密文报文的下个首部Next Header。
第四方面,提供了一种安全网关设备,包括:收发单元,用于接收核心网设备发送的明文报文;处理单元,用于根据所述明文报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,所述密文IPv6报文为所述明文报文加密后的报文;所述处理单元还用于根据填充后的密文IPv6报文的Flow Label字段和参与哈希计算的第一参数进行哈希计算得到第一哈希值;所述处理单元还用于根据所述第一哈希值确定所述密文IPv6报文的传输路径。
结合第四方面,在第四方面的某些实现方式中,所述明文报文为IPv6报文或者Ipv4报文,所述处理单元用于:将所述TEID字段的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit;或者,将所述TEID字段和第一参数进行哈希计算得到第二哈希值,将所述第二哈希值的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit。
结合第四方面,在第四方面的某些实现方式中,所述明文报文为IPv6报文或者Ipv4, 所述密文IPv6报文的Flow Label字段包括第一字段和第二字段,所述处理单元用于:将所述TEID字段截取与所述密文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第一字段或者第二字段;或者,将所述TEID字段和第一参数进行哈希计算得到第三哈希值,将所述第三哈希值截取与所述密文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第一字段或者第二字段。
结合第四方面,在第四方面的某些实现方式中,所述明文报文为IPv6报文,所述处理单元用于:
根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段;将填充的所述明文IPv6报文的流标签Flow Label字段复制所述密文IPv6报文的流标签Flow Label字段。
结合第四方面,在第四方面的某些实现方式中,所述明文报文为IPv6报文,所述明文报文分为多个码片时,所述处理单元还用于:根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段;将填充Flow Label字段后的所述明文IPv6报文分为多个码片,所述多个码片中的每个码片均包含填充的所述Flow Label字段;将所述每个码片的Flow Label字段复制到所述每个码片加密的密文报文的Flow Label字段;
根据所述密文报文的Flow Label字段和所述第一参数进行哈希计算得到第四哈希值;根据所述第四哈希值确定所述每个密文报文的传输路径。
结合第四方面,在第四方面的某些实现方式中,所述处理单元用于:将所述TEID字段的N bit填入所述明文IPv6报文的Flow Label字段的N bit,所述明文IPv6报文的Flow Label字段包括N bit;或者,将所述TEID字段和第二参数进行哈希计算得到第五哈希值,将所述第五哈希值的N bit填入所述明文IPv6报文的Flow Label字段的N bit,所述明文IPv6报文的Flow Label字段包括N bit。
结合第四方面,在第四方面的某些实现方式中,所述明文IPv6报文的Flow Label字段包括第一字段和第二字段,所述处理单元用于:将所述TEID字段截取与所述明文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述明文IPv6报文的Flow Label的第一字段或者第二字段;或者,将所述TEID字段和第二参数进行哈希计算得到第六哈希值,将所述第六哈希值截取与所述明文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述明文IPv6报文的Flow Label的第一字段或者第二字段。
结合第四方面,在第四方面的某些实现方式中,所述明文报文为Ipv4报文或者IPv6报文,所述明文报文分为多个码片时,所述处理单元还用于:将所述明文报文分为多个码片;对所述多个码片中的每个码片加密得到所述每个码片的密文报文;根据所述明文报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段;根据所述密文报文的Flow Label字段和所述第一参数进行哈希计算得到第七哈希值;根据所述第七哈希值确定所述每个密文报文的传输路径。
结合第四方面,在第四方面的某些实现方式中,所述处理单元还用于:将所述TEID字段的N bit填入所述每个码片的密文报文的Flow Label字段的N bit,所述每个码片的密文报文的Flow Label字段包括N bit;或者,将所述TEID字段和第一参数进行哈希计算得到第 八哈希值,将所述第八哈希值的N bit填入所述每个码片的密文报文的Flow Label字段的N bit,所述每个码片的密文报文的Flow Label字段包括N bit。
结合第四方面,在第四方面的某些实现方式中,所述每个码片的密文报文的Flow Label字段包括第一字段和第二字段,所述处理单元还用于:将所述TEID字段截取与所述每个码片的密文报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述每个码片的密文报文的Flow Label字段的第一字段或者第二字段;或者,将所述TEID字段和第一参数进行哈希计算得到第九哈希值,将所述第九哈希值截取与所述每个码片的密文报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述每个码片的密文报文的Flow Label字段的第一字段或者第二字段。
结合第四方面,在第四方面的某些实现方式中,所述第一参数包括以下参数中的至少一种:所述密文报文的SIP、所述密文报文的DIP和所述密文报文的下个首部Next Header。
结合第四方面,在第四方面的某些实现方式中,所述第二参数包括以下参数中的至少一种:所述明文报文的SIP、所述明文报文的DIP、所述明文报文的源端口SPt、所述明文报文的目的端口DPt和所述明文报文的下个首部Next Header。
第五方面,提供了一种通信装置,包括处理器,该处理器与存储器相连,该存储器用于存储计算机程序,该处理器用于执行该存储器中存储的计算机程序,以使得该装置执行上述第一方面或第一方面的任意可能的实现方式中的方法,或者第二方面或第二方面的任意可能的实现方式中的方法。
第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序被运行时,实现上述第一方面或第一方面的任意可能的实现方式中的方法,或者第二方面或第二方面的任意可能的实现方式中的方法。
第七方面,提供了一种芯片,其特征在于,包括处理器和接口;该处理器用于读取指令以执行上述第一方面或第一方面的任意可能的实现方式中的方法,或者第二方面或第二方面的任意可能的实现方式中的方法。
可选地,该芯片还可以包括存储器,该存储器中存储有指令,处理器用于执行存储器中存储的指令或源于其他的指令。
第八方面,提供了一种通信系统,该系统包括具有实现上述第一方面的各方法及各种可能设计的功能的装置和具有实现上述第二方面的各方法及各种可能设计的功能的装置。
附图说明
图1是本申请实施例的一种应用场景的示意图。
图2是本申请实施例的一种端到端的负载均衡行为示意图。
图3是本申请实施例的相同会话的数据报文在同一个路径上转发以保证数据报文不会乱序的示意性流程图。
图4是本申请实施例的一种基于网际协议版本IPv6的无线网络通信方法的示意性流程图。
图5是IPv6报文的基本格式示意图。
图6a是本申请实施例的IPv6报文分片后的第一码片的示意图。
图6b是本申请实施例的IPv6报文分片后的第二码片的示意图。
图7是本申请实施例的另一种基于网际协议版本IPv6的无线网络通信方法的示意性流程图。
图8a示出了IPsec AH封装场景中的一种填充方式。
图8b示出了IPsec ESP封装场景的填充方式。
图9是是IPv4报文的基本格式示意图。
图10是本申请实施例的明文场景以太链路聚合技术进行负载均衡的示意性图。
图11是本申请实施例的密文场景以太链路聚合技术进行负载均衡的示意性图。
图12是本申请实施例的明文场景等价路由负载均衡的示意性图。
图13是本申请实施例的明文场景等价路由负载均衡提高可靠性的示意性图。
图14是本申请实施例的通信装置的示意性框图。
图15为本申请提供的一种接入网设备的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请实施例的技术方案可以应用于各种通信系统,例如:全球移动通信(global system for mobile communications,GSM)系统、码分多址(code division multiple access,CDMA)系统、宽带码分多址(wideband code division multiple access,WCDMA)系统、通用分组无线业务(general packet radio service,GPRS)、长期演进(long term evolution,LTE)系统、LTE频分双工(frequency division duplex,FDD)系统、LTE时分双工(time division duplex,TDD)、通用移动通信系统(universal mobile telecommunication system,UMTS)、全球互联微波接入(worldwide interoperability for microwave access,WiMAX)通信系统、第五代(5th generation,5G)系统或新无线(new radio,NR),此外,还可以适用于使用后续的演进系统,如第六代6G通信系统、甚至更高级的第七代7G通信系统等。
本申请实施例中的接入网设备可以是用于与终端设备通信的设备,可以是基站,或者接入点,或者网络设备,或者可以是指接入网中在空中接口上通过一个或多个扇区与无线终端通信的设备。网络设备可用于将收到的空中帧与IP分组进行相互转换,作为无线终端与接入网的其余部分之间的路由器,其中接入网的其余部分可包括网际协议(IP)网络。网络设备还可协调对空中接口的属性管理。例如,接入网设备可以是全球移动通讯(Global System of Mobile communication,GSM)或码分多址(Code Division Multiple Access,CDMA)中的基站(Base Transceiver Station,BTS),也可以是宽带码分多址(Wideband Code Division Multiple Access,WCDMA)中的基站(NodeB,NB),也可以是LTE系统中的演进型基站(evolved NodeB,eNB或eNodeB),还可以是云无线接入网络(cloud radio access network,CRAN)场景下的无线控制器,或者该接入设备可以为中继站、接入点、车载设备、可穿戴设备以及5G网络中的接入设备或者未来演进的PLMN网络中的网络设备等,可以是WLAN中的接入点(access point,AP),可以是新型无线系统(new radio,NR)系统中的gNB本申请实施例并不限定。需要说明的是,对于5G系统,在一个基站下,可能存在一个或多个发送接收点(Transmission Reception Point,TRP),所有的TRP属于同一个小区,其中,每个TRP和终端都可以使用本申请实施例所述的测量上报方法。 在另一种场景下,网络设备还可以分为控制单元(Control Unit,CU)和数据单元(Data Unit,DU),在一个CU下,可以存在多个DU,其中,每个DU和终端都可以使用本申请实施例所述的测量上报方法。CU-DU分离场景和多TRP场景的区别在于,TRP只是一个射频单元或一个天线设备,而DU中可以实现协议栈功能,例如DU中可以实现物理层功能。
另外,在本申请实施例中,接入网设备是接入网(radio access network,RAN)中的设备,或者说,是将终端设备接入到无线网络的RAN节点。例如,作为示例而非限定,作为接入网设备,可以列举:gNB、传输接收点(transmission reception point,TRP)、演进型节点B(evolved Node B,eNB)、无线网络控制器(radio network controller,RNC)、节点B(Node B,NB)、基站控制器(base station controller,BSC)、基站收发台(base transceiver station,BTS)、家庭基站(例如,home evolved NodeB,或home Node B,HNB)、基带单元(base band unit,BBU),或无线保真(wireless fidelity,Wifi)接入点(access point,AP)等。
接入网设备为小区提供服务,终端设备通过该小区使用的传输资源(例如,频域资源,或者说,频谱资源)与接入网设备进行通信,该小区可以是接入网设备(例如基站)对应的小区,小区可以属于宏基站,也可以属于小小区(small cell)对应的基站,这里的小小区可以包括:城市小区(metro cell)、微小区(micro cell)、微微小区(pico cell)、毫微微小区(femto cell)等,这些小小区具有覆盖范围小、发射功率低的特点,适用于提供高速率的数据传输服务。
本申请实施例中,核心网设备可以与接入网设备连接,使得终端设备能够通过接入网设备与核心网设备进行通信。示例性的,在核心网设备中,可以包括以下网元或功能:
接入管理功能(access management function,AMF):主要负责接入和移动性控制,包括注册管理(registration management,RM)和连接管理(connection management,CM)、接入鉴权和接入授权、可达性管理和移动性管理等。
用户面功能(user plane function,UPF):主要提供用户面支持,包括PDU会话和数据网络的连接点、数据包路由和转发、数据包检测和用户面策略执行、为用户面处理QoS、下行数据包缓存和下行数据通知的触发等。
分组控制功能(packet control function,PCF):主要是策略控制功能,包括支持统一化策略框架来监视网络行为、为控制面提供策略规则去执行。
鉴权服务功能(authentication server function,AUSF):主要负责提供安全相关的功能,如:鉴权,认证等。
统一数据管理(unified data Management,UDM):负责用户的鉴权认证相关的功能,具体有:鉴权凭据处理、用户身份处理、签约信息管理、接入授权等。
会话Session:会话Session是业务的基本单位,一个业务可以由1个或者多个Session组成。重要的是1个Session内部的报文是需要严格保序的,不同Session的报文是不需要保序的。通信术语“流”和本申请实施例的“会话”可以等同,本申请实施例中提及的流与会话都是单向的,本文中一个会话可以理解为所有三元组“哈希值”一样的报文的集合。
承载:公共数据网(Public Data Network,PDN)连接是UE和PGW之间的隧道,而演进分组系统(Evolved Packet System,EPS)承载是包含在PDN连接中的更小的隧道,PDN连接的作用是实现IP连通性。同一PDN连接中,不同的EPS承载代表了不同的服 务质量,PDN连接建立时同时建立1个EPS承载,称为默认承载,在同一PDN连接中,后续建立的EPS承载称为专用承载。一个承载的一个方向的数据报文拥有相同的TEID值(在GTP头部内),如果只有默认承载的话,可以简单的认为一个UE对应一个承载。5G已经没有承载的概念,而是使用“PDU Session”,本申请实施例中的承载可以是4G承载或5G PDU Session,后文均以承载进行描述。
哈希算法:将任意长度的二进制字符串映射为定长二进制字符串的映射规则我们称为散列(hash)算法,又叫哈希(hash)算法,而通过原始数据映射之后得到的二进制值称为哈希值。哈希算法主要特点:
1.从哈希值不能反向推导原始数据,具有单向计算性,极难逆推;
2.对输入数据敏感,哪怕只改了一个Bit,最后得到的哈希值完全相同,具有雪崩效应;
3.散列冲突的概率极小,哈希Key不同,计算出来的哈希值一样的概率极小。
图1示出了本申请实施例的一种应用场景100的示意图。在图1中包括一个接入网设备110和核心网设备120。其中,该接入网设备110例如工作在演进的通用移动通信系统陆地无线接入(evolved UMTS terrestrial radio access,E-UTRA)系统中,或者工作在NR系统中,或者工作在下一代通信系统或其他通信系统中。在该通信系统中,接入网设备110和核心网设备120可以相互传输数据,该通信系统又叫无线回传网络。
图1中的接入网设备例如为基站。其中,接入网设备在不同的系统对应不同的设备,例如在4G系统中可以对应eNB,在5G系统中对应5G中的接入网设备,例如gNB。本申请实施例所提供的技术方案也可以应用于未来的移动通信系统中,因此图1中的接入网设备也可以对应未来的移动通信系统中的接入网设备。图1以接入网设备是基站为例,实际上接入网设备可以参考前文的介绍。
应理解,图1所示的通信系统中还可以包括更多的网络节点,例如终端设备、其他接入网设备、安全网关、交换机等设备,图1所示的通信系统中包括的接入网设备或者核心网设备可以是上述各种形式的接入网设备或者核心网设备。本申请实施例在图中不再一一示出。
本申请中的技术方案也可用于其他通信系统,图1所示的通信系统并不对本申请造成任何限定。
在一个网络节点传输数据报文时,如果以电气电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)802.3ad(IEEE 802.3ad是执行链路聚合的标准方法)以太链路聚合技术或者等价路由负载均衡组合使用成倍提升带宽,还可以提供更强的数据传输的可靠性。如果一个网络节点有多条传输路径PATH,为了达到最大利用带宽目的,需要把该节点的多个数据报文尽可能地平分在多PATH上,并且要确保相同Session的数据报文要在一个PATH上转发以保证相同Session或者Flow的数据报文不会乱序。在多PATH场景下,如果将一个Session的数据报文平分在多个Path中转发则极大可能出现乱序现象,而乱序可能会影响此Session的正常功能与性能,因此通信业界对于相同Session的数据报文提供保序。
图2描述了端到端的负载均衡行为,其中转发节点R1有两条PATH进行转发,黑色表示第一Session,白色表示第二Session,第一Session的数据报文经过转发节点R2和转 发节点R3到达转发节点R5,第二Session的数据报文经过转发节点R4到达转发节点R5,相同Session的数据报文在一条Path上进行转发以保证相同Session的数据报文不会乱序。图2中的转发节点可以是图1所示的接入网设备和核心网设备之间的转发节点,如接入网设备和核心网设备之间的数据链路包括转发节点R1、R2、R3、R4和R5。
下面根据图3进一步说明相同Session的数据报文在同一个PATH上转发以保证相同Session的数据报文不会乱序的原因。图3示出了相同Session的数据报文在同一个PATH上转发以保证相同Session的数据报文不会乱序的示意性流程图。图3中数字代表数据报文在各自会话中的序号,图3中示出了三个会话,分别为第一会话,第二会话和第三会话,以第一会话为例,转发前第一会话的数据报文的顺序为1、2、3,转发后第一会话的数据报文的顺序还是1、2、3,没有乱序。相反地,如果相同Session的数据报文从不同PATH转发,可能会出现3、1、2这样的乱序,影响业务性能。
在IPv4时代,通常使用五元组(例如可以包括源IP地址(Source IP,SIP),目的IP地址(Destination IP,DIP),传输层协议(Protocol,Prot),源端口(Source Port,SPt),目的端口(Destination Port,DPt))来确定数据报文是否属于同一个会话,即对IPv4报文的五元组进行一次哈希计算,如果2个数据报文的哈希计算结果一致,则这2个数据报文属于相同Session。计算出不同的哈希值的过程也可以叫做哈希散列,不同的哈希值越多,哈希散列就越充分,从统计学角度来看,越容易把数据报文平均地在多条PATH上进行转发以达到充分利用带宽的目的。
网络节点对所有数据报文计算五元组哈希值,每个哈希值都唯一代表了一个Session。为了对相同Session的数据报文转发保序,即哈希值一样的报文可以在同一条PATH转发,不同哈希值的报文可以在多条PATH转发。
结合图3和表1进一步解释五元组、哈希值和会话的联系,以及负载均衡的行为。从图3可以直观看出第一会话、第二会话和第三会话,下表是分别根据每个会话的五元组进行哈希计算得到哈希值。其中,五元组的每一个部分都是哈希Key,五个哈希Key通过哈希算法得出哈希值;五元组中的一个或者多个字段不同,得出的哈希值可能也不相同;一个哈希值唯一标识了一个Session;相同Session的数据报文可以在一个PATH上转发,不同Session的数据报文可以在不同PATH上转发,保证任一Session在源节点和目的节点都保序。
表1 五元组计算哈希值
Figure PCTCN2021086217-appb-000001
针对多条PATH对IPv6数据报文进行转发的负载均衡算法,IETF-RFC 6437标准(国际互联网工程任务组(The Internet Engineering Task Force,IETF),文件要求(Request For Comments,RFC),RFC由互联网工程任务组(IETF)发布)描述可以根据三元组哈希(例如可以包括SIP,DIP,流标签Flow_Label)散列来分流,但是IPv6Flow_Label字段业界用 法开放,无公约性用法,标准也无强制要求,目前存在的一种方案是将Flow_Label的20bit全部写为0,因此根据三元组哈希(SIP,DIP,流标签Flow_Label)散列来分流会确定出很多数据报文的传输路径相同,大大浪费了带宽。
现有技术中对IPv6报文也采用五元组哈希(SIP,DIP,Next Header,SPt,DPt)散列来分流即将多个IPv6报文分散在不同PATH上转发。对IPv6报文采用五元组哈希散列来分流在以下多个场景中也无法做到充分的负载均衡。
例如,在典型的1个公共数据网关(Public Data Network Gateway,PGW)/用户面功能(User Plane Function,UPF)加1个本端业务IPv6场景下,PGW/UPF配置了一个IPv6地址,基站配置了一个IPv6地址,因此所有数据报文的三元组或者五元组的内容都相同,因此根据所有数据报文的三元组或者五元组计算哈希值都一致,如表2所示,无法散列开,导致全部从一条PATH上转发,负载均衡失败,空闲PATH的带宽被浪费。
表2 不同用户的数据报文的哈希值完全一样
Figure PCTCN2021086217-appb-000002
又例如,在多个公共数据网关PGW/用户面功能UPF加多个本端业务IPv6场景下,PGW/UPF配置了两个IPv6地址,分别是IPv6_1和IPv6_2;基站也配置了两个IPv6地址,分别是IPv6_1和IPv6_2,所有数据报文的三元组或者五元组哈希值可以有限的区分,如表3所示,但PGW/UPF/基站配置的IPv6地址数量有限,数据报文无法充分散列开,很容易导致流量无法平均的分配在多条PATH上,负载均衡性能不足,表3所示的基站IP1为明文IPv6地址。
表3 不同用户的数据报文一共只能算出2个哈希值
Figure PCTCN2021086217-appb-000003
又例如,在IPv6互联网安全协议(Internet Protocol Security,IPsec)场景下,该场景中,使用1对因特网密钥交换(Internet Key Exchange,IKE)IPv6地址(即文中所述的密文IPv6地址),不同用户的数据报文在加密后的SIP和DIP的值都一样,因此所有用户的数据报文加密后的密文的哈希值都一致(IPsec报文无论ESP封装还是AH封装,都无SPt和DPt字段)如表4所示,无法散列开,导致负载均衡失败,表4的隧道本端IP为密文IPv6地址。
表4 不同用户的数据报文在加密后的哈希值完全一样
Figure PCTCN2021086217-appb-000004
又例如,IPv6引入路径最大传输单元(Maximum Transmission Unit,PMTU)机制使得分片情况与IPv4相较不可控,在IPv6源报分片场景下,源报文文分片后,第一码片保留了源报文的完整头部信息,后续码片只有IPv6头部,没有用户数据报协议(User Datagram Protocol,UDP)头部,若采用五元组哈希散列,第一分片和后续分片哈希值不同,则不同分片报文在不同PATH进行转发,导致相同Session乱序的可能,如表5所示,表5中一个用户的数据报文在分片后,第2个码片丢失了UDP头部信息,因此第2个码片的哈希值与第1 个码片的哈希值不同导致被从2个PATH进行转发,在汇聚节点可能乱序到达,第2个码片先到达目的端,第1个码片后到达目的端,影响性能。
表5 用户的数据报文分片后的哈希值不一样
Figure PCTCN2021086217-appb-000005
目前现有技术只能依靠在回传网络源端或者目的端中部署多SIP或者多DIP以实现哈希散列的目的,具体如下:明文场景推荐客户本端配置多业务IPv6方式构造SIP/DIP的区别来保证散列,且对多SIP/DIP有要求
如表3所示,在表3所示的系统中,接入网设备部署2个地址,核心网设备部署2个地址,因此不同用户的数据报文哈希值不同,负载均衡有可能成功,但也有可能失败。在哈希值与选路径映射实现中,在进行多元组哈希得到哈希值后进行取模计算来映射路径(如双路径负载均衡是模2计算,即哈希值除以2取余数,结果为0选PATH1,结果为1选PATH2;如三路径负载均衡是模3,即哈希值除以3取余数,结果为0选PATH1,结果为1选PATH2,结果为2选PATH3;以此类推)。要保证多SIP/DIP计算出的哈希取模计算后结果不一样,不然依然达不到负载均衡目的。因此在规划SIP/DIP时要充分考虑和提前计算,避免出现多元组哈希计算得出的哈希值取模计算后结果唯一,负载均衡失败,如表6所示,表6描述了基站部署2个IPv6地址,但因为选取地址不当,虽然不同用户的数据报文哈希值不同,但是取模运算结果一样,导致负载均衡失败。
表6 基站部署2个IPv6地址的情况下负载均衡失败
Figure PCTCN2021086217-appb-000006
表7描述了基站部署2个IPv6地址,选取地址经过提前计算,不同用户的数据报文哈希值不同,取模运算结果也不同,负载均衡成功。
表7 基站部署2个IPv6地址的情况下负载均衡成功
Figure PCTCN2021086217-appb-000007
同样,在现有技术中,对于IPv6互联网安全协议IPsec场景下也是通过配置多安全网关IPv6地址或多个本端IPv6地址(安全网关和本端多个IPv6地址都指的是外层隧道密文IPv6地址)构造SIP/DIP的区别来保证散列,且对多SIP/DIP有要求。
上述技术,不仅需要客户部署额外的IPv6地址,还要充分保证多元组哈希计算后取模的不唯一性,可能会打乱组网设计、演进方案和地址规划等,增加成本,产品竞争力下降,并且散列程度严重不足,例如基站端配置2个SIP,通过哈希算法只能散列出2种哈希值,对应2条PATH做负载均衡,易引起负载均衡的严重不等价(一条路径流量很大,而另一条路径流量很小),无法充分利用带宽资源,负载均衡价值降低;可靠性依赖传输层(即第四层协议)的检测机制。控制面依赖SCTP Heartbreak机制检测链路,当链路故障后一般需要45-50秒才能收敛,其中,45-50为典型值,可通过配置影响该值;数据面依赖GTP-U Echo机制检测链路,当链路故障后一般需要15-75秒才能收敛,其中,15-75为典型值,可通过配置影响该值。当一条路径故障发生切换时,容易导致业务长时间断流而断链,业务体验降低,可靠性降低。
有鉴于此,本申请提供了一种基于网际协议版本IPv6的无线网络通信方法,可以实现在不增加SIP/DIP的前提下,将实现以承载为粒度的哈希散列以充分利用带宽资源。
下面结合图4详细说明本申请提供的一种基于网际协议版本IPv6的无线网络通信方法,图4是本申请实施例的一种基于网际协议版本IPv6的无线网络通信方法200的示意性流程图,该方法200可以应用在图1所示的场景中,当然也可以应用在其他通信场景中,本申请实施例在此不作限制。
还应理解,在本申请实施例中,以接入网设备和核心网设备作为执行方法的执行主体为例,对方法进行说明。作为示例而非限定,执行方法的执行主体也可以是应用于接入网设备和核心网设备的芯片、芯片系统、或处理器等。
如图4所示,图4中示出的方法200可以包括S210至S220。下面结合图4详细说明方法200中的各个步骤。
S210,根据明文IPv6报文内的隧道端点标识TEID字段确定该明文IPv6报文的传输路 径。
S220,根据确定的该明文IPv6报文的传输路径传输该明文IPv6报文。
根据明文IPv6报文内的隧道端点标识TEID字段确定该明文IPv6报文的传输路径,隧道端点标识TEID字段是GTP隧道的标识符,每个承载(5G是PDU Session,后文不再强调,都以承载描述)的TEID字段均不相同,因此根据明文IPv6报文内的隧道端点标识TEID字段确定该明文IPv6报文的传输路径,即可以保证同一个承载的IPv6报文可以在同一个路径传输,也可以使得不同承载的IPv6报文充分散列,实现负载均衡。
在本申请实施例中,明文IPv6报文指的是数据业务IPv6报文,明文IPv4报文指的是数据业务IPv4报文,明文报文仅用来区别加密场景的密文报文,密文IPv6报文指的是上述所述明文IPv6或明文IPV4加密后的数据业务IPv6报文。
为了更清楚的理解本申请,下面详细对步骤S210进行解释说明。
首先介绍一下IPv6报文的基本格式,图5为IPv6报文的基本格式,IPv6报文包括IPv6头部和载荷,IPv6头部包括:
IP版本Version(4bit),该字段值为6;
流量分类Traffic Class(8bit);
流标签Flow Label(20bit),Flow Label用来标记IPv6数据包的承载的信息;
有效载荷的长度Payload Length(16bit),扩展报头也算在Payload长度里;
下一首部Next Header(8bit),,分段,安全,移动性,松散源路由,记录路由等的新方式;
跳数限制Hop Limit:(8bit):定义IP数据包所能经过的最大跳数,每跳一次将此值减1;
源地址Source Address(128bit);
目的地址Destination Address(128bit);和
数据包的扩展报头Extension Header(s)。
图5所示的IPv6报文的IPv6头部的Flow Label字段为0,三元组哈希值一致,无法通过三元组来实现负载均衡的目的。本申请通过根据明文IPv6报文内的隧道端点标识TEID字段确定该明文IPv6报文的传输路径,由于不同承载的明文IPv6报文内的隧道端点标识TEID字段不一样,因此根据明文IPv6报文内的隧道端点标识TEID字段确定该明文IPv6报文的传输路径,可以保证该承载的报文在同一条路径转发,保证该承载的报文的顺序转发,并且不同承载的哈希值不同,根据该不同的哈希值充分将报文散列开来,实现负载均衡。
可选的,步骤S210包括:将该明文IPv6报文的隧道端点标识TEID字段填充入该明文IPv6报文的流标签Flow Label字段;根据填充后的该Flow Label字段和参与哈希计算的第一参数进行哈希计算得到第一哈希值;根据该第一哈希值确定该明文IPv6报文的传输路径。
因此,通过将该明文IPv6报文的隧道端点标识TEID字段填充入该明文IPv6报文的流标签Flow Label字段,然后根据填充后的该Flow Label字段和参与哈希计算的第一参数进行哈希计算得到第一哈希值,由于TEID字段标识了唯一一个承载,该同一个承载的哈希值相同,不同承载的哈希值不同,根据该第一哈希值确定该明文IPv6报文的传输路径,可以保证该承载的报文在同一条路径转发,保证该承载的报文的顺序转发,并且不同承载的哈希值不同,根据该不同的哈希值充分将报文散列开来,实现负载均衡。
例如在双PATH场景下,如表8所示,基站和核心网均部署了一个IPv6地址,但不同用 户的TEID标识不一样,利用TEID填充流标签(Flow Label),每个用户填充后的Flow Label的值不相同,根据每个用户填充后的Flow Label和SIP以及DIP计算三元组哈希值,得到不同的哈希值,如用户1的哈希值为321,用户2的哈希值为432,用户3的哈希值为543,用户4的哈希值为654,用户5的哈希值为765,对多个不同的哈希值取模选取路径,得到用户1的传输路径为PATH2,用户2的传输路径为PATH1,用户3的传输路径为PATH2,用户4的传输路径为PATH1,用户5的传输路径为PATH2,实现了负载均衡。
表8 在双PATH场景下的负载均衡
Figure PCTCN2021086217-appb-000008
应理解,参与哈希计算的第一参数可以包括以下参数中的任一个或多个:所述明文IPv6报文的SIP、所述明文IPv6报文的DIP、所述明文IPv6报文的下个首部Next Header、所述明文IPv6报文的源端口SPt和所述明文IPv6报文的目的端口DPt。
根据根据填充后的该Flow Label字段和参与哈希计算的第一参数进行哈希计算得到第一哈希值,可以是根据三元组(所述明文IPv6报文的SIP、所述明文IPv6报文的DIP和填充后的该Flow Label字段)计算第一哈希值,或者根据六元组(所述明文IPv6报文的SIP、所述明文IPv6报文的DIP、所述明文IPv6报文的下个首部Next Header、所述明文IPv6报文的源端口SPt和所述明文IPv6报文的目的端口DPt和填充后的该Flow Label字段)计算第一哈希值,对此本申请并不进行限定。本申请实施例中以三元组为例来说明如何确定明文报文或密文报文的传输路径。
将该明文IPv6报文的隧道端点标识TEID字段填充入该明文IPv6报文的流标签Flow Label字段,在该填充了流标签Flow Label字段的明文IPv6报文被中间节点收到后,中间节点也可以根据三元组确定该明文IPv6报文的传输路径,该中间节点也可以实现负载均衡,同时也可以实现了承载粒度的计算资源的合理分配。
将该明文IPv6报文的隧道端点标识TEID字段填充入该明文IPv6报文的流标签Flow Label字段,在该填充了流标签Flow Label字段的明文IPv6报文被接收方收到后,如果接收方包括多个计算处理单元,接收方可以根据三元组来确定处理该明文IPv6报文的计算处理 单元,实现了接收方计算资源的合理分配,避免出现计算单元的分配不均。
当该明文IPv6报文需要分成多个数据码片时,在该明文IPv6报文分片之前,将该明文IPv6报文的隧道端点标识TEID字段填充入该明文IPv6报文的流标签Flow Label字段,然后对该明文IPv6报文分片,再将填充的该明文IPv6报文的流标签Flow Label字段复制到该明文IPv6报文分片的每个码片中,确保所有分片的三元组哈希值一样。
具体而言,在该明文IPv6报文分片场景中,在该明文IPv6报文分片之前,将该明文IPv6报文的隧道端点标识TEID字段填充入该明文IPv6报文的流标签Flow Label字段,然后对该明文IPv6报文分片。下面具体结合图6a、图6b和表9对该明文IPv6报文分片场景具体描述。
图6a和图6b所示为一个数据报文的分为两片报文的示意图。表9示出了该数据报文的分片报文的头部信息。在无线回传网络中,明文IPv6报文下一层头部分别是用户数据报协议(User Datagram Protocol,UDP)头部和通用无线分组业务隧道协议(General packet radio service Tunnelling Protocol,GTPv1)头部。如图6a所示,图6a所示的IPv6报文包括IPv6头部、分片扩展头部、UDP头部、GTPv1头部和载荷,GTPv1头部为GTP头部的一种类型,GTPv1头部包括隧道端点标识TEID字段。在一个IPv6报文分片时,第一码片会继承原始报文的头部,而其余码片只是复制IPv6头部,在该IPv6报文分片前,将该明文IPv6报文的隧道端点标识TEID字段填充入该明文IPv6报文的流标签Flow Label字段,然后对该明文IPv6报文分片,再将填充的该明文IPv6报文的流标签Flow Label字段复制到该明文IPv6报文分片的每个码片中,图6a为第一码片,该第一码片包括IPv6头部、UDP头部、GTPv1头部和载荷,图6b为第二码片,该第二码片包括IPv6头部和载荷,图6a对应表9的报文第一码片,图6b对应表9的报文第二码片,该第一码片和该第二码片的IPv6头部的流标签Flow Label字段的内容相同,因此对该第一码片和该第二码片计算三元组哈希值得到的哈希结果一样,根据该哈希结果确定该两片报文的路径一致。
表9 分片报文的传输路径一致
Figure PCTCN2021086217-appb-000009
下面具体说明如何将该明文IPv6报文的隧道端点标识TEID字段填充入该明文IPv6报文的流标签Flow Label字段。
在一种实现方式中,将该TEID字段的N bit填入该Flow Label字段的N bit,该Flow Label字段包括N bit;或者,将该TEID字段和第一参数进行哈希计算得到第二哈希值,将该第二哈希值的N bit填入该Flow Label字段的N bit,该Flow Label字段包括N bit。简而言之,就是根据该TEID字段填满该明文IPv6报文的流标签Flow Label字段,TEID字段为32bit,Flow Label字段为20bit,该TEID字段的N bit可以是该TEID字段的前20bit或者后20bit,也可以是随机或者以某种顺序在该TEID字段选取20bit。
应理解,在本申请实施例中,在根据填充后的该Flow Label字段和参与哈希计算的第 一参数进行哈希计算确定该明文IPv6报文的传输路径时的该第一参数,和将该TEID字段和第一参数进行哈希计算得到第二哈希值,根据该第二哈希值填充该Flow Label字段的第一参数可以相同或者不同。
在一种实现方式中,该明文IPv6报文的Flow Label字段包括第一字段和第二字段,将该TEID字段截取与该Flow Label字段的第一字段或者第二字段相同长度的部分,填充该Flow Label的第一字段或者第二字段;或者,将该TEID字段和第一参数进行哈希计算得到第二哈希值,将该第二哈希值截取与该Flow Label字段的第一字段或者第二字段相同长度的部分,填充该Flow Label的第一字段或者第二字段。
例如,该TEID字段包括32bit,Flow Label字段包括20bit,Flow Label字段分为第一字段和第二字段,第一字段包括18bit,第一字段包括2bit。可以在该TEID字段截取18bit填充到该Flow Label字段的第一字段;也可以将该TEID字段和第一参数进行哈希计算得到第二哈希值,将该第二哈希值截取18bit填充到该Flow Label字段的第一字段。
应理解,将该Flow Label字段中的一个字段填充,另一个字段保留,保留的字段可以用于他用,如用于QoS标识,对此本申请不进行任何限定。
还应理解,该第一字段和该第二字段的比特位数可以根据具体应用场景进行取值,对此本申请不进行任何限定。
在一种实现方式中,该第一参数包括以下参数中的至少一种:该明文IPv6报文的SIP、该明文IPv6报文的DIP、该明文IPv6报文的源端口SPt、该明文IPv6报文的目的端口DPt和该明文IPv6报文的下个首部Next Header。
为了更清楚的理解如何将该明文IPv6报文的隧道端点标识TEID字段填充入该明文IPv6报文的流标签Flow Label字段,下面根据具体例子进行说明。
如直接截断该TEID字段的后20bit填充Flow Label字段。
如对三元组(SIP,DIP,TEID)进行哈希计算后截取20bit填充Flow Label字段;或只截取18bit填充,前2bit保留。
如对四元组(SIP,DIP,Next Header,TEID)进行哈希计算后截取20bit填充;或只截取18bit填充,前2bit保留。
对六元组(SIP,DIP,Next Header,SPt,DPt,TEID)进行哈希计算后截取20bit填充;或只截取18bit填充,前2bit保留。
上文描述的是在IPv6明文场景Flow Label填充实现基于承载粒度的流负载均衡,下面对IPv6 IPsec隧道模式密文场景Flow Label填充实现基于承载粒度的流负载均衡进行详细描述。
在无线回传网络中,IPv6 IPsec隧道模式密文场景下,对于上行数据由接入网设备进行加密,下行数据由安全网关(Security Gateway,SeGW)加密,核心网设备也可以对下行数据加密,但是这样会增大核心网设备的计算量,因此下行数据一般由SeGW加密。
IPv6 IPsec隧道模式密文场景中,明文报文即内层报文可以是IPv6报文或者IPv4报文,密文报文即外层报文是IPv6报文。
下面结合图7详细说明本申请提供的一种通信方法,图7是本申请实施例的另一种基于网际协议版本IPv6的无线网络通信方法300的示意性流程图,该方法300可以应用在图1所示的场景中,当然也可以应用在其他通信场景中,本申请实施例在此不作限制。
还应理解,在本申请实施例中,以接入网设备和安全网关作为执行方法的执行主体为例,对方法进行说明。作为示例而非限定,执行方法的执行主体也可以是应用于接入网设备和安全网关的芯片、芯片系统、或处理器等。
如图7所示,图7中示出的方法300可以包括S310至S330。下面结合图7详细说明方法300中的各个步骤。
S310,根据该明文IPv6报文的隧道端点标识TEID字段填充入密文IPv6报文的流标签Flow Label字段。
S320,根据填充后的该Flow Label字段和参与哈希计算的第一参数进行哈希计算得到第一哈希值。
S330,根据该第一哈希值确定该密文IPv6报文的传输路径。
根据明文报文内的隧道端点标识TEID字段填充入密文IPv6报文的流标签Flow Label字段,隧道端点标识TEID字段是承载的标识符,每个承载TEID字段均不相同,因此根据明文报文内的隧道端点标识TEID字段填充的密文IPv6报文的流标签Flow Label字段跟承载相关联,根据填充后的该Flow Label字段和参与哈希计算的第一参数进行哈希计算得到第一哈希值,根据该第一哈希值确定该密文IPv6报文的传输路径,即可以保证同一个承载的密文IPv6报文可以在同一个路径传输,也可以使得不同承载的密文IPv6报文充分散列,实现负载均衡。表10描述了在双PATH场景下,利用TEID填充流标签(Flow Label)和计算三元组哈希值方式后密文报文的负载均衡,表10中所述隧道本端IP和隧道对端IP为密文IPv6地址。
表10 报文在加密后实现负载均衡
Figure PCTCN2021086217-appb-000010
应理解,该参与哈希计算的第一参数可以包括以下参数中的任一个或多个:所述密文IPv6报文的SIP、所述密文IPv6报文的DIP和所述密文IPv6报文的下个首部Next Header。
根据填充后的该Flow Label字段和该参与哈希计算的第一参数进行哈希计算得到第一哈希值,可以是根据三元组(所述密文IPv6报文的SIP、所述密文IPv6报文的DIP和填充后 的该Flow Label字段)计算第一哈希值,对此本申请并不进行限定。本申请实施例中以三元组为例来说明如何确定明文报文或密文报文的传输路径。
首先介绍明文报文是IPv6报文时,如何根据明文报文内的隧道端点标识TEID字段填充入密文IPv6报文的流标签Flow Label字段。
在一种实现方式中,当明文报文是IPv6报文时,将该TEID字段的N bit填入该密文IPv6报文的Flow Label字段的N bit,该密文IPv6报文的Flow Label字段包括N bit;或者,将该TEID字段和第一参数进行哈希计算得到第二哈希值,将该第二哈希值的N bit填入该密文IPv6报文的Flow Label字段的N bit,该密文IPv6报文的Flow Label字段包括N bit。
在一种实现方式中,当明文报文是IPv6报文时,该密文IPv6报文的Flow Label字段包括第一字段和第二字段,将该TEID字段截取与该密文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充该密文IPv6报文的Flow Label的第一字段或者第二字段;或者,将该TEID字段和第一参数进行哈希计算得到第三哈希值,将该第三哈希值截取与该密文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充该密文IPv6报文的Flow Label的第一字段或者第二字段。
在一种实现方式中,该明文报文为IPv6报文,根据该明文IPv6报文的隧道端点标识TEID字段填充该明文IPv6报文的流标签Flow Label字段;将填充的该明文IPv6报文的流标签Flow Label字段复制该密文IPv6报文的流标签Flow Label字段。
图8a示出了IPsec认证头(Authentication Header,AH)封装场景中的一种填充方式,明文报文IPv6头部(Inner IPv6)将TEID字段填充入Flow Label字段,然后加密后封装密文IPv6头部时(Outer IPv6),再将明文报文的Flow Label字段填充入密文报文IPv6头部的Flow Label字段,不同承载业务的密文报文Flow Label不一样,因此哈希值可以基于承载进行散列。
图8b示出了IPsec封装安全载荷(Encapsulating Security Payload,ESP)封装场景的填充方式,可以参考上述IPsec AH封装场景中的一种填充方式,此处不再赘述。
在一种实现方式中,该明文报文为IPv6报文,根据该明文IPv6报文的隧道端点标识TEID字段填充该明文IPv6报文的流标签Flow Label字段;根据填充的该明文IPv6报文的流标签Flow Label字段填充该密文IPv6报文的流标签Flow Label字段。应理解,根据该明文IPv6报文的隧道端点标识TEID字段填充该明文IPv6报文的流标签Flow Label字段的具体方法可以参考上文方法200中所描述的方法,此处不再赘述。
在一种实现方式中,所述根据填充的该明文IPv6报文的流标签Flow Label字段填充该密文IPv6报文的流标签Flow Label字段包括:将所述明文IPv6报文的流标签Flow Label字段和该第一参数进行哈希计算得到第四哈希值,根据所述第四哈希值填充所述密文IPv6报文的Flow Label字段。
在一种实现方式中,所述密文报文的Flow Label字段包括第三字段和第四字段,所述根据所述第四哈希值填充所述密文IPv6报文的Flow Label字段,包括:将所述第四哈希值的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述Flow Label字段包括N bit;或者,将所述第四哈希值截取与所述密文IPv6报文的Flow Label字段的第三字段或者第四字段相同长度的部分,填充所述所述密文IPv6报文的Flow Label字段的第三字段或者第四字段。
在一种实现方式中,该明文报文为IPv6报文,该明文报文分为多个码片时,根据该明文IPv6报文的隧道端点标识TEID字段填充该明文IPv6报文的流标签Flow Label字段;将填充Flow Label字段后的该明文IPv6报文分为多个码片,该多个码片中的每个码片均包含填充的该Flow Label字段;将该每个码片的Flow Label字段复制到该每个码片加密的密文报文的Flow Label字段。
在一种实现方式中,该明文报文为IPv6报文,该明文报文分为多个码片时,该方法还包括:将该明文报文分为多个码片;对该多个码片中的每个码片加密得到该每个码片的密文报文;根据该明文报文内的隧道端点标识TEID字段填充该每个码片的密文报文的Flow Label字段;根据该密文报文的Flow Label字段和参与哈希计算的第二参数进行哈希计算得到第五哈希值,根据该第五哈希值确定该密文报文的传输路径。
在一种实现方式中,该根据该明文报文内的隧道端点标识TEID字段填充该每个码片的密文报文的Flow Label字段,包括:将该TEID字段的N bit填入该每个码片的密文报文的Flow Label字段的N bit,该每个码片的密文报文的Flow Label字段包括N bit;或者,将该TEID字段和第一参数进行哈希计算得到第六哈希值,将该第六哈希值的N bit填入该每个码片的密文报文的Flow Label字段的N bit,该每个码片的密文报文的Flow Label字段包括N bit。
在一种实现方式中,该每个码片的密文报文的Flow Label字段包括第五字段和第六字段,该根据该明文报文内的隧道端点标识TEID字段填充该每个码片的密文报文的Flow Label字段,包括:将该TEID字段截取与该每个码片的密文报文的Flow Label字段的第五字段或者第六字段相同长度的部分,填充该每个码片的密文报文的Flow Label字段的第五字段或者第六字段;或者,将该TEID字段和第一参数进行哈希计算得到第七哈希值,将该第九哈希值截取与该每个码片的密文报文的Flow Label字段的第五字段或者第六字段相同长度的部分,填充该每个码片的密文报文的Flow Label字段的第五字段或者第六字段。
在一种实现方式中,该第一参数包括以下参数中的至少一种:
该密文报文的SIP、该密文报文的DIP和该密文报文的下个首部Next Header。
在一种实现方式中,该第二参数包括以下参数中的至少一种:
该明文报文的SIP、该明文报文的DIP、该明文报文的源端口SPt、该明文报文的目的端口DPt和该明文报文的下个首部Next Header。
为了更清楚的理解如何将该明文IPv6报文的隧道端点标识TEID字段填充入该密文IPv6报文的流标签Flow Label字段,下面根据具体例子进行说明。
如直接Copy内层IPv6明文头部Flow Label填充该密文IPv6报文的流标签Flow Label字段。
如,对三元组(Out_SIP,Out_DIP,Inner_FL)进行哈希计算后截取20bit填充;或只截取18bit填充,前2bit保留。
如,对四元组(Out_SIP,Out_DIP,Out_Next_Header,Inner_FL)进行哈希计算后截取20bit填充;或只截取18bit填充,前2bit保留。
上述例子中,Out与Inner代表IPsec隧道模式的外层密文与内层明文的IPv6头部。
下面介绍明文报文是IPv4报文时,如何根据明文报文内的隧道端点标识TEID字段确定密文IPv6报文的传输路径。
首先介绍一下Ipv4报文的基本格式,图9为Ipv4报文的基本格式,Ipv4报文包括Ipv4头部和载荷,Ipv4头部包括:
IP版本,Version(4bit),该字段值为4;
首部长度(Header Length,HL),4bit;
服务类型(Type of Service,TOS),对等待通过传输设备的数据报文区分优先级;
总长度(Total Length,TL)这个16位的字段表示IP数据报的长度,单位是字节,这个长度包含了IP报头和数据载荷;
标识Identification,这个16位的字段是一个依序变大的数值,分配给源IP发出的消息。当传递到IP层的消息太大而不能放到一个数据报里时,IP会把消息拆分到多个数据报,并对这些数据报排序分配相同的标识号,接收端利用这些数值重组为原始消息;
标志Flags,这字段长度为三位,第一位没有使用。第二位是“不分片”位,置1表示中间转发节点不能对其分段处理。第三位是”还有分片”位,置1表示后续还有分片报文。
片位移Fragment Offset,这个字段是一个数值,目的设备的IP利用这个值以正确的次序重组分段;
生存时间(Time To Live,TTL)这个字段表示数据报文在被丢弃之前能保留的路由器跳数。每个路由器都会检查这个字段,并且至少把它减去1。当这个字段的值为0时,数据报文会被抛弃;
协议Protocol,这个字段表示载荷数据使用的协议;
首部检验和Header Checksum,这个字段只用于检验报头本身的有效性。数据报经过的每个路由器都会对这个值重新进行计算,因为TTL字段的值是在不断变化的;
源IP地址(Source IP Address,SIP);
目的IP地址(Destination IP Address,DIP);
选项字段Options,这个字段支持一些可选的报头设置,主要用于测试、调试和安全的目的;和
载荷Payload,数据部分。
由上述可知,Ipv4报文没有Flow Label字段,因此,在一种实现方式中,当该明文报文为Ipv4报文时,该根据该明文报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,包括:将该TEID字段的N bit填入该密文IPv6报文的Flow Label字段的N bit,该密文IPv6报文的Flow Label字段包括N bit;或者,将该TEID字段和第一参数进行哈希计算得到第八哈希值,将该第八哈希值的N bit填入该密文IPv6报文的Flow Label字段的N bit,该密文IPv6报文的Flow Label字段包括N bit。
在一种实现方式中,该明文报文为Ipv4,该密文IPv6报文的Flow Label字段包括第七字段和第八字段,该根据该明文报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,包括:将该TEID字段截取与该密文IPv6报文的Flow Label字段的第七字段或者第八字段相同长度的部分,填充该密文IPv6报文的Flow Label的第七字段或者第八字段;或者,将该TEID字段和第一参数进行哈希计算得到第九哈希值,将该第九哈希值截取与该密文IPv6报文的Flow Label字段的第七字段或者第八字段相同长度的部分,填充该密文IPv6报文的Flow Label的第七字段或者第八字段。
在一种实现方式中,该明文报文为Ipv4,将该明文报文分为多个码片;对该多个码片 中的每个码片加密得到该每个码片的密文IPv6报文;根据该明文报文内的隧道端点标识TEID字段填充该每个码片的密文IPv6报文的Flow Label字段。
应理解,该明文报文为Ipv4,该根据该明文报文内的隧道端点标识TEID字段填充该每个码片的密文IPv6报文的Flow Label字段的方法可以参考上述该明文报文为IPv6,根据该明文报文内的隧道端点标识TEID字段填充该每个码片的密文IPv6报文的Flow Label字段的方法,此处不再赘述。
在一种实现方式中,该第一参数包括以下参数中的至少一种:
该密文报文的SIP、该密文报文的DIP和该密文报文的下个首部Next Header。
在一种实现方式中,该第二参数包括以下参数中的至少一种:
该明文报文的SIP、该明文报文的DIP、该明文报文的下个首部Next Header、该明文报文的源端口SPt和该明文报文的目的端口DPt。
应理解,在该方法300的实施例中,如果执行主体为接入网设备,该明文报文为IPv6报文,且明文报文的Flow Label字段已经进行填充,则该接入网设备可以直接根据该明文IPv6报文的流标签Flow Label字段填充该密文IPv6报文的流标签Flow Label字段,具体填充方式可以参考上述方法,为了避免重复,此处不再赘述。
在本申请实施例中,上行明密文在接入网设备仅使用1对业务IPv6场景和1对因特网秘钥交换IKE IPv6地址场景,上行明密文即可在接入网设备多个传输端口上实现承载粒度的流负载均衡,有效充分的利用传输带宽。下行明文在核心网设备仅使用1对业务IPv6场景,下行明文在核心网多个传输端口上实现承载粒度的流负载均衡,有效充分的利用传输带宽。下行密文在安全网关仅使用1对业务IPv6和1对IKE IPv6地址场景,下行报文在安全网关加密后在多个传输端口上实现承载粒度的流负载均衡,有效充分的利用传输带宽。
应理解,在本申请实施例中涉及的字段1填充字段2,是指将字段1的值填充到字段2中,也就是说字段1的值和字段2的值相等。如将所述TEID字段截取与所述Flow Label字段的第一字段相同长度的部分,填充所述Flow Label的第一字段,是指将所述TEID字段截取的部分的值填充到所述Flow Label的第一字段中,也就是说所述TEID字段截取的部分的值和所述Flow Label的第一字段的值相等。
还应理解,在本申请实施例中,字段1的N bit填入到字段2的N bit,是指字段1的Nbit的值填入到字段2的N bit中。也就是说,字段1的N bit的值和字段2的N bit的值是相同的。如将所述TEID字段的N bit填入所述Flow Label字段的N bit,是指将所述TEID字段的值填充到Flow Label字段中,也就是说所述TEID字段的值和Flow Label字段的值相等。
下面简单描述对本申请实施例在多种场景下的负载均衡和可靠性。如图10描述了“IEEE 802.3ad以太链路聚合”技术进行负载均衡,以太链路聚合是将多个以太链路聚合在一起形成1个汇聚组,以实现出负荷在各成员端口中的分担,同时也提供了更高的连接可靠性。图10中包括接入网设备410、交换机420和路由器430,图10中两根线代表两条链路被聚合在一起,报文发送走哪条链路依靠哈希值决定,对应本申请实施例的三元组计算的哈希值,接入网设备410可以执行方法200所述的内容,即对应图4的流程。图中不同样式的报文代表不同承载的报文,相同承载报文因为哈希值一致则在相同PATH上传输,不同承载报文可以散列在不同PATH上传输,如果其中一条PATH出现故障,本来应该在故障PATH上传输的流报文可以立刻转移到别的PATH进行传输以增加可靠性。
图11,密文场景源与中间节点依据哈希计算实现基于承载的流负载均衡,图11为图10的密文场景,图11中包括接入网设备510、交换机520、安全网关530和路由器540,在上行数据传输中,接入网设备510可以执行方法200所述的内容,将明文报文填充后的Flow Label复制到密文报文中,使得密文报文也获得了承载信息,可以按照图10的方式负载均衡,在上行数据传输中,安全网关530可以执行方法300所述的内容,即对应图7的流程。
图12,等价路由场景源与中间节点依据哈希计算实现基于承载的流负载均衡,图12中包括接入网设备610、交换机620、路由器630和路由器640,在交换机620上配置了两条优先级相同的路由,接入网设备610可以执行方法200所述的内容,即对应图4的流程,接入网设备610根据填充后的Flow Label和第二参数计算哈希值,决定使用不同的路由将报文转发到不同的PATH上,实现多条PATH的负载均衡。
图13中包括接入网设备710、交换机720、路由器730和路由器740,在交换机720上配置了两条优先级相同的路由,负载均衡场景中,当其中一条PATH故障后,如交换机720到路由器740的路径故障,业务会快速切换至正常PATH上进行传输以增加可靠性,会比第四层协议的可靠性切换快的多。
应理解,源设备为报文发送方,可以是接入网设备、核心网设备,中间节点可以是路由器、交换机等。
以上结合图1至图13对本申请实施例的基于网际协议版本IPv6的无线网络通信方法做了详细说明。以下,结合图14至图15对本申请实施例通信装置进行详细说明。
图14示出了本申请实施例的通信装置800的示意性框图。
一些实施例中,该装置800可以为接入网设备,也可以为芯片或电路,比如可设置于接入网设备的芯片或电路。
一些实施例中,该装置800可以为核心网设备,也可以为芯片或电路,比如可设置于核心网设备的芯片或电路。
一些实施例中,该装置800可以为安全网关设备,也可以为芯片或电路,比如可设置于安全网关设备的芯片或电路。
一种可能的方式中,该装置800可以包括处理单元810(即,处理器的一例)和收发单元830。一些可能的实现方式中,处理单元810还可以称为确定单元。一些可能的实现方式中,收发单元830可以包括接收单元和发送单元。
在一种实现方式中,收发单元830可以通过收发器或者收发器相关电路或者接口电路实现。
在一种实现方式中,该装置还可以包括存储单元820。一种可能的方式中,该存储单元820用于存储指令。在一种实现方式中,该存储单元也可以用于存储数据或者信息。存储单元820可以通过存储器实现。
一些可能的设计中,该处理单元810用于执行该存储单元820存储的指令,以使装置800实现如上述方法中终端设备执行的步骤。或者,该处理单元810可以用于调用存储单元820的数据,以使装置800实现如上述方法中终端设备执行的步骤。
一些可能的设计中,该处理单元810用于执行该存储单元820存储的指令,以使装置800实现如上述方法中接入网设备执行的步骤。或者,该处理单元810可以用于调用存储单元820的数据,以使装置800实现如上述方法中接入网设备执行的步骤。
例如,该处理单元810、存储单元820、收发单元830可以通过内部连接通路互相通信,传递控制和/或数据信号。例如,该存储单元820用于存储计算机程序,该处理单元810可以用于从该存储单元820中调用并运行该计算计程序,以控制收发单元830接收信号和/或发送信号,完成上述方法中终端设备或接入网设备的步骤。该存储单元820可以集成在处理单元810中,也可以与处理单元810分开设置。
可选地,若该装置800为通信设备(例如,终端设备,或接入网设备),该收发单元830包括接收器和发送器。其中,接收器和发送器可以为相同或者不同的物理实体。为相同的物理实体时,可以统称为收发器。
可选地,若该装置800为芯片或电路,该收发单元830包括输入接口和输出接口。
作为一种实现方式,收发单元830的功能可以考虑通过收发电路或者收发的专用芯片实现。处理单元810可以考虑通过专用处理芯片、处理电路、处理单元或者通用芯片实现。
作为另一种实现方式,可以考虑使用通用计算机的方式来实现本申请实施例提供的通信设备(例如终端设备,或接入网设备)。即将实现处理单元810、收发单元830功能的程序代码存储在存储单元820中,通用处理单元通过执行存储单元820中的代码来实现处理单元810、收发单元830的功能。
一些实施例中,装置800可以为接入网设备或核心网设备,或设置于接入网设备或核心网设备的芯片或电路。当装置800为接入网设备或核心网设备,或设置于接入网设备或核心网设备的芯片或电路时,处理单元810用于根据明文IPv6报文内的隧道端点标识TEID字段确定所述明文IPv6报文的传输路径;收发单元830用于根据确定的所述明文IPv6报文的传输路径传输所述明文IPv6报文。
在一种实现方式中,处理单元810具体用于:根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段;根据填充后的所述Flow Label字段和参与哈希计算的第一参数进行哈希计算得到第一哈希值,所述SIP和所述DIP为所述明文IPv6报文的SIP和DIP;根据所述第一哈希值确定所述明文IPv6报文的传输路径。
在一种实现方式中,所述处理单元810具体用于:将所述TEID字段的N bit填入所述Flow Label字段的N bit,所述Flow Label字段包括N bit;或者,将所述TEID字段和第一参数进行哈希计算得到第二哈希值,将所述第二哈希值的N bit填入所述Flow Label字段的N bit,所述Flow Label字段包括N bit。
在一种实现方式中,所述明文IPv6报文的Flow Label字段包括第一字段和第二字段,所述处理单元810具体用于,包括:将所述TEID字段截取与所述Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述Flow Label的第一字段或者第二字段;或者,将所述TEID字段和第一参数进行哈希计算得到第二哈希值,将所述第二哈希值截取与所述Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述Flow Label的第一字段或者第二字段。
在一种实现方式中,所述处理单元810还用于:将所述明文IPv6报文的流标签Flow Label字段复制到所述密文IPv6报文的Flow Label字段;或者,将所述明文IPv6报文的流标签Flow Label字段和第二参数进行哈希计算得到第五哈希值,根据所述第五哈希值填充所述密文IPv6报文的Flow Label字段。
当该装置800配置在或本身即为接入网设备或核心网时,装置800中各模块或单元可 以用于执行上述方法中接入网设备或核心网设备所执行的各动作或处理过程,这里,为了避免赘述,省略其详细说明。
一些实施例中,装置800可以为安全网关,或设置于安全网关的芯片或电路。当装置800为安全网关,或设置于安全网关的芯片或电路时,收发单元830用于接收核心网设备发送的明文报文;处理单元810用于根据所述明文报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,所述密文IPv6报文为所述明文报文加密后的报文;所述处理单元还用于根据填充后的密文IPv6报文的Flow Label字段和参与哈希计算的第一参数进行哈希计算得到第一哈希值,所述SIP和所述DIP为所述密文IPv6报文的SIP和DIP;所述处理单元还用于根据所述第一哈希值确定所述密文IPv6报文的传输路径。
在一种实现方式中,所述明文报文为IPv6报文或者Ipv4报文,所述处理单元810用于:将所述TEID字段的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit;或者,将所述TEID字段和第一参数进行哈希计算得到第二哈希值,将所述第二哈希值的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit。
在一种实现方式中,所述明文报文为IPv6报文或者Ipv4,所述密文IPv6报文的Flow Label字段包括第一字段和第二字段,所述处理单元810用于:将所述TEID字段截取与所述密文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第一字段或者第二字段;或者,将所述TEID字段和第一参数进行哈希计算得到第三哈希值,将所述第三哈希值截取与所述密文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第一字段或者第二字段。
在一种实现方式中,所述明文报文为IPv6报文,所述处理单元810用于:根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段;将填充的所述明文IPv6报文的流标签Flow Label字段复制所述密文IPv6报文的流标签Flow Label字段。
在一种实现方式中,所述明文报文为IPv6报文,所述明文报文分为多个码片时,所述处理单元810还用于:根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段;将填充Flow Label字段后的所述明文IPv6报文分为多个码片,所述多个码片中的每个码片均包含填充的所述Flow Label字段;将所述每个码片的Flow Label字段复制到所述每个码片加密的密文报文的Flow Label字段;根据所述密文报文的Flow Label字段和所述第一参数进行哈希计算得到第四哈希值;根据所述第四哈希值确定所述每个密文报文的传输路径。
在一种实现方式中,所述处理单元810用于:将所述TEID字段的N bit填入所述明文IPv6报文的Flow Label字段的N bit,所述明文IPv6报文的Flow Label字段包括N bit;或者,将所述TEID字段和第二参数进行哈希计算得到第五哈希值,将所述第五哈希值的N bit填入所述明文IPv6报文的Flow Label字段的N bit,所述明文IPv6报文的Flow Label字段包括N bit。
在一种实现方式中,所述明文IPv6报文的Flow Label字段包括第一字段和第二字段,所述处理单元810用于:将所述TEID字段截取与所述明文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述明文IPv6报文的Flow Label的第一字段或 者第二字段;或者,将所述TEID字段和第二参数进行哈希计算得到第六哈希值,将所述第六哈希值截取与所述明文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述明文IPv6报文的Flow Label的第一字段或者第二字段。
在一种实现方式中,所述明文报文为Ipv8报文或者IPv6报文,所述明文报文分为多个码片时,所述处理单元810还用于:将所述明文报文分为多个码片;对所述多个码片中的每个码片加密得到所述每个码片的密文报文;根据所述明文报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段;根据所述密文报文的Flow Label字段和所述第一参数进行哈希计算得到第七哈希值;根据所述第七哈希值确定所述每个密文报文的传输路径。
当该装置800配置在或本身即为安全网关时,装置800中各模块或单元可以用于执行上述方法中安全网关所执行的各动作或处理过程,这里,为了避免赘述,省略其详细说明。
该装置800所涉及的与本申请实施例提供的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于这些内容的描述,此处不做赘述。
图15为本申请实施例提供的一种接入网设备900的结构示意图,可以用于实现上述方法中的接入设备(例如,第一接入网设备,第二接入网设备或者第三接入网设备)的功能。接入网设备900包括一个或多个射频单元,如远端射频单元(remote radio unit,RRU)910和一个或多个基带单元(baseband unit,BBU)(也可称为数字单元,digital unit,DU)920。所述RRU910可以称为收发单元、收发机、收发电路、或者收发器等等,其可以包括至少一个天线911和射频单元912。所述RRU910部分主要用于射频信号的收发以及射频信号与基带信号的转换,例如用于向终端设备发送上述实施例中所述的信令消息。所述BBU920部分主要用于进行基带处理,对基站进行控制等。所述RRU910与BBU920可以是物理上设置在一起,也可以物理上分离设置的,即分布式基站。
所述BBU920为基站的控制中心,也可以称为处理单元,主要用于完成基带处理功能,如信道编码,复用,调制,扩频等等。例如该BBU(处理单元)920可以用于控制基站40执行上述方法实施例中关于网络设备的操作流程。
在一个示例中,所述BBU920可以由一个或多个单板构成,多个单板可以共同支持单一接入制式的无线接入网(如LTE系统,或9G系统),也可以分别支持不同接入制式的无线接入网。所述BBU920还包括存储器921和处理器922。所述存储器921用以存储必要的指令和数据。例如存储器921存储上述实施例中的码本等。所述处理器922用于控制基站进行必要的动作,例如用于控制基站执行上述方法实施例中关于网络设备的操作流程。所述存储器921和处理器922可以服务于一个或多个单板。也就是说,可以每个单板上单独设置存储器和处理器。也可以是多个单板共用相同的存储器和处理器。此外每个单板上还可以设置有必要的电路。
在一种可能的实施方式中,随着片上系统(system-on-chip,SoC)技术的发展,可以将920部分和910部分的全部或者部分功能由SoC技术实现,例如由一颗基站功能芯片实现,该基站功能芯片集成了处理器、存储器、天线接口等器件,基站相关功能的程序存储在存储器中,由处理器执行程序以实现基站的相关功能。可选的,该基站功能芯片也能够读取该芯片外部的存储器以实现基站的相关功能。
应理解,图15示例的接入网设备的结构仅为一种可能的形态,而不应对本申请实施 例构成任何限定。本申请并不排除未来可能出现的其他形态的基站结构的可能。
应理解,本申请实施例中,该处理器可以为中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一实施例中的接入网设备执行的步骤,或者核心网设备执行的步骤,或者安全网关设备执行的步骤。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品被计算机执行时实现上述任一实施例中的接入网设备执行的步骤,或者核心网设备执行的步骤,或者安全网关设备执行的步骤。
本申请实施例还提供了一种系统芯片,该系统芯片包括:通信单元和处理单元。该处理单元,例如可以是处理器。该通信单元例如可以是通信接口、输入/输出接口、管脚或 电路等。该处理单元可执行计算机指令,以使该通信装置内的芯片执行上述本申请实施例提供的接入网设备执行的步骤,或者核心网设备执行的步骤,或者安全网关设备执行的步骤。
可选地,该计算机指令被存储在存储单元中。
根据本申请实施例提供的方法,本申请实施例还提供一种通信系统,其包括前述的接入网设备、核心网设备和安全网关设备。
本申请中的各个实施例可以独立的使用,也可以进行联合的使用,这里不做限定。
另外,本申请的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,CD)、数字通用盘(digital versatile disc,DVD)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasable programmable read-only memory,EPROM)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
应理解,在本申请中的所有表格参数仅用于示例,并不表示具体的计算数值或者参数等。
应理解,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或一个以上;“A和B中的至少一个”,类似于“A和/或B”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和B中的至少一个,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
应理解,在本申请中出现了多个哈希值,如“第一哈希值”、“第二哈希值”、“第三哈希值”等,该“第一哈希值”、“第二哈希值”、“第三哈希值”等分别表示根据不同参数做哈希运算获得的哈希值,该“第一哈希值”、“第二哈希值”、“第三哈希值”的具体数值由哈希的参数决定,“第一”、“第二”、“第三”等不对哈希值造成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间 接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (26)

  1. 一种基于网际协议版本IPv6的无线网络通信方法,其特征在于,包括:
    根据明文IPv6报文内的隧道端点标识TEID字段确定所述明文IPv6报文的传输路径,所述TEID字段用于指示所述明文IPv6报文所属的承载;
    根据确定的所述明文IPv6报文的传输路径传输所述明文IPv6报文。
  2. 根据权利要求1所述的方法,其特征在于,所述根据明文IPv6报文内的隧道端点标识TEID字段确定所述明文IPv6报文的传输路径,包括:
    根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段;
    根据填充后的所述Flow Label字段和第一参数进行哈希计算得到第一哈希值;
    根据所述第一哈希值确定所述明文IPv6报文的传输路径。
  3. 根据权利要求2所述的方法,其特征在于,所述Flow Label字段包括N bit,所述根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段,包括:
    将所述TEID字段的N bit填入所述Flow Label字段的N bit;或者,
    将所述TEID字段和所述第一参数进行哈希计算得到第二哈希值,将所述第二哈希值的N bit填入所述Flow Label字段的N bit。
  4. 根据权利要求2所述的方法,其特征在于,所述明文IPv6报文的Flow Label字段包括第一字段和第二字段,所述根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段,包括:
    将所述TEID字段截取与所述Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述Flow Label的第一字段或者第二字段;或者,
    将所述TEID字段和第一参数进行哈希计算得到第二哈希值,将所述第二哈希值截取与所述Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述Flow Label的第一字段或者第二字段。
  5. 根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
    根据明文Ipv4报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,所述密文IPv6报文为所述明文报文加密后的报文;
    根据填充后的密文IPv6报文的Flow Label字段和所述第二参数进行哈希计算得到第六哈希值;
    根据所述第三哈希值确定所述密文IPv6报文的传输路径。
  6. 根据权利要求5所述的方法,其特征在于,所述根据明文Ipv4报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,包括:
    将所述TEID字段的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit;或者,
    将所述TEID字段和所述第二参数进行哈希计算得到第四哈希值,
    将所述第四哈希值的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit。
  7. 根据权利要求6所述的方法,其特征在于,所述密文IPv6报文的Flow Label字段包 括第三字段和第四字段,所述根据明文Ipv4报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,包括:
    将所述TEID字段截取与所述密文IPv6报文的Flow Label字段的第三字段或者第四字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第三字段或者第四字段;或者,
    将所述TEID字段和所述第二参数进行哈希计算得到第五哈希值,
    将所述第五哈希值截取与所述密文IPv6报文的Flow Label字段的第三字段或者第四字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第三字段或者第四字段。
  8. 根据权利要求5所述的方法,其特征在于,所述明文Ipv4报文包括多个码片,所述方法还包括:
    对所述多个码片中的每个码片加密得到所述每个码片的密文报文;
    根据所述明文Ipv4报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段;
    根据所述密文报文的Flow Label字段和第二参数进行哈希计算得到第六哈希值;
    根据所述第三哈希值确定所述密文IPv6报文的传输路径,包括:
    根据所述第六哈希值确定所述每个密文码片的传输路径。
  9. 根据权利要求8所述的方法,其特征在于,所述根据所述明文Ipv4报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段,包括:
    将所述TEID字段的N bit填入所述每个码片的密文报文的Flow Label字段的N bit,所述每个码片的密文报文的Flow Label字段包括N bit;或者,
    将所述TEID字段和所述第二参数进行哈希计算得到第七哈希值,
    将所述第七哈希值的N bit填入所述每个码片的密文报文的Flow Label字段的N bit,所述每个码片的密文报文的Flow Label字段包括N bit。
  10. 根据权利要求8所述的方法,其特征在于,所述每个码片的密文报文的Flow Label字段包括第五字段和第六字段,所述根据所述明文报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段,包括:
    将所述TEID字段截取与所述每个码片的密文报文的Flow Label字段的第五字段或者第六字段相同长度的部分,填充所述每个码片的密文报文的Flow Label字段的第五字段或者第六字段;或者,
    将所述TEID字段和所述第二参数进行哈希计算得到第八哈希值,
    将所述第八哈希值截取与所述每个码片的密文报文的Flow Label字段的第五字段或者第六字段相同长度的部分,填充所述每个码片的密文报文的Flow Label字段的第五字段或者第六字段。
  11. 一种基于网际协议版本IPv6的通信方法,其特征在于,包括:
    从核心网设备接收明文报文;
    根据所述明文报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,所述密文IPv6报文为所述明文报文加密后的报文;
    根据填充后的密文IPv6报文的Flow Label字段和第一参数进行哈希计算得到第一哈希值;
    根据所述第一哈希值确定所述密文IPv6报文的传输路径。
  12. 根据权利要求11所述的方法,其特征在于,所述明文报文为IPv6报文或者Ipv4报文,所述根据所述明文报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,包括:
    将所述TEID字段的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit;或者,
    将所述TEID字段和所述第一参数进行哈希计算得到第二哈希值,
    将所述第二哈希值的N bit填入所述密文IPv6报文的Flow Label字段的N bit,所述密文IPv6报文的Flow Label字段包括N bit。
  13. 根据权利要求11所述的方法,其特征在于,所述明文报文为IPv6报文或者Ipv4,所述密文IPv6报文的Flow Label字段包括第一字段和第二字段,所述根据所述明文报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,包括:
    将所述TEID字段截取与所述密文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第一字段或者第二字段;或者,
    将所述TEID字段和所述第一参数进行哈希计算得到第三哈希值,
    将所述第三哈希值截取与所述密文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述密文IPv6报文的Flow Label的第一字段或者第二字段。
  14. 根据权利要求11所述的方法,其特征在于,所述明文报文为IPv6报文,所述根据所述明文报文内的隧道端点标识TEID字段填充密文IPv6报文的流标签Flow Label字段,包括:
    根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段;
    将填充的所述明文IPv6报文的流标签Flow Label字段复制所述密文IPv6报文的流标签Flow Label字段。
  15. 根据权利要求11所述的方法,其特征在于,所述明文报文为IPv6报文,所述明文报文分为多个码片时,所述方法还包括:
    根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段;
    将填充Flow Label字段后的所述明文IPv6报文分为多个码片,所述多个码片中的每个码片均包含填充的所述Flow Label字段;
    将所述每个码片的Flow Label字段复制到所述每个码片加密的密文报文的Flow Label字段;
    根据所述密文报文的Flow Label字段和所述第一参数进行哈希计算得到第四哈希值;
    根据所述第四哈希值确定所述每个密文报文的传输路径。
  16. 根据权利要求14或15所述的方法,其特征在于,所述根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段,包括:
    将所述TEID字段的N bit填入所述明文IPv6报文的Flow Label字段的N bit,所述明文IPv6报文的Flow Label字段包括N bit;或者,
    将所述TEID字段和所述第二参数进行哈希计算得到第五哈希值,
    将所述第五哈希值的N bit填入所述明文IPv6报文的Flow Label字段的N bit,所述明文 IPv6报文的Flow Label字段包括N bit。
  17. 根据权利要求14或15所述的方法,其特征在于,所述明文IPv6报文的Flow Label字段包括第一字段和第二字段,所述根据所述明文IPv6报文的隧道端点标识TEID字段填充所述明文IPv6报文的流标签Flow Label字段,包括:
    将所述TEID字段截取与所述明文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述明文IPv6报文的Flow Label的第一字段或者第二字段;或者,
    将所述TEID字段和所述第二参数进行哈希计算得到第六哈希值,
    将所述第六哈希值截取与所述明文IPv6报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述明文IPv6报文的Flow Label的第一字段或者第二字段。
  18. 根据权利要求11所述的方法,其特征在于,所述明文报文为Ipv4报文或者IPv6报文,所述明文报文分为多个码片时,所述方法还包括:
    将所述明文报文分为多个码片;
    对所述多个码片中的每个码片加密得到所述每个码片的密文报文;
    根据所述明文报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段;
    根据所述密文报文的Flow Label字段和所述第一参数进行哈希计算得到第七哈希值;
    根据所述第七哈希值确定所述每个密文报文的传输路径。
  19. 根据权利要求18所述的方法,其特征在于,所述根据所述明文报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段,包括:
    将所述TEID字段的N bit填入所述每个码片的密文报文的Flow Label字段的N bit,所述每个码片的密文报文的Flow Label字段包括N bit;或者,
    将所述TEID字段和所述第一参数进行哈希计算得到第八哈希值,
    将所述第八哈希值的N bit填入所述每个码片的密文报文的Flow Label字段的N bit,所述每个码片的密文报文的Flow Label字段包括N bit。
  20. 根据权利要求19所述的方法,其特征在于,所述每个码片的密文报文的Flow Label字段包括第一字段和第二字段,所述根据所述明文报文内的隧道端点标识TEID字段填充所述每个码片的密文报文的Flow Label字段,包括:
    将所述TEID字段截取与所述每个码片的密文报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述每个码片的密文报文的Flow Label字段的第一字段或者第二字段;或者,
    将所述TEID字段和所述第一参数进行哈希计算得到第九哈希值,
    将所述第九哈希值截取与所述每个码片的密文报文的Flow Label字段的第一字段或者第二字段相同长度的部分,填充所述每个码片的密文报文的Flow Label字段的第一字段或者第二字段。
  21. 一种通信装置,包括处理器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述装置执行如权利要求1至10中任一项所述的方法或者如权利要求11至20中任一项所述的方法。
  22. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被运行时,实现如权利要求1至10中任一项所述的方法或者如权 利要求11至20中任一项所述的方法。
  23. 一种芯片,其特征在于,包括处理器和接口;
    所述处理器用于读取指令以执行权利要求1至10中任一项所述的方法或者权利要求11至20中任一项所述的方法。
  24. 一种通信系统,包括执行权利要求1-10任意一项所述的方法的通信设备和执行权利要求11-20任意一项所述的方法的通信设备。
  25. 一种计算机程序产品,其特征在于,所述程序产品包括程序,当所述程序被运行时,使得行权利要求1-20任一项所述的方法被执行。
  26. 一种通信装置,其特征在于,所述通信装置用于执行权利要求1-20任一项所述的方法。
PCT/CN2021/086217 2020-04-10 2021-04-09 一种基于网际协议版本IPv6的无线网络通信方法和通信设备 WO2021204260A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020227037606A KR20220160648A (ko) 2020-04-10 2021-04-09 인터넷 프로토콜 버전 IPv6 기반 무선 네트워크 통신 방법 및 통신 디바이스
EP21785520.4A EP4120731A4 (en) 2020-04-10 2021-04-09 WIRELESS NETWORK COMMUNICATION METHOD AND DEVICE BASED ON INTERNET PROTOCOL VERSION IPV6
US18/045,145 US20230074712A1 (en) 2020-04-10 2022-10-08 Internet protocol version 6 (ipv6) based wireless network communication method and communication device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010281148.2 2020-04-10
CN202010281148.2A CN113518387B (zh) 2020-04-10 2020-04-10 一种基于网际协议版本IPv6的无线网络通信方法和通信设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/045,145 Continuation US20230074712A1 (en) 2020-04-10 2022-10-08 Internet protocol version 6 (ipv6) based wireless network communication method and communication device

Publications (1)

Publication Number Publication Date
WO2021204260A1 true WO2021204260A1 (zh) 2021-10-14

Family

ID=78022450

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/086217 WO2021204260A1 (zh) 2020-04-10 2021-04-09 一种基于网际协议版本IPv6的无线网络通信方法和通信设备

Country Status (5)

Country Link
US (1) US20230074712A1 (zh)
EP (1) EP4120731A4 (zh)
KR (1) KR20220160648A (zh)
CN (1) CN113518387B (zh)
WO (1) WO2021204260A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230065679A1 (en) * 2021-08-25 2023-03-02 Cisco Technology, Inc. Lightweight path maximum transmission unit for wireless multicast overlay
CN114301592B (zh) * 2021-12-30 2023-06-23 李秦豫 一种网络加密算法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594694A (zh) * 2012-03-06 2012-07-18 北京中创信测科技股份有限公司 数据分流方法和设备
WO2014101062A1 (zh) * 2012-12-27 2014-07-03 华为技术有限公司 用户面数据传输方法、移动管理网元、演进型基站及系统
US8855071B1 (en) * 2012-01-04 2014-10-07 Juniper Networks, Inc. Handling errors in subscriber session management within mobile networks
CN110430136A (zh) * 2019-07-16 2019-11-08 广州爱浦路网络技术有限公司 一种基于gtp协议的接口与路由分发方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2408993C (en) * 2000-05-16 2008-01-08 Siemens Aktiengesellschaft Method for transferring a tunnel between nodes in a gprs system
KR100785776B1 (ko) * 2005-12-09 2007-12-18 한국전자통신연구원 Ip 버전 6 라우터에서 패킷 처리 장치 및 그 방법
CN102244688B (zh) * 2010-05-11 2014-07-16 华为技术有限公司 一种报文转发的方法、装置及系统
US10091102B2 (en) * 2013-01-09 2018-10-02 Cisco Technology, Inc. Tunnel sub-interface using IP header field
CN104363176A (zh) * 2014-10-24 2015-02-18 杭州华三通信技术有限公司 一种报文控制的方法和设备
CN105591874B (zh) * 2015-12-22 2020-10-13 新华三技术有限公司 一种数据发送方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8855071B1 (en) * 2012-01-04 2014-10-07 Juniper Networks, Inc. Handling errors in subscriber session management within mobile networks
CN102594694A (zh) * 2012-03-06 2012-07-18 北京中创信测科技股份有限公司 数据分流方法和设备
WO2014101062A1 (zh) * 2012-12-27 2014-07-03 华为技术有限公司 用户面数据传输方法、移动管理网元、演进型基站及系统
CN110430136A (zh) * 2019-07-16 2019-11-08 广州爱浦路网络技术有限公司 一种基于gtp协议的接口与路由分发方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
1 November 2011 (2011-11-01), B. CARPENTER UNIV. OF AUCKLAND S. AMANTE LEVEL: "Using the IPv6 Flow Label for Equal Cost Multipath Routing and Link Aggregation in Tunnels; rfc6438.txt", XP015081334, Database accession no. 6438 *

Also Published As

Publication number Publication date
EP4120731A4 (en) 2023-08-16
KR20220160648A (ko) 2022-12-06
CN113518387A (zh) 2021-10-19
EP4120731A1 (en) 2023-01-18
CN113518387B (zh) 2023-07-21
US20230074712A1 (en) 2023-03-09

Similar Documents

Publication Publication Date Title
US11510131B2 (en) Configuration method, data transmission method, and apparatus
US9819463B2 (en) Method and apparatus for transmitting data in a wireless communication system
US10798638B2 (en) Apparatus and method for controller and slice-based security gateway for 5G
CN112368980B (zh) 用于将一个或多个在网业务添加到mpls网络中的方法
CN110115065B (zh) 在网络环境中实现不等成本多径路由的系统和方法
EP3586489B1 (en) Methods and network elements for multi-connectivity control
US20230074712A1 (en) Internet protocol version 6 (ipv6) based wireless network communication method and communication device
JP2018057025A (ja) 多接続通信用の統合副層
US20200196384A1 (en) Communication processing method and apparatus using relay
WO2021000827A1 (zh) 数据传输链路建立方法、装置以及计算机可读存储介质
US10764813B2 (en) Managing mobility between a cellular network and a wireless local area network (WLAN)
WO2021160140A1 (zh) 网络编码方法和通信装置
US20200396789A1 (en) Terminal apparatus, method, and integrated circuit
EP4106482A1 (en) Communication method and apparatus
US11159985B2 (en) Terminal apparatus and method
WO2021062803A1 (zh) 一种数据包传输方法及装置
WO2020135011A1 (zh) 传输方法、装置、报文发送端和接收端
Tilli et al. Data plane protocols and fragmentation for 5G
US11483733B2 (en) Transporting a multi-transport network context-identifier (MTNC- ID) across multiple domains
JP2023176001A (ja) 端末装置、通信方法、および基地局装置
RU2803196C1 (ru) Способ передачи пакета данных и устройство
WO2023123335A1 (zh) 通信方法和设备
WO2023197105A1 (zh) 配置信息的方法、装置和通信系统
WO2023001010A1 (zh) 一种通信方法以及装置
WO2020062176A1 (zh) 无线通信方法、终端设备和接入网设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21785520

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021785520

Country of ref document: EP

Effective date: 20221011

ENP Entry into the national phase

Ref document number: 20227037606

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 522440879

Country of ref document: SA