WO2023108492A1 - 通信的方法和装置 - Google Patents

通信的方法和装置 Download PDF

Info

Publication number
WO2023108492A1
WO2023108492A1 PCT/CN2021/138412 CN2021138412W WO2023108492A1 WO 2023108492 A1 WO2023108492 A1 WO 2023108492A1 CN 2021138412 W CN2021138412 W CN 2021138412W WO 2023108492 A1 WO2023108492 A1 WO 2023108492A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
end device
link
encapsulated
address
Prior art date
Application number
PCT/CN2021/138412
Other languages
English (en)
French (fr)
Inventor
张海波
徐聪
郭小东
肖元辉
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN202180104947.5A priority Critical patent/CN118383019A/zh
Priority to EP21967629.3A priority patent/EP4432621A1/en
Priority to PCT/CN2021/138412 priority patent/WO2023108492A1/zh
Publication of WO2023108492A1 publication Critical patent/WO2023108492A1/zh
Priority to US18/743,284 priority patent/US20240333635A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/243Multipath using M+N parallel active paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/72Routing based on the source address
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations

Definitions

  • the embodiments of the present application relate to the communication field, and more specifically, to a communication method and device.
  • the terminal device When the terminal device supports communication through multiple links (such as wireless local area network (wireless fidelity, WIFI) link and long term evolution (long term evolution, LTE) cellular link), use the bandwidth of multiple links at the same time (such as, Multi-link bundle) will get more bandwidth.
  • links such as wireless local area network (wireless fidelity, WIFI) link and long term evolution (long term evolution, LTE) cellular link
  • WIFI wireless local area network
  • LTE long term evolution
  • the embodiment of the present application provides a communication method.
  • the APP is not aware of the multi-link bundling, thereby realizing the multi-link bundling under the premise of simplifying the operation of the APP.
  • a communication method is provided, and the method may be executed by a data sending end device, or may also be executed by a component (such as a chip or a circuit) of the data sending end device, which is not limited, for the convenience of description , the following takes the implementation by the data sending device as an example for illustration.
  • the communication method includes: the data sending end device acquires first data, the first data includes the data to be sent of the first application installed in the data sending end device, and the destination address of the first data is the address of the data receiving end device
  • the data sending end device determines the first network card address corresponding to the address of the data receiving end device according to the address of the data receiving end device, and the first network card address is the address of one or more network cards of the data receiving end device;
  • the data sending end device encapsulates the first data based on the first network card address to obtain the encapsulated first data; the data sending end device sends the encapsulated first data to the data receiving end device through multiple links, Wherein, the destination address of each link in the plurality of links is one of the addresses of the first network card, the source address is one of the addresses of the second network card, and the address of the second network card is one or Addresses of multiple network cards.
  • the data sending end device obtains the first data to be sent of the locally installed APP, and encapsulates the first data based on the network card address of the data receiving end device, and the encapsulated data can be bundled through multiple links
  • the APP since the data to be sent by the APP is encapsulated based on the network card address and then sent via multiple links, the APP does not perceive the multi-link bundling, thus realizing multiple links under the premise of simplifying the operation of the APP. link binding.
  • the data sending device encapsulates the first data based on the first network card address to obtain the encapsulated first data can be understood as: the data sending device encapsulates part of a network card address corresponding to a certain link For the first data, the link sends the part of encapsulated data.
  • the method further includes: the data sending end device sends a detection message to the data receiving end device, and the detection message is used to detect whether the data receiving end device Support decapsulation of data based on the network card address; the data sending device receives a response message from the data receiving device, and the response message is used to indicate that the data receiving device supports decapsulating data based on the network card address.
  • the data sending end device can know whether the data receiving end device supports decapsulating data based on the network card address by sending a detection message.
  • the response message includes the address of the first network card.
  • the data sending end device receives a response message from the data receiving end device, and the response message includes the first network card address to ensure that the data sending end device sends
  • the encapsulated first data can be decapsulated by the data receiving end device, thereby improving the accuracy of data transmission.
  • the method further includes: the data sending device establishes the multiple links according to the first network card address and the second network card address.
  • the first data includes a plurality of data packets
  • the encapsulated first data includes a plurality of encapsulated data packets
  • the link sending the encapsulated first data to the data receiving end device includes: the data sending end device sends a plurality of encapsulated data packets to the data receiving end device through the first link; the method also includes: the The data sending end device receives first indication information from the data receiving end device, where the first indication information is used to indicate the delay difference between two encapsulated data packets transmitted through the first link, the delay The difference is greater than a preset threshold; the data sending device adjusts the weight of the encapsulated data packet transmitted on the first link according to the first indication information, where the first link is any of the multiple links a link.
  • the preset threshold may be a threshold for judging the steady state of the network, for example, the preset threshold is N*round-trip time (round-trip time, RTT), and N is a positive integer.
  • the data sending end device can dynamically adjust the weight of the encapsulated data packets transmitted on multiple links according to the change value of the one-way delay of the link, so as to keep the balance between multiple links and make full use of multiple links.
  • the weight of the encapsulated data packet transmitted on a certain link may be understood as: the weight (or proportion) of the encapsulated data packet transmitted on the link to the encapsulated data packet.
  • the two data packets include: two data packets with consecutive sequence numbers transmitted through the first link; or, the sequence numbers transmitted through the first link Two packets that are not consecutive.
  • the above two data packets transmitted on the first link may be two data packets with continuous sequence numbers, or two data packets with discontinuous sequence numbers, which improves the flexibility of the solution.
  • the adjusted weight of the encapsulated data packet transmitted on the first link is smaller than the weight of the encapsulated data packet transmitted on the first link before adjustment.
  • the method further includes: the data sending end device receiving second indication information from the data receiving end device, where the second indication information is used to indicate that the first link The first packet loss rate of the link; the data sending end device adjusts the weight of the encapsulated data packet transmitted on the first link according to the second indication information, where the first link is one of the multiple links any link.
  • the data sending end device can dynamically adjust the weight of the encapsulated data packets transmitted on multiple links according to the packet loss rate of the link, so as to maintain a balance between multiple links and make full use of multiple links resources to optimize link performance.
  • the first packet loss rate is greater than the second packet loss rate, and the weight of the encapsulated data packet transmitted on the first link after adjustment is smaller than the weight of the first packet loss rate before adjustment.
  • the data sending device sends the encapsulated first data to the data receiving device through multiple links, including: the first data of the data sending device A distribution module corresponding to a wireless interface segments the first data into a first data packet and a second data packet, and the second data packet is distributed to the second wireless interface of the data sending end device; the second data packet of the data sending end device A wireless interface sends the encapsulated first data packet to the data receiving end device through the first link; the second wireless interface of the data sending end device sends the encapsulated second packet to the data receiving end device through the second link. data pack.
  • multi-band bandwidth bundling can be realized, the bandwidth available for applications can be expanded, and the reliability of data transmission can be improved.
  • a communication method is provided, and the method may be executed by a data receiving end device, or may also be executed by a component (such as a chip or a circuit) of the data receiving end device, which is not limited, for the convenience of description , the following takes the implementation by the data receiving device as an example for illustration.
  • the communication method includes: the data receiving end device receives the encapsulated first data from the data sending end device through multiple links; the data receiving end device decapsulates the encapsulated first data based on the address of the first network card, and obtains The first data, wherein the first data includes the data to be sent by the first application installed in the data sending end device, the destination address of the first data is the address of the data receiving end device, and the address of the data receiving end device is the same as Corresponding to the first network card address, the first network card address is the address of one or more network cards of the data receiving device, and the encapsulated first data is the data obtained by encapsulating the first data based on the first network card address.
  • the first data to be sent of the APP locally installed on the data sending end device is encapsulated based on the network card address of the data receiving end device, and the encapsulated data can be sent by way of multi-link binding.
  • the APP since the data to be sent sent by the APP is encapsulated again based on the network card address and then sent via multiple links, the APP does not perceive the multi-link bundling, thus realizing multi-link bundling under the premise of simplifying the APP operation .
  • the method further includes: the data receiving end device receives a detection message from the data sending end device, and the detection message is used to detect the data receiving end device Whether to support decapsulating data based on the network card address; in the case that the data receiving device supports decapsulating data based on the network card address, the data receiving device sends a response message to the data sending device, and the response message is used to indicate that the data is received The end device supports decapsulating data based on the network card address.
  • the data sending end device can know whether the data receiving end device supports decapsulating data based on the network card address by sending a detection message.
  • the response message includes the address of the first network card.
  • the data sending end device receives a response message from the data receiving end device, and the response message includes the first network card address to ensure that the data sending end device sends
  • the encapsulated first data can be decapsulated by the data receiving end device, thereby improving the accuracy of data transmission.
  • the first data includes a plurality of data packets
  • the encapsulated first data includes a plurality of encapsulated data packets
  • the link receiving the encapsulated first data from the data sending end device includes: the data receiving end device receives a plurality of encapsulated data packets from the data sending end device through the first link;
  • the method further includes: the data receiving end device sending first indication information to the data sending end device, where the first indication information is used to indicate the time delay between two encapsulated data packets transmitted through the first link difference, the delay difference is used to adjust the weight of the encapsulated data packet transmitted on the first link, where the delay difference is greater than a preset threshold, and the first link is one of the multiple links any of the links.
  • the one-way delay change value of the link can be used to dynamically adjust the weight of the encapsulated data packets transmitted on multiple links, so as to maintain balance between multiple links and make full use of multiple links resources to optimize link performance.
  • the weight of the encapsulated data packet transmitted on the first link after adjustment is smaller than the weight of the encapsulated data packet transmitted on the first link before adjustment.
  • the method further includes: the data receiving end device sending second indication information to the data sending end device, where the second indication information is used to indicate that the first link
  • the first packet loss rate is used to adjust the weight of the encapsulated data packet transmitted on the first link, where the first link is any link in the plurality of links .
  • the packet loss rate of a link can be used to dynamically adjust the weight of encapsulated data packets transmitted on multiple links, so as to maintain balance between multiple links, make full use of multiple link resources, and optimize link performance.
  • the first packet loss rate is greater than the second packet loss rate, and the weight of the encapsulated data packet transmitted on the first link after adjustment is less than the first packet loss rate before adjustment.
  • the weight of the encapsulated data packet transmitted on a link is less than the first packet loss rate before adjustment.
  • the second packet loss rate is a packet loss rate of links other than the first link stored locally by the data sending end device.
  • the communication device including a unit for performing the method shown in the first aspect above, the communication device may be a data sender device, or may be set in a data sender device
  • the implementation of the chip or circuit is not limited in this application.
  • the communication means include:
  • a processing unit configured to obtain first data, the first data includes data to be sent by a first application installed in the data sending device, and the destination address of the first data is the address of the data receiving device;
  • the processing unit is further configured to determine a first network card address corresponding to the address of the data receiving device according to the address of the data receiving device, where the first network card address is an address of one or more network cards of the data receiving device;
  • the processing unit is further configured to encapsulate the first data based on the address of the first network card to obtain encapsulated first data;
  • a sending unit configured to send the encapsulated first data to the data receiving end device through multiple links
  • the destination address of each link in the plurality of links is one of the addresses of the first network card
  • the source address is one of the addresses of the second network card
  • the address of the second network card is one or Addresses of multiple network cards.
  • the sending unit is further configured to send a detection message to the data receiving end device, and the detection message is used to detect whether the data receiving end device supports network card-based Address decapsulation data;
  • the unit also includes:
  • the receiving unit is configured to receive a response message from the data receiving end device, where the response message is used to indicate that the data receiving end device supports decapsulating data based on the network card address.
  • the response message includes the address of the first network card.
  • the processing unit is further configured to establish the multiple links according to the first network card address and the second network card address.
  • the first data includes a plurality of data packets, and the encapsulated first data includes a plurality of encapsulated data packets;
  • the sending unit sends the encapsulated first data to the data receiving device through multiple links, including: the sending unit sends a plurality of encapsulated data packets to the data receiving device through the first link;
  • the receiving unit is further configured to receive first indication information from the data receiving end device, where the first indication information is used to indicate a time delay difference between two encapsulated data packets transmitted through the first link, The delay difference is greater than a preset threshold;
  • the processing unit is further configured to adjust the weight of the encapsulated data packet transmitted on the first link according to the first indication information
  • the first link is any link in the multiple links.
  • the weight of the encapsulated data packet transmitted on the first link after adjustment is smaller than the weight of the encapsulated data packet transmitted on the first link before adjustment.
  • the processing unit adjusts the weight of the encapsulated data packet transmitted on the first link according to the first indication information, including:
  • the receiving unit is further configured to receive second indication information from the data receiving end device, where the second indication information is used to indicate that the first link of the first link - packet loss rate;
  • the processing unit is further configured to adjust the weight of the encapsulated data packet transmitted on the first link according to the second indication information
  • the first link is any link in the multiple links.
  • the first packet loss rate is greater than the second packet loss rate, and the weight of the encapsulated data packet transmitted on the first link after adjustment is less than the weight of the first packet loss rate before adjustment.
  • the processing unit is further configured to segment the first data into a first data packet and a second data packet, and distribute the second data packet to the the second wireless interface of the data sending end device,
  • the sending unit sends the encapsulated first data to the data receiving device through multiple links, including:
  • the first sending unit corresponding to the first wireless interface sends the encapsulated first data packet to the data receiving end device through the first link;
  • the second sending unit corresponding to the second wireless interface sends the encapsulated second data packet to the data receiving end device through the second link.
  • a communication device including a unit for performing the method shown in the second aspect above.
  • the communication device may be a data receiving end device, or may be set in a data receiving end device
  • the implementation of the chip or circuit is not limited in this application.
  • the communication means include:
  • a receiving unit configured to receive the encapsulated first data from the data sending device through multiple links
  • a processing unit configured to decapsulate the encapsulated first data based on the address of the first network card to obtain the first data
  • the first data includes the data to be sent by the first application installed in the data sending end device
  • the destination address of the first data is the address of the data receiving end device
  • the address of the data receiving end device is the same as that of the first network card
  • the first network card address is the address of one or more network cards of the data receiving end device
  • the encapsulated first data is the data obtained by encapsulating the first data based on the first network card address.
  • the receiving unit is further configured to receive a detection message from the data sending end device, and the detection message is used to detect whether the data receiving end device supports the
  • the network card address decapsulates the data
  • the unit also includes:
  • the sending unit is configured to send a response message to the data sending device, where the response message is used to indicate that the data receiving device supports decapsulating data based on the network card address.
  • the response message includes the address of the first network card.
  • the first data includes a plurality of data packets, and the encapsulated first data includes a plurality of encapsulated data packets;
  • Receiving the encapsulated first data from the data sending end device includes: the receiving unit receives a plurality of encapsulated data packets from the data sending end device through the first link;
  • the unit also includes:
  • a sending unit configured to send first indication information to the data sending end device, where the first indication information is used to indicate the delay difference between two encapsulated data packets transmitted through the first link, the delay The difference is used to adjust the weight of the encapsulated data packets transmitted on the multiple links, where the delay difference is greater than a preset threshold, and the first link is any one of the multiple links.
  • the weight of the encapsulated data packet transmitted on the first link after adjustment is smaller than the weight of the encapsulated data packet transmitted on the first link before adjustment.
  • the device further includes:
  • a sending unit configured to send second indication information to the data sending device, where the second indication information is used to indicate a first packet loss rate of the first link, and the first packet loss rate is used to adjust the first link
  • the first packet loss rate is greater than the second packet loss rate, and the weight of the encapsulated data packet transmitted on the first link after adjustment is less than the first packet loss rate before adjustment.
  • the weight of the encapsulated data packet transmitted on a link is less than the first packet loss rate before adjustment.
  • the second packet loss rate is a packet loss rate of links other than the first link stored locally by the data sending end device.
  • a communication device includes a processor configured to realize the functions of the data sending end device in the method described in the first aspect above.
  • the communication apparatus may further include a memory coupled to the processor, and the processor is configured to implement the function of the data sending end device in the method described in the first aspect above.
  • the memory is used to store program instructions and data.
  • the memory is coupled with the processor, and the processor can call and execute the program instructions stored in the memory, so as to implement the functions of the data sending end device in the method described in the first aspect above.
  • the communication device may further include a communication interface, and the communication interface is used for the communication device to communicate with other devices.
  • the communication interface may be a transceiver, an input/output interface, or a circuit.
  • the communication device includes: a processor and a communication interface
  • the processor is configured to run a computer program, so that the communication device implements any one of the methods described in the first aspect above;
  • the processor communicates with the outside through the communication interface.
  • the external may be an object other than the processor, or an object other than the device.
  • the communication device is a chip or a chip system.
  • the communication interface may be an input/output interface, an interface circuit, an output circuit, an input circuit, pins or related circuits on the chip or the chip system.
  • the processor may also be embodied as a processing circuit or logic circuit.
  • a communication device includes a processor configured to realize the functions of the data receiving end device in the method described in the second aspect above.
  • the communication apparatus may further include a memory coupled to the processor, and the processor is configured to implement the functions of the data receiving end device in the method described in the second aspect above.
  • the memory is used to store program instructions and data.
  • the memory is coupled with the processor, and the processor can call and execute the program instructions stored in the memory, so as to implement the functions of the data receiving end device in the method described in the second aspect above.
  • the communication device may further include a communication interface, and the communication interface is used for the communication device to communicate with other devices.
  • the communication interface may be a transceiver, an input/output interface, or a circuit.
  • the communication device includes: a processor and a communication interface
  • the processor is configured to run a computer program, so that the communication device implements any one of the methods described in the second aspect above;
  • the processor communicates with the outside through the communication interface.
  • the external may be an object other than the processor, or an object other than the device.
  • the communication device is a chip or a chip system.
  • the communication interface may be an input/output interface, an interface circuit, an output circuit, an input circuit, pins or related circuits on the chip or the chip system.
  • the processor may also be embodied as processing circuitry or logic circuitry.
  • the present application provides a computer-readable storage medium, where instructions are stored in the computer-readable storage medium, and when the computer-readable storage medium is run on a computer, it causes the computer to execute the methods described in the above aspects.
  • the present application provides a computer program product including instructions, which, when run on a computer, cause the computer to execute the methods described in the above aspects.
  • a ninth aspect provides a communication system, including the communication device described in the third aspect and the communication device described in the fourth aspect.
  • a chip device including a processing circuit, the processing circuit is used to call and run a program from the memory, so that the communication device installed with the chip device performs any one of the possibilities in the first and second aspects above. method in the implementation.
  • FIG. 1 is a schematic diagram of a scene applicable to an embodiment of the present application.
  • Fig. 2 is a schematic diagram of a wide area network multi-link bundling scenario provided by the present application.
  • FIG. 3 is a schematic diagram of a local area network multi-link bundling scenario provided by the present application.
  • Fig. 4 is a schematic flowchart of a communication method provided by the present application.
  • FIG. 5 is a schematic diagram of multi-link bundling data transmission in a wide area network provided by the present application.
  • FIG. 6 is a schematic diagram of multi-link bundling data transmission in a local area network provided by the present application.
  • FIG. 7 is a schematic flowchart of another communication method provided by an embodiment of the present application.
  • FIG. 8 is a schematic flowchart of another communication method provided by an embodiment of the present application.
  • FIG. 9 is a schematic block diagram of an apparatus 900 provided by an embodiment of the present application.
  • Fig. 10 is a schematic block diagram of an apparatus 1000 provided by an embodiment of the present application.
  • Applicable scenarios of the communication method provided in the present application include link bundling scenarios, as shown in FIG. 1 , which is a schematic diagram of applicable scenarios in the embodiment of the present application.
  • Fig. 1 Shown in Fig. 1 is the link between terminal equipment #1, terminal equipment #2, interface #1 and interface #2 in terminal equipment #1, interface #3 in terminal equipment #2, interface #1 and interface #3 Link #2 between road #1, interface #2 and interface #3, and an internet protocol (internet protocol, IP) network.
  • IP internet protocol
  • terminal device #1 may be understood as a data sending end device
  • terminal device #2 may be understood as a data receiving end device.
  • interface #1 and interface #2 shown in FIG. 1 Between one or more physical interfaces of terminal device #1 (interface #1 and interface #2 shown in FIG. 1 ) and one or more physical interfaces of terminal device #2 (interface #3 shown in FIG. 1 ) Multiple links (link #1 and link #2 shown in Figure 1) are established between them.
  • a terminal device (terminal device #1 and terminal device #2 as shown in Figure 1) supports WIFI and LTE cellular link communication, or can also support 2.4G, 5G, dual LTE 4 Using multi-channel communication at the same time will result in greater bandwidth, higher reliability, and the possibility of low latency.
  • terminal device #1 uses multiple links (link #1 and link #2 shown in Figure 1) to send data to terminal device #2, and the data receiving end connects multiple links (or called multiple links) Link) data combination, can obtain greater bandwidth.
  • heterogeneous links such as power lines and network cables, etc.
  • heterogeneous links such as power lines and network cables, etc.
  • the IP network shown in FIG. 1 may be a wide area network or a wireless local area network (wireless fidelity, WIFI).
  • WIFI wireless local area network
  • a wide area network link bundling scenario and a wireless local area network (wireless fidelity, WIFI) multi-link bundling scenario are briefly introduced below.
  • Fig. 2 is a schematic diagram of a wide area network multi-link bundling scenario provided by the present application.
  • communication between two terminal devices terminal device #1 and terminal device #2 shown in FIG. term evolution, LTE) cellular link, WIFI 2.4G link, WIFI 5G link, etc.
  • WIFI 2.4G link WIFI 5G link, etc.
  • the virtual link #1 is formed between the terminal device #1 and the terminal device #2 through the LTE#1 cellular link; the virtual link #2 is formed through the LTE#2 cellular link; and the virtual link #2 is formed through the WIFI 2.4
  • the G link forms virtual link #3; the WIFI 5G link forms virtual link #4.
  • multiple virtual links can be bundled. It can be seen from Figure 2 that multiple virtual links with independent bandwidth (virtual link #1 to virtual link #4 as shown in Figure 2) can be bundled between terminal equipment #1 and terminal equipment #2 is at least one link (the link bundle shown in FIG. 2 ).
  • FIG. 2 is only an example to illustrate the wide area network link bundling scenario to which the embodiment of the present application can be applied, and does not constitute any limitation on the protection scope of the present application.
  • the number of terminal devices in the wide area network link bundling scene can be
  • the access link through which the communication between terminal devices passes may include other link types; for another example, the number of links obtained by bundling multiple virtual links may be multiple, here No more examples one by one.
  • FIG. 3 is a schematic diagram of a local area network multi-link bundling scenario provided by the present application.
  • two terminal devices (terminal device #1 and terminal device #2 as shown in Figure 3) communicate based on WIFI, through different access links (for example, WIFI 2.4G link, WIFI 5G links, etc.) form multiple virtual links with independent bandwidth.
  • WIFI 2.4G link for example, WIFI 2.4G link, WIFI 5G links, etc.
  • the virtual link #1 is formed between the terminal device #1 and the terminal device #2 through the WIFI 2.4G link; the virtual link #2 is formed through the WIFI 5G link.
  • multiple virtual links can be bundled. It can be seen from Figure 3 that multiple virtual links with independent bandwidth (virtual link #1 and virtual link #2 shown in Figure 3) can be bundled between terminal device #1 and terminal device #2 It is at least one link (the link bundle shown in FIG. 3 ).
  • FIG. 3 is only an example to illustrate the local area network link bundling scenario to which the embodiment of the present application can be applied, and does not constitute any limitation on the protection scope of the present application.
  • the number of terminal devices in the local area network link bundling scene can be
  • the access link through which the communication between terminal devices passes may include other WIFI links; for another example, the number of links obtained by bundling multiple virtual links may be multiple, here No more examples one by one.
  • the terminal equipment in the embodiment of the present application may refer to user equipment (user equipment), access terminal, subscriber unit, subscriber station, mobile station, mobile station (mobile station, MS), mobile terminal (mobile terminal, MT), remote station , remote terminal, mobile device, user terminal, terminal, wireless communication device, user agent, or user device.
  • a terminal device may be a device that provides voice/data connectivity to users, for example, a handheld device with a wireless connection function, a vehicle-mounted device, and the like.
  • examples of some terminals can be: mobile phone (mobile phone), tablet computer (pad), computer with wireless transceiver function (such as notebook computer, palmtop computer, etc.), mobile internet device (mobile internet device, MID), virtual reality (virtual reality, VR) equipment, augmented reality (augmented reality, AR) equipment, wireless terminals in industrial control (industrial control), wireless terminals in self driving (self driving), wireless in remote medical (remote medical) Terminals, wireless terminals in smart grid, wireless terminals in transportation safety, wireless terminals in smart city, wireless terminals in smart home, cellular phones, cordless Telephones, session initiation protocol (SIP) phones, wireless local loop (WLL) stations, personal digital assistants (PDAs), handheld devices with wireless communication capabilities, computing devices, or connected Other processing devices to wireless modems, vehicle-mounted devices, wearable devices, terminal devices in the 5G network or terminal devices in the future evolution of the public land mobile network (PLMN), etc.
  • PLMN public land mobile network
  • the terminal device may also be a terminal device in an Internet of Things (Internet of things, IoT) system.
  • IoT Internet of things
  • Its main technical feature is to connect objects to the network through communication technology, so as to realize the intelligent network of human-machine interconnection and object interconnection.
  • IoT technology can achieve massive connections, deep coverage, and terminal power saving through, for example, narrow band (NB) technology.
  • NB narrow band
  • the terminal device may be any device that can access the network.
  • a certain air interface technology may be used to communicate with each other between the terminal device and the access network device.
  • a terminal device can be used to act as a base station.
  • a terminal device may act as a scheduling entity, which provides sidelink signals between terminal devices in V2X or D2D, etc.
  • a cell phone and an automobile communicate with each other using sidelink signals. Communication between cellular phones and smart home devices without relaying communication signals through base stations.
  • An access mode in which a terminal device supports multiple wireless links is called multi-link access.
  • the terminal device supports access to two wireless links, WIFI and LTE.
  • the terminal device supports 4-way access of WIFI2.4G, WIFI5G, and dual LTE.
  • heterogeneous links for example, power lines and network lines.
  • multi-link transmission multiple links are established between one or more physical interfaces of the data sending end device and one or more physical interfaces of the data receiving end device, and the data sending end device uses the multi-link
  • the road sends data to the data receiving end device, and the data receiving end device combines the multi-link data to obtain greater bandwidth.
  • Equal cost multi path (ECMP).
  • ECMP is a forwarding mechanism for routing packets along equal-cost multiple paths, with the goal of nearly equal-cost distributed link load sharing. In ECMP it is assumed that all available links are of similar speed.
  • the load on each path is 50% of the total load.
  • UCMP can set different weights of loads on different paths. For example, when there are 3 available paths (such as 1G, 10G, 100G), in this example, the load on the 1G path accounts for 1% of the total load, and the load on the 10G path accounts for 1% of the total load. The proportion can be set to 10%, and the proportion of the load on the 100G path to the total load can be set to 89%.
  • Multipath TCP multipath TCP, MPTCP.
  • MPTCP is an ongoing effort in the Multipath TCP Working Group of the Internet Engineering Task Force (IETF), which aims to allow TCP connections to use multiple paths to maximize resource utilization.
  • IETF Internet Engineering Task Force
  • MPTCP uses a transport layer protocol for concurrent transmission of multiple paths, which can improve end-to-end throughput, increase network utilization, and increase redundancy.
  • MPTCP protocol please refer to RFC6824.
  • MPTCP is fully compatible with TCP.
  • TCP On the basis of TCP, a new TCP option header is added to realize the functions of MPTCP link establishment, link teardown and data transmission.
  • Typical application scenarios of MPTCP can be in the access network or in the enterprise network.
  • WIFI7 is developing a standard for multilink operation (MLO), enabling devices to simultaneously transmit and receive across different frequency bands and channels.
  • MLO multilink operation
  • the multilink architecture introduces the concept of a multilink device (MLD), which consists of several Wi-Fi devices (each with a PHY interface to the wireless medium), but one to The interface of the LLC layer.
  • MLD multilink device
  • Wi-Fi devices each with a PHY interface to the wireless medium
  • the interface of the LLC layer In other words, upper layer protocols see the MLD as a single device.
  • MLDs have multiple physical wireless interfaces
  • MLDs have one MAC address and serial numbers uniquely generated from the same serial number space.
  • Packet coloring statistics is a network performance statistics technology. By directly marking service packets, it realizes accurate end-to-end or segmented packet loss measurement of IP packets.
  • the network card address is also called the MAC address, and can also be called the LAN address (LAN Address), MAC address, Ethernet address (Ethernet Address) or physical address (Physical Address). Is an address used to identify the location of a network device.
  • the third layer of the network layer is responsible for the IP address
  • the second layer of the data link layer is responsible for the MAC address.
  • the MAC address is used to uniquely identify a network card in the network. , if a device has one or more network cards, each network card has a MAC address.
  • the tunnel involved in the following embodiments of this application refers to: one or more effective network card addresses of the data sending end device and one or more network card addresses of the data receiving end device. link.
  • the valid network card address of the data sending device includes network card address #1 and network card address #2
  • the valid network card address of the data receiving device includes network card address #3 and network card address #4
  • the tunnel includes: network card address #1 and network card address The link between #3, the link between NIC address #1 and NIC address #4, the link between NIC address #2 and NIC address #3, and the link between NIC address #2 and NIC address #4 link.
  • the kernel is the most fundamental part of an operating system, the part of the software that provides apps with secure access to computer hardware.
  • the tunnel proxy system involved in this application can intercept messages, such as intercepting messages sent by the APP to the kernel; it can also realize whether to perform multi-link bundling, such as judging the message according to the feedback from the device receiving the message. Whether the message is sent through multiple links; it is also possible to realize the distribution of data packets, for example, the message needs to be distributed when sending the message through multiple links.
  • Netfilter is a Linux 2.4 kernel firewall framework proposed by Rusty Russell. This framework is concise and flexible, and can realize many functions in security policy application, including but not limited to:
  • Packet filtering Packet filtering, packet processing, address masquerading, transparent proxy, dynamic network address translation (network address translation, NAT), packet rate limiting, etc.
  • Linux Iptable is an application layer application, which modifies the XXtables (Netfilter configuration table) stored in the kernel memory through the interface.
  • XXtables are composed of tables (tables) , chains, and rules, Linux Iptable is responsible for modifying rule files at the application layer.
  • WDS Wireless distribution system
  • WDS refers to a wireless network composed of multiple wireless networks connected to each other. Simply put, WDS is to use two (or more) wireless broadband routers (or APs) to extend the wireless signal to a farther range through mutual connection. Using WDS technology, APs can abandon the traditional wired network for interconnection, and each AP can be used as a master device, a relay device, and a remote device.
  • WDS wireless broadband routers
  • WDS technology Compared with other wireless extension technologies, WDS technology has a remarkable feature that it retains the MAC address of the client when transmitting data between APs, and the data transmission of the client only involves the MAC address and has nothing to do with the IP address.
  • the WIFI bandwidth available to a terminal device will be affected by the bandwidth usage of other terminal devices under the same wireless access point (access point, AP), and will also be affected by the distance between the terminal device and the AP. Influence, the bandwidth will always change.
  • access point access point
  • the MPTCP mentioned in the above basic concepts cannot support User Datagram Protocol (UDP) services.
  • UDP User Datagram Protocol
  • high throughput and real-time services often use the UDP protocol.
  • MPTCP cannot support video call applications.
  • the MLO mentioned in the basic concept above does not support the bundling of heterogeneous links.
  • MLO does not support bonding between WIFI and cellular links.
  • the current multi-path bundling method either relies on modifying the APP to call a new transport protocol that supports link aggregation (eg, MPTCP mode), or does not support the bundling of heterogeneous links (eg, MLO mode) and the current multi-path
  • link aggregation e.g, MPTCP mode
  • MLO mode heterogeneous links
  • this application provides a communication method in which the application is not aware of path bundling and does not require application modification to call a new transmission protocol, and can support the bundling of heterogeneous links.
  • for indication may include both direct indication and indirect indication.
  • indication information for indicating A it may include that the indication information directly indicates A or indirectly indicates A, but it does not mean that A must be included in the indication information.
  • the "storage" mentioned in the embodiment of the present application may refer to storage in one or more memories.
  • the one or more memories may be provided independently, or may be integrated in an encoder or decoder, a processor, or a communication device.
  • a part of the one or more memories may also be provided separately, and a part may be integrated in a decoder, a processor, or a communication device.
  • the type of the storage may be any form of storage medium, which is not limited in this application.
  • the "protocol” involved in the embodiment of the present application may refer to standard protocols in the field of communication, for example, may include LTE protocol, WIFI protocol and related protocols applied in future communication systems, which is not limited in this application.
  • the embodiments shown below do not specifically limit the specific structure of the execution subject of the method provided in the embodiment of the application, as long as the program that records the code of the method provided in the embodiment of the application can be executed according to the application
  • the method provided in the embodiment may be used for communication.
  • the execution subject of the method provided in the embodiment of the present application may be a terminal device, or a functional module in the terminal device that can call a program and execute the program.
  • Fig. 4 is a schematic flowchart of a communication method provided by the present application. Include the following steps:
  • the data sending end device acquires first data.
  • the first data includes to-be-sent data of a first application installed in the data sender device.
  • the destination address of the first data is the address of the data receiving end device.
  • the address of the data receiving end device may be an IP address (for example, the data receiving end device is a device in a wide area network); or it may also be a MAC address (for example, the data receiving end device is a device in a local area network).
  • the address of the data receiving end device may be referred to as the destination address hereinafter.
  • the data sending end device involved in the embodiment of the present application may be a terminal device, and may also be a network device (for example, an access network device or a core network device that communicates with the terminal device, etc.).
  • a network device for example, an access network device or a core network device that communicates with the terminal device, etc.
  • the data sending end device there is no limitation on the specific type of the data sending end device, and it may be any device capable of sending data.
  • the first application (application, APP) is an APP installed in the data sending end device.
  • it may be an APP installed in the data sending device for communication, or an APP installed in the data sending device for health monitoring.
  • first APP installed in the data sending device that needs to send the first data to the data receiving device.
  • the aforementioned first data to be sent by the first application may be a message, control signaling, information, etc. to be sent by the first application.
  • first data is not limited in the embodiment of the present application, and may be understood as information to be sent by the first application.
  • obtaining the first data by the data sending end device includes:
  • the first tunnel proxy system in the data sender device intercepts the first data sent by the first APP to the first kernel of the data sender device.
  • the first APP may send the first data to the first core of the data sending end device.
  • the first APP implements data communication by calling a TCP interface (Socket) or UDP Socket, and sends the first data to the first kernel of the sending end device.
  • Socket Socket
  • UDP Socket UDP Socket
  • the first tunnel proxy system intercepts the data sent by the first APP to the first kernel through linux Iptable.
  • the acquisition of the first data by the data sending end device includes:
  • the first APP sends the first data to be sent to the data receiving end device to the first tunnel proxy system in the data sending end device.
  • the acquisition of the first data by the data sending end device includes:
  • the first tunnel proxy system in the data sending end device determines the first data to be sent by the first APP according to the historical data sending records.
  • the method process shown in Figure 4 also includes:
  • start the first APP installed in the data sending end device discover the IP address of the data receiving end device through a similar discovery mechanism such as a domain name server (domain name system, DNS), and a central registration server, and establish a TCP connection with the data receiving end device. connection or UDP connection.
  • a domain name server domain name system, DNS
  • central registration server a central registration server
  • the first network card address corresponding to the destination address can be determined according to the destination address, and the method flow shown in FIG. 4 also includes:
  • the first network card address is the address of one or more network cards of the data receiving end device.
  • the first tunnel proxy system in the data sending end device searches the local record table according to the destination address of the first data sent by the first APP.
  • the first network card address corresponding to the above destination address already exists in the local record table of the data sending end device.
  • the data sending end device may determine the address of the first network card corresponding to the destination address according to the destination address and information already recorded in the record table.
  • the local record table of the data sending end device includes information about the destination address, where the information about the destination address includes the address of the first network card corresponding to the destination address.
  • the information related to the destination address included in the record table can be obtained through the following methods:
  • Method 1 The data sending device has sent the second data whose destination address is the destination address to the data receiving device before sending the first data, and records the relevant information of the destination address in the local record during the process of sending the second data table.
  • Method 2 The device at the data sending end obtains information related to the destination address from other devices (eg, a management device).
  • Mode 3 The information related to the destination address may be predefined by the protocol.
  • the record table may be called a tunnel record table, and may also be called a link record table.
  • the first network card address corresponding to the above destination address does not exist in the local record table of the data sending end device.
  • the data sending end device needs to start the detection process to detect whether the data receiving end device supports decapsulating data based on the network card address (or detect whether the data receiving end device supports the tunnel proxy function), the method shown in Figure 4
  • the process also includes:
  • the data sending end device sends a detection message to the data receiving end device, or the data receiving end device receives the detection message from the data sending end device.
  • the detection message is used to detect whether the data receiving end device supports decapsulating data based on the network card address.
  • the specific format of the detection message is not limited, and it may be any message that can be used to detect whether the device at the data receiving end supports the tunnel proxy function.
  • the detection packet may also be called detection information or information.
  • the detection result may include the following two possibilities:
  • the device at the data receiving end supports the tunnel proxy function.
  • the method process shown in Figure 4 also includes:
  • the data receiving end device sends a response message to the data sending end device, or the data sending end device receives the response message from the data receiving end device.
  • the data receiving end device sends a response message (which may be referred to as a first response message for ease of distinction) to the data sending end device, and the first response message is used to indicate that the data receiving end device supports the tunnel proxy function.
  • a response message (which may be referred to as a first response message for ease of distinction)
  • the first response message includes the address of the first network card.
  • the first network card address and the first response message are respectively sent to the data sending end device.
  • the tunnel proxy system of the data sending end device will record the dynamic entry for the destination IP (for example, add the first network card address corresponding to the destination address in the local record table).
  • the device at the data receiving end does not support the tunnel proxy function.
  • the data receiving end device may not respond to the detection message, for example, the data sending end device has not received a response message from the data receiving end device for responding to the detection message within a period of time.
  • the time can be preset, or determined through negotiation between the data sending end device and the data receiving end device; or,
  • the data receiving end device sends a second response message to the data sending end device, and the second response message is used to indicate that the data receiving end device does not support the tunnel proxy function, for example, the second response message is used to indicate that the Internet
  • the Control Message Protocol Internet Control Message Protocol, ICMP
  • ICMP port unreachable
  • the detection fails, that is, the data receiving end device does not support the tunnel proxy function.
  • the original sending method and encapsulation can be kept unchanged.
  • the sending method of the first data is ECMP sending or UCMP sending.
  • the sending method and encapsulation method of the first data are not limited.
  • the case where the data receiving end device supports the tunnel proxy function is mainly considered, and the case where the data receiving end device does not support the tunnel proxy function is not shown in FIG. 4 .
  • the first data may be encapsulated based on the first network card address to obtain the encapsulated first data, and the method shown in FIG. 4 further includes:
  • S430 Encapsulate the first data based on the address of the first network card to obtain encapsulated first data.
  • the data sending end device adds link encapsulation to the first data, and since the link encapsulation is implemented based on the address of the first network card, the address (or port) of the first data remains unchanged in the link. There is no need to allocate an additional address within the link, nor to modify the operating system kernel of the data sending device.
  • the data sending device encapsulates the first data based on the first network card address to obtain the encapsulated first data can be understood as: the data sending device encapsulates part of a network card address corresponding to a certain link For the first data, the link sends the part of encapsulated data.
  • the data sending end device may send the encapsulated first data to the data receiving end device through multiple links, and the method shown in FIG. 4 further includes:
  • the data sending end device sends the encapsulated first data to the data receiving end device through multiple links, or the data receiving end device receives the encapsulated first data from the data sending end device through multiple links.
  • the destination address of each link in the plurality of links is one of the addresses of the first network card
  • the source address is one of the addresses of the second network card
  • the address of the second network card is the address of the data sending end The addresses of one or more network cards of the device.
  • the link may be one of link mechanisms such as UDP link, Ethernet VLAN link, MACinMAC link, and IP link.
  • Support heterogeneous link bundling not limited to wireless links, wired links, WIFI, cellular and other types. Bandwidth bundling is performed between multiple links to increase the available network bandwidth, and through multi-link bundling, communication reliability can be improved.
  • the data sending end device sends the encapsulated first data to the data receiving end device through multiple links, including:
  • the splitting module corresponding to the first wireless interface of the data sending end device segments the first data into a first data packet and a second data packet, and the second data packet is split to the first data packet of the data sending end device.
  • the first wireless interface of the data sending end device sends the encapsulated first data packet to the data receiving end device through the first link;
  • the second wireless interface of the data sending end device sends the encapsulated second data packet to the data receiving end device through a second link.
  • first data packet may be one or more data packets
  • second data packet may also be one or more data packets
  • the application program of the data sending end device calls the Socket API or the first data generated by other modules of the kernel is sent to the first wireless interface (such as the first wireless WIFI driver), and the first data is divided by the distribution module of the first wireless interface.
  • the segment is a data packet, and a serial number is added to the data packet, and then some data packets are distributed to the second wireless interface (such as other wireless interfaces except the first wireless WIFI driver) according to the distribution strategy and the device MAC address mapping table. WIFI driver) data distribution module.
  • the data packets other than the above-mentioned partial data packets are encapsulated and sent to the sending buffer of the first wireless interface.
  • the data splitting module of the second wireless interface performs WDS encapsulation on part of the split data packets based on the device MAC address mapping table and the information of the second wireless interface and sends them to the sending buffer of the second wireless interface.
  • the data packets in the send buffer are sent according to the existing process.
  • the data packet received by the data receiving end device is checked and reassembled based on the device MAC address mapping table and cache policy, and the order of the data packet is restored.
  • the premise that the data sending end device can send the encapsulated first data to the data receiving end device through multiple links is that multiple links have been established, and the method shown in Figure 4 also includes:
  • the tunnel proxy system at the data sending end forms a link according to one or more effective local network card addresses (such as the second network card address) and one or more network card addresses (such as the first network card address) at the data receiving end.
  • one or more effective local network card addresses such as the second network card address
  • one or more network card addresses such as the first network card address
  • link connections may be measured periodically to eliminate failed connections.
  • the data receiving end device may decapsulate the received encapsulated first data to obtain the first data.
  • the method flow shown in Figure 4 also includes:
  • the data receiving end device decapsulates the encapsulated first data to obtain the first data.
  • the data receiving end device receives the encapsulated first data through multiple links, and then the data receiving end device decapsulates the encapsulated first data based on the address of the first network card to obtain the first data.
  • FIG. 5 is a schematic diagram of multi-way link bundling data transmission in a wide area network provided by the present application.
  • terminal device #1 shown in Fig. 5 is a data sending end device
  • terminal Device #2 is the data receiver device
  • both the data sending end device and the data receiving end device involve invocation of user state modules and kernel state modules.
  • the APP implements data communication by calling TCP or UDP socket (Socket) (for example, the APP shown in Figure 5 calls TCP Socket to send data to the kernel).
  • the tunnel proxy system filters and intercepts the data of the target APP by configuring the IP table of the kernel, and the interception strategy is managed by the interception strategy management module.
  • the intercepted data packets will be sent to the packet receiving module, and the packet receiving module will send the intercepted data to the binding state management module, and the binding state management module will determine whether the subsequent data packets are sent to the shunt according to the feedback of whether the data receiving end device can perform binding The management module, or send it directly to the contract sending module for direct contract sending.
  • link (or tunnel) encapsulation will be carried out according to the different connections of the diversion, and then the data packets will be sent to the packet sending module, and the packet sending module will call UDP socket to realize the sending of link data.
  • a detection module between the data sending end device and the data receiving end device, which is used to detect whether the data receiving end device is alive (for example, online or offline).
  • OS operating System
  • the data receiving end device After the data receiving end device receives the data packet through the hardware and operating system (Operating System, OS), it will send the data packet to the packet receiving module in the user state for processing; The decapsulation and out-of-sequence reordering are processed, and then sent to the packet sending module, which calls the raw socket (RAW socket) to send the data packet to the OS, and then is received by the APP.
  • OS operating System
  • FIG. 6 is a schematic diagram of multi-link bundling data transmission in a local area network provided by the present application.
  • terminal devices in the multi-link bundling architecture of the local area network are divided into data sending end devices and data receiving end devices (terminal device #1 shown in Figure 6 is the data sending end device, terminal device #2 is the data receiver device).
  • the data to be sent by the application of the data sending device is processed by the OS and sent to WIFI network card 1.
  • the tunnel proxy system in the driver of WIFI network card 1 starts to process data distribution, and some data packets are directly sent from the media of this interface.
  • Access control 1 Media Access Control, MAC1
  • MAC1 Media Access Control
  • WIFI network card 2 After the data distribution module of the WIFI network card 2 receives the data packet, it sends the data packet to the interface MAC2 of the network card.
  • the data packet received by the network card 4 of the data receiving end device reaches the data aggregation module, and sends the data to the data aggregation module of the network card 3 according to the MAC address MAC3 of the network card 3 provided by the address mapping management.
  • the data aggregation module of the network card 3 receives the data received by its own network card and the data sent by the network card 4, aggregates them, and sends them to the OS.
  • FIG. 5 and FIG. 6 are only examples to illustrate the application scenarios of the present application, and do not constitute any limitation to the protection scope of the present application.
  • This application is aimed at the networking scenario starting from the communication terminal, which can be used not only for link bundling of WIFI 2.4G and 5G in the local area network, but also for link bundling of WIFI links and cellular links in the wide area network.
  • this application also proposes a method for dynamically adjusting the shared weights of multiple links, through the measurement of the one-way delay change, the measurement of the packet loss rate, and the feedback of the one-way delay change and the packet loss feedback.
  • Time synchronization between communication terminals avoids traditional network resources occupied by a large number of ACK messages, which is especially beneficial on WIFI networks.
  • dynamic weight adjustment accurate dynamic sharing is realized, thereby improving the bundled bandwidth available to communication terminals.
  • the method for dynamically adjusting the shared weights of multiple links will be described in detail below with reference to FIG. 7 and FIG. 8 .
  • FIG. 7 is a schematic flowchart of another communication method provided by an embodiment of the present application. Include the following steps:
  • the data receiving end device sends first indication information to the data sending end device, or the data sending end device receives the first indication information from the data receiving end device.
  • the first indication information is used to indicate a delay difference between two encapsulated data packets transmitted through the first link.
  • the first link is any link in the plurality of links.
  • the data receiving end device calculates the time delay difference between every two encapsulated data packets with consecutive sequence numbers for the encapsulated data packets sent from any link.
  • the data receiving end device calculates that the delay of the encapsulated data packet with the serial number #1 sent on the first link is 1ms (which can be calculated by the time stamp sent and the receiving time), and the data receiving end device calculates The time delay of the encapsulated data packet with serial number #2 sent from the first link is 2ms, then the time delay of the encapsulated data packet with serial number #1 is the same as that of the encapsulated data packet with serial number #2 The delay difference between the delays of the data packets is 1 ms.
  • the data receiving end device calculates the time delay difference between two encapsulated data packets separated by a fixed number of data packets for the encapsulated data packets sent from any link.
  • the data receiving end device calculates the delay of the encapsulated data packet #1 sent on the first link as 1 ms, and the data receiving end device calculates the delay of the encapsulated data packet #2 sent on the first link as 3ms, the encapsulated data packet #1 and the encapsulated data packet #2 are separated by Q encapsulated data packets, Q is a positive integer, then the time delay of the encapsulated data packet #1 and the encapsulated data The delay difference between the delays of packets #2 is 2ms.
  • the delay difference may be called a one-way delay change value.
  • the data receiving end device may indicate the delay difference through the first indication information because the delay difference exceeds a threshold for determining network stability (which may be referred to as a preset threshold), for example, the delay difference exceeds N *Round-trip time delay (round-trip time, RTT), N is a positive integer; another example, the delay difference exceeds a predefined delay (for example, 1ms).
  • a threshold for determining network stability which may be referred to as a preset threshold
  • N Round-trip time, RTT
  • a predefined delay for example, 1ms.
  • the size of the preset threshold which may be determined through negotiation between the data receiving end device and the data sending end device, may also be determined by the data receiving end device, or may be pre-defined by the protocol. of.
  • the data sending end device may adjust the weights of the encapsulated data packets transmitted on multiple links according to the received first indication information, and the method flow shown in FIG. 7 also includes:
  • the data sending end device adjusts the weight of the encapsulated data packet transmitted on the first link.
  • the data sending end device adjusts the weight of the encapsulated data packet transmitted on the first link according to the first indication information, including:
  • the data sending end device adjusts the weight of the encapsulated data packet transmitted on the first link according to the delay difference, specifically, the adjusted weight of the encapsulated data packet transmitted on the first link is less than the weight of the encapsulated data packet transmitted on the first link before adjustment.
  • the weight of the encapsulated data packet transmitted on the first link and the delay difference satisfy the following formula:
  • M1 represents the weight of the encapsulated data packet transmitted on the first link after adjustment
  • M represents the weight of the encapsulated data packet transmitted on the first link before adjustment
  • T represents the delay difference
  • the upper-layer application of the data sending device sends encapsulated data packets to the distribution module at a certain rate, and the distribution module performs blind start-up packet-by-packet sharing according to a fixed 1:1 ratio or a static bandwidth ratio (eg, 5:1).
  • the encapsulated data packets on each link will be marked with independent serial numbers, that is, the encapsulated data packets on each link will be Has an independent serial number.
  • serial number may adopt sequential natural numbers, or the serial number may adopt the cumulative number of bytes sent, or may also adopt other ways of numbering, which is not limited in this application.
  • the link may be one of link mechanisms such as UDP link, Ethernet VLAN link, MACinMAC link, and IP link.
  • the data receiving device calculates the number of encapsulated data packets with two consecutive sequence numbers, or the distance between two encapsulated data packets separated by a fixed number of encapsulated data packets. The difference in delay between the two, that is, the one-way delay change value, and record this value.
  • the data receiving end device sends first indication information to the data sending end device, and the first indication information carries the one-way delay change value.
  • the data sending end device receives the first indication information, and adjusts the sharing weight according to the change value of the one-way delay.
  • the original ratio is that the scheduling weight between link #1 and link #2 is 5:1, and the change value of the one-way delay received by link #1 is 2ms, which triggers the distribution module to adjust the weight, and the adjusted weight is 5:2 (ie (5/2): 1); if the one-way delay variation value of link #1 continues to increase, the distribution module continues to adjust the weight, and the adjusted weight is 5:4 (ie (( 5/2)/2):1); when the one-way delay variation value of link #1 does not change any more, the last adjusted result can be maintained (for example, maintained as 5:4).
  • the weight adjustment will be performed. For example, if the one-way delay variation value of link #2 increases to 2ms, the weight will be adjusted to 5:2(((5/2)/2):(1/2)).
  • FIG. 8 is a schematic flowchart of another communication method provided by an embodiment of the present application. Include the following steps:
  • the data receiving end device sends the second indication information to the data sending end device, or the data sending end device receives the second indication information from the data receiving end device.
  • the second indication information is used to indicate the first packet loss rate of the first link.
  • the first link is any link in the plurality of links.
  • the data receiving end device calculates the packet loss rate of the data packets within a certain period (for example, within the current measurement period) based on data packet coloring or through sequence number judgment.
  • the data receiving end device When the measured packet loss rate is greater than the packet loss threshold, the data receiving end device sends second indication information to the data sending end device, and the second indication information carries the first packet loss rate (for example, the packet loss rate in the latest cycle).
  • the packet loss threshold may be predefined, may also be negotiated and determined between the data receiving end device and the data sending end device, or may be issued by the management device, which is not limited in this application.
  • the data sending end device may adjust the weight of the encapsulated data packet transmitted on the first link according to the received second indication information, and the method flow shown in FIG. 8 further includes:
  • the data sending end device adjusts the weight of the encapsulated data packet transmitted on the first link.
  • the data sending end device adjusts the weight of the encapsulated data packet transmitted on the first link according to the second indication information, including:
  • the data sending end device adjusts the weight of the encapsulated data packet transmitted on the first link
  • the weight of the encapsulated data packet transmitted on the first link after adjustment is smaller than the weight of the encapsulated data packet transmitted on the first link before adjustment.
  • the data sending end device upon receiving the second indication information, adjusts the sharing weight according to the packet loss rate, and adjusts the weight in a decreasing direction.
  • the data sending end device may determine whether to adjust the weight of the encapsulated data packets transmitted on multiple links, and before performing S820, the method flow shown in FIG. 8 may also include:
  • the device at the data sending end determines that the weight of the encapsulated data packet transmitted on the first link needs to be adjusted.
  • the packet loss rate of other links (for example, the latest known packet loss rate locally stored by the data sending end device) is needed. Compare.
  • the data sending end device determines that the first packet loss rate is greater than a second packet loss rate, the second packet loss rate is the packet loss rate of the second link, and the second link is the packet loss rate of the multiple One or more links in the links except the first link, the packet loss rate of the second link is the latest packet loss rate ( For example, the packet loss rate of the last measurement period).
  • the second packet loss rate is not zero, that is, in all other links, all packets are lost, then judge whether the packet loss rate of this link is greater than the packet loss rate of any link, if greater, then The weight of this link needs to be adjusted.
  • the second packet loss rate is zero, that is, among all other links, if there are other links without packet loss, the weight of this link needs to be adjusted.
  • the data sending device always records the smallest packet loss rate among all links. After the packet loss rate of any link is updated, compare it with the recorded packet loss rate: if it is greater than the recorded packet loss rate, adjust the Link weight, if it is less than or equal to the recorded packet loss rate, it will not be adjusted.
  • sequence numbers of the above processes do not mean the order of execution, and the execution order of each process should be determined by its functions and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application.
  • the embodiment shown in FIG. 4 and the embodiment shown in FIG. 7 can be combined. After multi-link bundling transmission is realized according to the embodiment shown in FIG. 4 , multiple links are adjusted based on the embodiment shown in FIG. 7 the weight of.
  • the embodiment shown in FIG. 4 and the embodiment shown in FIG. 8 can be combined. After multi-link bundling transmission is realized according to the embodiment shown in FIG. 4 , multiple chains are adjusted based on the embodiment shown in FIG. 8 road weight.
  • devices in the existing network architecture are used as examples for illustration (such as data sending end devices, data receiving end devices, etc.), and it should be understood that for specific devices Format
  • the embodiment of this application is not limited.
  • devices that can implement the same function in the future are applicable to this embodiment of the application.
  • the methods and operations implemented by devices may also be implemented by components of the device (such as chips or circuits).
  • each network element includes a corresponding hardware structure and/or software module for performing each function.
  • the embodiment of the present application can divide the functional modules of the transmitting end device or the receiving end device according to the above method example, for example, each functional module can be divided corresponding to each function, or two or more functions can be integrated into one processing module middle.
  • the above-mentioned integrated modules can be implemented in the form of hardware or in the form of software function modules. It should be noted that the division of modules in the embodiment of the present application is schematic, and is only a logical function division, and there may be other division methods in actual implementation. In the following, description will be made by taking the division of each functional module corresponding to each function as an example.
  • FIG. 9 is a schematic block diagram of an apparatus 900 provided by an embodiment of the present application.
  • the device 900 includes a transceiver unit 910 , a processing unit 920 and a storage unit 930 .
  • the transceiver unit 910 can implement a corresponding communication function, and the transceiver unit 910 can also be called a communication interface or a communication unit.
  • the processing unit 920 is used for data processing.
  • the storage unit 930 is used to store instructions and/or data, and the processing unit 920 can read the instructions and/or data in the storage unit, so that the device implements the aforementioned method embodiments.
  • the device 900 can be used to execute the actions performed by the device (such as the above-mentioned sending device, receiving device, etc.) in the above method embodiments.
  • the device 900 can be a device or a component that can be configured in the device
  • the transceiver unit 910 is configured to perform operations related to device sending and receiving in the above method embodiments
  • the processing unit 920 is used to perform operations related to device processing in the above method embodiments.
  • the apparatus 900 is configured to perform the actions performed by the data sending end device in the above method embodiments.
  • the processing unit 920 is configured to obtain first data, the first data includes data to be sent by a first application installed in the data sending device, and the destination address of the first data is the address of the data receiving device;
  • the processing unit 920 is further configured to determine a first network card address corresponding to the address of the data receiving device according to the address of the data receiving device, and the first network card address is the address of one or more network cards of the data receiving device ;
  • the processing unit 920 is further configured to encapsulate the first data based on the first network card address to obtain encapsulated first data;
  • transceiver unit 910 configured to send the encapsulated first data to the data receiving end device through multiple links
  • the destination address of each link in the plurality of links is one of the addresses of the first network card
  • the source address is one of the addresses of the second network card
  • the address of the second network card is one or Addresses of multiple network cards.
  • the transceiver unit 910 is further configured to send a detection message to the data receiving device, where the detection message is used to detect whether the data receiving device supports decapsulating data based on the network card address;
  • the transceiving unit 910 is further configured to receive a response message from the data receiving end device, where the response message is used to indicate that the data receiving end device supports decapsulating data based on the network card address.
  • the response message includes the address of the first network card.
  • processing unit 920 is further configured to establish the multiple links according to the first network card address and the second network card address.
  • the first data includes a plurality of data packets
  • the encapsulated first data includes a plurality of encapsulated data packets
  • the transceiving unit 910 sends the encapsulated first data to the data receiving end device through multiple links, including: the transceiving unit 910 sends a plurality of encapsulated data packets to the data receiving end device through the first link;
  • the transceiver unit 910 is further configured to receive first indication information from the data receiving end device, where the first indication information is used to indicate the time delay difference between two encapsulated data packets transmitted through the first link ;
  • the processing unit 920 is further configured to adjust weights of encapsulated data packets transmitted on the multiple links according to the first indication information
  • the first link is any link in the multiple links.
  • the weight of the encapsulated data packet transmitted on the first link after adjustment is smaller than the weight of the encapsulated data packet transmitted on the first link before adjustment.
  • the transceiving unit 910 is further configured to receive second indication information from the data receiving end device, where the second indication information is used to indicate the first packet loss rate of the first link;
  • the processing unit 920 is further configured to adjust the weight of the encapsulated data packet transmitted on the first link according to the second indication information
  • the first link is any link in the multiple links.
  • the first packet loss rate is greater than the second packet loss rate, and the weight of the encapsulated data packet transmitted on the first link after adjustment is smaller than the weight of the encapsulated data packet transmitted on the first link before adjustment , wherein the second packet loss rate is the packet loss rate of links other than the first link stored locally by the data sending end device.
  • the apparatus 900 can implement the steps or processes corresponding to the data sending end device in the method embodiment according to the embodiment of the present application, and the apparatus 900 can include a unit for executing the method executed by the data sending end device in the method embodiment . Moreover, each unit in the apparatus 900 and other operations and/or functions described above are respectively for realizing the corresponding process of the method embodiment in the data sending end device in the method embodiment.
  • the transceiver unit 910 can be used to execute the steps of sending and receiving information in the method, such as steps S421, S422 and S440; the processing unit 920 can be used to execute the processing steps in the method, Such as steps S410, S420, S430 and S441.
  • the transceiving unit 910 can be used to execute the step of sending and receiving information in the method, such as step S710; the processing unit 920 can be used to execute the processing step in the method, such as step S720.
  • the transceiving unit 910 can be used to execute the step of sending and receiving information in the method, such as step S810; the processing unit 920 can be used to execute the processing step in the method, such as step S820.
  • the apparatus 900 is configured to perform the actions performed by the data receiving end device in the above method embodiments.
  • the transceiver unit 910 is configured to receive the encapsulated first data from the data sending end device through multiple links;
  • the processing unit 920 is configured to decapsulate the encapsulated first data based on the address of the first network card to obtain the first data,
  • the first data includes the data to be sent by the first application installed in the data sending end device
  • the destination address of the first data is the address of the data receiving end device
  • the address of the data receiving end device is the same as that of the first network card
  • the first network card address is the address of one or more network cards of the data receiving end device
  • the encapsulated first data is the data obtained by encapsulating the first data based on the first network card address.
  • the transceiver unit 910 is configured to receive a detection message from the data sending device, where the detection message is used to detect whether the data receiving device supports decapsulating data based on the network card address;
  • the transceiving unit 910 is configured to send a response message to the data sending device, the response message includes the first network card address, and the response message is used to indicate that the data receiving device supports decapsulating data based on the network card address.
  • the response message includes the address of the first network card.
  • the first data includes a plurality of data packets
  • the encapsulated first data includes a plurality of encapsulated data packets
  • the transceiver unit 910 receives the encapsulated first data packets from the data sending end device through multiple links.
  • a piece of data including: the transceiver unit 910 receives a plurality of encapsulated data packets from the data sending end device through the first link;
  • the transceiver unit 910 is configured to send first indication information to the data sending end device, where the first indication information is used to indicate the time delay difference between two encapsulated data packets transmitted through the first link, the The delay difference is used to adjust the weight of the encapsulated data packet transmitted on the first link, where the first link is any link in the plurality of links.
  • the weight of the encapsulated data packet transmitted on the first link after adjustment is smaller than the weight of the encapsulated data packet transmitted on the first link before adjustment.
  • the transceiving unit 910 is configured to send second indication information to the data sending end device, where the second indication information is used to indicate a first packet loss rate of the first link, and the first packet loss rate is used for Adjusting the weight of the encapsulated data packet transmitted on the first link, where the first link is any link in the plurality of links.
  • the first packet loss rate is greater than the second packet loss rate, and the weight of the encapsulated data packet transmitted on the first link after adjustment is smaller than the weight of the encapsulated data packet transmitted on the first link before adjustment , wherein the second packet loss rate is the packet loss rate of links other than the first link stored locally by the data sending end device.
  • the apparatus 900 can implement the steps or processes corresponding to the execution of the data receiving end device in the method embodiment according to the embodiment of the present application, and the apparatus 900 can include a unit for executing the method executed by the data receiving end device in the method embodiment . Moreover, each unit in the apparatus 900 and other operations and/or functions described above are respectively for realizing the corresponding process of the method embodiment in the data receiving end device in the method embodiment.
  • the transceiver unit 910 can be used to execute the steps of sending and receiving information in the method, such as steps S421, S422 and S440; the processing unit 920 can be used to execute the processing steps in the method, Such as step S450.
  • the transceiver unit 910 can be used to execute the step of sending and receiving information in the method, such as step S710.
  • the transceiver unit 910 can be used to execute the step of sending and receiving information in the method, such as step S810 .
  • the processing unit 920 in the above embodiments may be implemented by at least one processor or processor-related circuits.
  • the transceiver unit 910 may be implemented by a transceiver or transceiver-related circuits.
  • the storage unit can be realized by at least one memory.
  • the embodiment of the present application further provides a device 1000 .
  • the apparatus 1000 includes a processor 1010 and may further include one or more memories 1020 .
  • the processor 1010 is coupled with the memory 1020, and the memory 1020 is used to store computer programs or instructions and/or data, and the processor 1010 is used to execute the computer programs or instructions and/or data stored in the memory 1020, so that the methods in the above method embodiments be executed.
  • the apparatus 1000 may further include a transceiver 1030, and the transceiver 1030 is used for receiving and/or sending signals.
  • the processor 1010 is configured to control the transceiver 1030 to receive and/or send signals.
  • the processor 1010 in FIG. 10 may be the processing unit 920 in FIG. 9, which realizes the function of the processing unit 920.
  • FIG. 9 The transceiver 1030 in Figure 10 can be the transceiver unit 910 in Figure 9, which realizes the function of the transceiver unit 910, and the operations performed by the transceiver 1030 can refer to the description of the transceiver unit 910 above, and will not be repeated here;
  • the memory 1020 may be the storage unit 930 in FIG. 9 to implement the function of the storage unit 930 .
  • the apparatus 1000 includes one or more processors 1010 .
  • the memory 1020 may be integrated with the processor 1010, or set separately.
  • the apparatus 1000 is used to implement the operations performed by the devices (such as the above-mentioned data receiving end device, data sending end device, etc.) in the above method embodiments.
  • the embodiment of the present application also provides a computer-readable storage medium, on which computer instructions for implementing the method performed by the device (such as the above-mentioned data receiving end device, data sending end device, etc.) in the above method embodiment are stored.
  • Embodiments of the present application also provide a computer program product containing instructions, which when executed by a computer enable the computer to implement the method performed by the device (such as the above-mentioned data receiving end device, data sending end device, etc.) in the above method embodiment.
  • the embodiment of the present application further provides a communication system, which includes the device in the above embodiments (such as the above-mentioned data receiving end device, data sending end device, etc.).
  • the embodiment of the present application also provides a chip device, including a processing circuit, the processing circuit is used to call and run the program from the memory, so that the communication device installed with the chip device can implement the device (such as the above data receiving device) in the above method embodiment. end device, data sending end device, etc.) to execute the method.
  • the processing circuit is used to call and run the program from the memory, so that the communication device installed with the chip device can implement the device (such as the above data receiving device) in the above method embodiment. end device, data sending end device, etc.) to execute the method.
  • processors mentioned in the embodiment of the present application may be a central processing unit (central processing unit, CPU), and may also be other general purpose processors, digital signal processors (digital signal processor, DSP), application specific integrated circuits ( application specific integrated circuit (ASIC), off-the-shelf programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • a general-purpose processor may be a microprocessor, or the processor may be any conventional processor, or the like.
  • the memory mentioned in the embodiments of the present application may be a volatile memory and/or a nonvolatile memory.
  • the non-volatile memory can be read-only memory (read-only memory, ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically programmable Erases programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • the volatile memory may be random access memory (RAM).
  • RAM random access memory
  • RAM can be used as an external cache.
  • RAM may include the following forms: static random access memory (static RAM, SRAM), dynamic random access memory (dynamic RAM, DRAM), synchronous dynamic random access memory (synchronous DRAM, SDRAM) , double data rate synchronous dynamic random access memory (double data rate SDRAM, DDR SDRAM), enhanced synchronous dynamic random access memory (enhanced SDRAM, ESDRAM), synchronous connection dynamic random access memory (synchlink DRAM, SLDRAM) and Direct memory bus random access memory (direct rambus RAM, DR RAM).
  • static random access memory static random access memory
  • dynamic RAM dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • SDRAM synchronous DRAM
  • double data rate SDRAM double data rate SDRAM
  • DDR SDRAM double data rate SDRAM
  • ESDRAM enhanced synchronous dynamic random access memory
  • SLDRAM synchronous connection dynamic random access memory
  • Direct memory bus random access memory direct rambus RAM, DR RAM
  • the processor is a general-purpose processor, DSP, ASIC, FPGA or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components
  • the memory storage module may be integrated in the processor.
  • memories described herein are intended to include, but are not limited to, these and any other suitable types of memories.
  • the disclosed devices and methods may be implemented in other ways.
  • the device 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 can be combined or May be integrated into another system, or some features may be ignored, or not implemented.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to implement the solutions provided in this application.
  • each functional unit in each embodiment of the present application may be integrated into one unit, each unit may exist separately physically, or two or more units may be integrated into one unit.
  • the computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable devices.
  • the computer may be a personal computer, a server, or a sending end device.
  • the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website, computer, server or data center Transmission to another website site, computer, server, or data center by wired (eg, coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (eg, infrared, wireless, microwave, etc.).
  • the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device such as a server or a data center integrated with one or more available media.
  • the available medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, DVD), or a semiconductor medium (for example, a solid state disk (solid state disk, SSD) etc.
  • the aforementioned available medium may include But not limited to: U disk, mobile hard disk, read-only memory (read-only memory, ROM), random access memory (random access memory, RAM), magnetic disk or optical disk and other media that can store program codes.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例提供了通信的方法和装置,该通信的方法包括:数据发送端设备获取本地安装的第一应用的待发送数据,该待发送数据的目的地址为数据接收端设备的地址;数据发送端设备根据该数据接收端设备的地址确定数据接收端设备的一个或者多个网卡的地址;数据发送端设备基于网卡地址对该待发送数据进行封装得到封装后的数据;数据发送端设备通过多条链路向数据接收端设备发送封装后的数据,其中,每条链路的目的地址为数据接收端设备的网卡地址中的一个,源地址为数据发送端设备的网卡地址中的一个。通过基于数据接收端设备的网卡地址对该数据进行封装,应用不感知多路链路捆绑,从而在简化应用操作的前提下实现多路链路捆绑。

Description

通信的方法和装置 技术领域
本申请实施例涉及通信领域,并且更具体地,涉及一种通信的方法和装置。
背景技术
当终端设备支持通过多路链路(如,无线局域网络(wireless fidelity,WIFI)链路和长期演进(long term evolution,LTE)蜂窝链路)通信,将多路链路带宽同时使用(如,多路链路捆绑)会获得更大的带宽。
目前多路链路捆绑的方式需要修改应用(application,APP)以调用支持链路捆绑的传输协议(如,传输控制协议(transmission control protocol,TCP)),因此如何在不需要修改APP的前提下,实现多路链路捆绑成为亟待解决的问题。
发明内容
本申请实施例提供一种通信的方法,通过基于网卡地址封装APP的待发送数据,使得APP不感知多路链路捆绑,从而在简化APP操作的前提下实现多路链路捆绑。
第一方面,提供了一种通信的方法,该方法可以由数据发送端设备执行,或者,也可以由数据发送端设备的组成部件(例如芯片或者电路)执行,对此不作限定,为了便于描述,下面以由数据发送端设备执行为例进行说明。
该通信的方法包括:数据发送端设备获取第一数据,该第一数据包括该数据发送端设备中安装的第一应用的待发送数据,该第一数据的目的地址为数据接收端设备的地址;该数据发送端设备根据该数据接收端设备的地址确定该数据接收端设备的地址对应的第一网卡地址,该第一网卡地址为该数据接收端设备的一个或者多个网卡的地址;该数据发送端设备基于该第一网卡地址对该第一数据进行封装得到封装后的第一数据;该数据发送端设备通过多条链路向该数据接收端设备发送该封装后的第一数据,其中,该多条链路中每条链路的目的地址为该第一网卡地址中的一个,源地址为第二网卡地址中的一个,该第二网卡地址为该数据发送端设备的一个或者多个网卡的地址。
基于上述技术方案,数据发送端设备获取本地安装的APP的待发送的第一数据,并且基于数据接收端设备的网卡地址对该第一数据进行封装,封装后的数据可以通过多路链路捆绑的方式发送,但是本申请中,由于APP发出的待发送的数据再次基于网卡地址封装之后在经由多路链路发送,APP不感知多路链路捆绑,从而在简化APP操作的前提下实现多路链路捆绑。
示例性地,该数据发送端设备基于该第一网卡地址对该第一数据进行封装得到封装后的第一数据可以理解为:该数据发送端设备基于某条链路对应的一个网卡地址封装部分第一数据,该条链路发送该一部分封装后的数据。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:该数据发送端设备向 该数据接收端设备发送探测报文,该探测报文用于探测该数据接收端设备是否支持基于网卡地址解封装数据;该数据发送端设备接收来自该数据接收端设备的响应消息,该响应消息用于指示该数据接收端设备支持基于网卡地址解封装数据。
基于上述技术方案,数据发送端设备能够通过发送探测报文获知数据接收端设备是否支持基于网卡地址解封装数据。
结合第一方面,在第一方面的某些实现方式中,该响应消息中包括该第一网卡地址。
在该数据接收端设备支持基于网卡地址解封装数据的情况下,数据发送端设备接收来自该数据接收端设备的响应消息,该响应消息中包括该第一网卡地址,以确保数据发送端设备发送的封装后的第一数据能够被数据接收端设备解封装,提高数据发送的准确性。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:该数据发送端设备根据该第一网卡地址和该第二网卡地址建立该多条链路。
结合第一方面,在第一方面的某些实现方式中,该第一数据包括多个数据包,该封装后的第一数据包括多个封装后的数据包;该数据发送端设备通过多条链路向该数据接收端设备发送该封装后的第一数据,包括:该数据发送端设备通过第一链路向该数据接收端设备发送多个封装后的数据包;该方法还包括:该数据发送端设备接收来自该数据接收端设备的第一指示信息,该第一指示信息用于指示通过第一链路传输的两个封装后的数据包之间的时延差值,该时延差值大于预设阈值;该数据发送端设备根据该第一指示信息调整该第一链路上传输的封装后的数据包权重,其中,该第一链路为该多条链路中的任意一条链路。
作为示例,预设阈值可以是用于判断网络稳态的阈值,例如,预设阈值为N*往返时延(round-trip time,RTT),N为正整数。
基于上述技术方案,数据发送端设备可以根据链路的单向时延变化值动态调整多条链路上传输的封装后的数据包权重,从而使得多条链路之间保持均衡,充分利用多条链路资源,优化链路的性能。其中,某条链路上传输的封装后的数据包权重可以理解为:在该链路上传输的封装后的数据包占封装后的数据包的权重(或者说比重)。
结合第一方面,在第一方面的某些实现方式中,该两个数据包包括:通过第一链路传输的序列号连续的两个数据包;或者,通过第一链路传输的序列号不连续的两个数据包。
上述的第一链路上传输的两个数据包可以是序列号连续的两个数据包,也可以是序列号不连续的两个数据包,提高方案的灵活性。
结合第一方面,在第一方面的某些实现方式中,调整后该第一链路上传输的封装后的数据包权重小于调整前该第一链路上传输的封装后的数据包权重。
结合第一方面,在第一方面的某些实现方式中,该第一链路上传输的封装后的数据包权重和该时延差值满足以下公式:M1=M/T,M1表示调整后该第一链路上传输的封装后的数据包权重,M表示调整前该第一链路上传输的封装后的数据包权重,T表示该时延差值。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:该数据发送端设备接收来自该数据接收端设备的第二指示信息,该第二指示信息用于指示第一链路的第一丢包率;该数据发送端设备根据该第二指示信息调整该第一链路上传输的封装后的数据包权重,其中,该第一链路为该多条链路中的任意一条链路。
基于上述技术方案,数据发送端设备可以根据链路的丢包率动态调整多条链路上传输的封装后的数据包权重,从而使得多条链路之间保持均衡,充分利用多条链路资源,优化链路的性能。
结合第一方面,在第一方面的某些实现方式中,该第一丢包率大于第二丢包率,调整后该第一链路上传输的封装后的数据包权重小于调整前该第一链路上传输的封装后的数据包权重,其中,该第二丢包率为该数据发送端设备本地保存的除该第一链路之外的链路的丢包率。
结合第一方面,在第一方面的某些实现方式中,该数据发送端设备通过多条链路向该数据接收端设备发送该封装后的第一数据,包括:该数据发送端设备的第一无线接口对应的分流模块将该第一数据分段为第一数据包和第二数据包,该第二数据包分流至该数据发送端设备的第二无线接口;该数据发送端设备的第一无线接口通过第一链路向该数据接收端设备发送封装后的第一数据包;该数据发送端设备的第二无线接口通过第二链路向该数据接收端设备发送封装后的第二数据包。
基于上述技术方案,能够实现多频段带宽捆绑,扩大应用可用的带宽,提高数据传输的可靠性。
第二方面,提供了一种通信的方法,该方法可以由数据接收端设备执行,或者,也可以由数据接收端设备的组成部件(例如芯片或者电路)执行,对此不作限定,为了便于描述,下面以由数据接收端设备执行为例进行说明。
该通信的方法包括:数据接收端设备通过多条链路接收来自数据发送端设备的封装后的第一数据;该数据接收端设备基于第一网卡地址解封装该封装后的第一数据,得到第一数据,其中,该第一数据包括该数据发送端设备中安装的第一应用的待发送数据,该第一数据的目的地址为数据接收端设备的地址,该数据接收端设备的地址与该第一网卡地址相对应,该第一网卡地址为该数据接收端设备的一个或者多个网卡的地址,该封装后的第一数据为该第一数据基于第一网卡地址封装得到的数据。
基于上述技术方案,数据发送端设备本地安装的APP的待发送的第一数据,基于数据接收端设备的网卡地址封装该第一数据,封装后的数据可以通过多路链路捆绑的方式发送,但是本申请中,由于APP发出的待发送的数据再次基于网卡地址封装之后在经由多路链路发送,APP不感知多路链路捆绑,从而在简化APP操作的前提下实现多路链路捆绑。
结合第二方面,在第二方面的某些实现方式中,该方法还包括:该数据接收端设备接收来自该数据发送端设备的探测报文,该探测报文用于探测该数据接收端设备是否支持基于网卡地址解封装数据;在该数据接收端设备支持基于网卡地址解封装数据的情况下,该数据接收端设备向该数据发送端设备发送响应消息,该响应消息用于指示该数据接收端设备支持基于网卡地址解封装数据。
基于上述技术方案,数据发送端设备能够通过发送探测报文获知数据接收端设备是否支持基于网卡地址解封装数据。
结合第二方面,在第二方面的某些实现方式中,该响应消息中包括该第一网卡地址。
在该数据接收端设备支持基于网卡地址解封装数据的情况下,数据发送端设备接收来自该数据接收端设备的响应消息,该响应消息中包括该第一网卡地址,以确保数据发送端 设备发送的封装后的第一数据能够被数据接收端设备解封装,提高数据发送的准确性。
结合第二方面,在第二方面的某些实现方式中,该第一数据包括多个数据包,该封装后的第一数据包括多个封装后的数据包;该数据接收端设备通过多条链路接收来自数据发送端设备的封装后的第一数据,包括:该数据接收端设备通过第一链路接收来自数据发送端设备的多个封装后的数据包;
该方法还包括:该数据接收端设备向该数据发送端设备发送第一指示信息,该第一指示信息用于指示通过该第一链路传输的两个封装后的数据包之间的时延差值,该时延差值用于调整该第一链路上传输的封装后的数据包权重,其中,该时延差值大于预设阈值,该第一链路为该多条链路中的任意一条链路。基于上述技术方案,链路的单向时延变化值可以用于动态调整多条链路上传输的封装后的数据包权重,从而使得多条链路之间保持均衡,充分利用多条链路资源,优化链路的性能。
结合第二方面,在第二方面的某些实现方式中,调整后该第一链路上传输的封装后的数据包权重小于调整前该第一链路上传输的封装后的数据包权重。
结合第二方面,在第二方面的某些实现方式中,该方法还包括:该数据接收端设备向该数据发送端设备发送第二指示信息,该第二指示信息用于指示第一链路的第一丢包率,该第一丢包率用于调整该第一链路上传输的封装后的数据包权重,其中,该第一链路为该多条链路中的任意一条链路。
基于上述技术方案,链路的丢包率可以用于动态调整多条链路上传输的封装后的数据包权重,从而使得多条链路之间保持均衡,充分利用多条链路资源,优化链路的性能。
结合第二方面,在第二方面的某些实现方式中,该第一丢包率大于第二丢包率,调整后该第一链路上传输的封装后的数据包权重小于调整前该第一链路上传输的封装后的数据包权重,
其中,该第二丢包率为该数据发送端设备本地保存的除该第一链路之外的链路的丢包率。
第三方面,提供了一种通信的装置,包括用于执行上述第一方面所示的方法的单元,该通信的装置可以是数据发送端设备,或者,也可以是设置于数据发送端设备中的芯片或电路执行,本申请对此不作限定。
该通信的装置包括:
处理单元,用于获取第一数据,该第一数据包括数据发送端设备中安装的第一应用的待发送数据,该第一数据的目的地址为数据接收端设备的地址;
该处理单元,还用于根据该数据接收端设备的地址确定该数据接收端设备的地址对应的第一网卡地址,该第一网卡地址为该数据接收端设备的一个或者多个网卡的地址;
该处理单元,还用于基于该第一网卡地址对该第一数据进行封装得到封装后的第一数据;
发送单元,用于通过多条链路向该数据接收端设备发送该封装后的第一数据,
其中,该多条链路中每条链路的目的地址为该第一网卡地址中的一个,源地址为第二网卡地址中的一个,该第二网卡地址为该数据发送端设备的一个或者多个网卡的地址。
结合第三方面,在第三方面的某些实现方式中,该发送单元,还用于向该数据接收端设备发送探测报文,该探测报文用于探测该数据接收端设备是否支持基于网卡地址解封装 数据;
该装置还包括:
接收单元,用于接收来自该数据接收端设备的响应消息,该响应消息用于指示该数据接收端设备支持基于网卡地址解封装数据。
结合第三方面,在第三方面的某些实现方式中,该响应消息中包括该第一网卡地址。结合第三方面,在第三方面的某些实现方式中,该处理单元,还用于根据该第一网卡地址和该第二网卡地址建立该多条链路。
结合第三方面,在第三方面的某些实现方式中,该第一数据包括多个数据包,该封装后的第一数据包括多个封装后的数据包;
发送单元通过多条链路向该数据接收端设备发送该封装后的第一数据,包括:该发送单元通过第一链路向该数据接收端设备发送多个封装后的数据包;
该接收单元,还用于接收来自该数据接收端设备的第一指示信息,该第一指示信息用于指示通过第一链路传输的两个封装后的数据包之间的时延差值,该时延差值大于预设阈值;
该处理单元,还用于根据该第一指示信息调整该第一链路上传输的封装后的数据包权重,
其中,该第一链路为该多条链路中的任意一条链路。
结合第三方面,在第三方面的某些实现方式中,调整后该第一链路上传输的封装后的数据包权重小于调整前该第一链路上传输的封装后的数据包权重。
结合第三方面,在第三方面的某些实现方式中,该处理单元根据该第一指示信息调整该第一链路上传输的封装后的数据包权重,包括:
该处理单元根据该时延差值调整该第一链路上传输的封装后的数据包权重,其中,该第一链路上传输的封装后的数据包权重和该时延差值满足以下公式:M1=M/T,M1表示调整后该第一链路上传输的封装后的数据包权重,M表示调整前该第一链路上传输的封装后的数据包权重,T表示该时延差值。
结合第三方面,在第三方面的某些实现方式中,该接收单元,还用于接收来自该数据接收端设备的第二指示信息,该第二指示信息用于指示第一链路的第一丢包率;
该处理单元,还用于根据该第二指示信息调整该第一链路上传输的封装后的数据包权重,
其中,该第一链路为该多条链路中的任意一条链路。
结合第三方面,在第三方面的某些实现方式中,该第一丢包率大于第二丢包率,调整后该第一链路上传输的封装后的数据包权重小于调整前该第一链路上传输的封装后的数据包权重,其中,该第二丢包率为该数据发送端设备本地保存的除该第一链路之外的链路的丢包率。
结合第三方面,在第三方面的某些实现方式中,该处理单元,还用于将该第一数据分段为第一数据包和第二数据包,并该第二数据包分流至该数据发送端设备的第二无线接口,
该发送单元通过多条链路向该数据接收端设备发送该封装后的第一数据,包括:
该第一无线接口对应的第一发送单元通过第一链路向该数据接收端设备发送封装后的第一数据包;
该第二无线接口对应的第二发送单元通过第二链路向该数据接收端设备发送封装后的第二数据包。
第三方面提供的通信的装置相关内容的解释及有益效果均可参考第一方面所示的方法,此处不再赘述。
第四方面,提供了一种通信的装置,包括用于执行上述第二方面所示的方法的单元,该通信的装置可以是数据接收端设备,或者,也可以是设置于数据接收端设备中的芯片或电路执行,本申请对此不作限定。
该通信的装置包括:
接收单元,用于通过多条链路接收来自数据发送端设备的封装后的第一数据;
处理单元,用于基于第一网卡地址解封装该封装后的第一数据,得到第一数据,
其中,该第一数据包括该数据发送端设备中安装的第一应用的待发送数据,该第一数据的目的地址为数据接收端设备的地址,该数据接收端设备的地址与该第一网卡地址相对应,该第一网卡地址为该数据接收端设备的一个或者多个网卡的地址,该封装后的第一数据为该第一数据基于第一网卡地址封装得到的数据。
结合第四方面,在第四方面的某些实现方式中,该接收单元,还用于接收来自该数据发送端设备的探测报文,该探测报文用于探测该数据接收端设备是否支持基于网卡地址解封装数据;
该装置还包括:
发送单元,用于向该数据发送端设备发送响应消息,该响应消息用于指示该数据接收端设备支持基于网卡地址解封装数据。
结合第四方面,在第四方面的某些实现方式中,该响应消息中包括该第一网卡地址。结合第四方面,在第四方面的某些实现方式中,该第一数据包括多个数据包,该封装后的第一数据包括多个封装后的数据包;该接收单元通过多条链路接收来自数据发送端设备的封装后的第一数据,包括:该接收单元通过第一链路接收来自数据发送端设备的多个封装后的数据包;
该装置还包括:
发送单元,用于向该数据发送端设备发送第一指示信息,该第一指示信息用于指示通过第一链路传输的两个封装后的数据包之间的时延差值,该时延差值用于调整该多条链路上传输的封装后的数据包权重,其中,该时延差值大于预设阈值,该第一链路为该多条链路中的任意一条链路。
结合第四方面,在第四方面的某些实现方式中,调整后该第一链路上传输的封装后的数据包权重小于调整前该第一链路上传输的封装后的数据包权重。
结合第四方面,在第四方面的某些实现方式中,该装置还包括:
发送单元,用于向该数据发送端设备发送第二指示信息,该第二指示信息用于指示第一链路的第一丢包率,该第一丢包率用于调整该第一链路上传输的封装后的数据包权重,其中,该第一链路为该多条链路中的任意一条链路。
结合第四方面,在第四方面的某些实现方式中,该第一丢包率大于第二丢包率,调整后该第一链路上传输的封装后的数据包权重小于调整前该第一链路上传输的封装后的数据包权重,
其中,该第二丢包率为该数据发送端设备本地保存的除该第一链路之外的链路的丢包率。
第四方面提供的通信的装置相关内容的解释及有益效果均可参考第二方面所示的方法,此处不再赘述。
第五方面,提供一种通信的装置,该通信的装置包括处理器,用于实现上述第一方面描述的方法中数据发送端设备的功能。
可选地,该通信的装置还可以包括存储器,该存储器与该处理器耦合,该处理器用于实现上述第一方面描述的方法中数据发送端设备的功能。
在一种可能的实现中,该存储器用于存储程序指令和数据。该存储器与该处理器耦合,该处理器可以调用并执行该存储器中存储的程序指令,用于实现上述第一方面描述的方法中数据发送端设备的功能。
可选地,该通信的装置还可以包括通信接口,该通信接口用于该通信的装置与其它设备进行通信。当该通信的装置为数据发送端设备时,该通信接口可以为收发器、输入/输出接口、或电路等。
在一种可能的设计中,该通信的装置包括:处理器和通信接口,
该处理器用于运行计算机程序,以使得该通信的装置实现上述第一方面描述的任一种方法;
该处理器利用该通信接口与外部通信。
可以理解,该外部可以是处理器以外的对象,或者是该装置以外的对象。
在另一种可能的设计中,该通信的装置为芯片或芯片系统。该通信接口可以是该芯片或芯片系统上输入/输出接口、接口电路、输出电路、输入电路、管脚或相关电路等。该处理器也可以体现为处理电路或逻辑电路。
第六方面,提供一种通信的装置,该通信的装置包括处理器,用于实现上述第二方面描述的方法中数据接收端设备的功能。
可选地,该通信的装置还可以包括存储器,该存储器与该处理器耦合,该处理器用于实现上述第二方面描述的方法中数据接收端设备的功能。
在一种可能的实现中,该存储器用于存储程序指令和数据。该存储器与该处理器耦合,该处理器可以调用并执行该存储器中存储的程序指令,用于实现上述第二方面描述的方法中数据接收端设备的功能。
可选地,该通信的装置还可以包括通信接口,该通信接口用于该通信的装置与其它设备进行通信。当该通信的装置为数据接收端设备时,该通信接口可以为收发器、输入/输出接口、或电路等。
在一种可能的设计中,该通信的装置包括:处理器和通信接口,
该处理器用于运行计算机程序,以使得该通信的装置实现上述第二方面描述的任一种方法;
该处理器利用该通信接口与外部通信。
可以理解,该外部可以是处理器以外的对象,或者是该装置以外的对象。
在另一种可能的设计中,该通信的装置为芯片或芯片系统。该通信接口可以是该芯片或芯片系统上输入/输出接口、接口电路、输出电路、输入电路、管脚或相关电路等。该 处理器也可以体现为处理电路或逻辑电路。
第七方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第八方面,本申请提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第九方面,提供了一种通信系统,包括第三方面所示的通信的装置和第四方面所示的通信的装置。
第十方面,提供了一种芯片装置,包括处理电路,该处理电路用于从存储器中调用并运行程序,使得安装有该芯片装置的通信设备执行上述第一和第二方面中任一种可能实现方式中的方法。
附图说明
图1是本申请实施例适用的场景示意图。
图2是本申请提供的一种广域网络多路链路捆绑场景的示意图。
图3是本申请提供的一种局域网络多路链路捆绑场景的示意图。
图4是本申请提供的一种通信的方法的示意性流程图。
图5是本申请提供的一种广域网络的多路链路捆绑数据传输的示意图。
图6是本申请提供的一种局域网络多路链路捆绑数据传输的示意图。
图7是本申请实施例提供的另一种通信的方法的示意性流程图。
图8是本申请实施例提供的又一种通信的方法的示意性流程图。
图9是本申请实施例提供的装置900的示意性框图。
图10是本申请实施例提供的装置1000的示意性框图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
本申请提供的通信方法的适用场景包括链路捆绑场景,如图1所示,图1是本申请实施例适用的场景示意图。
图1中示出终端设备#1、终端设备#2、终端设备#1中的接口#1和接口#2、终端设备#2中的接口#3、接口#1和接口#3之间的链路#1、接口#2和接口#3之间的链路#2以及互联网协议(internet protocol,IP)网络。
具体地,终端设备#1可以理解为数据发送端设备,终端设备#2可以理解为数据接收端设备。终端设备#1的一个或多个物理接口(如图1所示的接口#1和接口#2)与终端设备#2的一个或多个物理接口(如图1所示的接口#3)之间建立多条链路(如图1所示的链路#1和链路#2)。
需要说明的是,本申请中涉及的链路可以理解为虚拟链路。
示例性地,终端设备(如图1所示的终端设备#1和终端设备#2)支持WIFI和LTE蜂窝链路两种无线链路通信,或者还可以支持2.4G、5G、双LTE的4路通信,将多路链路带宽同时使用会获得更大的带宽、更高的可靠性、以及增大获得低时延的可能性。如,终端设备#1利用多条链路(如图1所示的链路#1和链路#2)向终端设备#2发送数据,数 据接收端将多条链路(或者称为多路链路)数据组合,可以获得更大的带宽。
另外,还有更多类型的异构链路,例如电力线和网线等等,也可以纳入多路链路捆绑以扩大带宽。
示例性地,图1中所示的IP网络可以是广域网络,还可以是无线局域网络(wireless fidelity,WIFI)。为了便于理解,下面简单介绍广域网络链路捆绑场景和无线局域网络(wireless fidelity,WIFI)多路链路捆绑场景。
作为一种可能的实现方式,本申请提供的通信方法的适用广域网络多路链路捆绑场景。图2是本申请提供的一种广域网络多路链路捆绑场景的示意图。如图2所示,两个终端设备(如图2中所示的终端设备#1和终端设备#2)之间的通信穿越广域网络,通过不同的接入链路(例如,长期演进(long term evolution,LTE)蜂窝链路、WIFI 2.4G链路、WIFI 5G链路等)形成多条具有独立带宽的虚拟链路。
从图2中可以看出,终端设备#1和终端设备#2之间通过LTE#1蜂窝链路形成虚拟链路#1;通过LTE#2蜂窝链路形成虚拟链路#2;通过WIFI 2.4G链路形成虚拟链路#3;通过WIFI 5G链路形成虚拟链路#4。
进一步地,可以将多条虚拟链路进行捆绑。从图2中可以看出,终端设备#1和终端设备#2之间形成多条具有独立带宽的虚拟链路(如图2所示的虚拟链路#1至虚拟链路#4)可以捆绑为至少一条链路(如图2所示的链路捆绑)。
需要说明的是,图2只是举例说明本申请实施例能够适用的广域网络链路捆绑场景,对本申请的保护范围不构成任何的限定,例如,广域网络链路捆绑场景下终端设备的个数可以为两个以上;还例如,终端设备之间的通信所通过的接入链路可以包括其他的链路类型;又例如,多条虚拟链路捆绑得到的链路个数可以为多个,这里不再一一举例说明。
作为另一种可能的实现方式,本申请提供的通信方法的适用局域网络多路链路捆绑场景。图3是本申请提供的一种局域网络多路链路捆绑场景的示意图。如图3所示,两个终端设备(如图3中所示的终端设备#1和终端设备#2)之间基于WIFI通信,通过不同的接入链路(例如,WIFI 2.4G链路、WIFI 5G链路等)形成多条具有独立带宽的虚拟链路。
从图3中可以看出,终端设备#1和终端设备#2之间通过WIFI 2.4G链路形成虚拟链路#1;通过WIFI 5G链路形成虚拟链路#2。
进一步地,可以将多条虚拟链路进行捆绑。从图3中可以看出,终端设备#1和终端设备#2之间形成多条具有独立带宽的虚拟链路(如图3所示的虚拟链路#1和虚拟链路#2)可以捆绑为至少一条链路(如图3所示的链路捆绑)。
需要说明的是,图3只是举例说明本申请实施例能够适用的局域网络链路捆绑场景,对本申请的保护范围不构成任何的限定,例如,局域网络链路捆绑场景下终端设备的个数可以为两个以上;还例如,终端设备之间的通信所通过的接入链路可以包括其他的WIFI链路;又例如,多条虚拟链路捆绑得到的链路个数可以为多个,这里不再一一举例说明。
本申请实施例中的终端设备可以指用户设备(user equipment)、接入终端、用户单元、用户站、移动站、移动台(mobile station,MS)、移动终端(mobile terminal,MT)、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。终端设备可以是一种向用户提供语音/数据连通性的设备,例如,具有无线连接功能的手持式设备、车载设备等。目前,一些终端的举例可以为:手机(mobile phone)、平板电脑 (pad)、带无线收发功能的电脑(如笔记本电脑、掌上电脑等)、移动互联网设备(mobile internet device,MID)、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、蜂窝电话、无绳电话、会话启动协议(session initiation protocol,SIP)电话、无线本地环路(wireless local loop,WLL)站、个人数字助理(personal digital assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5G网络中的终端设备或者未来演进的公用陆地移动通信网络(public land mobile network,PLMN)中的终端设备等。
此外,终端设备还可以是物联网(Internet of things,IoT)系统中的终端设备。IoT是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。IoT技术可以通过例如窄带(narrow band,NB)技术,做到海量连接,深度覆盖,终端省电。
应理解,终端设备可以是任何可以接入网络的设备。终端设备与接入网设备之间可以采用某种空口技术相互通信。
可选地,终端设备可以用于充当基站。例如,终端设备可以充当调度实体,其在V2X或D2D等中的终端设备之间提供侧行链路信号。比如,蜂窝电话和汽车利用侧行链路信号彼此通信。蜂窝电话和智能家居设备之间通信,而无需通过基站中继通信信号。
上文结合图1至图3简单说明了本申请实施例能够应用的场景,为了便于理解本申请实施例的技术方案,对本申请实施例涉及到的一些术语或概念进行简单描述。
1、多路链路。
将终端设备支持多条无线链路的接入方式称为多路链路接入。
示例性地,终端设备支持WIFI和LTE两种无线链路的接入。
示例性地,终端设备支持WIFI2.4G、WIFI5G、双LTE的4路接入。
示例性地,在家庭网络内,还有更多类型的异构链路,例如,电力线和网线等等。
本申请实施例中对于终端设备支持的多路链路中的不同链路的类型不做限定。
需要说明的是,多路链路带宽同时使用会获得更大的带宽、更高的可靠性、以及增大获得低时延的可能性。
示例性地,多路链路传输中:数据发送端设备的一个或多个物理接口与数据接收端设备的一个或多个物理接口之间建立多路链路,数据发送端设备利用多路链路向数据接收端设备发送数据,数据接收端设备将多路链路数据组合,获得更大的带宽。
2、等价多路径(equal cost multi path,ECMP)。
由上述的多路链路介绍可知,每条链路的带宽、时延、丢包率特性可能不一致,需要数据发送端设备在不同的链路上进行合理比例的分担,以改善传输吞吐率和时延。因为任何链路特性的变化都可能对多路链路传输的性能产生影响。例如,包括但不限于以下影响:
(1)没有正确的调度技术平衡延迟,多路链路之间的带宽可变性可能会导致传输吞吐率被最慢的链路限制;
(2)单个链路的高丢包率会显著影响传输性能。
为了避免链路特性的变化对多路链路传输的性能产生影响,提出ECMP机制。ECMP是一种转发机制,用于沿着等价的多条路径路由数据包,目标是实现几乎等价的分布式链路负载分担。在ECMP中,假设所有可用链路的速度相似。
例如,如果有两条可用的路径,每条路径上的负载占总负载的比例为50%。
3、非等价多路径(unequal cost multi path,UCMP)。
需要说明的是,并非所有路径都是等价路径,在这种情况下,UCMP可以设置不同的路径的上的负载所占权重不同。例如,当有3条可用路径时(如1G、10G、100G),在此示例中,1G的路径上的负载占总负载的比例可以设置为1%、10G的路径上的负载占总负载的比例可以设置为10%、100G的路径上的负载占总负载的比例可以设置为89%。
4、多路径TCP(multi path TCP,MPTCP)。
MPTCP是Internet工程任务组(Internet engineering task force,IETF)的多路径TCP工作组正在进行的一项工作,该工作组旨在允许TCP连接使用多条路径来最大化资源利用率。
MPTCP利用多条路径并发传输的传输层协议,可以提高端到端的吞吐率,增加网络利用率,且增加冗余性。MPTCP协议可参见RFC6824。MPTCP完全兼容TCP,在TCP的基础上新增了TCP选项头,以实现MPTCP建链、拆链和数据传输等功能。MPTCP典型的应用场景可以是在接入网中,也可以是在企业网中。
5、多链路操作(multilink operation,MLO)。
WIFI7正在制定多链路操作(multilink operation,MLO)的标准,使设备能够同时跨不同的频段和信道进行发送和接收。
多链路架构引入了多链路设备(multilink device,MLD)的概念,该设备由几个Wi-Fi设备(每个Wi-Fi设备都具有到无线媒体的PHY接口)组成,但有一个到LLC层的接口。换句话说,上层协议将MLD视为单个设备。尽管MLD有多个物理无线接口,但MLD有一个MAC地址,并且序列号从相同的序列号空间唯一生成。
6、报文染色。
报文染色统计是一种网络性能统计技术,通过直接对业务报文进行标记的方法,实现对IP报文精确端到端或分段的丢包测量。
7、网卡地址。
网卡地址也称为MAC地址,还可以称为局域网地址(LAN Address)、MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address)等。是一个用来确认网络设备位置的地址。
例如,在开放系统互连(Open Systems Interconnection,OSI)模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址,MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都有一个MAC地址。
8、隧道。
也可以称为链路,本申请下述实施例中涉及的隧道指的是:数据发送端设备的有效的一个或者多个网卡地址,以及数据接收端设备的一个或者多个网卡地址,形成的链路。
例如,数据发送端设备的有效网卡地址包括网卡地址#1和网卡地址#2,数据接收端设备的有效网卡地址包括网卡地址#3和网卡地址#4,隧道包括:网卡地址#1和网卡地址 #3之间的链路、网卡地址#1和网卡地址#4之间的链路、网卡地址#2和网卡地址#3之间的链路和网卡地址#2和网卡地址#4之间的链路。
9、内核。
内核是操作系统最基本的部分,为APP提供对计算机硬件的安全访问的一部分软件。
10、隧道代理系统。
本申请中涉及的隧道代理系统能够实现报文的拦截,如,拦截APP发送给内核的报文;还可以实现判断是否进行多路链路捆绑,如,根据报文接收端设备的反馈判断该报文是否通过多路链路发送;还可以实现数据包的分流,如,报文通过多路链路发送需要对报文进行分流。
11、Linux Iptable。
Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,包括但不限于:
数据包过滤、数据包处理、地址伪装、透明代理、动态网络地址转换(network address translation,NAT)、包速率限制等。
Netfilter所设置的规则是存放在内核内存中的,而Linux Iptable是一个应用层的应用程序,它通过接口对存放在内核内存中的XXtables(Netfilter的配置表)进行修改,XXtables由表(tables)、链(chains)、规则(rules)组成,Linux Iptable在应用层负责修改规则文件。
12、无线网络部署延展系统(wireless distribution system,WDS)封装。
WDS指用多个无线网络相互联结的方式构成一个整体的无线网络。简单地说,WDS就是利用两个(或以上)无线宽带路由器(或AP)通过相互连接的方式将无线信号向更深远的范围延伸。利用WDS技术,AP之间可以舍弃传统的有线网络进行互联,每个AP可以作为主设备、中继设备和远端设备。
WDS技术和其他无线扩展技术相比,一个显著的特点就是在各个AP之间传输数据时,保留了客户端的MAC地址,而且客户端的数据传输只牵扯到了MAC地址,跟IP地址无关。
由上述基本概念中介绍的ECMP和UCMP可知,ECMP或UCMP按照固定的分担比例,在多个具有动态带宽数据的链路上进行数据包的分担,可能会出现分担的不准确,导致部分链路丢包,部分链路带宽空闲,影响了总体的带宽利用率和时延、丢包性能。包括但不限于以下的分担不准确:
例如,以WIFI为例,一个终端设备可获得的WIFI带宽,会受到同一无线接入点(access point,AP)下其他终端设备对带宽使用的影响,也会受到终端设备与AP距离的变化的影响,带宽会一直发生变化。
还例如,在Overlay网络、手机蜂窝链路、WIFI链路捆绑等动态带宽场景下,无法实现动态的负载均衡,造成链路带宽利用率低,以及丢包率高的问题。
另外,上述基本概念中提到的MPTCP无法支持用户数据报协议(User Datagram Protocol,UDP)类业务。而大吞吐率、实时型业务往往采用UDP协议。
例如,MPTCP无法支持视频通话类的应用。
以及,上述基本概念中提到的MLO不支持异构链路的捆绑。
例如,MLO不支持WIFI与蜂窝链路之间的捆绑。
由上述可知,目前的多路径捆绑方式要么依赖修改APP以调用支持链路聚合的新传输协议(如,MPTCP方式),要么不支持异构链路的捆绑(如,MLO方式)并且目前多路链路之间的数据包的分担,可能会出现分担的不准确的问题。
为了避免上述的路径捆绑中出现的问题以及多路链路之间的数据包的分担出现的问题,本申请提供一种通信的方法,应用不感知路径的捆绑,不需要应用修改调用新的传输协议,并且能够支持异构链路的捆绑。
此外,为了便于理解本申请实施例,做出以下几点说明。
第一,在本申请中,“用于指示”可以包括用于直接指示和用于间接指示。当描述某一指示信息用于指示A时,可以包括该指示信息直接指示A或间接指示A,而并不代表该指示信息中一定包括有A。
第二,在本申请中第一、第二以及各种数字编号(例如,“#1”、“#2”)仅为描述方便进行的区分,并不用来限制本申请实施例的范围。例如,区分不同的信息等。
第三,本申请实施例中涉及的“保存”,可以是指的保存在一个或者多个存储器中。所述一个或者多个存储器,可以是单独的设置,也可以是集成在编码器或者译码器,处理器、或通信装置中。所述一个或者多个存储器,也可以是一部分单独设置,一部分集成在译码器、处理器、或通信装置中。存储器的类型可以是任意形式的存储介质,本申请并不对此限定。
第四,本申请实施例中涉及的“协议”可以是指通信领域的标准协议,例如可以包括LTE协议、WIFI协议以及应用于未来的通信系统中的相关协议,本申请对此不做限定。
应理解,下文示出的实施例并未对本申请实施例提供的方法的执行主体的具体结构特别限定,只要能够通过运行记录有本申请实施例的提供的方法的代码的程序,以根据本申请实施例提供的方法进行通信即可,例如,本申请实施例提供的方法的执行主体可以是终端设备,或者,是终端设备中能够调用程序并执行程序的功能模块。
以下,不失一般性,以数据发送端设备和数据接收端设备之间的交互为例详细说明本申请实施例提供的通信的方法。
图4是本申请提供的一种通信的方法的示意性流程图。包括以下步骤:
S410,数据发送端设备获取第一数据。
第一数据包括所述数据发送端设备中安装的第一应用的待发送数据。该第一数据的目的地址为数据接收端设备的地址。
示例性地,数据接收端设备的地址可以是IP地址(如,数据接收端设备为广域网中的设备);或者还可以是MAC地址(如,数据接收端设备为局域网中的设备)。
为了便于描述下文中可以将数据接收端设备的地址称为目的地址。
本申请实施例中涉及的数据发送端设备可以是终端设备,还可以是网络设备(如,与终端设备通信的接入网设备或核心网设备等)。
应理解,本申请实施例中对于数据发送端设备的具体类型不做任何限制,可以是任何能够发送数据的设备。
具体地,该第一应用(application,APP)为数据发送端设备中安装的一个APP。
例如,可以是数据发送端设备中安装的用于通讯的APP,还可以是数据发送端设备中 安装的用于健康监控的APP。
应理解,本申请实施例中对于第一APP的具体类型不做任何限制,可以是数据发送端设备中安装的任意一个需要向数据接收端设备发送第一数据的APP。
示例性地,上述的第一应用待发送的第一数据可以是第一应用待发送的报文、控制信令、信息等。
应理解,本申请实施例中对于第一数据的具体内容不做限定,可以理解为第一应用待发送的信息。
作为一种可能的实现方式,数据发送端设备获取第一数据包括:
数据发送端设备中的第一隧道代理系统拦截第一APP发送给数据发送端设备的第一内核的第一数据。
例如,在第一APP有第一数据需要发送给数据接收端设备的情况下,第一APP可以向数据发送端设备的第一内核发送该第一数据。
示例性地,第一APP通过调用TCP接口(Socket)或者UDP Socket实现数据通信,将第一数据发送给发送端设备的第一内核。
具体地,第一隧道代理系统通过linux Iptable对该第一APP发送给第一内核的数据进行拦截。
例如,打开防火墙Iptable服务,添加Iptable对外访问过滤规则。
作为另一种可能的实现方式,数据发送端设备获取第一数据包括:
第一APP将待发送给数据接收端设备的第一数据发送给数据发送端设备中的第一隧道代理系统。
作为又一种可能的实现方式,数据发送端设备获取第一数据包括:
数据发送端设备中的第一隧道代理系统根据历史数据发送记录确定第一APP的待发送的第一数据。
需要说明的是,本申请实施例中对于数据发送端设备如何获取到本地安装的第一APP的待发送给数据接收端设备的第一数据不做限定,上述列举的获取方式也只是举例对本申请的保护范围不构成任何的限定。
可选地,本申请实施例中数据发送端设备获取第一APP待发送的第一数据之前(或者之后,还可以是同时),数据发送端设备和数据接收端设备之间的通信连接已建立,图4所示的方法流程还包括:
S411,建立通信连接。
示例性地,启动数据发送端设备中安装的第一APP,通过域名服务器(domain name system,DNS)、中心注册服务器等类似发现机制发现数据接收端设备的IP地址,与数据接收端设备建立TCP连接或UDP连接。
需要说明的是,本申请实施例中对于数据发送端设备和数据接收端设备之间如何建立通信连接不做限定,可以参考目前相关技术中的介绍,如,数据发送端设备和数据接收端设备之间的通信建立流程。
进一步地,在数据发送端设备获取第一数据之后可以根据该目的地址确定目的地址对应的第一网卡地址,图4所示的方法流程还包括:
S420,确定第一网卡地址。
第一网卡地址为所述数据接收端设备的一个或者多个网卡的地址。
具体地,数据发送端设备中的第一隧道代理系统按照第一APP发送的第一数据的目的地址查找本地记录表。
作为一种可能的实现方式,上述的目的地址对应的第一网卡地址在数据发送端设备本地记录表中已经存在。
在该实现方式下,数据发送端设备可以根据目的地址和记录表中已经记录的信息确定目的地址对应的第一网卡地址。
例如,数据发送端设备本地记录表中包括目的地址相关信息,其中,目的地址相关信息包括目的地址对应的第一网卡地址。
示例性地,记录表中包括的该目的地址相关信息可以是通过以下方式获知:
方式一:数据发送端设备在发送第一数据之前已经向数据接收端设备发送过目的地址为该目的地址的第二数据,在发送该第二数据的过程中将目的地址相关信息记录在本地记录表中。
方式二:数据发送端设备从其他设备(如,管理设备)获取到该目的地址相关信息。
方式三:该目的地址相关信息可以是协议预定义的。
需要说明的是,本申请中对于数据发送端设备本地记录表中包括目的地址相关信息的原因不做限定。
可选地,该记录表可以称为隧道记录表,还可以称为链路记录表。
作为另一种可能的实现方式,上述的目的地址对应的第一网卡地址在数据发送端设备本地记录表中不存在。
在该实现方式下,数据发送端设备需要启动探测流程,以探测数据接收端设备是否支持基于网卡地址解封装数据(或者说探测数据接收端设备是否支持隧道代理功能),图4所示的方法流程还包括:
S421,数据发送端设备向数据接收端设备发送探测报文,或者说数据接收端设备接收来自数据发送端设备的探测报文。
具体地,探测报文用于探测所述数据接收端设备是否支持基于网卡地址解封装数据。本申请实施例中对于探测报文的具体格式不做限定,可以是任何能够用于探测数据接收端设备是否支持隧道代理功能的报文。
示例性地,探测报文也可以称为探测信息或信息。
需要说明的是,本申请中对于消息名称不做限定,任何能够实现该消息的功能的消息都在本申请的保护范围之内。
在数据发送端设备向数据接收端设备发送探测报文之后,根据数据接收端设备是否支持隧道代理功能,探测结果可以包括以下两种可能:
可能一、数据接收端设备支持隧道代理功能。
在该可能一下,图4所示的方法流程还包括:
S422,数据接收端设备向数据发送端设备发送响应消息,或者说数据发送端设备接收来自数据接收端设备的响应消息。
该数据接收端设备向数据发送端设备发送响应消息(为了便于区分可以称为第一响应消息),该第一响应消息用于指示数据接收端设备支持隧道代理功能。
示例性地,该第一响应消息中包括第一网卡地址。
示例性地,第一网卡地址和第一响应消息分别发送给数据发送端设备。
在该可能一下,数据发送端设备的隧道代理系统将记录针对该目的IP的动态表项(如,在本地记录表中增加目的地址对应的第一网卡地址)。
可能二、数据接收端设备不支持隧道代理功能。
在该能二下,该数据接收端设备可以不对探测报文做响应,例如,一段时间内数据发送端设备未接收到来自数据接收端设备的用于响应探测报文的响应消息,其中,一段时间可以是预设的,还可以是数据发送端设备和数据接收端设备协商确定的;或者,
在该能二下,该数据接收端设备向数据发送端设备发送第二响应消息,该第二响应消息用于指示数据接收端设备不支持隧道代理功能,例如,第二响应消息用于指示Internet控制报文协议(Internet Control Message Protocol,ICMP)端口不可达(ICMP port unreachable)。
在该实现方式下,可以理解为探测失败,即数据接收端设备不支持隧道代理功能。对于第一数据来说可以维持原有发送方式和封装不变。
例如,第一数据的发送方式为ECMP发送或UCMP发送,本申请实施例中对于在数据接收端设备不支持隧道代理功能的情况下,第一数据的发送方式和封装方式不做限定。
本申请实施例中主要考虑数据接收端设备支持隧道代理功能的情况,对于数据接收端设备不支持隧道代理功能的情况未在图4中示出。
进一步地,在确定目的地址对应的第一网卡地址之后,可以基于第一网卡地址对所述第一数据进行封装得到封装后的第一数据,图4所示的方法还包括:
S430,基于第一网卡地址对所述第一数据进行封装得到封装后的第一数据。
具体地,数据发送端设备对第一数据增加链路封装,由于链路封装是基于第一网卡地址实现的,链路内保持第一数据的地址(或者说端口)不变。不需要额外分配链路内地址,也不需要修改数据发送端设备的操作系统内核。
示例性地,该数据发送端设备基于该第一网卡地址对该第一数据进行封装得到封装后的第一数据可以理解为:该数据发送端设备基于某条链路对应的一个网卡地址封装部分第一数据,该条链路发送该一部分封装后的数据。
进一步地,在得到封装后的第一数据之后,数据发送端设备可以通过多条链路向所述数据接收端设备发送所述封装后的第一数据,图4所示的方法还包括:
S440,数据发送端设备通过多条链路向数据接收端设备发送封装后的第一数据,或者说数据接收端设备通过多条链路接收来自数据发送端设备的封装后的第一数据。
其中,所述多条链路中每条链路的目的地址为所述第一网卡地址中的一个,源地址为第二网卡地址中的一个,所述第二网卡地址为所述数据发送端设备的一个或者多个网卡的地址。
需要说明的是,本申请实施例中对于链路的类型不做限定,例如,链路可以是UDP链路、以太VLAN链路、MACinMAC链路、IP链路等链路机制中的一种。支持异构链路捆绑,不限于无线链路、有线链路、WIFI、蜂窝等类型。在多链路之间进行带宽捆绑,提高可获得的网络带宽,并且通过多链路捆绑,可以提高通信的可靠性。
示例性地,所述数据发送端设备通过多条链路向所述数据接收端设备发送所述封装后 的第一数据,包括:
所述数据发送端设备的第一无线接口对应的分流模块将所述第一数据分段为第一数据包和第二数据包,所述第二数据包分流至所述数据发送端设备的第二无线接口;
所述数据发送端设备的第一无线接口通过第一链路向所述数据接收端设备发送封装后的第一数据包;
所述数据发送端设备的第二无线接口通过第二链路向所述数据接收端设备发送封装后的第二数据包。
需要说明的是,上述的第一数据包可以是一个或者多个数据包,第二数据包也可以是一个或者多个数据包。
为了便于理解,举例说明数据发送端设备如何通过多条链路向数据接收端设备发送封装后的第一数据。
例如,数据发送端设备的应用程序调用Socket API或内核其他模块生成的第一数据发送到第一无线接口(如,第一无线WIFI驱动),由第一无线接口的分流模块将第一数据分段为数据包,在数据包上增加序列号,然后根据基于分流策略和设备MAC地址映射表,将部分数据包分流到第二无线接口(如,除第一无线WIFI驱动之外的其他无线接口WIFI驱动)的数据分流模块。
除上述的部分数据包之外的数据包封装后发到本第一无线接口的发送缓冲区。
第二无线接口的数据分流模块基于设备MAC地址映射表和第二无线接口的信息,对分流的部分数据包进行WDS封装发到第二无线接口的发送缓冲区。
发送缓冲区的数据包按照现有流程发送。
数据接收端设备接收到的数据包,基于设备MAC地址映射表和缓存策略进行数据检查和重组,恢复数据报文顺序。
需要说明的是,数据发送端设备能够通过多条链路向数据接收端设备发送封装后的第一数据的前提是,多条链路已建立,图4所示的方法还包括:
S441,根据第一网卡地址和第二网卡地址建立多条链路。
具体地,数据发送端隧道代理系统根据本地的有效的一个或者多个网卡地址(如,第二网卡地址),以及数据接收端的一个或者多个网卡地址(如,第一网卡地址),形成链路连接的排列组合。
可选地,可以定期对链路连接进行测量,剔除掉失效的连接。
进一步地,数据接收端设备可以对接收到的封装后的第一数据进行解封装,得到第一数据。图4所示的方法流程还包括:
S450,数据接收端设备解封装该封装后的第一数据,得到第一数据。
具体地,数据接收端设备通过多条链路接收封装后的第一数据,然后数据接收端设备基于第一网卡地址解封装该封装后的第一数据,得到第一数据。
为了便于理解,下面结合具体的实施例说明本申请提供的多路链路捆绑方法在广域网和局域网中的应用。
示例性地,面向广域网络的链路捆绑架构如下图5所示,图5是本申请提供的一种广域网络的多路链路捆绑数据传输的示意图。
从图5中可以看出广域网络的多路链路捆绑架构中的终端设备分为数据发送端设备 和数据接收端设备(如图5中所示的终端设备#1为数据发送端设备,终端设备#2为数据接收端设备)。
具体地,在数据发送端设备和数据接收端设备中都涉及用户态模块和内核态模块的调用。在数据发送端设备中,APP通过调用TCP或者UDP套接字(Socket)实现数据通信(如,图5中所示的APP调用TCP Socket向内核发送数据)。隧道代理系统通过配置内核的IP表格(table)对目标APP的数据进行过滤拦截,拦截的策略由拦截策略管理模块进行管理。拦截到的数据包会发送给收包模块,收包模块将拦截的数据送给捆绑状态管理模块,捆绑状态管理模块根据数据接收端设备是否可以进行捆绑的反馈,确定后续数据包是发送给分流管理模块,还是直接发送给发包模块进行直接发包。
进一步地,对于发送给分流管理模块的数据包,将根据分流的不同连接进行链路(或者说隧道)封装,随后将数据包发给发包模块,发包模块调用UDP socket实现链路数据的发送。
在数据发送端设备和数据接收端设备之间还有探测模块,用来探测数据接收端设备是否存活(如,在线或离线)等状态。数据接收端设备通过硬件和操作系统(Operating System,OS)收到数据包之后,会将数据包送给用户态的收包模块处理;收包模块将数据包发送给保序模块,进行数据包的解封装和乱序调序的处理,随后发给发包模块,发包模块调用原始套接字(RAW socket)将数据包发给OS,随后被APP接收。
示例性地,面向局域网络的多路链路捆绑构如下图6所示,图6是本申请提供的一种局域网络多路链路捆绑数据传输的示意图。
从图6中可以看出局域网络多路链路捆绑架构中的终端设备分为数据发送端设备和数据接收端设备(如图6中所示的终端设备#1为数据发送端设备,终端设备#2为数据接收端设备)。
具体地,数据发送端设备的应用要发送的数据经过OS的处理,发给WIFI网卡1,在WIFI网卡1驱动中的隧道代理系统开始进行数据分流的处理,一部分数据包直接从本接口的媒体接入控制1(Media Access Control,MAC1)发送,另外一部数据包根据地址映射管理提供的网卡2的MAC地址MAC2,发往WIFI网卡2。WIFI网卡2的数据分流模块接收到数据包之后,发往本网卡的接口MAC2将数据包发送出去。
数据接收端设备网卡4接收到的数据包到达数据聚合模块,根据地址映射管理提供的网卡3的MAC地址MAC3,将数据发送给网卡3的数据聚合模块。网卡3的数据聚合模块收到自身网卡接收到的数据和网卡4发来的数据,经过聚合处理,发送给OS。
从图5和图6所示的数据传输流程中可以看出,在通信终端与通信终端网络通信场景中,对终端上安装的应用完全透明,不需要应用修改调用新的传输协议,可以做到应用不感知,由系统决定哪些应用的数据适合传输的捆绑路径。
另外,需要说明的是,图5和图6只是举例说明本申请所应用的场景,对本申请的保护范围不构成任何的限定。本申请针对在以通信终端为起点的组网场景中,既可以用于局域网络WIFI 2.4G和5G的链路捆绑,也可以用于广域网络WIFI链路和蜂窝链路的链路捆绑。
进一步地,本申请还提出了动态调整多条链路的分担权重的方法,通过对单向时延变化的测量、丢包率的测量,以及单向时延变化反馈、丢包反馈,无需在通信终端间进行时 间同步,避免传统上大量ACK报文占用的网络资源,在WIFI网络上尤其有益。并且通过动态权重调整,实现精确的动态分担,从而提高通信终端可获得的捆绑带宽。下面结合图7和图8详细介绍该动态调整多条链路的分担权重的方法。
图7是本申请实施例提供的另一种通信的方法的示意性流程图。包括以下步骤:
S710,数据接收端设备向数据发送端设备发送第一指示信息,或者说数据发送端设备接收来自数据接收端设备的第一指示信息。
第一指示信息用于指示通过第一链路传输的两个封装后的数据包之间的时延差值。其中,所述第一链路为所述多条链路中的任意一条链路。
作为一种可能的实现方式,数据接收端设备对于任意一条链路上发来的封装后的数据包,计算每两个连续序列号的封装后的数据包之间的时延差。
例如,数据接收端设备计算第一链路上发来的序列号为#1的封装后的数据包的时延为1ms(可以通过发送的时间戳和接收时刻计算得到),数据接收端设备计算第一链路上发来的序列号为#2的封装后的数据包的时延为2ms,则序列号为#1的封装后的数据包的时延和序列号为#2的封装后的数据包的时延之间的时延差为1ms。
作为另一种可能的实现方式,数据接收端设备对于任意一条链路上发来的封装后的数据包,计算相隔固定数量数据包的两个封装后的数据包之间的时延差。
例如,数据接收端设备计算第一链路上发来封装后的数据包#1的时延为1ms,数据接收端设备计算第一链路上发来封装后的数据包#2的时延为3ms,封装后的数据包#1和封装后的数据包#2之间间隔了Q个封装后的数据包,Q为正整数,则封装后的数据包#1的时延和封装后的数据包#2的时延之间的时延差为2ms。
示例性地,时延差值可以称为单向时延变化值。
需要说明的是,上述只是举例说明数据接收端设备如何计算单向时延变化值,对本申请的保护范围不构成任何的限定,其他用于计算单向时延变化值的方法也在本申请的保护范围之内。
示例性地,数据接收端设备通过第一指示信息指示时延差值可以是因为该时延差值超过判断网络稳态阈值(可以称为预设阈值),例如,该时延差值超过N*往返时延(round-trip time,RTT),N为正整数;还例如,该时延差值超过预定义的某个时延(如,1ms)。需要说明的是,本申请实施例中对于预设阈值的大小不做限定,可以是数据接收端设备和数据发送端设备协商确定的,也可以是数据接收端设备确定,还可以是协议预定义的。
进一步地,数据发送端设备可以根据接收到的第一指示信息调整多条链路上传输的封装后的数据包权重,图7所示的方法流程还包括:
S720,数据发送端设备调整第一链路上传输的封装后的数据包权重。
示例性地,数据发送端设备根据所述第一指示信息调整所述第一链路上传输的封装后的数据包权重,包括:
所述数据发送端设备根据所述时延差值调整所述第一链路上传输的封装后的数据包权重,具体地,调整后所述第一链路上传输的封装后的数据包权重小于调整前所述第一链路上传输的封装后的数据包权重。
示例性地,所述第一链路上传输的封装后的数据包权重和所述时延差值满足以下公式:
M1=M/T,
M1表示调整后所述第一链路上传输的封装后的数据包权重,M表示调整前所述第一链路上传输的封装后的数据包权重,T表示所述时延差值。
为了便于理解,下面举例说明图7所示的动态调整多条链路的分担权重的方法。
例如,以两条链路带宽捆绑为例。数据发送端设备的上层应用以一定速率向分流模块发送封装后的数据包,分流模块按照固定1:1比例或者静态带宽比例(如,5:1)进行盲启动逐包分担。
数据发送端设备在多条不同链路上发送封装后的数据包时,每条链路上的封装后的数据包都会打独立的序列号,即每条链路上的封装后的数据包都有独立的序列号。
其中,序列号可以采用顺序的自然数,或者序列号可以采用发送的累积字节数,或者还可以采用其他方式编号,本申请对此不做限制。
链路可以是UDP链路、以太VLAN链路、MACinMAC链路、IP链路等链路机制中的一种。
数据接收端设备对于任意一条链路上发来的封装后的数据包,计算每两个连续序列号封装后的数据包,或者相隔固定数量封装后的数据包的两个封装后的数据包之间的时延差,即单向时延变化值,并记录该值。
当单向时延变化值增大,超过判断网络稳态阈值,数据接收端设备向数据发送端设备发送第一指示信息,第一指示信息中携带单向时延变化值。
数据发送端设备接收到第一指示信息,根据单向时延变化值调整分担权重。
如,原有比例为链路#1与链路#2之间采用5:1的调度权重,链路#1收到单向时延变化值为2ms,触发分流模块调整权重,调整之后的权重为5:2(即(5/2):1);如果链路#1的单向时延变化值继续增大,则分流模块继续调整权重,调整之后的权重为5:4(即((5/2)/2):1);链路#1的单向时延变化值不再变化时,可以维持最后一次调整的结果(如,维持为5:4)。当链路#1或者链路#2的单向时延变化值发生变化的情况下,再进行权重调整,如,链路#2的单向时延变化值增大到2ms,权重将调整为5:2(((5/2)/2):(1/2))。
图8是本申请实施例提供的又一种通信的方法的示意性流程图。包括以下步骤:
S810,数据接收端设备向数据发送端设备发送第二指示信息,或者说数据发送端设备接收来自数据接收端设备的第二指示信息。
第二指示信息用于指示第一链路的第一丢包率。其中,所述第一链路为所述多条链路中的任意一条链路。
示例性地,数据接收端设备基于数据报文染色或者通过序号判断等方式,计算一定周期内(如,当前测量周期内)数据包的丢包率。
当测量的丢包率大于丢包阈值,数据接收端设备向数据发送端设备发送第二指示信息,第二指示信息中携带第一丢包率(如,最近一个周期内的丢包率)。其中,丢包阈值可以为预定义的,也可以为数据接收端设备和数据发送端设备协商确定的,还可以是管理设备下发的,本申请对此不做限定。
进一步地,数据发送端设备可以根据接收到的第二指示信息调整第一链路上传输的封装后的数据包权重,图8所示的方法流程还包括:
S820,数据发送端设备调整第一链路上传输的封装后的数据包权重。
示例性地,所述数据发送端设备根据所述第二指示信息调整第一链路上传输的封装后 的数据包权重,包括:
所述数据发送端设备调整所述第一链路上传输的封装后的数据包权重,
其中,调整后所述第一链路上传输的封装后的数据包权重小于调整前所述第一链路上传输的封装后的数据包权重。
可以理解为,数据发送端设备接收到第二指示信息,根据丢包率调整分担权重,调整权重为向减小方向调整。
可选地,以丢包率为依据调整分担权重时,以期所有链路保持相同的丢包率。
需要说明的是,该实施例中数据发送端设备可以确定是否需要调整多条链路上传输的封装后的数据包权重,则在执行S820之前图8所示的方法流程还可以包括:
S821,数据发送端设备判断需要调整第一链路上传输的封装后的数据包权重。
具体地,判断是否要调整第一链路上传输的封装后的数据包权重时,需要与其他链路的丢包率(如,数据发送端设备本地保存的已知的最新的丢包率)进行比较。
所述数据发送端设备确定所述第一丢包率大于第二丢包率,所述第二丢包率为所述第二链路的丢包率,所述第二链路为所述多条链路中除所述第一链路之外的一条或多条链路,所述第二链路的丢包率为数据发送端设备本地保存的第二链路的最新的丢包率(如,上一个测量周期的丢包率)。
一种可能的形式,第二丢包率不为零,即在所有其他链路中,都丢包,则判断本链路丢包率是否大于任意一个链路的丢包率,如果大于,则需要调整本链路的权重。
或者,
另一种可能的形式,第二丢包率为零,即在所有其他链路中,如果存在不丢包的其他链路,则需要调整本链路的权重。
例如,数据发送端设备始终记录所有链路中最小的丢包率,任意一个链路的丢包率更新后,与记录中的丢包率进行比较:如果大于记录的丢包率,则调整本链路的权重,如果小于等于记录的丢包率,则不调整。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
还应理解,在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
例如,图4所示的实施例和图7所示的实施例可以结合,根据图4所示的实施例实现多链路捆绑传输之后,再基于图7所示的实施例调整多条链路的权重。
还例如,图4所示的实施例和图8所示的实施例可以结合,根据图4所示的实施例实现多链路捆绑传输之后,再基于图8所示的实施例调整多条链路的权重。
还应理解,在上述一些实施例中,主要以现有的网络架构中的设备为例进行了示例性说明(如数据发送端设备、数据接收端设备等等),应理解,对于设备的具体形式本申请实施例不作限定。例如,在未来可以实现同样功能的设备都适用于本申请实施例。
可以理解的是,上述各个方法实施例中,由设备(如上述如数据发送端设备、数据接收端设备等)实现的方法和操作,也可以由设备的部件(例如芯片或者电路)实现。
以上,结合图4至图8详细说明了本申请实施例提供通信的方法。上述通信的方法主 要从如数据发送端设备和数据接收端设备之间交互的角度进行了介绍。可以理解的是,各个网元,为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。
本领域技术人员应该可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以下,结合图9和图10详细说明本申请实施例提供的通信的装置。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,部分内容不再赘述。
本申请实施例可以根据上述方法示例对发射端设备或者接收端设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明。
图9是本申请实施例提供的装置900的示意性框图。该装置900包括收发单元910、处理单元920和存储单元930。收发单元910可以实现相应的通信功能,收发单元910还可以称为通信接口或通信单元。处理单元920用于进行数据处理。存储单元930用于存储指令和/或数据,处理单元920可以读取存储单元中的指令和/或数据,以使得装置实现前述方法实施例。
该装置900可以用于执行上文方法实施例中设备(如上述发送端设备、接收端设备等)所执行的动作,这时,该装置900可以为设备或者可配置于设备的部件,收发单元910用于执行上文方法实施例中设备的收发相关的操作,处理单元920用于执行上文方法实施例中设备处理相关的操作。
作为一种设计,该装置900用于执行上文方法实施例中数据发送端设备所执行的动作。
处理单元920,用于获取第一数据,该第一数据包括数据发送端设备中安装的第一应用的待发送数据,该第一数据的目的地址为数据接收端设备的地址;
该处理单元920,还用于根据该数据接收端设备的地址确定该数据接收端设备的地址对应的第一网卡地址,该第一网卡地址为该数据接收端设备的一个或者多个网卡的地址;
该处理单元920,还用于基于该第一网卡地址对该第一数据进行封装得到封装后的第一数据;
收发单元910,用于通过多条链路向该数据接收端设备发送该封装后的第一数据,
其中,该多条链路中每条链路的目的地址为该第一网卡地址中的一个,源地址为第二网卡地址中的一个,该第二网卡地址为该数据发送端设备的一个或者多个网卡的地址。
可选地,该收发单元910,还用于向该数据接收端设备发送探测报文,该探测报文用于探测该数据接收端设备是否支持基于网卡地址解封装数据;
收发单元910,还用于接收来自该数据接收端设备的响应消息,该响应消息用于指示该数据接收端设备支持基于网卡地址解封装数据。
可选地,该响应消息中包括该第一网卡地址。
可选地,该处理单元920,还用于根据该第一网卡地址和该第二网卡地址建立该多条链路。
可选地,该第一数据包括多个数据包,该封装后的第一数据包括多个封装后的数据包;
该收发单元910通过多条链路向该数据接收端设备发送该封装后的第一数据,包括:该收发单元910通过第一链路向该数据接收端设备发送多个封装后的数据包;
该收发单元910,还用于接收来自该数据接收端设备的第一指示信息,该第一指示信息用于指示通过第一链路传输的两个封装后的数据包之间的时延差值;
该处理单元920,还用于根据该第一指示信息调整该多条链路上传输的封装后的数据包权重,
其中,该第一链路为该多条链路中的任意一条链路。
可选地,调整后该第一链路上传输的封装后的数据包权重小于调整前该第一链路上传输的封装后的数据包权重。
可选地,该收发单元910,还用于接收来自该数据接收端设备的第二指示信息,该第二指示信息用于指示第一链路的第一丢包率;
该处理单元920,还用于根据该第二指示信息调整该第一链路上传输的封装后的数据包权重,
其中,该第一链路为该多条链路中的任意一条链路。
可选地,该第一丢包率大于第二丢包率,调整后该第一链路上传输的封装后的数据包权重小于调整前该第一链路上传输的封装后的数据包权重,其中,该第二丢包率为该数据发送端设备本地保存的除该第一链路之外的链路的丢包率。
该装置900可实现对应于根据本申请实施例的方法实施例中的数据发送端设备执行的步骤或者流程,该装置900可以包括用于执行方法实施例中的数据发送端设备执行的方法的单元。并且,该装置900中的各单元和上述其他操作和/或功能分别为了实现方法实施例中的数据发送端设备中的方法实施例的相应流程。
其中,当该装置900用于执行图4中的方法时,收发单元910可用于执行方法中的收发信息的步骤,如步骤S421、S422和S440;处理单元920可用于执行方法中的处理步骤,如步骤S410、S420、S430和S441。
当该装置900用于执行图7中的方法时,收发单元910可用于执行方法中的收发信息的步骤,如步骤S710;处理单元920可用于执行方法中的处理步骤,如步骤S720。
当该装置900用于执行图8中的方法时,收发单元910可用于执行方法中的收发信息的步骤,如步骤S810;处理单元920可用于执行方法中的处理步骤,如步骤S820。
应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
作为另一种设计,该装置900用于执行上文方法实施例中数据接收端设备所执行的动作。
收发单元910,用于通过多条链路接收来自数据发送端设备的封装后的第一数据;
处理单元920,用于基于第一网卡地址解封装该封装后的第一数据,得到第一数据,
其中,该第一数据包括该数据发送端设备中安装的第一应用的待发送数据,该第一数 据的目的地址为数据接收端设备的地址,该数据接收端设备的地址与该第一网卡地址相对应,该第一网卡地址为该数据接收端设备的一个或者多个网卡的地址,该封装后的第一数据为该第一数据基于第一网卡地址封装得到的数据。
可选地,该收发单元910,用于接收来自该数据发送端设备的探测报文,该探测报文用于探测该数据接收端设备是否支持基于网卡地址解封装数据;
该收发单元910,用于向该数据发送端设备发送响应消息,该响应消息中包括该第一网卡地址,该响应消息用于指示该数据接收端设备支持基于网卡地址解封装数据。
可选地,该响应消息中包括该第一网卡地址。
可选地,该第一数据包括多个数据包,该封装后的第一数据包括多个封装后的数据包;该收发单元910通过多条链路接收来自数据发送端设备的封装后的第一数据,包括:该收发单元910通过第一链路接收来自数据发送端设备的多个封装后的数据包;
该收发单元910,用于向该数据发送端设备发送第一指示信息,该第一指示信息用于指示通过第一链路传输的两个封装后的数据包之间的时延差值,该时延差值用于调整该第一链路上传输的封装后的数据包权重,其中,该第一链路为该多条链路中的任意一条链路。
可选地,调整后该第一链路上传输的封装后的数据包权重小于调整前该第一链路上传输的封装后的数据包权重。
可选地,该收发单元910,用于向该数据发送端设备发送第二指示信息,该第二指示信息用于指示第一链路的第一丢包率,该第一丢包率用于调整该第一链路上传输的封装后的数据包权重,其中,该第一链路为该多条链路中的任意一条链路。
可选地,该第一丢包率大于第二丢包率,调整后该第一链路上传输的封装后的数据包权重小于调整前该第一链路上传输的封装后的数据包权重,其中,该第二丢包率为该数据发送端设备本地保存的除该第一链路之外的链路的丢包率。
该装置900可实现对应于根据本申请实施例的方法实施例中的数据接收端设备执行的步骤或者流程,该装置900可以包括用于执行方法实施例中的数据接收端设备执行的方法的单元。并且,该装置900中的各单元和上述其他操作和/或功能分别为了实现方法实施例中的数据接收端设备中的方法实施例的相应流程。
其中,当该装置900用于执行图4中的方法时,收发单元910可用于执行方法中的收发信息的步骤,如步骤S421、S422和S440;处理单元920可用于执行方法中的处理步骤,如步骤S450。
当该装置900用于执行图7中的方法时,收发单元910可用于执行方法中的收发信息的步骤,如步骤S710。
当该装置900用于执行图8中的方法时,收发单元910可用于执行方法中的收发信息的步骤,如步骤S810。
应理解,各单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
上文实施例中的处理单元920可以由至少一个处理器或处理器相关电路实现。收发单元910可以由收发器或收发器相关电路实现。存储单元可以通过至少一个存储器实现。
如图10所示,本申请实施例还提供一种装置1000。该装置1000包括处理器1010,还可以包括一个或多个存储器1020。
处理器1010与存储器1020耦合,存储器1020用于存储计算机程序或指令和/或数据,处理器1010用于执行存储器1020存储的计算机程序或指令和/或数据,使得上文方法实施例中的方法被执行。
可选地,如图10所示,该装置1000还可以包括收发器1030,收发器1030用于信号的接收和/或发送。例如,处理器1010用于控制收发器1030进行信号的接收和/或发送。
其中,图10中的处理器1010可以为图9中的处理单元920,实现处理单元920的功能,处理器1010执行的操作具体可以参见上文对处理单元920的说明,这里不再赘述;图10中的收发器1030可以为图9中的收发单元910,实现收发单元910的功能,收发器1030执行的操作具体可以参见上文对收发单元910的说明,这里不再赘述;图10中的存储器1020可以为图9中的存储单元930,实现存储单元930的功能。
可选地,该装置1000包括的处理器1010为一个或多个。
可选地,该存储器1020可以与该处理器1010集成在一起,或者分离设置。
作为一种方案,该装置1000用于实现上文方法实施例中由设备(如上述数据接收端设备、数据发送端设备等)执行的操作。
本申请实施例还提供一种计算机可读存储介质,其上存储有用于实现上述方法实施例中由设备(如上述数据接收端设备、数据发送端设备等)执行的方法的计算机指令。
本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得该计算机实现上述方法实施例中由设备(如上述数据接收端设备、数据发送端设备等)执行的方法。
本申请实施例还提供一种通信系统,该通信系统包括上文实施例中的设备(如上述数据接收端设备、数据发送端设备等)。
本申请实施例还提供一种芯片装置,包括处理电路,该处理电路用于从存储器中调用并运行程序,使得安装有该芯片装置的通信设备实现上述方法实施例中由设备(如上述数据接收端设备、数据发送端设备等)执行的方法。
上述提供的任一种装置中相关内容的解释及有益效果均可参考上文提供的对应的方法实施例,此处不再赘述。
应理解,本申请实施例中提及的处理器可以是中央处理单元(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中提及的存储器可以是易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM)。例如,RAM可以用作外部高速缓存。作为示例而非限定,RAM可以包括如下多种形式:静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate  SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)可以集成在处理器中。
还需要说明的是,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的保护范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。此外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元实现本申请提供的方案。
另外,在本申请各个实施例中的各功能单元可以集成在一个单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。例如,所述计算机可以是个人计算机,服务器,或者发送端设备等。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD)等。例如,前述的可用介质可以包括但不限于:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (23)

  1. 一种通信的方法,其特征在于,包括:
    数据发送端设备获取第一数据,所述第一数据包括所述数据发送端设备中安装的第一应用的待发送数据,所述第一数据的目的地址为数据接收端设备的地址;
    所述数据发送端设备根据所述数据接收端设备的地址确定所述数据接收端设备的地址对应的第一网卡地址,所述第一网卡地址为所述数据接收端设备的一个或者多个网卡的地址;
    所述数据发送端设备基于所述第一网卡地址对所述第一数据进行封装得到封装后的第一数据;
    所述数据发送端设备通过多条链路向所述数据接收端设备发送所述封装后的第一数据,
    其中,所述多条链路中每条链路的目的地址为所述第一网卡地址中的一个,源地址为第二网卡地址中的一个,所述第二网卡地址为所述数据发送端设备的一个或者多个网卡的地址。
  2. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    所述数据发送端设备向所述数据接收端设备发送探测报文,所述探测报文用于探测所述数据接收端设备是否支持基于网卡地址解封装数据;
    所述数据发送端设备接收来自所述数据接收端设备的响应消息,所述响应消息用于指示所述数据接收端设备支持基于网卡地址解封装数据。
  3. 根据权利要求2所述的方法,其特征在于,所述响应消息中包括所述第一网卡地址。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
    所述数据发送端设备根据所述第一网卡地址和所述第二网卡地址建立所述多条链路。
  5. 根据权利要求1至4中任一项所述的方法,其特征在于,所述第一数据包括多个数据包,所述封装后的第一数据包括多个封装后的数据包;
    所述数据发送端设备通过多条链路向所述数据接收端设备发送所述封装后的第一数据,包括:
    所述数据发送端设备通过第一链路向所述数据接收端设备发送多个封装后的数据包;
    所述方法还包括:
    所述数据发送端设备接收来自所述数据接收端设备的第一指示信息,所述第一指示信息用于指示通过第一链路传输的两个封装后的数据包之间的时延差值,所述时延差值大于预设阈值;
    所述数据发送端设备根据所述第一指示信息调整所述第一链路上传输的封装后的数据包权重,
    其中,所述第一链路为所述多条链路中的任意一条链路。
  6. 根据权利要求5所述的方法,其特征在于,
    调整后所述第一链路上传输的封装后的数据包权重小于调整前所述第一链路上传输 的封装后的数据包权重。
  7. 根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
    所述数据发送端设备接收来自所述数据接收端设备的第二指示信息,所述第二指示信息用于指示第一链路的第一丢包率;
    所述数据发送端设备根据所述第二指示信息调整所述第一链路上传输的封装后的数据包权重,
    其中,所述第一链路为所述多条链路中的任意一条链路。
  8. 根据权利要求7所述的方法,其特征在于,所述第一丢包率大于第二丢包率,调整后所述第一链路上传输的封装后的数据包权重小于调整前所述第一链路上传输的封装后的数据包权重,其中,所述第二丢包率为所述数据发送端设备本地保存的除所述第一链路之外的链路的丢包率。
  9. 根据权利要求1至8中任一项所述的方法,其特征在于,所述数据发送端设备通过多条链路向所述数据接收端设备发送所述封装后的第一数据,包括:
    所述数据发送端设备的第一无线接口对应的分流模块将所述第一数据分段为第一数据包和第二数据包,所述第二数据包分流至所述数据发送端设备的第二无线接口;
    所述数据发送端设备的第一无线接口通过第一链路向所述数据接收端设备发送封装后的第一数据包;
    所述数据发送端设备的第二无线接口通过第二链路向所述数据接收端设备发送封装后的第二数据包。
  10. 一种通信的方法,其特征在于,包括:
    数据接收端设备通过多条链路接收来自数据发送端设备的封装后的第一数据;
    所述数据接收端设备基于第一网卡地址解封装所述封装后的第一数据,得到第一数据,
    其中,所述第一数据包括所述数据发送端设备中安装的第一应用的待发送数据,所述第一数据的目的地址为所述数据接收端设备的地址,所述数据接收端设备的地址与所述第一网卡地址相对应,所述第一网卡地址为所述数据接收端设备的一个或者多个网卡的地址,所述封装后的第一数据为所述第一数据基于第一网卡地址封装得到的数据。
  11. 根据权利要求10所述的方法,其特征在于,所述方法还包括:
    所述数据接收端设备接收来自所述数据发送端设备的探测报文,所述探测报文用于探测所述数据接收端设备是否支持基于网卡地址解封装数据;
    所述数据接收端设备向所述数据发送端设备发送响应消息,所述响应消息用于指示所述数据接收端设备支持基于网卡地址解封装数据。
  12. 根据权利要求11所述的方法,其特征在于,所述响应消息中包括所述第一网卡地址。
  13. 根据权利要求10至12中任一项所述的方法,其特征在于,所述第一数据包括多个数据包,所述封装后的第一数据包括多个封装后的数据包;
    所述数据接收端设备通过多条链路接收来自数据发送端设备的封装后的第一数据,包括:
    所述数据接收端设备通过第一链路接收来自数据发送端设备的多个封装后的数据包;
    所述方法还包括:
    所述数据接收端设备向所述数据发送端设备发送第一指示信息,所述第一指示信息用于指示通过所述第一链路传输的两个封装后的数据包之间的时延差值,所述时延差值用于调整所述第一链路上传输的封装后的数据包权重,其中,所述时延差值大于预设阈值,所述第一链路为所述多条链路中的任意一条链路。
  14. 根据权利要求13所述的方法,其特征在于,调整后所述第一链路上传输的封装后的数据包权重小于调整前所述第一链路上传输的封装后的数据包权重。
  15. 根据权利要求10至12中任一项所述的方法,其特征在于,所述方法还包括:
    所述数据接收端设备向所述数据发送端设备发送第二指示信息,所述第二指示信息用于指示第一链路在的第一丢包率,所述第一丢包率用于调整所述第一链路上传输的封装后的数据包权重,其中,所述第一链路为所述多条链路中的任意一条链路。
  16. 根据权利要求15所述的方法,其特征在于,所述第一丢包率大于第二丢包率,调整后所述第一链路上传输的封装后的数据包权重小于调整前所述第一链路上传输的封装后的数据包权重,
    其中,所述第二丢包率为所述数据发送端设备本地保存的除所述第一链路之外的链路的丢包率。
  17. 一种通信的装置,其特征在于,包括用于执行如权利要求1至9中任意一项所述的方法的单元。
  18. 一种通信的装置,其特征在于,包括用于执行如权利要求10至16中任意一项所述的方法的单元。
  19. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序运行时,使得装置执行如权利要求1至9中任意一项所述的方法,或者,使得装置执行如权利要求10至16中任意一项所述的方法。
  20. 一种包含指令的计算机程序产品,其特征在于,当所述指令运行时,使得装置执行如权利要求1至9中任意一项所述的方法,或者,使得装置执行如权利要求10至16中任意一项所述的方法。
  21. 一种芯片系统,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片系统的通信装置执行如权利要求1至9中任意一项所述的方法;或者,使得安装有所述芯片系统的通信装置执行如权利要求10至16中任意一项所述的方法。
  22. 一种通信装置,其特征在于,包括:
    存储器,用于存储计算机程序;
    处理器,用于执行所述存储器中存储的计算机程序,以使得所述通信装置执行权利要求1至9中任一项所述的方法,或者,使得所述通信装置执行权利要求10至16中任一项所述的方法。
  23. 一种通信系统,其特征在于,所述通信系统包括至少一个如权利要求17所述的通信的装置和至少一个如权利要求18所述的通信的装置。
PCT/CN2021/138412 2021-12-15 2021-12-15 通信的方法和装置 WO2023108492A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202180104947.5A CN118383019A (zh) 2021-12-15 2021-12-15 通信的方法和装置
EP21967629.3A EP4432621A1 (en) 2021-12-15 2021-12-15 Communication method and apparatus
PCT/CN2021/138412 WO2023108492A1 (zh) 2021-12-15 2021-12-15 通信的方法和装置
US18/743,284 US20240333635A1 (en) 2021-12-15 2024-06-14 Communication method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/138412 WO2023108492A1 (zh) 2021-12-15 2021-12-15 通信的方法和装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/743,284 Continuation US20240333635A1 (en) 2021-12-15 2024-06-14 Communication method and apparatus

Publications (1)

Publication Number Publication Date
WO2023108492A1 true WO2023108492A1 (zh) 2023-06-22

Family

ID=86775025

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/138412 WO2023108492A1 (zh) 2021-12-15 2021-12-15 通信的方法和装置

Country Status (4)

Country Link
US (1) US20240333635A1 (zh)
EP (1) EP4432621A1 (zh)
CN (1) CN118383019A (zh)
WO (1) WO2023108492A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102665257A (zh) * 2012-04-09 2012-09-12 北京大学 一种带宽叠加的无线上网系统和方法
CN108833274A (zh) * 2018-04-12 2018-11-16 北京韦加航通科技有限责任公司 一种基于4g移动网络的多链路聚合实时数据传输系统
CN113381939A (zh) * 2020-03-10 2021-09-10 阿里巴巴集团控股有限公司 数据传输方法、装置、电子设备及计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102665257A (zh) * 2012-04-09 2012-09-12 北京大学 一种带宽叠加的无线上网系统和方法
CN108833274A (zh) * 2018-04-12 2018-11-16 北京韦加航通科技有限责任公司 一种基于4g移动网络的多链路聚合实时数据传输系统
CN113381939A (zh) * 2020-03-10 2021-09-10 阿里巴巴集团控股有限公司 数据传输方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
US20240333635A1 (en) 2024-10-03
CN118383019A (zh) 2024-07-23
EP4432621A1 (en) 2024-09-18

Similar Documents

Publication Publication Date Title
US11343192B2 (en) Packet processing method, and device
US11277313B2 (en) Data transmission method and corresponding device
US8521812B2 (en) Accessing local network resources in a multi-interface system
US11824685B2 (en) Method for implementing GRE tunnel, access point and gateway
JP2018057025A (ja) 多接続通信用の統合副層
US20220255849A1 (en) Data Transmission Method and Apparatus
JP2023523048A (ja) パケット処理方法及び関連デバイス
EP4106482A1 (en) Communication method and apparatus
US10887943B2 (en) Packet exchange method and related device
US20200280873A1 (en) Communication method, device, and system
US20170070428A1 (en) Method and system for converting a broadcast packet to a unicast packet at an access point
WO2015010487A1 (zh) 分流数据传输方法、传输设备、系统以及用户终端
US9503276B2 (en) Method and system to reduce wireless network packets for centralised layer two network
WO2023108492A1 (zh) 通信的方法和装置
US11870685B2 (en) Packet capsulation method and packet capsulation device
US20190394679A1 (en) Network node communication
CN116418854A (zh) 自适应修改最大分段大小的方法、装置、设备及存储介质

Legal Events

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

Ref document number: 21967629

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202180104947.5

Country of ref document: CN

Ref document number: 2021967629

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2021967629

Country of ref document: EP

Effective date: 20240613

NENP Non-entry into the national phase

Ref country code: DE