WO2022022530A1 - Method for determining public network address of mptcp server and communication device - Google Patents

Method for determining public network address of mptcp server and communication device Download PDF

Info

Publication number
WO2022022530A1
WO2022022530A1 PCT/CN2021/108737 CN2021108737W WO2022022530A1 WO 2022022530 A1 WO2022022530 A1 WO 2022022530A1 CN 2021108737 W CN2021108737 W CN 2021108737W WO 2022022530 A1 WO2022022530 A1 WO 2022022530A1
Authority
WO
WIPO (PCT)
Prior art keywords
mptcp
server
address
network address
private network
Prior art date
Application number
PCT/CN2021/108737
Other languages
French (fr)
Chinese (zh)
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 华为技术有限公司
Publication of WO2022022530A1 publication Critical patent/WO2022022530A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • 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
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/677Multiple interfaces, e.g. multihomed nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2567NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5076Update or notification mechanisms, e.g. DynDNS

Definitions

  • the present application relates to the field of communications, and more particularly, to a method and a communication device for determining a public network address of an MPTCP server.
  • Multihome the multi-address of the host (Multihome) has become more and more popular.
  • the new multi-path transport layer protocol has become the biggest trend at present.
  • the multipath transmission control protocol MPTCP
  • MPTCP is a transport layer protocol that utilizes multiple paths for concurrent transmission.
  • MPTCP initializes multiple connections in sequence, that is, when a channel (or the first sub-stream) is established according to the three-way handshake, other sub-channels (or secondary sub-streams) are established according to the three-way handshake. These channels are connected with a three-way handshake and disconnected with a four-way handshake. These channels are bound to the same MPTCP session (MPTCP session).
  • the data at the sender can select one or more channels for transmission.
  • an MPTCP client such as a terminal device queries the IP address and/or port information of the MPTCP server through a domain name system (DNS) server
  • DNS domain name system
  • it usually can only obtain one optimal query result for example, only one MPTCP server can be queried.
  • the public IP address of the server even if you obtain multiple public IP addresses, you cannot confirm which public IPs correspond to the same MPTCP server. This will cause the IP address in the query result to be unreachable or the network packet loss is severe, which will affect the TCP link establishment performance and results when the MPTCP client application accesses the MPTCP server for the first time, which may result in the user being unable to access the application data and reducing the user experience.
  • the present application provides a method and a communication device for determining the public network address of an MPTCP server, which can solve the network reachability failure and network delay or packet loss problems of a single IP address, enable MPTCP sessions to quickly establish a chain, and improve user experience .
  • the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
  • a method for determining a public network address of an MPTCP server includes: the MPTCP client sends a first request to the DNS server of the domain name system, the first request includes the first domain name; the MPTCP client sends the first request to the DNS server of the domain name system, the first request includes the first domain name, the first request A request is used to request at least one Internet Protocol IP address of the MPTCP server corresponding to the first domain name and the first identifier corresponding to the MPTCP server; the MPTCP client receives the first request sent by the DNS server in response to the first request information, the first information includes: at least one IP address of the MPTCP server corresponding to the first domain name and a first identifier corresponding to the MPTCP server, a first identifier is used to uniquely identify an MPTCP server; the MPTCP client A piece of information to determine at least one IP address
  • the MPTCP client can determine the same MPTCP session by obtaining multiple IP addresses of the MPTCP server corresponding to the domain name, and the unique identifier of the MPTCP server corresponding to each IP address.
  • Multiple IP addresses of the MPTCP server so that the first sub-stream of the MPTCP session can be established by using the multiple IP addresses, which solves the network reachability failure and network delay or packet loss problems of a single IP address, and enables the MPTCP session to be quickly established. chain to improve user experience.
  • the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
  • the MPTCP client can be a terminal device.
  • the method further includes: establishing, by the MPTCP client, the first substream of the MPTCP session with the MPTCP server according to at least one IP address of the MPTCP server.
  • the MPTCP client establishes the first substream of the MPTCP session with the MPTCP server according to multiple IP addresses of the MPTCP server, including:
  • the MPTCP client sequentially uses multiple IP addresses of the MPTCP server to establish the first sub-flow, and the first sub-flow that is successfully established is the first sub-flow, and the first sub-flow corresponds to the first IP address;
  • the MPTCP client adds the substream successfully established according to the second IP address to the MPTCP session corresponding to the first substream, where the second IP address is the IP address of the MPTCP server except the first IP address.
  • the plurality of IP addresses include a first IP address and a second IP address.
  • the MPTCP client establishes the first substream of the MPTCP session with the MPTCP server according to multiple IP addresses of the MPTCP server, including:
  • the MPTCP client uses a plurality of IP addresses of the MPTCP server to establish the first sub-flow respectively, the first sub-flow that is successfully established is the first sub-flow, and the first sub-flow corresponds to the first IP address;
  • the MPTCP client cancels the first sub-flow that is being established and/or has been successfully established according to the second IP address, and adds the successfully re-established sub-flow using the second IP address to the MPTCP session corresponding to the first sub-flow
  • the second IP address is an IP address other than the first IP address of multiple IP addresses of the MPTCP server, and the multiple IP addresses include the first IP address and the second IP address.
  • the MPTCP client establishes the first substream of the MPTCP session with the MPTCP server according to multiple IP addresses of the MPTCP server, including:
  • the MPTCP client uses the multiple IP addresses of the MPTCP server to establish the first sub-stream respectively, and the first successful sub-stream is the first first sub-stream, and the first first sub-stream corresponds to the first IP address;
  • the MPTCP client adds the second first substream successfully established according to the second IP address into the MPTCP session corresponding to the first first substream, where the second IP address is the multiple IP addresses of the MPTCP server except the first IP IP addresses other than addresses, the plurality of IP addresses include a first IP address and a second IP address.
  • the first request is further used to request a resource record of a first type, where the resource record of the first type includes: each MPTCP in the at least one MPTCP server corresponding to the first domain name The first identifier corresponding to the server.
  • the resource record of the first type represents one or more MPTCP servers corresponding to the domain name or a group of equivalent MPTCP servers (for example, a group of MPTCP servers of a load balancer proxy)
  • An identifier is used to uniquely identify an MPTCP server, that is, the identifiers corresponding to the same server are the same.
  • the resource record of the first type includes: one or more public IP addresses of the MPTCP server corresponding to the domain name, and first identifiers corresponding to the MPTCP servers respectively, and one MPTCP server may correspond to one or more public IP addresses , a domain name corresponds to one or more MPTCP servers.
  • Multiple first-type resource records corresponding to the same MPTCP server corresponding to a domain name identify multiple IP addresses of the MPTCP server.
  • the first identifier is a universal unique identifier UUID corresponding to the MPTCP server.
  • the resource record of the first type may include at least one of the address pointer record APTR type RR record and the AAAAPTR type RR record.
  • the APTR type corresponds to the RR record of type A
  • the domain name in the RR record of this type corresponds to the IPv4 address
  • the AAAAPTR type corresponds to the RR record of the AAAA type
  • the domain name in the RR record of this type corresponds to the IPv6 address.
  • a method for determining a public network address of an MPTCP server includes: a first DNS server receives a first request sent by a multi-path transmission control protocol MPTCP client, the first request includes a first domain name, and the first request is used to request at least one of the MPTCP servers corresponding to the first domain name The Internet Protocol IP address and the first identifier corresponding to the MPTCP server; the first DNS server sends the first information in response to the first request to the MPTCP client, and the first information includes: the MPTCP server corresponding to the first domain name at least one IP address of the MPTCP server and a first identifier corresponding to the MPTCP server, and a first identifier is used to uniquely identify an MPTCP server.
  • the DNS server can determine the multiple IP addresses of the corresponding MPTCP server according to the requested domain name, and the unique identifier of the MPTCP server corresponding to each IP address, so as to determine the MPTCP session. multiple IP addresses of the same MPTCP server, and send the information to the MPTCP client.
  • the MPTCP client can use the multiple IP addresses to establish the first sub-stream of the MPTCP session, which solves the network reachability failure of a single IP address. and network delay or packet loss, the MPTCP session can be quickly established and the user experience can be improved.
  • the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
  • the method further includes:
  • the first DNS server obtains second information, the second information includes: the IP address of the MPTCP server corresponding to each domain name in the at least one domain name, and the first identifier corresponding to the MPTCP server, the at least one domain name includes the first domain name, a The domain name corresponds to at least one MPTCP server.
  • the operator of the MPTCP server may provide multiple AAAAPTR type RR records or multiple APTR type RR records to the DNS server operator corresponding to the first DNS server. After the first DNS server operator has reviewed and approved these records, they will be added to the DNS database.
  • the first DNS server may be the root DNS server.
  • the multiple APTR type or AAAAPTR type RR records include: at least one domain name, MPTCP server IP addresses corresponding to the at least one domain name respectively, first identifiers of one or more MPTCP servers, and the like.
  • the operator of the MPTCP server may also provide an "A" type RR record, an "AAAA” type RR record, a PTR type RR record and the like to the corresponding DNS service operator of the first DNS server.
  • the first DNS server obtains the second information, including:
  • the first DNS server sends a second request to the second DNS server, where the second request is used to request at least one IP address of the MPTCP server corresponding to the first domain name and a first identifier corresponding to the MPTCP server; the first DNS server Second information is received from the second DNS server in response to the second request.
  • the operator of the MPTCP server provides the above-mentioned second information, multiple APTR type RR records or multiple AAAAPTR type RR records to the DNS service operator corresponding to the second DNS server, for example, the second DNS server may for the root DNS server.
  • the operator of the MPTCP server may also provide an "A" type RR record, an "AAAA” type RR record, a PTR type RR record and the like to the corresponding DNS service operator of the second DNS server.
  • the second DNS server can also act as a client to query the APTR and/or AAAAPTR type RR record to the upper DNS server.
  • the first request is further used to request a resource record of a first type, where the resource record of the first type includes: each MPTCP in the at least one MPTCP server corresponding to the first domain name The first identifier corresponding to the server.
  • the resource record of the first type includes: one or more public IP addresses of the MPTCP server corresponding to the domain name, and first identifiers corresponding to the MPTCP servers respectively, and one MPTCP server may correspond to one or more public IP addresses , a domain name corresponds to one or more MPTCP servers.
  • Multiple first-type resource records corresponding to the same MPTCP server corresponding to a domain name identify multiple IP addresses of the MPTCP server.
  • the first identifier is a universal unique identifier UUID corresponding to the MPTCP server.
  • a method for determining a public network address of an MPTCP server includes: the first gateway determines a public network address corresponding to each private network address in at least one private network address of a multi-path transmission control protocol MPTCP server, where the public network address is used for establishing an MPTCP session between the MPTCP server and the MPTCP client Subflow; the first gateway sends the public network address corresponding to each private network address in the at least one private network address to the MPTCP server.
  • the first gateway is a dynamic host configuration protocol DHCP server, or a gateway device supporting the DHCP proxy capability, or a network address translation NAT gateway device supporting the DHCP server function, or a load supporting the DHCP server and NAT functions.
  • Equalizer device is a dynamic host configuration protocol DHCP server, or a gateway device supporting the DHCP proxy capability, or a network address translation NAT gateway device supporting the DHCP server function, or a load supporting the DHCP server and NAT functions.
  • Equalizer device is a dynamic host configuration protocol DHCP server, or a gateway device supporting the DHCP proxy capability, or a network address translation NAT gateway device supporting the DHCP server function, or a load supporting the DHCP server and NAT functions.
  • the first gateway sends the public network address corresponding to the private network address configured for the back-end MPTCP service to the back-end MPTCP server.
  • the MPTCP server can clearly perceive the public network IP corresponding to each private network IP, so that the MPTCP server can notify the MPTCP client of the public network IP corresponding to the private network IP, so that a new sub-stream of the MPTCP session can be established correctly, ensuring that The MPTCP session can establish sub-streams smoothly, which improves the efficiency of the MPTCP session.
  • the local configuration of the MPTCP server is reduced, and the local configuration of the public network address of the MPTCP server is not required, which prevents the public network address from being directly exposed on the public network and thus affects its security.
  • the method further includes: the first network element determining a port number corresponding to each private network address in the at least one private network address; the first gateway sending the MPTCP server the The public network address corresponding to each private network address in at least one private network address, including:
  • the first gateway sends to the MPTCP server the public network address and port number corresponding to each private network address in the at least one private network address.
  • the public network address corresponding to each private network address in the at least one private network address of the MPTCP server, or the public network address and port number corresponding to each private network address in the at least one private network address are used for the MPTCP server.
  • NAT is in EIP mode
  • a public network IP address corresponds to a private network IP address
  • a public network IP address can be used to map a private network IP address
  • the DHCP server can determine or obtain MPTCP.
  • the public network IP address corresponding to each IP private network address in the at least one private network IP address of the server does not need to determine the port number on the DHCP server.
  • the public network IP address can be used.
  • the network IP address and port number are combined to map a private network IP address.
  • the DHCP server needs to determine or obtain the public network IP address and port number corresponding to each private network IP address in at least one private network IP address of the MPTCP server. Using the DNAT method can save the number of public network IP addresses, and one public network IP address can correspond to multiple private network IP addresses.
  • the method further includes:
  • the first gateway receives an address request message (for example, a DHCP Request message) sent by the MPTCP server;
  • an address request message for example, a DHCP Request message
  • the first gateway sending the public network address corresponding to each private network address in the at least one private network address to the MPTCP server includes: the first gateway sending a first response message in response to the address request message to the MPTCP server , the first response message (for example, a DHCP Ack message) includes: a public network address corresponding to each private network address in the at least one private network address.
  • the method further includes:
  • the first gateway receives an address request message (for example, a DHCP Request message) sent by the MPTCP server;
  • an address request message for example, a DHCP Request message
  • the first gateway sending the public network address and port number corresponding to each private network address in the at least one private network address to the MPTCP server includes: the first gateway sending a first response to the address request message to the MPTCP server A response message, the first response message (for example, a DHCP Ack message) includes: the public network address and port number corresponding to each private network address in the at least one private network address.
  • the method further includes:
  • the first gateway receives an address renewal request message (for example, a DHCP Request message, a Renew message, or a Rebind message) sent by the MPTCP server, and the first gateway sends each of the at least one private network address to the MPTCP server.
  • the public network address corresponding to the private network address including: the first gateway sends a second response message to the MPTCP server in response to the address renewal request message, for example, the second response message may be a DHCP Ack message or Being a Reply message, the second reply message includes: a public network address corresponding to each private network address in the at least one private network address.
  • the method further includes:
  • the first gateway receives an address renewal request message (for example, a DHCP Request message, a Renew message, or a Rebind message) sent by the MPTCP server, and the first gateway sends each of the at least one private network address to the MPTCP server.
  • the public network address and port number corresponding to the private network address including: the first gateway sends a second response message to the MPTCP server in response to the address renewal request message, for example, the second response message may be DHCP Ack
  • the message is either a Reply message, and the second response message includes: a public network address and a port number corresponding to each private network address in the at least one private network address.
  • the first response message or the second response message includes an extended Dynamic Host Configuration Protocol DHCP option
  • the extended DHCP option includes: each of the at least one private network address The public network address corresponding to a private network address, or the public network address and port number corresponding to each private network address in the at least one private network address.
  • a method for determining a public network address of an MPTCP server includes: the MPTCP server obtains a public network address corresponding to each private network address in at least one private network address of the MPTCP server, and the public network address is used for the MPTCP server and the MPTCP client to establish a substream of the MPTCP session;
  • the MPTCP server sends to the MPTCP client the public network address corresponding to each private network address of the at least one private network address of the MPTCP server.
  • the MPTCP server can obtain the public network address corresponding to each private network address in at least one of its own private network addresses, and send the information to the MPTCP client, so that it can correctly and the MPTCP client to establish a new substream of the MPTCP session, which ensures that the MPTCP session can successfully establish the substream and improves the efficiency of the MPTCP session.
  • the local configuration of the communication device is reduced, and the communication device does not need to be configured with a public network address locally, thereby preventing the public network address from being directly exposed on the public network and affecting its security.
  • the method further includes:
  • the MPTCP server obtains the port number corresponding to each private network address in the at least one private network address
  • the MPTCP server sends the public network address corresponding to each private network address of the MPTCP server at least one private network address to the MPTCP client, including: the MPTCP server sends the MPTCP server to the MPTCP client.
  • Each private network address corresponds to the public network address and port number.
  • the public network address corresponding to each private network address in the at least one private network address of the MPTCP server, or the public network address and port number corresponding to each private network address in the at least one private network address are used for the MPTCP server.
  • the MPTCP server obtains the public network address corresponding to each private network address in the at least one private network address, including:
  • the MPTCP server sends an address request message to the first gateway:
  • the MPTCP server receives a first response message sent by the first gateway in response to the address request message, where the first response message includes: a public network address corresponding to each private network address in the at least one private network address.
  • the MPTCP server obtains the public network address and port number corresponding to each private network address in the at least one private network address, including:
  • the MPTCP server sends an address request message to the first gateway
  • the MPTCP server receives a first response message sent by the first gateway in response to the address request message, where the first response message includes: a public network address corresponding to each private network address in the at least one private network address and The port number.
  • the MPTCP server obtains the public network address corresponding to each private network address in the at least one private network address, including:
  • the MPTCP server sends an address lease renewal request message to the first gateway
  • the MPTCP server receives a second response message sent by the first gateway in response to the address renewal request message, where the response message includes: a public network address corresponding to each private network address in the at least one private network address.
  • the MPTCP server obtains the public network address and port number corresponding to each private network address in the at least one private network address, including:
  • the MPTCP server sends an address lease renewal request message to the first gateway
  • the MPTCP server receives a second response message sent by the first gateway in response to the address renewal request message, where the response message includes: the public network address and port corresponding to each private network address in the at least one private network address No.
  • the first response message or the second response message includes an extended dynamic host configuration protocol DHCP option
  • the extended DHCP option includes: each of the at least one private network address The public network address corresponding to a private network address, or the public network address and port number corresponding to each private network address in the at least one private network address.
  • the first gateway is a dynamic host configuration protocol DHCP server, or a gateway device supporting a DHCP proxy capability, or a network address translation NAT gateway device supporting a DHCP server function, or A load balancer device that supports DHCP server and NAT functions.
  • the MPTCP server sends the MPTCP client a public network address corresponding to each private network address in the at least one private network address, or, each private network address in the at least one private network address.
  • the public network address and port number corresponding to the network address including: in the process of establishing the first sub-stream of the MPTCP session between the MPTCP server and the MPTCP client, the MPTCP server sends each private network address of the at least one private network address through a TCP message.
  • the public network address corresponding to the network address is sent to the MPTCP client, or the public network address and port number corresponding to each private network address in the at least one private network address are sent to the MPTCP client.
  • the MPTCP server can generate the ADD_ADDR option and add it to the Syn ACK packet.
  • the MPTCP ADD_ADDR option carries: the public IP address corresponding to each private IP address in at least one private IP address, or, at least one private IP address The public network IP address and port number corresponding to each private network IP address in the IP address The private network IP and the corresponding public network IP and/or port.
  • the MPTCP server sends the MPTCP client a public network address corresponding to each private network address in the at least one private network address, or, each private network address in the at least one private network address.
  • the public network address and port number corresponding to the network address including: after the MPTCP server and the MPTCP client establish the first sub-stream of the MPTCP session, the MPTCP server sends each private network address of the at least one private network address to the MPTCP client.
  • a communication apparatus including a unit for performing each step in the above first aspect or any possible implementation manner of the first aspect.
  • a communication device comprising a unit for performing each step in the above second aspect or any possible implementation manner of the second aspect.
  • a communication device comprising a unit for performing each step in the above third aspect or any possible implementation manner of the third aspect.
  • a communication apparatus including a unit for performing each step in the above fourth aspect or any possible implementation manner of the fourth aspect.
  • a communication apparatus includes at least one processor and a memory, where the at least one processor is configured to execute the method in the above first aspect or any possible implementation manner of the first aspect.
  • a communication apparatus includes at least one processor and a memory, where the at least one processor is configured to execute the method in the above second aspect or any possible implementation manner of the second aspect.
  • a communication device in an eleventh aspect, includes at least one processor and a memory, where the at least one processor is configured to execute the above third aspect or the method in any possible implementation manner of the third aspect.
  • a twelfth aspect provides a communication apparatus, the communication apparatus includes at least one processor and a memory, where the at least one processor is configured to execute the method in the above fourth aspect or any possible implementation manner of the fourth aspect.
  • a thirteenth aspect provides a communication device, the communication device includes at least one processor and an interface circuit, where the at least one processor is configured to execute the above first aspect or any of the possible implementations of the first aspect method.
  • a fourteenth aspect provides a communication device, the communication device includes at least one processor and an interface circuit, where the at least one processor is configured to execute the second aspect or any of the possible implementations of the second aspect. method.
  • a fifteenth aspect provides a communication device, the communication device includes at least one processor and an interface circuit, where the at least one processor is configured to execute the third aspect or any of the possible implementations of the third aspect. method.
  • a sixteenth aspect provides a communication device, the communication device includes at least one processor and an interface circuit, where the at least one processor is configured to execute the fourth aspect or any of the possible implementations of the fourth aspect. method.
  • a seventeenth aspect provides an MPTCP client device, where the MPTCP client device includes any one of the communication apparatuses provided in the fifth aspect, the ninth aspect, or the thirteenth aspect.
  • An eighteenth aspect provides a DNS server, where the DNS server includes any of the communication devices provided in the sixth aspect, the tenth aspect, or the fourteenth aspect.
  • a nineteenth aspect provides a DHCP server, where the DHCP server includes any one of the communication devices provided in the seventh aspect, the eleventh aspect, or the fifteenth aspect.
  • a twentieth aspect provides an MPTCP server, where the MPTCP server includes any one of the communication devices provided in the eighth aspect, the twelfth aspect, or the sixteenth aspect.
  • a twenty-first aspect provides a computer program product, the computer program product comprising a computer program that, when executed by a processor, is used to perform the method in any one of the first to fourth aspects, Or, for performing the method in any possible implementation manner of any one of the first aspect to the fourth aspect.
  • a twenty-second aspect provides a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium, and when the computer program is executed, is used to execute any one of the first to fourth aspects The method in , or, for performing the method in any possible implementation manner of any one of the first aspect to the fourth aspect.
  • a twenty-third aspect provides a chip, the chip comprising: a processor for calling and running a computer program from a memory, so that a communication device installed with the chip executes any one of the first to fourth aspects The method in , or, for performing the method in any possible implementation manner of any one of the first aspect to the fourth aspect.
  • the MPTCP client can determine the MPTCP session by obtaining multiple IP addresses of the MPTCP server corresponding to the domain name and the unique identifier of the MPTCP server corresponding to each IP address. Multiple IP addresses of the same MPTCP server, so that the first sub-stream of the MPTCP session can be established by using the multiple IP addresses, which solves the network reachability failure and network delay or packet loss problems of a single IP address, and enables the MPTCP session. Quickly build chains and improve user experience. In addition, the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
  • the method and the communication device for determining the public network address of the MPTCP server provided by the present application send the public network address corresponding to the private network address configured for the back-end MPTCP service, or the public network address and port information to the back-end MPTCP server through the DHCP server, In this way, the MPTCP server can clearly perceive the public network IP and/or port information corresponding to each private network IP, so that the MPTCP server can notify the MPTCP client of the public network IP corresponding to the private network IP, or the private network IP corresponding to the public network IP and/or port information.
  • the local configuration of the MPTCP server is reduced, and the local configuration of the public network address of the MPTCP server is not required, which prevents the public network address from being directly exposed on the public network and thus affects its security.
  • FIG. 1 is a schematic diagram of a networking scenario architecture of a multi-homed client.
  • FIG. 2 is a schematic diagram of an example of a communication system provided by the present application and applicable to an embodiment of the present application.
  • FIG. 3 is a schematic flowchart of an example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 4 is a schematic structural diagram of an example of DNS query request and DNS query response information provided in the present application.
  • FIG. 5 is a schematic structural diagram of an example of a query field (Query) field provided for this application.
  • FIG. 6 is a schematic structural diagram of an example of an RR record of an APTR type or an AAAAPTR type provided by an embodiment of the present application.
  • FIG. 7 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 8 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 9 is a schematic diagram of an example of a communication system applicable to an embodiment of the present application provided by an embodiment of the present application.
  • FIG. 10 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 11 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
  • FIG. 12 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
  • FIG. 13 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
  • FIG. 14 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
  • FIG. 15 is a schematic structural diagram of an example of LB application scenario networking provided by the present application.
  • FIG. 16 is a schematic diagram of an example of a communication system provided by the present application and applicable to an embodiment of the present application.
  • FIG. 17 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 18 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 19 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 20 is a schematic flowchart of an example of an address lease renewal process at time T1 between a DHCPv6 client and a DHCPv6 server according to an embodiment of the present application.
  • FIG. 21 is a schematic flowchart of an example of an address lease renewal process of a DHCPv6 client and a DHCPv6 server at time T2 provided by an embodiment of the present application.
  • FIG. 22 is a schematic structural diagram of an example of an extended DHCP option provided by an embodiment of the present application.
  • FIG. 23 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 24 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 25 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 26 is a schematic diagram of an embodiment of the present application providing an example of a communication system applicable to the embodiment of the present application.
  • FIG. 27 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 28 is a schematic structural diagram of an example of a NAT public address option provided by an embodiment of the present application.
  • FIG. 29 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 30 is a schematic diagram of an embodiment of the present application providing an example of a communication system applicable to the embodiment of the present application.
  • FIG. 31 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 32 is a schematic structural diagram of an example of a NAT public address option provided by an embodiment of the present application.
  • FIG. 33 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
  • FIG. 34 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
  • FIG. 35 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
  • FIG. 36 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
  • FIG. 37 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
  • first and second are only used for descriptive purposes, and should not be construed as indicating or implying relative importance or implicitly indicating the number of indicated technical features.
  • a feature defined as “first” or “second” may expressly or implicitly include one or more of that feature.
  • plural means two or more.
  • various aspects or features of the present application may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques.
  • article of manufacture 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 (eg, hard disks, floppy disks, or magnetic tapes, etc.), optical disks (eg, compact discs (CDs), digital versatile discs (DVDs) etc.), smart cards and flash memory devices (eg, erasable programmable read-only memory (EPROM), card, stick or key drives, etc.).
  • various storage media described herein can represent one or more devices and/or other machine-readable media for storing information.
  • the term "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.
  • GSM Global System of Mobile communication
  • CDMA Code Division Multiple Access
  • CDMA Wideband Code Division Multiple Access
  • WCDMA Wideband Code Division Multiple Access
  • GSM Global System of Mobile communication
  • CDMA Code Division Multiple Access
  • WCDMA Wideband Code Division Multiple Access
  • GPRS General Packet Radio Service
  • LTE Long Term Evolution
  • FDD Frequency Division Duplex
  • TDD Time Division Duplex
  • UMTS Universal Mobile Telecommunication System
  • WiMAX Worldwide Interoperability for Microwave Access
  • 5G 5th Generation
  • 5G 5th Generation
  • New Radio New Radio
  • the terminal device in this embodiment of the present application may refer to a user equipment, an access terminal, a subscriber unit, a subscriber station, a mobile station, a mobile station, a remote station, a remote terminal, a mobile device, a user terminal, a terminal, a wireless communication device, a user agent or user device.
  • the terminal device may also be a cellular phone, a cordless phone, a Session Initiation Protocol (SIP) phone, a Wireless Local Loop (WLL) station, a Personal Digital Assistant (PDA), a wireless communication Functional handheld devices, computing devices or other processing devices connected to wireless modems, in-vehicle devices, wearable devices, terminal devices in 5G networks or terminals in the future evolution of the public land mobile network (PLMN) equipment, etc., which are not limited in this embodiment of the present application.
  • SIP Session Initiation Protocol
  • WLL Wireless Local Loop
  • PDA Personal Digital Assistant
  • PLMN public land mobile network
  • the mobile terminal With the continuous growth of the number of users of mobile terminals (such as mobile phones), the business functions supported by various mobile terminals continue to increase. For example, functions such as instant messaging, securities, web browsing, and file download have gradually become the mainstream of terminal devices, especially smart phones. application.
  • the mobile terminal In the process of surfing the Internet, the mobile terminal needs to query the domain name of the uniform resource locator (URL) for the Internet protocol (IP) address corresponding to the domain name in order to send data packets. This process needs to be done by querying the DNS server.
  • URL uniform resource locator
  • IP Internet protocol
  • a DNS server is a distributed host information database that provides mapping and conversion between domain names and IP addresses, and can resolve domain names to corresponding IP addresses through the DNS server. Terminal devices can access domain names through the domain name resolution service provided by DNS.
  • the process of domain name access is as follows: Take the terminal device accessing domain name A as an example, when the terminal device accesses the domain name A, it queries whether the IP address of the application server corresponding to the domain name A exists in its cache. If so, the terminal device can directly obtain the IP address. The IP address, through which the domain name A is accessed. If it does not exist, the terminal device can send a domain name resolution request to the DNS server, the domain name resolution request carries the domain name A, and the DNS server returns the IP address corresponding to the domain name A, and the terminal device can access the domain name A through the IP address.
  • the terminal device After obtaining the IP address corresponding to the domain name, the terminal device generates and caches a DNS cache record.
  • the DNS cache record is used to indicate the correspondence between the domain name and the IP address.
  • the terminal device maintains a corresponding time to live (TTL) for each cached DNS cache record.
  • TTL of the DNS cache record is the retention time of the DNS cache record in the cache of the terminal device. In this way, if the terminal device needs to access the domain name in the DNS cache record again within the TTL of a certain DNS cache record, the terminal device can directly obtain the IP address corresponding to the domain name according to the DNS cache record. If the TTL of the DNS cache record is exceeded, the terminal device needs to access the domain name again, and obtains the IP address corresponding to the domain name through DNS server resolution.
  • Transport Layer is the fourth layer protocol of the International Organization for Standardization open system interconnection (ISO OSI) protocol.
  • the transport layer protocol provides end-to-end communication services for the application process and is two communication devices.
  • the first end-to-end layer when data communication (such as a computer) goes through a network.
  • the traditional transport layer protocol only supports the single-path function, that is, a transport layer connection can only be bound to one end-to-end path for data transmission. If multiple connections are required, only multiple Layer 4 TCP connections can be established.
  • MPTCP is a transport layer protocol that utilizes multiple paths for concurrent transmission.
  • MPTCP initializes multiple connections in sequence, that is, when a channel (or the first sub-stream) is established according to the three-way handshake, other sub-channels (or secondary sub-streams) are established according to the three-way handshake. These channels are connected with a three-way handshake and disconnected with a four-way handshake. These channels are bound to the same MPTCP session (MPTCP session).
  • the data at the sender can select one of the channels for transmission, or transmit on two channels through the scheduler.
  • one MPTCP server can correspond to multiple public network IP addresses
  • the MPTCP client can use the multiple public network IP addresses to respectively establish multiple sub-streams or channels of the MPTCP session for data transmission.
  • the multiple public IP addresses corresponding to the MPTCP server generally depend on the client configuration. For example, the MPTCP proxy application of the mobile phone will statically configure at least one public IP address of the MPTCP proxy gateway.
  • FIG. 1 A schematic diagram of a multi-homed client networking scenario is shown in Figure 1.
  • the multi-homed client has two network interfaces: wireless-fidelity (Wifi) and cellular network interface (cellular).
  • the multi-homed client can access the content delivery network 2 (content delivery network 2) through WIFI. network, CDN), access CDN1 and CDN3 through the cellular network interface.
  • client subnet extension DNS Extension DNS, EDNS
  • a client sends a DNS query request from its WiFi interface, it should also send the client subnet corresponding to the cellular network interface in this DNS query request. This will indicate the requested IP to the DNS server
  • the address should be valid for both WiFi interface and cellular network interface (eg CDN3).
  • the first method use the existing forwarding DNS, and consider that all "A” and "AAAA” type resource records (RR) associated with a domain name correspond to the same MPTCP server and can be used to establish multiple Path TCP subflow. However, it is usually for load balancing reasons when multiple resource records are associated with a DNS domain name, and these resource records point to the addresses of different MPTCP servers.
  • the "A" type resource record is used for IP address records, including a 32-bit IPV4 address, which is often used to map host names (or domain names) to IP addresses. That is, a resource record of type "A” is the IP address corresponding to the specified domain name. Resource records of type "AAAA” are also used for IP address records, including a 128-bit IPV6 address used to map host names (or domain names) to IP addresses. That is to say, the resource record of type "AAAA" is also the IP address corresponding to the specified domain name.
  • Second method Define a new DNS record containing a list of IP addresses associated with a given MPTCP server. However, this would require deploying a new type of DNS record.
  • a reverse DNS tree typically contains only pointer records (PTR) that associate domain names with reverse IPv4 or IPv6 addresses, and reverse DNS can also be used to store A and AAAA records. Therefore, the third method is currently recommended.
  • PTR type resource records are used to map an IP address to a corresponding domain name (or host name). The A record or AAAA record is to access the IP through the domain name.
  • “7200” indicates the lifetime of the DNS cache record, in seconds.
  • "IN” indicates that the name of the network type is "Internet Network”.
  • "A” is represented as an IP address of type IPV4.
  • “AAAA” is represented as an IP address of type IPV6.
  • the DNS server is queried for the forward resolution result, and then the DNS reverse resolution result is queried according to the queried IP address.
  • the corresponding Reverse resolution records (A or AAAA type records, non-PTR type records) are pre-configured on the DNS server.
  • an MPTCP client such as a terminal device queries the IP address and/or port information of the MPTCP server through the DNS server
  • usually only one optimal query result can be obtained (for example, only the IP address of one MPTCP server can be queried)
  • This will cause the IP address in the query result to be unreachable or the network packet loss is severe, which will affect the TCP link establishment performance and results when the MPTCP client application accesses the MPTCP server for the first time.
  • the failure of the first sub-stream to establish the chain will lead to the failure of the entire MPTCP session to establish the chain.
  • the MPTCP client cannot perceive the new IP address of the server and establish other sub-streams, which cannot guarantee the correct establishment of the MPTCP session, resulting in users being unable to access application data. user experience.
  • the application provides a method for determining the public network address of an MPTCP server, and defines a new type of DNS resource record, which identifies the MPTCP server corresponding to the domain name or the identifier of a group of equivalent MPTCP servers in the DNS resource record.
  • the identifier of an MPTCP server is used to uniquely identify an MPTCP server
  • a domain name can correspond to one or more MPTCP servers
  • multiple DNS resource records corresponding to an MPTCP server in the DNS server are used to identify multiple public networks of the MPTCP server IP address.
  • the MPTCP client When the MPTCP client queries the DNS resource record through the DNS server, the MPTCP client can obtain multiple public IP addresses of an MPTCP server in the MPTCP session, and can use the multiple IP addresses to establish the first sub-stream of the MPTCP session.
  • the network reachability failure and network delay or packet loss problems of a single IP address can be solved, and the MPTCP session can be quickly established and the user experience can be improved.
  • FIG. 2 is a schematic structural diagram of an example of a wireless communication system applicable to an embodiment of the present application.
  • an MPTCP client for example, a terminal device
  • it can query the DNS server for the IP address of the corresponding server (for example, an MPTCP server) of the domain name to be accessed, and obtain the IP address through the DNS server.
  • the corresponding server can be accessed according to the IP address, so as to obtain the required data of the accessed application.
  • FIG. 3 is a schematic flowchart of a method 200 for determining a public network address of an MPTCP server according to an embodiment of the present application.
  • the method 200 can be applied in the scenario shown in FIG. 2 , and of course can also be applied in other communication scenarios, which is not limited in this embodiment of the present application.
  • the method provided by the present application will be described with the MPTCP client and the DNS server as the main body of execution.
  • the execution subject of the execution method may also be a chip applied to the DNS server and the MPTCP client.
  • the method 200 shown in FIG. 3 may include S210 to S240. Each step in the method 200 will be described in detail below with reference to FIG. 3 .
  • the MPTCP client may be a terminal device, the MPTCP server stores application data that the MPTCP client needs to access, the MPTCP server may also be called an application server, and the MPTCP client can establish MPTCP with the MPTCP server. The session gets the data it needs.
  • the IP address of the MPTCP server can be understood as multiple public network IP addresses published by the MPTCP server. These public network IP addresses can be the local network port IP of the server supporting MPTCP, or the network address translation (network address) corresponding to the MPTCP server. translation, NAT) the public network IP address on the device, and the NAT device provides the NAT gateway function for the server supporting MPTCP. These public IP addresses may include IPV4 addresses and IPV6 addresses.
  • the MPTCP client sends a first request to the DNS server, where the first request includes a first domain name, and the first request is used to request at least one IP address of the MPTCP server corresponding to the first domain name and a first IP address corresponding to the MPTCP server logo.
  • the DNS server determines first information according to the first request, where the first information includes: at least one IP address of the MPTCP server corresponding to the first domain name and a first identifier corresponding to the MPTCP server, and one first identifier is used to uniquely identify An MPTCP server.
  • the DNS server sends the first information in response to the first request to the MPTCP client.
  • the MPTCP client determines at least one IP address of the MPTCP server corresponding to the first domain name and the first identifier according to the first information.
  • the MPTCP client when the MPTCP client needs to access a certain domain name, if the application on the MPTCP client creates a hypertext transfer protocol (HTTP) session, the locally cached DNS type record cannot be queried for the corresponding first domain name
  • the IP address of the MPTCP server will trigger the generation of the first request, for example, the first request may be a DNS query request.
  • the MPTCP client can send a first request to the DNS server, where the first request includes the first domain name, and the first request is used to request the IP address of the MPTCP server corresponding to the first domain name and the first identifier corresponding to the MPTCP server, a The first identifier is used to uniquely identify (or correspond to) an MPTCP server.
  • the first domain name may be www.xxx.com.
  • the locally cached DNS type record may be at least one of an "A” type RR record, an "AAAA” type RR record, and a PTR type RR record.
  • FIG. 4 shows a schematic structural diagram of an example of DNS query request and DNS query response information provided for this application
  • Figure a in Figure 4 shows a schematic structural diagram of a DNS query request.
  • the DNS query request includes: session Identification (Transaction ID) field, Flags (Flags) field, Questions (Questions) field, Answer RRs (Answer RRs) field, Authority RRs (Authority RRs) field, Additional RRs (Additional RRs) field, Query the question area (Queries) field, the authorized area (Authoritative nameservers) field, the additional area (Additional recordeds) field.
  • Figure b in Figure 4 shows a schematic structural diagram of DNS query response information, the DNS query response information: session identification (Transaction ID) field, flag (Flags) field, number of questions (Questions) field, answer resource record Answer RRs field, Authority RRs field, Additional resource records (Additional RRs) field, Queries field, Answers field, Authoritative nameservers field, Additional records field.
  • FIG. 5 is a schematic structural diagram of a query field (Query) field.
  • the Query field includes: a query name field, a query type field, and a query type field.
  • Table 1 shows the contents of the defined query types.
  • the query class (Class) is the same as the type (Class) definition in the definition of the answer resource record (Answer RR resource), usually the value is 1, indicating the IP address of the Internet.
  • the DNS server may query the cache in the normal forward DNS database according to the domain name included in the first request.
  • a forward DNS query can be understood as querying the IP address of the corresponding server according to the domain name, that is, mapping the domain name to the public IP address of the server.
  • the forward DNS database includes information of domain names and corresponding IP addresses of servers.
  • a new type of DNS resource record (a first type of resource record) may be defined, and the DNS server may store the first type of resource record.
  • the resource record of the first type includes: an identifier (ie, a first identifier) corresponding to each MPTCP server in the at least one MPTCP server corresponding to the first domain name.
  • the resource record of the first type represents the identifier of one or more MPTCP servers or a group of equivalent MPTCP servers (such as a group of MPTCP servers of a load balancer proxy) corresponding to the domain name, and one identifier is used to uniquely identify an MPTCP server Server, that is, the same server has the same identifier.
  • the resource record of the first type includes: the public IP addresses of one or more MPTCP servers corresponding to the domain name, and the respective identifiers corresponding to the one or more MPTCP servers.
  • An MPTCP server may correspond to one or more public IP addresses. network IP address.
  • the resource record of the first type may include at least one of an RR record of an address pointer record (address pointer record, APTR) type and an RR record of an AAAAPTR type.
  • the APTR type corresponds to the RR record of type A
  • the domain name in the RR record of this type corresponds to the IPv4 address
  • the AAAAPTR type corresponds to the RR record of the AAAA type
  • the domain name in the RR record of this type corresponds to the IPv6 address.
  • the identifier corresponding to the MPTCP server may be a universally unique identifier (Universally Unique Identifier, UUID) of the MPTCP server, and a UUID is used to uniquely identify an MPTCP server.
  • UUID Universally Unique Identifier
  • the identifier corresponding to the MPTCP server may also be other identifiers, as long as the identifier can uniquely correspond to or indicate an MPTCP server, which is not limited in the embodiment of the present application.
  • Multiple first-type resource records corresponding to the same MPTCP server corresponding to a domain name identify multiple IP addresses of the MPTCP server. For example, assuming that the same MPTCP server corresponds to three APTR RR records, it is proved that the MPTCP server has three IP addresses.
  • the DNS server may query the resource record of the first type according to the domain name included in the first request.
  • the DNS server may also query the stored RR records of type "A”, RR records of type "AAAA”, and the like.
  • the DNS type record cached locally by the DNS server may further include: at least one of an APTR type RR record and an AAAAPTR type RR record.
  • the DNS server can determine the first information by querying according to the domain name included in the first request, and the first information includes: the IP address of at least one MPTCP server corresponding to the first domain name and the first identifier corresponding to the MPTCP server respectively, A first identifier is used to uniquely identify an MPTCP server, and an MPTCP server corresponds to one or more IP addresses.
  • the first domain name is www.xxx.com
  • the corresponding three different MPTCP servers are MPTCP server 1, MPTCP server 2, and MPTCP server 3, respectively.
  • Three servers are distributed in different locations.
  • MPTCP server 1 corresponds to two IP addresses, namely IP11, IP12
  • MPTCP server 2 corresponds to three IP addresses, namely IP21, IP22, IP23
  • MPTCP server 3 corresponds to three IP addresses, respectively IP31, IP32, IP33
  • MPTCP The identifier corresponding to server 1 is UUID1
  • the identifier corresponding to MPTCP server 1 is UUID2
  • the identifier corresponding to MPTCP server 3 is UUID3.
  • MPTCP server 1 For MPTCP server 1, it includes the following two RR records of APTR type:
  • the DNS server may send first information in response to the first request to the MPTCP client, for example, the first information may be a DNS query response message.
  • the DNS server may send the queried APTR type RR record and/or AAAAPTR type RR record to the MPTCP client through a DNS query response message.
  • the DNS server may only send multiple APTR-type RR records and/or AAAAPTR-type RR records corresponding to one MPTCP server to the MPTCP client, and the MPTCP server may be the MPTCP server closest to the MPTCP client.
  • the first domain name corresponds to an MPTCP server as an example for description.
  • the MPTCP client may determine one or more IP addresses of the MPTCP server corresponding to the first domain name and the first identifier according to the first information. For example, the MPTCP client can parse the APTR type RR record and/or the AAAAPTR type RR record to determine one or more IP addresses corresponding to the same MPTCP server.
  • the MPTCP client can determine the same MPTCP server in the MPTCP session by obtaining multiple IP addresses of the MPTCP server corresponding to the domain name and the unique identifier of the MPTCP server corresponding to each IP address.
  • Multiple IP addresses of the server so that the first sub-stream of the MPTCP session can be established by using the multiple IP addresses, which solves the network reachability failure and network delay or packet loss problems of a single IP address, and enables the MPTCP session to quickly establish a link , to improve the user experience.
  • the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
  • the MPTCP client queries the IP address information of the MPTCP server through the DNS server through the domain name, it will be the same as the normal A-type DNS resource record, and will query the APTR-type and/or AAAAPTR-type DNS resources. Records are cached and aged normally according to the aging time.
  • one domain name may correspond to multiple different MPTCP servers
  • the multiple different MPTCP servers may be distributed in different locations
  • one MPTCP server may also correspond to different IP addresses.
  • an MPTCP client accesses this domain name, it can establish an MPTCP session with any one of multiple different MPTCP servers. For example, use different IP addresses of the same MPTCP server to establish sub-streams respectively for transmission.
  • the IP address of the MPTCP server may be an IPV4 address or an IPV6 address
  • the server UUID corresponding to the IPv4 address and the IPv6 address may be defined as different type values.
  • FIG. 6 shows a schematic structural diagram of an RR record of APTR type or AAAAPTR type provided for this application.
  • the resource record includes fields 101 to 101.
  • Field 106 where 101 represents the domain name (name) field, 102 represents the query request type (type) field, 103 represents the type (class) field, 104 represents the TTL field, 105 represents the data length (data length) field, 106 represents the data ( data) field.
  • the domain name (name) field is used to indicate the domain name to be queried, and the length of this field is variable.
  • Query request type (type) field the length is 2 bytes (Byte, B), indicating that the type of the resource record to be queried is an APTR type RR record or an AAAAPTR type RR record.
  • the IPv4 address type and the IPv6 address type may correspond to different values.
  • the query request type (type) may also be a wildcard type query request, and the wildcard type query request is used to request to query an APTR type RR record or an AAAAPTR type RR record, or , the value of the query request type field may also be other values used to indicate APTR type RR records or AAAAPTR type RR records.
  • Type (class) field 2 bytes in length.
  • the “IN” shown in FIG. 6 is used to indicate that the network type to be queried is “Internet”.
  • the type (class) field may also be used to indicate other network types that need to be queried.
  • TTL 4 bytes long
  • TTL is the length of time that the APTR type RR record or AAAAPTR type RR record is kept in the cache of the DNS server or MPTCP client, in seconds.
  • Data length field 2 bytes in length, used to indicate the length of the application data corresponding to the domain name accessed.
  • Data (data) field includes the IP address and UUID of the MPTCP server.
  • the IP address of the MPTCP server can be an IPv4 address or an IPv6 address.
  • FIG. 6 is only exemplary, and should not impose any restrictions on the structure or included content of the APTR-type RR record or the AAAAPTR-type RR record provided in the embodiment of the present application.
  • the structure of the APTR type RR record or the AAAAPTR type RR record may also be other structures, and the APTR type RR or the AAAAPTR type RR record may also include other contents.
  • the embodiments of the present application are not limited herein.
  • the DNS query request is also used to request the resource record of the first type.
  • the DNS query request sent by the MPTCP client to the DNS server can be used to request the APTR-type RR record.
  • RR record or AAAAPTR type RR record For example, the query request type field in the DNS query request may be set to indicate an APTR type RR record or an AAAAPTR type RR record, or the query request type field in the DNS query request may also be set to indicate a wildcard type
  • the query request of the wildcard type is used to request to query the APTR type RR record or the AAAAPTR type RR record.
  • the query request of the wildcard type may be the query request of the ANY type shown in Table 1.
  • indication information may also be set in the DNS query request, where the indication information is used to indicate that the type of the resource record to be queried is an APTR type RR record or an AAAAPTR type RR record.
  • the embodiments of the present application are not limited herein.
  • the DNS query request may also be used to request to query an "A" type RR record, an "AAAA” type RR record, or a PTR type RR record, and the like.
  • the embodiments of the present application are not limited herein.
  • the DNS server After the DNS server receives the DNS query request, according to the domain name in the request, query the forward DNS database for "A" type RR records, "AAAA” type RR records, and PTR type RR records , at least one of APTR type RR records and AAAAPTR type RR records.
  • the DNS server may query only the RR record indicated by the type of the DNS query request according to the type of the query request carried in the DNS query request, for example, only query the APTR type RR record or the AAAAPTR type RR record.
  • the DNS server filters the queried records through the local policy, it can reply to the MPTCP client through a DNS query response message.
  • the local filtering strategy needs to consider the same filtering results for multiple APTR records corresponding to the same MPTCP server as much as possible.
  • the MPTCP client parses the RR record of the APTR type, and can generate and cache service records according to the domain name + server UUID as the key value.
  • a service record has at least Include an IP address.
  • the APTR type RR record or the AAAAPTR type RR record includes the following three items:
  • the service record generated by the MPTCP client according to the domain name + server UUID can be:
  • the service record includes three IP addresses, that is, the MPTCP client can determine that the same MPTCP server (identified as UUID2) corresponding to the domain name "www.xxx.com” has three IP addresses, namely IP21, IP22, and IP23. This shows that the server corresponding to "www.xxx.com” can provide service links of 3 network interfaces.
  • An MPTCP client can establish an MPTCP session with the server using three IP addresses.
  • the method 200 further includes S250 .
  • the MPTCP client establishes the first substream of the MPTCP session with the MPTCP server according to at least one IP address of the MPTCP server.
  • the MPTCP server corresponds to multiple IP addresses.
  • the MPTCP client determines the multiple IP addresses of the MPTCP server corresponding to the first domain name and the first identifier, it indicates that the server (the MPTCP server) is a server that can provide multiple network interfaces, and the MPTCP client can try to establish with it.
  • MPTCP session MPTCP clients can attempt to establish the first substream of an MPTCP session based on these IP addresses.
  • the MPTCP client can use any one of the following three methods to try to establish the first substream of the MPTCP session according to these IP addresses.
  • the first type the MPTCP client sequentially uses (or polls) multiple IP addresses of the MPTCP server to establish the first sub-stream, for example, according to the natural order of the obtained IP addresses, it tries to establish the first sub-stream with these multiple IPs in turn.
  • sub-streams the first sub-stream to be successfully established is the first sub-stream. It is assumed that the first substream corresponds to the first IP address.
  • the MPTCP client will join the sub-flow successfully established according to the second IP address into the MPTCP session corresponding to the first sub-flow, and the second IP address is the IP address of the MPTCP server except the first IP address.
  • the multiple IP addresses of the MPTCP server include a first IP address and a second IP address.
  • the multiple IP addresses of the MPTCP server include: IP address 1, IP address 2, and IP address 3.
  • the MPTCP client first uses IP address 1 to establish the first sub-stream. If the establishment is successful, it then uses IP address 2 and IP address 3 to establish the secondary sub-stream respectively, and adds the successfully established secondary sub-stream with IP address 2 and IP address 3. into the MPTCP session corresponding to the first substream.
  • the first sub-flow will be established with IP address 2. If the establishment is successful, the second sub-flow will be established with IP address 1 and IP address 3 respectively, and the second sub-flow will be established with IP address 1 and IP address. The second sub-stream whose address 3 is successfully established is added to the MPTCP session corresponding to the first sub-stream.
  • the first sub-flow is established with IP address 3. If the establishment is successful, the second sub-flow is established with IP address 1 and IP address 2 respectively, and the The successfully established secondary substream using IP address 1 and IP address 2 is added to the MPTCP session corresponding to the first substream.
  • the first sub-stream of the MPTCP session in addition to successively trying to establish the first sub-stream of the MPTCP session with these multiple IP addresses according to the natural order of obtaining IP addresses, the first sub-stream of the MPTCP session can also be established according to the temporary round-trip time test.
  • RTT Red-Trip Time
  • the MPTCP client uses multiple IP addresses of the MPTCP server to establish the first sub-stream respectively, and the first sub-stream that is successfully established is the first sub-stream, assuming that the first sub-stream corresponds to the first IP address.
  • the MPTCP client revokes the first sub-stream that is being established (chain establishment) and/or has been successfully established (chain establishment) according to the second IP address, and adds the second sub-stream that is successfully re-established with the second IP address to the first sub-stream.
  • the second IP address is an IP address other than the first IP address of multiple IP addresses of the MPTCP server.
  • the MPTCP client revokes the first sub-stream established according to the second IP address that is being established or has been completed, and carries the MPTCP session receiver's Token (Receiver's Token) obtained according to the first sub-stream established according to the first IP address in the MP_JOIN option. ), use the second IP address to re-establish the second sub-flow (subTCP) and join the corresponding MPTCP session.
  • the multiple IP addresses of the MPTCP server include a first IP address and a second IP address.
  • the multiple IP addresses of the MPTCP server include: IP address 1, IP address 2, and IP address 3.
  • the MPTCP client uses IP address 1, IP address 2, and IP address 3 to establish the first substream respectively. Assuming that the first (earliest) sub-flow is successfully established by using IP address 2, the first sub-flow corresponds to IP address 2.
  • the MPTCP client cancels the two first substreams that are being established and/or successfully established using IP address 1 and IP address 3 respectively, and then carries the MPTCP session receiver obtained from the first substream established according to IP address 2 in the MP_JOIN option. Receiver's Token, use IP address 1 and IP address 3 to re-establish a new sub-flow (subTCP) and join the MPTCP session corresponding to IP address 2.
  • the third type the MPTCP client uses multiple IP addresses of the MPTCP server to establish the first sub-stream respectively, and the first sub-stream that is successfully established is the first and first sub-stream, assuming that the first and first sub-stream corresponds to the first IP address;
  • the MPTCP client adds the second first substream successfully established according to the second IP address to the MPTCP session corresponding to the first first substream, where the second IP address is the multiple IP addresses of the MPTCP server divided by the first IP address other IP addresses.
  • the MPTCP client resends the Syn packet on the second and first substream that has been established, carrying the MP_JOIN option (including the server token to join the MPTCP session, the MPTCP client random number, and the MPTCP client truncated hash).
  • the MPTCP server agrees to relocate the existing substream into the existing MPTCP session specified by the token, it will respond with an Ack packet carrying the MP_JOIN option (the MP_JOIN option carries the MPTCP server Truncated HMAC and the MPTCP server random number). Then reply a No-Ack message or not reply an Ack message, and the multiple IP addresses of the MPTCP server include a first IP address and a second IP address.
  • the multiple IP addresses of the MPTCP server include: IP address 1, IP address 2, and IP address 3.
  • the MPTCP client uses IP address 1, IP address 2, and IP address 3 to establish the first substream respectively.
  • the first (earliest) sub-flow is successfully established by using IP address 3
  • the first sub-flow corresponds to IP address 3.
  • the MPTCP client uses IP address 1 and IP address 2 respectively to successfully establish two first sub-streams (for example, sub-stream 2 and sub-stream 3)
  • the MPTCP client will not use IP address 1 and IP address 2 successfully.
  • the first sub-stream that is successfully established is revoked, and the MPTCP client resends the Syn message on the established sub-stream 2 and sub-stream 3 respectively, carrying the MP_JOIN option (including the server token to join the MPTCP session, the MPTCP client random number, MPTCP client Truncated HMAC).
  • the MPTCP server agrees to relocate sub-flow 2 and sub-flow 3 into the existing MPTCP session specified by the token, it will respond with an Ack message carrying the MP_JOIN option (carrying the MPTCP server Truncated HMAC and the MPTCP server random number). Then reply No-Ack message or do not reply Ack message.
  • the method 200 further includes S209 .
  • the DNS server obtains second information, where the second information includes: at least one IP address of the MPTCP server corresponding to each domain name in the at least one domain name, and a first identifier corresponding to the MPTCP server, the at least one domain name includes the first domain name, A domain name corresponds to at least one MPTCP server.
  • the first DNS server first needs to obtain or determine the second information, and the second information includes: at least one IP address of the MPTCP server corresponding to each domain name in the at least one domain name, and the first IP address corresponding to each MPTCP server in the at least one MPTCP server An identifier, the at least one domain name includes the first domain name, one MPTCP server corresponds to one or more IP addresses, and one domain name corresponds to at least one MPTCP server.
  • the second information may include: IP addresses of MPTCP servers corresponding to multiple domain names, and an identifier (eg, UUID) of each MPTCP server.
  • One domain name may correspond to multiple MPTCP servers, and one MPTCP server may correspond to one or more IP addresses.
  • the multiple domain names include the first domain name carried in the DNS query request.
  • the first DNS server After the first DNS server obtains or determines the second information, and receives the DNS query request sent by the MPTCP client, it can determine the IP address and the IP address of at least one MPTCP server corresponding to the first domain name according to the DNS query request and the second information.
  • the identifier (for example, UUID) corresponding to each MPTCP server in the at least one MPTCP server, and the IP address of the at least one MPTCP server corresponding to the first domain name and the corresponding identifier of the at least one MPTCP server are sent to the MPTCP client.
  • the first DNS server may acquire a plurality of APTR type RR records and AAAAPTR type RR records.
  • the plurality of RR records of APTR type or AAAAPTR type include: at least one domain name, MPTCP server IP address and MPTCP server ID corresponding to at least one domain name respectively.
  • the multiple APTR type or AAAAPTR type RR records include the RR records corresponding to the first domain name.
  • the DNS server may also obtain RR records of type "A”, RR records of type "AAAA”, and the like.
  • the MPTCP server operator may provide multiple AAAAPTR type RR records or multiple APTR type RR records to the DNS server operator corresponding to the first DNS server. After the first DNS server operator has reviewed and approved these records, they will be added to the DNS database.
  • the first DNS server may be a root DNS server.
  • the operator of the MPTCP server may also provide the corresponding DNS service operator of the DNS server with an "A" type RR record, an "AAAA” type RR record, a PTR type RR record, and the like.
  • the first DNS server A second request may be sent to the second DNS server for requesting the second information, or for requesting an RR record of type APTR and/or AAAAPTR.
  • the second DNS server sends the APTR and/or AAAAPTR type RR record to the first DNS server according to the second request.
  • the second DNS server may also send an "A" type RR record, an "AAAA" type RR record, a PTR type RR record, and the like to the first DNS server.
  • the second DNS server may be the root DNS server.
  • the second DNS server may be understood as an upper-level DNS server of the first DNS server.
  • the second DNS server can also act as a client to query the APTR and/or AAAAPTR type RR record to the upper DNS server.
  • the embodiments of the present application are not limited herein.
  • the host machine B serves as the server of MPTCP, and provides the multimedia resource access service of the application to the host machine A (HostA) serving as the MPTCP client.
  • the DNS server DNS Server
  • DNS Server provides DNS query service for HostA, and HostA has successfully discovered the DNS server through static configuration or Dynamic Host Configuration Protocol (DHCP) option (Option).
  • DHCP Dynamic Host Configuration Protocol
  • the method 300 includes:
  • the DNS server obtains an A-type RR record and an APTR-type RR record.
  • the service operator of HostB corresponds to the A-type record and APTR-type record provided by the DNS service operator to the DNS server. After the DNS server operator has reviewed and approved these records, they will be added to the DNS database.
  • the DNS server may also obtain AAAA type RR records and AAAAPTR type RR records.
  • the domain name of HostB's service provider for external services is: mptcp.example.com
  • the public network addresses corresponding to HostB's external services are B1 and B2
  • B1 is: 198.51.100.23
  • B2 is: 176.13.100.21
  • the UUID is: 02000e00-0c30-03f1-0000-0035020100d0.
  • an RR record of type A is provided as follows:
  • the APTR type RR records are as follows:
  • HostA sends a DNS query request message to the DNS, which is used to query the IP address of the server corresponding to the domain name. For example, HostA is going to access HostB to access the site resources of "mptcp.example.com". If the application on HostA creates an HTTP session, the locally cached DNS A or APTR records cannot be queried for the server corresponding to mptcp.example.com. The IP address triggers the generation and sending of a DNS query request packet.
  • the DNS query request packet can request to query the A-type record and APTR-type record named mptcp.example.com at the same time, or can query the APTR-type record named mptcp.example.com independently.
  • the DNS server performs a query according to the DNS query request message, and determines the RR record of the APTR type corresponding to the domain name,
  • the DNS server After receiving the DNS query request message from HostA, the DNS server queries the APTR named "mptcp.example.com" in the local database according to the query request (for example, the query request only requests to query RR records of APTR type).
  • the query request for example, the query request only requests to query RR records of APTR type.
  • Type of RR records the following two records are queried:
  • the DNS server replies the query result to Host A through a query response message, where the query result includes: an RR record of APTR type corresponding to the domain name.
  • HostA parses the APTR type record, and generates and caches the service record according to the domain name + the UUID of the server as the key value.
  • a service record contains at least one IP address. After HostA parses and processes the DNS query response message, the generated service record is as follows:
  • HostB corresponding to "mptcp.example.com” can provide service links with multiple network interfaces.
  • HostA can try to establish an MPTCP session with it.
  • HostA establishes an MPTCP session with HostB by using multiple IP addresses of HostB.
  • HostA itself also has multiple network portals (take two as an example), and the IP addresses of the two network interfaces are: A1 and A2 respectively. Therefore, HostA attempts to perform the TCP handshake interaction by using ⁇ A1,B1>, ⁇ A2,B1>, ⁇ A1,B2>, and ⁇ A2,B2> as the IP addresses of the first substream of the MPTCP session, respectively.
  • any one of the methods described in S250 can be used to establish the first sub-stream of the MPTCP session, the TCP session that completes the handshake first is regarded as the first sub-stream of the MPTCP session, the MPTCP session is successfully established, and then the remaining sub-streams are rebuilt, And add the substream of the new chain to the MPTCP session of the established chain.
  • the MPTCP client can automatically obtain multiple IP addresses of the MPTCP server from the DNS server, and does not rely on the mechanism of the ADD_ADDR option of the first substream of the MPTCP session to announce the IP address of the MPTCP server, It can try to establish the first substream of the MPTCP session for multiple IP addresses of the MPTCP server, which ensures the success rate and performance of the MPTCP session chain establishment.
  • the first, the second, etc. are only used to indicate that a plurality of objects are different.
  • the first DNS server and the second DNS server are only to indicate different DNS servers. It should not have any impact on the DNS server itself and the number, etc., and the above-mentioned first, second, etc., should not cause any limitation to the embodiments of the present application.
  • predefinition may be implemented by pre-saving corresponding codes, forms or other means that can be used to indicate relevant information in the device (the application does not limit its specific implementation means) .
  • FIG. 11 shows a schematic block diagram of a communication apparatus 400 according to an embodiment of the present application.
  • the communication apparatus 400 may correspond to the MPTCP client described in the foregoing method 200 and method 300, or may be a chip or component applied to the MPTCP client, and , each module or unit of the communication device 400 is respectively used to execute each action or processing process performed by the MPTCP client in the above-mentioned method 200 and each embodiment of the method 300.
  • the communication device 400 may It includes: a communication unit 410 and a processing unit 420 .
  • the communication unit 410 is configured to send a first request to a domain name system DNS server, where the first request includes a first domain name, and the first request is used to request at least one Internet Protocol IP address of the MPTCP server corresponding to the first domain name and the MPTCP server the first identifier corresponding to the server;
  • the processing unit 420 is configured to determine, according to the first information, at least one IP address of the MPTCP server corresponding to the first domain name and the first identifier.
  • the communication device provided by this application can determine the multiple IP addresses of the same MPTCP server in the MPTCP session by acquiring multiple IP addresses of the MPTCP server corresponding to the domain name and the unique identifier of the MPTCP server corresponding to each IP address , so that the first sub-stream of the MPTCP session can be established by using the multiple IP addresses, which solves the network reachability failure of a single IP address and the problem of network delay or packet loss, which can quickly establish the MPTCP session and improve the user experience.
  • the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
  • the processing unit 420 is further configured to establish the first substream of the MPTCP session with the MPTCP server according to at least one IP address of the MPTCP server.
  • the processing unit 420 is further configured to:
  • the multiple IP addresses of the MPTCP server are used in turn to establish the first sub-flow, the first sub-flow that is successfully established is the first sub-flow, and the first sub-flow corresponds to the first IP address;
  • the sub-flow successfully established according to the second IP address is added to the MPTCP session corresponding to the first sub-flow, and the second IP address is the IP addresses of the multiple IP addresses of the MPTCP server except the first IP address.
  • the IP addresses include a first IP address and a second IP address.
  • the processing unit 420 is further configured to:
  • the first sub-flow is established respectively by using multiple IP addresses of the MPTCP server, and the first sub-flow that is successfully established is the first sub-flow, and the first sub-flow corresponds to the first IP address;
  • the first sub-flow that is being established and/or has been successfully established according to the second IP address will be withdrawn, and the sub-flow that has been successfully re-established by using the second IP address will be added to the MPTCP session corresponding to the first sub-flow.
  • the addresses are IP addresses other than the first IP address of the multiple IP addresses of the MPTCP server, and the multiple IP addresses include the first IP address and the second IP address.
  • the processing unit 420 is further configured to:
  • the first sub-stream is established respectively by using multiple IP addresses of the MPTCP server, and the first sub-stream that is successfully established is the first and first sub-stream, and the first and first sub-stream corresponds to the first IP address;
  • the second IP address is the multiple IP addresses of the MPTCP server except the first IP address.
  • IP addresses, the plurality of IP addresses include a first IP address and a second IP address.
  • the first request is further used to request a resource record of a first type, where the resource record of the first type includes: each of the at least one MPTCP server corresponding to the first domain name The first identifier corresponding to the MPTCP server.
  • the first identifier is a universal unique identifier UUID corresponding to the MPTCP server.
  • the communication unit 410 may include a receiving unit (module) and a sending unit (module), configured to perform the steps of receiving information and sending information by the MPTCP client in each of the foregoing method embodiments.
  • the communication apparatus 400 may further include a storage unit for storing the instructions executed by the processing unit 420 and the communication unit 410 .
  • the processing unit 420, the communication unit 410 and the storage unit are connected in communication, the storage unit stores instructions, the processing unit 420 is used to execute the instructions stored in the storage unit, and the communication unit 410 is used to perform specific signal sending and receiving under the driving of the processing unit 420.
  • the communication unit 410 may be a transceiver, an input/output interface or an interface circuit, or the like.
  • the storage unit may be a memory.
  • the processing unit 420 may be implemented by a processor.
  • the communication apparatus 500 may include a processor 510 , a memory 520 and a transceiver 530 .
  • the communication apparatus 400 shown in FIG. 11 or the communication apparatus 500 shown in FIG. 12 can implement the various embodiments of the aforementioned method 200 and method 300 , as well as MPTCP of the related embodiments shown in FIGS. 3 , 7 , 8 , and 10 .
  • the steps performed by the client or host A Similar descriptions can refer to the descriptions in the aforementioned corresponding methods. In order to avoid repetition, details are not repeated here.
  • FIG. 13 shows a schematic block diagram of a communication apparatus 600 according to an embodiment of the present application.
  • the communication apparatus 600 may correspond to the DNS server (or be the first DNS server) described in the foregoing method 200 and method 300, or may be applied to DNS A chip or component of a server (or a first DNS server), and each module or unit of the communication device 600 is respectively used to execute each action or process performed by the DNS server in each of the embodiments of the above method 200 and method 300
  • the communication apparatus 600 may include: a communication unit 610 and a processing unit 620 .
  • Communication unit 610 used to receive a first request sent by a multi-path transmission control protocol MPTCP client, where the first request includes a first domain name, and the first request is used to request at least one Internet protocol of the MPTCP server corresponding to the first domain name The first identifier corresponding to the IP address of the MPTCP server;
  • the processing unit 620 is configured to determine, according to the first request, first information, where the first information includes: at least one IP address of the MPTCP server corresponding to the first domain name and a first identifier corresponding to the MPTCP server, a first identifier using In order to uniquely identify one MPTCP server, the first domain name corresponds to at least one MPTCP server, and one MPTCP server corresponds to at least one IP address.
  • Communication unit 610 further configured to send first information in response to the first request to the MPTCP client.
  • the communication device provided by the present application can determine the multiple IP addresses of the corresponding MPTCP server according to the requested domain name, and the unique identifier of the MPTCP server corresponding to each IP address, so as to determine the multiple IP addresses of the same MPTCP server in the MPTCP session address.
  • the information is sent to the MPTCP client, and the MPTCP client can use the multiple IP addresses to establish the first sub-stream of the MPTCP session, which solves the network reachability failure of a single IP address and the network delay or packet loss.
  • MPTCP sessions can quickly establish links to improve user experience.
  • the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
  • the processing unit 620 is further configured to acquire second information, where the second information includes: the IP address of the MPTCP server corresponding to each domain name in the at least one domain name, and the corresponding IP address of the MPTCP server.
  • the at least one domain name includes the first domain name, and one domain name corresponds to at least one MPTCP server.
  • the communication unit 610 is further configured to:
  • Second information is received from the second DNS server in response to the second request.
  • the first request is further used to request a resource record of a first type, where the resource record of the first type includes: each of the at least one MPTCP server corresponding to the first domain name The first identifier corresponding to the MPTCP server.
  • the first identifier is a universal unique identifier UUID corresponding to the MPTCP server.
  • the communication unit 610 may include a receiving unit (module) and a sending unit (module), configured to perform the steps of receiving and sending information by the DNS server or the first DNS server in the foregoing method embodiments.
  • the communication apparatus 600 may further include a storage unit for storing the instructions executed by the processing unit 620 and the communication unit 610 .
  • the processing unit 620, the communication unit 610 and the storage unit are communicatively connected, the storage unit stores instructions, the processing unit 620 is used to execute the instructions stored in the storage unit, and the communication unit 610 is used to perform specific signal sending and receiving under the driving of the processing unit 620.
  • the communication unit 610 may be a transceiver, an input/output interface or an interface circuit, or the like.
  • the storage unit may be a memory.
  • the processing unit 620 may be implemented by a processor.
  • the communication apparatus 700 may include a processor 710 , a memory 720 and a transceiver 730 .
  • the communication apparatus 600 shown in FIG. 13 or the communication apparatus 700 shown in FIG. 14 can implement the various embodiments of the aforementioned method 200 and method 300, as well as the DNS of the related embodiments shown in FIGS. 3 , 7 , 8 and 10 .
  • MPTCP is a transport layer protocol that utilizes multiple paths for concurrent transmission.
  • MPTCP initializes multiple connections in sequence, that is, when a channel (or the first sub-stream) is established according to the three-way handshake, other sub-channels (or secondary sub-streams) are established according to the three-way handshake. These channels are connected with a three-way handshake and disconnected with a four-way handshake. These channels are bound to the same MPTCP session (MPTCP session).
  • the data at the sender can select one of the channels for transmission, or transmit on two channels through the scheduler.
  • one MPTCP server can correspond to multiple public network IP addresses, and the MPTCP client can use the multiple public network IP addresses to respectively establish multiple sub-streams or channels of the MPTCP session for data transmission.
  • a server supporting MPTCP (or also called an MPTCP server) is located behind a network address translation (NAT) gateway, and a server supporting MPTCP may not be able to automatically perceive the public address and/or port corresponding to the private IP of its own network port. number, currently only rely on static settings and management protocols for configuration.
  • LB load balancer
  • a public IP address for example, ADDR2 in FIG. 15
  • the public IP address will not be announced in DNS, but will be announced by the MPTCP server through the ADD_ADDR option in the process of establishing the first substream (initial substream). And the public network address of the back-end MPTCP server cannot be used to establish the initial substream of the MPTCP session. Otherwise, after the MPTCP session is established, the MPTCP server announces the private network address (such as ADDR1 in Figure 15) to the MPTCP client through the ADD_ADDR option. The client cannot access the connection private network address ADDR1.
  • ADDR2 public IP address
  • the NAT gateway (for example, the LB device in FIG. 15 ) mainly configures the public network address and the corresponding private network address for the back-end MPTCP server through static configuration, which is less flexible.
  • the NAT gateway provides the NAT function for multiple MPTCP servers at the back end, it is necessary to statically configure each MPTCP server or configure the public network address corresponding to the private network by using the management protocol, which is prone to errors and high operation and maintenance costs.
  • the MPTCP server in the private network cannot perceive the public network IP address and/or port number corresponding to its own private network IP address, the MPTCP client cannot access the private network IP address sent by the MPTCP server, and cannot establish a new MPTCP session substream. .
  • the present application also provides a method for determining the public network address of the MPTCP server, through the dynamic host configuration protocol (dynamic host configuration protocol, DHCP) server will configure the private network address of the back-end MPTCP service and the corresponding public network The address and/or port number is sent to the backend MPTCP server.
  • the MPTCP server can clearly perceive the public network IP and/or port information corresponding to each private network IP, so that the MPTCP server can notify the MPTCP client of the public network IP and/or port information corresponding to the private network IP, so that it can correctly Create a new subflow.
  • FIG. 16 is a schematic structural diagram of an example of a wireless communication system applicable to an embodiment of the present application.
  • the system includes: MPTCP client, MPTCP server, and one or more DHCP servers.
  • Different DHCP servers can transmit information between MPTCP servers through different network interfaces, such as wireless fidelity (wireless fidelity) -fidelity, Wifi), cellular network interface (cellular) or Bluetooth, etc.
  • the MPTCP client can establish the first substream and the second substream of the MPTCP session with the MPTCP server.
  • a DNS server can also be included, and when an MPTCP client (for example, a terminal device) needs to access the application, it can query the DNS server for the IP address of the corresponding MPTCP server of the domain name that needs to be accessed, After obtaining the IP address of the server corresponding to the domain name through the DNS server, the first substream of the MPTCP session can be established with the MPTCP server according to the IP address.
  • the DHCP server can send the MPTCP server's private network address and the corresponding public network address to the MPTCP server.
  • the MPTCP client may be a terminal device, the MPTCP server stores application data that the MPTCP client needs to access, the MPTCP server may also be called an application server, and the MPTCP client can establish MPTCP with the MPTCP server. The session gets the data it needs.
  • the IP address of the MPTCP server can be understood as multiple public network IP addresses released by the MPTCP server. These public network IP addresses can be the local network port IP of the server that supports MPTCP, or the network address translation (network address) of the MPTCP server. translation, NAT) the public network IP address on the device, and the NAT device provides the NAT gateway function for the server supporting MPTCP. These public IP addresses may include IPV4 addresses and IPV6 addresses.
  • the DHCP server may include: a gateway device supporting the DHCP proxy capability, a NAT gateway device supporting the DHCP server function, or a load balancer device supporting the DHCP server and NAT functions, and the like.
  • the DHCP server can provide address assignment and lease renewal services for the MPTCP server.
  • the DHCP server may be a customer premises equipment (customer premise equipment, CPE) with a NAT function.
  • FIG. 17 is a schematic flowchart of a method 800 for determining a public network address of an MPTCP server according to an embodiment of the present application.
  • the method 800 can be applied to the scenario shown in FIG. 16 , and of course can also be applied to other communication scenarios, which is not limited in this embodiment of the present application.
  • the method provided by the present application will be described with the MPTCP client, the DHCP server and the MPTCP server as the executive bodies.
  • the execution subject of the execution method may also be a chip applied to the DNS server and the MPTCP client.
  • the DHCP server may be a DHCPv4 server or a DHCPv6 server.
  • the DHCPv4 server is used to assign IPv4 addresses
  • the DHCPv6 server is used to assign IPv6 addresses.
  • the method 800 shown in FIG. 17 may include S810 to S820. Each step in the method 800 will be described in detail below with reference to FIG. 17 .
  • the first gateway determines a public network address corresponding to each private network address in the at least one private network address of the MPTCP server. Wherein, the public network address is used for the substreams after the first substream of the MPTCP session established by the MPTCP server and the MPTCP client.
  • the first gateway may also determine the port number corresponding to each private network address in the at least one private network address of the MPTCP server, that is, S810 may also be: : The first gateway determines the public network address and port number corresponding to each private network address of the at least one private network address of the MPTCP server.
  • the first gateway sends the MPTCP server a public network address corresponding to each private network address in the at least one private network address of the MPTCP server.
  • the first gateway may also send to the MPTCP server the port number corresponding to each private network address in the at least one private network address of the MPTCP server, that is, S820 may also be: the first gateway sends, to the MPTCP server, the public network address and port number corresponding to each private network address of the at least one private network address of the MPTCP server.
  • the first gateway (in the following description, the first gateway is taken as an example of a DHCP server) may determine or obtain each private network IP address of at least one private network IP address of the MPTCP server (also referred to as a DHCP client).
  • the public IP address corresponding to the network IP address.
  • the DHCP server further acquires the public network IP address and port number corresponding to each private network IP address in the at least one private network IP address of the MPTCP server.
  • the DHCP server configuration or as a DHCP proxy device obtains the corresponding Elastic IP address (Elastic IP, EIP) that provides public network services from the address pool of the real DHCP server, or obtains the corresponding destination network address translation (destination).
  • network address translation, DNAT network address translation
  • the public network IP address pool (IP pool) and the corresponding private network IP address pool can be configured on the DHCP server.
  • the DHCP server can determine the public network address and/or port number corresponding to the private network address that needs to be allocated to the back-end MPTCP service by querying the public network IP address pool (IP pool) and the corresponding private network IP address pool.
  • DNAT The role of DNAT is to map a set of local internal addresses (private network addresses) to a set of global addresses (public network addresses). Generally speaking, the number of public network addresses is much less than the number of private network addresses. Therefore, you can use the public network IP address and port number to jointly map a private network IP address.
  • the MPTCP server may connect to different DHCP servers through different networks.
  • the MPTCP server can connect to the CPE device on the network of an Internet service provider (internet service provider, ISP) through the network card 1 or the cellular network interface, and connect the CPE2 device of the ISP2 through Wifi or the network card 2.
  • ISP Internet service provider
  • Both CPE1 and CPE2 provide DHCP server and NAT functions.
  • the MPTCP server can obtain different private network IP addresses and corresponding different EIPs, or public network IP and/or port information of DNAT from these CPE devices.
  • one or more public network addresses (public network IP addresses) corresponding to the MPTCP server, or the public network address and port number are used for the division between the MPTCP server and the MPTCP client to establish an MPTCP session.
  • Substreams other than the first substream (or may also be referred to as secondary substreams).
  • the NAT is in the EIP mode, that is, a public network IP address corresponds to a private network IP address, that is, a public network IP address can be used to map a private network IP address
  • the DHCP The server can determine or obtain the public network IP address corresponding to each IP private network address in the at least one private network IP address of the MPTCP server, and does not need to determine the port number on the DHCP server.
  • the NAT is in the DNAT mode, that is, when the number of public network IP addresses is less than the number of private network IP addresses, and a public network IP address cannot be used to map a private network IP address
  • the public IP address and port number can be used to jointly map a private IP address.
  • the DHCP server needs to determine or obtain the public IP address and port number corresponding to each private IP address in at least one private IP address of the MPTCP server. Using the DNAT method can save the number of public network IP addresses, and one public network IP address can correspond to multiple private network IP addresses.
  • the DHCP server may send to the MPTCP server: the public network IP address corresponding to each private network IP address in the at least one private network IP address of the MPTCP server.
  • the DHCP server may send the public network IP address and port number corresponding to each private network IP address of the at least one private network IP address of the MPTCP server to the MPTCP server.
  • the MPTCP server After the MPTCP server obtains the public network IP address or the public network IP address and port number sent by the DHCP server, it caches a record of the correspondence between the public network IP and/or port number and the private network IP address.
  • the correspondence record can use the private network IP address as the key value, and the MPTCP server will overwrite and update if there is an old record locally (for example, the public network IP and the public network IP and the DNAT of the EIP or DNAT corresponding to the address pool of the DHCP server that provide public network services to the outside world). / or the port configuration is changed), other sub-streams other than the first sub-stream in an MPTCP session can be established according to the public network IP address, or the public network IP address and port number.
  • the method for determining the public network address of the MPTCP server sends the public network address corresponding to the private network address configured for the back-end MPTCP service by the DHCP server, or the public network address and port information to the back-end MPTCP server.
  • the MPTCP server can clearly perceive the public network IP and/or port information corresponding to each private network IP, so that the MPTCP server can notify the MPTCP client of the public network IP corresponding to the private network IP, or the private network IP corresponding to the public network IP and/or port information. port information, so that a new sub-flow of the MPTCP session can be correctly established, which ensures that the MPTCP session can successfully establish the sub-flow and improves the efficiency of the MPTCP session.
  • the local configuration of the MPTCP server is reduced, and the local configuration of the public network address of the MPTCP server is not required, which prevents the public network address from being directly exposed on the public network and thus affects its security.
  • the method 800 may further include S809, and the S820 in the method 800 may be specifically: S821.
  • the MPTCP server sends an address request message to the DHCP server (first gateway).
  • the DHCP server sends a first response message in response to the address request message to the MPTCP server, where the first response message includes: the public IP address corresponding to each private network IP address in the at least one private network IP address of the MPTCP server network IP address.
  • the first response message includes: a public network IP address and a port number corresponding to each private network IP address in the at least one private network IP address of the MPTCP server.
  • the MPTCP server may obtain the public IP address corresponding to each private IP address in the at least one private IP address of the MPTCP server in the process of discovering the DHCP server and requesting the IP address from the DHCP server, or, The public IP address and port number corresponding to each private IP address of the at least one private IP address of the MPTCP server.
  • the MPTCP server may send an address request message (for example, a DHCP Request message) to the DHCP server to request the DHCP server to allocate a public IP address.
  • the address request message may include the private network IP address of the MPTCP server allocated by the DHCP server.
  • the DHCP server can determine (or assign) the public network IP address corresponding to the private network IP address from the address pool according to the private network IP address carried in the address request message, such as EIP, or, from the address pool.
  • the public IP address and port number corresponding to the private IP address are determined in the address pool, for example, the public IP and port information of DNAT.
  • the allocation rules can be dynamic allocation or static preset rule allocation.
  • the DHCP server can locally generate and cache the NAT rule mapping table between the private network IP address and the corresponding public network IP address, or locally generate and cache the NAT rule mapping table between the private network IP address and the corresponding public network IP address and port number. surface.
  • the DHCP server sends a first response message (for example, a DHCP Ack message) in response to the address request message to the MPTCP server, and the first response message includes: at least one private network IP address of the MPTCP server
  • the public network IP address corresponding to each private network IP address, or the first response packet includes: the public network IP address and port number corresponding to each private network IP address in the at least one private network IP address of the MPTCP server.
  • the MPTCP server After receiving the first response packet, the MPTCP server parses the first response packet, and binds the public network IP address corresponding to the private network IP address, or binds the public network IP address and port number corresponding to the private network IP address to the On the network port, the corresponding relationship between the public network IP address corresponding to the private network IP address, or the corresponding relationship between the public network IP address and the port number corresponding to the private network IP address is cached locally.
  • the MPTCP server obtains the public IP address corresponding to each private network IP address in the above at least one private network IP address, or, the MPTCP server obtains the public network IP address corresponding to each private network IP address in the at least one private network IP address of the MPTCP server
  • the public network IP address and port number can ensure that the MPTCP server correctly obtains the correspondence between the private network IP address and the corresponding public network IP address, or the correspondence between the private network IP address and the corresponding public network IP address and port number , to improve the efficiency of the MPTCP server to clearly perceive the public network IP and/or port information corresponding to each of its private network IPs.
  • the method 800 may further include S808 , and S820 in the method 800 may be specifically: S822.
  • the MPTCP server sends an address lease renewal request message to the DHCP server.
  • the DHCP server sends a second response message in response to the address renewal request message to the MPTCP server, where the second response message includes: each private network IP address of at least one private network IP address of the MPTCP server The corresponding public IP address.
  • the second response message includes: a public network IP address and a port number corresponding to each private network IP address of the at least one private network IP address of the MPTCP server.
  • the MPTCP server in addition to obtaining the public IP and/or port information corresponding to each private IP of the MPTCP server in the IP address request stage, can also obtain each private IP in the IP address renewal stage Corresponding public IP and/or port information.
  • the IP address applied by the MPTCP server generally has a lease time length (lease period). When the lease period exceeds 50%, the MPTCP server will send a DHCP request (DHCP Request) message to the DHCP server in the form of unicast. Renew the IP address. If the MPTCP server successfully receives the DHCP acknowledgment (DHCP ACK) message sent by the DHCP server, it will extend the IP address lease period according to the corresponding time; if the MPTCP server does not receive the DHCP ACK message sent by the DHCP server, the MPTCP server will continue to use this IP address.
  • DHCP Request DHCP request
  • DHCP ACK DHCP acknowledgment
  • the MPTCP server When the lease period exceeds 87.5%, the MPTCP server will send a DHCP request (DHCP Request) message to the DHCP server in the form of broadcast to renew the IP address. If the MPTCP server successfully receives the DHCP acknowledgment (DHCP ACK) message sent by the DHCP server, it will extend the IP address lease period according to the corresponding time; if the MPTCP server does not receive the DHCP ACK message sent by the DHCP server, the MPTCP server will continue to use this IP address, until the IP address lease expires, the MPTCP server will send a DHCP Release (Release) message to the DHCP server to release the IP address and start a new IP address application process.
  • DHCP Request DHCP request
  • DHCP ACK DHCP acknowledgment
  • the MPTCP server will continue to use this IP address, until the IP address lease expires, the MPTCP server will send a DHCP Release (Release) message to the DHCP
  • the DHCP server is used as the DHCPv6 server as an example for description.
  • the address allocated by the DHCPv6 server to the DHCPv6 client (for example, the MPTCP server) has a lease, and the lease consists of the lifetime (including the priority lifetime and the valid lifetime of the address) and the renewal time point (identity association (identity association, T1 time and T2 time) of IA).
  • IA is a structure that enables servers and clients to identify, group and manage a series of related IPv6 addresses, and each IA includes an IAID and associated configuration information. After the valid lifetime of the address expires, the DHCPv6 client can no longer use the address. If the DHCPv6 client wishes to continue using the address before the expiration date, it needs to renew the address lease.
  • the DHCPv6 client sends a Renew message containing the IA option to the DHCPv6 server at time T1, where the IA option carries the IA that needs to be renewed. address options. If the DHCPv6 client has never received a response message for the lease renewal message at time T1, then at time T2, the DHCPv6 client continues to renew the lease address to the DHCPv6 server through a Rebind message.
  • FIG. 20 is a schematic diagram showing the address lease renewal process of the DHCPv6 client and the DHCPv6 server at time T1. As shown in Figure 20, it includes Step 1 and Step 2: Step 1: The DHCPv6 client sends a Renew message at time T1 (the recommended value is 1/2 of the priority lifetime) to perform an address lease renewal request. Step 2: The DHCPv6 server responds with a Reply message.
  • step 2 if the DHCPv6 client can continue to use the address, the DHCPv6 server responds with a Reply message of successful contract renewal, notifying the DHCPv6 client that the address lease has been successfully renewed. If the address can no longer be assigned to the DHCPv6 client, the DHCPv6 server responds with a Reply message for the failure to renew the lease, notifying the DHCPv6 client that the new lease cannot be obtained.
  • FIG. 21 is a schematic diagram showing the address lease renewal process of the DHCPv6 client and the DHCPv6 server at time T2. As shown in Figure 21, including steps 1 to 3:
  • Step 1 The DHCPv6 client sends a Renew request to renew the lease at time T1, but does not receive a response message from the DHCPv6 server.
  • Step 2 At time T2 (recommended value is 0.8 times the priority lifetime), the DHCPv6 client multicasts a Rebind message to all DHCPv6 servers to request to renew the lease.
  • Step 3 The DHCPv6 server responds with a Reply message.
  • step 3 if the DHCPv6 client can continue to use the address, the DHCPv6 server responds with a Reply message of successful renewal, notifying the DHCPv6 client that the address/prefix lease has been successfully renewed. If the address can no longer be assigned to the DHCPv6 client, the DHCPv6 server responds with a Reply message for the failure to renew the lease, notifying the DHCPv6 client that the new lease cannot be obtained.
  • the MPTCP server may send an address lease renewal request message (for example, a DHCP Request message, a Renew message, or a Rebind message) to the DHCP server.
  • an address lease renewal request message for example, a DHCP Request message, a Renew message, or a Rebind message
  • the usage lease period exceeds 50% (for example, at time T1) or exceeds 80% (for example, at time T2)
  • a DHCP Renew or Rebind message may be sent to the DHCPv6 server.
  • the Renew or Rebind message uses for address lease renewal requests.
  • the address renewal request message may include the private network IP address allocated by the DHCPv6 server.
  • the DHCPv6 server receives the address renewal request message, and determines whether the MPTCP server can continue to use the public network IP address corresponding to the previously allocated private network IP address, such as EIP, or, the public network IP address corresponding to the private network IP address and The port number.
  • the DHCP server (for example, a DHCPv6 server) sends a second response message in response to the address renewal request message to the MPTCP server, for example, the second response message may be a DHCP Ack message or a Reply message message.
  • the second response message is used to notify the MPTCP server that the address lease has been successfully updated, or is used to notify the MPTCP server that the address/prefix lease has been successfully updated.
  • the second response packet includes: a public IP address corresponding to each private network IP address in the at least one private network IP address of the MPTCP server, or, each private network IP address in the at least one private network IP address of the MPTCP server.
  • the MPTCP server parses the second response packet, and binds the public network IP address corresponding to the private network IP address, or the public network IP address corresponding to the private network IP address and the port number Connect to the network port, and locally cache the correspondence between the private network IP address and the public network IP address, or locally cache the correspondence between the public network IP address and port number corresponding to the private network IP address.
  • the MPTCP server obtains the above-mentioned public network IP address, or the public network IP address and port number in the IP address renewal stage, which can ensure that the MPTCP server correctly obtains the correspondence between the public network IP address corresponding to the private network IP address, or the private network IP address.
  • the correspondence between the public network IP address and the port number corresponding to the IP address improves the efficiency of the MPTCP server to clearly perceive the public network IP and/or port information corresponding to each of its private network IPs.
  • the MPTCP server if it releases or ages the private network IP of a certain interface due to the expiration of the lease period, it will also delete the previously cached private network interface IP and the corresponding public network IP correspondence record. , or record the correspondence between the private network interface IP and the corresponding public network IP and port, and notify the MPTCP session management module to send the MPTCP REMOVE_ADDR option to the surviving corresponding MPTCP session substream, which is used to notify the corresponding MPTCP client to delete the corresponding public IP address and/or port.
  • the DHCP server may assign the public network IP address corresponding to the private network IP address, or combine the private network IP address with the private network IP address.
  • the public network IP address and port number corresponding to the address are sent to the MPTCP server through the first response packet or the second response packet.
  • the first response packet or the second response packet may include an extended DHCP option (option), and the extended DHCP option may carry the public network IP address corresponding to the private network IP address, or carry the public network IP address corresponding to the private network IP address address and port number.
  • the extended DHCP option may also be referred to as a NAT Public Address Option (NAT Public Address Option).
  • FIG. 22 is a schematic structural diagram of an example of an extended DHCP option provided for this application.
  • the extended DHCP option includes: a code (code) field, a length (length) field, a NAT type (NAT Type) field, a reserved (reserved) field, and an IP address field.
  • the extended DHCP option may further include a port (port) field.
  • the code (code) field a field used to encode the options of the DHCP Option.
  • the code field corresponds to the code value (Code value) to be allocated by the Internet Assigned Numbers Authority (IANA) or privately defined by the manufacturer.
  • the value indicates that the DHCP Option option is an extended advertisement to allocate the private network address corresponding to the NAT public network address and/or port information, and the encoded value itself does not include IP address information.
  • Length (length) field used to indicate the length of the DHCP option.
  • NAT Type used to indicate different NAT types.
  • NAT types can include: IPv4 EIP, IPv4 DNAT, IPv6 EIP, IPv6 DNAT.
  • IPv4 EIP IPv4 DNAT
  • IPv6 EIP IPv6 DNAT
  • the value of the NAT Type field is "0", indicating IPv4 EIP
  • the value of the NAT Type field is "1”, indicating IPv4 DNAT.
  • the value of the NAT Type field is "0", indicating Ipv6 EIP
  • the value of the NAT Type field is "1", indicating Ipv6 DNAT.
  • IP address field used to indicate the public IP address corresponding to the private IP address.
  • the IP address field indicates an IPv4 address.
  • the IP address field indicates IPv6 DNAT or IPv6 EIP.
  • the IP address field indicates an IPv6 address.
  • the length of the IP address field may be 4 octets (4 octets).
  • the length of the IP address field may be 16 octets (16 octets).
  • Port (port) field used to indicate the port number of Network Address Port Translation (NAPT). It should be understood that this port (port) field exists and is valid only when the NAT Type (NAT Type) field indicates IPv4 DNAT or IPv6 DNAT. Optionally, the length of the port field may be 2 octets.
  • FIG. 22 is only exemplary, and should not impose any limitation on the structure or included content of the extended DHCP option provided by the embodiment of the present application.
  • the structure of the extended DHCP option may also be other structures, or the extended DHCP option may further include other contents.
  • the embodiments of the present application are not limited herein.
  • the DHCP server may fill in the extended DHCP option with the public network IP address corresponding to the private network IP address, or fill in the extended DHCP option with the public network IP address and port number corresponding to the private network IP address, and
  • the DHCP Ack message sent to the MPTCP server can carry the extended DHCP option, so that the MPTCP server can obtain the public IP address corresponding to the private network IP address, or the private network IP address obtained or renewed.
  • the correspondence between the corresponding public IP address and port number is mapped to the private network IP address, or the private network IP address obtained or renewed.
  • the method 800 may further include:
  • the MPTCP server sends the public network IP address corresponding to each private network IP address in the at least one private network IP address to the MPTCP client.
  • the MPTCP server may send the public network IP address and port number corresponding to each private network IP address in the at least one private network IP address to the MPTCP client.
  • the MPTCP server obtains the public network IP address corresponding to each private network IP address in its at least one private network IP address, or, each private network IP address in the at least one private network IP address corresponds to the public network IP address
  • the information can be sent to the MPTCP client, so that the MPTCP server can normally notify the MPTCP client of valid multi-path service IP or port information after being located in the NAT device. It is realized that the public network IP and/or port information more suitable for establishing a new subflow can be notified to the MPTCP client instead of its private network IP, thereby ensuring the correct establishment of the MPTCP session and improving the efficiency and success rate of the MPTCP session establishment.
  • the MPTCP server may notify the MPTCP session management module of this information so that the MPTCP session management module identifies the relevant MPTCP session to re-advertise the address change.
  • the MPTCP server may notify the corresponding MPTCP client to add a new public IP address and/or port, and notify the corresponding MPTCP client to delete the old public IP address and/or port.
  • the public network IP address when the first substream of the MPTCP session between the MPTCP client and the MPTCP server is established.
  • the MPTCP client can obtain the public IP address through the DNS resolution process to establish the first substream.
  • the operator of MPTCP chooses to submit the DNS A type record of the public IP address and service domain name used to establish the first substream to the DNS server operator, and the DNS server operator adds it to the DNS server's domain name database, In this way, the MPTCP client can obtain the DNS A type record through the DNS server, thereby establishing the first substream of the MPTCP session.
  • S830 in the method 800 may be specifically: S831 .
  • the MPTCP server sends the MPTCP client the public network address corresponding to each private network address in the at least one private network address through a TCP packet .
  • the MPTCP server may also send the public network address and port corresponding to each private network address in the at least one private network address through a TCP packet. No. to send the MPTCP client.
  • the MPTCP client may obtain the public network IP address through the DNS server to establish the first sub-stream, the MPTCP server may assign the public network IP address corresponding to each private network IP address in the at least one private network IP address, or , send the public network IP address and port number corresponding to each private network IP address in the at least one private network IP address to the MPTCP client, as a possible implementation, the MPTCP session management module can query the need to join the MPTCP session The cache record of the correspondence between the corresponding interface IP and the corresponding public network IP and/or port, generate the MPTCP ADD_ADDR option, the MPTCP ADD_ADDR option carries: the public network IP address corresponding to each private network IP address in at least one private network IP address, or , compare the public network IP address and port number corresponding to each private network IP address in the at least one private network IP address to the private network IP and the corresponding public network IP and/or port. And the MPTCP ADD_ADDR option is sent to the MPTCP client in
  • the MPTCP client can send a TCP synchronization (Synchronize, Syn) request message (TCP Syn message) to the MPTCP server, and after receiving the TCP Syn message, the MPTCP server replies with a synchronization request response (Syn ACK) to the MPTCP client ) message.
  • the MPTCP server may generate an ADD_ADDR option and add it to the Syn ACK message.
  • the ADD_ADDR option carries the public network address corresponding to the private network address, or carries the public network address and port number corresponding to the private network address.
  • the MPTCP client After the MPTCP client receives the Syn ACK message, it parses the ADD_ADDR option to obtain the public network addresses corresponding to the private network addresses, or the private network addresses corresponding to the public network address and port number. And reply an acknowledgement (ACK) message to the MPTCP server. In this way, the first substream establishment process of MPTCP client and MPTCP server is completed. After the MPTCP client obtains the public network address corresponding to the private network address, or the private network address corresponds to the public network address and port number, it can establish other substreams of the MPTCP session.
  • ACK acknowledgement
  • S830 in the method 800 may be specifically: S832 .
  • the MPTCP server may also send the public network address and port number corresponding to each private network address in the at least one private network address to the MPTCP client. .
  • the MPTCP server obtains the public network addresses corresponding to the private network addresses, or, the private network addresses corresponding to the public network addresses and port numbers are the MPTCP sessions between the MPTCP server and the MPTCP client.
  • the MPTCP server can send the public address corresponding to each private network address of the at least one private network address through other packets or information.
  • the MPTCP client can establish other substreams of the MPTCP session.
  • the local configuration of the MPTCP server is reduced, and the public network address of the MPTCP server does not need to be configured locally.
  • the MPTCP server is connected to the CPE1 device of ISP1 through a network card, and is connected to the CPE2 device of ISP2 through Wifi.
  • the DHCP server function is enabled on the CPE1 device, the NAT Public Address Option is enabled, the NAT function is enabled, and the EIP mode is configured.
  • the IPv4 private network address resource pool 1 (Pool 1) and the public network are configured on CPE1. Address resource pool 3 (Pool 3).
  • the DHCP server function is enabled on the CPE2 device, the NAT Public Address Option is enabled, the NAT function is enabled, the EIP mode is also configured on the CPE2, and the IPv4 private network address resource pool 2 (Pool 2) and the public network address resource pool 4 (Pool 4) are configured ).
  • the terminal device (MPTCP client) connects to the MPTCP server through the CPE1 device and the CPE2 device respectively.
  • Fig. 27 is a schematic flowchart of a method 900 for determining the IP address of an MPTCP server provided by the present application in the architecture shown in Fig. 26 .
  • the process shown in FIG. 27 is mainly a process in which the MPTCP server obtains the public network address corresponding to the private network address.
  • the method 900 includes: S901 to S906.
  • the network port of the MPTCP server is powered on, the interface is connected to the CPE1 device, and it is detected that the state of the network interface is not normal (the physical state is UP).
  • the MPTCP server sends a DHCP Discover (DHCP Discover) broadcast message from the network interface to the CPE1 device.
  • DHCP Discover DHCP Discover
  • DHCP Offer includes the private network address IP3 expected to be allocated in Pool1 to the MPTCP server.
  • the allocation rule can be dynamic allocation or static preset rule allocation, such as the media access control (media access control, MAC) address of the MPTCP server network port, and the private network address IP3 is fixedly allocated.
  • the MPTCP server receives the DHCP Offer message, but does not receive the DHCP Offer message from other DHCP servers (such as other CPE devices) within the waiting time. request) message, carrying the IP3 address.
  • CPE1 receives the DHCP request message, checks the locally enabled NAT and the NAT Public Address Option, allocates the public network address EIP1 from Pool 3, and fills the EIP1 information into the NAT Public Address Option, Carry the NAT Public Address Option in the DHCP Ack message and send it to the MPTCP server.
  • the allocation rule may be dynamic allocation or static preset rule allocation, for example, the public network address EIP1 is fixedly allocated to the private network address IP3.
  • the CPE locally generates and caches the NAT rule table of the EIP1 and IP3.
  • Figure 28 is a schematic diagram of the NAT Public Address Option (NAT Public Address Option) in S904.
  • the code field (code) is in a to be done state, and the Internet Digital Allocation Authority ( internet assigned numbers authority, INNA) assignment, such as 250, etc.
  • the length indicated by the length field is 8 bytes (8Bytes).
  • the NAT Type field indicates IPv4 EIP.
  • the reserved field indicates 0.
  • the IP address field indicates EIP1. Since the NAT Type field indicates IPv4 EIP, the NAT Public Address Option does not include the port field.
  • the MPTCP server After receiving the DHCP Ack message, the MPTCP server parses the NAT Public Address Option in it. Bind IP3 to the network port, and cache the correspondence record between IP3 and EIP1 locally. Optionally, if the MPTCP server does not use the NAT Public Address Option or does not support this option, this option is discarded and the NAT Public Address Option is not parsed.
  • the MPTCP server replies to CPE1 that the DHCP Ack message is correctly received.
  • CPE1 replies with confirmation information to the MPTCP server.
  • the MPTCP server After the MPTCP server scans the wifi interface to the Wifi hotspot connection authentication and login of CPE2, it can also initiate the interaction process of DHCP address request to CPE2 through the logical network port corresponding to Wifi. The interaction steps are the same as the DHCP address initiated by the MPTCP server through the network port and CPE1 The request interaction process is similar. It is assumed that after the MPTCP server receives the DHCP Ack message from CPE2, the NAT Public Address Option in the DHCP Ack message carries the public network address EIP2 corresponding to the private network address IP4. The MPTCP server binds IP4 to the logical network port corresponding to Wifi, and locally caches the correspondence record between IP4 and EIP2.
  • the operator of the MPTCP server chooses to submit the EIP1 and DNS A type records of the service domain name to the DNS server operator, asking the DNS server operator to add it to the DNS server's domain name database.
  • the MPTCP server is internally configured with the network port IP3 or the logical network port IP4 corresponding to Wifi as the multi-channel network entrance of the MPTCP session.
  • the terminal device accesses the multimedia resources of the MPTCP server, it submits a query request to the DNS server according to the domain name of the MPTCP server, and learns the address of EIP1 from the query result.
  • Figure 29 shows a schematic flow chart of a method 1000 for determining the IP address of an MPTCP server provided by the present application in the architecture shown in Figure 26 .
  • the flow establishment process is the process of obtaining the public network address corresponding to the private network address.
  • the method 1000 includes: S1010 to S1060.
  • the terminal device and the MPTCP server perform a three-way handshake of the first substream of the MPTCP session whose destination IP is EIP1. Specifically, the terminal device forwards the TCP Syn message to CPE1.
  • CPE1 after receiving the TCP Syn packet, CPE1 finds that the destination IP of the packet is EIP1, performs a NAT operation, replaces the destination IP address of the TCP Syn packet, replaces the destination IP address of the packet from EIP1 to IP3, and reroutes Forward the new packet to the MPTCP server.
  • the NAT processing of all TCP packets from the terminal device to the MPTCP server on CPE1 is consistent with the description in S1010, and the destination IP address of the TCP packet needs to be replaced with the corresponding private network IP address.
  • the MPTCP server After receiving the TCP Syn message forwarded by the CPE1, the MPTCP server checks the local configuration. It is assumed that if the MPTCP server is configured with MPTCP multi-path sessions, the MPTCP server is configured with a virtual network port corresponding to Wifi, and the virtual network port corresponding to Wifi is active state. The MPTCP server determines that the IP4 address of the virtual network port corresponding to Wifi needs to be published, query the cached private network address and public network address correspondence record to find that IP4 corresponds to the public network address EIP4, generate the ADD_ADDR option, the ADD_ADDR option carries the EIP4, and the ADD_ADDR option It is added to the Syn-Ack message and sent to the terminal device through CPE1. Optionally, the ADD_ADDR option can also be carried in other TCP packets after the handshake and sent to the terminal device.
  • CPE1 receives the Syn-Ack packet, finds that the source IP of the Syn-Ack packet is the private network IP (that is, IP3), queries the local NAT rule table, replaces the IP header, and replaces the source IP of the Syn-Ack packet with Replace IP3 with EIP1, and then forward the route to the terminal device.
  • the NAT processing on CPE1 of all TCP packets from the MPTCP server to the terminal device is consistent with the description in step S1040, and the source IP address of the TCP packet needs to be replaced with the corresponding public network IP address.
  • the terminal device receives the Syn-Ack message, parses the ADD_ADDR option, caches EIP4, and continues to send the TCP Ack message to the MPTCP server through CPE1, thus completing the three-way handshake of the first substream of the MPTCP session, and establishing the MPTCP session chain success.
  • the terminal device establishes the second sub-stream of the MPTCP session by using EIP4, initiates a three-way handshake interaction of the second sub-stream, and joins the current MPTCP session after the handshake is successful.
  • EIP4 the NAT processing of CPE2 is consistent with the description of the NAT processing of CPE1.
  • the NAT function is enabled on CPE1 and CPE2, and the EIP mode is configured as an example for description.
  • the NAT function is enabled on CPE1 and CPE2,
  • the DNAT mode can be configured.
  • the MPTCP server connects to the CPE1 device of ISP1 through the network card, and connects to the CPE2 device of ISP2 through Wifi.
  • the DHCP server function is enabled on the CPE1 device, the NAT Public Address Option is enabled, the NAT function is enabled, and the DNAT mode is configured.
  • the IPv4 private network address resource pool 1 (Pool 1) and the public network are configured on CPE1. Address resource pool 3 (Pool 3).
  • the DHCP server function is enabled on the CPE2 device, the NAT Public Address Option is enabled, the NAT function is enabled, the DNAT mode is also configured on the CPE2, and the IPv4 private network address resource pool 2 (Pool 2) and the public network address resource pool 4 (Pool 4) are configured ).
  • the terminal device (MPTCP client) connects to the MPTCP server through the CPE1 device and the CPE2 device respectively.
  • FIG. 31 is a schematic flowchart of a method 1100 for determining the IP address of an MPTCP server provided by the present application in the architecture shown in FIG. 30 , FIG. 31
  • the shown process is mainly a process of obtaining the public network address and port number corresponding to the private network address by the MPTCP server.
  • the method 1100 includes: S1110 to S1160.
  • the MPTCP server network port is powered on, the interface is connected to the CPE1 device, and it is detected that the network interface status is not normal.
  • the MPTCP server sends a DHCP Discover (DHCP Discover) broadcast message from the network interface to the CPE1 device.
  • DHCP Discover DHCP Discover
  • DHCP Offer includes the private network address IP3 expected to be allocated in Pool1 to the MPTCP server.
  • the allocation rule can be dynamic allocation or static preset rule allocation. For example, it is the Media Access Control (MAC) address of the network port of the MPTCP server, and the private network address IP3 is fixedly allocated.
  • MAC Media Access Control
  • the MPTCP server receives the DHCP Offer message, but does not receive the DHCP Offer message from other DHCP servers (such as other CPE1 devices) within the waiting time.
  • the MPTCP server accepts the private network address IP3 assigned by CPE1, and sends DHCP to CPE1 DHCP request message, carrying the private network address IP3.
  • CPE1 receives the DHCP request message, checks the local enabled NAT and the NAT Public Address Option, and allocates the public network address IP1 from Pool 3. Since the DNAT mode is configured, the CPE1 device needs to allocate A port number on CPE1, using the public network address IP1 and the port number on CPE1 to uniquely map a private network IP address and the port number of the MPTCP server. Assume that the free port number on the assigned CPE1 is 1000. CPE1 fills the information of IP1 and port number 1000 into the NAT Public Address Option, and carries the NAT Public Address Option in the DHCP Ack message and sends it to the MPTCP server. That is, use the public network address IP1 and the port number 1000 to map the private network address IP3. optional.
  • the CPE1 configures or generates a DNAT mapping table based on address and port resource pool allocation.
  • the port resource pool configuration corresponds to a type of service, assuming it is an HTTP service, and corresponds to port number 43.
  • Port number 43 can be understood as the configuration or allocation of CPE1 for the MPTCP server.
  • the CPE1 locally generates and caches the NAT rule table of the private network address IP3 corresponding to the public network address IP1 and the port number 1000 and the port number 43 of the server.
  • Figure 32 is a schematic diagram of the NAT Public Address Option (NAT Public Address Option) in S1140.
  • the code field (code) is in a to be done (TBD) state and is to be allocated by INNA.
  • the length indicated by the length field is M bytes (M Bytes).
  • the NAT Type field indicates IPv4 DNAT.
  • the reserved field indicates 0.
  • the IP address field indicates the public network address IP1.
  • the port field indicates "1000".
  • the MPTCP server After receiving the DHCP Ack message, the MPTCP server parses the NAT Public Address Option in it. Bind IP3 to the network port, and cache the corresponding relationship records of the public network address IP1, port number 1000, private network address IP1, and port number 43 locally.
  • the MPTCP server replies to CPE1 that the DHCP Ack message is correctly received.
  • S1160CPE1 replies with confirmation information to the MPTCP server.
  • the MPTCP server provided by the MPTCP server for the MPTCP client scans the wifi interface to the Wifi hotspot connection authentication and login of the CPE2, it can also initiate an interaction process of DHCP address request to the CPE2 through the logical network port corresponding to the Wifi.
  • the steps are similar to the above-mentioned interaction flow of the DHCP address request initiated by the MPTCP server and CPE1 through the network port. It is assumed that after the MPTCP server receives the DHCP Ack message from CPE2, the NAT Public Address Option in the DHCP Ack message carries the private network address.
  • IP4 and the server's port number 43 correspond to the public network address IP6 and the port number 2000 on CPE2.
  • the MPTCP server binds IP4 to the logical network port corresponding to Wifi, and locally caches the correspondence record of public network address IP6, port number 2000, private network address IP4, and port number 43.
  • the operator of the MPTCP server chooses to submit the public network address IP1 and the DNS A type record of the service domain name to the DNS server operator, and asks the DNS server operator to add it to the DNS server's domain name database.
  • the private network address IP3 or the private network address IP4 corresponding to Wifi is configured inside the MPTCP server as the multi-channel network entry of the MPTCP session.
  • the terminal device accesses the multimedia resources of the MPTCP server, it submits a query request to the DNS server according to the domain name of the MPTCP server, and learns the address of the public network address IP1 from the query result.
  • Figure 33 is a schematic flowchart of a method 1200 for determining the IP address of an MPTCP server provided by the present application in the architecture shown in Figure 30 .
  • the flow establishment process is the process of obtaining the public network address corresponding to the private network address.
  • the method 1200 includes: S1210 to S1260.
  • the terminal device and the MPTCP server perform a three-way handshake of the first substream of the MPTCP session whose destination IP is the public network address IP1. Specifically, the terminal device forwards the TCP Syn message to CPE1.
  • the quintuple information carried in the TCP Syn message includes:
  • Source IP public network address IP2 (that is, the IP address of the terminal device); destination IP: public network address IP1; source port: port2 (that is, the terminal device randomly assigns a free port locally); destination port: 1000; protocol type: TCP.
  • CPE1 receives the TCP Syn message, queries the DNAT mapping table according to the destination IP+destination port number of the TCP Syn message, and determines that the new destination IP is the private network address IP3. Modify the TCP header and IP header of the packet, re-encapsulate it and forward it to the MPTCP server.
  • the modified quintuple information of the TCP packet includes:
  • Source IP public network address IP1
  • destination IP private network address IP3
  • source port port2
  • destination port 43
  • protocol type TCP
  • the MPTCP server After receiving the TCP Syn message forwarded by the CPE1, the MPTCP server checks the local configuration, assuming that: it is determined that the IP4 address of the virtual network port corresponding to Wifi needs to be published, and the cached private network address and public network address correspondence record is found to find that the IP4 corresponds to The public network address is IP6 and the port number is 2000.
  • the ADD_ADDR option is generated.
  • the ADD_ADDR option carries the public network address IP6 and port number 2000.
  • the ADD_ADDR option is added to the Syn-Ack message and sent to the terminal device through CPE1.
  • the quintuple information carried in the Syn-Ack packet includes:
  • Source IP private network address IP3
  • destination IP public network address IP2
  • source port 43
  • destination port port2
  • protocol type TCP
  • CPE1 receives the Syn-Ack packet, queries the DNAT mapping table according to the source IP, determines that the new source IP is the public network address IP1, modifies the TCP header and IP header of the packet, re-encapsulates the packet and forwards it to the terminal device.
  • the modified quintuple information of the TCP packet includes;
  • Source IP public network address IP1
  • destination IP public network address IP2
  • source port 1000
  • destination port port2
  • protocol type TCP
  • the terminal device receives the Syn-Ack message, parses the ADD_ADDR option, caches the public network address IP6 and port number 2000, and continues to send the TCP Ack message to the MPTCP server through CPE1, thus completing the first substream of the MPTCP session. After three handshakes, the MPTCP session is successfully established.
  • the terminal device establishes the second sub-stream of the MPTCP session by using the public network address IP6 and the port number 2000, initiates a three-way handshake interaction of the second sub-stream, and joins the current MPTCP session after the handshake is successful.
  • the NAT processing of CPE2 is consistent with the description of the NAT processing of CPE1.
  • the terminal device since the A/AAAA record of the DNS does not indicate the information of the domain name and the server port, the terminal device is located at CPE1 (NAT gateway) when establishing the first substream of the MPTCP session with the MPTCP server.
  • CPE1 NAT gateway
  • the MPTCP server accesses the IP address of the network interface corresponding to the first substream, the corresponding EIP mode can be configured on CPE1.
  • the terminal device cannot obtain the relevant information of the DNAT rule table generated on the corresponding CPE1 by the MPTCP server through DNS query, so as to know that it is accessible.
  • the information of the public network port (for example, the port number 1000 in the above example) can only be obtained by other means. For example, service announcements from MPTCP server operators, etc.
  • the MPTCP server can advertise the DNAT information of other network portals (public IP and port information corresponding to the private IP of the network portal) by carrying the ADD_ADDR option in the first substream.
  • the method for determining the public network address of the MPTCP server sends the public network address and/or port information corresponding to the private network address configured for the back-end MPTCP service by the DHCP server to the back-end MPTCP server.
  • the MPTCP server can clearly perceive the public network IP and/or port information corresponding to each private network IP, so that the MPTCP server can notify the MPTCP client of the public network IP and/or port information corresponding to the private network IP, so that it can be established correctly.
  • the new substream of the MPTCP session ensures that the MPTCP session can establish substreams in sequence, and improves the efficiency of the MPTCP session.
  • the local configuration of the MPTCP server is reduced, and the local configuration of the public network address of the MPTCP server is not required, which prevents the public network address from being directly exposed on the public network and thus affects its security.
  • predefinition may be implemented by pre-saving corresponding codes, forms or other means that can be used to indicate relevant information in the device (the application does not limit its specific implementation means) .
  • FIG. 34 shows a schematic block diagram of a communication apparatus 1300 according to an embodiment of the present application, and the communication apparatus 1300 may correspond to the first gateway described in each of the embodiments of the foregoing method 800, or each of the foregoing methods 900 to 1200.
  • the CPE1 described in the example may also be a chip or component applied to a DHCP server or CPE1, and each module or unit of the communication device 1300 is respectively used to execute the first gateway in each of the above-mentioned method 800 or the above-mentioned method.
  • the communication apparatus 1300 may include a processing unit 1310 and a communication unit 1320 for each action or processing process performed by the CPE1 in each of the embodiments from 900 to the method 1200 .
  • the processing unit 1310 is configured to determine the public network address corresponding to each private network address in the at least one private network address of the MPTCP server, and the public network address is used for the MPTCP server and the MPTCP client to establish a subordinate of the MPTCP session. flow;
  • the communication unit 1320 is configured to send the public network address corresponding to each private network address in the at least one private network address to the MPTCP server.
  • the processing unit 1310 is further configured to determine a port number corresponding to each private network address in the at least one private network address;
  • the communication unit 1320 is further configured to send the public network address and port number corresponding to each private network address in the at least one private network address to the MPTCP server.
  • the present application provides a communication device that sends the public network address corresponding to the private network address configured for the back-end MPTCP service, or the public network address and port information to the back-end MPTCP server.
  • the MPTCP server can clearly perceive the public IP and/or port information corresponding to each private IP, so that the MPTCP server can notify the MPTCP client of the public IP corresponding to the private IP, or the private IP corresponding to the public IP and/or port information. port information, so that a new sub-flow of the MPTCP session can be correctly established, which ensures that the MPTCP session can successfully establish the sub-flow and improves the efficiency of the MPTCP session.
  • the local configuration of the MPTCP server is reduced, and the local configuration of the public network address of the MPTCP server is not required, which prevents the public network address from being directly exposed on the public network and thus affects its security.
  • the communication unit 1320 is further configured to:
  • the communication unit 1320 is further configured to:
  • the second response message includes: a public network address corresponding to each private network address in the at least one private network address, or, the The public network address and port number corresponding to each private network address in the at least one private network address.
  • the first response message or the second response message includes an extended dynamic host configuration protocol DHCP option
  • the extended DHCP option includes: the at least one private network address The public network address corresponding to each private network address, or the public network address and port number corresponding to each private network address in the at least one private network address.
  • the communication device is a dynamic host configuration protocol DHCP server, or a gateway device supporting the DHCP proxy capability, or a network address translation NAT gateway device supporting the DHCP server function, or A load balancer device that supports DHCP server and NAT functions.
  • the communication unit 1320 may include a receiving unit (module) and a sending unit (module), configured to perform the steps of receiving information and sending information by the first gateway or CPE1 in the foregoing method embodiments.
  • the communication apparatus 1300 may further include a storage unit for storing the instructions executed by the processing unit 1310 and the communication unit 1320 .
  • the processing unit 1310, the communication unit 1320 and the storage unit are connected in communication, the storage unit stores instructions, the processing unit 1310 is used to execute the instructions stored in the storage unit, and the communication unit 1320 is used to perform specific signal sending and receiving under the driving of the processing unit 1310.
  • the communication unit 1320 may be a transceiver, an input/output interface or an interface circuit, or the like.
  • the storage unit may be a memory.
  • the processing unit 1310 may be implemented by a processor. As shown in FIG. 35 , the communication apparatus 1400 may include a processor 1410 , a memory 1420 and a transceiver 1430 .
  • the communication device 1300 shown in FIG. 34 or the communication device 1400 shown in FIG. 35 can implement the first method described in each of the embodiments of FIGS.
  • the steps performed by the gateway alternatively, can implement the steps performed by the CPE1 device described in FIG. 27 , FIG. 29 , FIG. 31 , FIG. Similar descriptions can refer to the descriptions in the aforementioned corresponding methods. In order to avoid repetition, details are not repeated here.
  • FIG. 36 shows a schematic block diagram of a communication apparatus 1500 according to an embodiment of the present application.
  • the communication apparatus 1500 may correspond to the MPTCP server described in each of the embodiments in the foregoing method 800 to method 1200, or may be a chip applied to the MPTCP server or components, and each module or unit of the communication device 1500 is respectively used to execute each action or process performed by the MPTCP server in each of the above-mentioned methods 800 to 1200 in the embodiments.
  • the communication device 1500 may include: a processing unit 1510 and a communication unit 1520.
  • the processing unit 1510 is configured to obtain a public network address corresponding to each private network address of the at least one private network address of the MPTCP server, where the public network address is used for the MPTCP server and the MPTCP client to establish a substream of the MPTCP session.
  • the communication unit 1520 is configured to send the public network address corresponding to each of the at least one private network address of the MPTCP server to the MPTCP client.
  • the processing unit 1510 is further configured to obtain a port number corresponding to each private network address in the at least one private network address;
  • the communication unit 1520 is further configured to send the public network address and port number corresponding to each of the at least one private network address of the MPTCP server to the MPTCP client.
  • the present application provides a communication device, which can obtain the public network address, port number and/or port information corresponding to each private network address of its at least one private network address, and send the information to the MPTCP client, so that it can Establishing a new substream of the MPTCP session with the MPTCP client correctly ensures that the MPTCP session can successfully establish the substream and improves the efficiency of the MPTCP session.
  • the local configuration of the communication device is reduced, and the communication device does not need to be configured with a public network address locally, thereby preventing the public network address from being directly exposed on the public network and affecting its security.
  • the communication unit 1520 is further configured to:
  • the communication unit 1520 is further configured to:
  • the first response message or the second response message includes an extended dynamic host configuration protocol DHCP option
  • the extended DHCP option includes: the at least one private network address The public network address corresponding to each private network address, or the public network address and port number corresponding to each private network address in the at least one private network address.
  • the first gateway is a dynamic host configuration protocol DHCP server, or a gateway device supporting the DHCP proxy capability, or a network address translation NAT gateway device supporting the DHCP server function, or It is a load balancer device that supports DHCP server and NAT functions.
  • the communication unit 1520 is further configured to: in the process of establishing the first substream of the MPTCP session between the communication device and the MPTCP client, send the at least one private network address to the at least one private network address through a TCP message. Send the public network address corresponding to each private network address in the at least one private network address to the MPTCP client, or send the public network address and port number corresponding to each private network address in the at least one private network address to the MPTCP client.
  • the communication unit 1520 is further configured to: after the establishment of the first substream of the MPTCP session between the communication device and the MPTCP client, send the at least one private network address to the MPTCP client.
  • the communication unit 1520 may include a receiving unit (module) and a sending unit (module), configured to perform the steps of receiving information and sending information by the MPTCP server in the foregoing method embodiments.
  • the communication apparatus 1500 may further include a storage unit for storing the instructions executed by the processing unit 1510 and the communication unit 1520 .
  • the processing unit 1510, the communication unit 1520 and the storage unit are connected in communication, the storage unit stores instructions, the processing unit 1510 is used to execute the instructions stored in the storage unit, and the communication unit 1520 is used to perform specific signal sending and receiving under the driving of the processing unit 1510.
  • the communication unit 1520 may be a transceiver, an input/output interface or an interface circuit, or the like.
  • the storage unit may be a memory.
  • the processing unit 1510 may be implemented by a processor. As shown in FIG. 37 , the communication apparatus 1600 may include a processor 1610 , a memory 1620 and a transceiver 1630 .
  • the communication device 1500 shown in FIG. 36 or the communication device 1600 shown in FIG. 37 can implement the methods in FIG. 17 , FIG. 18 , FIG. 19 , FIG. 23 , FIG. 24 , FIG.
  • each unit in the above apparatus can be realized in the form of software calling through the processing element; also can all be realized in the form of hardware; some units can also be realized in the form of software calling through the processing element, and some units can be realized in the form of hardware.
  • each unit can be a separately established processing element, or can be integrated in a certain chip of the device to be implemented, and can also be stored in the memory in the form of a program, which can be called by a certain processing element of the device and execute the unit's processing.
  • the processing element may also be called a processor, which may be an integrated circuit with signal processing capability.
  • each step of the above method or each of the above units may be implemented by an integrated logic circuit of hardware in the processor element or implemented in the form of software being invoked by the processing element.
  • a unit in any of the above apparatuses may be one or more integrated circuits configured to implement the above methods, eg, one or more application specific integrated circuits (ASICs), or, one or more A plurality of digital signal processors (DSPs), or, one or more field programmable gate arrays (FPGAs), or a combination of at least two of these integrated circuit forms.
  • ASICs application specific integrated circuits
  • DSPs digital signal processors
  • FPGAs field programmable gate arrays
  • a unit in the apparatus can be implemented in the form of a processing element scheduler
  • the processing element can be a general-purpose processor, such as a central processing unit (central processing unit, CPU) or other processors that can invoke programs.
  • CPU central processing unit
  • these units can be integrated together and implemented in the form of a system-on-a-chip (SOC).
  • the embodiment of the present application further provides a communication system, the communication system includes: the MPTCP client and the DNS server in the above method 200 and 300, or the communication system includes: the MPTCP client in the above method 800, the first At least two of a gateway, or an MPTCP client.
  • Embodiments of the present application further provide a computer-readable storage medium for storing computer program codes, where the computer program includes instructions for executing any of the methods for determining a public network address of an MPTCP server provided by the above embodiments of the present application.
  • the readable medium may be a read-only memory (read-only memory, ROM) or a random access memory (random access memory, RAM), which is not limited in this embodiment of the present application.
  • the present application also provides a computer program product, the computer program product includes an instruction, when the instruction is executed, so that the MPTCP client, the DNS server, the first gateway, and the MPTCP server execute the corresponding method in the above method. operate.
  • An embodiment of the present application further provides a chip located in a communication device, the chip includes: a processing unit and a communication unit, the processing unit may be, for example, a processor, and the communication unit may be, for example, an input/output interface, a pin or a circuit, etc.
  • the processing unit can execute computer instructions, so that the communication device executes any one of the methods for determining the public network address of the MPTCP server provided by the above embodiments of the present application.
  • the computer instructions are stored in a storage unit.
  • the storage unit is a storage unit in the chip, such as a register, a cache, etc.
  • the storage unit can also be a storage unit located outside the chip in the terminal, such as a read-only memory (ROM). ) or other types of static storage devices that can store static information and instructions, random access memory (RAM), etc.
  • the processor mentioned in any one of the above may be a CPU, a microprocessor, an ASIC, or one or more integrated circuits for controlling the program execution of the above-mentioned transmission method of feedback information.
  • the processing unit and the storage unit can be decoupled, respectively disposed on different physical devices, and connected in a wired or wireless manner to implement the respective functions of the processing unit and the storage unit, so as to support the system chip to implement the above embodiments various functions in .
  • the processing unit and the memory may also be coupled on the same device.
  • the communication device, computer-readable storage medium, computer program product or chip provided in this embodiment are all used to execute the corresponding method provided above. Therefore, for the beneficial effects that can be achieved, reference may be made to the above-provided method. The beneficial effects in the corresponding method will not be repeated here.
  • the memory in this embodiment of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory may be ROM, programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically erasable programmable read-only memory (electrically EPROM) , EEPROM) or flash memory.
  • Volatile memory can be RAM, which acts as an external cache.
  • RAM random access memory
  • DRAM dynamic random access memory
  • SDRAM synchronous dynamic random access memory
  • double data rate Synchronous dynamic random access memory double data rate SDRAM, DDR SDRAM
  • enhanced synchronous dynamic random access memory enhanced SDRAM, ESDRAM
  • synchronous link dynamic random access memory direct memory bus random access memory Access memory
  • direct rambus RAM direct rambus RAM
  • system and “network” are often used interchangeably herein.
  • the term “and/or” in this article is only an association relationship to describe the associated objects, indicating that there can be three kinds of relationships, for example, A and/or B, it can mean that A exists alone, A and B exist at the same time, and A and B exist independently B these three cases.
  • the character "/" in this document generally indicates that the related objects are an "or” relationship.
  • the methods in the embodiments of the present application may be implemented in whole or in part by software, hardware, firmware, or any combination thereof.
  • software When implemented in software, it can be implemented in whole or in part in the form of a computer program product.
  • the computer program product includes one or more computer programs or instructions.
  • the computer may be a general purpose computer, special purpose computer, computer network, or other programmable device.
  • the computer program or instructions may be stored in or transmitted over a computer-readable storage medium.
  • the computer-readable storage medium can be any available media that can be accessed by a computer or a data storage device such as a server that integrates one or more available media.
  • the disclosed system, apparatus and method may be implemented in other manners.
  • the apparatus embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not implemented.
  • the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and components shown as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
  • the functions, if implemented in the form of software functional units and sold or used as independent products, may be stored in a computer-readable storage medium.
  • the technical solution of the present application can be embodied in the form of a software product in essence, or the part that contributes to the prior art or the part of the technical solution, and the computer software product is stored in a readable storage medium , including several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned readable storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk, etc. that can store program codes medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

Provided in the present application are a method for determining the public network address of an MPTCP server and a communication device, the method comprising: an MPTCP client sends a first request to a DNS server, requesting at least one IP address of an MPTCP server corresponding to a first domain name and a first identifier corresponding to the MPTCP server; the MPTCP client receives first information, comprising: at least one IP address of the MPTCP server corresponding to the first domain name and a first identifier corresponding to the MPTCP server, one first identifier being used to uniquely identify one MPTCP server; and the MPTCP client determines at least one IP address of the MPTCP server corresponding to the first domain name and the first identifier. In the method provided by the present application, multiple IP addresses of the same MPTCP server in an MPTCP session may be determined, so that an MPTCP session may be quickly established.

Description

确定MPTCP服务器公网地址的方法和通信装置Method and communication device for determining public network address of MPTCP server
本申请要求于2020年7月31日提交国家知识产权局、申请号为202010762122.X、申请名称为“确定MPTCP服务器公网地址的方法和通信装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application with the application number 202010762122.X and the application name "Method and Communication Device for Determining the Public Network Address of MPTCP Server", which was submitted to the State Intellectual Property Office on July 31, 2020, and the entire contents of which are Incorporated herein by reference.
技术领域technical field
本申请涉及通信领域领域,更为具体的,涉及一种确定MPTCP服务器公网地址的方法和通信装置。The present application relates to the field of communications, and more particularly, to a method and a communication device for determining a public network address of an MPTCP server.
背景技术Background technique
随着互联网协议第六版(internet protocol version6,Ipv6)的到来,主机的多地址(Multihome)变得越来越普及。为了充分利用设备的多连接特性,新型多路径传输层协议已经成为当前最大的趋势。目前已经制定了多路径传输控制协议(multipath transmission control protocol,MPTCP)。With the advent of the Internet Protocol version 6 (Ipv6), the multi-address of the host (Multihome) has become more and more popular. In order to make full use of the multi-connection characteristics of the device, the new multi-path transport layer protocol has become the biggest trend at present. At present, the multipath transmission control protocol (MPTCP) has been formulated.
MPTCP是一种利用多条路径并发传输的传输层协议。MPTCP是按顺序初始化多个连接,即:当一条通道(或者首个子流)按照三次握手的方式建立起来后,再按照三次握手的方式建立其他的子通道(或者次子流)。这些通道以三次握手建立连接和四次握手解除连接。这些通道都会绑定于同一个MPTCP会话(MPTCP session)。发送端的数据可以选择其中一条或者多条通道进行传输。MPTCP is a transport layer protocol that utilizes multiple paths for concurrent transmission. MPTCP initializes multiple connections in sequence, that is, when a channel (or the first sub-stream) is established according to the three-way handshake, other sub-channels (or secondary sub-streams) are established according to the three-way handshake. These channels are connected with a three-way handshake and disconnected with a four-way handshake. These channels are bound to the same MPTCP session (MPTCP session). The data at the sender can select one or more channels for transmission.
目前MPTCP客户端(例如终端设备)通过域名***(domain name system,DNS)服务器查询MPTCP服务器的IP地址和/或端口信息时,通常只能获取一个最优查询结果(例如只能查询到一个MPTCP服务器的公网IP地址),即使获取多个公网IP地址,也无法确认哪些公网IP对应同一个MPTCP服务器。这会导致查询结果中的IP地址网络不可达或网络丢包严重时,影响MPTCP客户端应用首次访问MPTCP服务器时TCP建链性能和结果,从而可能导致了用户无法访问应用数据,降低了用户体验。At present, when an MPTCP client (such as a terminal device) queries the IP address and/or port information of the MPTCP server through a domain name system (DNS) server, it usually can only obtain one optimal query result (for example, only one MPTCP server can be queried). The public IP address of the server), even if you obtain multiple public IP addresses, you cannot confirm which public IPs correspond to the same MPTCP server. This will cause the IP address in the query result to be unreachable or the network packet loss is severe, which will affect the TCP link establishment performance and results when the MPTCP client application accesses the MPTCP server for the first time, which may result in the user being unable to access the application data and reducing the user experience. .
发明内容SUMMARY OF THE INVENTION
本申请提供了一种确定MPTCP服务器公网地址的方法和通信装置,可以解决了单一IP地址的网络可达性故障和网络延时或丢包问题,可以使得MPTCP会话快速建链,提高用户体验。并且,提高了DNS查询效率,不需要多次查询才能获得MPTCP服务端对应的多个IP地址的查询效果。The present application provides a method and a communication device for determining the public network address of an MPTCP server, which can solve the network reachability failure and network delay or packet loss problems of a single IP address, enable MPTCP sessions to quickly establish a chain, and improve user experience . In addition, the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
第一方面,提供了一种确定MPTCP服务器公网地址的方法,该方法的执行主体既可以是MPTCP客户端也可以是应用于MPTCP客户端的芯片。该方法包括:MPTCP客户端向域名***DNS服务器发送第一请求,该第一请求包括第一域名;MPTCP客户端向域名***DNS服务器发送第一请求,该第一请求包括第一域名,该第一请求用 于请求该第一域名对应的MPTCP服务器的至少一个互联网协议IP地址和该MPTCP服务器对应的第一标识;该议MPTCP客户端接收该DNS服务器发送的响应于该第一请求的第一信息,该第一信息包括:该第一域名对应的MPTCP服务器的至少一个IP地址和该MPTCP服务器对应的第一标识,一个第一标识用于唯一标识一个MPTCP服务器;该MPTCP客户端根据该第一信息,确定与该第一域名和该第一标识对应的该MPTCP服务器的至少一个IP地址。In a first aspect, a method for determining a public network address of an MPTCP server is provided, and the execution subject of the method can be either an MPTCP client or a chip applied to the MPTCP client. The method includes: the MPTCP client sends a first request to the DNS server of the domain name system, the first request includes the first domain name; the MPTCP client sends the first request to the DNS server of the domain name system, the first request includes the first domain name, the first request A request is used to request at least one Internet Protocol IP address of the MPTCP server corresponding to the first domain name and the first identifier corresponding to the MPTCP server; the MPTCP client receives the first request sent by the DNS server in response to the first request information, the first information includes: at least one IP address of the MPTCP server corresponding to the first domain name and a first identifier corresponding to the MPTCP server, a first identifier is used to uniquely identify an MPTCP server; the MPTCP client A piece of information to determine at least one IP address of the MPTCP server corresponding to the first domain name and the first identifier.
第一方面提供的确定MPTCP服务器公网地址的方法,MPTCP客户端通过获取域名对应的MPTCP服务器的多个IP地址,以及每一个IP地址对应的MPTCP服务器的唯一标识,可以确定MPTCP会话中同一个MPTCP服务器的多个IP地址,从而可以利用该多个IP地址建立MPTCP会话的首个子流,解决了单一IP地址的网络可达性故障和网络延时或丢包问题,可以使得MPTCP会话快速建链,提高用户体验。并且,提高了DNS查询效率,不需要多次查询才能获得MPTCP服务端对应的多个IP地址的查询效果。In the method for determining the public network address of the MPTCP server provided in the first aspect, the MPTCP client can determine the same MPTCP session by obtaining multiple IP addresses of the MPTCP server corresponding to the domain name, and the unique identifier of the MPTCP server corresponding to each IP address. Multiple IP addresses of the MPTCP server, so that the first sub-stream of the MPTCP session can be established by using the multiple IP addresses, which solves the network reachability failure and network delay or packet loss problems of a single IP address, and enables the MPTCP session to be quickly established. chain to improve user experience. In addition, the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
可选的,MPTCP客户端可以为终端设备。Optionally, the MPTCP client can be a terminal device.
在第一方面一种可能的实现方式中,该方法还包括:该MPTCP客户端根据该MPTCP服务器的至少一个IP地址,建立与该MPTCP服务器的MPTCP会话的首个子流。In a possible implementation manner of the first aspect, the method further includes: establishing, by the MPTCP client, the first substream of the MPTCP session with the MPTCP server according to at least one IP address of the MPTCP server.
在第一方面一种可能的实现方式中,该MPTCP客户端根据该MPTCP服务器的多个IP地址,建立与该MPTCP服务器的MPTCP会话的首个子流,包括:In a possible implementation manner of the first aspect, the MPTCP client establishes the first substream of the MPTCP session with the MPTCP server according to multiple IP addresses of the MPTCP server, including:
该MPTCP客户端依次利用该MPTCP服务器的多个IP地址建立首个子流,最先建立成功的子流为该首个子流,该首个子流对应第一IP地址;The MPTCP client sequentially uses multiple IP addresses of the MPTCP server to establish the first sub-flow, and the first sub-flow that is successfully established is the first sub-flow, and the first sub-flow corresponds to the first IP address;
该MPTCP客户端将根据第二IP地址建立成功的子流加入到该首个子流对应的MPTCP会话中,该第二IP地址为该MPTCP服务器的多个IP地址除第一IP地址之外的IP地址,该多个IP地址包括第一IP地址和第二IP地址。The MPTCP client adds the substream successfully established according to the second IP address to the MPTCP session corresponding to the first substream, where the second IP address is the IP address of the MPTCP server except the first IP address. address, the plurality of IP addresses include a first IP address and a second IP address.
在第一方面一种可能的实现方式中,该MPTCP客户端根据该MPTCP服务器的多个IP地址,建立与该MPTCP服务器的MPTCP会话的首个子流,包括:In a possible implementation manner of the first aspect, the MPTCP client establishes the first substream of the MPTCP session with the MPTCP server according to multiple IP addresses of the MPTCP server, including:
该MPTCP客户端同时利用该MPTCP服务器的多个IP地址分别建立首个子流,最先建立成功的子流为该首个子流,该首个子流对应第一IP地址;The MPTCP client uses a plurality of IP addresses of the MPTCP server to establish the first sub-flow respectively, the first sub-flow that is successfully established is the first sub-flow, and the first sub-flow corresponds to the first IP address;
该MPTCP客户端将根据第二IP地址正在建立和/或已经建立成功的首个子流撤销,并将利用该第二IP地址重新建立成功的子流加入到该首个子流对应的MPTCP会话中,该第二IP地址为该MPTCP服务器的多个IP地址除该第一IP地址之外的IP地址,该多个IP地址包括第一IP地址和第二IP地址。The MPTCP client cancels the first sub-flow that is being established and/or has been successfully established according to the second IP address, and adds the successfully re-established sub-flow using the second IP address to the MPTCP session corresponding to the first sub-flow, The second IP address is an IP address other than the first IP address of multiple IP addresses of the MPTCP server, and the multiple IP addresses include the first IP address and the second IP address.
在第一方面一种可能的实现方式中,该MPTCP客户端根据该MPTCP服务器的多个IP地址,建立与该MPTCP服务器的MPTCP会话的首个子流,包括:In a possible implementation manner of the first aspect, the MPTCP client establishes the first substream of the MPTCP session with the MPTCP server according to multiple IP addresses of the MPTCP server, including:
该MPTCP客户端同时利用该MPTCP服务器的多个IP地址分别建立首个子流,最先建立成功的子流为第一首个子流,该第一首个子流对应第一IP地址;The MPTCP client uses the multiple IP addresses of the MPTCP server to establish the first sub-stream respectively, and the first successful sub-stream is the first first sub-stream, and the first first sub-stream corresponds to the first IP address;
该MPTCP客户端将根据第二IP地址建立成功的第二首个子流加入到该第一首个子流对应的MPTCP会话中,该第二IP地址为该MPTCP服务器的多个IP地址除第一IP地址之外的IP地址,该多个IP地址包括第一IP地址和第二IP地址。The MPTCP client adds the second first substream successfully established according to the second IP address into the MPTCP session corresponding to the first first substream, where the second IP address is the multiple IP addresses of the MPTCP server except the first IP IP addresses other than addresses, the plurality of IP addresses include a first IP address and a second IP address.
在第一方面一种可能的实现方式中,该第一请求还用于请求第一类型的资源记录,该第一类型的资源记录包括:该第一域名对应的至少一个MPTCP服务器中每一个MPTCP服务器对应的第一标识。In a possible implementation manner of the first aspect, the first request is further used to request a resource record of a first type, where the resource record of the first type includes: each MPTCP in the at least one MPTCP server corresponding to the first domain name The first identifier corresponding to the server.
可选的,在本申请实施例中,第一类型的资源记录表示域名对应的一个或者多个MPTCP服务器或一组等价MPTCP服务器(例如一个负载均衡(load balancer)代理的一组MPTCP服务器)的标识,一个标识用于唯一标识一个MPTCP服务器,即同一个服务器对应的标识相同。换句话说,第一类型的资源记录包括:域名对应的MPTCP服务器的一个或者多个公网IP地址,以及MPTCP服务器分别对应的第一标识,一个MPTCP服务器可以对应一个或者多个公网IP地址,一个域名对应一个或者多个MPTCP服务器。一个域名对应的同一个MPTCP服务器对应的多条第一类型的资源记录标识该MPTCP服务器的多个IP地址。Optionally, in this embodiment of the present application, the resource record of the first type represents one or more MPTCP servers corresponding to the domain name or a group of equivalent MPTCP servers (for example, a group of MPTCP servers of a load balancer proxy) An identifier is used to uniquely identify an MPTCP server, that is, the identifiers corresponding to the same server are the same. In other words, the resource record of the first type includes: one or more public IP addresses of the MPTCP server corresponding to the domain name, and first identifiers corresponding to the MPTCP servers respectively, and one MPTCP server may correspond to one or more public IP addresses , a domain name corresponds to one or more MPTCP servers. Multiple first-type resource records corresponding to the same MPTCP server corresponding to a domain name identify multiple IP addresses of the MPTCP server.
在第一方面一种可能的实现方式中,该第一标识为MPTCP服务器对应的通用唯一识别码UUID。In a possible implementation manner of the first aspect, the first identifier is a universal unique identifier UUID corresponding to the MPTCP server.
可选的,在本申请实施例中,第一类型的资源记录可以包括地址指针记录APTR类型的RR记录和AAAAPTR类型的RR记录中的至少一种。APTR类型对应A类型的RR记录,该类型RR记录中的域名对应IPv4地址,AAAAPTR类型对应AAAA类型的RR记录,该类型RR记录中的域名对应IPv6地址。Optionally, in this embodiment of the present application, the resource record of the first type may include at least one of the address pointer record APTR type RR record and the AAAAPTR type RR record. The APTR type corresponds to the RR record of type A, the domain name in the RR record of this type corresponds to the IPv4 address, the AAAAPTR type corresponds to the RR record of the AAAA type, and the domain name in the RR record of this type corresponds to the IPv6 address.
第二方面,提供了一种确定MPTCP服务器公网地址的方法,该方法的执行主体既可以是DNS服务也可以是应用于DNS服务的芯片。该方法包括:第一DNS服务器接收多路径传输控制协议MPTCP客户端发送的第一请求,该第一请求包括第一域名,该第一请求用于请求该第一域名对应的MPTCP服务器的至少一个互联网协议IP地址和该MPTCP服务器对应的第一标识;该第一DNS服务器向该MPTCP客户端发送响应于该第一请求的第一信息,该第一信息包括:该第一域名对应的MPTCP服务器的至少一个IP地址和该MPTCP服务器对应的第一标识,一个第一标识用于唯一标识一个MPTCP服务器。In a second aspect, a method for determining a public network address of an MPTCP server is provided, and the execution body of the method can be either a DNS service or a chip applied to the DNS service. The method includes: a first DNS server receives a first request sent by a multi-path transmission control protocol MPTCP client, the first request includes a first domain name, and the first request is used to request at least one of the MPTCP servers corresponding to the first domain name The Internet Protocol IP address and the first identifier corresponding to the MPTCP server; the first DNS server sends the first information in response to the first request to the MPTCP client, and the first information includes: the MPTCP server corresponding to the first domain name at least one IP address of the MPTCP server and a first identifier corresponding to the MPTCP server, and a first identifier is used to uniquely identify an MPTCP server.
第二方面提供的确定MPTCP服务器公网地址的方法,DNS服务器可以根据请求的域名确定对应的MPTCP服务器的多个IP地址,以及每一个IP地址对应的MPTCP服务器的唯一标识,从而可以确定MPTCP会话中同一个MPTCP服务器的多个IP地址,并将该信息发送给MPTCP客户端,MPTCP客户端可以利用该多个IP地址建立MPTCP会话的首个子流,解决了单一IP地址的网络可达性故障和网络延时或丢包问题,可以使得MPTCP会话快速建链,提高用户体验。并且,提高了DNS查询效率,不需要多次查询才能获得MPTCP服务端对应的多个IP地址的查询效果。In the method for determining the public network address of the MPTCP server provided in the second aspect, the DNS server can determine the multiple IP addresses of the corresponding MPTCP server according to the requested domain name, and the unique identifier of the MPTCP server corresponding to each IP address, so as to determine the MPTCP session. multiple IP addresses of the same MPTCP server, and send the information to the MPTCP client. The MPTCP client can use the multiple IP addresses to establish the first sub-stream of the MPTCP session, which solves the network reachability failure of a single IP address. and network delay or packet loss, the MPTCP session can be quickly established and the user experience can be improved. In addition, the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
在第二方面一种可能的实现方式中,该方法还包括:In a possible implementation manner of the second aspect, the method further includes:
该第一DNS服务器获取第二信息,该第二信息包括:至少一个域名中每个域名对应的MPTCP服务器的IP地址,以及MPTCP服务器对应的第一标识,至少一个域名包括该第一域名,一个域名对应至少一个MPTCP服务器。The first DNS server obtains second information, the second information includes: the IP address of the MPTCP server corresponding to each domain name in the at least one domain name, and the first identifier corresponding to the MPTCP server, the at least one domain name includes the first domain name, a The domain name corresponds to at least one MPTCP server.
可选的,MPTCP服务器的运营商可以向该第一DNS服务器对应的DNS服务器运营商提供多条AAAAPTR类型RR记录或者多条APTR类型的RR记录。第一DNS服务器运营商审核通过这些记录后,将其加入DNS数据库。例如,该第一DNS服务 器可以为根DNS服务器。多条APTR类型或者AAAAPTR类型的RR记录包括:至少一个域名、至少一个域名分别对应的MPTCP服务器IP地址、一个或者多个MPTCP服务器的第一标识等。Optionally, the operator of the MPTCP server may provide multiple AAAAPTR type RR records or multiple APTR type RR records to the DNS server operator corresponding to the first DNS server. After the first DNS server operator has reviewed and approved these records, they will be added to the DNS database. For example, the first DNS server may be the root DNS server. The multiple APTR type or AAAAPTR type RR records include: at least one domain name, MPTCP server IP addresses corresponding to the at least one domain name respectively, first identifiers of one or more MPTCP servers, and the like.
可选的,MPTCP服务器的运营商还可以向该第一DNS服务器对应DNS服务运营商提供“A”类型的RR记录、“AAAA”类型的RR记录、PTR类型RR记录等。Optionally, the operator of the MPTCP server may also provide an "A" type RR record, an "AAAA" type RR record, a PTR type RR record and the like to the corresponding DNS service operator of the first DNS server.
在第二方面一种可能的实现方式中,该第一DNS服务器获取第二信息,包括:In a possible implementation manner of the second aspect, the first DNS server obtains the second information, including:
该第一DNS服务器向第二DNS服务器发送第二请求,该第二请求用于请求该第一域名对应的MPTCP服务器的至少一个IP地址以及该MPTCP服务器对应的第一标识;该第一DNS服务器接收来自于该第二DNS服务器的响应于该第二请求的第二信息。The first DNS server sends a second request to the second DNS server, where the second request is used to request at least one IP address of the MPTCP server corresponding to the first domain name and a first identifier corresponding to the MPTCP server; the first DNS server Second information is received from the second DNS server in response to the second request.
可选的,MPTCP服务器的运营商向第二DNS服务器对应的DNS服务运营商提供上述的第二信息、多条APTR类型的RR记录或者多条AAAAPTR类型RR记录,例如,该第二DNS服务器可以为根DNS服务器。Optionally, the operator of the MPTCP server provides the above-mentioned second information, multiple APTR type RR records or multiple AAAAPTR type RR records to the DNS service operator corresponding to the second DNS server, for example, the second DNS server may for the root DNS server.
可选的,MPTCP服务器的运营商还可以向该第二DNS服务器对应DNS服务运营商提供“A”类型的RR记录、“AAAA”类型的RR记录、PTR类型RR记录等。Optionally, the operator of the MPTCP server may also provide an "A" type RR record, an "AAAA" type RR record, a PTR type RR record and the like to the corresponding DNS service operator of the second DNS server.
可选的,如果第二DNS服务器也没有存储该APTR和/或AAAAPTR类型的RR记录,则第二DNS服务器也可以作为客户端向上层DNS服务器查询APTR和/或AAAAPTR类型的RR记录。Optionally, if the second DNS server does not store the APTR and/or AAAAPTR type RR record, the second DNS server can also act as a client to query the APTR and/or AAAAPTR type RR record to the upper DNS server.
在第二方面一种可能的实现方式中,该第一请求还用于请求第一类型的资源记录,该第一类型的资源记录包括:该第一域名对应的至少一个MPTCP服务器中每一个MPTCP服务器对应的第一标识。In a possible implementation manner of the second aspect, the first request is further used to request a resource record of a first type, where the resource record of the first type includes: each MPTCP in the at least one MPTCP server corresponding to the first domain name The first identifier corresponding to the server.
换句话说,第一类型的资源记录包括:域名对应的MPTCP服务器的一个或者多个公网IP地址,以及MPTCP服务器分别对应的第一标识,一个MPTCP服务器可以对应一个或者多个公网IP地址,一个域名对应一个或者多个MPTCP服务器。一个域名对应的同一个MPTCP服务器对应的多条第一类型的资源记录标识该MPTCP服务器的多个IP地址。In other words, the resource record of the first type includes: one or more public IP addresses of the MPTCP server corresponding to the domain name, and first identifiers corresponding to the MPTCP servers respectively, and one MPTCP server may correspond to one or more public IP addresses , a domain name corresponds to one or more MPTCP servers. Multiple first-type resource records corresponding to the same MPTCP server corresponding to a domain name identify multiple IP addresses of the MPTCP server.
在第二方面一种可能的实现方式中,该第一标识为MPTCP服务器对应的通用唯一识别码UUID。In a possible implementation manner of the second aspect, the first identifier is a universal unique identifier UUID corresponding to the MPTCP server.
第三方面,提供了一种确定MPTCP服务器公网地址的方法,该方法的执行主体既可以是第一网关也可以是应用于第一网关的芯片。该方法包括:第一网关确定多路径传输控制协议MPTCP服务器的至少一个私网地址中每一个私网地址对应的公网地址,该公网地址用于该MPTCP服务器和MPTCP客户端建立MPTCP会话的子流;该第一网关向该MPTCP服务器发送该至少一个私网地址中每一个私网地址对应的公网地址。In a third aspect, a method for determining a public network address of an MPTCP server is provided, and the execution body of the method may be either the first gateway or a chip applied to the first gateway. The method includes: the first gateway determines a public network address corresponding to each private network address in at least one private network address of a multi-path transmission control protocol MPTCP server, where the public network address is used for establishing an MPTCP session between the MPTCP server and the MPTCP client Subflow; the first gateway sends the public network address corresponding to each private network address in the at least one private network address to the MPTCP server.
可选的,该第一网关为动态主机配置协议DHCP服务器,或者为支持DHCP代理能力的网关设备,或者为支持DHCP服务器功能的网络地址转换NAT网关设备,或者为支持DHCP服务器和NAT功能的负载均衡器设备。Optionally, the first gateway is a dynamic host configuration protocol DHCP server, or a gateway device supporting the DHCP proxy capability, or a network address translation NAT gateway device supporting the DHCP server function, or a load supporting the DHCP server and NAT functions. Equalizer device.
第三方面提供的确定MPTCP服务器公网地址的方法,第一网关将为后端的MPTCP服务配置的私网地址对应的公网地址发送给后端的MPTCP服务器。从而让 MPTCP服务器能明确感知其各个私网IP对应的公网IP,以便MPTCP服务器可以向MPTCP客户端通知私网IP对应的公网IP,从而可以正确建立MPTCP会话的新的子流,保证了MPTCP会话可以顺利的建立子流,提高了MPTCP会话的效率。并且,减少了MPTCP服务器的本地配置,也不需要MPTCP服务器本地配置公网地址,避免了公网地址直接暴露在公网上从而影响其安全性。In the method for determining the public network address of the MPTCP server provided by the third aspect, the first gateway sends the public network address corresponding to the private network address configured for the back-end MPTCP service to the back-end MPTCP server. In this way, the MPTCP server can clearly perceive the public network IP corresponding to each private network IP, so that the MPTCP server can notify the MPTCP client of the public network IP corresponding to the private network IP, so that a new sub-stream of the MPTCP session can be established correctly, ensuring that The MPTCP session can establish sub-streams smoothly, which improves the efficiency of the MPTCP session. In addition, the local configuration of the MPTCP server is reduced, and the local configuration of the public network address of the MPTCP server is not required, which prevents the public network address from being directly exposed on the public network and thus affects its security.
在第三方面一种可能的实现方式中,该方法还包括:该第一网元确定该至少一个私网地址中每一个私网地址对应的端口号;该第一网关向该MPTCP服务器发送该至少一个私网地址中每一个私网地址对应的公网地址,包括:In a possible implementation manner of the third aspect, the method further includes: the first network element determining a port number corresponding to each private network address in the at least one private network address; the first gateway sending the MPTCP server the The public network address corresponding to each private network address in at least one private network address, including:
该第一网关向该MPTCP服务器发送该至少一个私网地址中每一个私网地址对应的公网地址和端口号。The first gateway sends to the MPTCP server the public network address and port number corresponding to each private network address in the at least one private network address.
可选的,该MPTCP服务器的至少一个私网地址中每一个私网地址对应的公网地址,或者,至少一个私网地址中每一个私网地址对应的公网地址和端口号用于MPTCP服务器和MPTCP客户端建立一个MPTCP会话中的除过首个子流之外的其它子流(或者也可以称为次子流)。Optionally, the public network address corresponding to each private network address in the at least one private network address of the MPTCP server, or the public network address and port number corresponding to each private network address in the at least one private network address are used for the MPTCP server. Establishes other sub-streams (or can also be called secondary sub-streams) in an MPTCP session except the first sub-stream with the MPTCP client.
可选的,如果NAT为EIP模式,即一个公网IP地址对应一个私网IP地址,也就是利用一个公网IP地址可以映射出一个私网IP地址的情况下,DHCP服务器可以确定或者获取MPTCP服务器的至少一个私网IP地址中每一个IP私网地址对应的公网IP地址,并不需要确定DHCP服务器上的端口号。Optionally, if NAT is in EIP mode, that is, a public network IP address corresponds to a private network IP address, that is, a public network IP address can be used to map a private network IP address, the DHCP server can determine or obtain MPTCP. The public network IP address corresponding to each IP private network address in the at least one private network IP address of the server does not need to determine the port number on the DHCP server.
可选的,如果NAT为DNAT模式,即在公网IP地址的个数少于私网IP地址个数,利用一个公网IP地址不可以映射出一个私网IP地址的情况下,可以利用公网IP地址和端口号联合映射出一个私网IP地址,DHCP服务器需要确定或者获取MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和端口号。采用DNAT的方式,可以节约公网IP地址的数量,一个公网IP地址可以对应多个私网IP地址。Optionally, if the NAT is in DNAT mode, that is, when the number of public network IP addresses is less than the number of private network IP addresses, and a public network IP address cannot be used to map a private network IP address, the public network IP address can be used. The network IP address and port number are combined to map a private network IP address. The DHCP server needs to determine or obtain the public network IP address and port number corresponding to each private network IP address in at least one private network IP address of the MPTCP server. Using the DNAT method can save the number of public network IP addresses, and one public network IP address can correspond to multiple private network IP addresses.
在第三方面一种可能的实现方式中,该方法还包括:In a possible implementation manner of the third aspect, the method further includes:
该第一网关接收该MPTCP服务器发送的地址请求报文(例如为DHCP Request报文);The first gateway receives an address request message (for example, a DHCP Request message) sent by the MPTCP server;
该第一网关向该MPTCP服务器发送该至少一个私网地址中每一个私网地址对应的公网地址,包括:该第一网关向MPTCP服务器发送响应于该地址请求报文的第一应答报文,该第一应答报文(例如为DHCP Ack报文)包括:该至少一个私网地址中每一个私网地址对应的公网地址。The first gateway sending the public network address corresponding to each private network address in the at least one private network address to the MPTCP server includes: the first gateway sending a first response message in response to the address request message to the MPTCP server , the first response message (for example, a DHCP Ack message) includes: a public network address corresponding to each private network address in the at least one private network address.
在第三方面一种可能的实现方式中,该方法还包括:In a possible implementation manner of the third aspect, the method further includes:
该第一网关接收该MPTCP服务器发送的地址请求报文(例如为DHCP Request报文);The first gateway receives an address request message (for example, a DHCP Request message) sent by the MPTCP server;
该第一网关向该MPTCP服务器发送该至少一个私网地址中每一个私网地址对应的公网地址和端口号,包括:该第一网关向MPTCP服务器发送响应于该地址请求报文的第一应答报文,该第一应答报文(例如为DHCP Ack报文)包括:该至少一个私网地址中每一个私网地址对应的公网地址和端口号。The first gateway sending the public network address and port number corresponding to each private network address in the at least one private network address to the MPTCP server includes: the first gateway sending a first response to the address request message to the MPTCP server A response message, the first response message (for example, a DHCP Ack message) includes: the public network address and port number corresponding to each private network address in the at least one private network address.
在第三方面一种可能的实现方式中,该方法还包括:In a possible implementation manner of the third aspect, the method further includes:
该第一网关接收该MPTCP服务器发送的地址续租请求报文(例如为DHCP Request报文、Renew报文或者Rebind报文)该第一网关向该MPTCP服务器发送该至少一个私网地址中每一个私网地址对应的公网地址,包括:该第一网关向该MPTCP服务器发送响应于该地址续租请求报文的第二应答报文,例如,第二应答报文可以是DHCP Ack报文或者为Reply报文,该第二应答报文包括:该至少一个私网地址中每一个私网地址对应的公网地址。The first gateway receives an address renewal request message (for example, a DHCP Request message, a Renew message, or a Rebind message) sent by the MPTCP server, and the first gateway sends each of the at least one private network address to the MPTCP server. The public network address corresponding to the private network address, including: the first gateway sends a second response message to the MPTCP server in response to the address renewal request message, for example, the second response message may be a DHCP Ack message or Being a Reply message, the second reply message includes: a public network address corresponding to each private network address in the at least one private network address.
在第三方面一种可能的实现方式中,该方法还包括:In a possible implementation manner of the third aspect, the method further includes:
该第一网关接收该MPTCP服务器发送的地址续租请求报文(例如为DHCP Request报文、Renew报文或者Rebind报文)该第一网关向该MPTCP服务器发送该至少一个私网地址中每一个私网地址对应的公网地址和端口号,包括:该第一网关向该MPTCP服务器发送响应于该地址续租请求报文的第二应答报文,例如,第二应答报文可以是DHCP Ack报文或者为Reply报文,该第二应答报文包括:该至少一个私网地址中每一个私网地址对应的公网地址和端口号。The first gateway receives an address renewal request message (for example, a DHCP Request message, a Renew message, or a Rebind message) sent by the MPTCP server, and the first gateway sends each of the at least one private network address to the MPTCP server. The public network address and port number corresponding to the private network address, including: the first gateway sends a second response message to the MPTCP server in response to the address renewal request message, for example, the second response message may be DHCP Ack The message is either a Reply message, and the second response message includes: a public network address and a port number corresponding to each private network address in the at least one private network address.
在第三方面一种可能的实现方式中,该第一应答报文或者该第二应答报文包括扩展的动态主机配置协议DHCP选项,该扩展的DHCP选项包括:该至少一个私网地址中每一个私网地址对应的公网地址,或者,该至少一个私网地址中每一个私网地址对应的公网地址和端口号。In a possible implementation manner of the third aspect, the first response message or the second response message includes an extended Dynamic Host Configuration Protocol DHCP option, and the extended DHCP option includes: each of the at least one private network address The public network address corresponding to a private network address, or the public network address and port number corresponding to each private network address in the at least one private network address.
第四方面,提供了一种确定MPTCP服务器公网地址的方法,该方法的执行主体既可以是MPTCP服务器也可以是应用于MPTCP服务器的芯片。该方法包括:MPTCP服务器获取该MPTCP服务器的至少一个私网地址中每一个私网地址分别对应的公网地址,该公网地址用于该MPTCP服务器和MPTCP客户端建立MPTCP会话的子流;In a fourth aspect, a method for determining a public network address of an MPTCP server is provided, and the execution body of the method may be either the MPTCP server or a chip applied to the MPTCP server. The method includes: the MPTCP server obtains a public network address corresponding to each private network address in at least one private network address of the MPTCP server, and the public network address is used for the MPTCP server and the MPTCP client to establish a substream of the MPTCP session;
该MPTCP服务器向MPTCP客户端发送该MPTCP服务器的至少一个私网地址中每一个私网地址分别对应的公网地址。The MPTCP server sends to the MPTCP client the public network address corresponding to each private network address of the at least one private network address of the MPTCP server.
第四方面提供的确定MPTCP服务器公网地址的方法,MPTCP服务器可以获取自己至少一个私网地址中每一个私网地址分别对应的公网地址,并将该信息发送给MPTCP客户端,从而可以正确的和MPTCP客户端建立MPTCP会话的新的子流,保证了MPTCP会话可以顺利的建立子流,提高了MPTCP会话的效率。并且,减少了该通信装置的本地配置,也不需要该通信装置本地配置公网地址,避免了公网地址直接暴露在公网上从而影响其安全性。In the method for determining the public network address of the MPTCP server provided in the fourth aspect, the MPTCP server can obtain the public network address corresponding to each private network address in at least one of its own private network addresses, and send the information to the MPTCP client, so that it can correctly and the MPTCP client to establish a new substream of the MPTCP session, which ensures that the MPTCP session can successfully establish the substream and improves the efficiency of the MPTCP session. In addition, the local configuration of the communication device is reduced, and the communication device does not need to be configured with a public network address locally, thereby preventing the public network address from being directly exposed on the public network and affecting its security.
在第四方面一种可能的实现方式中,该方法还包括:In a possible implementation manner of the fourth aspect, the method further includes:
该MPTCP服务器获取该至少一个私网地址中每一个私网地址对应的端口号;The MPTCP server obtains the port number corresponding to each private network address in the at least one private network address;
该MPTCP服务器向MPTCP客户端发送该MPTCP服务器的至少一个私网地址中每一个私网地址分别对应的公网地址,包括:该MPTCP服务器向MPTCP客户端发送该MPTCP服务器的至少一个私网地址中每一个私网地址分别对应的公网地址和端口号。The MPTCP server sends the public network address corresponding to each private network address of the MPTCP server at least one private network address to the MPTCP client, including: the MPTCP server sends the MPTCP server to the MPTCP client. Each private network address corresponds to the public network address and port number.
可选的,该MPTCP服务器的至少一个私网地址中每一个私网地址对应的公网地址,或者,至少一个私网地址中每一个私网地址对应的公网地址和端口号用于MPTCP服务器和MPTCP客户端建立一个MPTCP会话中的除过首个子流之外的其它子流(或者也可以称为次子流)。Optionally, the public network address corresponding to each private network address in the at least one private network address of the MPTCP server, or the public network address and port number corresponding to each private network address in the at least one private network address are used for the MPTCP server. Establishes other sub-streams (or can also be called secondary sub-streams) in an MPTCP session except the first sub-stream with the MPTCP client.
在第四方面一种可能的实现方式中,该MPTCP服务器获取该至少一个私网地址中每一个私网地址对应的公网地址,包括:In a possible implementation manner of the fourth aspect, the MPTCP server obtains the public network address corresponding to each private network address in the at least one private network address, including:
该MPTCP服务器向第一网关发送地址请求报文:The MPTCP server sends an address request message to the first gateway:
该MPTCP服务器接收该第一网关发送的响应于该地址请求报文的第一应答报文,该第一应答报文包括:该至少一个私网地址中每一个私网地址对应的公网地址。The MPTCP server receives a first response message sent by the first gateway in response to the address request message, where the first response message includes: a public network address corresponding to each private network address in the at least one private network address.
在第四方面一种可能的实现方式中,该MPTCP服务器获取至少一个私网地址中每一个私网地址对应的公网地址和端口号,包括:In a possible implementation manner of the fourth aspect, the MPTCP server obtains the public network address and port number corresponding to each private network address in the at least one private network address, including:
该MPTCP服务器向第一网关发送地址请求报文;The MPTCP server sends an address request message to the first gateway;
该MPTCP服务器接收该第一网关发送的响应于该地址请求报文的第一应答报文,该第一应答报文包括:该至少一个私网地址中每一个私网地址对应的公网地址和端口号。The MPTCP server receives a first response message sent by the first gateway in response to the address request message, where the first response message includes: a public network address corresponding to each private network address in the at least one private network address and The port number.
在第四方面一种可能的实现方式中,该MPTCP服务器获取该至少一个私网地址中每一个私网地址对应的公网地址,包括:In a possible implementation manner of the fourth aspect, the MPTCP server obtains the public network address corresponding to each private network address in the at least one private network address, including:
该MPTCP服务器向第一网关发送地址续租请求报文;The MPTCP server sends an address lease renewal request message to the first gateway;
该MPTCP服务器接收该第一网关发送响应于该地址续租请求报文的第二应答报文,该应答报文包括:该至少一个私网地址中每一个私网地址对应的公网地址。The MPTCP server receives a second response message sent by the first gateway in response to the address renewal request message, where the response message includes: a public network address corresponding to each private network address in the at least one private network address.
在第四方面一种可能的实现方式中,该MPTCP服务器获取该至少一个私网地址中每一个私网地址对应的公网地址和端口号,包括:In a possible implementation manner of the fourth aspect, the MPTCP server obtains the public network address and port number corresponding to each private network address in the at least one private network address, including:
该MPTCP服务器向第一网关发送地址续租请求报文;The MPTCP server sends an address lease renewal request message to the first gateway;
该MPTCP服务器接收该第一网关发送响应于该地址续租请求报文的第二应答报文,该应答报文包括:该至少一个私网地址中每一个私网地址对应的公网地址和端口号。The MPTCP server receives a second response message sent by the first gateway in response to the address renewal request message, where the response message includes: the public network address and port corresponding to each private network address in the at least one private network address No.
在第四方面一种可能的实现方式中,该第一应答报文或者该第二应答报文包括扩展的动态主机配置协议DHCP选项,该扩展的DHCP选项包括:该至少一个私网地址中每一个私网地址对应的公网地址,或者,该至少一个私网地址中每一个私网地址对应的公网地址和端口号。In a possible implementation manner of the fourth aspect, the first response message or the second response message includes an extended dynamic host configuration protocol DHCP option, and the extended DHCP option includes: each of the at least one private network address The public network address corresponding to a private network address, or the public network address and port number corresponding to each private network address in the at least one private network address.
在第四方面一种可能的实现方式中,该第一网关为动态主机配置协议DHCP服务器,或者为支持DHCP代理能力的网关设备,或者为支持DHCP服务器功能的网络地址转换NAT网关设备,或者为支持DHCP服务器和NAT功能的负载均衡器设备。In a possible implementation manner of the fourth aspect, the first gateway is a dynamic host configuration protocol DHCP server, or a gateway device supporting a DHCP proxy capability, or a network address translation NAT gateway device supporting a DHCP server function, or A load balancer device that supports DHCP server and NAT functions.
在第四方面一种可能的实现方式中,该MPTCP服务器向MPTCP客户端发送该至少一个私网地址中每一个私网地址对应的公网地址,或者,该至少一个私网地址中每一个私网地址对应的公网地址和端口号,包括:在该MPTCP服务器和该MPTCP客户端的MPTCP会话首个子流的建立过程中,该MPTCP服务器通过TCP报文将该至少一个私网地址中每一个私网地址对应的公网地址发送给该MPTCP客户端,或者,将该至少一个私网地址中每一个私网地址对应的公网地址和端口号发送给该MPTCP客户端。In a possible implementation manner of the fourth aspect, the MPTCP server sends the MPTCP client a public network address corresponding to each private network address in the at least one private network address, or, each private network address in the at least one private network address. The public network address and port number corresponding to the network address, including: in the process of establishing the first sub-stream of the MPTCP session between the MPTCP server and the MPTCP client, the MPTCP server sends each private network address of the at least one private network address through a TCP message. The public network address corresponding to the network address is sent to the MPTCP client, or the public network address and port number corresponding to each private network address in the at least one private network address are sent to the MPTCP client.
例如,MPTCP服务器可以生成ADD_ADDR选项并添加在Syn ACK报文中,该MPTCP ADD_ADDR选项携带:至少一个私网IP地址中每一个私网IP地址对应的公网IP地址,或者,将至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和 端口号该私网IP和对应公网IP和/或端口。For example, the MPTCP server can generate the ADD_ADDR option and add it to the Syn ACK packet. The MPTCP ADD_ADDR option carries: the public IP address corresponding to each private IP address in at least one private IP address, or, at least one private IP address The public network IP address and port number corresponding to each private network IP address in the IP address The private network IP and the corresponding public network IP and/or port.
在第四方面一种可能的实现方式中,该MPTCP服务器向MPTCP客户端发送该至少一个私网地址中每一个私网地址对应的公网地址,或者,该至少一个私网地址中每一个私网地址对应的公网地址和端口号,包括:在该MPTCP服务器和该MPTCP客户端的MPTCP会话首个子流的建立后,该MPTCP服务器向MPTCP客户端发送该至少一个私网地址中每一个私网地址对应的公网地址,或者,该至少一个私网地址中每一个私网地址对应的公网地址和端口号。In a possible implementation manner of the fourth aspect, the MPTCP server sends the MPTCP client a public network address corresponding to each private network address in the at least one private network address, or, each private network address in the at least one private network address. The public network address and port number corresponding to the network address, including: after the MPTCP server and the MPTCP client establish the first sub-stream of the MPTCP session, the MPTCP server sends each private network address of the at least one private network address to the MPTCP client. The public network address corresponding to the address, or, the public network address and port number corresponding to each private network address in the at least one private network address.
第五方面,提供了一种通信装置,该通信装置包括用于执行以上第一方面或者第一方面的任意一方面可能的实现方式中的各个步骤的单元。In a fifth aspect, a communication apparatus is provided, the communication apparatus including a unit for performing each step in the above first aspect or any possible implementation manner of the first aspect.
第六方面,提供了一种通信装置,该通信装置包括用于执行以上第二方面或者第二方面的任意一方面可能的实现方式中的各个步骤的单元。In a sixth aspect, a communication device is provided, the communication device comprising a unit for performing each step in the above second aspect or any possible implementation manner of the second aspect.
第七方面,提供了一种通信装置,该通信装置包括用于执行以上第三方面或者第三方面的任意一方面可能的实现方式中的各个步骤的单元。In a seventh aspect, a communication device is provided, the communication device comprising a unit for performing each step in the above third aspect or any possible implementation manner of the third aspect.
第八方面,提供了一种通信装置,该通信装置包括用于执行以上第四方面或者第四方面的任意一方面可能的实现方式中的各个步骤的单元。In an eighth aspect, a communication apparatus is provided, the communication apparatus including a unit for performing each step in the above fourth aspect or any possible implementation manner of the fourth aspect.
第九方面,提供了一种通信装置,该通信装置包括至少一个处理器和存储器,该至少一个处理器用于执行以上第一方面或者第一方面的任意一方面可能的实现方式中的方法。In a ninth aspect, a communication apparatus is provided, the communication apparatus includes at least one processor and a memory, where the at least one processor is configured to execute the method in the above first aspect or any possible implementation manner of the first aspect.
第十方面,提供了一种通信装置,该通信装置包括至少一个处理器和存储器,该至少一个处理器用于执行以上第二方面或者第二方面的任意一方面可能的实现方式中的方法。In a tenth aspect, a communication apparatus is provided, the communication apparatus includes at least one processor and a memory, where the at least one processor is configured to execute the method in the above second aspect or any possible implementation manner of the second aspect.
第十一方面,提供了一种通信装置,该通信装置包括至少一个处理器和存储器,该至少一个处理器用于执行以上第三方面或者第三方面的任意一方面可能的实现方式中的方法。In an eleventh aspect, a communication device is provided, the communication device includes at least one processor and a memory, where the at least one processor is configured to execute the above third aspect or the method in any possible implementation manner of the third aspect.
第十二方面,提供了一种通信装置,该通信装置包括至少一个处理器和存储器,该至少一个处理器用于执行以上第四方面或者第四方面的任意一方面可能的实现方式中的方法。A twelfth aspect provides a communication apparatus, the communication apparatus includes at least one processor and a memory, where the at least one processor is configured to execute the method in the above fourth aspect or any possible implementation manner of the fourth aspect.
第十三方面,提供了一种通信装置,该通信装置包括至少一个处理器和接口电路,该至少一个处理器用于执行以上第一方面或者第一方面中的任意一方面可能的实现方式中的方法。A thirteenth aspect provides a communication device, the communication device includes at least one processor and an interface circuit, where the at least one processor is configured to execute the above first aspect or any of the possible implementations of the first aspect method.
第十四方面,提供了一种通信装置,该通信装置包括至少一个处理器和接口电路,该至少一个处理器用于执行以上第二方面或者第二方面中的任意一方面可能的实现方式中的方法。A fourteenth aspect provides a communication device, the communication device includes at least one processor and an interface circuit, where the at least one processor is configured to execute the second aspect or any of the possible implementations of the second aspect. method.
第十五方面,提供了一种通信装置,该通信装置包括至少一个处理器和接口电路,该至少一个处理器用于执行以上第三方面或者第三方面中的任意一方面可能的实现方式中的方法。A fifteenth aspect provides a communication device, the communication device includes at least one processor and an interface circuit, where the at least one processor is configured to execute the third aspect or any of the possible implementations of the third aspect. method.
第十六方面,提供了一种通信装置,该通信装置包括至少一个处理器和接口电路,该至少一个处理器用于执行以上第四方面或者第四方面中的任意一方面可能的实现方式中的方法。A sixteenth aspect provides a communication device, the communication device includes at least one processor and an interface circuit, where the at least one processor is configured to execute the fourth aspect or any of the possible implementations of the fourth aspect. method.
第十七方面,提供了一种MPTCP客户端设备,该MPTCP客户端设备包括上述第五方面、第九方面或者第十三方面提供的任一种通信装置。A seventeenth aspect provides an MPTCP client device, where the MPTCP client device includes any one of the communication apparatuses provided in the fifth aspect, the ninth aspect, or the thirteenth aspect.
第十八方面,提供了一种DNS服务器,该DNS服务器包括上述第六方面、第十方面或者第十四方面提供的任一种通信装置。An eighteenth aspect provides a DNS server, where the DNS server includes any of the communication devices provided in the sixth aspect, the tenth aspect, or the fourteenth aspect.
第十九方面,提供了一种DHCP服务器,该DHCP服务器包括上述第七方面、第十一方面或者第十五方面提供的任一种通信装置。A nineteenth aspect provides a DHCP server, where the DHCP server includes any one of the communication devices provided in the seventh aspect, the eleventh aspect, or the fifteenth aspect.
第二十方面,提供了一种MPTCP服务器,该MPTCP服务器包括上述第八方面、第十二面或者第十六方面提供的任一种通信装置。A twentieth aspect provides an MPTCP server, where the MPTCP server includes any one of the communication devices provided in the eighth aspect, the twelfth aspect, or the sixteenth aspect.
第二十一方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序在被处理器执行时,用于执行第一方面至第四方面中任意一方面中的方法,或者,用于执行第一方面至第四方面中任意一方面中的任意可能的实现方式中的方法。A twenty-first aspect provides a computer program product, the computer program product comprising a computer program that, when executed by a processor, is used to perform the method in any one of the first to fourth aspects, Or, for performing the method in any possible implementation manner of any one of the first aspect to the fourth aspect.
第二十二方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序被执行时,用于执行第一方面至第四方面中任意一方面中的方法,或者,用于执行第一方面至第四方面中任意一方面中的任意可能的实现方式中的方法。A twenty-second aspect provides a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium, and when the computer program is executed, is used to execute any one of the first to fourth aspects The method in , or, for performing the method in any possible implementation manner of any one of the first aspect to the fourth aspect.
第二十三方面,提供了一种芯片,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的通信设备执行第一方面至第四方面中任意一方面中的方法,或者,用于执行第一方面至第四方面中任意一方面中的任意可能的实现方式中的方法。A twenty-third aspect provides a chip, the chip comprising: a processor for calling and running a computer program from a memory, so that a communication device installed with the chip executes any one of the first to fourth aspects The method in , or, for performing the method in any possible implementation manner of any one of the first aspect to the fourth aspect.
本申请提供的确定MPTCP服务器公网地址的方法和通信装置,MPTCP客户端通过获取域名对应的MPTCP服务器的多个IP地址,以及每一个IP地址对应的MPTCP服务器的唯一标识,可以确定MPTCP会话中同一个MPTCP服务器的多个IP地址,从而可以利用该多个IP地址建立MPTCP会话的首个子流,解决了单一IP地址的网络可达性故障和网络延时或丢包问题,可以使得MPTCP会话快速建链,提高用户体验。并且,提高了DNS查询效率,不需要多次查询才能获得MPTCP服务端对应的多个IP地址的查询效果。In the method and communication device for determining the public network address of an MPTCP server provided by this application, the MPTCP client can determine the MPTCP session by obtaining multiple IP addresses of the MPTCP server corresponding to the domain name and the unique identifier of the MPTCP server corresponding to each IP address. Multiple IP addresses of the same MPTCP server, so that the first sub-stream of the MPTCP session can be established by using the multiple IP addresses, which solves the network reachability failure and network delay or packet loss problems of a single IP address, and enables the MPTCP session. Quickly build chains and improve user experience. In addition, the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
本申请提供的确定MPTCP服务器公网地址的方法和通信装置,通过DHCP服务器将为后端的MPTCP服务配置的私网地址对应的公网地址、或者公网地址和端口信息发送给后端的MPTCP服务器,从而让MPTCP服务器能明确感知其各个私网IP对应的公网IP和/或端口信息,以便MPTCP服务器可以向MPTCP客户端通知私网IP对应的公网IP、或者私网IP对应公网IP和端口信息,从而可以正确建立MPTCP会话的新的子流,保证了MPTCP会话可以顺利的建立子流,提高了MPTCP会话的效率。并且,减少了MPTCP服务器的本地配置,也不需要MPTCP服务器本地配置公网地址,避免了公网地址直接暴露在公网上从而影响其安全性。The method and the communication device for determining the public network address of the MPTCP server provided by the present application send the public network address corresponding to the private network address configured for the back-end MPTCP service, or the public network address and port information to the back-end MPTCP server through the DHCP server, In this way, the MPTCP server can clearly perceive the public network IP and/or port information corresponding to each private network IP, so that the MPTCP server can notify the MPTCP client of the public network IP corresponding to the private network IP, or the private network IP corresponding to the public network IP and/or port information. port information, so that a new sub-flow of the MPTCP session can be correctly established, which ensures that the MPTCP session can successfully establish the sub-flow and improves the efficiency of the MPTCP session. In addition, the local configuration of the MPTCP server is reduced, and the local configuration of the public network address of the MPTCP server is not required, which prevents the public network address from being directly exposed on the public network and thus affects its security.
附图说明Description of drawings
图1是多宿主客户端的组网场景架构的示意图。FIG. 1 is a schematic diagram of a networking scenario architecture of a multi-homed client.
图2是本申请提供的一例适用于本申请实施例的通信***的示意图。FIG. 2 is a schematic diagram of an example of a communication system provided by the present application and applicable to an embodiment of the present application.
图3是本申请实施例提供的一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 3 is a schematic flowchart of an example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图4是为本申请提供的一例DNS查询请求和DNS查询应答信息的示意性结构图。FIG. 4 is a schematic structural diagram of an example of DNS query request and DNS query response information provided in the present application.
图5是为本申请提供的一例查询问题区域(Query)字段的示意性结构图。FIG. 5 is a schematic structural diagram of an example of a query field (Query) field provided for this application.
图6是本申请实施例提供的一例APTR类型或者AAAAPTR类型的RR记录的示意性结构图。FIG. 6 is a schematic structural diagram of an example of an RR record of an APTR type or an AAAAPTR type provided by an embodiment of the present application.
图7是本申请实施例提供的另一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 7 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图8是本申请实施例提供的另一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 8 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图9是本申请实施例提供一例适用于本申请实施例的通信***的示意图。FIG. 9 is a schematic diagram of an example of a communication system applicable to an embodiment of the present application provided by an embodiment of the present application.
图10是本申请实施例提供的又一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 10 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图11是本申请实施例提供的另一例通信装置结构的示意性框图。FIG. 11 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
图12是本申请实施例提供的又一例通信装置结构的示意性框图。FIG. 12 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
图13是本申请实施例提供的另一例通信装置结构的示意性框图。FIG. 13 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
图14是本申请实施例提供的又一例通信装置结构的示意性框图。FIG. 14 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
图15是本申请提供的一例LB应用场景组网的示意性结构图。FIG. 15 is a schematic structural diagram of an example of LB application scenario networking provided by the present application.
图16是本申请提供的一例适用于本申请实施例的通信***的示意图。FIG. 16 is a schematic diagram of an example of a communication system provided by the present application and applicable to an embodiment of the present application.
图17是本申请实施例提供的另一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 17 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图18是本申请实施例提供的另一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 18 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图19是本申请实施例提供的又一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 19 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图20是本申请实施例提供的一例DHCPv6客户端和DHCPv6服务器在T1时刻地址租约更新过程的示意性流程图。FIG. 20 is a schematic flowchart of an example of an address lease renewal process at time T1 between a DHCPv6 client and a DHCPv6 server according to an embodiment of the present application.
图21是本申请实施例提供的一例DHCPv6客户端和DHCPv6服务器在T2时刻地址租约更新过程的示意性流程图。FIG. 21 is a schematic flowchart of an example of an address lease renewal process of a DHCPv6 client and a DHCPv6 server at time T2 provided by an embodiment of the present application.
图22是本申请实施例提供的一例扩展的DHCP选项的示意性结构图。FIG. 22 is a schematic structural diagram of an example of an extended DHCP option provided by an embodiment of the present application.
图23是本申请实施例提供的另一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 23 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图24是本申请实施例提供的另一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 24 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图25是本申请实施例提供的又一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 25 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图26是本申请实施例提供一例适用于本申请实施例的通信***的示意图。FIG. 26 is a schematic diagram of an embodiment of the present application providing an example of a communication system applicable to the embodiment of the present application.
图27是本申请实施例提供的又一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 27 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图28是本申请实施例提供的一例NAT公共地址选项的示意性结构图。FIG. 28 is a schematic structural diagram of an example of a NAT public address option provided by an embodiment of the present application.
图29是本申请实施例提供的又一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 29 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图30是本申请实施例提供一例适用于本申请实施例的通信***的示意图。FIG. 30 is a schematic diagram of an embodiment of the present application providing an example of a communication system applicable to the embodiment of the present application.
图31是本申请实施例提供的又一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 31 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图32是本申请实施例提供的一例NAT公共地址选项的示意性结构图。FIG. 32 is a schematic structural diagram of an example of a NAT public address option provided by an embodiment of the present application.
图33是本申请实施例提供的又一例确定MPTCP服务器公网地址方法的示意性流程图。FIG. 33 is a schematic flowchart of another example of a method for determining a public network address of an MPTCP server provided by an embodiment of the present application.
图34是本申请实施例提供的另一例通信装置结构的示意性框图。FIG. 34 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
图35是本申请实施例提供的又一例通信装置结构的示意性框图。FIG. 35 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
图36是本申请实施例提供的另一例通信装置结构的示意性框图。FIG. 36 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
图37是本申请实施例提供的又一例通信装置结构的示意性框图。FIG. 37 is a schematic block diagram of another example of the structure of a communication apparatus provided by an embodiment of the present application.
具体实施方式detailed description
下面将结合附图,对本申请中的技术方案进行描述。The technical solutions in the present application will be described below with reference to the accompanying drawings.
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。In the description of the embodiments of the present application, unless otherwise specified, "/" means or means, for example, A/B can mean A or B; "and/or" in this document is only an association that describes an associated object Relation, it means that there can be three kinds of relations, for example, A and/or B can mean that A exists alone, A and B exist at the same time, and B exists alone. In addition, in the description of the embodiments of the present application, "plurality" refers to two or more than two.
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。Hereinafter, the terms "first" and "second" are only used for descriptive purposes, and should not be construed as indicating or implying relative importance or implicitly indicating the number of indicated technical features. Thus, a feature defined as "first" or "second" may expressly or implicitly include one or more of that feature. In the description of this embodiment, unless otherwise specified, "plurality" means two or more.
另外,本申请的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,CD)、数字通用盘(digital versatile disc,DVD)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasable programmable read-only memory,EPROM)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。Additionally, various aspects or features of the present application may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques. The term "article of manufacture" as used in this application encompasses a computer program accessible from any computer readable device, carrier or medium. For example, computer readable media may include, but are not limited to: magnetic storage devices (eg, hard disks, floppy disks, or magnetic tapes, etc.), optical disks (eg, compact discs (CDs), digital versatile discs (DVDs) etc.), smart cards and flash memory devices (eg, erasable programmable read-only memory (EPROM), card, stick or key drives, etc.). Additionally, various storage media described herein can represent one or more devices and/or other machine-readable media for storing information. The term "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.
本申请实施例的技术方案可以应用于各种通信***,例如:全球移动通讯(Global System of Mobile communication,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)等。The technical solutions of the embodiments of the present application can be applied to various communication systems, for example: a Global System of Mobile communication (GSM) system, a Code Division Multiple Access (CDMA) system, a wideband Code Division Multiple Access (CDMA) system (Wideband Code Division Multiple Access, WCDMA) system, General Packet Radio Service (General Packet Radio Service, GPRS), Long Term Evolution (Long Term Evolution, LTE) system, LTE Frequency Division Duplex (Frequency Division Duplex, FDD) system, LTE Time Division Duplex (TDD), Universal Mobile Telecommunication System (UMTS), Worldwide Interoperability for Microwave Access (WiMAX) communication system, 5th Generation (5G) System or New Radio (New Radio, NR), etc.
本申请实施例中的终端设备可以指用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。终端设备还可以是蜂窝电话、无绳电话、会话启动协议(Session Initiation Protocol,SIP)电话、无线本地环路(Wireless Local Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5G网络中的终端设备或者未来演进的公用陆地移动通信网络(public land mobile network,PLMN)中的终端设备等,本申请实施例对此并不限定。The terminal device in this embodiment of the present application may refer to a user equipment, an access terminal, a subscriber unit, a subscriber station, a mobile station, a mobile station, a remote station, a remote terminal, a mobile device, a user terminal, a terminal, a wireless communication device, a user agent or user device. The terminal device may also be a cellular phone, a cordless phone, a Session Initiation Protocol (SIP) phone, a Wireless Local Loop (WLL) station, a Personal Digital Assistant (PDA), a wireless communication Functional handheld devices, computing devices or other processing devices connected to wireless modems, in-vehicle devices, wearable devices, terminal devices in 5G networks or terminals in the future evolution of the public land mobile network (PLMN) equipment, etc., which are not limited in this embodiment of the present application.
随着移动终端(例如手机)用户数量的不断增长,各类移动终端支持的业务功能不断增加,例如即时通信、证券、网页浏览、文件下载等功能已逐步成为终端设备,尤其是智能手机的主流应用。在上网过程中,移动终端需要对统一资源定位符(uniform resource locator,URL)的域名查询其域名对应的互联网协议(internet protocol,IP)地址,以便发送数据包。这个过程需要通过查询DNS服务器才能完成。With the continuous growth of the number of users of mobile terminals (such as mobile phones), the business functions supported by various mobile terminals continue to increase. For example, functions such as instant messaging, securities, web browsing, and file download have gradually become the mainstream of terminal devices, especially smart phones. application. In the process of surfing the Internet, the mobile terminal needs to query the domain name of the uniform resource locator (URL) for the Internet protocol (IP) address corresponding to the domain name in order to send data packets. This process needs to be done by querying the DNS server.
DNS服务器是一种分布式的主机信息数据库,提供域名和IP地址之间的映射和转换,可以通过DNS服务器将域名解析为对应的IP地址。终端设备可以通过DNS提供的域名解析服务实现对域名的访问。A DNS server is a distributed host information database that provides mapping and conversion between domain names and IP addresses, and can resolve domain names to corresponding IP addresses through the DNS server. Terminal devices can access domain names through the domain name resolution service provided by DNS.
域名访问的过程如下:以终端设备访问域名A为例,当终端设备访问该域名A时,查询其缓存中是否存在该域名A对应的应用服务器的IP地址,如果存在,则终端设备可以直接获取该IP地址,通过该IP地址访问该域名A。如果不存在,则终端设备可以向DNS服务器发送域名解析请求,该域名解析请求携带该域名A,由DNS服务器返回该域名A对应的IP地址,终端设备可以通过该IP地址访问该域名A。The process of domain name access is as follows: Take the terminal device accessing domain name A as an example, when the terminal device accesses the domain name A, it queries whether the IP address of the application server corresponding to the domain name A exists in its cache. If so, the terminal device can directly obtain the IP address. The IP address, through which the domain name A is accessed. If it does not exist, the terminal device can send a domain name resolution request to the DNS server, the domain name resolution request carries the domain name A, and the DNS server returns the IP address corresponding to the domain name A, and the terminal device can access the domain name A through the IP address.
另外,终端设备在获得域名对应的IP地址后,生成并缓存一条DNS缓存记录。该DNS缓存记录用于表示域名与IP地址的对应关系。此外,终端设备针对缓存的每条DNS缓存记录维护相应的存留时间(time to live,TTL)。DNS缓存记录的TTL为该DNS缓存记录在终端设备的缓存中的保留的时间。这样,若在某一个DNS缓存记录的TTL内,终端设备需要再次访问该DNS缓存记录中的域名,则该终端设备可以直接根据该DNS缓存记录,获取该域名对应的IP地址。若超过该DNS缓存记录的TTL后,该终端设备需要再次访问该域名,通过DNS服务器解析得到所述域名对应的IP地址。In addition, after obtaining the IP address corresponding to the domain name, the terminal device generates and caches a DNS cache record. The DNS cache record is used to indicate the correspondence between the domain name and the IP address. In addition, the terminal device maintains a corresponding time to live (TTL) for each cached DNS cache record. The TTL of the DNS cache record is the retention time of the DNS cache record in the cache of the terminal device. In this way, if the terminal device needs to access the domain name in the DNS cache record again within the TTL of a certain DNS cache record, the terminal device can directly obtain the IP address corresponding to the domain name according to the DNS cache record. If the TTL of the DNS cache record is exceeded, the terminal device needs to access the domain name again, and obtains the IP address corresponding to the domain name through DNS server resolution.
传输层(Transport Layer)是国际标准化组织开放式互联(international organization for standardization open system interconnection,ISO OSI)协议的第四层协议,传输层协议为应用进程提供端到端的通信服务,是两台通信设备(例如计算机)经过网络进行数据通信时,第一个端到端的层次。传统的传输层协议仅支持单路径功能,即:一个传输层连接只能绑定一条端到端路径,用于数据传输。如果需要多条连接,只能建多条4层TCP连接。Transport Layer (Transport Layer) is the fourth layer protocol of the International Organization for Standardization open system interconnection (ISO OSI) protocol. The transport layer protocol provides end-to-end communication services for the application process and is two communication devices. The first end-to-end layer when data communication (such as a computer) goes through a network. The traditional transport layer protocol only supports the single-path function, that is, a transport layer connection can only be bound to one end-to-end path for data transmission. If multiple connections are required, only multiple Layer 4 TCP connections can be established.
随着Ipv6的到来,主机的多地址(Multihome)变得越来越普及。即使是广泛使 用的随着互联网协议第四版(internet protocol version4,Ipv4),多宿主主机(Multihome host)也越来越多了。从数据中心胖树(Fat-tree)网络架构下的服务器到具有4G/Wifi/3G/蓝牙(Bluetooth)多连接的智能手机,都是多宿主主机。为了充分利用设备的多连接特性,新型多路径传输层协议已经成为当前最大的趋势。MPTCP允许传输控制协议连接使用多个路径来最大化信道资源使用。它不再使用传统TCP协议所要求的单个信道,而是支持冗余信道资源的反向多路复用,将整个数据传输速率提高到所有可用信道的总和。与此同时,MPTCP还与传统TCP协议向后兼容。With the advent of IPv6, the multi-address of the host (Multihome) has become more and more popular. Even the widely used Multihome hosts are increasing with the fourth edition of the Internet Protocol (internet protocol version 4, Ipv4). From the server under the fat-tree network architecture in the data center to the smart phone with 4G/Wifi/3G/Bluetooth multi-connection, it is all multi-homed hosts. In order to make full use of the multi-connection characteristics of the device, the new multi-path transport layer protocol has become the biggest trend at present. MPTCP allows Transmission Control Protocol connections to use multiple paths to maximize channel resource usage. Instead of using a single channel as required by the traditional TCP protocol, it supports inverse multiplexing of redundant channel resources, increasing the overall data transfer rate to the sum of all available channels. At the same time, MPTCP is also backward compatible with legacy TCP protocols.
MPTCP是一种利用多条路径并发传输的传输层协议。MPTCP是按顺序初始化多个连接,即:当一条通道(或者首个子流)按照三次握手的方式建立起来后,再按照三次握手的方式建立其他的子通道(或者次子流)。这些通道以三次握手建立连接和四次握手解除连接。这些通道都会绑定于同一个MPTCP会话(MPTCP session)。发送端的数据可以选择其中一条通道进行传输,或者通过调度器在两条通道上进行传输。MPTCP is a transport layer protocol that utilizes multiple paths for concurrent transmission. MPTCP initializes multiple connections in sequence, that is, when a channel (or the first sub-stream) is established according to the three-way handshake, other sub-channels (or secondary sub-streams) are established according to the three-way handshake. These channels are connected with a three-way handshake and disconnected with a four-way handshake. These channels are bound to the same MPTCP session (MPTCP session). The data at the sender can select one of the channels for transmission, or transmit on two channels through the scheduler.
由于在同一个MPTCP会话中,一个MPTCP服务器可以对应多个公网IP地址,MPTCP客户端可以利用该多个公网IP地址分别建立该MPTCP会话的多个子流或者通道,以进行数据传输。目前,MPTCP服务器对应的多个公网IP地址一般依赖客户端配置,例如手机的MPTCP代理应用会静态配置MPTCP代理网关的至少一个公网地址。In the same MPTCP session, one MPTCP server can correspond to multiple public network IP addresses, and the MPTCP client can use the multiple public network IP addresses to respectively establish multiple sub-streams or channels of the MPTCP session for data transmission. Currently, the multiple public IP addresses corresponding to the MPTCP server generally depend on the client configuration. For example, the MPTCP proxy application of the mobile phone will statically configure at least one public IP address of the MPTCP proxy gateway.
相关资料“https://tools.ietf.org/html/draft-bonaventure-mptcp-experience-00”中的“draft-bonaventure-mptcp-experience-00.txt”提及:当单宿主客户端执行DNS查询时,它将从其本地解析器接收其请求的最佳答案。如果客户端是多宿主的,则返回的DNS查询的答案可能会因该客户端发送DNS查询请求的接口而异。多宿主客户端的组网场景的示意图如图1所示。如图1所示的,多宿主客户端具有无线保真(wireless-fidelity,Wifi)、蜂窝网络接口(cellular)这两个网络接口,多宿主客户端可以通过WIFI访问内容分发网络2(content delivery network,CDN),通过蜂窝网络接口访问CDN1和CDN3。"draft-bonaventure-mptcp-experience-00.txt" in the related information "https://tools.ietf.org/html/draft-bonaventure-mptcp-experience-00" mentions: When a single-homed client performs DNS When queried, it will receive the best answer for its request from its local resolver. If the client is multihomed, the answer to the DNS query returned may vary depending on the interface through which the client sent the DNS query request. A schematic diagram of a multi-homed client networking scenario is shown in Figure 1. As shown in Figure 1, the multi-homed client has two network interfaces: wireless-fidelity (Wifi) and cellular network interface (cellular). The multi-homed client can access the content delivery network 2 (content delivery network 2) through WIFI. network, CDN), access CDN1 and CDN3 through the cellular network interface.
对于如图1所示的组网场景,可以使用相关资料https://tools.ietf.org/html/draft-vandergaast-edns-client-subnet-02”中定义的客户端子网扩展的DNS(Extension DN S,EDNS)。当客户端从其WiFi接口发送DNS查询请求时,它还应在此DNS查询请求中发送与蜂窝网路接口相对应的客户端子网。这将向DNS服务器指示请求的IP地址对于WiFi接口和蜂窝网络接口(例如,CDN3)均应有效。For the networking scenario shown in Figure 1, you can use the client subnet extension DNS (Extension DNS, EDNS). When a client sends a DNS query request from its WiFi interface, it should also send the client subnet corresponding to the cellular network interface in this DNS query request. This will indicate the requested IP to the DNS server The address should be valid for both WiFi interface and cellular network interface (eg CDN3).
相关资料“https://tools.ietf.org/html/draft-barre-mptcp-impl-00”中分析认为:使用DNS分配与给定的MPTCP服务器关联的地址列表有如下三种方法。According to the relevant information "https://tools.ietf.org/html/draft-barre-mptcp-impl-00", there are three ways to use DNS to assign the address list associated with a given MPTCP server.
第一种方法:使用现有的转发DNS,并考虑与一个域名关联的所有“A”和“AAAA”类型的资源记录(resource record,RR)都对应于同一个MPTCP服务器,并且可用于建立多路径TCP子流。但是,当多个资源记录与一个DNS域名相关联时,通常是出于负载平衡的原因,并且这些资源记录指向不同的MPTCP服务器的地址。The first method: use the existing forwarding DNS, and consider that all "A" and "AAAA" type resource records (RR) associated with a domain name correspond to the same MPTCP server and can be used to establish multiple Path TCP subflow. However, it is usually for load balancing reasons when multiple resource records are associated with a DNS domain name, and these resource records point to the addresses of different MPTCP servers.
其中,“A”类型的资源记录用于IP地址记录,包括一个32比特位的IPV4地址,常用于映射主机名称(或者域名)到IP地址。也就是说,“A”类型的资源记录是指定域名对应的IP地址。“AAAA”类型的资源记录也用于IP地址记录,包括一个128 比特位的IPV6地址,用于映射主机名称(或者域名)到IP地址。也就是说,“AAAA”类型的资源记录也是指定域名对应的IP地址。Among them, the "A" type resource record is used for IP address records, including a 32-bit IPV4 address, which is often used to map host names (or domain names) to IP addresses. That is, a resource record of type "A" is the IP address corresponding to the specified domain name. Resource records of type "AAAA" are also used for IP address records, including a 128-bit IPV6 address used to map host names (or domain names) to IP addresses. That is to say, the resource record of type "AAAA" is also the IP address corresponding to the specified domain name.
第二种方法:定义一个新的DNS记录,其中包含与给定MPTCP服务器关联的IP地址列表。但是,这将需要部署新型的DNS记录。Second method: Define a new DNS record containing a list of IP addresses associated with a given MPTCP server. However, this would require deploying a new type of DNS record.
第三种方法:反向DNS来编码有关与给定MPTCP服务器关联的备用地址的信息。反向DNS树通常仅包含将域名与反向IPv4或IPv6地址相关联的指针记录(pointer record,PTR),并且,也可以使用反向DNS来存储A和AAAA记录。所以,目前建议采用第三种方法。PTR类型的资源记录用于将一个IP地址映射到对应的域名(或者主机名),可以理解为反向DNS,也可以看成是A记录或者AAAA记录的反向,即通过IP地址访问域名,而A记录或者AAAA记录是通过域名访问IP。Third method: Reverse DNS to encode information about alternate addresses associated with a given MPTCP server. A reverse DNS tree typically contains only pointer records (PTR) that associate domain names with reverse IPv4 or IPv6 addresses, and reverse DNS can also be used to store A and AAAA records. Therefore, the third method is currently recommended. PTR type resource records are used to map an IP address to a corresponding domain name (or host name). The A record or AAAA record is to access the IP through the domain name.
例如,假设域名为“mptcp.example.org”,并且可通过以下三个IP地址访问的MPTCP服务器。该IP地址来自文档前缀[RFC3849][RFC5737]:For example, suppose the domain name is "mptcp.example.org" and the MPTCP server is reachable through the following three IP addresses. This IP address comes from the document prefix [RFC3849][RFC5737]:
IP地址1::192.0.2.10IP address 1::192.0.2.10
IP地址2:198.51.100.23IP address 2: 198.51.100.23
IP地址3:2001:db8::1234IP address 3:2001:db8::1234
转发DNS将为此包含以下记录:Forward DNS will include the following records for this:
服务(Server)Service (Server)
mptcp.example.org.7200 IN A 192.0.2.10mptcp.example.org.7200 IN A 192.0.2.10
mptcp.example.org.7200 IN A 198.51.100.23mptcp.example.org.7200 IN A 198.51.100.23
mptcp.example.org.7200 IN AAAA 2001:db8::1234mptcp.example.org.7200 IN AAAA 2001:db8::1234
其中,“7200”表示该DNS缓存记录的生命周期,单位为“秒”。“IN”表示网络类型的名称为“Internet网络”。“A”表示为IPV4类型的IP地址。“AAAA”表示为IPV6类型的IP地址。Among them, "7200" indicates the lifetime of the DNS cache record, in seconds. "IN" indicates that the name of the network type is "Internet Network". "A" is represented as an IP address of type IPV4. "AAAA" is represented as an IP address of type IPV6.
此外,以下条目将被添加到反向DNS中:Additionally, the following entries will be added to the reverse DNS:
10.2.0.192.in-addr.arpa.7200 IN AAAA 2001:db8::123410.2.0.192.in-addr.arpa.7200 IN AAAA 2001: db8::1234
10.2.0.192.in-addr.arpa.7200 IN A 198.51.100.2310.2.0.192.in-addr.arpa.7200 IN A 198.51.100.23
23.100.51.198.in-addr.arpa.7200 IN AAAA 2001:db8::123423.100.51.198.in-addr.arpa.7200 IN AAAA 2001: db8::1234
23.100.51.198.in-addr.arpa.7200 IN A 192.0.2.1023.100.51.198.in-addr.arpa.7200 IN A 192.0.2.10
4.3.2.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.7200 IN A 192.0.2.104.3.2.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.7200 IN A 192.0.2.10
4.3.2.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.7200 IN A 198.51.100.234.3.2.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.7200 IN A 198.51.100.23
从上述分析可以看出,“draft-bonaventure-mptcp-experience-00.txt”的方案解决了CDN服务器的选择问题,但是,DNS的查询结果仍然只有MPTCP服务器的一个公网地址。It can be seen from the above analysis that the solution of "draft-bonaventure-mptcp-experience-00.txt" solves the problem of CDN server selection. However, the DNS query result is still only one public network address of the MPTCP server.
利用“draft-barre-mptcp-impl-00.txt”的方案,需要进行两次DNS查询,先向DNS服务器查询正向解析结果,然后根据查询到的IP地址查询DNS反向解析结果,对应的反向解析记录(A或AAAA类型记录,非PTR类型记录)是预先配置到DNS服务器上的。Using the "draft-barre-mptcp-impl-00.txt" solution, two DNS queries are required. First, the DNS server is queried for the forward resolution result, and then the DNS reverse resolution result is queried according to the queried IP address. The corresponding Reverse resolution records (A or AAAA type records, non-PTR type records) are pre-configured on the DNS server.
因此,目前MPTCP客户端(例如终端设备)通过DNS服务器查询MPTCP服务器的IP地址和/或端口信息时,通常只能获取一个最优查询结果(例如只能查询到一个MPTCP服务器的IP地址),即使获取多个IP地址,也无法确认哪些IP对应同一个MPTCP服务器。这会导致查询结果中的IP地址网络不可达或网络丢包严重时,就会影响MPTCP客户端应用首次访问MPTCP服务器时TCP建链性能和结果。而且首个子流建链失败会导致整个MPTCP会话建链失败,MPTCP客户端无法感知服务器新的IP地址,建立其他子流,不能保证MPTCP会话的正确建立,从而导致了用户无法访问应用数据,降低了用户体验。Therefore, at present, when an MPTCP client (such as a terminal device) queries the IP address and/or port information of the MPTCP server through the DNS server, usually only one optimal query result can be obtained (for example, only the IP address of one MPTCP server can be queried), Even if multiple IP addresses are obtained, it is impossible to confirm which IPs correspond to the same MPTCP server. This will cause the IP address in the query result to be unreachable or the network packet loss is severe, which will affect the TCP link establishment performance and results when the MPTCP client application accesses the MPTCP server for the first time. In addition, the failure of the first sub-stream to establish the chain will lead to the failure of the entire MPTCP session to establish the chain. The MPTCP client cannot perceive the new IP address of the server and establish other sub-streams, which cannot guarantee the correct establishment of the MPTCP session, resulting in users being unable to access application data. user experience.
有鉴于此,本申请提供了一种确定MPTCP服务器公网地址的方法,定义了一种新的DNS资源记录类型,该DNS资源记录中标识域名对应的MPTCP服务器或一组等价MPTCP服务器的标识,一个MPTCP服务器的标识用于唯一标识一个MPTCP服务器,一个域名可以对应一个或者多个MPTCP服务器,一个MPTCP服务器在DNS服务器中对应的多条DNS资源记录用于标识该MPTCP服务器的多个公网IP地址。在MPTCP客户端通过DNS服务器查询该DNS资源记录时,MPTCP客户端可以获取MPTCP会话中一个MPTCP服务器的多个公网IP地址,便可以利用该多个IP地址建立MPTCP会话的首个子流,解决了单一IP地址的网络可达性故障和网络延时或丢包问题,可以使得MPTCP会话快速建链,提高用户体验。In view of this, the application provides a method for determining the public network address of an MPTCP server, and defines a new type of DNS resource record, which identifies the MPTCP server corresponding to the domain name or the identifier of a group of equivalent MPTCP servers in the DNS resource record. , the identifier of an MPTCP server is used to uniquely identify an MPTCP server, a domain name can correspond to one or more MPTCP servers, and multiple DNS resource records corresponding to an MPTCP server in the DNS server are used to identify multiple public networks of the MPTCP server IP address. When the MPTCP client queries the DNS resource record through the DNS server, the MPTCP client can obtain multiple public IP addresses of an MPTCP server in the MPTCP session, and can use the multiple IP addresses to establish the first sub-stream of the MPTCP session. The network reachability failure and network delay or packet loss problems of a single IP address can be solved, and the MPTCP session can be quickly established and the user experience can be improved.
下面结合图2和图3详细说明本申请提供的确定MPTCP服务器公网地址的方法。The method for determining the public network address of the MPTCP server provided by the present application will be described in detail below with reference to FIG. 2 and FIG. 3 .
图2是一例适用于本申请实施例的无线通信***的架构示意图。如图2所示的,MPTCP客户端(例如为终端设备)需要访问应用时,可以向DNS服务器查询需要访问的域名的对应的服务器(例如为MPTCP服务器)的IP地址,在通过DNS服务器获取该域名对应的服务器的IP地址之后,就可以根据该IP地址,访问对应的服务器,从而获取需要的访问的应用的数据。FIG. 2 is a schematic structural diagram of an example of a wireless communication system applicable to an embodiment of the present application. As shown in Figure 2, when an MPTCP client (for example, a terminal device) needs to access an application, it can query the DNS server for the IP address of the corresponding server (for example, an MPTCP server) of the domain name to be accessed, and obtain the IP address through the DNS server. After the IP address of the server corresponding to the domain name is obtained, the corresponding server can be accessed according to the IP address, so as to obtain the required data of the accessed application.
图3是本申请一个实施例的确定MPTCP服务器公网地址的方法200的示意流程图。该方法200可以应用在图2所示的场景中,当然也可以应用在其他通信场景中,本申请实施例在此不作限制。FIG. 3 is a schematic flowchart of a method 200 for determining a public network address of an MPTCP server according to an embodiment of the present application. The method 200 can be applied in the scenario shown in FIG. 2 , and of course can also be applied in other communication scenarios, which is not limited in this embodiment of the present application.
下文的描述中,以MPTCP客户端和DNS服务器为执行主体说明书本申请提供的方法。作为示例而非限定,执行方法的执行主体也可以是应用于DNS服务器和MPTCP客户端的芯片。In the following description, the method provided by the present application will be described with the MPTCP client and the DNS server as the main body of execution. As an example but not a limitation, the execution subject of the execution method may also be a chip applied to the DNS server and the MPTCP client.
如图3所示,图3中示出的方法200可以包括S210至S240。下面结合图3详细说明方法200中的各个步骤。As shown in FIG. 3 , the method 200 shown in FIG. 3 may include S210 to S240. Each step in the method 200 will be described in detail below with reference to FIG. 3 .
应理解,在本申请实施例中,MPTCP客户端可以为终端设备,MPTCP服务器存储有MPTCP客户端需要访问的应用数据,MPTCP服务器也可以称为应用服务器,MPTCP客户端可以通过与MPTCP服务器建立MPTCP会话获取需要的数据。MPTCP服务器的IP地址可以理解为MPTCP服务器对外发布的多个公网IP地址,这些公网IP地址可以是支持MPTCP的服务器本地的网口IP,也可以是MPTCP的服务器对应网络地址转换(network address translation,NAT)设备上的公网IP地址,NAT设备为该支持MPTCP的服务器提供NAT网关功能。这些公网IP地址可以包括IPV4地址和IPV6地址。It should be understood that, in this embodiment of the present application, the MPTCP client may be a terminal device, the MPTCP server stores application data that the MPTCP client needs to access, the MPTCP server may also be called an application server, and the MPTCP client can establish MPTCP with the MPTCP server. The session gets the data it needs. The IP address of the MPTCP server can be understood as multiple public network IP addresses published by the MPTCP server. These public network IP addresses can be the local network port IP of the server supporting MPTCP, or the network address translation (network address) corresponding to the MPTCP server. translation, NAT) the public network IP address on the device, and the NAT device provides the NAT gateway function for the server supporting MPTCP. These public IP addresses may include IPV4 addresses and IPV6 addresses.
S210,MPTCP客户端向DNS服务器发送第一请求,该第一请求包括第一域名,该第一请求用于请求该第一域名对应的MPTCP服务器的至少一个IP地址和该MPTCP服务器对应的第一标识。S210: The MPTCP client sends a first request to the DNS server, where the first request includes a first domain name, and the first request is used to request at least one IP address of the MPTCP server corresponding to the first domain name and a first IP address corresponding to the MPTCP server logo.
S220,DNS服务器根据第一请求,确定第一信息,该第一信息包括:第一域名对应的MPTCP服务器的至少一个IP地址和该MPTCP服务器对应的第一标识,一个第一标识用于唯一标识一个MPTCP服务器。S220, the DNS server determines first information according to the first request, where the first information includes: at least one IP address of the MPTCP server corresponding to the first domain name and a first identifier corresponding to the MPTCP server, and one first identifier is used to uniquely identify An MPTCP server.
S230,DNS服务器向MPTCP客户端发送响应于该第一请求的第一信息。S230, the DNS server sends the first information in response to the first request to the MPTCP client.
S240,该MPTCP客户端根据该第一信息,确定与该第一域名和该第一标识对应的该MPTCP服务器的至少一个IP地址。S240, the MPTCP client determines at least one IP address of the MPTCP server corresponding to the first domain name and the first identifier according to the first information.
在S210中,MPTCP客户端需要访问某一个域名时,如果MPTCP客户端上的应用创建超文本传输协议(hypertext transfer protocol,HTTP)会话时,在本地缓存的DNS类型记录查询不到第一域名对应的MPTCP服务器的IP地址,就会触发生成第一请求,例如,该第一请求可以为DNS查询请求。MPTCP客户端便可以向DNS服务器发送第一请求,该第一请求包括第一域名,该第一请求用于请求该第一域名对应的MPTCP服务器的IP地址和MPTCP服务器对应的第一标识,一个第一标识用于唯一标识(或者对应)一个MPTCP服务器。例如,第一域名为可以为www.xxx.com。In S210, when the MPTCP client needs to access a certain domain name, if the application on the MPTCP client creates a hypertext transfer protocol (HTTP) session, the locally cached DNS type record cannot be queried for the corresponding first domain name The IP address of the MPTCP server will trigger the generation of the first request, for example, the first request may be a DNS query request. The MPTCP client can send a first request to the DNS server, where the first request includes the first domain name, and the first request is used to request the IP address of the MPTCP server corresponding to the first domain name and the first identifier corresponding to the MPTCP server, a The first identifier is used to uniquely identify (or correspond to) an MPTCP server. For example, the first domain name may be www.xxx.com.
可选的,在本申请实施例中,本地缓存的DNS类型记录可以为:“A”类型的RR记录、“AAAA”类型的RR记录、PTR类型的RR记录中的至少一种。Optionally, in this embodiment of the present application, the locally cached DNS type record may be at least one of an "A" type RR record, an "AAAA" type RR record, and a PTR type RR record.
图4所示的为本申请提供的一例DNS查询请求和DNS查询应答信息的示意性结构图,图4中的a图所示的为DNS查询请求示意性结构图,该DNS查询请求包括:会话标识(Transaction ID)字段、标志(Flags)字段、问题数(Questions)字段、回答资源记录数(Answer RRs)字段、授权资源记录数(Authority RRs)字段、附加资源记录数(Additional RRs)字段、查询问题区域(Queries)字段、授权区域(Authoritative nameservers)字段、附加区域(Additional recoreds)字段。Figure 4 shows a schematic structural diagram of an example of DNS query request and DNS query response information provided for this application, and Figure a in Figure 4 shows a schematic structural diagram of a DNS query request. The DNS query request includes: session Identification (Transaction ID) field, Flags (Flags) field, Questions (Questions) field, Answer RRs (Answer RRs) field, Authority RRs (Authority RRs) field, Additional RRs (Additional RRs) field, Query the question area (Queries) field, the authorized area (Authoritative nameservers) field, the additional area (Additional recordeds) field.
图4中的b图所示的为DNS查询应答信息的示意性结构图,该DNS查询应答信息:会话标识(Transaction ID)字段、标志(Flags)字段、问题数(Questions)字段、回答资源记录数(Answer RRs)字段、授权资源记录数(Authority RRs)字段、附加资源记录数(Additional RRs)字段、查询问题区域(Queries)字段、回答区域(Answers)字段、授权区域(Authoritative nameservers)字段、附加区域(Additional recoreds)字段。Figure b in Figure 4 shows a schematic structural diagram of DNS query response information, the DNS query response information: session identification (Transaction ID) field, flag (Flags) field, number of questions (Questions) field, answer resource record Answer RRs field, Authority RRs field, Additional resource records (Additional RRs) field, Queries field, Answers field, Authoritative nameservers field, Additional records field.
图5所示的为查询问题区域(Query)字段的示意性结构图。如图5所示的,Query字段包括:查询名字段、查询类型字段、查询类字段。FIG. 5 is a schematic structural diagram of a query field (Query) field. As shown in FIG. 5 , the Query field includes: a query name field, a query type field, and a query type field.
表1所示的为定义的查询类型包括的内容。Table 1 shows the contents of the defined query types.
表1Table 1
Figure PCTCN2021108737-appb-000001
Figure PCTCN2021108737-appb-000001
Figure PCTCN2021108737-appb-000002
Figure PCTCN2021108737-appb-000002
查询类(Class)和回答资源记录(Answer RR资源)定义中的类型(Class)定义一致,通常取值为1,表示Internet的IP地址。The query class (Class) is the same as the type (Class) definition in the definition of the answer resource record (Answer RR resource), usually the value is 1, indicating the IP address of the Internet.
在S220中,DNS服务器收到该第一请求,可以根据该第一请求中包括的域名,查询正常正向DNS数据库中的缓存。正向的DNS查询可以理解为根据域名查询对应的服务器的IP地址,即映射域名到服务器的公网IP地址。正向DNS数据库包括域名以及对应的服务器的IP地址的信息。在本申请实施例中,可以定义一种新的DNS资源记录类型(第一类型的资源记录),DNS服务器可以存储该第一类型的资源记录。In S220, after receiving the first request, the DNS server may query the cache in the normal forward DNS database according to the domain name included in the first request. A forward DNS query can be understood as querying the IP address of the corresponding server according to the domain name, that is, mapping the domain name to the public IP address of the server. The forward DNS database includes information of domain names and corresponding IP addresses of servers. In this embodiment of the present application, a new type of DNS resource record (a first type of resource record) may be defined, and the DNS server may store the first type of resource record.
第一类型的资源记录包括:第一域名对应的至少一个MPTCP服务器中每一个MPTCP服务器对应的标识(即第一标识)。第一类型的资源记录表示域名对应的一个或者多个MPTCP服务器或一组等价MPTCP服务器(例如一个负载均衡(load balancer)代理的一组MPTCP服务器)的标识,一个标识用于唯一标识一个MPTCP服务器,即同一个服务器对应的标识相同。换句话说,第一类型的资源记录包括:域名对应的一个或者多个MPTCP服务器的公网IP地址,以及该一个或者多个MPTCP服务器分别对应的标识,一个MPTCP服务器可以对应一个或者多个公网IP地址。The resource record of the first type includes: an identifier (ie, a first identifier) corresponding to each MPTCP server in the at least one MPTCP server corresponding to the first domain name. The resource record of the first type represents the identifier of one or more MPTCP servers or a group of equivalent MPTCP servers (such as a group of MPTCP servers of a load balancer proxy) corresponding to the domain name, and one identifier is used to uniquely identify an MPTCP server Server, that is, the same server has the same identifier. In other words, the resource record of the first type includes: the public IP addresses of one or more MPTCP servers corresponding to the domain name, and the respective identifiers corresponding to the one or more MPTCP servers. An MPTCP server may correspond to one or more public IP addresses. network IP address.
可选的,在本申请实施例中,第一类型的资源记录可以包括地址指针记录(address pointer record,APTR)类型的RR记录和AAAAPTR类型的RR记录中的至少一种。APTR类型对应A类型的RR记录,该类型RR记录中的域名对应IPv4地址,AAAAPTR类型对应AAAA类型的RR记录,该类型RR记录中的域名对应IPv6地址。Optionally, in this embodiment of the present application, the resource record of the first type may include at least one of an RR record of an address pointer record (address pointer record, APTR) type and an RR record of an AAAAPTR type. The APTR type corresponds to the RR record of type A, the domain name in the RR record of this type corresponds to the IPv4 address, the AAAAPTR type corresponds to the RR record of the AAAA type, and the domain name in the RR record of this type corresponds to the IPv6 address.
可选的,MPTCP服务器对应的标识可以为MPTCP服务器的通用唯一识别码(Universally Unique Identifier,UUID),一个UUID用于唯一标识一个MPTCP服务器。应理解,在本申请实施例中,MPTCP服务器对应的标识还可以是其他标识,只要该标识可以唯一对应或者指示一个MPTCP服务器即可,本申请实施例对此不作限制。Optionally, the identifier corresponding to the MPTCP server may be a universally unique identifier (Universally Unique Identifier, UUID) of the MPTCP server, and a UUID is used to uniquely identify an MPTCP server. It should be understood that, in the embodiment of the present application, the identifier corresponding to the MPTCP server may also be other identifiers, as long as the identifier can uniquely correspond to or indicate an MPTCP server, which is not limited in the embodiment of the present application.
一个域名对应的同一个MPTCP服务器对应的多条第一类型的资源记录标识该MPTCP服务器的多个IP地址。例如,假设同一个MPTCP服务器对应3条APTR类型的RR记录,则证明该MPTCP服务器具有3个IP地址。Multiple first-type resource records corresponding to the same MPTCP server corresponding to a domain name identify multiple IP addresses of the MPTCP server. For example, assuming that the same MPTCP server corresponds to three APTR RR records, it is proved that the MPTCP server has three IP addresses.
因此,在S220中,DNS服务器可以根据该第一请求中包括的域名,查询第一类型的资源记录。Therefore, in S220, the DNS server may query the resource record of the first type according to the domain name included in the first request.
可选的,在S220中,在本申请实施例中,DNS服务器还可以查询存储的“A”类型的RR记录、“AAAA”类型的RR记录等。Optionally, in S220, in this embodiment of the present application, the DNS server may also query the stored RR records of type "A", RR records of type "AAAA", and the like.
可选的,在本申请实施例中,DNS服务器本地缓存的DNS类型记录还可以包括:APTR类型的RR记录、AAAAPTR类型的RR记录中的至少一种。Optionally, in this embodiment of the present application, the DNS type record cached locally by the DNS server may further include: at least one of an APTR type RR record and an AAAAPTR type RR record.
DNS服务器可以根据该第一请求中包括的域名,通过查询可以确定第一信息,该第一信息包括:第一域名对应的至少一个MPTCP服务器的IP地址和该MPTCP服务器分别对应的第一标识,一个第一标识用于唯一标识一个MPTCP服务器,一个MPTCP服务器对应一个或者多个IP地址。The DNS server can determine the first information by querying according to the domain name included in the first request, and the first information includes: the IP address of at least one MPTCP server corresponding to the first domain name and the first identifier corresponding to the MPTCP server respectively, A first identifier is used to uniquely identify an MPTCP server, and an MPTCP server corresponds to one or more IP addresses.
例如,假设第一域名为www.xxx.com,对应的3个不同的MPTCP服务器,分别为MPTCP服务器1、MPTCP服务器2、MPTCP服务器3。三个服务器分布在不用的位置上。MPTCP服务器1对应两个IP地址,分别为IP11、IP12,MPTCP服务器2对应三个IP地址,分别为IP21、IP22、IP23,MPTCP服务器3对应三个IP地址,分别为IP31、IP32、IP33,MPTCP服务器1对应的标识为UUID1,MPTCP服务器1对应的标识为UUID2,MPTCP服务器3对应的标识为UUID3。For example, it is assumed that the first domain name is www.xxx.com, and the corresponding three different MPTCP servers are MPTCP server 1, MPTCP server 2, and MPTCP server 3, respectively. Three servers are distributed in different locations. MPTCP server 1 corresponds to two IP addresses, namely IP11, IP12, MPTCP server 2 corresponds to three IP addresses, namely IP21, IP22, IP23, MPTCP server 3 corresponds to three IP addresses, respectively IP31, IP32, IP33, MPTCP The identifier corresponding to server 1 is UUID1, the identifier corresponding to MPTCP server 1 is UUID2, and the identifier corresponding to MPTCP server 3 is UUID3.
对于MPTCP服务器1,包括如下两条APTR类型的RR记录:For MPTCP server 1, it includes the following two RR records of APTR type:
www.xxx.com.IP11,UUID1;www.xxx.com.IP11, UUID1;
www.xxx.com.IP12,UUID1;www.xxx.com.IP12, UUID1;
对于MPTCP服务器2,包括如下三条APTR类型的RR记录:For MPTCP server 2, the following three APTR-type RR records are included:
www.xxx.com.IP21,UUID2;www.xxx.com.IP21, UUID2;
www.xxx.com.IP22,UUID2;www.xxx.com.IP22, UUID2;
www.xxx.com.IP23,UUID2;www.xxx.com.IP23, UUID2;
对于MPTCP服务器3,包括如下三条APTR类型的RR记录:For MPTCP server 3, the following three APTR-type RR records are included:
www.xxx.com.IP31,UUID3;www.xxx.com.IP31, UUID3;
www.xxx.com.IP32,UUID3;www.xxx.com.IP32, UUID3;
www.xxx.com.IP33,UUID3;www.xxx.com.IP33, UUID3;
在S230中,DNS服务器可以向MPTCP客户端发送响应于该第一请求的第一信息,例如,该第一信息可以为DNS查询应答报文。可选的,DNS服务器可以将查询到的APTR类型的RR记录和/或AAAAPTR类型RR记录通过DNS查询应答报文发送给MPTCP客户端。可选的,DNS服务器可以只将一个MPTCP服务器对应的多条APTR类型的RR记录和/或AAAAPTR类型RR记录发送给MPTCP客户端,该MPTCP服务器可以为距离MPTCP客户端最近的MPTCP服务器。下文的描述中,将以第一域名对应一个MPTCP服务器为例进行说明。In S230, the DNS server may send first information in response to the first request to the MPTCP client, for example, the first information may be a DNS query response message. Optionally, the DNS server may send the queried APTR type RR record and/or AAAAPTR type RR record to the MPTCP client through a DNS query response message. Optionally, the DNS server may only send multiple APTR-type RR records and/or AAAAPTR-type RR records corresponding to one MPTCP server to the MPTCP client, and the MPTCP server may be the MPTCP server closest to the MPTCP client. In the following description, the first domain name corresponds to an MPTCP server as an example for description.
在S240中,MPTCP客户端可以根据该第一信息,确定与该第一域名和该第一标识对应的MPTCP服务器的一个或者多个IP地址。例如,MPTCP客户端可以解析该APTR类型的RR记录和/或AAAAPTR类型RR记录,确定同一个MPTCP服务器对应的一个或者多个IP地址。In S240, the MPTCP client may determine one or more IP addresses of the MPTCP server corresponding to the first domain name and the first identifier according to the first information. For example, the MPTCP client can parse the APTR type RR record and/or the AAAAPTR type RR record to determine one or more IP addresses corresponding to the same MPTCP server.
本申请提供的确定MPTCP服务器公网地址的方法,MPTCP客户端通过获取域名对应的MPTCP服务器的多个IP地址,以及每一个IP地址对应的MPTCP服务器的唯一标识,可以确定MPTCP会话中同一个MPTCP服务器的多个IP地址,从而可以利用该多个IP地址建立MPTCP会话的首个子流,解决了单一IP地址的网络可达性故障和网络延时或丢包问题,可以使得MPTCP会话快速建链,提高用户体验。并且,提高了DNS查询效率,不需要多次查询才能获得MPTCP服务端对应的多个IP地址的查询效果。In the method for determining the public network address of the MPTCP server provided by this application, the MPTCP client can determine the same MPTCP server in the MPTCP session by obtaining multiple IP addresses of the MPTCP server corresponding to the domain name and the unique identifier of the MPTCP server corresponding to each IP address. Multiple IP addresses of the server, so that the first sub-stream of the MPTCP session can be established by using the multiple IP addresses, which solves the network reachability failure and network delay or packet loss problems of a single IP address, and enables the MPTCP session to quickly establish a link , to improve the user experience. In addition, the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
应理解,在本申请实施例中,MPTCP客户端通过域名在DNS服务器查询到MPTCP服务器IP地址信息后,和正常的A类型DNS资源记录一样,将查询到的APTR类型和/或AAAAPTR类型DNS资源记录缓存起来,并按老化时间正常老化。It should be understood that, in this embodiment of the present application, after the MPTCP client queries the IP address information of the MPTCP server through the DNS server through the domain name, it will be the same as the normal A-type DNS resource record, and will query the APTR-type and/or AAAAPTR-type DNS resources. Records are cached and aged normally according to the aging time.
还应理解,在本申请实施例中,一个域名可以对应多个不同的MPTCP服务器,这多个不同的MPTCP服务器可以分布在不同的位置,一个MPTCP服务器也可以对应不同的IP地址。MPTCP客户端访问该域名时,可以和多个不同的MPTCP服务器中的任意一个建立MPTCP会话。例如,利用同一个MPTCP服务器的不同IP地址分别建立子流进行传输。It should also be understood that, in this embodiment of the present application, one domain name may correspond to multiple different MPTCP servers, the multiple different MPTCP servers may be distributed in different locations, and one MPTCP server may also correspond to different IP addresses. When an MPTCP client accesses this domain name, it can establish an MPTCP session with any one of multiple different MPTCP servers. For example, use different IP addresses of the same MPTCP server to establish sub-streams respectively for transmission.
应理解,在本申请实施例中,MPTCP服务器的IP地址可以为IPV4地址或者IPV6地址,IPv4地址和IPv6地址对应的服务器UUID可以定义成不同的类型值。It should be understood that, in this embodiment of the present application, the IP address of the MPTCP server may be an IPV4 address or an IPV6 address, and the server UUID corresponding to the IPv4 address and the IPv6 address may be defined as different type values.
可选的,作为一种可能的实现方式,图6所示的为本申请提供的APTR类型或者AAAAPTR类型的RR记录的示意性结构图,如图6所示的,该资源记录包括字段101至字段106,其中,101表示域名(name)字段,102表示查询请求类型(type)字段,103表示类型(class)字段,104表示TTL字段,105表示数据长度(data length)字段,106表示数据(data)字段。Optionally, as a possible implementation manner, FIG. 6 shows a schematic structural diagram of an RR record of APTR type or AAAAPTR type provided for this application. As shown in FIG. 6 , the resource record includes fields 101 to 101. Field 106, where 101 represents the domain name (name) field, 102 represents the query request type (type) field, 103 represents the type (class) field, 104 represents the TTL field, 105 represents the data length (data length) field, 106 represents the data ( data) field.
其中,域名(name)字段:用于指示需要查询的域名,该字段的长度为可变的。The domain name (name) field is used to indicate the domain name to be queried, and the length of this field is variable.
查询请求类型(type)字段:长度为2个字节(Byte,B),指示需要查询的资源记录的类型为APTR类型的RR记录或者AAAAPTR类型RR记录。其中,IPv4地址类型和IPv6地址类型可以对应不同的值。可选的,在本申请实施例中,查询请求类型(type)也可以为通配类型的查询请求,该通配类型的查询请求用于请求查询APTR类型的RR记录或者AAAAPTR类型RR记录,或者,该查询请求类型字段的值也可以是其它用于指示APTR类型的RR记录或者AAAAPTR类型RR记录的值。Query request type (type) field: the length is 2 bytes (Byte, B), indicating that the type of the resource record to be queried is an APTR type RR record or an AAAAPTR type RR record. The IPv4 address type and the IPv6 address type may correspond to different values. Optionally, in this embodiment of the present application, the query request type (type) may also be a wildcard type query request, and the wildcard type query request is used to request to query an APTR type RR record or an AAAAPTR type RR record, or , the value of the query request type field may also be other values used to indicate APTR type RR records or AAAAPTR type RR records.
类型(class)字段:长度为2个字节。图6中所示的“IN”用于指示需要查询的网络类型为“Internet”。可选的,在本申请实施例中,类型(class)字段还可以用于指示其它需要查询的网络类型。Type (class) field: 2 bytes in length. The “IN” shown in FIG. 6 is used to indicate that the network type to be queried is “Internet”. Optionally, in this embodiment of the present application, the type (class) field may also be used to indicate other network types that need to be queried.
TTL,长度为4个字节,TTL为该APTR类型的RR记录或者AAAAPTR类型RR记录在DNS服务器或者MPTCP客户端中的缓存中的保留的时间长度,单位为“秒”。TTL, 4 bytes long, TTL is the length of time that the APTR type RR record or AAAAPTR type RR record is kept in the cache of the DNS server or MPTCP client, in seconds.
数据长度(data length)字段:长度为2个字节,用于指示访问的域名对应的应用数据的长度。Data length field: 2 bytes in length, used to indicate the length of the application data corresponding to the domain name accessed.
数据(data)字段:包括MPTCP服务器的IP地址和UUID,MPTCP服务器的IP地址可以为IPv4地址或者IPv6地址。Data (data) field: includes the IP address and UUID of the MPTCP server. The IP address of the MPTCP server can be an IPv4 address or an IPv6 address.
应理解,图6只是示例性的,不应该对本申请实施例提供的APTR类型的RR记录或者AAAAPTR类型RR记录的结构或者包括的内容造成任何限制。在本申请实施例中,APTR类型的RR记录或者AAAAPTR类型RR记录的结构还可以是其它的结构,APTR类型的RR或者AAAAPTR类型RR记录还可以包括其他的内容。本申请实施例在此不作限制。It should be understood that FIG. 6 is only exemplary, and should not impose any restrictions on the structure or included content of the APTR-type RR record or the AAAAPTR-type RR record provided in the embodiment of the present application. In the embodiment of the present application, the structure of the APTR type RR record or the AAAAPTR type RR record may also be other structures, and the APTR type RR or the AAAAPTR type RR record may also include other contents. The embodiments of the present application are not limited herein.
可选的,在本申请一些可能的实现方式中,DNS查询请求还用于请求第一类型的资源记录。Optionally, in some possible implementation manners of the present application, the DNS query request is also used to request the resource record of the first type.
具体而言,在本申请实施例中,由于定义了APTR类型的RR记录和AAAAPTR类型RR记录,因此,在S210中,MPTCP客户端向DNS服务器发送的DNS查询请求可以用于请求该APTR类型的RR记录或者AAAAPTR类型RR记录。例如,可以将DNS查询请求中的查询请求类型字段设置为用于指示APTR类型的RR记录或者AAAAPTR类型RR记录,或者还可以将DNS查询请求中的查询请求类型字段设置为用于指示通配类型的查询请求,该通配类型的查询请求用于请求查询APTR类型的RR记录或者AAAAPTR类型RR记录。例如,该通配类型的查询请求可以为表1中所示的ANY类型的查询请求。或者还可以在DNS查询请求中设置指示信息,该指示信息用于指示需要查询的资源记录的类型为APTR类型的RR记录或者AAAAPTR类型RR记录。本申请实施例在此不作限制。Specifically, in this embodiment of the present application, since APTR-type RR records and AAAAPTR-type RR records are defined, in S210, the DNS query request sent by the MPTCP client to the DNS server can be used to request the APTR-type RR record. RR record or AAAAPTR type RR record. For example, the query request type field in the DNS query request may be set to indicate an APTR type RR record or an AAAAPTR type RR record, or the query request type field in the DNS query request may also be set to indicate a wildcard type The query request of the wildcard type is used to request to query the APTR type RR record or the AAAAPTR type RR record. For example, the query request of the wildcard type may be the query request of the ANY type shown in Table 1. Alternatively, indication information may also be set in the DNS query request, where the indication information is used to indicate that the type of the resource record to be queried is an APTR type RR record or an AAAAPTR type RR record. The embodiments of the present application are not limited herein.
可选的,DNS查询请求还可以用于请求查询“A”类型的RR记录、“AAAA”类型的RR记录或者PTR类型的RR记录等。本申请实施例在此不作限制。Optionally, the DNS query request may also be used to request to query an "A" type RR record, an "AAAA" type RR record, or a PTR type RR record, and the like. The embodiments of the present application are not limited herein.
在S220中,在DNS服务器收到该DNS查询请求后,根据该请求中的域名,查询正向DNS数据库中的“A”类型的RR记录、“AAAA”类型的RR记录、PTR类型的RR记录、APTR类型的RR记录、AAAAPTR类型RR记录中的至少一种。或者,DNS服务器可以根据DNS查询请求中携带的查询请求的类型,只查询该DNS查询请求的类型指示的RR记录,例如只查询APTR类型的RR记录或者AAAAPTR类型RR记录。DNS服务器将查询到的记录经过本地策略筛选处理后,可以通过DNS查询应答报文回复MPTCP客户端。本地筛选策略需尽可能考虑对于同一MPTCP服务器对应的多条APTR记录呈现相同的筛选结果。In S220, after the DNS server receives the DNS query request, according to the domain name in the request, query the forward DNS database for "A" type RR records, "AAAA" type RR records, and PTR type RR records , at least one of APTR type RR records and AAAAPTR type RR records. Alternatively, the DNS server may query only the RR record indicated by the type of the DNS query request according to the type of the query request carried in the DNS query request, for example, only query the APTR type RR record or the AAAAPTR type RR record. After the DNS server filters the queried records through the local policy, it can reply to the MPTCP client through a DNS query response message. The local filtering strategy needs to consider the same filtering results for multiple APTR records corresponding to the same MPTCP server as much as possible.
可选的,在S240中,MPTCP客户端收到DNS服务器返回的查询应答报文后,解析其中APTR类型的RR记录,可以按照域名+服务器UUID为键值生成并缓存服务记录,一条服务记录至少包括一个IP地址。例如,假设该APTR类型的RR记录或者AAAAPTR类型RR记录包括如下三条:Optionally, in S240, after receiving the query response message returned by the DNS server, the MPTCP client parses the RR record of the APTR type, and can generate and cache service records according to the domain name + server UUID as the key value. A service record has at least Include an IP address. For example, it is assumed that the APTR type RR record or the AAAAPTR type RR record includes the following three items:
www.xxx.com.IP21,UUID2;www.xxx.com.IP21, UUID2;
www.xxx.com.IP22,UUID2;www.xxx.com.IP22, UUID2;
www.xxx.com.IP23,UUID2;www.xxx.com.IP23, UUID2;
则MPTCP客户端根据域名+服务器UUID生成的服务记录可以为:Then the service record generated by the MPTCP client according to the domain name + server UUID can be:
www.xxx.com+UUID2:IP21、IP22、IP23:www.xxx.com+UUID2: IP21, IP22, IP23:
该服务记录包括三个IP地址,即MPTCP客户端可以确定域名“www.xxx.com”对应的同一个MPTCP服务器(标识为UUID2)有3个IP地址,分别为IP21、IP22、IP23。这说明“www.xxx.com”对应的这一个服务器可以提供3个网络接口的服务链接。MPTCP客户端可以利用三个IP地址与该服务器建立MPTCP会话。The service record includes three IP addresses, that is, the MPTCP client can determine that the same MPTCP server (identified as UUID2) corresponding to the domain name "www.xxx.com" has three IP addresses, namely IP21, IP22, and IP23. This shows that the server corresponding to "www.xxx.com" can provide service links of 3 network interfaces. An MPTCP client can establish an MPTCP session with the server using three IP addresses.
可选的,在本申请实施例中,以图7为例,在图3所示的方法步骤的基础上,该方法200还包括S250。Optionally, in this embodiment of the present application, taking FIG. 7 as an example, based on the method steps shown in FIG. 3 , the method 200 further includes S250 .
S250,该MPTCP客户端根据该MPTCP服务器的至少一个IP地址,建立与该MPTCP服务器的MPTCP会话的首个子流。S250, the MPTCP client establishes the first substream of the MPTCP session with the MPTCP server according to at least one IP address of the MPTCP server.
图7中所示的S210至S240的描述可以参考上述的图3中对这几个步骤的描述,为了简洁,这里不再赘述。For the description of S210 to S240 shown in FIG. 7 , reference may be made to the description of these steps in the above-mentioned FIG. 3 , which is not repeated here for brevity.
在S250中,假设该MPTCP服务器对应多个IP地址。在MPTCP客户端确定与第一域名和第一标识对应的该MPTCP服务器的多个IP地址之后,说明该服务器(该MPTCP服务器)是可以提供多网络接口的服务器,MPTCP客户端可以尝试与之建立MPTCP会话。MPTCP客户端可以根据这些IP地址尝试建立MPTCP会话的首个子流。可选的,MPTCP客户端可以根据这些IP地址,利用如下三种方式中的任意一种尝试建立MPTCP会话的首个子流。In S250, it is assumed that the MPTCP server corresponds to multiple IP addresses. After the MPTCP client determines the multiple IP addresses of the MPTCP server corresponding to the first domain name and the first identifier, it indicates that the server (the MPTCP server) is a server that can provide multiple network interfaces, and the MPTCP client can try to establish with it. MPTCP session. MPTCP clients can attempt to establish the first substream of an MPTCP session based on these IP addresses. Optionally, the MPTCP client can use any one of the following three methods to try to establish the first substream of the MPTCP session according to these IP addresses.
第一种:该MPTCP客户端依次利用(或者轮询)该MPTCP服务器的多个IP地址建立首个子流,例如,根据获取的IP地址的自然顺序依次尝试和这多个IP建立MPTCP会话的首个子流,最先建立成功的子流为首个子流。假设首个子流对应第一IP地址。则MPTCP客户端将根据第二IP地址建立成功的子流加入到该首个子流对应的MPTCP会话中,该第二IP地址为该MPTCP服务器的多个IP地址除第一IP地址之外的IP地址,该MPTCP服务器的多个IP地址包括第一IP地址和第二IP地址。The first type: the MPTCP client sequentially uses (or polls) multiple IP addresses of the MPTCP server to establish the first sub-stream, for example, according to the natural order of the obtained IP addresses, it tries to establish the first sub-stream with these multiple IPs in turn. sub-streams, the first sub-stream to be successfully established is the first sub-stream. It is assumed that the first substream corresponds to the first IP address. Then the MPTCP client will join the sub-flow successfully established according to the second IP address into the MPTCP session corresponding to the first sub-flow, and the second IP address is the IP address of the MPTCP server except the first IP address. address, the multiple IP addresses of the MPTCP server include a first IP address and a second IP address.
例如,假设该MPTCP服务器的多个IP地址包括:IP地址1、IP地址2、IP地址3。MPTCP客户端首先利用IP地址1建立首个子流,如果建立成功,则再分别利用IP地址2、IP地址3建立次子流,并将利用IP地址2、IP地址3建立成功的次子流加入到首个子流对应的MPTCP会话中。For example, it is assumed that the multiple IP addresses of the MPTCP server include: IP address 1, IP address 2, and IP address 3. The MPTCP client first uses IP address 1 to establish the first sub-stream. If the establishment is successful, it then uses IP address 2 and IP address 3 to establish the secondary sub-stream respectively, and adds the successfully established secondary sub-stream with IP address 2 and IP address 3. into the MPTCP session corresponding to the first substream.
如果利用IP地址1建立首个子流失败,则再利用IP地址2建立首个子流,如果建立成功,则再分别利用IP地址1、IP地址3建立次子流,并将利用IP地址1、IP地址3建立成功的次子流加入到首个子流对应的MPTCP会话中。If the establishment of the first sub-flow with IP address 1 fails, the first sub-flow will be established with IP address 2. If the establishment is successful, the second sub-flow will be established with IP address 1 and IP address 3 respectively, and the second sub-flow will be established with IP address 1 and IP address. The second sub-stream whose address 3 is successfully established is added to the MPTCP session corresponding to the first sub-stream.
如果利用IP地址1和IP地址2分别建立首个子流均失败,则再利用IP地址3建立首个子流,如果建立成功,则再分别利用IP地址1、IP地址2建立次子流,并将利用IP地址1、IP地址2建立成功的次子流加入到首个子流对应的MPTCP会话中。If the establishment of the first sub-flow with IP address 1 and IP address 2 fails, then the first sub-flow is established with IP address 3. If the establishment is successful, the second sub-flow is established with IP address 1 and IP address 2 respectively, and the The successfully established secondary substream using IP address 1 and IP address 2 is added to the MPTCP session corresponding to the first substream.
应理解,在本申请实施例中,在利用第一种方式中,除了根据获取IP地址的自然顺序依次尝试和这多个IP建立MPTCP会话的首个子流之外,还可以根据临时往返时验(Round-Trip Time,RTT)经验,将IP流表表中的多个IP地址按照RTT从低到高的顺序,依次尝试和多个IP地址建立首个子流。It should be understood that, in the embodiment of the present application, in the first method, in addition to successively trying to establish the first sub-stream of the MPTCP session with these multiple IP addresses according to the natural order of obtaining IP addresses, the first sub-stream of the MPTCP session can also be established according to the temporary round-trip time test. (Round-Trip Time, RTT) experience, the multiple IP addresses in the IP flow table are in the order of RTT from low to high, and then try to establish the first sub-flow with multiple IP addresses in turn.
第二种:MPTCP客户端同时利用该MPTCP服务器的多个IP地址分别建立首个子流,最先建立成功的子流为该首个子流,假设首个子流对应第一IP地址。MPTCP客户端将根据第二IP地址正在建立(建链)和/或已经建立(建链)成功的首个子流撤销,并将利用第二IP地址重新建立成功的第二子流加入到该首个子流对应的MPTCP会话中,该第二IP地址为该MPTCP服务器的多个IP地址除该第一IP地址之外的IP地址。例如,MPTCP客户端撤销正在建链或已经完成的根据第二IP地址建立的首个子流,在MP_JOIN选项中携带根据第一IP地址建立的首个子流获取的MPTCP会话接收端令牌(Receiver's Token),利用第二IP地址重新建立第二子流(subTCP)并加入对应的MPTCP会话。该MPTCP服务器的多个IP地址包括第一IP地址和第二IP地址。The second type: The MPTCP client uses multiple IP addresses of the MPTCP server to establish the first sub-stream respectively, and the first sub-stream that is successfully established is the first sub-stream, assuming that the first sub-stream corresponds to the first IP address. The MPTCP client revokes the first sub-stream that is being established (chain establishment) and/or has been successfully established (chain establishment) according to the second IP address, and adds the second sub-stream that is successfully re-established with the second IP address to the first sub-stream. In the MPTCP session corresponding to each substream, the second IP address is an IP address other than the first IP address of multiple IP addresses of the MPTCP server. For example, the MPTCP client revokes the first sub-stream established according to the second IP address that is being established or has been completed, and carries the MPTCP session receiver's Token (Receiver's Token) obtained according to the first sub-stream established according to the first IP address in the MP_JOIN option. ), use the second IP address to re-establish the second sub-flow (subTCP) and join the corresponding MPTCP session. The multiple IP addresses of the MPTCP server include a first IP address and a second IP address.
例如,假设该MPTCP服务器的多个IP地址包括:IP地址1、IP地址2、IP地址3。MPTCP客户端同时利用IP地址1、IP地址2、IP地址3分别建立首个子流。假设利用IP地址2最先(最早)建立子流成功,则首个子流对应IP地址2。MPTCP客户 端将分别利用IP地址1、IP地址3正在建立和/或建立成功的两个首个子流撤销掉,然后在MP_JOIN选项中携带根据IP地址2建立的首个子流获取的MPTCP会话接收端令牌(Receiver's Token),利用IP地址1、IP地址3分别重新建立新的子流(subTCP)加入IP地址2对应的MPTCP会话中。For example, it is assumed that the multiple IP addresses of the MPTCP server include: IP address 1, IP address 2, and IP address 3. The MPTCP client uses IP address 1, IP address 2, and IP address 3 to establish the first substream respectively. Assuming that the first (earliest) sub-flow is successfully established by using IP address 2, the first sub-flow corresponds to IP address 2. The MPTCP client cancels the two first substreams that are being established and/or successfully established using IP address 1 and IP address 3 respectively, and then carries the MPTCP session receiver obtained from the first substream established according to IP address 2 in the MP_JOIN option. Receiver's Token, use IP address 1 and IP address 3 to re-establish a new sub-flow (subTCP) and join the MPTCP session corresponding to IP address 2.
第三种:该MPTCP客户端同时利用该MPTCP服务器的多个IP地址分别建立首个子流,最先建立成功的子流为第一首个子流,假设第一首个子流对应第一IP地址;MPTCP客户端将根据第二IP地址建立成功的第二首个子流加入到该第一首个子流对应的MPTCP会话中,该第二IP地址为该MPTCP服务器的多个IP地址除第一IP地址之外的IP地址。例如,MPTCP客户端在已经建立的第二首个子流上重新发送Syn报文,携带MP_JOIN选项(包含要加入MPTCP会话的服务端令牌,MPTCP客户端随机数,MPTCP客户端截短的哈希消息认证码(Truncated HMAC))。MPTCP服务器如果同意将现有子流搬迁归并到令牌指定的已有MPTCP会话中,就响应回复携带MP_JOIN选项(MP_JOIN选项携带MPTCP服务器Truncated HMAC和MPTCP服务器随机数)的Ack报文,如果不同意则回复No-Ack报文或不回复Ack报文,该MPTCP服务器的多个IP地址包括第一IP地址和第二IP地址。The third type: the MPTCP client uses multiple IP addresses of the MPTCP server to establish the first sub-stream respectively, and the first sub-stream that is successfully established is the first and first sub-stream, assuming that the first and first sub-stream corresponds to the first IP address; The MPTCP client adds the second first substream successfully established according to the second IP address to the MPTCP session corresponding to the first first substream, where the second IP address is the multiple IP addresses of the MPTCP server divided by the first IP address other IP addresses. For example, the MPTCP client resends the Syn packet on the second and first substream that has been established, carrying the MP_JOIN option (including the server token to join the MPTCP session, the MPTCP client random number, and the MPTCP client truncated hash). Message Authentication Code (Truncated HMAC)). If the MPTCP server agrees to relocate the existing substream into the existing MPTCP session specified by the token, it will respond with an Ack packet carrying the MP_JOIN option (the MP_JOIN option carries the MPTCP server Truncated HMAC and the MPTCP server random number). Then reply a No-Ack message or not reply an Ack message, and the multiple IP addresses of the MPTCP server include a first IP address and a second IP address.
例如,假设该MPTCP服务器的多个IP地址包括:IP地址1、IP地址2、IP地址3。MPTCP客户端同时利用IP地址1、IP地址2、IP地址3分别建立首个子流。假设利用IP地址3最先(最早)建立子流成功,则首个子流对应IP地址3。假设此后MPTCP客户端分别利用IP地址1、IP地址2也成功建立了两个首个子流(例如为子流2和子流3),MPTCP客户端并不将分别利用IP地址1、IP地址2成功建立成功的首个子流撤销,MPTCP客户端在已经建立的子流2和子流3上分别重新发送Syn报文,携带MP_JOIN选项(包含要加入MPTCP会话的服务端令牌,MPTCP客户端随机数,MPTCP客户端Truncated HMAC)。MPTCP服务器如果同意将子流2和子流3搬迁归并到令牌指定的已有MPTCP会话中,就响应回复携带MP_JOIN选项(携带MPTCP服务器Truncated HMAC和MPTCP服务器随机数)的Ack报文,如果不同意则回复No-Ack报文或不回复Ack报文。For example, it is assumed that the multiple IP addresses of the MPTCP server include: IP address 1, IP address 2, and IP address 3. The MPTCP client uses IP address 1, IP address 2, and IP address 3 to establish the first substream respectively. Assuming that the first (earliest) sub-flow is successfully established by using IP address 3, the first sub-flow corresponds to IP address 3. Assuming that the MPTCP client uses IP address 1 and IP address 2 respectively to successfully establish two first sub-streams (for example, sub-stream 2 and sub-stream 3), the MPTCP client will not use IP address 1 and IP address 2 successfully. The first sub-stream that is successfully established is revoked, and the MPTCP client resends the Syn message on the established sub-stream 2 and sub-stream 3 respectively, carrying the MP_JOIN option (including the server token to join the MPTCP session, the MPTCP client random number, MPTCP client Truncated HMAC). If the MPTCP server agrees to relocate sub-flow 2 and sub-flow 3 into the existing MPTCP session specified by the token, it will respond with an Ack message carrying the MP_JOIN option (carrying the MPTCP server Truncated HMAC and the MPTCP server random number). Then reply No-Ack message or do not reply Ack message.
可选的,在本申请实施例中,以图8为例,在图3所示的方法步骤的基础上,该方法200还包括S209。Optionally, in this embodiment of the present application, taking FIG. 8 as an example, based on the method steps shown in FIG. 3 , the method 200 further includes S209 .
S209,DNS服务器获取第二信息,该第二信息包括:至少一个域名中每个域名对应的MPTCP服务器的至少一个IP地址,以及MPTCP服务器对应的第一标识,至少一个域名包括该第一域名,一个域名对应至少一个MPTCP服务器。S209, the DNS server obtains second information, where the second information includes: at least one IP address of the MPTCP server corresponding to each domain name in the at least one domain name, and a first identifier corresponding to the MPTCP server, the at least one domain name includes the first domain name, A domain name corresponds to at least one MPTCP server.
图8中所示的S210至S240的描述可以参考上述的图3中对这几个步骤的描述,为了简洁,这里不再赘述。For the description of S210 to S240 shown in FIG. 8 , reference may be made to the description of these steps in the above-mentioned FIG. 3 , which is not repeated here for brevity.
在S209中,由于MPTCP客户端需要向DNS服务器(以第一DNS服务器为例进行说明)查询第一域名对应的MPTCP服务器的IP地址,以及MPTCP服务器的标识。因此,第一DNS服务器首先需要获取或者确定第二信息,第二信息包括:至少一个域名中每个域名对应的MPTCP服务器的至少一个IP地址,以及至少一个MPTCP服务器中每个MPTCP服务器对应的第一标识,该至少一个域名包括该第一域名,一个MPTCP服务器对应一个或者多个IP地址,一个域名对应至少一个MPTCP服务器。In S209, since the MPTCP client needs to query the DNS server (using the first DNS server as an example) for the IP address of the MPTCP server corresponding to the first domain name, and the identifier of the MPTCP server. Therefore, the first DNS server first needs to obtain or determine the second information, and the second information includes: at least one IP address of the MPTCP server corresponding to each domain name in the at least one domain name, and the first IP address corresponding to each MPTCP server in the at least one MPTCP server An identifier, the at least one domain name includes the first domain name, one MPTCP server corresponds to one or more IP addresses, and one domain name corresponds to at least one MPTCP server.
例如,第二信息可以包括:多个域名分别对应的MPTCP服务器的IP地址,每一个MPTCP服务器的标识(例如为UUID)。一个域名可以对应多个MPTCP服务器,并且,一个MPTCP服务器可以对应一个或者多个IP地址。其中,多个域名包括DNS查询请求中携带的第一域名。For example, the second information may include: IP addresses of MPTCP servers corresponding to multiple domain names, and an identifier (eg, UUID) of each MPTCP server. One domain name may correspond to multiple MPTCP servers, and one MPTCP server may correspond to one or more IP addresses. The multiple domain names include the first domain name carried in the DNS query request.
第一DNS服务器获取或者确定第二信息,并接收到MPTCP客户端发送的DNS查询请求后,便可以根据该DNS查询请求以及第二信息,确定第一域名对应的至少一个MPTCP服务器的IP地址和该至少一个MPTCP服务器中每个MPTCP服务器对应的标识(例如为UUID),并向MPTCP客户端发送第一域名对应的至少一个MPTCP服务器的IP地址和该至少一个MPTCP服务器分别对应的标识。After the first DNS server obtains or determines the second information, and receives the DNS query request sent by the MPTCP client, it can determine the IP address and the IP address of at least one MPTCP server corresponding to the first domain name according to the DNS query request and the second information. The identifier (for example, UUID) corresponding to each MPTCP server in the at least one MPTCP server, and the IP address of the at least one MPTCP server corresponding to the first domain name and the corresponding identifier of the at least one MPTCP server are sent to the MPTCP client.
也就是说,第一DNS服务器可以获取多条APTR类型的RR记录、AAAAPTR类型RR记录。多条APTR类型或者AAAAPTR类型的RR记录包括:至少一个域名、至少一个域名分别对应的MPTCP服务器IP地址、MPTCP服务器ID等。多条APTR类型或者AAAAPTR类型的RR记录包括第一域名对应的RR记录。可选的,DNS服务器还可以获取“A”类型的RR记录、“AAAA”类型的RR记录等。That is to say, the first DNS server may acquire a plurality of APTR type RR records and AAAAPTR type RR records. The plurality of RR records of APTR type or AAAAPTR type include: at least one domain name, MPTCP server IP address and MPTCP server ID corresponding to at least one domain name respectively. The multiple APTR type or AAAAPTR type RR records include the RR records corresponding to the first domain name. Optionally, the DNS server may also obtain RR records of type "A", RR records of type "AAAA", and the like.
应理解,图7中所示方法流程中也可以包括上述的S209。It should be understood that the above-mentioned S209 may also be included in the method flow shown in FIG. 7 .
可选的,作为一种可能的实现方式,MPTCP服务器的运营商(MPTCP Owner)可以向该第一DNS服务器对应的DNS服务器运营商提供多条AAAAPTR类型RR记录或者多条APTR类型的RR记录。第一DNS服务器运营商审核通过这些记录后,将其加入DNS数据库。例如,该第一DNS服务器可以为根DNS服务器。Optionally, as a possible implementation manner, the MPTCP server operator (MPTCP Owner) may provide multiple AAAAPTR type RR records or multiple APTR type RR records to the DNS server operator corresponding to the first DNS server. After the first DNS server operator has reviewed and approved these records, they will be added to the DNS database. For example, the first DNS server may be a root DNS server.
可选的,MPTCP服务器的运营商还可以向该DNS服务器对应DNS服务运营商提供“A”类型的RR记录、“AAAA”类型的RR记录、PTR类型RR记录等。Optionally, the operator of the MPTCP server may also provide the corresponding DNS service operator of the DNS server with an "A" type RR record, an "AAAA" type RR record, a PTR type RR record, and the like.
可选的,作为另一种可能的实现方式,如果MPTCP服务器的运营商向第二DNS服务器对应的DNS服务运营商提供上述的第二信息或者多条APTR类型的RR记录,则第一DNS服务器可以向第二DNS服务器发送第二请求,该第二请求用于请求第二信息,或者,用于请求APTR和/或AAAAPTR类型的RR记录。第二DNS服务器根据该第二请求,将APTR和/或AAAAPTR类型的RR记录发送给第一DNS服务器。可选的,第二DNS服务器还可以将“A”类型的RR记录、“AAAA”类型的RR记录、PTR类型RR记录等发送给第一DNS服务器。例如,第二DNS服务器可以为根DNS服务器。Optionally, as another possible implementation manner, if the operator of the MPTCP server provides the above-mentioned second information or multiple APTR-type RR records to the DNS service operator corresponding to the second DNS server, the first DNS server A second request may be sent to the second DNS server for requesting the second information, or for requesting an RR record of type APTR and/or AAAAPTR. The second DNS server sends the APTR and/or AAAAPTR type RR record to the first DNS server according to the second request. Optionally, the second DNS server may also send an "A" type RR record, an "AAAA" type RR record, a PTR type RR record, and the like to the first DNS server. For example, the second DNS server may be the root DNS server.
在本申请实施例中,第二DNS服务器可以理解为第一DNS服务器的上一级DNS服务器。In this embodiment of the present application, the second DNS server may be understood as an upper-level DNS server of the first DNS server.
可选的,如果第二DNS服务器也没有存储该APTR和/或AAAAPTR类型的RR记录,则第二DNS服务器也可以作为客户端向上层DNS服务器查询APTR和/或AAAAPTR类型的RR记录。本申请实施例在此不作限制。Optionally, if the second DNS server does not store the APTR and/or AAAAPTR type RR record, the second DNS server can also act as a client to query the APTR and/or AAAAPTR type RR record to the upper DNS server. The embodiments of the present application are not limited herein.
下面将结合具体的例子说明本申请提供的确定MPTCP服务器公网地址的方法。The method for determining the public network address of the MPTCP server provided by the present application will be described below with reference to specific examples.
在如图9所示的架构中,宿主机B(HostB)作为MPTCP的服务端,对作为MPTCP客户端的宿主机A(HostA)提供应用的多媒体资源访问服务。DNS服务器(DNS Server)为HostA提供DNS查询服务,HostA已经通过静态配置或动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)选项(Option)的方式成功发现该DNS服务器。In the architecture shown in FIG. 9 , the host machine B (HostB) serves as the server of MPTCP, and provides the multimedia resource access service of the application to the host machine A (HostA) serving as the MPTCP client. The DNS server (DNS Server) provides DNS query service for HostA, and HostA has successfully discovered the DNS server through static configuration or Dynamic Host Configuration Protocol (DHCP) option (Option).
在如图9所示的架构中,本申请提供的确定MPTCP的服务器的IP地址的方法300的示意性流程图,如图10所示的,该方法300包括:In the architecture shown in FIG. 9 , the schematic flowchart of the method 300 for determining the IP address of the MPTCP server provided by the present application, as shown in FIG. 10 , the method 300 includes:
S310,DNS服务器获取A类型RR记录和APTR类型的RR记录。例如,HostB的服务运营商向该DNS服务器对应DNS服务运营商提供的A类型记录和APTR类型的记录。DNS服务器运营商审核通过这些记录后,将其加入DNS数据库。可选的,DNS服务器还可以获取AAAA类型RR记录、AAAAPTR类型RR记录。S310, the DNS server obtains an A-type RR record and an APTR-type RR record. For example, the service operator of HostB corresponds to the A-type record and APTR-type record provided by the DNS service operator to the DNS server. After the DNS server operator has reviewed and approved these records, they will be added to the DNS database. Optionally, the DNS server may also obtain AAAA type RR records and AAAAPTR type RR records.
假设:HostB的服务运营商对外提供服务的域名为:mptcp.example.com,HostB对外提供服务对应的公网地址为B1和B2,B1为:198.51.100.23,B2为:176.13.100.21,HostB的UUID为:02000e00-0c30-03f1-0000-0035020100d0。Suppose: the domain name of HostB's service provider for external services is: mptcp.example.com, the public network addresses corresponding to HostB's external services are B1 and B2, B1 is: 198.51.100.23, B2 is: 176.13.100.21, HostB's The UUID is: 02000e00-0c30-03f1-0000-0035020100d0.
例如,提供的A类型的RR记录如下:For example, an RR record of type A is provided as follows:
mptcp.example.com.7200 IN A 198.51.100.23mptcp.example.com.7200 IN A 198.51.100.23
mptcp.example.com.7200 IN A 176.13.100.21mptcp.example.com.7200 IN A 176.13.100.21
提供的APTR类型RR记录如下:The APTR type RR records provided are as follows:
mptcp.example.com.7200 IN APTR 198.51.100.23 02000e00-0c30-03f1-0000-0035020100d0mptcp.example.com.7200 IN APTR 198.51.100.23 02000e00-0c30-03f1-0000-0035020100d0
mptcp.example.com.7200 IN APTR 176.13.100.21 02000e00-0c30-03f1-0000-0035020100d0mptcp.example.com.7200 IN APTR 176.13.100.21 02000e00-0c30-03f1-0000-0035020100d0
S320,HostA向DNS发送DNS查询请求报文,用于查询域名对应的服务器的IP地址。例如,HostA准备访问HostB,访问“mptcp.example.com”的站点资源,如果HostA上应用创建HTTP会话时,在本地缓存的DNS A或APTR类型记录查询不到mptcp.example.com对应的服务器的IP地址,就触发生成发送DNS查询请求报文。该DNS查询请求报文可以同时请求查询名称为mptcp.example.com的A类型记录和APTR类型记录,也可以单独查询名称为mptcp.example.com的APTR类型记录。S320, HostA sends a DNS query request message to the DNS, which is used to query the IP address of the server corresponding to the domain name. For example, HostA is going to access HostB to access the site resources of "mptcp.example.com". If the application on HostA creates an HTTP session, the locally cached DNS A or APTR records cannot be queried for the server corresponding to mptcp.example.com. The IP address triggers the generation and sending of a DNS query request packet. The DNS query request packet can request to query the A-type record and APTR-type record named mptcp.example.com at the same time, or can query the APTR-type record named mptcp.example.com independently.
S330,DNS服务器根据该DNS查询请求报文,进行查询,确定与该域名对应的APTR类型的RR记录,S330, the DNS server performs a query according to the DNS query request message, and determines the RR record of the APTR type corresponding to the domain name,
例如,DNS服务器收到HostA的DNS查询请求报文后,按查询请求(例如该查询请求仅请求查询APTR类型的RR记录)的要求查询本地数据库中的名称为“mptcp.example.com”的APTR类型的RR记录,查询到如下两条记录:For example, after receiving the DNS query request message from HostA, the DNS server queries the APTR named "mptcp.example.com" in the local database according to the query request (for example, the query request only requests to query RR records of APTR type). Type of RR records, the following two records are queried:
mptcp.example.com.7200IN APTR 198.51.100.23 02000e00-0c30-03f1-0000-0035020100d0;mptcp.example.com.7200IN APTR 198.51.100.23 02000e00-0c30-03f1-0000-0035020100d0;
mptcp.example.com.7200IN APTR 176.13.100.21 02000e00-0c30-03f1-0000-0035020100d0;mptcp.example.com.7200IN APTR 176.13.100.21 02000e00-0c30-03f1-0000-0035020100d0;
S340,DNS服务器将查询结果通过查询应答报文回复给HostA,该查询结果包括:与该域名对应的APTR类型的RR记录。S340, the DNS server replies the query result to Host A through a query response message, where the query result includes: an RR record of APTR type corresponding to the domain name.
S350,HostA收到DNS服务器返回的查询应答报文后,解析其中APTR类型记录,按域名+服务器的UUID为键值生成并缓存服务记录。一条服务记录至少包含一个IP地址。HostA解析处理完DNS查询应答报文,生成的服务记录如下:S350, after receiving the query response message returned by the DNS server, HostA parses the APTR type record, and generates and caches the service record according to the domain name + the UUID of the server as the key value. A service record contains at least one IP address. After HostA parses and processes the DNS query response message, the generated service record is as follows:
mptcp.example.com+02000e00-0c30-03f1-0000-0035020100d0:mptcp.example.com+02000e00-0c30-03f1-0000-0035020100d0:
198.51.100.23198.51.100.23
176.13.100.21176.13.100.21
这说明“mptcp.example.com”对应的HostB可以提供多网络接口的服务链接。HostA可以尝试与之建立MPTCP会话。This shows that HostB corresponding to "mptcp.example.com" can provide service links with multiple network interfaces. HostA can try to establish an MPTCP session with it.
S360,HostA利用HostB的多个IP地址与HostB建立MPTCP会话。假设HostA本身也有多网络入口(以两个为例),两个网络接口的IP地址分别为:A1和A2。因此,HostA根据尝试将<A1,B1>、<A2,B1>、<A1,B2>、<A2,B2>均分别作为MPTCP会话的首个子流的IP地址,尝试进行TCP握手交互。例如,可以利用S250中描述中的任意一种方式建立MPTCP会话的首个子流,最先完成握手的TCP会话作为MPTCP会话的首个子流,MPTCP会话建链成功,然后重建剩下的子流,并将新建链的子流加入已建链的MPTCP会话。S360, HostA establishes an MPTCP session with HostB by using multiple IP addresses of HostB. Suppose that HostA itself also has multiple network portals (take two as an example), and the IP addresses of the two network interfaces are: A1 and A2 respectively. Therefore, HostA attempts to perform the TCP handshake interaction by using <A1,B1>, <A2,B1>, <A1,B2>, and <A2,B2> as the IP addresses of the first substream of the MPTCP session, respectively. For example, any one of the methods described in S250 can be used to establish the first sub-stream of the MPTCP session, the TCP session that completes the handshake first is regarded as the first sub-stream of the MPTCP session, the MPTCP session is successfully established, and then the remaining sub-streams are rebuilt, And add the substream of the new chain to the MPTCP session of the established chain.
本申请提供的确定MPTCP服务器公网地址的方法,MPTCP客户端可以自动从DNS服务器获取MPTCP服务端的多个IP地址,不依赖MPTCP会话的首个子流的ADD_ADDR选项通告MPTCP服务端IP地址的机制,能够针对MPTCP服务端的多个IP地址尝试建立MPTCP会话的首个子流,保障了MPTCP会话建链的成功率和性能。In the method for determining the public network address of the MPTCP server provided by this application, the MPTCP client can automatically obtain multiple IP addresses of the MPTCP server from the DNS server, and does not rely on the mechanism of the ADD_ADDR option of the first substream of the MPTCP session to announce the IP address of the MPTCP server, It can try to establish the first substream of the MPTCP session for multiple IP addresses of the MPTCP server, which ensures the success rate and performance of the MPTCP session chain establishment.
应理解,上述只是为了帮助本领域技术人员更好地理解本申请实施例,而非要限制本申请实施例的范围。本领域技术人员根据所给出的上述示例,显然可以进行各种等价的修改或变化,例如,上述方法200和方法300中某些步骤可以不必须的,或者可以新加入某些步骤等。或者上述任意两种或者任意多种实施例的组合。这样的修改、变化或者组合后的方案也落入本申请实施例的范围内。It should be understood that the above is only to help those skilled in the art to better understand the embodiments of the present application, but is not intended to limit the scope of the embodiments of the present application. Those skilled in the art can obviously make various equivalent modifications or changes according to the above examples. For example, some steps in the above method 200 and method 300 may not be necessary, or some new steps may be added. Or a combination of any two or any of the above embodiments. Such modifications, changes or combined solutions also fall within the scope of the embodiments of the present application.
应理解,在本申请的各个实施例中,第一、第二等只是为了表示多个对象是不同的。例如第一DNS服务器和第二DNS服务器只是为了表示出不同的DNS服务器。而不应该对DNS服务器的本身和数量等产生任何影响,上述的第一、第二等不应该对本申请的实施例造成任何限制。It should be understood that, in various embodiments of the present application, the first, the second, etc. are only used to indicate that a plurality of objects are different. For example, the first DNS server and the second DNS server are only to indicate different DNS servers. It should not have any impact on the DNS server itself and the number, etc., and the above-mentioned first, second, etc., should not cause any limitation to the embodiments of the present application.
还应理解,本申请实施例中的方式、情况、类别以及实施例的划分仅是为了描述的方便,不应构成特别的限定,各种方式、类别、情况以及实施例中的特征在不矛盾的情况下可以相结合。It should also be understood that the manners, situations, categories, and divisions of the embodiments in the embodiments of the present application are only for the convenience of description, and should not constitute a special limitation, and the various manners, categories, situations, and features in the embodiments are not contradictory. can be combined.
还应理解,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。It should also be understood that the various numbers and numbers involved in the embodiments of the present application are only for the convenience of description, and are not used to limit the scope of the embodiments of the present application. The size of the sequence numbers of the above processes does not mean the sequence of execution, and the execution sequence of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
还应理解,上文对本申请实施例的描述着重于强调各个实施例之间的不同之处,未提到的相同或相似之处可以互相参考,为了简洁,这里不再赘述。It should also be understood that the above description of the embodiments of the present application focuses on emphasizing the differences between the various embodiments, and the unmentioned same or similar points can be referred to each other, and are not repeated here for brevity.
还应理解,本申请实施例中,“预定义”可以通过在设备(中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本申请对于其具体的实现方式不做限定。It should also be understood that, in this embodiment of the present application, “predefinition” may be implemented by pre-saving corresponding codes, forms or other means that can be used to indicate relevant information in the device (the application does not limit its specific implementation means) .
以上结合图1至图10对本申请实施例的确定MPTCP服务器公网地址的方法做了详细说明。以下,结合图11至图14对本申请实施例通信装置进行详细说明。The method for determining the public network address of the MPTCP server according to the embodiment of the present application has been described in detail above with reference to FIGS. 1 to 10 . Hereinafter, the communication device according to the embodiment of the present application will be described in detail with reference to FIG. 11 to FIG. 14 .
图11示出了本申请实施例的通信装置400的示意性框图,该通信装置400可以对应上述方法200和方法300中描述的MPTCP客户端,也可以是应用于MPTCP客户端 的芯片或组件,并且,该通信装置400的各模块或单元分别用于执行上述方法200和方法300中各个实施例方式中的MPTCP客户端所执行的各动作或处理过程,如图11所示,该通信装置400可以包括:通信单元410和处理单元420。FIG. 11 shows a schematic block diagram of a communication apparatus 400 according to an embodiment of the present application. The communication apparatus 400 may correspond to the MPTCP client described in the foregoing method 200 and method 300, or may be a chip or component applied to the MPTCP client, and , each module or unit of the communication device 400 is respectively used to execute each action or processing process performed by the MPTCP client in the above-mentioned method 200 and each embodiment of the method 300. As shown in FIG. 11 , the communication device 400 may It includes: a communication unit 410 and a processing unit 420 .
通信单元410,用于向域名***DNS服务器发送第一请求,该第一请求包括第一域名,该第一请求用于请求该第一域名对应的MPTCP服务器的至少一个互联网协议IP地址和该MPTCP服务器对应的第一标识;The communication unit 410 is configured to send a first request to a domain name system DNS server, where the first request includes a first domain name, and the first request is used to request at least one Internet Protocol IP address of the MPTCP server corresponding to the first domain name and the MPTCP server the first identifier corresponding to the server;
处理单元420,用于根据该第一信息,确定与该第一域名和该第一标识对应的该MPTCP服务器的至少一个IP地址。The processing unit 420 is configured to determine, according to the first information, at least one IP address of the MPTCP server corresponding to the first domain name and the first identifier.
本申请提供的通信装置,该通信装置通过获取域名对应的MPTCP服务器的多个IP地址,以及每一个IP地址对应的MPTCP服务器的唯一标识,可以确定MPTCP会话中同一个MPTCP服务器的多个IP地址,从而可以利用该多个IP地址建立MPTCP会话的首个子流,解决了单一IP地址的网络可达性故障和网络延时或丢包问题,可以使得MPTCP会话快速建链,提高用户体验。并且,提高了DNS查询效率,不需要多次查询才能获得MPTCP服务端对应的多个IP地址的查询效果。The communication device provided by this application can determine the multiple IP addresses of the same MPTCP server in the MPTCP session by acquiring multiple IP addresses of the MPTCP server corresponding to the domain name and the unique identifier of the MPTCP server corresponding to each IP address , so that the first sub-stream of the MPTCP session can be established by using the multiple IP addresses, which solves the network reachability failure of a single IP address and the problem of network delay or packet loss, which can quickly establish the MPTCP session and improve the user experience. In addition, the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
可选的,在本申请的一些实施例中,处理单元420,还用于根据该MPTCP服务器的至少一个IP地址,建立与该MPTCP服务器的MPTCP会话的首个子流。Optionally, in some embodiments of the present application, the processing unit 420 is further configured to establish the first substream of the MPTCP session with the MPTCP server according to at least one IP address of the MPTCP server.
可选的,在本申请的一些实施例中,处理单元420,还用于:Optionally, in some embodiments of the present application, the processing unit 420 is further configured to:
依次利用该MPTCP服务器的多个IP地址建立首个子流,最先建立成功的子流为该首个子流,该首个子流对应第一IP地址;The multiple IP addresses of the MPTCP server are used in turn to establish the first sub-flow, the first sub-flow that is successfully established is the first sub-flow, and the first sub-flow corresponds to the first IP address;
将根据第二IP地址建立成功的子流加入到该首个子流对应的MPTCP会话中,该第二IP地址为该MPTCP服务器的多个IP地址除第一IP地址之外的IP地址,该多个IP地址包括第一IP地址和第二IP地址。The sub-flow successfully established according to the second IP address is added to the MPTCP session corresponding to the first sub-flow, and the second IP address is the IP addresses of the multiple IP addresses of the MPTCP server except the first IP address. The IP addresses include a first IP address and a second IP address.
可选的,在本申请的一些实施例中,处理单元420,还用于:Optionally, in some embodiments of the present application, the processing unit 420 is further configured to:
同时利用该MPTCP服务器的多个IP地址分别建立首个子流,最先建立成功的子流为该首个子流,该首个子流对应第一IP地址;At the same time, the first sub-flow is established respectively by using multiple IP addresses of the MPTCP server, and the first sub-flow that is successfully established is the first sub-flow, and the first sub-flow corresponds to the first IP address;
将根据第二IP地址正在建立和/或已经建立成功的首个子流撤销,并将利用该第二IP地址重新建立成功的子流加入到该首个子流对应的MPTCP会话中,该第二IP地址为该MPTCP服务器的多个IP地址除该第一IP地址之外的IP地址,该多个IP地址包括第一IP地址和第二IP地址。The first sub-flow that is being established and/or has been successfully established according to the second IP address will be withdrawn, and the sub-flow that has been successfully re-established by using the second IP address will be added to the MPTCP session corresponding to the first sub-flow. The addresses are IP addresses other than the first IP address of the multiple IP addresses of the MPTCP server, and the multiple IP addresses include the first IP address and the second IP address.
可选的,在本申请的一些实施例中,处理单元420,还用于:Optionally, in some embodiments of the present application, the processing unit 420 is further configured to:
同时利用该MPTCP服务器的多个IP地址分别建立首个子流,最先建立成功的子流为第一首个子流,该第一首个子流对应第一IP地址;At the same time, the first sub-stream is established respectively by using multiple IP addresses of the MPTCP server, and the first sub-stream that is successfully established is the first and first sub-stream, and the first and first sub-stream corresponds to the first IP address;
将根据第二IP地址建立成功的第二首个子流加入到该第一首个子流对应的MPTCP会话中,该第二IP地址为该MPTCP服务器的多个IP地址除第一IP地址之外的IP地址,该多个IP地址包括第一IP地址和第二IP地址。Add the second first sub-flow successfully established according to the second IP address to the MPTCP session corresponding to the first first sub-flow, where the second IP address is the multiple IP addresses of the MPTCP server except the first IP address. IP addresses, the plurality of IP addresses include a first IP address and a second IP address.
可选的,在本申请的一些实施例中,该第一请求还用于请求第一类型的资源记录,该第一类型的资源记录包括:该第一域名对应的至少一个MPTCP服务器中每一个MPTCP服务器对应的第一标识。Optionally, in some embodiments of the present application, the first request is further used to request a resource record of a first type, where the resource record of the first type includes: each of the at least one MPTCP server corresponding to the first domain name The first identifier corresponding to the MPTCP server.
可选的,在本申请的一些实施例中,该第一标识为MPTCP服务器对应的通用唯 一识别码UUID。Optionally, in some embodiments of the present application, the first identifier is a universal unique identifier UUID corresponding to the MPTCP server.
应理解,通信装置400中各单元执行上述相应步骤的具体过程请参照前文中结合图3、图7、图8、图10中以及方法200和方法300中的相关实施例的MPTCP客户端或者宿主机A执行步骤的相关描述。为了简洁,这里不加赘述。It should be understood that, for the specific process of each unit in the communication device 400 performing the above-mentioned corresponding steps, please refer to the MPTCP client or sink in the foregoing in conjunction with FIG. 3 , FIG. 7 , FIG. 8 , FIG. A description of the steps performed by host A. For the sake of brevity, they are not repeated here.
可选的,通信单元410可以包括接收单元(模块)和发送单元(模块),用于执行前述各个方法实施例中MPTCP客户端接收信息和发送信息的步骤。可选的,通信装置400还可以包括存储单元,用于存储处理单元420和通信单元410执行的指令。处理单元420、通信单元410和存储单元通信连接,存储单元存储指令,处理单元420用于执行存储单元存储的指令,通信单元410用于在处理单元420的驱动下执行具体的信号收发。Optionally, the communication unit 410 may include a receiving unit (module) and a sending unit (module), configured to perform the steps of receiving information and sending information by the MPTCP client in each of the foregoing method embodiments. Optionally, the communication apparatus 400 may further include a storage unit for storing the instructions executed by the processing unit 420 and the communication unit 410 . The processing unit 420, the communication unit 410 and the storage unit are connected in communication, the storage unit stores instructions, the processing unit 420 is used to execute the instructions stored in the storage unit, and the communication unit 410 is used to perform specific signal sending and receiving under the driving of the processing unit 420.
应理解,通信单元410可以是收发器、输入/输出接口或接口电路等。存储单元可以是存储器。处理单元420可由处理器实现。如图12所示,通信装置500可以包括处理器510、存储器520和收发器530。It should be understood that the communication unit 410 may be a transceiver, an input/output interface or an interface circuit, or the like. The storage unit may be a memory. The processing unit 420 may be implemented by a processor. As shown in FIG. 12 , the communication apparatus 500 may include a processor 510 , a memory 520 and a transceiver 530 .
图11所示的通信装置400或图12所示的通信装置500能够实现前述方法200和方法300的各个实施例、以及图3、图7、图8、图10所示的相关实施例的MPTCP客户端或者宿主机A执行的步骤。类似的描述可以参考前述对应的方法中的描述。为避免重复,这里不再赘述。The communication apparatus 400 shown in FIG. 11 or the communication apparatus 500 shown in FIG. 12 can implement the various embodiments of the aforementioned method 200 and method 300 , as well as MPTCP of the related embodiments shown in FIGS. 3 , 7 , 8 , and 10 . The steps performed by the client or host A. Similar descriptions can refer to the descriptions in the aforementioned corresponding methods. In order to avoid repetition, details are not repeated here.
图13示出了本申请实施例的通信装置600的示意性框图,该通信装置600可以对应上述方法200和方法300中描述的DNS服务器(或者为第一DNS服务器),也可以是应用于DNS服务器(或者为第一DNS服务器)的芯片或组件,并且,该通信装置600各模块或单元分别用于执行上述方法200和方法300中各个实施例方式中的DNS服务器所执行的各动作或处理过程,如图13所示,该通信装置600可以包括:通信单元610和处理单元620。FIG. 13 shows a schematic block diagram of a communication apparatus 600 according to an embodiment of the present application. The communication apparatus 600 may correspond to the DNS server (or be the first DNS server) described in the foregoing method 200 and method 300, or may be applied to DNS A chip or component of a server (or a first DNS server), and each module or unit of the communication device 600 is respectively used to execute each action or process performed by the DNS server in each of the embodiments of the above method 200 and method 300 In the process, as shown in FIG. 13 , the communication apparatus 600 may include: a communication unit 610 and a processing unit 620 .
通信单元610:用于接收多路径传输控制协议MPTCP客户端发送的第一请求,该第一请求包括第一域名,该第一请求用于请求该第一域名对应的MPTCP服务器的至少一个互联网协议IP地址该MPTCP服务器对应的第一标识;Communication unit 610: used to receive a first request sent by a multi-path transmission control protocol MPTCP client, where the first request includes a first domain name, and the first request is used to request at least one Internet protocol of the MPTCP server corresponding to the first domain name The first identifier corresponding to the IP address of the MPTCP server;
处理单元620,用于根据第一请求,确定第一信息,该第一信息包括:该第一域名对应的MPTCP服务器的至少一个IP地址和该MPTCP服务器对应的第一标识,一个第一标识用于唯一标识一个MPTCP服务器,该第一域名对应至少一个MPTCP服务器,一个MPTCP服务器对应至少一个IP地址。The processing unit 620 is configured to determine, according to the first request, first information, where the first information includes: at least one IP address of the MPTCP server corresponding to the first domain name and a first identifier corresponding to the MPTCP server, a first identifier using In order to uniquely identify one MPTCP server, the first domain name corresponds to at least one MPTCP server, and one MPTCP server corresponds to at least one IP address.
通信单元610:还用于向该MPTCP客户端发送响应于该第一请求的第一信息。Communication unit 610: further configured to send first information in response to the first request to the MPTCP client.
本申请提供的通信装置,可以根据请求的域名确定对应的MPTCP服务器的多个IP地址,以及每一个IP地址对应的MPTCP服务器的唯一标识,从而可以确定MPTCP会话中同一个MPTCP服务器的多个IP地址。并将该信息发送给MPTCP客户端,MPTCP客户端可以利用该多个IP地址建立MPTCP会话的首个子流,解决了单一IP地址的网络可达性故障和网络延时或丢包问题,可以使得MPTCP会话快速建链,提高用户体验。并且,提高了DNS查询效率,不需要多次查询才能获得MPTCP服务端对应的多个IP地址的查询效果。The communication device provided by the present application can determine the multiple IP addresses of the corresponding MPTCP server according to the requested domain name, and the unique identifier of the MPTCP server corresponding to each IP address, so as to determine the multiple IP addresses of the same MPTCP server in the MPTCP session address. The information is sent to the MPTCP client, and the MPTCP client can use the multiple IP addresses to establish the first sub-stream of the MPTCP session, which solves the network reachability failure of a single IP address and the network delay or packet loss. MPTCP sessions can quickly establish links to improve user experience. In addition, the DNS query efficiency is improved, and the query effect of multiple IP addresses corresponding to the MPTCP server can be obtained without multiple queries.
可选的,在本申请的一些实施例中,处理单元620,还用于获取第二信息,该第 二信息包括:至少一个域名中每个域名对应的MPTCP服务器的IP地址,以及MPTCP服务器对应的第一标识,该至少一个域名包括该第一域名,一个域名对应至少一个MPTCP服务器。Optionally, in some embodiments of the present application, the processing unit 620 is further configured to acquire second information, where the second information includes: the IP address of the MPTCP server corresponding to each domain name in the at least one domain name, and the corresponding IP address of the MPTCP server. The at least one domain name includes the first domain name, and one domain name corresponds to at least one MPTCP server.
可选的,在本申请的一些实施例中,通信单元610,还用于:Optionally, in some embodiments of the present application, the communication unit 610 is further configured to:
向第二DNS服务器发送第二请求,该第二请求用于请求该第一域名对应的MPTCP服务器的至少一个IP地址以及该MPTCP服务器对应的第一标识;Send a second request to a second DNS server, where the second request is used to request at least one IP address of the MPTCP server corresponding to the first domain name and a first identifier corresponding to the MPTCP server;
接收来自于该第二DNS服务器的响应于该第二请求的第二信息。Second information is received from the second DNS server in response to the second request.
可选的,在本申请的一些实施例中,该第一请求还用于请求第一类型的资源记录,该第一类型的资源记录包括:该第一域名对应的至少一个MPTCP服务器中每一个MPTCP服务器对应的第一标识。Optionally, in some embodiments of the present application, the first request is further used to request a resource record of a first type, where the resource record of the first type includes: each of the at least one MPTCP server corresponding to the first domain name The first identifier corresponding to the MPTCP server.
可选的,在本申请的一些实施例中,该第一标识为MPTCP服务器对应的通用唯一识别码UUID。Optionally, in some embodiments of the present application, the first identifier is a universal unique identifier UUID corresponding to the MPTCP server.
应理解,通信装置600中各单元执行上述相应步骤的具体过程请参照前文中结合图3、图7、图8、图10中以及方法200和方法300中的相关实施例的DNS服务器或者第一DNS服务器执行步骤的相关描述。为了简洁,这里不加赘述。It should be understood that, for the specific process of each unit in the communication device 600 performing the above-mentioned corresponding steps, please refer to the DNS server or the first DNS server or the first example in conjunction with FIG. 3 , FIG. 7 , FIG. 8 , FIG. A description of the steps performed by the DNS server. For the sake of brevity, they are not repeated here.
可选的,通信单元610可以包括接收单元(模块)和发送单元(模块),用于执行前述各个方法实施例中DNS服务器或者第一DNS服务器接收信息和发送信息的步骤。可选的,通信装置600还可以包括存储单元,用于存储处理单元620和通信单元610执行的指令。处理单元620、通信单元610和存储单元通信连接,存储单元存储指令,处理单元620用于执行存储单元存储的指令,通信单元610用于在处理单元620的驱动下执行具体的信号收发。Optionally, the communication unit 610 may include a receiving unit (module) and a sending unit (module), configured to perform the steps of receiving and sending information by the DNS server or the first DNS server in the foregoing method embodiments. Optionally, the communication apparatus 600 may further include a storage unit for storing the instructions executed by the processing unit 620 and the communication unit 610 . The processing unit 620, the communication unit 610 and the storage unit are communicatively connected, the storage unit stores instructions, the processing unit 620 is used to execute the instructions stored in the storage unit, and the communication unit 610 is used to perform specific signal sending and receiving under the driving of the processing unit 620.
应理解,通信单元610可以是收发器、输入/输出接口或接口电路等。存储单元可以是存储器。处理单元620可由处理器实现。如图14所示,通信装置700可以包括处理器710、存储器720和收发器730。It should be understood that the communication unit 610 may be a transceiver, an input/output interface or an interface circuit, or the like. The storage unit may be a memory. The processing unit 620 may be implemented by a processor. As shown in FIG. 14 , the communication apparatus 700 may include a processor 710 , a memory 720 and a transceiver 730 .
图13所示的通信装置600或图14所示的通信装置700能够实现前述方法200和方法300的各个实施例、以及图3、图7、图8、图10所示的相关实施例的DNS服务器或者第一DNS服务器执行的步骤。类似的描述可以参考前述对应的方法中的描述。为避免重复,这里不再赘述。The communication apparatus 600 shown in FIG. 13 or the communication apparatus 700 shown in FIG. 14 can implement the various embodiments of the aforementioned method 200 and method 300, as well as the DNS of the related embodiments shown in FIGS. 3 , 7 , 8 and 10 . The steps performed by the server or the first DNS server. Similar descriptions can refer to the descriptions in the aforementioned corresponding methods. In order to avoid repetition, details are not repeated here.
MPTCP是一种利用多条路径并发传输的传输层协议。MPTCP是按顺序初始化多个连接,即:当一条通道(或者首个子流)按照三次握手的方式建立起来后,再按照三次握手的方式建立其他的子通道(或者次子流)。这些通道以三次握手建立连接和四次握手解除连接。这些通道都会绑定于同一个MPTCP会话(MPTCP session)。发送端的数据可以选择其中一条通道进行传输,或者通过调度器在两条通道上进行传输。在同一个MPTCP会话中,一个MPTCP服务器可以对应多个公网IP地址,MPTCP客户端可以利用该多个公网IP地址分别建立该MPTCP会话的多个子流或者通道,以进行数据传输。MPTCP is a transport layer protocol that utilizes multiple paths for concurrent transmission. MPTCP initializes multiple connections in sequence, that is, when a channel (or the first sub-stream) is established according to the three-way handshake, other sub-channels (or secondary sub-streams) are established according to the three-way handshake. These channels are connected with a three-way handshake and disconnected with a four-way handshake. These channels are bound to the same MPTCP session (MPTCP session). The data at the sender can select one of the channels for transmission, or transmit on two channels through the scheduler. In the same MPTCP session, one MPTCP server can correspond to multiple public network IP addresses, and the MPTCP client can use the multiple public network IP addresses to respectively establish multiple sub-streams or channels of the MPTCP session for data transmission.
支持MPTCP的服务器(或者也可以称为MPTCP服务器)位于网络地址转换(network address translation,NAT)网关之后,支持MPTCP的服务器可能无法自动感知自身网口私网IP对应的公网地址和/或端口号,目前只能依赖静态设置和管理协 议进行配置。A server supporting MPTCP (or also called an MPTCP server) is located behind a network address translation (NAT) gateway, and a server supporting MPTCP may not be able to automatically perceive the public address and/or port corresponding to the private IP of its own network port. number, currently only rely on static settings and management protocols for configuration.
相关资料“https://tools.ietf.org/html/draft-duchene-mptcp-load-balancing-01”中提出一种负载均衡(load balancer,LB)的应用场景方案,图15所示的为LB应用场景组网的示意性结构图。如图15所示的,LB设备本身会为后端的MPTCP服务器提供NAT功能,在配置负载均衡的服务器资源池时会配置代理服务的公网IP(即DNS发布该服务对应的公网IP)和资源池私网网关IP,MPTCP客户端会用该公网IP建立MPTCP会话的初始子流。The relevant information "https://tools.ietf.org/html/draft-duchene-mptcp-load-balancing-01" proposes a load balancer (LB) application scenario scheme, as shown in Figure 15. Schematic structure diagram of LB application scenario networking. As shown in Figure 15, the LB device itself will provide the NAT function for the back-end MPTCP server. When configuring the server resource pool for load balancing, the public IP of the proxy service (that is, the public IP corresponding to the service published by DNS) and The private network gateway IP of the resource pool. The MPTCP client will use the public network IP to establish the initial substream of the MPTCP session.
在图15所示的架构中,还需要为每个后端MPTCP服务器分配一个公网IP地址(例如图15中的ADDR2)。该公网IP地址不会在DNS中宣布,而是由MPTCP服务器通过建立首子流(初始子流)过程中的ADD_ADDR选项发布。并且后端MPTCP服务器的这个公网地址,不能用于建立MPTCP会话的初始子流,否则建立MPTCP会话后,MPTCP服务器通过ADD_ADDR选项通告私网地址(例如图15中ADDR1)给MPTCP客户端,MPTCP客户端无法访问连接私网地址ADDR1。In the architecture shown in FIG. 15 , it is also necessary to allocate a public IP address (for example, ADDR2 in FIG. 15 ) to each backend MPTCP server. The public IP address will not be announced in DNS, but will be announced by the MPTCP server through the ADD_ADDR option in the process of establishing the first substream (initial substream). And the public network address of the back-end MPTCP server cannot be used to establish the initial substream of the MPTCP session. Otherwise, after the MPTCP session is established, the MPTCP server announces the private network address (such as ADDR1 in Figure 15) to the MPTCP client through the ADD_ADDR option. The client cannot access the connection private network address ADDR1.
可见,目前NAT网关(例如,图15中的LB设备)主要通过静态配置的方式为后端的MPTCP服务器配置公网地址和对应的私网地址,灵活度较低。在NAT网关为后端多个MPTCP服务器提供NAT功能时,需要为每个MPTCP服务器静态配置或利用管理协议配置私网对应的公网地址,容易出错,运维的成本较高。并且,处于私网内的MPTCP服务器无法感知自身私网IP地址对应的公网IP地址和/或端口号,MPTCP客户端不能访问MPTCP服务器发送的私网IP地址,无法建立新的MPTCP会话子流。It can be seen that at present, the NAT gateway (for example, the LB device in FIG. 15 ) mainly configures the public network address and the corresponding private network address for the back-end MPTCP server through static configuration, which is less flexible. When the NAT gateway provides the NAT function for multiple MPTCP servers at the back end, it is necessary to statically configure each MPTCP server or configure the public network address corresponding to the private network by using the management protocol, which is prone to errors and high operation and maintenance costs. In addition, the MPTCP server in the private network cannot perceive the public network IP address and/or port number corresponding to its own private network IP address, the MPTCP client cannot access the private network IP address sent by the MPTCP server, and cannot establish a new MPTCP session substream. .
有鉴于此,本申请还提供了一种确定MPTCP服务器公网地址的方法,通过动态主机配置协议(dynamic host configuration protocol,DHCP)服务器将为后端的MPTCP服务配置的私网地址和对应的公网地址和/或端口号发送给后端的MPTCP服务器。从而让MPTCP服务器能明确感知其各个私网IP对应的公网IP和/或端口信息,以便MPTCP服务器可以向MPTCP客户端通知私网IP对应的公网IP和/或端口信息,从而可以正确的建立新的子流。In view of this, the present application also provides a method for determining the public network address of the MPTCP server, through the dynamic host configuration protocol (dynamic host configuration protocol, DHCP) server will configure the private network address of the back-end MPTCP service and the corresponding public network The address and/or port number is sent to the backend MPTCP server. In this way, the MPTCP server can clearly perceive the public network IP and/or port information corresponding to each private network IP, so that the MPTCP server can notify the MPTCP client of the public network IP and/or port information corresponding to the private network IP, so that it can correctly Create a new subflow.
图16是一例适用于本申请实施例的无线通信***的架构示意图。如图16所示的,该***包括:MPTCP客户端、MPTCP服务器、一个或者多个DHCP服务器,不同的DHCP服务器可以通过不同的网络接口与MPTCP服务器之间传输信息,例如通过无线保真(wireless-fidelity,Wifi)、蜂窝网络接口(cellular)或者蓝牙等。MPTCP客户端可以与MPTCP服务器建立MPTCP会话的首子流和次子流等。FIG. 16 is a schematic structural diagram of an example of a wireless communication system applicable to an embodiment of the present application. As shown in FIG. 16 , the system includes: MPTCP client, MPTCP server, and one or more DHCP servers. Different DHCP servers can transmit information between MPTCP servers through different network interfaces, such as wireless fidelity (wireless fidelity) -fidelity, Wifi), cellular network interface (cellular) or Bluetooth, etc. The MPTCP client can establish the first substream and the second substream of the MPTCP session with the MPTCP server.
可选的,在图16所示架构中,还可以包括DNS服务器,MPTCP客户端(例如为终端设备)需要访问应用时,可以向DNS服务器查询需要访问的域名的对应的MPTCP服务器的IP地址,在通过DNS服务器获取该域名对应的服务器的IP地址之后,就可以根据该IP地址与MPTCP服务器建立MPTCP会话的首子流。DHCP服务器可以向MPTCP服务器发送MPTCP服务器的私网地址和对应的公网地址。Optionally, in the architecture shown in Figure 16, a DNS server can also be included, and when an MPTCP client (for example, a terminal device) needs to access the application, it can query the DNS server for the IP address of the corresponding MPTCP server of the domain name that needs to be accessed, After obtaining the IP address of the server corresponding to the domain name through the DNS server, the first substream of the MPTCP session can be established with the MPTCP server according to the IP address. The DHCP server can send the MPTCP server's private network address and the corresponding public network address to the MPTCP server.
应理解,在本申请实施例中,MPTCP客户端可以为终端设备,MPTCP服务器存储有MPTCP客户端需要访问的应用数据,MPTCP服务器也可以称为应用服务器,MPTCP客户端可以通过与MPTCP服务器建立MPTCP会话获取需要的数据。MPTCP服务器的IP地址可以理解为MPTCP服务器对外发布的多个公网IP地址,这些公网IP 地址可以是支持MPTCP的服务器本地的网口IP,也可以是MPTCP的服务器对应网络地址转换(network address translation,NAT)设备上的公网IP地址,NAT设备为该支持MPTCP的服务器提供NAT网关功能。这些公网IP地址可以包括IPV4地址和IPV6地址。It should be understood that, in this embodiment of the present application, the MPTCP client may be a terminal device, the MPTCP server stores application data that the MPTCP client needs to access, the MPTCP server may also be called an application server, and the MPTCP client can establish MPTCP with the MPTCP server. The session gets the data it needs. The IP address of the MPTCP server can be understood as multiple public network IP addresses released by the MPTCP server. These public network IP addresses can be the local network port IP of the server that supports MPTCP, or the network address translation (network address) of the MPTCP server. translation, NAT) the public network IP address on the device, and the NAT device provides the NAT gateway function for the server supporting MPTCP. These public IP addresses may include IPV4 addresses and IPV6 addresses.
应理解,在本申请实施例中,DHCP服务器可以包括:支持DHCP代理能力的网关设备、支持DHCP服务器功能的NAT网关设备、或支持DHCP服务器和NAT功能的负载均衡器设备等。DHCP服务器可以为MPTCP服务器提供地址分配和续租服务。例如,在本申请实施例中,DHCP服务器可以是具有NAT功能的客户端设备(customer premise equipment,CPE)。It should be understood that, in this embodiment of the present application, the DHCP server may include: a gateway device supporting the DHCP proxy capability, a NAT gateway device supporting the DHCP server function, or a load balancer device supporting the DHCP server and NAT functions, and the like. The DHCP server can provide address assignment and lease renewal services for the MPTCP server. For example, in this embodiment of the present application, the DHCP server may be a customer premises equipment (customer premise equipment, CPE) with a NAT function.
图17是本申请一个实施例的确定MPTCP服务器公网地址的方法800的示意流程图。该方法800可以应用在图16所示的场景中,当然也可以应用在其他通信场景中,本申请实施例在此不作限制。FIG. 17 is a schematic flowchart of a method 800 for determining a public network address of an MPTCP server according to an embodiment of the present application. The method 800 can be applied to the scenario shown in FIG. 16 , and of course can also be applied to other communication scenarios, which is not limited in this embodiment of the present application.
下文的描述中,以MPTCP客户端、DHCP服务器以及MPTCP服务器为执行主体说明书本申请提供的方法。作为示例而非限定,执行方法的执行主体也可以是应用于DNS服务器和MPTCP客户端的芯片。In the following description, the method provided by the present application will be described with the MPTCP client, the DHCP server and the MPTCP server as the executive bodies. As an example but not a limitation, the execution subject of the execution method may also be a chip applied to the DNS server and the MPTCP client.
应理解,在本申请实施例中,DHCP服务器可以为DHCPv4服务器或者DHCPv6服务器。DHCPv4服务器用于分配IPv4地址,DHCPv6服务器用于分配IPv6地址。It should be understood that, in this embodiment of the present application, the DHCP server may be a DHCPv4 server or a DHCPv6 server. The DHCPv4 server is used to assign IPv4 addresses, and the DHCPv6 server is used to assign IPv6 addresses.
如图17所示,图17中示出的方法800可以包括S810至S820。下面结合图17详细说明方法800中的各个步骤。As shown in FIG. 17 , the method 800 shown in FIG. 17 may include S810 to S820. Each step in the method 800 will be described in detail below with reference to FIG. 17 .
S810,第一网关确定MPTCP服务器的至少一个私网地址中每一个私网地址对应的公网地址。其中,该公网地址用于MPTCP服务器和MPTCP客户端建立MPTCP会话的首个子流之后的子流。S810: The first gateway determines a public network address corresponding to each private network address in the at least one private network address of the MPTCP server. Wherein, the public network address is used for the substreams after the first substream of the MPTCP session established by the MPTCP server and the MPTCP client.
可选的,在本申请实施例中,作为另外一种可能的实现方式,第一网关还可以确定MPTCP服务器的至少一个私网地址中每一个私网地址对应的端口号,即S810还可以为:第一网关确定MPTCP服务器的至少一个私网地址中每一个私网地址对应的公网地址和端口号。Optionally, in this embodiment of the present application, as another possible implementation manner, the first gateway may also determine the port number corresponding to each private network address in the at least one private network address of the MPTCP server, that is, S810 may also be: : The first gateway determines the public network address and port number corresponding to each private network address of the at least one private network address of the MPTCP server.
S820,第一网关向该MPTCP服务器发送MPTCP服务器的至少一个私网地址中每一个私网地址对应的公网地址。S820: The first gateway sends the MPTCP server a public network address corresponding to each private network address in the at least one private network address of the MPTCP server.
可选的,在本申请实施例中,作为另外一种可能的实现方式,第一网关还可以向该MPTCP服务器发MPTCP服务器的至少一个私网地址中每一个私网地址对应的端口号,即S820还可以为:第一网关向该MPTCP服务器发送该MPTCP服务器的至少一个私网地址中每一个私网地址对应的公网地址和端口号。Optionally, in this embodiment of the present application, as another possible implementation manner, the first gateway may also send to the MPTCP server the port number corresponding to each private network address in the at least one private network address of the MPTCP server, that is, S820 may also be: the first gateway sends, to the MPTCP server, the public network address and port number corresponding to each private network address of the at least one private network address of the MPTCP server.
在S810中,第一网关(下文的描述中,以第一网关为DHCP服务器为例进行)可以确定或者获取MPTCP服务器(也可以称为DHCP客户端)的至少一个私网IP地址中每个私网IP地址对应的公网IP地址。In S810, the first gateway (in the following description, the first gateway is taken as an example of a DHCP server) may determine or obtain each private network IP address of at least one private network IP address of the MPTCP server (also referred to as a DHCP client). The public IP address corresponding to the network IP address.
可选的,作为另外一种可能的实现方式,DHCP服务器还获取MPTCP服务器的至少一个私网IP地址中每个私网IP地址对应的公网IP地址和端口号。Optionally, as another possible implementation manner, the DHCP server further acquires the public network IP address and port number corresponding to each private network IP address in the at least one private network IP address of the MPTCP server.
例如,DHCP服务器配置或作为DHCP的代理设备从真正的DHCP服务器的地址池中获取对应的对外提供公网服务的弹性IP地址(Elastic IP,EIP),或者,获取对 应的目的网络地址转换(destination network address translation,DNAT)的公网IP和端口号,并将该公网IP和域名的对应关系,或者,将该公网IP、端口号与域名的对应关系的记录配置给DNS服务器供MPTCP客户端进行查询。DHCP服务器上可以配置公网IP地址池(IP pool)以及对应的私网IP地址池。DHCP服务器可以将通过查询该公网IP地址池(IP pool)以及对应的私网IP地址池,可以确定需要分配给后端的MPTCP服务的私网地址对应的公网地址和/端口号。For example, the DHCP server configuration or as a DHCP proxy device obtains the corresponding Elastic IP address (Elastic IP, EIP) that provides public network services from the address pool of the real DHCP server, or obtains the corresponding destination network address translation (destination). network address translation, DNAT) public network IP and port number, and configure the correspondence between the public network IP and the domain name, or configure the record of the correspondence between the public network IP, port number and domain name to the DNS server for MPTCP clients end to query. The public network IP address pool (IP pool) and the corresponding private network IP address pool can be configured on the DHCP server. The DHCP server can determine the public network address and/or port number corresponding to the private network address that needs to be allocated to the back-end MPTCP service by querying the public network IP address pool (IP pool) and the corresponding private network IP address pool.
DNAT的作用是将一组本地内部的地址(私网地址)映射到一组全球地址(公网地址)。通常来说,公网地址的数量比起私网地址数量来要少得多,因此,可以利用公网IP地址和端口号联合映射出一个私网IP地址。The role of DNAT is to map a set of local internal addresses (private network addresses) to a set of global addresses (public network addresses). Generally speaking, the number of public network addresses is much less than the number of private network addresses. Therefore, you can use the public network IP address and port number to jointly map a private network IP address.
可选的,在本申请实施例中,MPTCP服务器可以通过不同的网络连接不同DHCP服务器。例如,MPTCP服务器可以通过网卡1或者蜂窝网络接口连接互联网服务提供商(internet service provider,ISP)的网络上的CPE设备,通过Wifi或网卡2连接ISP2的CPE2设备。CPE1设备和CPE2设备均提供DHCP服务器和NAT功能。该MPTCP服务器可以从这些CPE设备上获取不同的私网IP地址和对应不同的EIP,或DNAT的公网IP和/或端口信息。Optionally, in this embodiment of the present application, the MPTCP server may connect to different DHCP servers through different networks. For example, the MPTCP server can connect to the CPE device on the network of an Internet service provider (internet service provider, ISP) through the network card 1 or the cellular network interface, and connect the CPE2 device of the ISP2 through Wifi or the network card 2. Both CPE1 and CPE2 provide DHCP server and NAT functions. The MPTCP server can obtain different private network IP addresses and corresponding different EIPs, or public network IP and/or port information of DNAT from these CPE devices.
在本申请实施例中,该MPTCP服务器的对应的一个或者多个公网地址(公网IP地址),或者公网地址和端口号用于MPTCP服务器和MPTCP客户端建立一个MPTCP会话中的除过首个子流之外的其它子流(或者也可以称为次子流)。In this embodiment of the present application, one or more public network addresses (public network IP addresses) corresponding to the MPTCP server, or the public network address and port number are used for the division between the MPTCP server and the MPTCP client to establish an MPTCP session. Substreams other than the first substream (or may also be referred to as secondary substreams).
应理解,在本申请实施例中,如果NAT为EIP模式,即一个公网IP地址对应一个私网IP地址,也就是利用一个公网IP地址可以映射出一个私网IP地址的情况下,DHCP服务器可以确定或者获取MPTCP服务器的至少一个私网IP地址中每一个IP私网地址对应的公网IP地址,并不需要确定DHCP服务器上的端口号。It should be understood that in this embodiment of the present application, if the NAT is in the EIP mode, that is, a public network IP address corresponds to a private network IP address, that is, a public network IP address can be used to map a private network IP address, the DHCP The server can determine or obtain the public network IP address corresponding to each IP private network address in the at least one private network IP address of the MPTCP server, and does not need to determine the port number on the DHCP server.
在本申请实施例中,如果NAT为DNAT模式,即在公网IP地址的个数少于私网IP地址个数,利用一个公网IP地址不可以映射出一个私网IP地址的情况下,可以利用公网IP地址和端口号联合映射出一个私网IP地址,DHCP服务器需要确定或者获取MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和端口号。采用DNAT的方式,可以节约公网IP地址的数量,一个公网IP地址可以对应多个私网IP地址。In the embodiment of the present application, if the NAT is in the DNAT mode, that is, when the number of public network IP addresses is less than the number of private network IP addresses, and a public network IP address cannot be used to map a private network IP address, The public IP address and port number can be used to jointly map a private IP address. The DHCP server needs to determine or obtain the public IP address and port number corresponding to each private IP address in at least one private IP address of the MPTCP server. Using the DNAT method can save the number of public network IP addresses, and one public network IP address can correspond to multiple private network IP addresses.
在S820中,DHCP服务器可以向MPTCP服务器发送:MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址。In S820, the DHCP server may send to the MPTCP server: the public network IP address corresponding to each private network IP address in the at least one private network IP address of the MPTCP server.
可选的,作为另外一种可能的实现方式,DHCP服务器可以向MPTCP服务器发送MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和端口号。Optionally, as another possible implementation manner, the DHCP server may send the public network IP address and port number corresponding to each private network IP address of the at least one private network IP address of the MPTCP server to the MPTCP server.
在MPTCP服务器获取DHCP服务器发送的公网IP地址,或者公网IP地址和端口号之后,缓存公网IP和/或端口号与私网IP地址之间的对应关系记录。例如,该对应关系记录可以利用私网IP地址为键值,MPTCP服务器本地如果有旧记录就覆盖更新(例如,DHCP服务器的地址池对应的对外提供公网服务的EIP或DNAT的公网IP和/或端口配置有变更),便可以根据该公网IP地址,或者,该公网IP地址和端口号,建立一个MPTCP会话中的除过首个子流之外的其它子流。After the MPTCP server obtains the public network IP address or the public network IP address and port number sent by the DHCP server, it caches a record of the correspondence between the public network IP and/or port number and the private network IP address. For example, the correspondence record can use the private network IP address as the key value, and the MPTCP server will overwrite and update if there is an old record locally (for example, the public network IP and the public network IP and the DNAT of the EIP or DNAT corresponding to the address pool of the DHCP server that provide public network services to the outside world). / or the port configuration is changed), other sub-streams other than the first sub-stream in an MPTCP session can be established according to the public network IP address, or the public network IP address and port number.
本申请提供的确定MPTCP服务器公网地址的方法,通过DHCP服务器将为后端的MPTCP服务配置的私网地址对应的公网地址、或者公网地址和端口信息发送给后端的MPTCP服务器。从而让MPTCP服务器能明确感知其各个私网IP对应的公网IP和/或端口信息,以便MPTCP服务器可以向MPTCP客户端通知私网IP对应的公网IP、或者私网IP对应公网IP和端口信息,从而可以正确建立MPTCP会话的新的子流,保证了MPTCP会话可以顺利的建立子流,提高了MPTCP会话的效率。并且,减少了MPTCP服务器的本地配置,也不需要MPTCP服务器本地配置公网地址,避免了公网地址直接暴露在公网上从而影响其安全性。The method for determining the public network address of the MPTCP server provided by the present application sends the public network address corresponding to the private network address configured for the back-end MPTCP service by the DHCP server, or the public network address and port information to the back-end MPTCP server. In this way, the MPTCP server can clearly perceive the public network IP and/or port information corresponding to each private network IP, so that the MPTCP server can notify the MPTCP client of the public network IP corresponding to the private network IP, or the private network IP corresponding to the public network IP and/or port information. port information, so that a new sub-flow of the MPTCP session can be correctly established, which ensures that the MPTCP session can successfully establish the sub-flow and improves the efficiency of the MPTCP session. In addition, the local configuration of the MPTCP server is reduced, and the local configuration of the public network address of the MPTCP server is not required, which prevents the public network address from being directly exposed on the public network and thus affects its security.
可选的,在本申请一些可能的实现方式中,以图18为例,在图17所示的方法步骤的基础上,该方法800中还可以包括S809,该方法800中的S820可以具体为S821。Optionally, in some possible implementation manners of the present application, taking FIG. 18 as an example, on the basis of the method steps shown in FIG. 17 , the method 800 may further include S809, and the S820 in the method 800 may be specifically: S821.
S809,MPTCP服务器向DHCP服务器(第一网关)发送地址请求报文。S809, the MPTCP server sends an address request message to the DHCP server (first gateway).
S821,DHCP服务器向该MPTCP服务器发送响应于该地址请求报文的第一应答报文,该第一应答报文包括:MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址。S821, the DHCP server sends a first response message in response to the address request message to the MPTCP server, where the first response message includes: the public IP address corresponding to each private network IP address in the at least one private network IP address of the MPTCP server network IP address.
可选的,作为另外一种可能的实现方式,该第一应答报文包括:MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和端口号。Optionally, as another possible implementation manner, the first response message includes: a public network IP address and a port number corresponding to each private network IP address in the at least one private network IP address of the MPTCP server.
图18中所示的S810的描述可以参考上述的图17中对这个步骤的描述,为了简洁,这里不再赘述。For the description of S810 shown in FIG. 18 , reference may be made to the description of this step in the above-mentioned FIG. 17 , which is not repeated here for brevity.
在本申请实施例中,MPTCP服务器可以在发现DHCP服务器并向DHCP服务器请求IP地址的过程获取该MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址,或者,MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和端口号。在S809中,在MPTCP服务发现该DHCP服务器之后,MPTCP服务器可以向DHCP服务器发送地址请求报文(例如为DHCP Request报文)用于请求DHCP服务器分配公网IP地址。In the embodiment of the present application, the MPTCP server may obtain the public IP address corresponding to each private IP address in the at least one private IP address of the MPTCP server in the process of discovering the DHCP server and requesting the IP address from the DHCP server, or, The public IP address and port number corresponding to each private IP address of the at least one private IP address of the MPTCP server. In S809, after the MPTCP service discovers the DHCP server, the MPTCP server may send an address request message (for example, a DHCP Request message) to the DHCP server to request the DHCP server to allocate a public IP address.
可选的,该地址请求报文可以包括DHCP服务器分配的MPTCP服务器的私网IP地址。DHCP服务器接收到该地址请求报文,可以根据地址请求报文携带的私网IP地址,从地址池中确定(或者分配)与私网IP地址对应的公网IP地址,例如EIP,或者,从地址池中确定与私网IP地址对应的公网IP地址和端口号,例如为DNAT的公网IP和端口信息。分配规则可以是动态分配,也可以是静态预置规则分配。并且,DHCP服务器可以本地生成并缓存私网IP地址和对应的公网IP地址的NAT规则映射表,或者,本地生成并缓存私网IP地址和对应的公网IP地址和端口号的NAT规则映射表。Optionally, the address request message may include the private network IP address of the MPTCP server allocated by the DHCP server. After receiving the address request message, the DHCP server can determine (or assign) the public network IP address corresponding to the private network IP address from the address pool according to the private network IP address carried in the address request message, such as EIP, or, from the address pool. The public IP address and port number corresponding to the private IP address are determined in the address pool, for example, the public IP and port information of DNAT. The allocation rules can be dynamic allocation or static preset rule allocation. In addition, the DHCP server can locally generate and cache the NAT rule mapping table between the private network IP address and the corresponding public network IP address, or locally generate and cache the NAT rule mapping table between the private network IP address and the corresponding public network IP address and port number. surface.
在S821中,DHCP服务器向该MPTCP服务器发送响应于该地址请求报文的第一应答报文(例如为DHCP Ack报文),第一应答报文包括:MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址,或者,第一应答报文包括:MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和端口号。MPTCP服务器收到该第一应答报文后,解析第一应答报文,将私网IP地址对应的公网IP地址,或者,将私网IP地址对应的公网IP地址和端口号绑定到网口上,并本地缓存私网IP地址对应的公网IP地址的对应关系,或者本地缓存私网IP地址对应的公网IP地址和端口号的对应关系。In S821, the DHCP server sends a first response message (for example, a DHCP Ack message) in response to the address request message to the MPTCP server, and the first response message includes: at least one private network IP address of the MPTCP server The public network IP address corresponding to each private network IP address, or the first response packet includes: the public network IP address and port number corresponding to each private network IP address in the at least one private network IP address of the MPTCP server. After receiving the first response packet, the MPTCP server parses the first response packet, and binds the public network IP address corresponding to the private network IP address, or binds the public network IP address and port number corresponding to the private network IP address to the On the network port, the corresponding relationship between the public network IP address corresponding to the private network IP address, or the corresponding relationship between the public network IP address and the port number corresponding to the private network IP address is cached locally.
MPTCP服务器在IP地址请求阶段获取上述的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址,或者,MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和端口号,可以保证MPTCP服务器正确的获取私网IP地址与对应的公网IP地址之间的对应关系,或者私网IP地址与对应的公网IP地址和端口号的对应关系,提高MPTCP服务器明确感知其各个私网IP对应的公网IP和/或端口信息的效率。In the IP address request stage, the MPTCP server obtains the public IP address corresponding to each private network IP address in the above at least one private network IP address, or, the MPTCP server obtains the public network IP address corresponding to each private network IP address in the at least one private network IP address of the MPTCP server The public network IP address and port number can ensure that the MPTCP server correctly obtains the correspondence between the private network IP address and the corresponding public network IP address, or the correspondence between the private network IP address and the corresponding public network IP address and port number , to improve the efficiency of the MPTCP server to clearly perceive the public network IP and/or port information corresponding to each of its private network IPs.
可选的,在本申请另一些可能的实现方式中,以图19为例,在图17所示的方法步骤的基础上,该方法800还可以包括S808,该方法800中的S820可以具体为S822。Optionally, in some other possible implementation manners of the present application, taking FIG. 19 as an example, on the basis of the method steps shown in FIG. 17 , the method 800 may further include S808 , and S820 in the method 800 may be specifically: S822.
S808,MPTCP服务器向该DHCP服务器发送地址续租请求报文。S808, the MPTCP server sends an address lease renewal request message to the DHCP server.
S822,该DHCP服务器向该MPTCP服务器发送响应于该地址续租请求报文的第二应答报文,该第二应答报文包括:MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址。S822, the DHCP server sends a second response message in response to the address renewal request message to the MPTCP server, where the second response message includes: each private network IP address of at least one private network IP address of the MPTCP server The corresponding public IP address.
可选的,作为另外一种可能的实现方式,该第二应答报文包括:MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和端口号。Optionally, as another possible implementation manner, the second response message includes: a public network IP address and a port number corresponding to each private network IP address of the at least one private network IP address of the MPTCP server.
图19中所示的S810的描述可以参考上述的图17中对这个步骤的描述,为了简洁,这里不再赘述。For the description of S810 shown in FIG. 19 , reference may be made to the description of this step in the above-mentioned FIG. 17 , which is not repeated here for brevity.
在本申请实施例中,除了上述的在IP地址请求阶段获取MPTCP服务器各个私网IP对应的公网IP和/或端口信息之外,MPTCP服务器还可以在IP地址续租阶段获取各个私网IP对应的公网IP和/或端口信息。In this embodiment of the present application, in addition to obtaining the public IP and/or port information corresponding to each private IP of the MPTCP server in the IP address request stage, the MPTCP server can also obtain each private IP in the IP address renewal stage Corresponding public IP and/or port information.
MPTCP服务器申请到的IP地址一般情况下都会一个租用的时间长度(租期),在使用租期超过50%时,MPTCP服务器会以单播形式向DHCP服务器发送DHCP请求(DHCP Request)报文来续租IP地址。如果MPTCP服务器成功收到DHCP服务器发送的DHCP确认(DHCP ACK)报文,则按相应时间延长IP地址租期;如果MPTCP服务器没有收到DHCP服务器发送的DHCP ACK报文,则MPTCP服务器继续使用这个IP地址。The IP address applied by the MPTCP server generally has a lease time length (lease period). When the lease period exceeds 50%, the MPTCP server will send a DHCP request (DHCP Request) message to the DHCP server in the form of unicast. Renew the IP address. If the MPTCP server successfully receives the DHCP acknowledgment (DHCP ACK) message sent by the DHCP server, it will extend the IP address lease period according to the corresponding time; if the MPTCP server does not receive the DHCP ACK message sent by the DHCP server, the MPTCP server will continue to use this IP address.
在使用租期超过87.5%时,MPTCP服务器会以广播形式向DHCP服务器发送DHCP请求(DHCP Request)报文来续租IP地址。如果MPTCP服务器成功收到DHCP服务器发送的DHCP确认(DHCP ACK)报文,则按相应时间延长IP地址租期;如果MPTCP服务器没有收到DHCP服务器发送的DHCP ACK报文,则MPTCP服务器继续使用这个IP地址,直到IP地址使用租期到期时,MPTCP服务器才会向DHCP服务器发送DHCP释放(Release)报文来释放这个IP地址,并开始新的IP地址申请过程。When the lease period exceeds 87.5%, the MPTCP server will send a DHCP request (DHCP Request) message to the DHCP server in the form of broadcast to renew the IP address. If the MPTCP server successfully receives the DHCP acknowledgment (DHCP ACK) message sent by the DHCP server, it will extend the IP address lease period according to the corresponding time; if the MPTCP server does not receive the DHCP ACK message sent by the DHCP server, the MPTCP server will continue to use this IP address, until the IP address lease expires, the MPTCP server will send a DHCP Release (Release) message to the DHCP server to release the IP address and start a new IP address application process.
以DHCP服务器为DHCPv6服务器为例进行说明。DHCPv6服务器为DHCPv6客户端(例如可以为MPTCP服务器)分配的地址是有租约的,租约由生命期(包括地址的优先生命期和有效生命期构成)和续租时间点(身份联盟(identity association,IA)的T1时刻、T2时刻)构成。其中,IA是使得服务器和客户端能够识别、分组和管理一系列相关IPv6地址的结构,每个IA包括一个IAID和相关联的配置信息。在地址有效生命期结束后,DHCPv6客户端不能再使用该地址。在有效生命期到达之前,如果DHCPv6客户端希望继续使用该地址,则需要更新地址租约。The DHCP server is used as the DHCPv6 server as an example for description. The address allocated by the DHCPv6 server to the DHCPv6 client (for example, the MPTCP server) has a lease, and the lease consists of the lifetime (including the priority lifetime and the valid lifetime of the address) and the renewal time point (identity association (identity association, T1 time and T2 time) of IA). Among them, IA is a structure that enables servers and clients to identify, group and manage a series of related IPv6 addresses, and each IA includes an IAID and associated configuration information. After the valid lifetime of the address expires, the DHCPv6 client can no longer use the address. If the DHCPv6 client wishes to continue using the address before the expiration date, it needs to renew the address lease.
DHCPv6客户端为了延长其与IA关联的地址的有效生命期和优先生命期,在T1时刻,发送包含IA选项的续租(Renew)报文给DHCPv6服务器,其中IA选项中携带需要续租的IA地址选项。如果DHCPv6客户端一直没有收到T1时刻续租报文的回应报文,那么在T2时刻,DHCPv6客户端通过提醒(Rebind)报文向DHCPv6服务器继续续租地址。In order to extend the valid life and priority life of the address associated with the IA, the DHCPv6 client sends a Renew message containing the IA option to the DHCPv6 server at time T1, where the IA option carries the IA that needs to be renewed. address options. If the DHCPv6 client has never received a response message for the lease renewal message at time T1, then at time T2, the DHCPv6 client continues to renew the lease address to the DHCPv6 server through a Rebind message.
图20所示为DHCPv6客户端和DHCPv6服务器在T1时刻地址租约更新过程的示意图。如图20所示的,包括步骤1号和步骤2:步骤1:DHCPv6客户端在T1时刻(推荐值为优先生命期的1/2)发送Renew报文进行地址租约更新请求。步骤2:DHCPv6服务器回应Reply报文。FIG. 20 is a schematic diagram showing the address lease renewal process of the DHCPv6 client and the DHCPv6 server at time T1. As shown in Figure 20, it includes Step 1 and Step 2: Step 1: The DHCPv6 client sends a Renew message at time T1 (the recommended value is 1/2 of the priority lifetime) to perform an address lease renewal request. Step 2: The DHCPv6 server responds with a Reply message.
具体的,在步骤2中,如果DHCPv6客户端可以继续使用该地址,则DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址租约。如果该地址不可以再分配给该DHCPv6客户端,则DHCPv6服务器回应续约失败的Reply报文,通知DHCPv6客户端不能获得新的租约。Specifically, in step 2, if the DHCPv6 client can continue to use the address, the DHCPv6 server responds with a Reply message of successful contract renewal, notifying the DHCPv6 client that the address lease has been successfully renewed. If the address can no longer be assigned to the DHCPv6 client, the DHCPv6 server responds with a Reply message for the failure to renew the lease, notifying the DHCPv6 client that the new lease cannot be obtained.
图21所示为DHCPv6客户端和DHCPv6服务器在T2时刻地址租约更新过程的示意图。如图21所示的,包括步骤1至步骤3:FIG. 21 is a schematic diagram showing the address lease renewal process of the DHCPv6 client and the DHCPv6 server at time T2. As shown in Figure 21, including steps 1 to 3:
步骤1:DHCPv6客户端在T1时刻发送Renew请求更新租约,但是没有收到DHCPv6服务器的回应报文。Step 1: The DHCPv6 client sends a Renew request to renew the lease at time T1, but does not receive a response message from the DHCPv6 server.
步骤2:DHCPv6客户端在T2时刻(推荐值为优先生命期的0.8倍),向所有DHCPv6服务器组播发送Rebind报文请求更新租约。Step 2: At time T2 (recommended value is 0.8 times the priority lifetime), the DHCPv6 client multicasts a Rebind message to all DHCPv6 servers to request to renew the lease.
步骤3:DHCPv6服务器回应Reply报文。Step 3: The DHCPv6 server responds with a Reply message.
在步骤3中,如果DHCPv6客户端可以继续使用该地址,则DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址/前缀租约。如果该地址不可以再分配给该DHCPv6客户端,则DHCPv6服务器回应续约失败的Reply报文,通知DHCPv6客户端不能获得新的租约。In step 3, if the DHCPv6 client can continue to use the address, the DHCPv6 server responds with a Reply message of successful renewal, notifying the DHCPv6 client that the address/prefix lease has been successfully renewed. If the address can no longer be assigned to the DHCPv6 client, the DHCPv6 server responds with a Reply message for the failure to renew the lease, notifying the DHCPv6 client that the new lease cannot be obtained.
因此,在S808中,在IP地址续租阶段,MPTCP服务器可以向该DHCP服务器发送的地址续租请求报文(例如为DHCP Request报文、Renew报文或者Rebind报文)。例如,可以在使用租期超过50%时(例如为T1时刻)或者超过80%时(例如为T2时刻)向DHCPv6服务器发送DHCP Renew报文或者Rebind报文,该Renew报文或者Rebind报文用于进行地址租约更新请求。可选的,该地址续租请求报文可以包括DHCPv6服务器分配的私网IP地址。DHCPv6服务器接收到该地址续租请求报文,确定MPTCP服务器是否可以继续使用之前分配的私网IP地址对应的公网IP地址,例如EIP,或者,该私网IP地址对应的公网IP地址和端口号。Therefore, in S808, in the IP address lease renewal stage, the MPTCP server may send an address lease renewal request message (for example, a DHCP Request message, a Renew message, or a Rebind message) to the DHCP server. For example, when the usage lease period exceeds 50% (for example, at time T1) or exceeds 80% (for example, at time T2), a DHCP Renew or Rebind message may be sent to the DHCPv6 server. The Renew or Rebind message uses for address lease renewal requests. Optionally, the address renewal request message may include the private network IP address allocated by the DHCPv6 server. The DHCPv6 server receives the address renewal request message, and determines whether the MPTCP server can continue to use the public network IP address corresponding to the previously allocated private network IP address, such as EIP, or, the public network IP address corresponding to the private network IP address and The port number.
在S822中,该DHCP服务器(例如为DHCPv6服务器)向该MPTCP服务器发送响应于该地址续租请求报文的第二应答报文,例如,第二应答报文可以是DHCP Ack报文或者为Reply报文。可选的。该第二应答报文用于通知MPTCP服务器已经成功更新地址租约,或者,用于通知MPTCP服务器已经成功更新地址/前缀租约。In S822, the DHCP server (for example, a DHCPv6 server) sends a second response message in response to the address renewal request message to the MPTCP server, for example, the second response message may be a DHCP Ack message or a Reply message message. optional. The second response message is used to notify the MPTCP server that the address lease has been successfully updated, or is used to notify the MPTCP server that the address/prefix lease has been successfully updated.
可选的,该第二应答报文包括:MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址,或者,MPTCP服务器的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和端口号。MPTCP服务器收到该第二应答报文后, 解析第二应答报文,将与私网IP地址对应的公网IP地址,或者,将私网IP地址对应的公网IP地址和端口号绑定到网口上,并本地缓存私网IP地址对应的公网IP地址的对应关系,或者本地缓存私网IP地址对应的公网IP地址和端口号的对应关系。Optionally, the second response packet includes: a public IP address corresponding to each private network IP address in the at least one private network IP address of the MPTCP server, or, each private network IP address in the at least one private network IP address of the MPTCP server. The public IP address and port number corresponding to the network IP address. After receiving the second response packet, the MPTCP server parses the second response packet, and binds the public network IP address corresponding to the private network IP address, or the public network IP address corresponding to the private network IP address and the port number Connect to the network port, and locally cache the correspondence between the private network IP address and the public network IP address, or locally cache the correspondence between the public network IP address and port number corresponding to the private network IP address.
MPTCP服务器在IP地址续租阶段获取上述的公网IP地址,或者,公网IP地址和端口号,可以保证MPTCP服务器正确的获取私网IP地址对应的公网IP地址的对应关系,或者私网IP地址对应的公网IP地址和端口号的对应关系,提高MPTCP服务器明确感知其各个私网IP对应的公网IP和/或端口信息的效率。The MPTCP server obtains the above-mentioned public network IP address, or the public network IP address and port number in the IP address renewal stage, which can ensure that the MPTCP server correctly obtains the correspondence between the public network IP address corresponding to the private network IP address, or the private network IP address. The correspondence between the public network IP address and the port number corresponding to the IP address improves the efficiency of the MPTCP server to clearly perceive the public network IP and/or port information corresponding to each of its private network IPs.
可选的,在本申请实施例中,MPTCP服务器如果释放或因为租期到期老化某个接口的私网IP,也会同步删除之前缓存的私网接口IP和对应的公网IP对应关系记录,或者私网接口IP和对应的公网IP和端口的对应关系记录,并通知MPTCP会话管理模块向还存活的对应MPTCP会话子流发送MPTCP REMOVE_ADDR选项,用于向对应的MPTCP客户端通知删除对应的公网IP地址和/或端口。Optionally, in the embodiment of this application, if the MPTCP server releases or ages the private network IP of a certain interface due to the expiration of the lease period, it will also delete the previously cached private network interface IP and the corresponding public network IP correspondence record. , or record the correspondence between the private network interface IP and the corresponding public network IP and port, and notify the MPTCP session management module to send the MPTCP REMOVE_ADDR option to the surviving corresponding MPTCP session substream, which is used to notify the corresponding MPTCP client to delete the corresponding public IP address and/or port.
可选的,在本申请一些可能的实现方式中,在上述的IP地址请求阶段或者IP地址续租阶段,DHCP服务器可以将私网IP地址对应的公网IP地址,或者,将与私网IP地址对应的公网IP地址和端口号通过上述的第一应答报文或者第二应答报文发送给MPTCP服务器。第一应答报文或者第二应答报文可以包括扩展的DHCP选项(option),扩展的DHCP选项可以携带私网IP地址对应的公网IP地址,或者,携带私网IP地址对应的公网IP地址和端口号。可选的,在本申请实施例中,扩展的DHCP选项也可以称为NAT公共地址选项(NAT Public Address Option)。Optionally, in some possible implementation manners of the present application, in the above-mentioned IP address request phase or IP address renewal phase, the DHCP server may assign the public network IP address corresponding to the private network IP address, or combine the private network IP address with the private network IP address. The public network IP address and port number corresponding to the address are sent to the MPTCP server through the first response packet or the second response packet. The first response packet or the second response packet may include an extended DHCP option (option), and the extended DHCP option may carry the public network IP address corresponding to the private network IP address, or carry the public network IP address corresponding to the private network IP address address and port number. Optionally, in this embodiment of the present application, the extended DHCP option may also be referred to as a NAT Public Address Option (NAT Public Address Option).
可选的,图22所示的为本申请提供的一例扩展的DHCP选项的示意性结构图。如图22所示的,该扩展的DHCP选项包括:编码(code)字段、长度(length)字段、NAT类型(NAT Type)字段、保留(reserved)字段、IP地址字段。可选的,扩展的DHCP选项还可以包括端口(port)字段。Optionally, FIG. 22 is a schematic structural diagram of an example of an extended DHCP option provided for this application. As shown in Figure 22, the extended DHCP option includes: a code (code) field, a length (length) field, a NAT type (NAT Type) field, a reserved (reserved) field, and an IP address field. Optionally, the extended DHCP option may further include a port (port) field.
其中,编码(code)字段:用于对DHCP Option的选项编码的字段,该编码字段对应编码值(Code值)待互联网数字分配机构(internet assigned numbers authority,IANA)分配或厂商私有定义,该编码值表示该DHCP Option选项是扩展的通告分配的私网地址对应NAT公网地址和/或端口信息,该编码值本身不包括IP地址信息。Among them, the code (code) field: a field used to encode the options of the DHCP Option. The code field corresponds to the code value (Code value) to be allocated by the Internet Assigned Numbers Authority (IANA) or privately defined by the manufacturer. The value indicates that the DHCP Option option is an extended advertisement to allocate the private network address corresponding to the NAT public network address and/or port information, and the encoded value itself does not include IP address information.
长度(length)字段:用于指示DHCP选项的长度。Length (length) field: used to indicate the length of the DHCP option.
NAT类型(NAT Type)字段:用于指示不同的NAT类型。NAT类型可以包括:IPv4 EIP、IPv4 DNAT、IPv6 EIP、IPv6 DNAT。例如,在DHCPv6协议中:NAT类型(NAT Type)字段的值为“0”,指示为IPv4 EIP,NAT类型(NAT Type)字段的值为“1”,指示为IPv4 DNAT。在DHCPv6协议中:NAT类型(NAT Type)字段的值为“0”,指示为Ipv6 EIP,NAT类型(NAT Type)字段的值为“1”,指示为Ipv6 DNAT。NAT Type (NAT Type) field: used to indicate different NAT types. NAT types can include: IPv4 EIP, IPv4 DNAT, IPv6 EIP, IPv6 DNAT. For example, in the DHCPv6 protocol: the value of the NAT Type field is "0", indicating IPv4 EIP, and the value of the NAT Type field is "1", indicating IPv4 DNAT. In the DHCPv6 protocol: the value of the NAT Type field is "0", indicating Ipv6 EIP, and the value of the NAT Type field is "1", indicating Ipv6 DNAT.
IP地址字段:用于指示私网IP地址对应的公网IP地址。例如,在NAT类型(NAT Type)字段指示为IPv4 EIP或者IPv4 DNAT时,IP地址字段指示的为IPv4地址。在NAT类型(NAT Type)字段指示为IPv6 DNAT或者IPv6 EIP时,IP地址字段指示的为IPv6地址。可选的,例如,IP地址字段指示的为IPv4地址时,该IP地址字段的长度可以为4个八位字节(4 octets)。IP地址字段指示的为IPv6地址时,该IP地址 字段的长度可以为16个八位字节(16 octets)。IP address field: used to indicate the public IP address corresponding to the private IP address. For example, when the NAT Type (NAT Type) field indicates IPv4 EIP or IPv4 DNAT, the IP address field indicates an IPv4 address. When the NAT Type field indicates IPv6 DNAT or IPv6 EIP, the IP address field indicates an IPv6 address. Optionally, for example, when the IP address field indicates an IPv4 address, the length of the IP address field may be 4 octets (4 octets). When the IP address field indicates an IPv6 address, the length of the IP address field may be 16 octets (16 octets).
端口(port)字段:用于指示网络地址端口转换(Network Address Port Translation,NAPT)的端口号。应理解,仅在NAT类型(NAT Type)字段指示的为IPv4 DNAT或者为IPv6 DNAT时,该端口(port)字段才存在并且有效。可选的,该端口(port)字段的长度可以为2个八位字节(2 octets)。Port (port) field: used to indicate the port number of Network Address Port Translation (NAPT). It should be understood that this port (port) field exists and is valid only when the NAT Type (NAT Type) field indicates IPv4 DNAT or IPv6 DNAT. Optionally, the length of the port field may be 2 octets.
应理解,图22只是示例性的,不应该对本申请实施例提供的扩展的DHCP选项的结构或者包括的内容造成任何限制。在本申请实施例中,扩展的DHCP选项的结构还可以是其它的结构,或者,扩展的DHCP选项还可以包括其他的内容。本申请实施例在此不作限制。It should be understood that FIG. 22 is only exemplary, and should not impose any limitation on the structure or included content of the extended DHCP option provided by the embodiment of the present application. In this embodiment of the present application, the structure of the extended DHCP option may also be other structures, or the extended DHCP option may further include other contents. The embodiments of the present application are not limited herein.
例如,DHCP服务器可以将私网IP地址对应的公网IP地址填充到该扩展的DHCP选项,或者,将与私网IP地址对应的公网IP地址和端口号填充到该扩展的DHCP选项,并且向该MPTCP服务器发送的DHCP Ack报文可以携带该扩展的DHCP选项,这样,MPTCP服务器便可以获取申请到的或者续租的将私网IP地址对应的公网IP地址,或者,私网IP地址对应的公网IP地址和端口号之间的对应关系。For example, the DHCP server may fill in the extended DHCP option with the public network IP address corresponding to the private network IP address, or fill in the extended DHCP option with the public network IP address and port number corresponding to the private network IP address, and The DHCP Ack message sent to the MPTCP server can carry the extended DHCP option, so that the MPTCP server can obtain the public IP address corresponding to the private network IP address, or the private network IP address obtained or renewed. The correspondence between the corresponding public IP address and port number.
可选的,在本申请一些可能的实现方式中,以图23为例,在图17所示的方法步骤的基础上,该方法800还可以包括:Optionally, in some possible implementation manners of the present application, taking FIG. 23 as an example, based on the method steps shown in FIG. 17 , the method 800 may further include:
S830,MPTCP服务器向MPTCP客户端发送该至少一个私网IP地址中每一个私网IP地址对应的公网IP地址。S830, the MPTCP server sends the public network IP address corresponding to each private network IP address in the at least one private network IP address to the MPTCP client.
可选的,MPTCP服务器可以向MPTCP客户端发送该至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和端口号。Optionally, the MPTCP server may send the public network IP address and port number corresponding to each private network IP address in the at least one private network IP address to the MPTCP client.
图23中所示的S810和S820的描述可以参考上述对这几个步骤的描述,为了简洁,这里不再赘述。For the descriptions of S810 and S820 shown in FIG. 23, reference may be made to the above descriptions of these steps, which are not repeated here for brevity.
在S830中,MPTCP服务器在获取了自己的至少一个私网IP地址中每一个私网IP地址对应的公网IP地址,或者,至少一个私网IP地址中每一个私网IP地址对应公网IP地址和端口号之后,可以向MPTCP客户端发送该信息,从而实现了MPTCP服务器处于NAT设备之后,也能正常向MPTCP客户端通告有效的多路径服务IP或端口信息。实现了可以向MPTCP客户端通告更合适建立新子流的公网IP和/或端口信息,而非其私网IP,从而保证了MPTCP会话的正确建立,提高MPTCP会话建立的效率和成功率。In S830, the MPTCP server obtains the public network IP address corresponding to each private network IP address in its at least one private network IP address, or, each private network IP address in the at least one private network IP address corresponds to the public network IP address After the address and port number, the information can be sent to the MPTCP client, so that the MPTCP server can normally notify the MPTCP client of valid multi-path service IP or port information after being located in the NAT device. It is realized that the public network IP and/or port information more suitable for establishing a new subflow can be notified to the MPTCP client instead of its private network IP, thereby ensuring the correct establishment of the MPTCP session and improving the efficiency and success rate of the MPTCP session establishment.
例如,MPTCP服务器可以向MPTCP会话管理模块通知该信息,以便MPTCP会话管理模块识别相关MPTCP会话重新公告地址变化。例如,MPTCP服务器可以通知对应MPTCP客户端添加新公网IP地址和/或端口、通知对应的MPTCP客户端删除旧公网IP地址和/或端口。For example, the MPTCP server may notify the MPTCP session management module of this information so that the MPTCP session management module identifies the relevant MPTCP session to re-advertise the address change. For example, the MPTCP server may notify the corresponding MPTCP client to add a new public IP address and/or port, and notify the corresponding MPTCP client to delete the old public IP address and/or port.
应理解,在本申请实施例中,对于MPTCP客户端和MPTCP服务器之间的MPTCP会话的建立首个子流时的公网IP地址。MPTCP客户端可以通过DNS解析流程获取公网IP地址以建立首个子流。例如,MPTCP的运营商选择将用于建立首个子流的公网IP地址和和服务域名的DNS A类型记录提交给DNS服务器运营商,DNS服务器运营商将其添加到DNS服务器的域名数据库中,这样,MPTCP客户端可以通过DNS服务器获取该DNS A类型记录,从而建立MPTCP会话的首个子流。It should be understood that, in this embodiment of the present application, the public network IP address when the first substream of the MPTCP session between the MPTCP client and the MPTCP server is established. The MPTCP client can obtain the public IP address through the DNS resolution process to establish the first substream. For example, the operator of MPTCP chooses to submit the DNS A type record of the public IP address and service domain name used to establish the first substream to the DNS server operator, and the DNS server operator adds it to the DNS server's domain name database, In this way, the MPTCP client can obtain the DNS A type record through the DNS server, thereby establishing the first substream of the MPTCP session.
应理解,图23所示的流程中也可以包括上述的S808或者S809。It should be understood that the above-mentioned S808 or S809 may also be included in the process shown in FIG. 23 .
可选的,在本申请一些可能的实现方式中,以图24为例,在图23所示的方法步骤的基础上,该方法800中的S830可以具体为:S831。Optionally, in some possible implementation manners of the present application, taking FIG. 24 as an example, based on the method steps shown in FIG. 23 , S830 in the method 800 may be specifically: S831 .
S831、在MPTCP服务器和该MPTCP客户端的MPTCP会话首个子流的建立过程中,该MPTCP服务器通过TCP报文将至少一个私网地址中每一个私网地址对应的公网地址发送给该MPTCP客户端。S831. In the process of establishing the first substream of the MPTCP session between the MPTCP server and the MPTCP client, the MPTCP server sends the MPTCP client the public network address corresponding to each private network address in the at least one private network address through a TCP packet .
可选的,在MPTCP服务器和该MPTCP客户端的MPTCP会话首个子流的建立过程中,该MPTCP服务器还可以通过TCP报文将至少一个私网地址中每一个私网地址对应的公网地址和端口号发送该MPTCP客户端。Optionally, in the process of establishing the first substream of the MPTCP session between the MPTCP server and the MPTCP client, the MPTCP server may also send the public network address and port corresponding to each private network address in the at least one private network address through a TCP packet. No. to send the MPTCP client.
图24中所示的S810和S820的描述可以参考上述对这几个步骤的描述,为了简洁,这里不再赘述。For the description of S810 and S820 shown in FIG. 24 , reference may be made to the above description of these steps, which is not repeated here for brevity.
在S831中,MPTCP客户端可以在通过DNS服务器获取公网IP地址建立首个子流的过程中,MPTCP服务器可以将至少一个私网IP地址中每一个私网IP地址对应的公网IP地址,或者,将至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和端口号发送给该MPTCP客户端,作为一种可能的实现方式,MPTCP会话管理模块可以查询需要加入MPTCP会话的相应接口IP和对应公网IP和/或端口对应关系的缓存记录,生成MPTCP ADD_ADDR选项,该MPTCP ADD_ADDR选项携带:至少一个私网IP地址中每一个私网IP地址对应的公网IP地址,或者,将至少一个私网IP地址中每一个私网IP地址对应的公网IP地址和端口号该私网IP和对应公网IP和/或端口。并且在首个子流的TCP报文中将该MPTCP ADD_ADDR选项发送给MPTCP客户端,供其建立新子流。In S831, the MPTCP client may obtain the public network IP address through the DNS server to establish the first sub-stream, the MPTCP server may assign the public network IP address corresponding to each private network IP address in the at least one private network IP address, or , send the public network IP address and port number corresponding to each private network IP address in the at least one private network IP address to the MPTCP client, as a possible implementation, the MPTCP session management module can query the need to join the MPTCP session The cache record of the correspondence between the corresponding interface IP and the corresponding public network IP and/or port, generate the MPTCP ADD_ADDR option, the MPTCP ADD_ADDR option carries: the public network IP address corresponding to each private network IP address in at least one private network IP address, or , compare the public network IP address and port number corresponding to each private network IP address in the at least one private network IP address to the private network IP and the corresponding public network IP and/or port. And the MPTCP ADD_ADDR option is sent to the MPTCP client in the TCP packet of the first substream for it to establish a new substream.
例如,在MPTCP客户端可以向MPTCP服务器发送TCP同步(Synchronize,Syn)请求报文(TCP Syn报文),MPTCP服务器收到该TCP Syn报文后,向MPTCP客户端回复同步请求应答(Syn ACK)报文。可选的,MPTCP服务器可以生成ADD_ADDR选项添加在该Syn ACK报文中,该ADD_ADDR选项携带私网地址分别对应的公网地址,或者,携带私网地址分别对应的公网地址和端口号。MPTCP客户端接收到该Syn ACK报文后,解析ADD_ADDR选项,从而便可以获取私网地址分别对应的公网地址,或者,私网地址分别对应公网地址和端口号。并向MPTCP服务器回复确认(ACK)报文。这样,MPTCP客户端和MPTCP服务器的首个子流建立过程便完成了。MPTCP客户端获取私网地址分别对应的公网地址,或者私网地址分别对应公网地址和端口号后,便可以建立该MPTCP会话的其他子流。For example, the MPTCP client can send a TCP synchronization (Synchronize, Syn) request message (TCP Syn message) to the MPTCP server, and after receiving the TCP Syn message, the MPTCP server replies with a synchronization request response (Syn ACK) to the MPTCP client ) message. Optionally, the MPTCP server may generate an ADD_ADDR option and add it to the Syn ACK message. The ADD_ADDR option carries the public network address corresponding to the private network address, or carries the public network address and port number corresponding to the private network address. After the MPTCP client receives the Syn ACK message, it parses the ADD_ADDR option to obtain the public network addresses corresponding to the private network addresses, or the private network addresses corresponding to the public network address and port number. And reply an acknowledgement (ACK) message to the MPTCP server. In this way, the first substream establishment process of MPTCP client and MPTCP server is completed. After the MPTCP client obtains the public network address corresponding to the private network address, or the private network address corresponds to the public network address and port number, it can establish other substreams of the MPTCP session.
应理解,图24所示的流程中也可以包括上述的S808或者S809。It should be understood that the above-mentioned S808 or S809 may also be included in the process shown in FIG. 24 .
可选的,在本申请一些可能的实现方式中,以图25为例,在图23所示的方法步骤的基础上,该方法800中的S830可以具体为:S832。Optionally, in some possible implementation manners of the present application, taking FIG. 25 as an example, based on the method steps shown in FIG. 23 , S830 in the method 800 may be specifically: S832 .
S832,在MPTCP服务器和该MPTCP客户端的MPTCP会话首个子流的建立后,向MPTCP客户端发送该至少一个私网地址中每一个私网地址对应的公网地址。S832, after the MPTCP server and the MPTCP client establish the first substream of the MPTCP session, send the public network address corresponding to each private network address in the at least one private network address to the MPTCP client.
可选的,在MPTCP服务器和该MPTCP客户端的MPTCP会话首个子流的建立后,MPTCP服务器还可以向MPTCP客户端发送该至少一个私网地址中每一个私网地址对应的公网地址和端口号。Optionally, after the MPTCP server and the MPTCP client establish the first substream of the MPTCP session, the MPTCP server may also send the public network address and port number corresponding to each private network address in the at least one private network address to the MPTCP client. .
图25中所示的S810和S820的描述可以参考上述对这几个步骤的描述,为了简洁,这里不再赘述。For the description of S810 and S820 shown in FIG. 25 , reference may be made to the above description of these steps, which is not repeated here for brevity.
在本申请实施例中,可选的,如果MPTCP服务器获取该私网地址分别对应的公网地址,或者,该私网地址分别对应公网地址和端口号是在MPTCP服务器和MPTCP客户端的MPTCP会话首个子流的建立完成后,则在MPTCP服务器和MPTCP客户端的MPTCP会话首个子流的建立完成后,MPTCP服务器可以通过其它报文或者信息将至少一个私网地址中每一个私网地址对应的公网地址,或者,将至少一个私网地址中每一个私网地址对应的公网地址和端口号发送给MPTCP客户端,也可以实现MPTCP服务器处于NAT设备之后,也能正常向MPTCP客户端通告有效的多路径服务IP地址和/或端口信息。MPTCP客户端在获取私网地址分别对应的公网地址,或者私网地址分别对应公网地址和端口号后,便可以建立该MPTCP会话的其他子流。减少了MPTCP服务器的本地配置,也不需要MPTCP服务器本地配置公网地址。In this embodiment of the present application, optionally, if the MPTCP server obtains the public network addresses corresponding to the private network addresses, or, the private network addresses corresponding to the public network addresses and port numbers are the MPTCP sessions between the MPTCP server and the MPTCP client. After the establishment of the first sub-stream is completed, after the establishment of the first sub-stream of the MPTCP session between the MPTCP server and the MPTCP client is completed, the MPTCP server can send the public address corresponding to each private network address of the at least one private network address through other packets or information. network address, or send the public network address and port number corresponding to each private network address in at least one private network address to the MPTCP client, or the MPTCP server can be located behind the NAT device, and can also notify the MPTCP client normally. Multipathing service IP address and/or port information. After obtaining the public network addresses corresponding to the private network addresses, or the private network addresses corresponding to the public network addresses and port numbers, the MPTCP client can establish other substreams of the MPTCP session. The local configuration of the MPTCP server is reduced, and the public network address of the MPTCP server does not need to be configured locally.
应理解,图25所示的流程中也可以包括上述的S808或者S809。It should be understood that the above-mentioned S808 or S809 may also be included in the process shown in FIG. 25 .
下面将结合具体的例子说明本申请提供的确定MPTCP服务器公网地址的方法。The method for determining the public network address of the MPTCP server provided by the present application will be described below with reference to specific examples.
在如图26所示的架构中,假设:MPTCP服务器通过网卡连接ISP1的CPE1设备,通过Wifi连接ISP2的CPE2设备。CPE1设备开启了DHCP服务器功能,使能了NAT公共地址选项(NAT Public Address Option),使能NAT功能,并配置EIP模式,CPE1上配置了IPv4私网地址资源池1(Pool 1)和公网地址资源池3(Pool 3)。CPE2设备开启DHCP服务器功能,使能了NAT Public Address Option,使能NAT功能,CPE2上也配置EIP模式,配置了IPv4私网地址资源池2(Pool 2)和公网地址资源池4(Pool 4)。终端设备(MPTCP客户端)分别通过CPE1设备和CPE2设备连接该MPTCP服务器。In the architecture shown in Figure 26, it is assumed that the MPTCP server is connected to the CPE1 device of ISP1 through a network card, and is connected to the CPE2 device of ISP2 through Wifi. The DHCP server function is enabled on the CPE1 device, the NAT Public Address Option is enabled, the NAT function is enabled, and the EIP mode is configured. The IPv4 private network address resource pool 1 (Pool 1) and the public network are configured on CPE1. Address resource pool 3 (Pool 3). The DHCP server function is enabled on the CPE2 device, the NAT Public Address Option is enabled, the NAT function is enabled, the EIP mode is also configured on the CPE2, and the IPv4 private network address resource pool 2 (Pool 2) and the public network address resource pool 4 (Pool 4) are configured ). The terminal device (MPTCP client) connects to the MPTCP server through the CPE1 device and the CPE2 device respectively.
图27所示的为在如图26所示的架构中,本申请提供的确定MPTCP服务器的IP地址的方法900的示意性流程图。图27示的流程主要为MPTCP服务器获取私网地址对应的公网地址的过程。如图27所示的,该方法900包括:S901至S906。Fig. 27 is a schematic flowchart of a method 900 for determining the IP address of an MPTCP server provided by the present application in the architecture shown in Fig. 26 . The process shown in FIG. 27 is mainly a process in which the MPTCP server obtains the public network address corresponding to the private network address. As shown in FIG. 27 , the method 900 includes: S901 to S906.
S901,MPTCP服务器网口上电,接口连接CPE1设备,检测网络接口状态未正常(物理状态UP)。MPTCP服务器作为DHCP的客户端(Client)从该网路接口向CPE1设备发送DHCP发现(DHCP Discover)广播报文。S901, the network port of the MPTCP server is powered on, the interface is connected to the CPE1 device, and it is detected that the state of the network interface is not normal (the physical state is UP). As a DHCP client (Client), the MPTCP server sends a DHCP Discover (DHCP Discover) broadcast message from the network interface to the CPE1 device.
S902,CPE1收到该DHCP Discover广播报文后,向CPE1设备回复DHCP回应(DHCP Offer)报文,DHCP Offer中包括预期在Pool1中分配私网地址IP3给MPTCP服务器。分配规则可以是动态分配,也可以是静态预置规则分配,例如为MPTCP服务器网口的媒体接入控制(media access control,MAC)地址,固定分配私网地址IP3。S902, after receiving the DHCP Discover broadcast message, CPE1 replies with a DHCP response (DHCP Offer) message to the CPE1 device. The DHCP Offer includes the private network address IP3 expected to be allocated in Pool1 to the MPTCP server. The allocation rule can be dynamic allocation or static preset rule allocation, such as the media access control (media access control, MAC) address of the MPTCP server network port, and the private network address IP3 is fixedly allocated.
S903,MPTCP服务器收到该DHCP Offer报文,在等待时间内没有收到其他DHCP服务器(例如其它CPE设备)的DHCP Offer报文,MPTCP服务器接受CPE1分配的IP3,并向CPE1发送DHCP请求(DHCP request)报文,携带IP3地址。S903, the MPTCP server receives the DHCP Offer message, but does not receive the DHCP Offer message from other DHCP servers (such as other CPE devices) within the waiting time. request) message, carrying the IP3 address.
S904,CPE1收到该DHCP request报文,检查本地使能NAT和NAT公共地址选项(NAT Public Address Option),从Pool 3分配出公网地址EIP1,并将EIP1的信息填充到NAT Public Address Option,将NAT Public Address Option携带在DHCP Ack报文中发送给MPTCP服务器。分配规则可以是动态分配,也可以是静态预置规则分配, 例如固定为私网地址IP3分配公网地址EIP1。并且,CPE本地生成并缓存该EIP1和IP3的NAT规则表。S904, CPE1 receives the DHCP request message, checks the locally enabled NAT and the NAT Public Address Option, allocates the public network address EIP1 from Pool 3, and fills the EIP1 information into the NAT Public Address Option, Carry the NAT Public Address Option in the DHCP Ack message and send it to the MPTCP server. The allocation rule may be dynamic allocation or static preset rule allocation, for example, the public network address EIP1 is fixedly allocated to the private network address IP3. And, the CPE locally generates and caches the NAT rule table of the EIP1 and IP3.
图28所示的为S904中的NAT公共地址选项(NAT Public Address Option)的示意图,如图28所示的,编码字段(code)为待确定(to be done)状态,待互联网数字分配机构(internet assigned numbers authority,INNA)分配,例如为250等。长度(length)字段指示的长度为8个字节(8Bytes)。NAT Type字段指示的为IPv4 EIP。保留(reserved)字段指示为0。IP地址字段指示的为EIP1。由于NAT Type字段指示的为IPv4 EIP,所以该NAT Public Address Option不包括端口(port)字段。Figure 28 is a schematic diagram of the NAT Public Address Option (NAT Public Address Option) in S904. As shown in Figure 28, the code field (code) is in a to be done state, and the Internet Digital Allocation Authority ( internet assigned numbers authority, INNA) assignment, such as 250, etc. The length indicated by the length field is 8 bytes (8Bytes). The NAT Type field indicates IPv4 EIP. The reserved field indicates 0. The IP address field indicates EIP1. Since the NAT Type field indicates IPv4 EIP, the NAT Public Address Option does not include the port field.
MPTCP服务器收到该DHCP Ack报文后,解析其中的NAT Public Address Option。将IP3绑定到网口上,并本地缓存IP3和EIP1的对应关系记录。可选的,如果MPTCP服务器没有使用NAT Public Address Option或不支持该选项,就丢弃该选项,不解析NAT Public Address Option。After receiving the DHCP Ack message, the MPTCP server parses the NAT Public Address Option in it. Bind IP3 to the network port, and cache the correspondence record between IP3 and EIP1 locally. Optionally, if the MPTCP server does not use the NAT Public Address Option or does not support this option, this option is discarded and the NAT Public Address Option is not parsed.
S905,MPTCP服务器向CPE1回复正确接收该DHCP Ack报文。S905, the MPTCP server replies to CPE1 that the DHCP Ack message is correctly received.
S906,CPE1向MPTCP服务器回复确认信息。S906, CPE1 replies with confirmation information to the MPTCP server.
MPTCP服务器在wifi接口扫描到CPE2的Wifi热点连接认证登录后,也可以通过Wifi对应的逻辑网口向CPE2发起DHCP地址请求的交互流程,交互步骤和上述MPTCP服务器通过网口和CPE1发起的DHCP地址请求的交互流程类似,假设:MPTCP服务器在收到CPE2的DHCP Ack报文后,该DHCP Ack报文中的NAT Public Address Option携带私网地址IP4对应的公网地址EIP2。MPTCP服务器将IP4绑定到Wifi对应的逻辑网口上,并本地缓存IP4和EIP2的对应关系记录。After the MPTCP server scans the wifi interface to the Wifi hotspot connection authentication and login of CPE2, it can also initiate the interaction process of DHCP address request to CPE2 through the logical network port corresponding to Wifi. The interaction steps are the same as the DHCP address initiated by the MPTCP server through the network port and CPE1 The request interaction process is similar. It is assumed that after the MPTCP server receives the DHCP Ack message from CPE2, the NAT Public Address Option in the DHCP Ack message carries the public network address EIP2 corresponding to the private network address IP4. The MPTCP server binds IP4 to the logical network port corresponding to Wifi, and locally caches the correspondence record between IP4 and EIP2.
假设:MPTCP服务器的运营商选择将EIP1和服务域名的DNS A类型记录提交给DNS服务器运营商,要求DNS服务器运营商将其添加到DNS服务器的域名数据库中。MPTCP服务器内部配置网口IP3或Wifi对应的逻辑网口IP4作为MPTCP会话的多路网络入口。终端设备访问MPTCP服务器的多媒体资源时,根据MPTCP服务器的域名向DNS服务器提交查询请求,从查询结果中获悉EIP1的地址。Assumption: The operator of the MPTCP server chooses to submit the EIP1 and DNS A type records of the service domain name to the DNS server operator, asking the DNS server operator to add it to the DNS server's domain name database. The MPTCP server is internally configured with the network port IP3 or the logical network port IP4 corresponding to Wifi as the multi-channel network entrance of the MPTCP session. When the terminal device accesses the multimedia resources of the MPTCP server, it submits a query request to the DNS server according to the domain name of the MPTCP server, and learns the address of EIP1 from the query result.
图29所示的为在如图26所示的架构中,本申请提供的确定MPTCP服务器的IP地址的方法1000的示意性流程图,图29所示的流程主要为终端设备通过MPTCP会话的首流建立过程获取私网地址对应的公网地址的过程。如图29所示的,该方法1000包括:S1010至S1060。Figure 29 shows a schematic flow chart of a method 1000 for determining the IP address of an MPTCP server provided by the present application in the architecture shown in Figure 26 . The flow establishment process is the process of obtaining the public network address corresponding to the private network address. As shown in FIG. 29 , the method 1000 includes: S1010 to S1060.
S1010,终端设备和MPTCP服务器进行目的IP为EIP1的MPTCP会话首个子流的三次握手。具体的,终端设备将TCP Syn报文转发到CPE1。S1010, the terminal device and the MPTCP server perform a three-way handshake of the first substream of the MPTCP session whose destination IP is EIP1. Specifically, the terminal device forwards the TCP Syn message to CPE1.
S1020,CPE1接收到该TCP Syn报文后,发现该报文的目的IP是EIP1,执行NAT操作,替换TCP Syn报文的目的IP地址,将报文目的IP地址由EIP1替换成IP3,重新路由将新报文转发给MPTCP服务器。后续的流程中,终端设备到MPTCP服务器的所有TCP报文在CPE1上的NAT处理都和S1010中的描述一致,需要将TCP报文的目的IP地址替换为对应的私网IP地址。S1020, after receiving the TCP Syn packet, CPE1 finds that the destination IP of the packet is EIP1, performs a NAT operation, replaces the destination IP address of the TCP Syn packet, replaces the destination IP address of the packet from EIP1 to IP3, and reroutes Forward the new packet to the MPTCP server. In the subsequent process, the NAT processing of all TCP packets from the terminal device to the MPTCP server on CPE1 is consistent with the description in S1010, and the destination IP address of the TCP packet needs to be replaced with the corresponding private network IP address.
S1030,MPTCP服务器接收到该CPE1转发的TCP Syn报文后,检查本地配置,假设:如果MPTCP服务器配置MPTCP的多路径会话、MPTCP服务器配置了Wifi对应虚拟网口,并且,Wifi对应虚拟网口为激活状态。在MPTCP服务器确定需要发布 Wifi对应虚拟网口的IP4地址,查询缓存的私网地址和公网地址对应关系记录发现IP4对应公网地址EIP4,生成ADD_ADDR选项,ADD_ADDR选项携带该EIP4,并将ADD_ADDR选项添加到Syn-Ack报文中经过CPE1发送给终端设备。可选的,该ADD_ADDR选项也可以在握手后的其他TCP报文中携带并发送给终端设备。S1030, after receiving the TCP Syn message forwarded by the CPE1, the MPTCP server checks the local configuration. It is assumed that if the MPTCP server is configured with MPTCP multi-path sessions, the MPTCP server is configured with a virtual network port corresponding to Wifi, and the virtual network port corresponding to Wifi is active state. The MPTCP server determines that the IP4 address of the virtual network port corresponding to Wifi needs to be published, query the cached private network address and public network address correspondence record to find that IP4 corresponds to the public network address EIP4, generate the ADD_ADDR option, the ADD_ADDR option carries the EIP4, and the ADD_ADDR option It is added to the Syn-Ack message and sent to the terminal device through CPE1. Optionally, the ADD_ADDR option can also be carried in other TCP packets after the handshake and sent to the terminal device.
S1040,CPE1收到该Syn-Ack报文,发现Syn-Ack报文的源IP是私网IP(即为IP3),查询本地NAT规则表,替换IP头,将Syn-Ack报文的源IP由IP3替换成EIP1,然后路由转发给终端设备。后续的流程中,MPTCP服务器到终端设备的所有TCP报文在CPE1上的NAT处理都和S1040步骤的描述一致,需要将TCP报文的源IP地址替换为对应的公网IP地址。S1040, CPE1 receives the Syn-Ack packet, finds that the source IP of the Syn-Ack packet is the private network IP (that is, IP3), queries the local NAT rule table, replaces the IP header, and replaces the source IP of the Syn-Ack packet with Replace IP3 with EIP1, and then forward the route to the terminal device. In the subsequent process, the NAT processing on CPE1 of all TCP packets from the MPTCP server to the terminal device is consistent with the description in step S1040, and the source IP address of the TCP packet needs to be replaced with the corresponding public network IP address.
S1050,终端设备收到该Syn-Ack报文,解析ADD_ADDR选项,缓存EIP4,同时继续通过CPE1向MPTCP服务器发送TCP Ack报文,这样就完成MPTCP会话的首个子流的三次握手,MPTCP会话建链成功。S1050, the terminal device receives the Syn-Ack message, parses the ADD_ADDR option, caches EIP4, and continues to send the TCP Ack message to the MPTCP server through CPE1, thus completing the three-way handshake of the first substream of the MPTCP session, and establishing the MPTCP session chain success.
S1060,终端设备利用EIP4建立该MPTCP会话的第二条子流,发起第二条子流的三次握手交互,握手成功后加入当前的MPTCP会话。利用EIP4建立该MPTCP会话的第二条子流的过程中,CPE2的NAT处理和CPE1的NAT处理描述一致。S1060, the terminal device establishes the second sub-stream of the MPTCP session by using EIP4, initiates a three-way handshake interaction of the second sub-stream, and joins the current MPTCP session after the handshake is successful. In the process of establishing the second sub-flow of the MPTCP session by using EIP4, the NAT processing of CPE2 is consistent with the description of the NAT processing of CPE1.
应理解,在图26所示的架构中仅仅以CPE1和CPE2开启了NAT功能,并配置EIP模式的为例进行说明,可选的,在本申请实施例中,CPE1和CPE2开启了NAT功能,并可以配置DNAT模式,例如在如图30所示的架构中,假设:MPTCP服务器通过网卡连接ISP1的CPE1设备,通过Wifi连接ISP2的CPE2设备。CPE1设备开启了DHCP服务器功能,使能了NAT公共地址选项(NAT Public Address Option),使能NAT功能,并配置DNAT模式,CPE1上配置了IPv4私网地址资源池1(Pool 1)和公网地址资源池3(Pool 3)。CPE2设备开启DHCP服务器功能,使能了NAT Public Address Option,使能NAT功能,CPE2上也配置DNAT模式,配置了IPv4私网地址资源池2(Pool 2)和公网地址资源池4(Pool 4)。终端设备(MPTCP客户端)分别通过CPE1设备和CPE2设备连接该MPTCP服务器。It should be understood that in the architecture shown in FIG. 26, only the NAT function is enabled on CPE1 and CPE2, and the EIP mode is configured as an example for description. Optionally, in the embodiment of the present application, the NAT function is enabled on CPE1 and CPE2, The DNAT mode can be configured. For example, in the architecture shown in Figure 30, it is assumed that the MPTCP server connects to the CPE1 device of ISP1 through the network card, and connects to the CPE2 device of ISP2 through Wifi. The DHCP server function is enabled on the CPE1 device, the NAT Public Address Option is enabled, the NAT function is enabled, and the DNAT mode is configured. The IPv4 private network address resource pool 1 (Pool 1) and the public network are configured on CPE1. Address resource pool 3 (Pool 3). The DHCP server function is enabled on the CPE2 device, the NAT Public Address Option is enabled, the NAT function is enabled, the DNAT mode is also configured on the CPE2, and the IPv4 private network address resource pool 2 (Pool 2) and the public network address resource pool 4 (Pool 4) are configured ). The terminal device (MPTCP client) connects to the MPTCP server through the CPE1 device and the CPE2 device respectively.
在这种情况下,如图31所示的,图31所示的为在如图30所示的架构中,本申请提供的确定MPTCP服务器的IP地址的方法1100的示意性流程图,图31所示的流程主要为MPTCP服务器获取私网地址对应的公网地址和端口号的过程。如图31所示的,该方法1100包括:S1110至S1160。In this case, as shown in FIG. 31 , FIG. 31 is a schematic flowchart of a method 1100 for determining the IP address of an MPTCP server provided by the present application in the architecture shown in FIG. 30 , FIG. 31 The shown process is mainly a process of obtaining the public network address and port number corresponding to the private network address by the MPTCP server. As shown in FIG. 31 , the method 1100 includes: S1110 to S1160.
S1110,MPTCP服务器网口上电,接口连接CPE1设备,检测网络接口状态未正常。MPTCP服务器作为DHCP的客户端(Client)从该网路接口向CPE1设备发送DHCP发现(DHCP Discover)广播报文。S1110, the MPTCP server network port is powered on, the interface is connected to the CPE1 device, and it is detected that the network interface status is not normal. As a DHCP client (Client), the MPTCP server sends a DHCP Discover (DHCP Discover) broadcast message from the network interface to the CPE1 device.
S1120,CPE1收到该DHCP Discover广播报文后,向CPE1设备回复DHCP回应(DHCP Offer)报文,DHCP Offer中包括预期在Pool1中分配私网地址IP3给MPTCP服务器。分配规则可以是动态分配,也可以是静态预置规则分配,例如为MPTCP服务器网口的媒体接入控制(Media Access Control,MAC)地址,固定分配私网地址IP3。S1120, after receiving the DHCP Discover broadcast message, CPE1 replies to the CPE1 device a DHCP response (DHCP Offer) message, where the DHCP Offer includes the private network address IP3 expected to be allocated in Pool1 to the MPTCP server. The allocation rule can be dynamic allocation or static preset rule allocation. For example, it is the Media Access Control (MAC) address of the network port of the MPTCP server, and the private network address IP3 is fixedly allocated.
S1130,MPTCP服务器收到该DHCP Offer报文,在等待时间内没有收到其他DHCP服务器(例如其它CPE1设备)的DHCP Offer报文,MPTCP服务器接受CPE1分配的私网地址IP3,并向CPE1发送DHCP请求(DHCP request)报文,携带私网地址IP3。S1130, the MPTCP server receives the DHCP Offer message, but does not receive the DHCP Offer message from other DHCP servers (such as other CPE1 devices) within the waiting time. The MPTCP server accepts the private network address IP3 assigned by CPE1, and sends DHCP to CPE1 DHCP request message, carrying the private network address IP3.
S1140,CPE1收到该DHCP request报文,检查本地使能NAT和NAT公共地址选项(NAT Public Address Option),从Pool 3分配出公网地址IP1,由于配置了DNAT模式,因此CPE1设备需要分配出一个CPE1上的端口号,利用公网地址IP1和CPE1上的端口号唯一映射一个私网IP地址和MPTCP服务器的端口号。假设分配的CPE1上的空闲端口号为1000。CPE1将IP1和端口号1000的信息填充到NAT Public Address Option,将NAT Public Address Option携带在DHCP Ack报文中发送给MPTCP服务器。即利用公网地址IP1和端口号1000映射私网地址IP3。可选的。CPE1配置或根据地址和端口资源池分配生成DNAT映射表,该端口资源池配置对应一类服务,假设为HTTP服务,对应端口号43,端口号43可以理解为CPE1为该MPTCP服务器配置或者分配的端口号。CPE1本地生成并缓存该公网地址IP1和端口号1000对应的私网地址IP3和服务器的端口号43的NAT规则表。S1140, CPE1 receives the DHCP request message, checks the local enabled NAT and the NAT Public Address Option, and allocates the public network address IP1 from Pool 3. Since the DNAT mode is configured, the CPE1 device needs to allocate A port number on CPE1, using the public network address IP1 and the port number on CPE1 to uniquely map a private network IP address and the port number of the MPTCP server. Assume that the free port number on the assigned CPE1 is 1000. CPE1 fills the information of IP1 and port number 1000 into the NAT Public Address Option, and carries the NAT Public Address Option in the DHCP Ack message and sends it to the MPTCP server. That is, use the public network address IP1 and the port number 1000 to map the private network address IP3. optional. CPE1 configures or generates a DNAT mapping table based on address and port resource pool allocation. The port resource pool configuration corresponds to a type of service, assuming it is an HTTP service, and corresponds to port number 43. Port number 43 can be understood as the configuration or allocation of CPE1 for the MPTCP server. The port number. The CPE1 locally generates and caches the NAT rule table of the private network address IP3 corresponding to the public network address IP1 and the port number 1000 and the port number 43 of the server.
图32所示的为S1140中的NAT公共地址选项(NAT Public Address Option)的示意图,如图32所示的,编码字段(code)为待确定(to be done,TBD)状态,待INNA分配。长度(length)字段指示的长度为M个字节(M Bytes)。NAT Type字段指示的为IPv4 DNAT。保留(reserved)字段指示为0。IP地址字段指示的为公网地址IP1。端口(port)字段指示为“1000”。Figure 32 is a schematic diagram of the NAT Public Address Option (NAT Public Address Option) in S1140. As shown in Figure 32, the code field (code) is in a to be done (TBD) state and is to be allocated by INNA. The length indicated by the length field is M bytes (M Bytes). The NAT Type field indicates IPv4 DNAT. The reserved field indicates 0. The IP address field indicates the public network address IP1. The port field indicates "1000".
MPTCP服务器收到该DHCP Ack报文后,解析其中的NAT Public Address Option。将IP3绑定到网口上,并本地缓存公网地址IP1、端口号1000和私网地址IP1、端口号43的对应关系记录。After receiving the DHCP Ack message, the MPTCP server parses the NAT Public Address Option in it. Bind IP3 to the network port, and cache the corresponding relationship records of the public network address IP1, port number 1000, private network address IP1, and port number 43 locally.
S1150,MPTCP服务器向CPE1回复正确接收该DHCP Ack报文。S1150, the MPTCP server replies to CPE1 that the DHCP Ack message is correctly received.
S1160CPE1向MPTCP服务器回复确认信息。S1160CPE1 replies with confirmation information to the MPTCP server.
可选的,如果MPTCP服务器为该MPTCP客户端提供的MPTCP服务器在wifi接口扫描到CPE2的Wifi热点连接认证登录后,也可以通过Wifi对应的逻辑网口向CPE2发起DHCP地址请求的交互流程,交互步骤和上述MPTCP服务器通过网口和CPE1发起的DHCP地址请求的交互流程类似,假设:MPTCP服务器在收到CPE2的DHCP Ack报文后,该DHCP Ack报文中的NAT Public Address Option携带私网地址IP4和服务器的端口号43对应的公网地址IP6和CPE2上的端口号2000。MPTCP服务器将IP4绑定到Wifi对应的逻辑网口上,并本地缓存公网地址IP6、端口号2000和私网地址IP4、端口号43的对应关系记录。Optionally, if the MPTCP server provided by the MPTCP server for the MPTCP client scans the wifi interface to the Wifi hotspot connection authentication and login of the CPE2, it can also initiate an interaction process of DHCP address request to the CPE2 through the logical network port corresponding to the Wifi. The steps are similar to the above-mentioned interaction flow of the DHCP address request initiated by the MPTCP server and CPE1 through the network port. It is assumed that after the MPTCP server receives the DHCP Ack message from CPE2, the NAT Public Address Option in the DHCP Ack message carries the private network address. IP4 and the server's port number 43 correspond to the public network address IP6 and the port number 2000 on CPE2. The MPTCP server binds IP4 to the logical network port corresponding to Wifi, and locally caches the correspondence record of public network address IP6, port number 2000, private network address IP4, and port number 43.
假设:MPTCP服务器的运营商选择将公网地址IP1、以及服务域名的DNS A类型记录提交给DNS服务器运营商,要求DNS服务器运营商将其添加到DNS服务器的域名数据库中。MPTCP服务器内部配置私网地址IP3或Wifi对应的私网地址IP4作为MPTCP会话的多路网络入口。终端设备访问MPTCP服务器的多媒体资源时,根据MPTCP服务器的域名向DNS服务器提交查询请求,从查询结果中获悉公网地址IP1的地址。Assumption: The operator of the MPTCP server chooses to submit the public network address IP1 and the DNS A type record of the service domain name to the DNS server operator, and asks the DNS server operator to add it to the DNS server's domain name database. The private network address IP3 or the private network address IP4 corresponding to Wifi is configured inside the MPTCP server as the multi-channel network entry of the MPTCP session. When the terminal device accesses the multimedia resources of the MPTCP server, it submits a query request to the DNS server according to the domain name of the MPTCP server, and learns the address of the public network address IP1 from the query result.
图33所示的为在如图30所示的架构中,本申请提供的确定MPTCP服务器的IP地址的方法1200的示意性流程图,图33所示的流程主要为终端设备通过MPTCP会话的首流建立过程获取私网地址对应的公网地址的过程。如图33所示的,该方法1200包括:S1210至S1260。Figure 33 is a schematic flowchart of a method 1200 for determining the IP address of an MPTCP server provided by the present application in the architecture shown in Figure 30 . The flow establishment process is the process of obtaining the public network address corresponding to the private network address. As shown in FIG. 33 , the method 1200 includes: S1210 to S1260.
S1210,终端设备和MPTCP服务器进行目的IP为公网地址IP1的MPTCP会话首个子流的三次握手。具体的,终端设备将TCP Syn报文转发到CPE1。该TCP Syn报文携带的五元组信息包括:S1210, the terminal device and the MPTCP server perform a three-way handshake of the first substream of the MPTCP session whose destination IP is the public network address IP1. Specifically, the terminal device forwards the TCP Syn message to CPE1. The quintuple information carried in the TCP Syn message includes:
源IP:公网地址IP2(即终端设备的IP地址);目的IP:公网地址IP1;源端口:port2(即终端设备本地随机分配空闲端口);目的端口:1000;协议类型:TCP。Source IP: public network address IP2 (that is, the IP address of the terminal device); destination IP: public network address IP1; source port: port2 (that is, the terminal device randomly assigns a free port locally); destination port: 1000; protocol type: TCP.
S1220,CPE1接收到该TCP Syn报文,根据TCP Syn报文的目的IP+目的端口号查询DNAT映射表,确定新的目的IP为私网地址IP3。修改该报文TCP头和IP头,重新封装后路由转发给MPTCP服务器。修改后的TCP报文五元组信息包括:S1220, CPE1 receives the TCP Syn message, queries the DNAT mapping table according to the destination IP+destination port number of the TCP Syn message, and determines that the new destination IP is the private network address IP3. Modify the TCP header and IP header of the packet, re-encapsulate it and forward it to the MPTCP server. The modified quintuple information of the TCP packet includes:
源IP:公网地址IP1;目的IP:私网地址IP3;源端口:port2;目的端口:43;协议类型:TCP。Source IP: public network address IP1; destination IP: private network address IP3; source port: port2; destination port: 43; protocol type: TCP.
S1230,MPTCP服务器接收到该CPE1转发的TCP Syn报文后,检查本地配置,假设:确定需要发布Wifi对应虚拟网口的IP4地址,查询缓存的私网地址和公网地址对应关系记录发现IP4对应公网地址IP6,端口号为2000,生成ADD_ADDR选项,ADD_ADDR选项携带该公网地址IP6和端口号2000,并将ADD_ADDR选项添加到Syn-Ack报文中经过CPE1发送给终端设备。Syn-Ack报文携带的五元组信息包括:S1230, after receiving the TCP Syn message forwarded by the CPE1, the MPTCP server checks the local configuration, assuming that: it is determined that the IP4 address of the virtual network port corresponding to Wifi needs to be published, and the cached private network address and public network address correspondence record is found to find that the IP4 corresponds to The public network address is IP6 and the port number is 2000. The ADD_ADDR option is generated. The ADD_ADDR option carries the public network address IP6 and port number 2000. The ADD_ADDR option is added to the Syn-Ack message and sent to the terminal device through CPE1. The quintuple information carried in the Syn-Ack packet includes:
源IP:私网地址IP3;目的IP:公网地址IP2;源端口:43;目的端口:port2;协议类型:TCP。Source IP: private network address IP3; destination IP: public network address IP2; source port: 43; destination port: port2; protocol type: TCP.
S1240,CPE1收到该Syn-Ack报文,根据源IP查询DNAT映射表,确定新的源IP为公网地址IP1,修改报文TCP头和IP头,重新封装后路由转发给终端设备。修改后的TCP报文五元组信息包括;S1240, CPE1 receives the Syn-Ack packet, queries the DNAT mapping table according to the source IP, determines that the new source IP is the public network address IP1, modifies the TCP header and IP header of the packet, re-encapsulates the packet and forwards it to the terminal device. The modified quintuple information of the TCP packet includes;
源IP:公网地址IP1;目的IP:公网地址IP2;源端口:1000;目的端口:port2;协议类型:TCP。Source IP: public network address IP1; destination IP: public network address IP2; source port: 1000; destination port: port2; protocol type: TCP.
S1250,终端设备收到该Syn-Ack报文,解析ADD_ADDR选项,缓存公网地址IP6和端口号2000,同时继续通过CPE1向MPTCP服务器发送TCP Ack报文,这样就完成MPTCP会话的首个子流的三次握手,MPTCP会话建链成功。S1250, the terminal device receives the Syn-Ack message, parses the ADD_ADDR option, caches the public network address IP6 and port number 2000, and continues to send the TCP Ack message to the MPTCP server through CPE1, thus completing the first substream of the MPTCP session. After three handshakes, the MPTCP session is successfully established.
S1260,终端设备利用公网地址IP6和端口号2000建立该MPTCP会话的第二条子流,发起第二条子流的三次握手交互,握手成功后加入当前的MPTCP会话。利用公网地址IP6和端口号2000建立该MPTCP会话的第二条子流的过程中,CPE2的NAT处理和CPE1的NAT处理描述一致。S1260, the terminal device establishes the second sub-stream of the MPTCP session by using the public network address IP6 and the port number 2000, initiates a three-way handshake interaction of the second sub-stream, and joins the current MPTCP session after the handshake is successful. In the process of establishing the second subflow of the MPTCP session by using the public network address IP6 and the port number 2000, the NAT processing of CPE2 is consistent with the description of the NAT processing of CPE1.
应理解,在本申请实施例中,由于DNS的A/AAAA记录中并不指示域名和服务器端口的信息,所以终端设备在和MPTCP服务器建立MPTCP会话的首个子流时,位于CPE1(NAT网关)后的MPTCP服务器接入首子流对应的网络接口IP地址,在CPE1上可以配置对应EIP模式,终端设备无法通过DNS查询获取MPTCP服务器对应CPE1上生成的DNAT规则表相关信息,从而获悉其可访问的公网端口(例如为上述例子中的端口号1000)信息,只能通过其它方式获取。例如,MPTCP服务器运营商的服务通告等。首子流建立后,MPTCP服务器能通过首子流携带ADD_ADDR选项通告其它网络入口的DNAT信息(该网络入口私网IP对应的公网IP和端口信息)。It should be understood that, in this embodiment of the present application, since the A/AAAA record of the DNS does not indicate the information of the domain name and the server port, the terminal device is located at CPE1 (NAT gateway) when establishing the first substream of the MPTCP session with the MPTCP server. After the MPTCP server accesses the IP address of the network interface corresponding to the first substream, the corresponding EIP mode can be configured on CPE1. The terminal device cannot obtain the relevant information of the DNAT rule table generated on the corresponding CPE1 by the MPTCP server through DNS query, so as to know that it is accessible. The information of the public network port (for example, the port number 1000 in the above example) can only be obtained by other means. For example, service announcements from MPTCP server operators, etc. After the first substream is established, the MPTCP server can advertise the DNAT information of other network portals (public IP and port information corresponding to the private IP of the network portal) by carrying the ADD_ADDR option in the first substream.
本申请提供的确定MPTCP服务器公网地址的方法,通过DHCP服务器将为后端的MPTCP服务配置的私网地址对应的公网地址和/或端口信息发送给后端的MPTCP 服务器。从而让MPTCP服务器能明确感知其各个私网IP对应的公网IP和/或端口信息,以便MPTCP服务器可以向MPTCP客户端通知私网IP对应的公网IP和/或端口信息,从而可以正确建立MPTCP会话的新的子流,保证了MPTCP会话可以顺序的建立子流,提高了MPTCP会话的效率。并且,减少了MPTCP服务器的本地配置,也不需要MPTCP服务器本地配置公网地址,避免了公网地址直接暴露在公网上从而影响其安全性。The method for determining the public network address of the MPTCP server provided by the present application sends the public network address and/or port information corresponding to the private network address configured for the back-end MPTCP service by the DHCP server to the back-end MPTCP server. In this way, the MPTCP server can clearly perceive the public network IP and/or port information corresponding to each private network IP, so that the MPTCP server can notify the MPTCP client of the public network IP and/or port information corresponding to the private network IP, so that it can be established correctly. The new substream of the MPTCP session ensures that the MPTCP session can establish substreams in sequence, and improves the efficiency of the MPTCP session. In addition, the local configuration of the MPTCP server is reduced, and the local configuration of the public network address of the MPTCP server is not required, which prevents the public network address from being directly exposed on the public network and thus affects its security.
应理解,上述只是为了帮助本领域技术人员更好地理解本申请实施例,而非要限制本申请实施例的范围。本领域技术人员根据所给出的上述示例,显然可以进行各种等价的修改或变化,例如,上述方法800至方法1200中某些步骤可以不必须的,或者可以新加入某些步骤等。或者上述任意两种或者任意多种实施例的组合。这样的修改、变化或者组合后的方案也落入本申请实施例的范围内。It should be understood that the above is only to help those skilled in the art to better understand the embodiments of the present application, but is not intended to limit the scope of the embodiments of the present application. Those skilled in the art can obviously make various equivalent modifications or changes based on the above examples. For example, some steps in the above methods 800 to 1200 may be unnecessary, or some new steps may be added. Or a combination of any two or any of the above embodiments. Such modifications, changes or combined solutions also fall within the scope of the embodiments of the present application.
还应理解,本申请实施例中的方式、情况、类别以及实施例的划分仅是为了描述的方便,不应构成特别的限定,各种方式、类别、情况以及实施例中的特征在不矛盾的情况下可以相结合。It should also be understood that the manners, situations, categories, and divisions of the embodiments in the embodiments of the present application are only for the convenience of description, and should not constitute a special limitation, and the various manners, categories, situations, and features in the embodiments are not contradictory. can be combined.
还应理解,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。It should also be understood that the various numbers and numbers involved in the embodiments of the present application are only for the convenience of description, and are not used to limit the scope of the embodiments of the present application. The size of the sequence numbers of the above processes does not mean the sequence of execution, and the execution sequence of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
还应理解,上文对本申请实施例的描述着重于强调各个实施例之间的不同之处,未提到的相同或相似之处可以互相参考,为了简洁,这里不再赘述。It should also be understood that the above description of the embodiments of the present application focuses on emphasizing the differences between the various embodiments, and the unmentioned same or similar points can be referred to each other, and are not repeated here for brevity.
还应理解,本申请实施例中,“预定义”可以通过在设备(中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本申请对于其具体的实现方式不做限定。It should also be understood that, in this embodiment of the present application, “predefinition” may be implemented by pre-saving corresponding codes, forms or other means that can be used to indicate relevant information in the device (the application does not limit its specific implementation means) .
以上结合图15至图33对本申请实施例的确定MPTCP服务器公网地址的方法做了详细说明。以下,结合图34至图37对本申请实施例通信装置进行详细说明。The method for determining the public network address of the MPTCP server according to the embodiment of the present application has been described in detail above with reference to FIG. 15 to FIG. 33 . Hereinafter, the communication device according to the embodiment of the present application will be described in detail with reference to FIG. 34 to FIG. 37 .
图34示出了本申请实施例的通信装置1300的示意性框图,该通信装置1300可以对应上述方法800中的各个实施例中描述的第一网关,或者上述方法900至方法1200中的各个实施例中描述的CPE1,也可以是应用于DHCP服务器或者CPE1的芯片或组件,并且,该通信装置1300各模块或单元分别用于执行上述方法800中的各个实施方式中的第一网关或者上述方法900至方法1200中各个实施例方式中的CPE1所执行的各动作或处理过程,如图34所示,该通信装置1300可以包括:处理单元1310和通信单元1320。FIG. 34 shows a schematic block diagram of a communication apparatus 1300 according to an embodiment of the present application, and the communication apparatus 1300 may correspond to the first gateway described in each of the embodiments of the foregoing method 800, or each of the foregoing methods 900 to 1200. The CPE1 described in the example may also be a chip or component applied to a DHCP server or CPE1, and each module or unit of the communication device 1300 is respectively used to execute the first gateway in each of the above-mentioned method 800 or the above-mentioned method. As shown in FIG. 34 , the communication apparatus 1300 may include a processing unit 1310 and a communication unit 1320 for each action or processing process performed by the CPE1 in each of the embodiments from 900 to the method 1200 .
处理单元1310,用于确定多路径传输控制协议MPTCP服务器的至少一个私网地址中每一个私网地址对应的公网地址,该公网地址用于该MPTCP服务器和MPTCP客户端建立MPTCP会话的子流;The processing unit 1310 is configured to determine the public network address corresponding to each private network address in the at least one private network address of the MPTCP server, and the public network address is used for the MPTCP server and the MPTCP client to establish a subordinate of the MPTCP session. flow;
通信单元1320,用于向该MPTCP服务器发送该至少一个私网地址中每一个私网地址对应的公网地址。The communication unit 1320 is configured to send the public network address corresponding to each private network address in the at least one private network address to the MPTCP server.
可选的,在本申请的一些实施例中,处理单元1310,还用于确定该至少一个私网地址中每一个私网地址对应的端口号;Optionally, in some embodiments of the present application, the processing unit 1310 is further configured to determine a port number corresponding to each private network address in the at least one private network address;
通信单元1320,还用于向该MPTCP服务器发送该至少一个私网地址中每一个私网地址对应的公网地址和端口号。The communication unit 1320 is further configured to send the public network address and port number corresponding to each private network address in the at least one private network address to the MPTCP server.
本申请提供通信装置,该通信装置将为后端的MPTCP服务配置的私网地址对应的公网地址、或者公网地址和端口信息发送给后端的MPTCP服务器。从而让MPTCP服务器能明确感知其各个私网IP对应的公网IP和/或端口信息,以便MPTCP服务器可以向MPTCP客户端通知私网IP对应的公网IP、或者私网IP对应公网IP和端口信息,从而可以正确建立MPTCP会话的新的子流,保证了MPTCP会话可以顺利的建立子流,提高了MPTCP会话的效率。并且,减少了MPTCP服务器的本地配置,也不需要MPTCP服务器本地配置公网地址,避免了公网地址直接暴露在公网上从而影响其安全性。The present application provides a communication device that sends the public network address corresponding to the private network address configured for the back-end MPTCP service, or the public network address and port information to the back-end MPTCP server. In this way, the MPTCP server can clearly perceive the public IP and/or port information corresponding to each private IP, so that the MPTCP server can notify the MPTCP client of the public IP corresponding to the private IP, or the private IP corresponding to the public IP and/or port information. port information, so that a new sub-flow of the MPTCP session can be correctly established, which ensures that the MPTCP session can successfully establish the sub-flow and improves the efficiency of the MPTCP session. In addition, the local configuration of the MPTCP server is reduced, and the local configuration of the public network address of the MPTCP server is not required, which prevents the public network address from being directly exposed on the public network and thus affects its security.
可选的,在本申请的一些实施例中,通信单元1320还用于:Optionally, in some embodiments of the present application, the communication unit 1320 is further configured to:
接收该MPTCP服务器发送的地址请求报文,Receive the address request message sent by the MPTCP server,
向该MPTCP服务器发送响应于该地址请求报文的第一应答报文,该第一应答报文包括:该至少一个私网地址中每一个私网地址对应的公网地址,或者,该至少一个私网地址中每一个私网地址对应的公网地址和端口号。Send a first response message to the MPTCP server in response to the address request message, where the first response message includes: a public network address corresponding to each private network address in the at least one private network address, or, the at least one The public network address and port number corresponding to each private network address in the private network address.
可选的,在本申请的一些实施例中,通信单元1320还用于:Optionally, in some embodiments of the present application, the communication unit 1320 is further configured to:
接收该MPTCP服务器发送的地址续租请求报文,Receive the address lease renewal request message sent by the MPTCP server,
向该MPTCP服务器发送响应于该地址续租请求报文的第二应答报文,该第二应答报文包括:该至少一个私网地址中每一个私网地址对应的公网地址,或者,该至少一个私网地址中每一个私网地址对应的公网地址和端口号。Send a second response message to the MPTCP server in response to the address renewal request message, where the second response message includes: a public network address corresponding to each private network address in the at least one private network address, or, the The public network address and port number corresponding to each private network address in the at least one private network address.
可选的,在本申请的一些实施例中,该第一应答报文或者该第二应答报文包括扩展的动态主机配置协议DHCP选项,该扩展的DHCP选项包括:该至少一个私网地址中每一个私网地址对应的公网地址,或者,该至少一个私网地址中每一个私网地址对应的公网地址和端口号。Optionally, in some embodiments of the present application, the first response message or the second response message includes an extended dynamic host configuration protocol DHCP option, and the extended DHCP option includes: the at least one private network address The public network address corresponding to each private network address, or the public network address and port number corresponding to each private network address in the at least one private network address.
可选的,在本申请的一些实施例中,该通信装置为动态主机配置协议DHCP服务器,或者为支持DHCP代理能力的网关设备,或者为支持DHCP服务器功能的网络地址转换NAT网关设备,或者为支持DHCP服务器和NAT功能的负载均衡器设备。Optionally, in some embodiments of the present application, the communication device is a dynamic host configuration protocol DHCP server, or a gateway device supporting the DHCP proxy capability, or a network address translation NAT gateway device supporting the DHCP server function, or A load balancer device that supports DHCP server and NAT functions.
应理解,通信装置1300中各单元执行上述相应步骤的具体过程请参照前文中结合图17、图18、图19、图23、图24、图25中以及方法800中的各个实施例中描述的第一网关执行步骤的相关描述,或者,图27、图29、图31、图33中以及方法900至方法1200中的各个实施例中描述的CPE1设备执行步骤的相关描述。为了简洁,这里不加赘述。It should be understood that, for the specific process of each unit in the communication device 1300 performing the above-mentioned corresponding steps, please refer to the foregoing descriptions in conjunction with FIG. 17 , FIG. 18 , FIG. 19 , FIG. 23 , FIG. 24 , FIG. Relevant descriptions of steps performed by the first gateway, or relevant descriptions of steps performed by the CPE1 device described in FIG. 27 , FIG. 29 , FIG. 31 , FIG. For the sake of brevity, they are not repeated here.
可选的,通信单元1320可以包括接收单元(模块)和发送单元(模块),用于执行前述各个方法实施例中第一网关或者CPE1接收信息和发送信息的步骤。可选的,通信装置1300还可以包括存储单元,用于存储处理单元1310和通信单元1320执行的指令。处理单元1310、通信单元1320和存储单元通信连接,存储单元存储指令,处理单元1310用于执行存储单元存储的指令,通信单元1320用于在处理单元1310的驱动下执行具体的信号收发。Optionally, the communication unit 1320 may include a receiving unit (module) and a sending unit (module), configured to perform the steps of receiving information and sending information by the first gateway or CPE1 in the foregoing method embodiments. Optionally, the communication apparatus 1300 may further include a storage unit for storing the instructions executed by the processing unit 1310 and the communication unit 1320 . The processing unit 1310, the communication unit 1320 and the storage unit are connected in communication, the storage unit stores instructions, the processing unit 1310 is used to execute the instructions stored in the storage unit, and the communication unit 1320 is used to perform specific signal sending and receiving under the driving of the processing unit 1310.
应理解,通信单元1320可以是收发器、输入/输出接口或接口电路等。存储单元 可以是存储器。处理单元1310可由处理器实现。如图35所示,通信装置1400可以包括处理器1410、存储器1420和收发器1430。It should be understood that the communication unit 1320 may be a transceiver, an input/output interface or an interface circuit, or the like. The storage unit may be a memory. The processing unit 1310 may be implemented by a processor. As shown in FIG. 35 , the communication apparatus 1400 may include a processor 1410 , a memory 1420 and a transceiver 1430 .
图34所示的通信装置1300或图35所示的通信装置1400能够实现图17、图18、图19、图23、图24、图25中以及方法800中的各个实施例中描述的第一网关执行的步骤,或者,能够实现图27、图29、图31、图33中以及方法900至方法1200中的各个实施例中描述的CPE1设备执行的步骤。类似的描述可以参考前述对应的方法中的描述。为避免重复,这里不再赘述。The communication device 1300 shown in FIG. 34 or the communication device 1400 shown in FIG. 35 can implement the first method described in each of the embodiments of FIGS. The steps performed by the gateway, alternatively, can implement the steps performed by the CPE1 device described in FIG. 27 , FIG. 29 , FIG. 31 , FIG. Similar descriptions can refer to the descriptions in the aforementioned corresponding methods. In order to avoid repetition, details are not repeated here.
图36示出了本申请实施例的通信装置1500的示意性框图,该通信装置1500可以对应上述方法800至方法1200中的各个实施例中描述的MPTCP服务器,也可以是应用于MPTCP服务器的芯片或组件,并且,该通信装置1500各模块或单元分别用于执行上述方法800至方法1200中各个实施例方式中的MPTCP服务器所执行的各动作或处理过程,如图36所示,该通信装置1500可以包括:处理单元1510和通信单元1520。FIG. 36 shows a schematic block diagram of a communication apparatus 1500 according to an embodiment of the present application. The communication apparatus 1500 may correspond to the MPTCP server described in each of the embodiments in the foregoing method 800 to method 1200, or may be a chip applied to the MPTCP server or components, and each module or unit of the communication device 1500 is respectively used to execute each action or process performed by the MPTCP server in each of the above-mentioned methods 800 to 1200 in the embodiments. As shown in FIG. 36 , the communication device 1500 may include: a processing unit 1510 and a communication unit 1520.
处理单元1510,用于获取该MPTCP服务器的至少一个私网地址中每一个私网地址分别对应的公网地址,该公网地址用于该MPTCP服务器和MPTCP客户端建立MPTCP会话的子流。The processing unit 1510 is configured to obtain a public network address corresponding to each private network address of the at least one private network address of the MPTCP server, where the public network address is used for the MPTCP server and the MPTCP client to establish a substream of the MPTCP session.
通信单元1520,用于向MPTCP客户端发送该MPTCP服务器的至少一个私网地址中每一个私网地址分别对应的公网地址。The communication unit 1520 is configured to send the public network address corresponding to each of the at least one private network address of the MPTCP server to the MPTCP client.
可选的,在本申请的一些实施例中,处理单元1510,还用于获取该至少一个私网地址中每一个私网地址对应的端口号;Optionally, in some embodiments of the present application, the processing unit 1510 is further configured to obtain a port number corresponding to each private network address in the at least one private network address;
通信单元1520,还用于向MPTCP客户端发送该MPTCP服务器的至少一个私网地址中每一个私网地址分别对应的公网地址和端口号。The communication unit 1520 is further configured to send the public network address and port number corresponding to each of the at least one private network address of the MPTCP server to the MPTCP client.
本申请提供通信装置,该通信装置可以获取自己至少一个私网地址中每一个私网地址分别对应的公网地址和端口号和/或端口信息,并将该信息发送给MPTCP客户端,从而可以正确的和MPTCP客户端建立MPTCP会话的新的子流,保证了MPTCP会话可以顺利的建立子流,提高了MPTCP会话的效率。并且,减少了该通信装置的本地配置,也不需要该通信装置本地配置公网地址,避免了公网地址直接暴露在公网上从而影响其安全性。The present application provides a communication device, which can obtain the public network address, port number and/or port information corresponding to each private network address of its at least one private network address, and send the information to the MPTCP client, so that it can Establishing a new substream of the MPTCP session with the MPTCP client correctly ensures that the MPTCP session can successfully establish the substream and improves the efficiency of the MPTCP session. In addition, the local configuration of the communication device is reduced, and the communication device does not need to be configured with a public network address locally, thereby preventing the public network address from being directly exposed on the public network and affecting its security.
可选的,在本申请的一些实施例中,通信单元1520还用于:Optionally, in some embodiments of the present application, the communication unit 1520 is further configured to:
向第一网关发送地址请求报文;sending an address request message to the first gateway;
接收该第一网关发送的响应于该地址请求报文的第一应答报文,该第一应答报文包括:该至少一个私网地址中每一个私网地址对应的公网地址,或者,该至少一个私网地址中每一个私网地址对应的公网地址和端口号。Receive a first response message sent by the first gateway in response to the address request message, where the first response message includes: a public network address corresponding to each private network address in the at least one private network address, or, the The public network address and port number corresponding to each private network address in the at least one private network address.
可选的,在本申请的一些实施例中,通信单元1520还用于:Optionally, in some embodiments of the present application, the communication unit 1520 is further configured to:
向第一网关发送地址续租请求报文;sending an address lease renewal request message to the first gateway;
接收该第一网关发送响应于该地址续租请求报文的第二应答报文,该应答报文包括:该至少一个私网地址中每一个私网地址对应的公网地址,或者,该至少一个私网地址中每一个私网地址对应的公网地址和端口号。Receive a second response message sent by the first gateway in response to the address renewal request message, where the response message includes: a public network address corresponding to each private network address in the at least one private network address, or, the at least one private network address The public network address and port number corresponding to each private network address in a private network address.
可选的,在本申请的一些实施例中,该第一应答报文或者该第二应答报文包括扩展的动态主机配置协议DHCP选项,该扩展的DHCP选项包括:该至少一个私网地址 中每一个私网地址对应的公网地址,或者,该至少一个私网地址中每一个私网地址对应的公网地址和端口号。Optionally, in some embodiments of the present application, the first response message or the second response message includes an extended dynamic host configuration protocol DHCP option, and the extended DHCP option includes: the at least one private network address The public network address corresponding to each private network address, or the public network address and port number corresponding to each private network address in the at least one private network address.
可选的,在本申请的一些实施例中,该第一网关为动态主机配置协议DHCP服务器,或者为支持DHCP代理能力的网关设备,或者为支持DHCP服务器功能的网络地址转换NAT网关设备,或者为支持DHCP服务器和NAT功能的负载均衡器设备。Optionally, in some embodiments of the present application, the first gateway is a dynamic host configuration protocol DHCP server, or a gateway device supporting the DHCP proxy capability, or a network address translation NAT gateway device supporting the DHCP server function, or It is a load balancer device that supports DHCP server and NAT functions.
可选的,在本申请的一些实施例中,通信单元1520还用于:在该通信装置和该MPTCP客户端的MPTCP会话首个子流的建立过程中,通过TCP报文将该至少一个私网地址中每一个私网地址对应的公网地址发送给该MPTCP客户端,或者,将该至少一个私网地址中每一个私网地址对应的公网地址和端口号发送给该MPTCP客户端。Optionally, in some embodiments of the present application, the communication unit 1520 is further configured to: in the process of establishing the first substream of the MPTCP session between the communication device and the MPTCP client, send the at least one private network address to the at least one private network address through a TCP message. Send the public network address corresponding to each private network address in the at least one private network address to the MPTCP client, or send the public network address and port number corresponding to each private network address in the at least one private network address to the MPTCP client.
可选的,在本申请的一些实施例中,通信单元1520还用于:在该通信装置和该MPTCP客户端的MPTCP会话首个子流的建立后,向MPTCP客户端发送该至少一个私网地址中每一个私网地址对应的公网地址,或者,该至少一个私网地址中每一个私网地址对应的公网地址和端口号。Optionally, in some embodiments of the present application, the communication unit 1520 is further configured to: after the establishment of the first substream of the MPTCP session between the communication device and the MPTCP client, send the at least one private network address to the MPTCP client. The public network address corresponding to each private network address, or the public network address and port number corresponding to each private network address in the at least one private network address.
应理解,通信装置1500中各单元执行上述相应步骤的具体过程请参照前文中结合图17、图18、图19、图23、图24、图25、图27、图29、图31、图33中以及方法800至方法1200中的各个实施例中描述的MPTCP服务器执行步骤的相关描述。为了简洁,这里不加赘述。It should be understood that, for the specific process of each unit in the communication device 1500 performing the above corresponding steps, please refer to the foregoing in conjunction with FIGS. 17, 18, 19, 23, 24, 25, 27, 29, 31, and 33. Relevant descriptions of the steps performed by the MPTCP server described in each of the embodiments in and in the method 800 to the method 1200 . For the sake of brevity, they are not repeated here.
可选的,通信单元1520可以包括接收单元(模块)和发送单元(模块),用于执行前述各个方法实施例中MPTCP服务器接收信息和发送信息的步骤。可选的,通信装置1500还可以包括存储单元,用于存储处理单元1510和通信单元1520执行的指令。处理单元1510、通信单元1520和存储单元通信连接,存储单元存储指令,处理单元1510用于执行存储单元存储的指令,通信单元1520用于在处理单元1510的驱动下执行具体的信号收发。Optionally, the communication unit 1520 may include a receiving unit (module) and a sending unit (module), configured to perform the steps of receiving information and sending information by the MPTCP server in the foregoing method embodiments. Optionally, the communication apparatus 1500 may further include a storage unit for storing the instructions executed by the processing unit 1510 and the communication unit 1520 . The processing unit 1510, the communication unit 1520 and the storage unit are connected in communication, the storage unit stores instructions, the processing unit 1510 is used to execute the instructions stored in the storage unit, and the communication unit 1520 is used to perform specific signal sending and receiving under the driving of the processing unit 1510.
应理解,通信单元1520可以是收发器、输入/输出接口或接口电路等。存储单元可以是存储器。处理单元1510可由处理器实现。如图37所示,通信装置1600可以包括处理器1610、存储器1620和收发器1630。It should be understood that the communication unit 1520 may be a transceiver, an input/output interface or an interface circuit, or the like. The storage unit may be a memory. The processing unit 1510 may be implemented by a processor. As shown in FIG. 37 , the communication apparatus 1600 may include a processor 1610 , a memory 1620 and a transceiver 1630 .
图36所示的通信装置1500或图37所示的通信装置1600能够实现图17、图18、图19、图23、图24、图25、图27、图29、图31、图33中以及方法800至方法1200中的各个实施例中描述的MPTCP服务器执行的步骤。类似的描述可以参考前述对应的方法中的描述。为避免重复,这里不再赘述。The communication device 1500 shown in FIG. 36 or the communication device 1600 shown in FIG. 37 can implement the methods in FIG. 17 , FIG. 18 , FIG. 19 , FIG. 23 , FIG. 24 , FIG. The steps performed by the MPTCP server described in the various embodiments of method 800 to method 1200. Similar descriptions can refer to the descriptions in the aforementioned corresponding methods. In order to avoid repetition, details are not repeated here.
还应理解,以上装置中单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。这里该处理元件又可以称为处理器,可以是一种具有信号处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。It should also be understood that the division of units in the above apparatus is only a division of logical functions, and may be fully or partially integrated into a physical entity in actual implementation, or may be physically separated. And all the units in the device can be realized in the form of software calling through the processing element; also can all be realized in the form of hardware; some units can also be realized in the form of software calling through the processing element, and some units can be realized in the form of hardware. For example, each unit can be a separately established processing element, or can be integrated in a certain chip of the device to be implemented, and can also be stored in the memory in the form of a program, which can be called by a certain processing element of the device and execute the unit's processing. Features. Here, the processing element may also be called a processor, which may be an integrated circuit with signal processing capability. In the implementation process, each step of the above method or each of the above units may be implemented by an integrated logic circuit of hardware in the processor element or implemented in the form of software being invoked by the processing element.
在一个例子中,以上任一装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个专用集成电路(application specific integrated circuit,ASIC),或,一个或多个数字信号处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA),或这些集成电路形式中至少两种的组合。再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上***(system-on-a-chip,SOC)的形式实现。In one example, a unit in any of the above apparatuses may be one or more integrated circuits configured to implement the above methods, eg, one or more application specific integrated circuits (ASICs), or, one or more A plurality of digital signal processors (DSPs), or, one or more field programmable gate arrays (FPGAs), or a combination of at least two of these integrated circuit forms. For another example, when a unit in the apparatus can be implemented in the form of a processing element scheduler, the processing element can be a general-purpose processor, such as a central processing unit (central processing unit, CPU) or other processors that can invoke programs. For another example, these units can be integrated together and implemented in the form of a system-on-a-chip (SOC).
本申请实施例还提供了一种通信***,该通信***包括:上述方法200和方法300中的MPTCP客户端和DNS服务器,或者,该通信***包括:上述方法800中的MPTCP客户端、第一网关、或者MPTCP客户端中的至少两个。The embodiment of the present application further provides a communication system, the communication system includes: the MPTCP client and the DNS server in the above method 200 and 300, or the communication system includes: the MPTCP client in the above method 800, the first At least two of a gateway, or an MPTCP client.
本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序代码,该计算机程序包括用于执行上述本申请实施例提供的任意一种确定MPTCP服务器公网地址的方法的指令。该可读介质可以是只读存储器(read-only memory,ROM)或随机存取存储器(random access memory,RAM),本申请实施例对此不做限制。Embodiments of the present application further provide a computer-readable storage medium for storing computer program codes, where the computer program includes instructions for executing any of the methods for determining a public network address of an MPTCP server provided by the above embodiments of the present application. The readable medium may be a read-only memory (read-only memory, ROM) or a random access memory (random access memory, RAM), which is not limited in this embodiment of the present application.
本申请还提供了一种计算机程序产品,该计算机程序产品包括指令,当该指令被执行时,以使得该MPTCP客户端、DNS服务器、第一网关、MPTCP服务器执行对应于上述方法中的对应的操作。The present application also provides a computer program product, the computer program product includes an instruction, when the instruction is executed, so that the MPTCP client, the DNS server, the first gateway, and the MPTCP server execute the corresponding method in the above method. operate.
本申请实施例还提供了一种位于通信装置中的芯片,该芯片包括:处理单元和通信单元,该处理单元,例如可以是处理器,该通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行计算机指令,以使所述通信装置执行上述本申请实施例提供的任一种确定MPTCP服务器公网地址的方法。An embodiment of the present application further provides a chip located in a communication device, the chip includes: a processing unit and a communication unit, the processing unit may be, for example, a processor, and the communication unit may be, for example, an input/output interface, a pin or a circuit, etc. The processing unit can execute computer instructions, so that the communication device executes any one of the methods for determining the public network address of the MPTCP server provided by the above embodiments of the present application.
可选地,该计算机指令被存储在存储单元中。Optionally, the computer instructions are stored in a storage unit.
可选地,该存储单元为该芯片内的存储单元,如寄存器、缓存等,该存储单元还可以是该终端内的位于该芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。其中,上述任一处提到的处理器,可以是一个CPU,微处理器,ASIC,或一个或多个用于控制上述的反馈信息的传输方法的程序执行的集成电路。该处理单元和该存储单元可以解耦,分别设置在不同的物理设备上,通过有线或者无线的方式连接来实现该处理单元和该存储单元的各自的功能,以支持该***芯片实现上述实施例中的各种功能。或者,该处理单元和该存储器也可以耦合在同一个设备上。Optionally, the storage unit is a storage unit in the chip, such as a register, a cache, etc., and the storage unit can also be a storage unit located outside the chip in the terminal, such as a read-only memory (ROM). ) or other types of static storage devices that can store static information and instructions, random access memory (RAM), etc. Wherein, the processor mentioned in any one of the above may be a CPU, a microprocessor, an ASIC, or one or more integrated circuits for controlling the program execution of the above-mentioned transmission method of feedback information. The processing unit and the storage unit can be decoupled, respectively disposed on different physical devices, and connected in a wired or wireless manner to implement the respective functions of the processing unit and the storage unit, so as to support the system chip to implement the above embodiments various functions in . Alternatively, the processing unit and the memory may also be coupled on the same device.
其中,本实施例提供的通信装置、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。Wherein, the communication device, computer-readable storage medium, computer program product or chip provided in this embodiment are all used to execute the corresponding method provided above. Therefore, for the beneficial effects that can be achieved, reference may be made to the above-provided method. The beneficial effects in the corresponding method will not be repeated here.
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易 失性存储器可以是RAM,其用作外部高速缓存。RAM有多种不同的类型,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。It can be understood that the memory in this embodiment of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory. Wherein, the non-volatile memory may be ROM, programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically erasable programmable read-only memory (electrically EPROM) , EEPROM) or flash memory. Volatile memory can be RAM, which acts as an external cache. There are many different types of RAM such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (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 link dynamic random access memory (synch link DRAM, SLDRAM) and direct memory bus random access memory Access memory (direct rambus RAM, DR RAM).
本文中术语“***”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。The terms "system" and "network" are often used interchangeably herein. The term "and/or" in this article is only an association relationship to describe the associated objects, indicating that there can be three kinds of relationships, for example, A and/or B, it can mean that A exists alone, A and B exist at the same time, and A and B exist independently B these three cases. In addition, the character "/" in this document generally indicates that the related objects are an "or" relationship.
在本申请中可能出现的对各种消息/信息/设备/网元/***/装置/动作/操作/流程/概念等各类客体进行了赋名,可以理解的是,这些具体的名称并不构成对相关客体的限定,所赋名称可随着场景,语境或者使用习惯等因素而变更,对本申请中技术术语的技术含义的理解,应主要从其在技术方案中所体现/执行的功能和技术效果来确定。Various messages/information/equipment/network element/system/device/action/operation/process/concept that may appear in this application are given names. It can be understood that these specific names do not Constitutes a limitation on related objects, and the assigned names can be changed according to factors such as the scene, context or usage habits. The understanding of the technical meaning of the technical terms in this application should mainly be based on the functions embodied/executed in the technical solution. and technical effects.
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。In the various embodiments of the present application, if there is no special description or logical conflict, the terms and/or descriptions between different embodiments are consistent and can be referred to each other, and the technical features in different embodiments are based on their inherent Logical relationships can be combined to form new embodiments.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Those of ordinary skill in the art can realize that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Skilled artisans may implement the described functionality using different methods for each particular application, but such implementations should not be considered beyond the scope of this application.
本申请的实施例中的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器等数据存储设备。The methods in the embodiments of the present application may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are executed in whole or in part. The computer may be a general purpose computer, special purpose computer, computer network, or other programmable device. The computer program or instructions may be stored in or transmitted over a computer-readable storage medium. The computer-readable storage medium can be any available media that can be accessed by a computer or a data storage device such as a server that integrates one or more available media.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of the above-described systems, devices and units may refer to the corresponding processes in the foregoing method embodiments, which will not be repeated here.
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed system, apparatus and method may be implemented in other manners. For example, the apparatus embodiments described above are only illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not implemented. On the other hand, the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separated, and components shown as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。The functions, if implemented in the form of software functional units and sold or used as independent products, may be stored in a computer-readable storage medium. Based on such understanding, the technical solution of the present application can be embodied in the form of a software product in essence, or the part that contributes to the prior art or the part of the technical solution, and the computer software product is stored in a readable storage medium , including several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned readable storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk, etc. that can store program codes medium.
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。The above are only specific embodiments of the present application, but the protection scope of the present application is not limited to this. should be covered within the scope of protection of this application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims (34)

  1. 一种确定MPTCP服务器公网地址的方法,其特征在于,包括:A method for determining a public network address of an MPTCP server, comprising:
    多路径传输控制协议MPTCP客户端向域名***DNS服务器发送第一请求,所述第一请求包括第一域名,所述第一请求用于请求所述第一域名对应的MPTCP服务器的至少一个互联网协议IP地址和所述MPTCP服务器对应的第一标识;The Multipath Transmission Control Protocol (MPTCP) client sends a first request to the Domain Name System DNS server, where the first request includes a first domain name, and the first request is used to request at least one Internet Protocol of the MPTCP server corresponding to the first domain name The first identifier corresponding to the IP address and the MPTCP server;
    所述议MPTCP客户端接收所述DNS服务器发送的响应于所述第一请求的第一信息,所述第一信息包括:所述第一域名对应的MPTCP服务器的至少一个IP地址和所述MPTCP服务器对应的第一标识,一个第一标识用于唯一标识一个MPTCP服务器;The MPTCP client receives the first information sent by the DNS server in response to the first request, where the first information includes: at least one IP address of the MPTCP server corresponding to the first domain name and the MPTCP The first identifier corresponding to the server, a first identifier is used to uniquely identify an MPTCP server;
    所述MPTCP客户端根据所述第一信息,确定与所述第一域名和所述第一标识对应的所述MPTCP服务器的至少一个IP地址。The MPTCP client determines at least one IP address of the MPTCP server corresponding to the first domain name and the first identifier according to the first information.
  2. 根据权利要求1所述的方法,其特征在于,所述方法还包括:The method according to claim 1, wherein the method further comprises:
    所述MPTCP客户端根据所述MPTCP服务器的至少一个IP地址,建立与所述MPTCP服务器的MPTCP会话的首个子流。The MPTCP client establishes the first substream of the MPTCP session with the MPTCP server according to at least one IP address of the MPTCP server.
  3. 根据权利要求2所述的方法,其特征在于,所述MPTCP客户端根据所述MPTCP服务器的多个IP地址,建立与所述MPTCP服务器的MPTCP会话的首个子流,包括:The method according to claim 2, wherein the MPTCP client establishes the first substream of the MPTCP session with the MPTCP server according to the multiple IP addresses of the MPTCP server, comprising:
    所述MPTCP客户端依次利用所述MPTCP服务器的多个IP地址建立首个子流,最先建立成功的子流为所述首个子流,所述首个子流对应第一IP地址,所述多个IP地址包括所述第一IP地址;The MPTCP client sequentially uses multiple IP addresses of the MPTCP server to establish the first sub-flow, the first sub-flow that is successfully established is the first sub-flow, the first sub-flow corresponds to the first IP address, and the multiple The IP address includes the first IP address;
    所述MPTCP客户端将根据第二IP地址建立成功的子流加入到所述首个子流对应的MPTCP会话中,所述第二IP地址为所述MPTCP服务器的多个IP地址除所述第一IP地址之外的IP地址,所述多个IP地址包括所述第二IP地址。The MPTCP client adds the substream successfully established according to the second IP address to the MPTCP session corresponding to the first substream, where the second IP address is the multiple IP addresses of the MPTCP server except the first substream. An IP address other than an IP address, the plurality of IP addresses include the second IP address.
  4. 根据权利要求2所述的方法,其特征在于,所述MPTCP客户端根据所述MPTCP服务器的多个IP地址,建立与所述MPTCP服务器的MPTCP会话的首个子流,包括:The method according to claim 2, wherein the MPTCP client establishes the first substream of the MPTCP session with the MPTCP server according to the multiple IP addresses of the MPTCP server, comprising:
    所述MPTCP客户端同时利用所述MPTCP服务器的多个IP地址分别建立首个子流,最先建立成功的子流为所述首个子流,所述首个子流对应第一IP地址,所述多个IP地址包括所述第一IP地址;The MPTCP client uses the multiple IP addresses of the MPTCP server to establish the first sub-flow respectively, the first sub-flow that is successfully established is the first sub-flow, the first sub-flow corresponds to the first IP address, and the multiple the IP addresses include the first IP address;
    所述MPTCP客户端将根据第二IP地址正在建立和/或已经建立成功的首个子流撤销,并将利用所述第二IP地址重新建立成功的子流加入到所述首个子流对应的MPTCP会话中,所述第二IP地址为所述MPTCP服务器的多个IP地址除所述第一IP地址之外的IP地址,所述多个IP地址包括所述第二IP地址。The MPTCP client cancels the first sub-flow that is being established and/or has been successfully established according to the second IP address, and adds the successfully re-established sub-flow using the second IP address to the MPTCP corresponding to the first sub-flow In the session, the second IP address is an IP address other than the first IP address of multiple IP addresses of the MPTCP server, and the multiple IP addresses include the second IP address.
  5. 根据权利要求2所述的方法,其特征在于,所述MPTCP客户端根据所述MPTCP服务器的多个IP地址,建立与所述MPTCP服务器的MPTCP会话的首个子流,包括:The method according to claim 2, wherein the MPTCP client establishes the first substream of the MPTCP session with the MPTCP server according to the multiple IP addresses of the MPTCP server, comprising:
    所述MPTCP客户端同时利用所述MPTCP服务器的多个IP地址分别建立首个子流,最先建立成功的子流为第一首个子流,所述第一首个子流对应第一IP地址,所述多个IP地址包括所述第一IP地址;The MPTCP client uses the multiple IP addresses of the MPTCP server to establish the first sub-flow respectively, and the first successful sub-flow is the first first sub-flow, and the first first sub-flow corresponds to the first IP address, so The plurality of IP addresses include the first IP address;
    所述MPTCP客户端将根据第二IP地址建立成功的第二首个子流加入到所述第一首个子流对应的MPTCP会话中,所述第二IP地址为所述MPTCP服务器的多个IP地址除所述第一IP地址之外的IP地址,所述多个IP地址包括所述第二IP地址。The MPTCP client adds the second first substream successfully established according to the second IP address to the MPTCP session corresponding to the first first substream, where the second IP addresses are multiple IP addresses of the MPTCP server IP addresses other than the first IP address, the plurality of IP addresses including the second IP address.
  6. 根据权利要求1至5中任一项所述的方法,其特征在于,所述第一请求还用于 请求第一类型的资源记录,所述第一类型的资源记录包括:所述第一域名对应的所述至少一个MPTCP服务器中每个MPTCP服务器对应的所述第一标识。The method according to any one of claims 1 to 5, wherein the first request is further used to request a resource record of a first type, and the resource record of the first type comprises: the first domain name The first identifier corresponding to each MPTCP server in the corresponding at least one MPTCP server.
  7. 根据权利要求1至6中任一项所述的方法,其特征在于,所述第一标识为MPTCP服务器对应的通用唯一识别码UUID。The method according to any one of claims 1 to 6, wherein the first identifier is a universal unique identifier UUID corresponding to the MPTCP server.
  8. 一种确定MPTCP服务器公网地址的方法,其特征在于,包括:A method for determining a public network address of an MPTCP server, comprising:
    第一DNS服务器接收多路径传输控制协议MPTCP客户端发送的第一请求,所述第一请求包括第一域名,所述第一请求用于请求所述第一域名对应的MPTCP服务器的至少一个互联网协议IP地址和所述MPTCP服务器对应的第一标识;The first DNS server receives a first request sent by a multi-path transmission control protocol MPTCP client, the first request includes a first domain name, and the first request is used to request at least one Internet connection of the MPTCP server corresponding to the first domain name The protocol IP address and the first identifier corresponding to the MPTCP server;
    所述第一DNS服务器向所述MPTCP客户端发送响应于所述第一请求的第一信息,所述第一信息包括:所述第一域名对应的MPTCP服务器的至少一个IP地址和所述MPTCP服务器对应的第一标识,一个第一标识用于唯一标识一个MPTCP服务器。The first DNS server sends first information in response to the first request to the MPTCP client, where the first information includes: at least one IP address of the MPTCP server corresponding to the first domain name and the MPTCP The first identifier corresponding to the server, where a first identifier is used to uniquely identify an MPTCP server.
  9. 根据权利要求8所述的方法,其特征在于,所述方法还包括:The method according to claim 8, wherein the method further comprises:
    所述第一DNS服务器获取第二信息,所述第二信息包括:至少一个域名中每个域名对应的MPTCP服务器的IP地址,以及MPTCP服务器对应的所述第一标识,所述至少一个域名包括所述第一域名,一个域名对应至少一个MPTCP服务器。The first DNS server obtains second information, where the second information includes: the IP address of the MPTCP server corresponding to each domain name in the at least one domain name, and the first identifier corresponding to the MPTCP server, and the at least one domain name includes For the first domain name, one domain name corresponds to at least one MPTCP server.
  10. 根据权利要求9所述的方法,其特征在于,所述第一DNS服务器获取第二信息,包括:The method according to claim 9, wherein obtaining the second information by the first DNS server comprises:
    所述第一DNS服务器向第二DNS服务器发送第二请求,所述第二请求用于请求所述第一域名对应的MPTCP服务器的至少一个IP地址以及所述MPTCP服务器对应的所述第一标识;The first DNS server sends a second request to the second DNS server, where the second request is used to request at least one IP address of the MPTCP server corresponding to the first domain name and the first identifier corresponding to the MPTCP server ;
    所述第一DNS服务器接收来自于所述第二DNS服务器的响应于所述第二请求的所述第二信息。The first DNS server receives the second information from the second DNS server in response to the second request.
  11. 根据权利要求8至10中任一项所述的方法,其特征在于,所述第一请求还用于请求第一类型的资源记录,所述第一类型的资源记录包括:所述第一域名对应的所述至少一个MPTCP服务器中每个MPTCP服务器对应的所述第一标识。The method according to any one of claims 8 to 10, wherein the first request is further used to request a resource record of a first type, and the resource record of the first type comprises: the first domain name The first identifier corresponding to each MPTCP server in the corresponding at least one MPTCP server.
  12. 根据权利要求8至11中任一项所述的方法,其特征在于,所述第一标识为MPTCP服务器对应的通用唯一识别码UUID。The method according to any one of claims 8 to 11, wherein the first identifier is a universal unique identifier UUID corresponding to the MPTCP server.
  13. 一种确定MPTCP服务器公网地址的方法,其特征在于,包括:A method for determining a public network address of an MPTCP server, comprising:
    第一网关确定多路径传输控制协议MPTCP服务器的至少一个私网地址中每一个私网地址对应的公网地址,所述公网地址用于所述MPTCP服务器和MPTCP客户端建立MPTCP会话的子流;The first gateway determines a public network address corresponding to each private network address of the at least one private network address of the MPTCP server, and the public network address is used for the MPTCP server and the MPTCP client to establish a substream of the MPTCP session ;
    所述第一网关向所述MPTCP服务器发送所述至少一个私网地址中每一个私网地址对应的公网地址。The first gateway sends a public network address corresponding to each private network address in the at least one private network address to the MPTCP server.
  14. 根据权利要求13所述的方法,其特征在于,所述方法还包括:The method of claim 13, wherein the method further comprises:
    所述第一网关接收所述MPTCP服务器发送的地址请求报文;receiving, by the first gateway, an address request message sent by the MPTCP server;
    所述第一网关向所述MPTCP服务器发送所述至少一个私网地址中每一个私网地址对应的公网地址,包括:The first gateway sends, to the MPTCP server, the public network address corresponding to each private network address in the at least one private network address, including:
    所述第一网关向所述MPTCP服务器发送响应于所述地址请求报文的第一应答报文,所述第一应答报文包括:所述至少一个私网地址中每一个私网地址对应的公网地 址。The first gateway sends a first response message in response to the address request message to the MPTCP server, where the first response message includes: the address corresponding to each private network address in the at least one private network address; public network address.
  15. 根据权利要求13所述的方法,其特征在于,所述方法还包括:The method of claim 13, wherein the method further comprises:
    所述第一网关接收所述MPTCP服务器发送的地址续租请求报文;receiving, by the first gateway, an address lease renewal request message sent by the MPTCP server;
    所述第一网关向所述MPTCP服务器发送所述至少一个私网地址中每一个私网地址对应的公网地址,包括:The first gateway sends, to the MPTCP server, the public network address corresponding to each private network address in the at least one private network address, including:
    所述第一网关向所述MPTCP服务器发送响应于所述地址续租请求报文的第二应答报文,所述第二应答报文包括:所述至少一个私网地址中每一个私网地址对应的公网地址。The first gateway sends a second response message to the MPTCP server in response to the address renewal request message, where the second response message includes: each private network address of the at least one private network address The corresponding public network address.
  16. 根据权利要求14或15所述的方法,其特征在于,所述第一应答报文或者所述第二应答报文包括扩展的动态主机配置协议DHCP选项,所述扩展的DHCP选项包括:所述至少一个私网地址中每一个私网地址对应的公网地址。The method according to claim 14 or 15, wherein the first response message or the second response message includes an extended Dynamic Host Configuration Protocol (DHCP) option, and the extended DHCP option includes: the The public network address corresponding to each private network address in the at least one private network address.
  17. 根据权利要求13至16中任一项所述的方法,其特征在于,所述第一网关为动态主机配置协议DHCP服务器,或者为支持DHCP代理能力的网关设备,或者为支持DHCP服务器功能的网络地址转换NAT网关设备,或者为支持DHCP服务器和NAT功能的负载均衡器设备。The method according to any one of claims 13 to 16, wherein the first gateway is a Dynamic Host Configuration Protocol (DHCP) server, or a gateway device supporting a DHCP proxy capability, or a network supporting a DHCP server function Address translation NAT gateway device, or a load balancer device that supports DHCP server and NAT functions.
  18. 根据权利要求13至17中任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 13 to 17, wherein the method further comprises:
    所述第一网元确定所述至少一个私网地址中每一个私网地址对应的端口号;The first network element determines a port number corresponding to each private network address in the at least one private network address;
    所述第一网关向所述MPTCP服务器发送所述至少一个私网地址中每一个私网地址对应的公网地址,包括:The first gateway sends, to the MPTCP server, the public network address corresponding to each private network address in the at least one private network address, including:
    所述第一网关向所述MPTCP服务器发送所述至少一个私网地址中每一个私网地址对应的公网地址和端口号。The first gateway sends, to the MPTCP server, the public network address and port number corresponding to each private network address in the at least one private network address.
  19. 一种确定MPTCP服务器公网地址的方法,其特征在于,包括:A method for determining a public network address of an MPTCP server, comprising:
    MPTCP服务器获取所述MPTCP服务器的至少一个私网地址中每一个私网地址分别对应的公网地址,所述公网地址用于所述MPTCP服务器和MPTCP客户端建立MPTCP会话的子流;The MPTCP server obtains the public network address corresponding to each private network address in the at least one private network address of the MPTCP server, and the public network address is used for the MPTCP server and the MPTCP client to establish a substream of the MPTCP session;
    所述MPTCP服务器向MPTCP客户端发送所述MPTCP服务器的至少一个私网地址中每一个私网地址分别对应的公网地址。The MPTCP server sends to the MPTCP client the public network address corresponding to each private network address in the at least one private network address of the MPTCP server.
  20. 根据权利要求19所述的方法,其特征在于,所述MPTCP服务器获取所述至少一个私网地址中每一个私网地址对应的公网地址,包括:The method according to claim 19, wherein the MPTCP server obtains the public network address corresponding to each private network address in the at least one private network address, comprising:
    所述MPTCP服务器向第一网关发送地址请求报文;The MPTCP server sends an address request message to the first gateway;
    所述MPTCP服务器接收所述第一网关发送的响应于所述地址请求报文的第一应答报文,所述第一应答报文包括:所述至少一个私网地址中每一个私网地址对应的公网地址。The MPTCP server receives a first response message sent by the first gateway in response to the address request message, where the first response message includes: each private network address in the at least one private network address corresponds to 's public network address.
  21. 根据权利要求19所述的方法,其特征在于,所述MPTCP服务器获取所述至少一个私网地址中每一个私网地址对应的公网地址,包括:The method according to claim 19, wherein the MPTCP server obtains the public network address corresponding to each private network address in the at least one private network address, comprising:
    所述MPTCP服务器向第一网关发送地址续租请求报文;The MPTCP server sends an address lease renewal request message to the first gateway;
    所述MPTCP服务器接收所述第一网关发送响应于所述地址续租请求报文的第二应答报文,所述应答报文包括:所述至少一个私网地址中每一个私网地址对应的公网地址。The MPTCP server receives a second response message sent by the first gateway in response to the address renewal request message, where the response message includes: the address corresponding to each private network address in the at least one private network address; public network address.
  22. 根据权利要求20或21所述的方法,其特征在于,所述第一应答报文或者所述第二应答报文包括扩展的动态主机配置协议DHCP选项,所述扩展的DHCP选项包括:所述至少一个私网地址中每一个私网地址对应的公网地址,或者,所述至少一个私网地址中每一个私网地址对应的公网地址和端口号。The method according to claim 20 or 21, wherein the first response message or the second response message includes an extended Dynamic Host Configuration Protocol (DHCP) option, and the extended DHCP option includes: the The public network address corresponding to each private network address in the at least one private network address, or the public network address and port number corresponding to each private network address in the at least one private network address.
  23. 根据权利要求20至22中任一项所述的方法,其特征在于,所述第一网关为动态主机配置协议DHCP服务器,或者为支持DHCP代理能力的网关设备,或者为支持DHCP服务器功能的网络地址转换NAT网关设备,或者为支持DHCP服务器和NAT功能的负载均衡器设备。The method according to any one of claims 20 to 22, wherein the first gateway is a Dynamic Host Configuration Protocol (DHCP) server, or a gateway device supporting a DHCP proxy capability, or a network supporting a DHCP server function Address translation NAT gateway device, or a load balancer device that supports DHCP server and NAT functions.
  24. 根据权利要求19至23中任一项所述的方法,所述MPTCP服务器向MPTCP客户端发送所述至少一个私网地址中每一个私网地址对应的公网地址,包括:The method according to any one of claims 19 to 23, wherein the MPTCP server sends the public network address corresponding to each private network address in the at least one private network address to the MPTCP client, including:
    在所述MPTCP服务器和所述MPTCP客户端的MPTCP会话首个子流的建立过程中,所述MPTCP服务器通过TCP报文将所述至少一个私网地址中每一个私网地址对应的公网地址发送给所述MPTCP客户端。In the process of establishing the first sub-stream of the MPTCP session between the MPTCP server and the MPTCP client, the MPTCP server sends the public network address corresponding to each private network address in the at least one private network address to the the MPTCP client.
  25. 根据权利要求19至23中任一项所述的方法,所述MPTCP服务器向MPTCP客户端发送所述至少一个私网地址中每一个私网地址对应的公网地址,包括:The method according to any one of claims 19 to 23, wherein the MPTCP server sends the public network address corresponding to each private network address in the at least one private network address to the MPTCP client, including:
    在所述MPTCP服务器和所述MPTCP客户端的MPTCP会话首个子流的建立后,所述MPTCP服务器向MPTCP客户端发送所述至少一个私网地址中每一个私网地址对应的公网地址。After the first substream of the MPTCP session between the MPTCP server and the MPTCP client is established, the MPTCP server sends the public network address corresponding to each private network address of the at least one private network address to the MPTCP client.
  26. 根据权利要求19至25中任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 19 to 25, wherein the method further comprises:
    所述MPTCP服务器获取所述至少一个私网地址中每一个私网地址对应的端口号;The MPTCP server obtains the port number corresponding to each private network address in the at least one private network address;
    所述MPTCP服务器向MPTCP客户端发送所述MPTCP服务器的至少一个私网地址中每一个私网地址分别对应的公网地址,包括:The MPTCP server sends the public network address corresponding to each private network address in the at least one private network address of the MPTCP server to the MPTCP client, including:
    所述MPTCP服务器向MPTCP客户端发送所述MPTCP服务器的至少一个私网地址中每一个私网地址分别对应的公网地址和端口号。The MPTCP server sends to the MPTCP client the public network address and port number corresponding to each of the at least one private network address of the MPTCP server respectively.
  27. 一种通信装置,其特征在于,包括用于执行如权利要求1至7中任一项所述方法的各个步骤的单元,或者,用于执行如权利要求8至12中任一项所述方法的各个步骤的单元。A communication device, characterized in that it comprises a unit for executing each step of the method according to any one of claims 1 to 7, or, for executing the method according to any one of claims 8 to 12 unit of each step.
  28. 一种通信装置,其特征在于,包括用于执行如权利要求13至18中任一项所述方法的各个步骤的单元,或者用于执行如权利要求19至26中任一项所述方法的各个步骤的单元。A communication device, characterized in that it comprises a unit for executing each step of the method according to any one of claims 13 to 18, or a unit for executing the method according to any one of claims 19 to 26. unit for each step.
  29. 一种通信装置,其特征在于,所述装置包括至少一个处理器,所述至少一个处理器与至少一个存储器耦合:A communication device, characterized in that the device comprises at least one processor coupled to at least one memory:
    所述至少一个处理器,用于执行所述至少一个存储器中存储的计算机程序或指令,以使得所述通信装置执行如权利要求1至7中任一项所述的方法,或者执行如权利要求8至12中任一项所述的方法。the at least one processor for executing computer programs or instructions stored in the at least one memory to cause the communication device to perform the method as claimed in any one of claims 1 to 7, or to perform the method as claimed in claim 1 The method of any one of 8 to 12.
  30. 一种通信装置,其特征在于,所述装置包括至少一个处理器,所述至少一个处理器与至少一个存储器耦合:A communication device, characterized in that the device comprises at least one processor coupled to at least one memory:
    所述至少一个处理器,用于执行所述至少一个存储器中存储的计算机程序或指令,以使得所述通信装置执行如权利要求13至18中任一项所述的方法,或者执行如权利 要求19至26中任一项所述的方法。the at least one processor for executing computer programs or instructions stored in the at least one memory to cause the communication device to perform the method as claimed in any one of claims 13 to 18, or to perform the method as claimed in claim 1 The method of any one of 19 to 26.
  31. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,当计算机读取并执行所述计算机程序或指令时,使得计算机执行如权利要求1至7中任一项所述的方法,或者执行如权利要求8至12中任一项所述的方法。A computer-readable storage medium, characterized in that, a computer program or an instruction is stored in the computer-readable storage medium, and when a computer reads and executes the computer program or instruction, the computer is made to perform as claimed in claims 1 to 7. The method of any one of claims 8 to 12, or perform the method of any one of claims 8 to 12.
  32. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,当计算机读取并执行所述计算机程序或指令时,使得计算机执行如权利要求13至18中任一项所述的方法,或者执行如权利要求19至26中任一项所述的方法。A computer-readable storage medium, characterized in that, a computer program or instruction is stored in the computer-readable storage medium, and when the computer reads and executes the computer program or instruction, the computer is made to execute the program as claimed in claims 13 to 18. The method of any one of claims 19 to 26, or perform the method of any one of claims 19 to 26.
  33. 一种芯片,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的通信设备执行如权利要求1至7中任一项所述的方法,或者执行如权利要求8至12中任一项所述的方法。A chip, characterized by comprising: a processor for calling and running a computer program from a memory, so that a communication device installed with the chip executes the method according to any one of claims 1 to 7, or A method as claimed in any one of claims 8 to 12 is performed.
  34. 一种芯片,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的通信设备执行如权利要求13至18中任一项所述的方法,或者执行如权利要求19至26中任一项所述的方法。A chip, characterized by comprising: a processor for calling and running a computer program from a memory, so that a communication device installed with the chip executes the method according to any one of claims 13 to 18, or A method as claimed in any one of claims 19 to 26 is performed.
PCT/CN2021/108737 2020-07-31 2021-07-27 Method for determining public network address of mptcp server and communication device WO2022022530A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010762122.XA CN114095474B (en) 2020-07-31 2020-07-31 Method and communication device for determining public network address of MPTCP (Multi-protocol Transmission control protocol) server
CN202010762122.X 2020-07-31

Publications (1)

Publication Number Publication Date
WO2022022530A1 true WO2022022530A1 (en) 2022-02-03

Family

ID=80037611

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/108737 WO2022022530A1 (en) 2020-07-31 2021-07-27 Method for determining public network address of mptcp server and communication device

Country Status (2)

Country Link
CN (1) CN114095474B (en)
WO (1) WO2022022530A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114844804A (en) * 2022-06-01 2022-08-02 重庆奥普泰通信技术有限公司 Network measurement method, system, electronic device and computer readable storage medium
WO2024037254A1 (en) * 2022-08-17 2024-02-22 华为技术有限公司 Communication method and apparatus

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120093150A1 (en) * 2010-10-15 2012-04-19 Telefonaktiebolaget L M Ericsson Multipath transmission control protocol proxy
US20130275609A1 (en) * 2010-12-22 2013-10-17 Telefonaktiebolaget I.M. Ericsson (Publ) Mobility handling in a communication network
US20160286441A1 (en) * 2013-11-07 2016-09-29 Samsung Electronics Co., Ltd. Apparatus and method for managing mobility in wireless communication system
CN108075987A (en) * 2016-11-17 2018-05-25 华为技术有限公司 A kind of multi-path data transmission method and equipment
CN111464665A (en) * 2019-01-18 2020-07-28 慧与发展有限责任合伙企业 End-to-end multi-path TCP over network gateway

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107872423B (en) * 2016-09-23 2020-12-18 中国电信股份有限公司 Method, device and system for realizing CDN scheduling
CN108494891A (en) * 2018-02-28 2018-09-04 网宿科技股份有限公司 A kind of domain name analytic method, server and system
CN109714447B (en) * 2018-12-20 2021-09-10 全链通有限公司 Domain name generation method and system based on block chain domain name system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120093150A1 (en) * 2010-10-15 2012-04-19 Telefonaktiebolaget L M Ericsson Multipath transmission control protocol proxy
US20130275609A1 (en) * 2010-12-22 2013-10-17 Telefonaktiebolaget I.M. Ericsson (Publ) Mobility handling in a communication network
US20160286441A1 (en) * 2013-11-07 2016-09-29 Samsung Electronics Co., Ltd. Apparatus and method for managing mobility in wireless communication system
CN108075987A (en) * 2016-11-17 2018-05-25 华为技术有限公司 A kind of multi-path data transmission method and equipment
CN111464665A (en) * 2019-01-18 2020-07-28 慧与发展有限责任合伙企业 End-to-end multi-path TCP over network gateway

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114844804A (en) * 2022-06-01 2022-08-02 重庆奥普泰通信技术有限公司 Network measurement method, system, electronic device and computer readable storage medium
CN114844804B (en) * 2022-06-01 2023-07-25 重庆奥普泰通信技术有限公司 Network measurement method, system, electronic device and computer readable storage medium
WO2024037254A1 (en) * 2022-08-17 2024-02-22 华为技术有限公司 Communication method and apparatus

Also Published As

Publication number Publication date
CN114095474A (en) 2022-02-25
CN114095474B (en) 2023-02-03

Similar Documents

Publication Publication Date Title
EP2556438B1 (en) Reverse dns lookup with modified reverse mappings
US7924832B2 (en) Facilitating transition of network operations from IP version 4 to IP version 6
EP2817942B1 (en) Internet protocol connectivity over a service-oriented architecture bus
US20230354149A1 (en) Method for identification of traffic suitable for edge breakout and for traffic steering in a mobile network
US20060153230A1 (en) IPv6 / IPv4 translator
WO2022022530A1 (en) Method for determining public network address of mptcp server and communication device
WO2003085997A1 (en) Methods and apparatus for using a paging and location server to support session signaling
JP2006086800A (en) Communication apparatus for selecting source address
WO2010139194A1 (en) Method and device of host with ipv4 application for performing communication
WO2010108431A1 (en) Method for realizing ipv6 host visting ipv4 host, method for obtaining ipv6 address prefix and translation device
TW200924462A (en) System and method for connection of hosts behind NATs
US20150012636A1 (en) Method, device and system for an application layer traffic optimization server
US20230083671A1 (en) Domain Name System Services for Variable-Length Address Networks
KR100433621B1 (en) Multi layer internet protocol(MLIP) for peer to peer service of private internet and method for transmitting/receiving the MLIP packet
WO2015139397A1 (en) Nat64 resource acquisition method and acquisition/distribution apparatus
Shang et al. IVI-based locator/ID separation architecture for IPv4/IPv6 transition
Santos Private realm gateway
Enghardt et al. TAPS Working Group A. Brunstrom, Ed. Internet-Draft Karlstad University Intended status: Informational T. Pauly, Ed. Expires: 10 September 2020 Apple Inc.
Enghardt et al. TAPS Working Group A. Brunstrom, Ed. Internet-Draft Karlstad University Intended status: Informational T. Pauly, Ed. Expires: May 7, 2020 Apple Inc.
Enghardt et al. TAPS Working Group A. Brunstrom, Ed. Internet-Draft Karlstad University Intended status: Informational T. Pauly, Ed. Expires: September 12, 2019 Apple Inc.
Enghardt et al. TAPS Working Group A. Brunstrom, Ed. Internet-Draft Karlstad University Intended status: Informational T. Pauly, Ed. Expires: September 6, 2018 Apple Inc.
CN114390021A (en) IPv6 single stack-based IDC service providing system and method
Enghardt et al. TAPS Working Group A. Brunstrom, Ed. Internet-Draft Karlstad University Intended status: Informational T. Pauly, Ed. Expires: April 25, 2019 Apple Inc.
Enghardt et al. TAPS Working Group A. Brunstrom, Ed. Internet-Draft Karlstad University Intended status: Informational T. Pauly, Ed. Expires: January 2, 2019 Apple Inc.
Enghardt et al. TAPS Working Group A. Brunstrom, Ed. Internet-Draft Karlstad University Intended status: Informational T. Pauly, Ed. Expires: November 26, 2018 Apple Inc.

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21850813

Country of ref document: EP

Kind code of ref document: A1