WO2018082382A1 - 一种混合接入网络中处理报文的方法及网络设备 - Google Patents

一种混合接入网络中处理报文的方法及网络设备 Download PDF

Info

Publication number
WO2018082382A1
WO2018082382A1 PCT/CN2017/099335 CN2017099335W WO2018082382A1 WO 2018082382 A1 WO2018082382 A1 WO 2018082382A1 CN 2017099335 W CN2017099335 W CN 2017099335W WO 2018082382 A1 WO2018082382 A1 WO 2018082382A1
Authority
WO
WIPO (PCT)
Prior art keywords
network device
data packet
tunnel
window
size
Prior art date
Application number
PCT/CN2017/099335
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 EP17868190.4A priority Critical patent/EP3531620B1/en
Priority to EP21160792.4A priority patent/EP3896909B1/en
Publication of WO2018082382A1 publication Critical patent/WO2018082382A1/zh
Priority to US16/403,237 priority patent/US10778469B2/en
Priority to US17/009,587 priority patent/US11570021B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1642Formats specially adapted for sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/187Details of sliding window management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke 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/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] 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/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • 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/41Flow control; Congestion control by acting on aggregated flows or links
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6421Medium of transmission, e.g. fibre, cable, radio, satellite
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6424Access arrangements
    • H04L2012/6427Subscriber Access Module; Concentrator; Group equipment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6464Priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6489Buffer Management, Threshold setting, Scheduling, Shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • H04L2012/6497Feedback to the source
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Definitions

  • the present application relates to the field of communications technologies, and in particular, to a method and a network device for processing a message in a hybrid access network.
  • Hybrid Access (HA) network refers to bundling different access network connections for use by the same user.
  • Hybrid access networks enable users to experience high-speed network usage.
  • two different access networks are Digital Subscriber Line (DSL) and Long Term Evolution (LTE).
  • GRE Generic Routing Encapsulation
  • the network device on the carrier side can be a Hybrid Access Aggregation Point (HAAP), which is used to bundle and connect different access networks to provide high-speed Internet access for users.
  • the user-side network device can be a home gateway (Home). Gateway, HG), can allow two different access networks to access at the same time, for example, can allow access to both fixed broadband networks and mobile networks.
  • load balancing is implemented based on a token bucket in a hybrid access network.
  • DSL and LTE access networks Take DSL and LTE access networks as an example.
  • the two links between HAAP and HA are regarded as two tunnels, namely DSL tunnel and LTE tunnel.
  • the sending end uses the dyeing mechanism to determine the coloring of the packet according to the bandwidth of the DSL tunnel and the LTE tunnel, and determines whether the packet is sent along the DSL tunnel or the LTE tunnel according to the coloring.
  • the sender maintains two token buckets, a DSL token bucket (shown by a left slash in FIG. 1) and an LTE token bucket (shown by a right slash in FIG. 1).
  • the size of the two token buckets is determined according to the DSL and LTE tunnel bandwidth.
  • the packets entering the DSL token bucket are marked as green (shown by the left slash in Figure 1).
  • the packets exceeding the DSL token bucket receiving capability enter the LTE token bucket, and the data packets entering the LTE token bucket are received. Marked in yellow (shown with a right slash in Figure 1).
  • the green message is sent along the DSL tunnel and the yellow message is sent along the LTE tunnel.
  • the token bucket-based load balancing mechanism cannot adjust the split ratio of the load according to the dynamic change of the bandwidth of the DSL tunnel and the LTE tunnel.
  • the load is still injected into the DSL tunnel according to the fixed bandwidth of the DSL tunnel.
  • the embodiment of the present invention provides a method and a network device for processing a message in a hybrid access network, which are used for real-time monitoring and load balancing of network bandwidth, alleviating congestion of a primary link caused by a network emergency, and improving a network band. width.
  • the first aspect provides a method for processing a message in a hybrid access network, where the hybrid access network includes a first network device and a second network device, where the first network device and the second network device are established The first tunnel and the second tunnel.
  • the first network device includes a first cache for storing a first send window, and a second cache for storing a second send window.
  • the first network device sends the data packet in the first sending window to the second network device by using the first tunnel.
  • the first network device dynamically adjusts the size of the first sending window according to the acknowledgement response fed back by the second network device.
  • the subsequently received data packet enters the second sending window, and is sent to the second network device by using the second tunnel.
  • real-time monitoring and load balancing of network bandwidth can be realized, and the main link congestion caused by the network burst situation can be alleviated, and the network bandwidth can be improved.
  • the first network device sends the first data packet in the first sending window to the second network device by using the first tunnel, the first data packet.
  • the first sub-link number is used to indicate the sequence number of the first data packet in the first tunnel.
  • the first network device increases the size of the first transmission window by a first ratio.
  • the first acknowledgment response carries the first acknowledgment number, where the first acknowledgment number is obtained according to the first sublink number, and the first acknowledgment number is used to indicate the first network device The second network device has received the first data packet.
  • the first network device decreases a size of the first transmit window according to a second ratio, the first The second ratio is greater than the first ratio. Then, the first network device receives the second data packet, and the next hop that reaches the destination address of the second data packet is the second network device.
  • the first network device stores the second data packet to the second cache, and the second data packet enters the first Two send windows. The first network device sends the second data packet to the second network device by using the second tunnel.
  • the first network device receives the data packet by using the second network device, and controls the sending rate according to the methods of “slow increase” and “fast decrease”, and the first tunnel and the second tunnel can be reasonably allocated according to actual network conditions.
  • the flow of the tunnel The load sharing caused by the congestion of the network in the first tunnel is avoided, and the network bandwidth is reasonably utilized.
  • the first tunnel has a higher priority than the second tunnel.
  • the first network device determines the first sending The size of the window is smaller than the first threshold, the first network device stores the first data packet to the first cache, and the first data packet enters the first sending window.
  • the first acknowledgement response is a third data packet sent by the second network device to the first network device or a first universal route encapsulated GRE control message. Provide more possible feedback to confirm the response.
  • the first acknowledgement response is the third data packet
  • the third data packet includes an acknowledgement number field, where the acknowledgement number field carries the first acknowledgement number.
  • the first confirmation number may be carried in the In the third data packet, after the first network device receives the third data packet, parsing the third data packet, and confirming, according to the first acknowledgement number, that the second network device has received The first data message.
  • the acknowledgment response is fed back by the data packet sent by the second network device to the first network device, so that the message is not required to be sent separately to feedback the acknowledgment response, and the message exchanged between the first network device and the second network device is reduced.
  • the quantity also saves bandwidth resources.
  • the first acknowledgment response is a first GRE control message
  • the first GRE control message includes an acknowledgment message attribute Attribute field
  • the acknowledgment message Attribute field includes an attribute type Attribute Type a field, an attribute length Attribute Length field, and an acknowledgement number Acknowledgement Number field
  • the Attribute Type field indicating that the type of the acknowledgement message Attribute field is a type for notifying that the data message has been received
  • the Acknowledgement Number field is used to carry the First confirmation number.
  • the GRE control message is used to announce the confirmation number to realize real-time monitoring and automatic adjustment of network bandwidth without manual intervention.
  • the second network device includes a third cache, where the third cache is used to store a first receiving window, and the first network device sends the first sending by using the first tunnel Before the first data packet in the window is sent to the second network device, the first network device receives a notification message sent by the second network device, where the notification message is used to notify the first receiving The size of the window, the size of the first receiving window is M; in response to receiving the notification message, the first network device sets the size of the first sending window to L, L ⁇ M, L and M is greater than zero.
  • the size of the first sending window is half of the size of the first receiving window; and the size of the second sending window is half of the size of the second receiving window.
  • the notification message is a second GRE control message, where the second GRE control message includes a window size attribute, an Attribute Type field, and an Attribute Type field.
  • the Length field and the window size Window Size field, the Attribute Type field indicates that the type of the Window size Attribute field is a type of a notification window size, and the Window Size field is used to carry the size of the first receiving window.
  • the GRE control message is used to advertise the window size, and the automatic setting and adjustment of the sending window is realized without manual intervention.
  • the second data packet carries a second sublink number, and the second sublink number is used to indicate that the second data packet is in the second tunnel. a sequence number; after the first network device sends the second data packet in the second sending window to the second network device by using the second tunnel, in response to receiving the second network device, The second acknowledgment response, the first network device increases the size of the second sending window according to a third ratio, and the second acknowledgment response carries a second acknowledgment number, where the second acknowledgment number is according to the Obtaining the second sub-link number, the second acknowledgement number is used to indicate that the second network device of the first network device has received the second data packet; and is not received in response to the second predetermined time Up to the second acknowledgement response sent by the second network device, the first network device decreases the size of the second sending window according to a fourth ratio, where the fourth ratio is greater than the third ratio. In this way, the first network device receives the data packet through the second network device, and controls the sending rate according to the “slow increase
  • the second network device after receiving the second data packet, acquires and receives the second data packet.
  • the second sub-link number carried in the second data packet carries a second acknowledgment number in the second acknowledgment response returned to the first network device, where the second acknowledgment number is obtained according to the second sub-link number.
  • the second acknowledgment response may be a fourth data packet sent by the second network device to the first network device, where the fourth data packet includes an acknowledgment number field, and the second acknowledgment number field carries the second Confirmation Number.
  • the second confirmation number is the same as the second sub-link number. The acknowledgment response is fed back by the data packet sent by the second network device to the first network device, so that the message is not required to be sent separately to feedback the acknowledgment response, and the message exchanged between the first network device and the second network device is reduced. The quantity also saves bandwidth resources.
  • the second acknowledgment response may also be a third GRE control message, after the second network device receives the second data packet sent by the first network device, by sending the message to the first network device.
  • the third GRE control message notifies the first network device that the second data message has been received.
  • the third GRE control message includes an acknowledgement message attribute Attribute field, and the acknowledgement message Attribute field includes an attribute type Attribute Type field, an attribute length Attribute Length field, and an acknowledgement number Acknowledgement Number field, and the Attribute Type field indicates The type of the Attribute field of the acknowledgment message is a type indicating that the data message has been received, and the Acknowledgement Number field is used to carry the second acknowledgment number.
  • the GRE control message is used to announce the confirmation number to realize real-time monitoring and automatic adjustment of network bandwidth without manual intervention.
  • a second aspect provides a method for processing a message in a hybrid access network, where the hybrid access network includes a first network device and a second network device, and the first network device and the second network device are established between a first tunnel and a second tunnel, where the first tunnel and the second tunnel form a virtual binding tunnel by using a binding connection, where the first network device includes a first cache and a second cache, where the first The cache is configured to store a first sending window, the second cache is configured to store a second sending window, and the second network device includes a sorting cache, where the second network device receives the data packet sent by the first network device, And sending a confirmation response to the first network device, notifying the first network device that the data message has been received, so that the first network device dynamically adjusts the size of the sending window.
  • the hybrid access network includes a first network device and a second network device, and the first network device and the second network device are established between a first tunnel and a second tunnel, where the first tunnel and the second tunnel form a virtual binding tunnel by
  • the second network device receives a first data packet in the first sending window that is sent by the first network device by using the first tunnel, where the first data packet is The first sub-link number and the first global number are carried in the middle.
  • the first sublink number is used to indicate a sequence number of the first data packet in the first tunnel.
  • the first global number indicates a sequence number of the first data packet in the virtual binding tunnel.
  • the second network device receives the second data packet in the second sending window that is sent by the first network device by using the second tunnel.
  • the second data packet carries a second sublink number and a second global number.
  • the second sub-link number is used to indicate the sequence number of the second data packet in the second tunnel
  • the second global number is used to indicate that the second data packet is bound in the virtual The serial number in the tunnel.
  • the second network device stores the first data packet and the second data packet in an ordering cache, and the first data packet and the second global number according to the first global number and the second global number
  • the second data message is sorted.
  • the second network device sends a first acknowledgement response to the first network device, such that the first network device After receiving the first confirmation response, increasing the size of the first transmission window according to the first ratio.
  • the first confirmation response carries a first confirmation number.
  • the first confirmation number is obtained according to the first sublink number.
  • the first confirmation number is used for Instructing the first network device that the second network device has received the first data packet.
  • the second network device In response to the second network device storing the second data message to the sorting cache, the second network device transmitting the second acknowledgement response to the first network device to cause the first After receiving the second acknowledgement response, the network device increases the size of the second send window according to a third ratio.
  • the second acknowledgment response carries a second acknowledgment number, where the second acknowledgment number is obtained according to the second sublink number, and the second acknowledgment number is used to indicate the first network device
  • the second network device has received the second data packet.
  • the second network device can accurately notify the data packet received by the first network device, so that the first network device dynamically adjusts the tunnel bandwidth, controls the sending rate of the first sending window, and avoids the load caused by the network burst.
  • the sharing is not appropriate and the network bandwidth is rationally utilized.
  • the first acknowledgement response is a third data packet sent by the second network device to the first network device or a first universal route encapsulated GRE control message. Provide more possible feedback to confirm the response.
  • the first acknowledgement response is the third data packet
  • the third data packet includes an acknowledgement number field, where the acknowledgement number field carries the first acknowledgement number.
  • the acknowledgment response is fed back by the data packet sent by the second network device to the first network device, so that the message is not required to be sent separately to feedback the acknowledgment response, and the message exchanged between the first network device and the second network device is reduced.
  • the quantity also saves bandwidth resources.
  • the first acknowledgment response is a first GRE control message, where the first GRE control message includes an acknowledgment message attribute Attribute TLV field, and the acknowledgment message Attribute TLV field is used to carry The first confirmation number.
  • the GRE control message is used to announce the confirmation number to realize real-time monitoring and automatic adjustment of network bandwidth without manual intervention.
  • the second network device before the second network device receives the first data packet sent by the first network device by using the first tunnel, the second network device sends the first network device to the first network device.
  • First notification message The first notification message is used to notify the size of the first receiving window, and the size of the first receiving window is used by the first network device to set a size of the first sending window.
  • the second network device Before the second network device receives the second data packet sent by the first network device by using the second network, the second network device sends a second notification message to the first network device, where The second notification message is used to notify the size of the second receiving window, and the size of the second receiving window is used by the first network device to set the size of the second sending window.
  • the first notification message is a second GRE control message
  • the second notification message is a fourth GRE control message.
  • the second GRE control message includes a window size attribute Attribute TLV field.
  • the fourth GRE control message includes a window size attribute Attribute TLV field.
  • the Window size Attribute TLV field in the second GRE control message is used to carry the size of the first receiving window.
  • the Window size Attribute TLV field in the fourth GRE control message is used to carry the size of the second receiving window.
  • the GRE control message is used to advertise the window size, and the automatic setting and adjustment of the sending window is realized without manual intervention.
  • a first network device in a hybrid access network having a function of implementing the behavior of the first network device in any one of the foregoing possible aspects of the first aspect and the first aspect.
  • the functions may be implemented by hardware or by corresponding software implemented by hardware.
  • the hardware or software includes one or more modules corresponding to the functions described above.
  • a second network device in a hybrid access network having a function of implementing the behavior of the second network device in any one of the foregoing possible aspects of the second aspect and the second aspect.
  • the functions may be implemented by hardware or by corresponding software implemented by hardware.
  • the hardware or software includes one or more modules corresponding to the functions described above.
  • a fifth aspect provides a first network device in a hybrid access network, where the first network device includes a transceiver, a processor, a memory, and the processor and the memory are connected by a bus system, where the processor is used by The code in the memory is executed, the execution causing the processor to perform the method of any of the first aspect or the first aspect of the first aspect when the code is executed.
  • a second network device in a hybrid access network includes a transceiver, a processor, a memory, and the processor and the memory are connected by a bus system, where the processor is used by Executing the code in the memory, when executed, causes the processor to perform the method of any of the possible aspects of the second aspect or the second aspect.
  • a communication system comprising the first network device of the third aspect or the fifth aspect, and the second network device of the fourth aspect or the sixth aspect.
  • An eighth aspect a computer storage medium for storing a computer program, the computer program comprising any of the first aspect, the second aspect, any of the possible implementations of the first aspect, or the second aspect The instructions of the method in a possible implementation.
  • the embodiment of the present application provides a method for processing a message in a hybrid access network, and a network device, where the first network device adjusts a bandwidth of a different link of the first network device according to the information fed back by the second network device, and the primary link
  • the overflowed traffic is directed to other links in time, which improves the bandwidth of the network and alleviates the congestion of the main link caused by network emergencies.
  • FIG. 1 is a schematic diagram of implementing load sharing based on a token bucket in the prior art
  • FIG. 2 is a schematic diagram of a HA network architecture in an embodiment of the present application.
  • FIG. 3 is a schematic flowchart of a method for processing a message in a hybrid access network according to an embodiment of the present application
  • FIG. 4 is a schematic diagram of a sending window and a receiving window in an embodiment of the present application.
  • FIG. 5 is a schematic diagram of an extension of a data packet protocol according to an embodiment of the present application.
  • FIG. 6 is a schematic structural diagram of a first network device in a hybrid access network according to an embodiment of the present application.
  • FIG. 7 is a schematic structural diagram of a second network device in a hybrid access network according to an embodiment of the present application.
  • FIG. 8 is a second schematic structural diagram of a first network device in a hybrid access network according to an embodiment of the present disclosure.
  • FIG. 9 is a second schematic structural diagram of a second network device in a hybrid access network according to an embodiment of the present application.
  • the hybrid access network includes a first network device and a second network device, and two chains are established between the first network device and the second network device. road.
  • a data packet and/or a control packet are respectively transmitted on the two links, and one link can be regarded as a tunnel, that is, two tunnels are established between the first network device and the second network device, which is the first tunnel and The second tunnel.
  • the first tunnel and the second tunnel form a virtual binding tunnel through a binding connection. It can be understood that all data packets of the interworking between the first network device and the second network device are transmitted through the virtual binding tunnel, and all the data packets include data packets transmitted through the first tunnel and through the second tunnel.
  • the virtual binding tunnel may be, for example, a GRE tunnel, a point-to-point tunneling protocol (PPTP) tunnel, a user data protocol (English: User Datagram Protocol, UDP) tunnel, etc. The application does not specifically limit this.
  • the first sending window may be understood as a sequence of data packets to be sent through the first tunnel and buffered in the first network device and not yet transmitted.
  • the second transmission window can be understood as a sequence of data messages to be transmitted through the first tunnel and buffered in the first network device and not yet transmitted.
  • the first receiving window may be understood as a sequence of data packets received by the second network device by the first sending window and buffered by the first tunnel and not yet entered the sorting buffer.
  • the second receiving window can be understood as the second network device receiving the data message sequence sent by the second sending window through the second tunnel and buffered, and has not entered the sorting buffer.
  • the sorting cache can be understood as a buffer for the second network device to sort all the sequence of data messages received by the virtual binding tunnel.
  • the window size can be understood as the length of the sequence of data messages that can be accommodated.
  • the definition of the send window and the receive window conforms to the Transmission Control Protocol (TCP).
  • TCP Transmission Control Protocol
  • the send window and the receive window on each tunnel are managed independently.
  • the first network device includes a first cache for storing a first send window and a second cache for storing a second send window.
  • the second network device includes a third cache for storing the first receive window and a fourth cache for storing the second receive window.
  • the first network device is the user side network device HG
  • the second network device is the carrier side network device HAAP; or the first network device is the carrier side network device HAAP, and the second network device is the user side network device HG.
  • the user side network device HG can provide the user with access to at least two access networks, as shown in FIG. 2, providing a fixed network such as a DSL for a terminal device such as a mobile phone, a computer, a fixed telephone, etc., for example, having wireless communication
  • the functional handheld device provides access to a mobile network such as LTE
  • the carrier-side network device HAAP provides high-speed hybrid network access for users.
  • Hybrid access is implemented between the HG and HAAP through virtual binding tunnels. All the packets sent by the first network device are in the global number. The global number is used to indicate the sequence number of all data packets sent by the first network device in the virtual binding tunnel. All the packets are included in the DSL tunnel. Messages and messages transmitted in the LTE tunnel. The second network device restores the message sequence according to the global number, thereby implementing a data transmission mechanism of the hybrid access network between the HG and the HAAP.
  • the application scenario in the hybrid access network shown in FIG. 2 is only an example. The actual hybrid access network may also include other forms of structures, which are not limited in this application.
  • first network device and the second network device send data through the first tunnel and the second tunnel, and may also send data through two or more tunnels.
  • two tunnels are taken as an example. Introduction.
  • the method for processing a message in a hybrid access network in the embodiment of the present application is as follows.
  • Step 301 The first network device sends the first data packet in the first sending window to the second network device by using the first tunnel.
  • Step 302 After receiving the first data packet, the second network device returns a first acknowledgement response to the first network device.
  • the first acknowledgment response is configured to instruct the second network device to receive the first data message sent based on the first sending window.
  • the second network device may not receive the first data packet sent by the first network device, or the second network device parses the error, etc., and the second network device does not return to the first network device. Confirm the response.
  • Step 303 The first network device dynamically adjusts the size of the first sending window according to the receiving condition of the first acknowledgement response.
  • the first network device increases the size of the first transmit window by a first ratio.
  • the first network device may not receive the first acknowledgment response within the first predetermined time due to poor link quality or the second network device does not return the first acknowledgment response or the like.
  • the first network device decreases the size of the first transmission window according to the second ratio, the second ratio being greater than the first ratio.
  • the first predetermined time is set to be greater than or equal to the length of time that the first data packet is transmitted by the first network device to the second network device, and the first acknowledgement response is transmitted by the second network device to the first The sum of the lengths of network devices.
  • Step 304 The first network device sends the second data packet to the second network device by using the second tunnel.
  • the first tunnel has a higher priority than the second tunnel. That is, when the link state of the first tunnel and the second tunnel is normal, the first network device sends the data packet to be sent preferentially through the first tunnel.
  • the priority order between the two tunnels may be determined by the delay priority of the two tunnels, or may be determined by the size of the two sending windows. The specific priority determining manner is not limited in this application.
  • the first network device After receiving the first data packet, the first network device caches the first data packet to the first cache preferentially, enters the first sending window, and passes the first tunnel The data packet is sent to the second network device. As described in step 303, the size of the first transmission window is dynamically adjusted according to the condition of receiving the first acknowledgment response returned by the second network device.
  • the first network device presets a first threshold of the first sending window size, and selects the first sending window or the second sending window to send the data packet according to the size relationship between the first sending window size and the first threshold.
  • the first network device before the first network device sends the first data packet in the first sending window to the second network device by using the first tunnel, the first network device is responsive to determining that the size of the first sending window is smaller than the first The threshold, the first network device selects to store the first data packet to the first cache, and the first data packet enters the first sending window.
  • step 304 before the first network device sends the second data packet through the second tunnel, in response to determining that the size of the first sending window is greater than or equal to the first threshold, the first network device sends the second data packet.
  • the second data message is stored in the second transmission window.
  • the first threshold may be the u maximum length of the sequence of data messages that can be accommodated.
  • embodiments of the present application are not limited thereto.
  • the first network device determines the length of the data packet to be sent. If the length of the data packet to be sent is not greater than the size of the current first cacheable storage space, the first network device stores the data packet to be sent to the first cache, enters the first sending window, and sends the data through the first tunnel. Give the second network device. If the length of the data packet to be sent is greater than the size of the first cacheable storage space, the first network device caches the data packet to be sent to the second cache, enters the second sending window, and sends the second packet to the second through the second tunnel.
  • Internet equipment is the length of the data packet to be sent.
  • the first data packet carries the first sub-link number
  • the second data packet carries the second sub-link number.
  • the first sub-link number is used to indicate the sequence number of the first data packet in the first tunnel
  • the second sub-link number is used to indicate the sequence number of the second data packet in the second tunnel.
  • the sequence number field of the first data packet sent by the first network device to the second network device is divided into two parts, one part is used to carry the first sub-link number (ie, the Tunnel Sequence Number), and the part is used to carry the original
  • There is a global number defined in the data message protocol ie, the Bonding Sequence Number
  • the sequence number field of the second data packet is divided into two parts, one part is used to carry the second sub-link number, and the other part is used to carry the global number defined in the original data message protocol.
  • the global number is used to represent that all data packets sent by the first network device form a sequence number in the virtual binding tunnel through the binding connection between the first tunnel and the second tunnel.
  • the data packet includes the data packet transmitted in the first tunnel and transmitted in the second tunnel.
  • the first global number indicates the serial number of the first data packet in the first transmission window in the virtual binding tunnel.
  • the second global number indicates the serial number of the second data message in the second transmission window in the virtual binding tunnel.
  • the second network device stores the first data packet in a third cache, so that the first data packet enters the first receiving window. Then, the data message in the first receiving window, including the first data message, enters the sorting cache. After receiving the second data packet, the second network device stores the second data packet in the fourth buffer, so that the second data packet enters the second receiving window. Then, the data message in the second receiving window, including the second data message, enters the sorting cache. In the sorting cache, the second network device sorts all the data packets according to the global number of each data packet.
  • the second network device after receiving the first data packet, stores the first data packet before returning the first acknowledgement response to the first network device. Go to the sorting cache, and then determine the location of the first data packet in the sorting cache according to the first global number carried in the first data packet. In this way, the second network device returns the first acknowledgment response only after the first data packet is sorted and cached, thereby avoiding congestion caused by the incomplete processing of the data packet, and the design can reflect the actual situation to the first network device. Network conditions, more reasonable use of system bandwidth.
  • the second network device After receiving the first data packet, the second network device obtains the first sublink number carried in the received first data packet, and carries the first acknowledgement in the first acknowledgement response returned to the first network device. Number, first confirmation The number is obtained according to the first sub-link number, where the first acknowledgement number is used to indicate that the second network device of the first network device has received the first data packet.
  • the first acknowledgement number is represented in the same manner as the first sublink number.
  • the second network device acquires the first sublink number carried in the first data packet, and in the first acknowledgement response, the first The sublink number is replied to the first network device as the first acknowledgement number.
  • the first sub-link number may be, for example, an Arabic numeral or a letter, which is not specifically limited in this application.
  • the first acknowledgement number is obtained according to a mapping relationship with the first sublink number.
  • a mapping relationship table may be saved in the second network device, where the mapping relationship table is used to save a mapping relationship between the sub-link number and the acknowledgment number.
  • the second network device acquires the first sublink number, and obtains a first acknowledgement number corresponding to the first sublink number according to the mapping relationship table.
  • the mapping relationship table is also saved in the first network device.
  • the mapping relationship can be established, for example, by, for example, the first sub-link number is an Arabic numeral 1 and the first acknowledgment number is a letter A mapped to the number 1.
  • mapping relationship table may be implemented in a plurality of different manners, and the corresponding relationship may be expressed in the form of a table or other manners, which is not limited in this application.
  • the first network device can learn that the second network device has received the first data packet of the first sublink number corresponding to the first acknowledgement number by using the first acknowledgement number.
  • the first network device and the second network device can transmit data packets to each other.
  • the first acknowledgment response is a data packet sent by the second network device to the first network device, and is recorded as a third data packet.
  • the third data packet has the same format as the first data packet and the second data packet, and includes a sub-link number and a global number, and if the third data packet is the first acknowledge response,
  • the third data packet further includes an acknowledgement number field, and the first acknowledgement number is carried in the acknowledgement number field.
  • the first acknowledgement number is the same as the first subframe number.
  • the first acknowledgment response may also be a GRE control message (reported as the first GRE control message), and after the second network device receives the first data message sent by the first network device, by sending the message to the first network device The GRE control message notifies the first network device that the first data message has been received.
  • the first GRE control message includes an acknowledgment message attribute Attribute field, and the acknowledgment message Attribute field includes an attribute type length value (ie, a TLV) field, and specifically includes an attribute type Attribute Type field, an attribute length Attribute Length field, and an acknowledgement number Acknowledgement Number field.
  • the Attribute Type field indicates that the type of the Authenticate message Attribute field is the type of the notification that the data message has been received, and the Acknowledgement Number field is used to carry the first acknowledgment number.
  • the second network device receives the second data packet sent by the first network device by using the second tunnel.
  • the second network device returns a second acknowledgment response to the first network device.
  • the second acknowledgement response is configured to indicate that the second network device receives the second data message sent based on the second transmit window.
  • the second network device may not receive the second one sent by the first network device.
  • the second network device does not return a second acknowledgment response to the first network device for the data message, or the second network device parsing error.
  • the first network device dynamically adjusts the size of the second sending window according to the receiving condition of the second acknowledgment response.
  • the first network device increases the size of the second transmit window by a third ratio.
  • the first network device may not receive the second acknowledgment response within the second predetermined time due to poor link quality or the second network device not returning the second acknowledgment response.
  • the first network device decreases the size of the second transmission window according to the fourth ratio, and the fourth ratio is greater than the third ratio.
  • the second predetermined time is set to be greater than or equal to the duration of the second data message transmitted by the first network device to the second network device, and the second acknowledgement response is transmitted by the second network device to the first The sum of the lengths of network devices.
  • the second network device After receiving the second data packet, the second network device obtains the second sublink number carried in the received second data packet, and carries the second acknowledgement in the second acknowledgement response returned to the first network device.
  • the second confirmation number is mapped to the second sub-link number.
  • the second network device can learn that the second network device has received the second data packet of the second sublink number corresponding to the second acknowledgement number by using the second acknowledgement number.
  • the second acknowledgement response may be a fourth data packet sent by the second network device to the first network device, where the format of the fourth data packet is the same as the third data packet, the first data packet, and the second data packet.
  • the fourth data packet includes a confirmation number field, and the second confirmation number is carried in the confirmation number field.
  • the second confirmation number is the same as the second sub-link number.
  • the second acknowledgment response may also be a GRE control message (which is recorded as a third GRE control message) in the same format as the first GRE control message, and the second network device receives the second data message sent by the first network device. Then, the first network device is notified that the second data message has been received by using the third GRE control message sent to the first network device.
  • GRE control message which is recorded as a third GRE control message
  • the third GRE control packet includes an Attribute field of the acknowledgment message attribute, and a field length value (ie, TLV) field of the Attribute field of the Attribute field, including an attribute type Attribute Type field, an attribute length Attribute Length field, and an acknowledgement number Acknowledgement Number field, Attribute
  • TLV field length value
  • Attribute The Type field indicates that the type of the Authenticate message Attribute field is the type of the notification that the data message has been received, and the Acknowledgement Number field is used to carry the second acknowledgment number.
  • the following design can be adopted:
  • the second network device sends a first notification message to the first network device by using the first tunnel, where the first notification message is used to notify the size M of the first receiving window, and the second network device sends the first network device to the first network device by using the second tunnel.
  • the second notification message is used to notify the size M′ of the second receiving window.
  • the first network device sets the size of the first sending window to L, L in response to receiving the first notification message. ⁇ M;
  • the first network device sets the size of the second transmission window to L', L' ⁇ M', L, L', M, M' are all greater than 0 in response to receiving the second notification message.
  • the size L of the first sending window is half of the size of the first receiving window M; the size L' of the second sending window is half of the size M' of the second receiving window, but the application is not limited thereto.
  • the first notification message is a GRE control message (recorded as a second GRE control message), and the second GRE control message includes a window size attribute, a Window size Attribute field, and a Window size Attribute field attribute type length value (ie, a TLV) field.
  • the Attribute Type field, the Attribute Length field, and the window size Window Size field indicates that the type of the Window size Attribute field is the type of the notification window size
  • the Window Size field is used to carry the size of the first receiving window.
  • the format of the second notification message is the same as the format of the first notification message, and is recorded as the fourth GRE control message, and the size of the second receiving window is carried in the Window Size field of the fourth GRE control message.
  • the format of the first GRE control packet and the second GRE control packet are the same, and the first network device distinguishes whether the GRE control packet is a notification message or an acknowledgement response by using the content carried in the Attribute Type field.
  • the method for processing a message in the hybrid access network shown in FIG. 3 is further described in detail below in conjunction with a specific application scenario.
  • the first network device is an HG
  • the second network device is a HAAP
  • the first tunnel is a DSL tunnel
  • the second tunnel is an LTE tunnel.
  • the HAAP sets the LTE receiving window size of the LTE tunnel to 8 kbyte, and sets the DSL receiving window size of the DSL tunnel to 6 kbyte.
  • the HAAP sends a GRE control packet including the Window Size field to the HG through the first tunnel, and the HG learns that the DSL receiving window size of the DSL tunnel is set to 6 kbyte according to the Window Size field; the HAAP sends the Window Size field to the HG through the second tunnel.
  • the GRE controls the message, and the HG learns that the LTE receiving window size of the LTE tunnel is 8 kbyte according to the Window Size field.
  • the send window size is set to half the size of the receive window.
  • the HG sets the DSL transmission window size of the DSL link to half the size of the DSL receiving window, that is, 3k byte; sets the LTE transmission window size of the LTE link to half of the LTE receiving window size, that is, 4k byte.
  • the load sharing is allocated according to the size of the data stream and the size of the two transmission windows.
  • the global number of each data packet in the data stream is 4, 5, 6, 7, 8, and 9, and the size of each data packet is 1 kbyte.
  • the current DSL transmission window size is 3k byte, and the current LTE transmission window size is 4k byte.
  • the DSL tunnel has a higher priority than the LTE tunnel. Therefore, the data packet in the data stream to be sent is first placed in the DSL buffer corresponding to the DSL transmission window. If the DSL buffer corresponding to the DSL transmission window is full, the overflow traffic is placed.
  • the LTE buffer corresponding to the LTE transmission window is the data packet in the data stream to be sent.
  • the data packets with the global number 4, 5, and 6 in the DSL transmission window are sent through the DSL tunnel in sequence, and the DSL sub-link numbers are respectively carried in the data packets with the global number 4, 5, and 6, respectively. 1, 2, 3.
  • the data packets with the global number of 7, 8, and 9 in the LTE transmission window are sent through the LTE tunnel, and the LTE sub-link numbers are respectively carried in the data packets with the global number 7, 8, and 9, respectively. , 3.
  • the carrying of the sub-link number can be implemented by using a data packet protocol extension.
  • the extension field of the data packet that is inter-connected between the HG and the HAAP divides the sequence number field in the original data packet into two parts, and the part is a sub-link number, indicating that the data packet is in the first
  • the serial number on the tunnel or the second tunnel, part of which is A global number that identifies the sequence number of the data packet over the entire bound tunnel.
  • the data packets in the two transmission windows are sent through the DSL tunnel and the LTE tunnel respectively.
  • the HAAP receives the data packets transmitted by the respective tunnels. Each time HAAP receives a data message, it returns an acknowledgment response to HG.
  • the acknowledgment response may be a data packet sent by the HAAP to the HG. Then, by extending the data packet protocol, the HAAP carries an Acknowledgement Number field in the data packet. Optionally, the HAAP sends the received HG.
  • the sub-link number carried in the data packet is used as the acknowledgment number.
  • the 32-bit serial number field is divided into two parts, and each data packet is extended after the data packet protocol transmitted by the two parties is extended. Both include a global number, a sublink number, and a confirmation number. Among them, the reserved field is set to 0 when transmitting.
  • the acknowledgment response may also be a GRE control message sent by the HAAP to the HG, and the acknowledgment number field is carried in the GRE control message.
  • the confirmation number field is constructed by using the sub-link number in the received data message as the confirmation number, and is returned to the HG.
  • the HG dynamically adjusts the size of the DSL transmission window according to the acknowledgment response returned by the HAAP based on the DSL tunnel; and dynamically adjusts the size of the DSL transmission window according to the acknowledgment response returned by the HAAP based on the LTE tunnel.
  • the HG receives an acknowledgment response, and determines which sub-link number data packet is received according to the acknowledgment number included in the acknowledgment response. If the acknowledgment is received, the corresponding transmission window is increased according to a certain ratio, and if not received, Then the corresponding send window is reduced by a certain ratio.
  • the DSL transmission window size is increased by 1 kbyte. Becomes 4k byte.
  • the HG receives an acknowledgment response with a acknowledgment number of 2 it will also increase the DSL transmission window size by 1k byte to 5k byte. If the data packets with the sub-link numbers 1, 2, and 3 are received by the HAAP through the DSL transmission window, and the HG receives the acknowledgment response with the acknowledgment number of 1, 2, and 3 returned by the HAAP, the HG will use the DSL.
  • the send window size is increased to 6k byte, which is the same as the DSL receive window size, which is the upper limit of the DSL send window size.
  • the HG sends a data message with the sub-link number 1 to the HAAP through the DSL transmission window, and does not receive the acknowledgment response with the acknowledgment number 1 returned by the HAAP through the DSL receiving window within the set time period, the DSL will be used.
  • the size of the send window is halved. For example, if the DSL send window size is 3k byte, the halving is rounded down, and HG reduces the DSL send window size to 1k byte, or 2k byte.
  • the HG receives the data packet through the HAAP, and controls the transmission rate according to the methods of “slow increase” and “fast decrease”.
  • the traffic of the two tunnels of the DSL tunnel and the LTE tunnel can be reasonably allocated according to actual network conditions.
  • the GRE control message is used to advertise the window size and the confirmation number to realize real-time monitoring of the network bandwidth and automatic setting and adjustment of the transmission window.
  • the embodiment of the present application further provides a first network device 600 in a hybrid access network.
  • a network device can be used to perform the method illustrated in FIG.
  • the first network device includes:
  • a first storage unit 601, configured to store a first sending window
  • a second storage unit 602 configured to store a second sending window
  • the sending unit 603 is configured to send, by using the first tunnel, the first data packet in the first sending window to the second network device, where the first data packet carries the first sub-link number, One sublink number is used for Indicates a sequence number of the first data packet in the first tunnel;
  • the processing unit 604 is configured to increase a size of the first sending window according to the first ratio, where the first acknowledgement number is obtained according to the first sublink number, in response to receiving the first acknowledgement response sent by the second network device, The first acknowledgement number is used to indicate that the second network device of the first network device has received the first data packet;
  • the processing unit 604 is further configured to: in response to the first acknowledgement response sent by the second network device not being received within the first predetermined time, the first network device decreases the size of the first sending window according to the second ratio, where the second ratio is greater than First ratio;
  • the receiving unit 605 is configured to receive the second data packet, and the next hop that reaches the destination address of the second data packet is the second network device.
  • the processing unit 604 is further configured to: when determining that the size of the first sending window is greater than or equal to the first threshold, storing the second data packet into the second storage unit, so that the second data packet Enter the second transmission window.
  • the sending unit 603 is further configured to send, by using the second tunnel, the second data packet to the second network device, where the second sending window communicates with the second receiving window by using the second tunnel.
  • the first tunnel has a higher priority than the second tunnel
  • the processing unit 604 is further configured to: in the sending unit 603, send the first datagram in the first sending window by using the first tunnel. Before the sending to the second network device, determining that the size of the first sending window is smaller than the first threshold, storing the first data packet to the first storage unit, so that the first The data message enters the first transmission window.
  • the first acknowledgment response is a third data packet
  • the third data packet includes an acknowledgment number field, where the acknowledgment number field carries the first acknowledgment number.
  • the first acknowledgment response is a first GRE control message
  • the first GRE control message includes an acknowledgment message Attribute field attribute type length value (ie, TLV) field.
  • TLV acknowledgment message Attribute field attribute type length value
  • the attribute type Attribute Type field indicates that the type of the Authenticate message Attribute field is the type of the notification that the data message has been received, and the Acknowledgement Number field is used to carry the first acknowledgment number.
  • the second network device further includes a third storage unit, where the third storage unit is configured to store the first receiving window.
  • the receiving unit 605 is further configured to receive the second data before the sending unit 603 sends the first data packet in the first sending window to the second network device by using the first tunnel. a notification message sent by the network device, the notification message is used to notify the size of the first receiving window, and the size of the first receiving window is M;
  • the processing unit 604 is further configured to: when the receiving unit receives the notification message, set the size of the first sending window to L, L ⁇ M, L, and M are both greater than 0.
  • the notification message is a second GRE control message
  • the second GRE control message includes a window size attribute Attribute field
  • the Window size Attribute field includes an Attribute Type field, an Attribute Length field, and a window size Window Size field, Attribute
  • the Type field indicates that the type of the Window size Attribute field is the type of the notification window size, and the Window Size field is used to carry the size of the first receiving window.
  • the second data packet carries a second sub-link number, where the second sub-link number is used to indicate a sequence number of the second data packet in the second tunnel.
  • the embodiment of the present application further provides a second network device 700 in a hybrid access network.
  • the second network device can be used to perform the method shown in FIG.
  • the first hybrid access network includes a first network device and the second network device 700.
  • a first tunnel and a second tunnel are established between the first network device and the second network device 700, and the first tunnel and the second tunnel form a virtual binding tunnel by using a binding connection.
  • the first network device includes a first storage unit and a second storage unit.
  • the first storage unit is configured to store a first sending window
  • the second storage unit is configured to store a second sending window.
  • the first network device may be specifically the first network device 600.
  • the second network device 700 includes:
  • the receiving unit 701, 701 is configured to receive the first data packet in the first sending window that is sent by the first network device by using the first tunnel, and receive the first network device by using the second a second data packet in the second sending window sent by the tunnel;
  • the first data packet carries a first sub-link number and a first global number, where the first sub-link number is used to indicate a sequence number of the first data packet in the first tunnel, and the first global number represents the first data.
  • the second data packet carries a second sub-link number and a second global number, where the second sub-link number is used to indicate the sequence number of the second data packet in the second tunnel, and the second global number is used to indicate the The serial number of the second data packet in the virtual binding tunnel.
  • the processing unit 702 is configured to store the first data packet and the second data packet into the sorting cache, and sort the first data packet and the second data packet according to the first global number and the second global number.
  • the sending unit 703 is configured to send, after the processing unit 702, the first data packet to the sorting cache, to send a first acknowledgement response to the first network device, so that the first network device receives After the first confirmation response, the size of the first transmission window is increased according to the first ratio.
  • the first acknowledgment response carries a first acknowledgment number, and the first acknowledgment number is obtained according to the first sublink number.
  • the first acknowledgement number is used to indicate that the second network device of the first network device has received the first data packet.
  • the sending unit 703 is further configured to: after the processing unit 702 stores the second data packet to the sorting cache, send a second acknowledgement response to the first network device, so that the first network device After receiving the second confirmation response, increasing the size of the second transmission window according to a third ratio.
  • the second acknowledgment response carries a second acknowledgment number, and the second acknowledgment number is obtained according to the second sublink number.
  • the second acknowledgement number is used to indicate that the second network device of the first network device has received the second data packet.
  • the first acknowledgment response is a third data packet
  • the third data packet includes an acknowledgment number field, where the acknowledgment number field carries the first acknowledgment number.
  • the first acknowledgment response is a first GRE control message
  • the first GRE control message includes an acknowledgment message attribute Attribute field.
  • the acknowledgement message Attribute field includes an attribute type Attribute Type field, an attribute length Attribute Length field, and an acknowledgement number Acknowledgement Number field.
  • the Attribute Type field indicates that the type of the Authenticate message Attribute field is the type of the notification that the data message has been received.
  • the Acknowledgement Number field is used to carry the first confirmation number.
  • the sending unit 703 is further configured to:
  • the receiving unit 701 Before receiving the first data packet in the first sending window that is sent by the first network device by using the first tunnel, the receiving unit 701 sends the first notification packet to the first network device.
  • the first notification message is used to notify the size of the first receiving window, and the size of the first receiving window is used by the first network device to set the size of the first sending window.
  • Receiving The unit 701 sends a second notification message to the first network device before receiving the second data packet in the second sending window sent by the first network device by using the second tunnel.
  • the second notification message is used to notify the size of the second receiving window, and the size of the second receiving window is used by the second network device to set the size of the first sending window.
  • the first notification message is a second GRE control message
  • the second notification message is a fourth GRE control message
  • the second GRE control message includes a window size attribute Attribute TLV field and a fourth GRE control
  • the message includes a window size attribute Attribute TLV field, and a Window size Attribute TLV field in the second GRE control message is used to carry the size of the first receiving window; and a Window size Attribute TLV field in the fourth GRE control message is used.
  • the size of the second receiving window is carried.
  • the first storage unit, the second storage unit, and the third storage unit may be caches.
  • the embodiment of the present application further provides a first network device 800 in a hybrid access network.
  • a network device 800 can be used to perform the method illustrated in FIG.
  • the first network device 800 includes a transceiver 801, a processor 802, a memory 803, and a bus 804.
  • the processor 802 and the memory 803 are connected by a bus 804 system.
  • the processor 802 is configured to execute code in the memory 803. When executed, the execution causes the processor to do the following:
  • the first tunnel Sending, by the first tunnel, the first data packet in the first sending window to the second network device, where the first data packet carries a first sub-link number, the first sub- The link number is used to indicate a sequence number of the first data packet in the first tunnel;
  • the first acknowledgment response sent by the second network device, increasing the size of the first sending window according to a first ratio, where the first acknowledgment response carries a first acknowledgment number, the first acknowledgment number Obtaining, according to the first sub-link number, the first acknowledgement number is used to indicate that the second network device has received the first data packet;
  • the first network device When it is determined that the size of the first sending window is greater than or equal to the first threshold, storing the second data packet to the second buffer, where the second data packet enters the second sending window, The first network device sends the second data packet to the second network device by using the second tunnel.
  • the first tunnel has a higher priority than the second tunnel
  • the processor 802 is further configured to:
  • the first The network device Before the first data packet in the first sending window is sent to the second network device by using the first tunnel, determining that the size of the first sending window is smaller than the first threshold, the first The network device stores the first data packet to the first cache, and the first data packet enters the first sending window.
  • the processor 802 is further configured to: before the first data packet in the first sending window is sent to the second network device by the transceiver 801, receive, by the transceiver 801, the notification message sent by the second network device.
  • the notification message is used to notify the size of the first receiving window.
  • the size of the first receiving window is M.
  • the size of the first sending window is set to L, L ⁇ M, L. And M are both greater than zero.
  • the processor 802 is further configured to: after the transceiver 801 sends the second data packet to the second network device by using the second tunnel, in response to receiving the second acknowledgement response sent by the second network device, adding the second ratio according to the third ratio. hair The size of the send window.
  • the second acknowledgment response carries a second acknowledgment number, the second acknowledgment number is mapped to the second sublink number, and the second acknowledgment response is used to notify the first network device that the second network device has received the second data packet. And reducing the size of the second transmission window according to the fourth ratio, the fourth ratio being greater than the third ratio, in response to not receiving the second confirmation response sent by the second network device within the second predetermined time.
  • the processor 802 can be a central processing unit (English: central processing unit, abbreviated: CPU), a network processor (English: network processor, abbreviated: NP) or a combination of a CPU and an NP.
  • CPU central processing unit
  • NP network processor
  • Processor 802 can also further include a hardware chip.
  • the hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (abbreviated as PLD), or a combination thereof.
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • the above PLD can be a complex programmable logic device (English: complex programmable logic device, abbreviation: CPLD), field-programmable gate array (English: field-programmable gate array, abbreviation: FPGA), general array logic (English: generic array Logic, abbreviation: GAL) or any combination thereof.
  • the memory 803 may include a volatile memory (English: volatile memory), such as a random access memory (English: random-access memory, abbreviation: RAM); the memory 803 may also include a non-volatile memory (English: non-volatile memory) ), for example, flash memory (English: flash memory), hard disk (English: hard disk drive, abbreviated: HDD) or solid state drive (English: solid-state drive, abbreviation: SSD); the memory 803 may also include the above types of memory The combination.
  • a volatile memory English: volatile memory
  • RAM random access memory
  • non-volatile memory English: non-volatile memory
  • flash memory English: flash memory
  • hard disk English: hard disk drive, abbreviated: HDD
  • SSD solid state drive
  • the embodiment of the present application further provides a second network device 900 in a hybrid access network.
  • the second network device 900 can be used to perform the method illustrated in FIG.
  • the second network device 900 includes a transceiver 901, a processor 902, a memory 903 and a bus 904.
  • the processor 902 and the memory 903 are connected by a bus 904.
  • the processor 902 is configured to execute code in the memory 903 when the code is When executed, this execution causes the processor to do the following:
  • the first network device Receiving, by the first network device, the first data packet in the first sending window that is sent by using the first tunnel, where the first data packet carries a first sub-link number and a first global number, The first sub-link number is used to indicate a sequence number of the first data packet in the first tunnel, and the first global number indicates that the first data packet is in the virtual binding tunnel
  • the second network device receives the second data packet in the second sending window that is sent by the first network device by using the second tunnel, where the second data packet carries the second a second sub-link number and a second global number, where the second sub-link number is used to indicate a sequence number of the second data packet in the second tunnel, and the second global number is used to indicate a sequence number of the second data packet in the virtual binding tunnel; the second network device storing the first data packet and the second data packet in the sorting cache, according to the a first global number and the second global number to the first number And said second packet data message sorting;
  • the second network device After the second network device stores the first data packet to the sorting buffer, the second network device sends a first acknowledgement response to the first network device, so that the first network After receiving the first acknowledgment response, the device increases the size of the first sending window according to a first ratio, where the first acknowledgment response carries a first acknowledgment number, and the first acknowledgment number is according to the first The first acknowledgment number is used to indicate that the second network device of the first network device has received the first data packet;
  • the second The network device sends the second acknowledgement response to the first network device, so that the first network device increases the size of the second sending window according to a third ratio after receiving the second acknowledgement response.
  • the second acknowledgment response carries a second acknowledgment number, where the second acknowledgment number is obtained according to the second sublink number, and the second acknowledgment number is used to indicate the first network device The second network device has received the second data packet.
  • the first acknowledgment response is a third data packet
  • the third data packet includes an acknowledgment number field, where the acknowledgment number field carries the first acknowledgment number.
  • the first acknowledgment response is a first GRE control message, where the first GRE control message includes an acknowledgment message attribute Attribute field, and the acknowledgment message Attribute field includes an attribute type Attribute Type field, an attribute length Attribute Length field, and an acknowledgment number.
  • the Acknowledgement Number field indicates that the Attribute Type field of the acknowledgment message is of a type indicating that the data message has been received, and the Acknowledgement Number field is used to carry the first acknowledgment number.
  • processor 902 is further configured to:
  • the size of the first receiving window is used by the first network device to set the size of the first sending window.
  • sending a second notification packet to the first network device before receiving the second data packet in the second sending window sent by the first network device by using the second tunnel, sending a second notification packet to the first network device, where the second notification packet is used to notify the size of the second receiving window The size of the second receiving window is used by the first network device to set the size of the second sending window.
  • the first notification message is a second GRE control message
  • the second notification message is a fourth GRE control message
  • the second GRE control message includes a window size attribute Attribute TLV field and a fourth GRE control
  • the message includes a window size attribute Attribute TLV field, and a Window size Attribute TLV field in the second GRE control message is used to carry the size of the first receiving window; and a Window size Attribute TLV field in the fourth GRE control message is used.
  • the size of the second receiving window is carried.
  • the processor 902 can be a central processing unit (English: central processing unit, abbreviated: CPU), a network processor (English: network processor, abbreviated: NP) or a combination of a CPU and an NP.
  • CPU central processing unit
  • NP network processor
  • Processor 902 can also further include a hardware chip.
  • the hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (abbreviated as PLD), or a combination thereof.
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • the above PLD can be a complex programmable logic device (English: complex programmable logic device, abbreviation: CPLD), field-programmable gate array (English: field-programmable gate array, abbreviation: FPGA), general array logic (English: generic array Logic, abbreviation: GAL) or any combination thereof.
  • the memory 903 may include a volatile memory (English: volatile memory), such as a random access memory (English: random-access memory, abbreviation: RAM); the memory 903 may also include a non-volatile memory (English: non-volatile memory) For example, flash memory (English: flash memory), hard disk (English: hard disk drive, abbreviated: HDD) or solid state drive (English: solid-state drive, abbreviation: SSD); the memory 903 may also include the above types of memory The combination.
  • a volatile memory English: volatile memory
  • RAM random access memory
  • non-volatile memory English: non-volatile memory
  • flash memory English: flash memory
  • hard disk English: hard disk drive, abbreviated: HDD
  • SSD solid state drive
  • the apparatus provided in FIG. 6-7 can be used to implement the method shown in FIG.
  • the processing unit 604 in FIG. 6 can be implemented by the processor 802 in FIG. 8.
  • the sending unit 603 and the receiving unit 605 can all be implemented by the transceiver 801 in FIG.
  • the processing unit 702 in FIG. 7 can use FIG. 9.
  • the processor 902 is implemented, and both the receiving unit 701 and the transmitting unit 703 can be implemented by the transceiver 901 of FIG.
  • the present application further provides a communication system, including a first network device and a second network device.
  • the first network device may be the device provided by the embodiment corresponding to FIG. 6 and FIG.
  • the second network device may be the device provided by the embodiment corresponding to FIG. 7 and FIG.
  • the communication system is for performing the method of the embodiment corresponding to FIG.
  • embodiments of the present application can be provided as a method, system, or computer program product.
  • the present application can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment in combination of software and hardware.
  • the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种混合接入网络中处理报文的方法及网络设备,用以实现网络带宽的实时监测及流量均衡,缓解因网络突发情况导致的主链路拥塞,提升网络带宽。该方法为:第一网络设备通过所述第一隧道将第一发送窗口中的第一数据报文发送给第二网络设备,响应于接收到第二网络设备发送的第一确认响应,第一网络设备按照第一比例增加第一发送窗口的大小,响应于在第一预定时间内未接收到第一确认响应,按照第二比例减小第一发送窗口的大小,响应于确定第一发送窗口的大小大于等于第一阈值,通过第二发送窗口向第二网络设备的第二接收窗口发送第二数据报文,第一确认响应中携带的第一确认号是根据第一数据报文中的第一子链路编号得到的。

Description

一种混合接入网络中处理报文的方法及网络设备
本申请要求于2016年11月04日提交中国专利局、申请号为201610977391.1、申请名称为“一种混合接入网络中处理报文的方法及网络设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,特别涉及一种混合接入网络中处理报文的方法及网络设备。
背景技术
混合接入(Hybrid Access,HA)网络是指将不同的接入网络连接捆绑起来提供给同一用户使用。混合接入网络能够使用户体验高速的网络使用。例如,两种不同的接入网络为数字用户专线(Digital Subscriber Line,DSL)和长期演进(Long Term Evolution,LTE)。目前,一种可能实现HA的方式是:运营商侧网络设备与用户侧网络设备之间通过通用路由封装(Generic Routing Encapsulation,GRE)隧道绑定实现混合接入网络的应用。运营商侧网络设备可以是混合接入汇聚点(Hybrid Access Aggregation Point,HAAP),用于捆绑连接不同的接入网络,为用户提供高速的互联网接入;用户侧网络设备可以是家庭网关(Home Gateway,HG),能够允许两种不同接入网络同时接入,如,可以同时允许固定宽带网络和移动网络的接入。
现有技术中,在混合接入网络中,基于令牌桶来实现负载分担。以DSL和LTE两种接入网络为例,HAAP与HA之间的两条链路分别看作两条隧道,即DSL隧道和LTE隧道。发送端使用染色机制,根据DSL隧道和LTE隧道带宽来决定报文的染色,根据染色,来确定报文沿DSL隧道还是LTE隧道发送。
如图1所示,发送端维护两个令牌桶,DSL令牌桶(图1中用左斜杠示出)和LTE令牌桶(图1中用右斜杠示出)。按照DSL和LTE隧道带宽确定两个令牌桶的大小。进入DSL令牌桶的报文被标记为绿色(图1中用左斜杠示出),超过DSL令牌桶接收能力的报文进入LTE令牌桶,进入LTE令牌桶的数据报文被标记为黄色(图1中用右斜杠示出)。最终,绿色报文沿着DSL隧道发送,黄色报文沿着LTE隧道发送。
假设DSL隧道和LTE隧道的带宽是固定的,上述基于令牌桶的负载分担机制无法根据DSL隧道和LTE隧道的带宽的动态变化来调整负载的分割比例。在DSL隧道出现拥塞的情况下,还依旧按照DSL隧道的固定带宽向DSL隧道注入负载,且LTE隧道即便是空闲的,也无法合理被用户使用,这样不但会导致丢包等传输错误,系统资源利用率也会很大程度降低,阻碍混合接入技术的实现。
发明内容
本申请实施例提供一种混合接入网络中处理报文的方法及网络设备,用以实现网络带宽的实时监测及负载均衡,缓解因网络突发情况导致的主链路拥塞,提升网络带 宽。
本申请实施例提供的具体技术方案如下:
第一方面,提供一种混合接入网络中处理报文的方法,所述混合接入网络包括第一网络设备和第二网络设备,所述第一网络设备和第二网络设备之间建立有第一隧道和第二隧道。所述第一网络设备中包括第一缓存和第二缓存,所述第一缓存用于存储第一发送窗口,所述第二缓存用于存储第二发送窗口。首先,第一网络设备通过所述第一隧道向所述第二网络设备发送所述第一发送窗口中的数据报文。然后,第一网络设备根据第二网络设备反馈的确认响应,动态调整第一发送窗口的大小。当第一发送窗口的大小大于等于第一阈值时,后续接收到的数据报文进入第二发送窗口,通过所述第二隧道发送给所述第二网络设备。这样,可以实现网络带宽的实时监测及负载均衡,缓解因网络突发情况导致的主链路拥塞,提升网络带宽。
在一个可能的实施方式中,所述第一网络设备通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备,所述第一数据报文中携带第一子链路编号,所述第一子链路编号用于表示所述第一数据报文在所述第一隧道中的序列号。响应于接收到所述第二网络设备发送的第一确认响应,所述第一网络设备按照第一比例增加所述第一发送窗口的大小。所述第一确认响应中携带第一确认号,所述第一确认号是根据所述所述第一子链路编号得到的,所述第一确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文。响应于在第一预定时间内未接收到所述第二网络设备发送的所述第一确认响应,所述第一网络设备按照第二比例减小所述第一发送窗口的大小,所述第二比例大于所述第一比例。之后,所述第一网络设备接收第二数据报文,到达所述第二数据报文的目的地址的下一跳为所述第二网络设备。当确定所述第一发送窗口的大小大于等于第一阈值时,所述第一网络设备将所述第二数据报文存储至所述第二缓存,所述第二数据报文进入所述第二发送窗口。所述第一网络设备通过所述第二隧道向所述第二网络设备发送所述第二数据报文。这样,第一网络设备通过第二网络设备接收数据报文的情况,按照“慢增”、“快减”的方式来控制发送速率,可以根据实际网络状况合理分配第一隧道和第二隧道两条隧道的流量。避免第一隧道因网络突发导致阻塞而带来的负载分担不适当,合理利用了网络带宽。
在一个可能的实施方式中,所述第一隧道的优先级高于所述第二隧道。其中,所述第一网络设备通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,所述第一网络设备确定所述第一发送窗口的大小小于所述第一阈值,所述第一网络设备将所述第一数据报文存储至所述第一缓存,所述第一数据报文进入所述第一发送窗口。通过优先级的设定,更好的利用网络传输质量好的主链路,提高了通信效率。
在一个可能的实施方式中,所述第一确认响应为所述第二网络设备向所述第一网络设备发送的第三数据报文或者第一通用路由封装GRE控制报文。提供更多可能的反馈确认响应的方式。
在一个可能的实施方式中,所述第一确认响应为所述第三数据报文,所述第三数据报文中包括确认号字段,所述确认号字段中携带所述第一确认号。由此,当第二网 络设备接收到所述第一数据报文后,如果第二网络设备需要刚好要向所述第一网络设备发送所述第三数据报文,则可以将所述第一确认号携带在所述第三数据报文中,当第一网络设备接收到所述第三数据报文后,解析所述第三数据报文,根据所述第一确认号,确认所述第二网络设备已经接收到所述第一数据报文。通过第二网络设备向第一网络设备发送的数据报文来反馈确认响应,使得无须单独发送报文以反馈确认响应,减少了第一网路设备和第二网络设备之间交互的报文的数量,也节约了带宽资源。
在一个可能的实施方式中,所述第一确认响应为第一GRE控制报文,所述第一GRE控制报文包括确认报文属性Attribute字段,所述确认报文Attribute字段包括属性类型Attribute Type字段,属性长度Attribute Length字段以及确认号Acknowledgement Number字段,所述Attribute Type字段表示所述确认报文Attribute字段的类型为通知已接收到数据报文的类型,所述Acknowledgement Number字段用于承载所述第一确认号。通过GRE控制报文来通告确认号,实现网络带宽的实时监测和自动调整,无需人工干预。
在一个可能的实施方式中,所述第二网络设备包括第三缓存,所述第三缓存用于存储第一接收窗口,所述第一网络设备通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,所述第一网络设备接收所述第二网络设备发送的通知报文,所述通知报文用于通知所述第一接收窗口的大小,所述第一接收窗口的大小为M;响应于接收到所述通知报文,所述第一网络设备将所述第一发送窗口的大小设置为L,L<M,L和M均大于0。
在一个可能的实施方式中,所述第一发送窗口的大小为所述第一接收窗口大小的一半;所述第二发送窗口的大小为所述第二接收窗口大小的一半。
在一个可能的实施方式中,所述通知报文为第二GRE控制报文,所述第二GRE控制报文包括窗口大小属性Window size Attribute字段,所述Window size Attribute字段包括Attribute Type字段,Attribute Length字段以及窗口大小Window Size字段,所述Attribute Type字段表示所述Window size Attribute字段的类型为通知窗口大小的类型,所述Window Size字段用于承载所述第一接收窗口的大小。通过GRE控制报文来通告窗口大小,实现发送窗口的自动设定和调整,无需人工干预。
在一个可能的实施方式中,所述第二数据报文中携带第二子链路编号,所述第二子链路编号用于表示所述第二数据报文在所述第二隧道中的序列号;所述第一网络设备通过所述第二隧道将所述第二发送窗口中的第二数据报文向所述第二网络设备发送之后,响应于接收到所述第二网络设备发送的第二确认响应,所述第一网络设备按照第三比例增加所述第二发送窗口的大小,所述第二确认响应中携带第二确认号,所述第二确认号是根据所述第二子链路编号得到的,所述第二确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第二数据报文;响应于在第二预定时间内未接收到所述第二网络设备发送的所述第二确认响应,所述第一网络设备按照第四比例减小所述第二发送窗口的大小,所述第四比例大于所述第三比例。这样,第一网络设备通过第二网络设备接收数据报文的情况,按照“慢增”、“快减”的方式来控制发送速率。
在一个可能的实施方式中,第二网络设备在接收到第二数据报文后,获取接收到 的第二数据报文中携带的第二子链路编号,在向第一网络设备返回的第二确认响应中携带第二确认号,第二确认号是根据第二子链路编号得到的。
在一个可能的实施方式中,第二确认响应可以为第二网络设备向第一网络设备发送的第四数据报文,第四数据报文中包括确认号字段,在确认号字段中携带第二确认号。可选的,第二确认号与第二子链路编号相同。通过第二网络设备向第一网络设备发送的数据报文来反馈确认响应,使得无须单独发送报文以反馈确认响应,减少了第一网路设备和第二网络设备之间交互的报文的数量,也节约了带宽资源。
在一个可能的实施方式中,第二确认响应还可以为第三GRE控制报文,第二网络设备在接收到第一网络设备发送的第二数据报文之后,通过向第一网络设备发送的第三GRE控制报文向第一网络设备通知已经接收到第二数据报文。
在一个可能的实施方式中,第三GRE控制报文包括确认报文属性Attribute字段,确认报文Attribute字段包括属性类型Attribute Type字段,属性长度Attribute Length字段以及确认号Acknowledgement Number字段,Attribute Type字段表示确认报文Attribute字段的类型为通知已接收到数据报文的类型,Acknowledgement Number字段用于承载第二确认号。通过GRE控制报文来通告确认号,实现网络带宽的实时监测和自动调整,无需人工干预。
第二方面,提供一种混合接入网络中处理报文的方法,所述混合接入网络包括第一网络设备和第二网络设备,所述第一网络设备和第二网络设备之间建立有第一隧道和第二隧道,所述第一隧道和所述第二隧道通过绑定连接形成虚拟绑定隧道,所述第一网络设备中包括包括第一缓存和第二缓存,所述第一缓存用于存储第一发送窗口,所述第二缓存用于存储第二发送窗口,所述第二网络设备中包括排序缓存,第二网络设备在接收第一网络设备发送的数据报文后,向第一网络设备反馈确认响应,通知第一网络设备已经接收到了数据报文,以使第一网络设备动态调整发送窗口的大小。这样,可以实现网络带宽的实时监测及负载均衡,缓解因网络突发情况导致的主链路拥塞,提升网络带宽。
在一个可能的实施方式中,所述第二网络设备接收所述第一网络设备通过所述第一隧道发送的所述第一发送窗口中的第一数据报文,所述第一数据报文中携带第一子链路编号和第一全局编号。所述第一子链路编号用于表示所述第一数据报文在所述第一隧道中的序列号。所述第一全局编号表示所述第一数据报文在所述虚拟绑定隧道中的序列号。所述第二网络设备接收所述第一网络设备通过所述第二隧道发送的所述第二发送窗口中的第二数据报文。所述第二数据报文中携带第二子链路编号和第二全局编号。所述第二子链路编号用于表示所述第二数据报文在所述第二隧道中的序列号,所述第二全局编号用于表示所述第二数据报文在所述虚拟绑定隧道中的序列号。所述第二网络设备将所述第一数据报文和所述第二数据报文存储到排序缓存,根据所述第一全局编号和所述第二全局编号对所述第一数据报文和所述第二数据报文进行排序。响应于所述第二网络设备将所述第一数据报文存储到所述排序缓存,所述第二网络设备向所述第一网络设备发送第一确认响应,以使得所述第一网络设备收到所述第一确认响应后,按照第一比例增加所述第一发送窗口的大小。所述第一确认响应中携带第一确认号。所述第一确认号是根据所述第一子链路编号得到的。所述第一确认号用于 指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文。
响应于所述第二网络设备将所述第二数据报文存储到所述排序缓存,所述第二网络设备向所述第一网络设备发送所述第二确认响应,以使得所述第一网络设备在收到所述第二确认响应后,按照第三比例增加所述第二发送窗口的大小。所述第二确认响应中携带第二确认号,所述第二确认号是根据所述第二子链路编号得到的,所述第二确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第二数据报文。第二网络设备可以准确通知第一网络设备接收到的数据报文,以便于第一网络设备动态调整隧道带宽,控制第一发送窗口的发送速率,避免因网络突发导致阻塞而带来的负载分担不适当,合理利用了网络带宽。
在一个可能的实施方式中,所述第一确认响应为所述第二网络设备向所述第一网络设备发送的第三数据报文或者第一通用路由封装GRE控制报文。提供更多可能的反馈确认响应的方式。
在一个可能的实施方式中,所述第一确认响应为所述第三数据报文,所述第三数据报文中包括确认号字段,所述确认号字段中携带所述第一确认号。通过第二网络设备向第一网络设备发送的数据报文来反馈确认响应,使得无须单独发送报文以反馈确认响应,减少了第一网路设备和第二网络设备之间交互的报文的数量,也节约了带宽资源。
在一个可能的实施方式中,所述第一确认响应为第一GRE控制报文,所述第一GRE控制报文包括确认报文属性Attribute TLV字段,所述确认报文Attribute TLV字段用于承载所述第一确认号。通过GRE控制报文来通告确认号,实现网络带宽的实时监测和自动调整,无需人工干预。
在一个可能的实施方式中,所述第二网络设备通过所述第一隧道接收所述第一网络设备发送的第一数据报文之前,所述第二网络设备向所述第一网络设备发送第一通知报文。所述第一通知报文用于通知所述第一接收窗口的大小,所述第一接收窗口的大小用于所述第一网络设备设置所述第一发送窗口的大小。所述第二网络设备通过所述第二隧道接收所述第一网络设备发送的第二数据报文之前,所述第二网络设备向所述第一网络设备发送第二通知报文,所述第二通知报文用于通知所述第二接收窗口的大小,所述第二接收窗口的大小用于所述第一网络设备设置所述第二发送窗口的大小。
在一个可能的实施方式中,所述第一通知报文为第二GRE控制报文,所述第二通知报文为第四GRE控制报文。所述第二GRE控制报文包括窗口大小属性Window size Attribute TLV字段。所述第四GRE控制报文包括窗口大小属性Window size Attribute TLV字段。所述第二GRE控制报文中的Window size Attribute TLV字段用于承载所述第一接收窗口的大小。所述第四GRE控制报文中的Window size Attribute TLV字段用于承载所述第二接收窗口的大小。通过GRE控制报文来通告窗口大小,实现发送窗口的自动设定和调整,无需人工干预。
第三方面,提供一种混合接入网络中的第一网络设备,该第一网络设备具有实现上述第一方面和第一方面的任一种可能的实施方式中第一网络设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,提供一种混合接入网络中的第二网络设备,该第二网络设备具有实现上述第二方面和第二方面的任一种可能的实施方式中第二网络设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第五方面,提供一种混合接入网络中的第一网络设备,该第一网络设备包括收发器,处理器,存储器,所述处理器以及存储器之间通过总线系统相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,该执行使得处理器执行第一方面或第一方面的任一可能的实施方式中的方法。
第六方面,提供一种混合接入网络中的第二网络设备,该第二网络设备包括收发器,处理器,存储器,所述处理器以及存储器之间通过总线系统相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,该执行使得处理器执行第二方面或第二方面的任一可能的实施方式中的方法。
第七方面,提供了一种通信系统,该通信系统包括第三方面或第五方面所述的第一网络设备和第四方面或第六方面所述的第二网络设备。
第八方面,提供了一种计算机存储介质,用于存储计算机程序,该计算机程序包括用于执行第一方面、第二方面、第一方面的任一可能的实施方式或第二方面的任一可能的实施方式中的方法的指令。
本申请实施例提供了一种混合接入网络中的处理报文的方法及网络设备,第一网络设备根据第二网络设备反馈的信息,调整第一网络设备不同链路的带宽,主链路溢出的流量及时导向其他链路,在提升网络带宽的同时,缓解了因网络突发情况导致的主链路拥塞。
附图说明
图1为现有技术中基于令牌桶来实现负载分担的示意图;
图2为本申请实施例中HA网络架构示意图;
图3为本申请实施例中混合接入网络中处理报文的方法流程示意图;
图4为本申请实施例中发送窗口、接收窗口示意图;
图5为本申请实施例中数据报文协议扩展示意图;
图6为本申请实施例中混合接入网络中第一网络设备的结构示意图之一;
图7为本申请实施例中混合接入网络中第二网络设备的结构示意图之一;
图8为本申请实施例中混合接入网络中第一网络设备的结构示意图之二;
图9为本申请实施例中混合接入网络中第二网络设备的结构示意图之二。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
除非有相反的说明,本申请实施例提及“第一”、“第二”、“第三”以及“第四”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序。
本申请实施例可应用于混合接入网络,本申请实施例中,混合接入网络中包括第一网络设备和第二网络设备,第一网络设备和第二网络设备之间建立有两条链路。在两条链路上分别传输数据报文和/或控制报文,一条链路可以看做一条隧道,即第一网络设备和第二网络设备之间建立有两条隧道,为第一隧道和第二隧道。第一隧道和第二隧道通过绑定连接形成虚拟绑定隧道。可以理解为,第一网络设备与第二网络设备之间的互通的所有数据报文通过该虚拟绑定隧道传输,该所有数据报文包括通过第一隧道和通过第二隧道传输的数据报文。具体地,所述虚拟绑定隧道例如可以是GRE隧道,点到点协议(英文:Point-to-point Tunnelling Protocol,PPTP)隧道,用户数据协议(英文:User datagram Protocol,UDP)隧道等,本申请对此不作具体限定。
在本申请实施例中,第一发送窗口可以理解为欲通过第一隧道发送的、缓存在第一网络设备且尚未被发送的数据报文序列。第二发送窗口可以理解为欲通过第一隧道发送的、缓存在第一网络设备且尚未被发送的数据报文序列。第一接收窗口可以理解为第二网络设备接收到第一发送窗口通过第一隧道发送的、并缓存下来,且尚未进入排序缓存的数据报文序列。第二接收窗口可以理解为第二网络设备接收到第二发送窗口通过第二隧道发送的、并缓存下来,且尚未进入排序缓存的数据报文序列。排序缓存可以理解为用于第二网络设备对虚拟绑定隧道接收到的所有数据报文序列进行排序的缓存。窗口大小可以理解为可以容纳数据报文序列的长度。发送窗口和接收窗口的定义符合传输控制协议(英文:Transmission Control Protocol,TCP)的规定。各个隧道上的发送窗口和接收窗口独立管理。第一网络设备中包括第一缓存和第二缓存,第一缓存用于存储第一发送窗口,第二缓存用于存储第二发送窗口。第二网络设备中包括第三缓存和第四缓存,第三缓存用于存储第一接收窗口,第二缓存用于存储第二接收窗口。
本申请实施例描述的应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
一种可能的混合接入网络架构示例如图2所示。第一网络设备为用户侧网络设备HG,第二网络设备为运营商侧网络设备HAAP;或者,第一网络设备为运营商侧网络设备HAAP,第二网络设备为用户侧网络设备HG。用户侧网络设备HG能够为用户提供至少两种接入网络的的接入,如图2中所示,为诸如手机、电脑、固定电话等终端设备提供如DSL的固定网络,为诸如具有无线通信功能的手持设备提供如LTE的移动网络的接入,运营商侧网络设备HAAP为用户提供高速的混合网络接入。
HG与HAAP之间通过虚拟绑定隧道实现混合接入。第一网络设备发送的所有报文采用全局编号,全局编号用于表示第一网络设备发送的所有数据报文在虚拟绑定隧道中的序列号,其中,所有报文包括在DSL隧道中传输的报文和在LTE隧道中传输的报文。第二网络设备根据全局编号恢复报文顺序,从而实现HG与HAAP之间混合接入网络的数据传输机制。图2中示出的混合接入网络中的应用场景仅是一种示例,实际混合接入网络中还可以包括其他形式的结构,本申请中不作限制。
下面基于图2所示的混合接入网络架构,结合附图对本申请实施例提供的混合接 入网络中处理报文的方法及网络设备作详细说明。
需要说明的是,第一网络设备和第二网络设备之间通过第一隧道和第二隧道发送数据,还可以通过两条以上的隧道来发送数据,本申请实施例中以两条隧道为例介绍。
参阅图3所示,本申请实施例中混合接入网络中处理报文的方法流程如下所述。
步骤301、第一网络设备通过第一隧道将第一发送窗口中的第一数据报文发送给第二网络设备。
步骤302、第二网络设备接收所述第一数据报文之后,向第一网络设备返回第一确认响应;
第一确认响应用于指示第二网络设备接收到基于第一发送窗口发送的第一数据报文。
这里有一种特殊情况是,第二网络设备可能没有接收到第一网络设备发送的第一数据报文,或者第二网络设备解析错误等原因,第二网络设备未向第一网络设备返回第一确认响应。
步骤303、第一网络设备根据第一确认响应的接收情况,来动态调整第一发送窗口的大小。
具体地,响应于接收到第二网络设备发送的第一确认响应,第一网络设备按照第一比例增加第一发送窗口的大小。
第一网络设备可能由于链路质量不好或者第二网络设备未返回第一确认响应等原因,在第一预定时间内未接收到第一确认响应。响应于在第一预定时间内未接收到第二网络设备发送的第一确认响应,第一网络设备按照第二比例减小第一发送窗口的大小,第二比例大于第一比例。
在一种可能的实施方式中,将第一预定时间设置为大于等于第一数据报文由第一网络设备传输到第二网络设备的时长与第一确认响应由第二网络设备传输到第一网络设备的时长之和。
步骤304、第一网络设备通过第二隧道将第二数据报文发送给第二网络设备。可选的,第一隧道的优先级高于第二隧道。即当第一隧道和第二隧道的链路状态正常的情况下,第一网络设备当产生待发送的数据报文时,优先通过第一隧道发送。具体地,两个隧道之间的优先级顺序可以通过两个隧道的时延优先级来确定,也可以通过两个发送窗口的大小来确定,具体优先级确定方式本申请中不作限定。
第一网络设备接收所述第一数据报文后,在第一缓存具有缓存空间时,优先将所述第一数据报文缓存到第一缓存,进入第一发送窗口,并通过第一隧道将所述数据报文发送给第二网络设备。如步骤303所述,根据接收第二网络设备返回的第一确认响应的情况,来动态调整第一发送窗口的大小。第一网络设备预先设定第一发送窗口大小的第一阈值,根据第一发送窗口大小与第一阈值的大小关系,来选择第一发送窗口还是第二发送窗口来发送数据报文。
相应地,在步骤301第一网络设备通过第一隧道将第一发送窗口中的第一数据报文发送到第二网络设备之前,第一网络设备响应于确定第一发送窗口的大小小于第一阈值,第一网络设备选择将第一数据报文存储至第一缓存,第一数据报文进入第一发送窗口。
相应地,在步骤304中,第一网络设备将第二数据报文通过第二隧道发送之前,响应于确定第一发送窗口的大小大于等于第一阈值,第一网络设备将第二数据报文存储至第二缓存,第二数据报文进入第二发送窗口。
在一个具体的实施方式中,所述第一阈值可以是能够容纳的数据报文序列的u最大长度。但本申请实施例不限于此。
在一个具体的实施方式中,当第一网络设备接收到待发送的数据报文时,第一网络设备会先确定待发送的数据报文的长度。若待发送数据报文的长度不大于当前第一缓存可存储空间的大小,则第一网络设备将待发送的数据报文存储到第一缓存,进入第一发送窗口,并通过第一隧道发送给第二网络设备。若待发送数据报文的长度大于第一缓存可存储空间的大小,则第一网络设备将待发送的数据报文缓存到第二缓存,进入第二发送窗口并通过第二隧道发送给第二网络设备。本申请实施例中,在第一数据报文中携带第一子链路编号,在第二数据报文中携带第二子链路编号。第一子链路编号用于表示第一数据报文在第一隧道中的序列号,第二子链路编号用于表示第二数据报文在第二隧道中的序列号。具体地,第一网络设备向第二网络设备发送的第一数据报文的序列号字段被分成两部分,一部分用于携带第一子链路编号(即Tunnel Sequence Number);一部分用于携带原有数据报文协议中定义的全局编号(即Bonding Sequence Number)。第二数据报文的序列号字段被分成两部分,一部分用于携带第二子链路编号,一部分用于携带原有数据报文协议中定义的全局编号。
全局编号用于表征第一网络设备发送的所有数据报文在第一隧道和第二隧道通过绑定连接形成虚拟绑定隧道中的序列号。其中,该所有数据报文包括在第一隧道中传输和在第二隧道中传输的数据报文。为方便说明,用第一全局编号表示第一发送窗口中的第一数据报文在虚拟绑定隧道中的序列号。用第二全局编号表示第二发送窗口中的第二数据报文在虚拟绑定隧道中的序列号。第二网络设备在接收到第一数据报文和第二数据报文后,将第一数据报文和第二数据报文保存到排序缓存,并根据第一全局编号和第二全局编号对第一数据报文和第二数据报文进行排序。具体地,首先,第二网络设备接收到所述第一数据报文以后,将所述第一数据报文存储至第三缓存中,以使得第一数据报文进入第一接收窗口。然后,第一接收窗口中的数据报文,包括第一数据报文,会进入排序缓存中。第二网络设备接收到第二数据报文以后,将第二数据报文存储至第四缓存中,以使得第二数据报文进入第二接收窗口。然后,第二接收窗口中的数据报文,包括第二数据报文,会进入排序缓存中。在排序缓存中,第二网络设备根据每个数据报文的全局编号,对所有的数据报文进行排序。如上所述,需要说明的是,在上述步骤302中,第二网络设备在接收到第一数据报文后,向第一网络设备返回第一确认响应之前,会将第一数据报文先存储到排序缓存,然后根据第一数据报文中携带的第一全局编号确定第一数据报文在排序缓存中的位置。这样,只有在第一数据报文进行排序缓存后,第二网络设备才会返回第一确认响应,避免了数据报文因不能全部处理导致的拥塞,通过这样设计能够向第一网络设备反映实际网络状况,更能合理利用系统带宽。
第二网络设备在接收到第一数据报文后,获取接收到的第一数据报文中携带的第一子链路编号,在向第一网络设备返回的第一确认响应中携带第一确认号,第一确认 号是根据第一子链路编号得到的,第一确认号用于指示第一网络设备第二网络设备已经收到第一数据报文。
在一个具体的实施方式中,第一确认号与第一子链路编号采取相同的方式进行表示。例如第二网络设备接收到所述第一数据报文后,获取所述第一数据报文中携带的所述第一子链路编号,并在所述第一确认响应中,将该第一子链路编号作为所述第一确认号回复给所述第一网络设备。所述第一子链路编号例如可以是阿拉伯数字,或者字母,本申请对此不作具体限定。
在另一个具体的实施方式中,所述第一确认号是根据与所述第一子链路编号之间的映射关系而得到的。在一个具体的实施方式中,所述第二网络设备中可以保存一个映射关系表,所述映射关系表用于保存所述子链路编号与确认号的映射关系。所述第二网络设备获取所述第一子链路编号,根据所述映射关系表得到与所述第一子链路编号对应的第一确认号。相应的,所述第一网络设备中也保存有所述映射关系表。所述映射关系例如可以通过以下方式建立:例如,第一子链路编号为阿拉伯数字1,而第一确认号为与数字1相映射的字母A。需要说明的是,上述映射关系的建立方式仅是例举,具体可以通过多种不同的方式实现,本领域技术人员可以想到的任何来建立这种对应关系的手段都覆盖在本申请实施例中的映射规则中。映射关系表的具体形式可以以多种不同的方式实现,可以以表格的形式,也可以是其他的方式表达该对应关系,本申请对此不做限定。
通过第一确认号,第一网络设备可以获知第二网络设备已接收到与第一确认号对应的第一子链路编号的第一数据报文。
第一网络设备和第二网络设备之间可以互传数据报文,可选的,第一确认响应可以为第二网络设备向第一网络设备发送的数据报文,记为第三数据报文,第三数据报文的格式与第一数据报文和第二数据报文相同,均包含子链路编号和全局编号,除此之外,若第三数据报文为第一确认响应,则第三数据报文中还包括确认号字段,在确认号字段中携带第一确认号,可选的,第一确认号与第一子链路编号相同。
第一确认响应还可以为GRE控制报文(记为第一GRE控制报文),第二网络设备在接收到第一网络设备发送的第一数据报文之后,通过向第一网络设备发送的GRE控制报文向第一网络设备通知已经接收到第一数据报文。
第一GRE控制报文包括确认报文属性Attribute字段,确认报文Attribute字段包括属性类型长度值(即TLV)字段,具体包括属性类型Attribute Type字段,属性长度Attribute Length字段以及确认号Acknowledgement Number字段,Attribute Type字段表示确认报文Attribute字段的类型为通知已接收到数据报文的类型,Acknowledgement Number字段用于承载第一确认号。
可选的,在步骤304第一网络设备将第二数据报文通过第二隧道向第二网络设备发送之后,第二网络设备接收到第一网络设备通过第二隧道发送的第二数据报文,第二网络设备向第一网络设备返回第二确认响应。
第二确认响应用于表征第二网络设备接收到基于第二发送窗口发送的第二数据报文。
这里有一种特殊情况是,第二网络设备可能没有接收到第一网络设备发送的第二 数据报文,或者第二网络设备解析错误等原因,第二网络设备未向第一网络设备返回第二确认响应。
第一网络设备根据第二确认响应的接收情况,来动态调整第二发送窗口的大小。
具体地,响应于接收到第二网络设备发送的第二确认响应,第一网络设备按照第三比例增加第二发送窗口的大小。
第一网络设备可能由于链路质量不好或者第二网络设备未返回第二确认响应等原因,在第二预定时间内未接收到第二确认响应。响应于在第二预定时间内未接收到第二网络设备发送的第二确认响应,第一网络设备按照第四比例减小第二发送窗口的大小,第四比例大于第三比例。
在一种可能的实施方式中,将第二预定时间设置为大于等于第二数据报文由第一网络设备传输到第二网络设备的时长与第二确认响应由第二网络设备传输到第一网络设备的时长之和。
第二网络设备在接收到第二数据报文后,获取接收到的第二数据报文中携带的第二子链路编号,在向第一网络设备返回的第二确认响应中携带第二确认号,第二确认号与第二子链路编号互为映射。
通过第二确认号,第一网络设备可以获知第二网络设备已接收到与第二确认号对应的第二子链路编号的第二数据报文。
第二确认响应可以为第二网络设备向第一网络设备发送的第四数据报文,第四数据报文的格式与第三数据报文、第一数据报文、第二数据报文相同,第四数据报文中包括确认号字段,在确认号字段中携带第二确认号。可选的,第二确认号与第二子链路编号相同。
第二确认响应还可以为与第一GRE控制报文格式相同的GRE控制报文(记为第三GRE控制报文),第二网络设备在接收到第一网络设备发送的第二数据报文之后,通过向第一网络设备发送的第三GRE控制报文向第一网络设备通知已经接收到第二数据报文。
第三GRE控制报文包括确认报文属性Attribute字段,确认报文Attribute字段属性类型长度值(即TLV)字段,具体包括属性类型Attribute Type字段,属性长度Attribute Length字段以及确认号Acknowledgement Number字段,Attribute Type字段表示确认报文Attribute字段的类型为通知已接收到数据报文的类型,Acknowledgement Number字段用于承载第二确认号。
关于发送窗口(包括第一发送窗口和第二发送窗口)和接收窗口(第二发送窗口和第二接收窗口)大小的设定,可以通过下述设计:
第二网络设备根据第一隧道的带宽来确定第一接收窗口的大小,根据第二隧道的带宽来确定第二接收窗口的大小。例如,按照接收窗口大小=带宽*增量值的方式确定,增量值(即delta值)由网络管理员来设定,一般设置为50ms。第二网络设备通过第一隧道向第一网络设备发送第一通知报文,第一通知报文用于通知第一接收窗口的大小M;第二网络设备通过第二隧道向第一网络设备发送第二通知报文,第二通知报文用于通知第二接收窗口的大小M’。
第一网络设备响应于接收到第一通知报文,将第一发送窗口的大小设置为L,L <M;第一网络设备响应于接收到第二通知报文,将第二发送窗口的大小设置为L’,L’<M’,L、L’、M、M’均大于0。一种具体的实施方式中,第一发送窗口的大小L为第一接收窗口M大小的一半;第二发送窗口的大小L’为第二接收窗口大小M’的一半,但本申请不限于此
第一通知报文为GRE控制报文(记为第二GRE控制报文),第二GRE控制报文包括窗口大小属性Window size Attribute字段,Window size Attribute字段属性类型长度值(即TLV)字段,具体包括Attribute Type字段,Attribute Length字段以及窗口大小Window Size字段,Attribute Type字段表示Window size Attribute字段的类型为通知窗口大小的类型,Window Size字段用于承载第一接收窗口的大小。
第二通知报文的格式与第一通知报文的格式相同,记为第四GRE控制报文,在第四GRE控制报文的Window Size字段承载第二接收窗口的大小。
这里需要说明的是,第一GRE控制报文和第二GRE控制报文的格式相同,第一网络设备通过Attribute Type字段携带的内容来区分GRE控制报文是通知报文还是确认响应。
下面结合具体的应用场景对图3所示的混合接入网络中处理报文的方法做进一步详细说明。
假设第一网络设备为HG,第二网络设备为HAAP,第一隧道为DSL隧道,第二隧道为LTE隧道。
HAAP将LTE隧道的LTE接收窗口大小设定为8k byte,将DSL隧道的接DSL收窗口大小设定为6k byte。HAAP通过第一隧道向HG发送包含Window Size字段的GRE控制报文,HG根据Window Size字段获知DSL隧道的DSL接收窗口大小设定为6k byte;HAAP通过第二隧道向HG发送包含Window Size字段的GRE控制报文,HG根据Window Size字段获知LTE隧道的LTE接收窗口大小为8k byte。优选的,将发送窗口大小设置为接收窗口大小的一半。HG将DSL链路的DSL发送窗口大小设定为DSL接收窗口大小的一半,即3k byte;将LTE链路的LTE发送窗口大小设定为LTE接收窗口大小的一半,即4k byte。
HG产生数据流待发送时,按照数据流的大小和两个发送窗口的大小分配负载分担。如图4所示,假设数据流中每个数据报文的全局编号分别为4、5、6、7、8、9,每个数据报文的大小为1k byte。当前DSL发送窗口的大小为3k byte,当前LTE发送窗口的大小为4k byte。由于DSL隧道的优先级高于LTE隧道,因此,将待发送的数据流中的数据报文先放置DSL发送窗口对应的DSL缓存,DSL发送窗口对应的DSL缓存满的情况下,将溢出流量放置于LTE发送窗口对应的LTE缓存。按照顺序将DSL发送窗口中的全局编号为4、5、6的数据报文通过DSL隧道发送,并在全局编号为4、5、6的数据报文中分别承载DSL子链路编号,依次为1、2、3。LTE发送窗口中的全局编号为7、8、9的数据报文通过LTE隧道发送,并在全局编号为7、8、9的数据报文中分别承载LTE子链路编号,依次为1、2、3。
具体可通过数据报文协议扩展实现子链路编号的携带。如图5所示,为HG与HAAP之间互通的数据报文的扩展字段,将原来数据报文中的序列号字段分成两部分,一部分为子链路编号,表征该数据报文在第一隧道或第二隧道上的序列号,一部分为 全局编号,表征该数据报文在整个绑定隧道上的序列号。
两个发送窗口中的数据报文分别通过DSL隧道和LTE隧道发送。HAAP分别接收各自隧道传过来的数据报文。HAAP每接收到一个数据报文,向HG返回一个确认响应。该确认响应可以为HAAP向HG发送的数据报文,那么,通过扩展数据报文协议,HAAP在数据报文中携带确认号(Acknowledgement Number)字段,可选的,HAAP将收到的HG发送的数据报文中携带的子链路编号作为确认号。
由于HAAP和HG均既可以为发送设备又可以为接收设备,因此,如图5所示,32bit的序列号字段被分为两部分,双方发送的数据报文协议扩展后,每个数据报文中均包括全局编号、子链路编号和确认号。其中,预留字段在发送时各个位都置为0。
另外,该确认响应还可以为HAAP向HG发送的GRE控制报文,在GRE控制报文中携带确认号字段。具体地,通过将接收到的数据报文中的子链路编号作为确认号来构造确认号字段,回复给HG。
HG根据HAAP基于DSL隧道返回的确认响应,来动态调整DSL发送窗口的大小;根据HAAP基于LTE隧道返回的确认响应,来动态调整DSL发送窗口的大小。
HG接收到一个确认响应,按照确认响应中包括的确认号来确定是哪一个子链路编号的数据报文被接收到了,若确认接收,则将对应发送窗口按照一定比例增加,若未接收,则将对应发送窗口按照一定比例减少。
例如,HG向HAAP通过DSL发送窗口发送子链路编号为1的数据报文后,接收到HAAP通过DSL接收窗口返回的包含确认号为1的确认响应,则将DSL发送窗口大小增加1k byte,变为4k byte。同样,若HG接收到包含确认号为2的确认响应,也会将DSL发送窗口大小增加1k byte,变为5k byte。若通过DSL发送窗口发送子链路编号为1、2、3的数据报文均被HAAP接收到,HG接收到HAAP返回的携带确认号为1、2、3的确认响应,则HG将DSL的发送窗口大小增加为6k byte,这个大小与DSL接收窗口大小一致,为DSL发送窗口大小的上限。
相反,若HG向HAAP通过DSL发送窗口发送子链路编号为1的数据报文后,在设定时长内没有接收到HAAP通过DSL接收窗口返回的包含确认号为1的确认响应,则将DSL发送窗口大小减半,例如,DSL发送窗口大小为3k byte的情况下,减半取整,HG将DSL发送窗口大小减为1k byte,或2k byte。
这样,HG通过HAAP接收数据报文的情况,按照“慢增”、“快减”的方式来控制发送速率,可以根据实际网络状况合理分配DSL隧道和LTE隧道两条隧道的流量。通过GRE控制报文来通告窗口大小和确认号,实现网络带宽的实时监测和发送窗口的自动设定和调整。
基于与图3所示的混合接入网络中处理报文的方法同一发明构思,参阅图6所示,本申请实施例还提供了一种混合接入网络中的第一网络设备600,该第一网络设备可以用于执行图3所示的方法。第一网络设备包括:
第一存储单元601,用于存储第一发送窗口;
第二存储单元602,用于存储第二发送窗口;
发送单元603,用于通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备,第一数据报文中携带第一子链路编号,第一子链路编号用于 表示第一数据报文在第一隧道中的序列号;
处理单元604,用于响应于接收到第二网络设备发送的第一确认响应,按照第一比例增加第一发送窗口的大小,第一确认号是根据所述第一子链路编号得到的,所述第一确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文;
处理单元604,还用于响应于在第一预定时间内未接收到第二网络设备发送的第一确认响应,第一网络设备按照第二比例减小第一发送窗口的大小,第二比例大于第一比例;
接收单元605,用于接收第二数据报文,到达所述第二数据报文的目的地址的下一跳为所述第二网络设备。
处理单元604,还用于当确定所述第一发送窗口的大小大于等于第一阈值时,将所述第二数据报文存储至所述第二存储单元中,使得所述第二数据报文进入所述第二发送窗口。
发送单元603,还用于通过所述第二隧道向所述第二网络设备发送所述第二数据报文,所述第二发送窗口通过所述第二隧道与所述第二接收窗口通信。
可选的,第一隧道的优先级高于第二隧道,所述处理单元604,还用于在所述发送单元603通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,确定所述第一发送窗口的大小小于所述第一阈值,将所述第一数据报文存储至所述第一存储单元,以使所述第一数据报文进入所述第一发送窗口。
可选的,第一确认响应为第三数据报文,第三数据报文中包括确认号字段,确认号字段中携带第一确认号。
可选的,第一确认响应为第一GRE控制报文,第一GRE控制报文包括确认报文Attribute字段属性类型长度值(即TLV)字段。具体包括属性类型Attribute Type字段,属性长度Attribute Length字段以及确认号Acknowledgement Number字段。Attribute Type字段表示确认报文Attribute字段的类型为通知已接收到数据报文的类型,Acknowledgement Number字段用于承载第一确认号。
可选的,第二网络设备还包括第三存储单元,所述第三存储单元用于存储第一接收窗口。所述接收单元605,还用于在所述发送单元603通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,接收所述第二网络设备发送的通知报文,所述通知报文用于通知所述第一接收窗口的大小,所述第一接收窗口的大小为M;
处理单元604,还用于响应于接收单元接收到通知报文,将第一发送窗口的大小设置为L,L<M,L和M均大于0。
可选的,通知报文为第二GRE控制报文,第二GRE控制报文包括窗口大小属性Window size Attribute字段,Window size Attribute字段包括Attribute Type字段,Attribute Length字段以及窗口大小Window Size字段,Attribute Type字段表示Window size Attribute字段的类型为通知窗口大小的类型,Window Size字段用于承载第一接收窗口的大小。
可选的,第二数据报文中携带第二子链路编号,第二子链路编号用于表示第二数据报文在第二隧道中的序列号;
基于与图3所示的混合接入网络中处理报文的方法同一发明构思,参阅图7所示,本申请实施例还提供了一种混合接入网络中的第二网络设备700,该第二网络设备可以用于执行图3所示的方法。所述第一混合接入网络包括第一网络设备和所述第二网络设备700。所述第一网络设备和第二网络设备700之间建立有第一隧道和第二隧道,所述第一隧道和所述第二隧道通过绑定连接形成虚拟绑定隧道。所述第一网络设备包括第一存储单元和第二存储单元。所述第一存储单元用于存储第一发送窗口,所述第二存储单元用于存储第二发送窗口。所述第一网络设备具体可以是所述第一网络设备600。所述第二网络设备700包括:
接收单元701,701用于接收所述第一网络设备通过所述第一隧道发送的所述第一发送窗口中的第一数据报文,以及,接收所述第一网络设备通过所述第二隧道发送的所述第二发送窗口中的第二数据报文;
第一数据报文中携带第一子链路编号和第一全局编号,第一子链路编号用于表示第一数据报文在第一隧道中的序列号,第一全局编号表示第一数据报文在虚拟绑定隧道中的序列号。第二数据报文中携带第二子链路编号和第二全局编号,第二子链路编号用于表示第二数据报文在第二隧道中的序列号,第二全局编号用于表示第二数据报文在虚拟绑定隧道中的序列号。
处理单元702,用于将第一数据报文和第二数据报文存储到排序缓存,根据第一全局编号和第二全局编号对第一数据报文和第二数据报文进行排序;
发送单元703,用于在所述处理单元702将所述第一数据报文存储到所述排序缓存后,向所述第一网络设备发送第一确认响应,以使得所述第一网络设备收到所述第一确认响应后,按照第一比例增加所述第一发送窗口的大小。所述第一确认响应中携带第一确认号,所述第一确认号是根据所述第一子链路编号得到的。所述第一确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文。
发送单元703,还用于在所述处理单元702将所述第二数据报文存储至所述排序缓存后,向所述第一网络设备发送第二确认响应,以使得所述第一网络设备在收到所述第二确认响应后,按照第三比例增加所述第二发送窗口的大小。所述第二确认响应中携带第二确认号,所述第二确认号是根据所述第二子链路编号得到的。所述第二确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第二数据报文。
可选的,第一确认响应为第三数据报文,第三数据报文中包括确认号字段,确认号字段中携带第一确认号。
可选的,第一确认响应为第一GRE控制报文,第一GRE控制报文包括确认报文属性Attribute字段。确认报文Attribute字段包括属性类型Attribute Type字段,属性长度Attribute Length字段以及确认号Acknowledgement Number字段。Attribute Type字段表示确认报文Attribute字段的类型为通知已接收到数据报文的类型。Acknowledgement Number字段用于承载第一确认号。
可选的,发送单元703还用于:
在接收单元701接收第一网络设备通过第一隧道发送的第一发送窗口中的第一数据报文之前,向第一网络设备发送第一通知报文。第一通知报文用于通知第一接收窗口的大小,第一接收窗口的大小用于第一网络设备设置第一发送窗口的大小。在接收 单元701接收第一网络设备通过第二隧道发送的第二发送窗口中的第二数据报文之前,向第一网络设备发送第二通知报文。第二通知报文用于通知第二接收窗口的大小,第二接收窗口的大小用于第二网络设备设置第一发送窗口的大小,
可选的,第一通知报文为第二GRE控制报文,第二通知报文为第四GRE控制报文,第二GRE控制报文包括窗口大小属性Window size Attribute TLV字段和第四GRE控制报文包括窗口大小属性Window size Attribute TLV字段,第二GRE控制报文中的Window size Attribute TLV字段用于承载第一接收窗口的大小;第四GRE控制报文中的Window size Attribute TLV字段用于承载第二接收窗口的大小。
所述第一存储单元,第二存储单元,第三存储单元可以是缓存。
基于与图3所示的混合接入网络中处理报文的方法同一发明构思,参阅图8所示,本申请实施例还提供了一种混合接入网络中的第一网络设备800,该第一网络设备800可用于执行图3所示的方法。其中,第一网络设备800包括收发器801、处理器802、存储器803和总线804,处理器802以及存储器803之间通过总线804系统相连,处理器802用于执行存储器803中的代码,当代码被执行时,该执行使得处理器执行以下操作:
通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备,所述第一数据报文中携带第一子链路编号,所述第一子链路编号用于表示所述第一数据报文在所述第一隧道中的序列号;
响应于接收到所述第二网络设备发送的第一确认响应,按照第一比例增加所述第一发送窗口的大小,所述第一确认响应中携带第一确认号,所述第一确认号是根据所述第一子链路编号得到的,所述第一确认号用于表征所述第二网络设备已经收到所述第一数据报文;
响应于在第一预定时间内未接收到所述第二网络设备发送的所述第一确认响应,按照第二比例减小所述第一发送窗口的大小,所述第二比例大于所述第一比例;
接收第二数据报文,到达所述第二数据报文的目的地址的下一跳为所述第二网络设备;
当确定所述第一发送窗口的大小大于等于第一阈值时,将所述第二数据报文存储至所述第二缓存,所述第二数据报文进入所述第二发送窗口,所述第一网络设备通过所述第二隧道向所述第二网络设备发送所述第二数据报文。
可选的,第一隧道的优先级高于第二隧道,处理器802还用于:
通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,确定所述第一发送窗口的大小小于所述第一阈值,所述第一网络设备将所述第一数据报文存储至所述第一缓存,所述第一数据报文进入所述第一发送窗口。
可选的,处理器802还用于,通过收发器801将第一发送窗口中的第一数据报文发送到第二网络设备之前,通过收发器801接收第二网络设备发送的通知报文。该通知报文用于通知第一接收窗口的大小,第一接收窗口的大小为M;响应于收发器801接收到通知报文,将第一发送窗口的大小设置为L,L<M,L和M均大于0。
处理器802还用于在收发器801通过第二隧道向第二网络设备的发送第二数据报文之后,响应于接收到第二网络设备发送的第二确认响应,按照第三比例增加第二发 送窗口的大小。第二确认响应中携带第二确认号,第二确认号与第二子链路编号互为映射,第二确认响应用于通知第一网络设备第二网络设备已经收到第二数据报文。以及响应于在第二预定时间内未接收到第二网络设备发送的第二确认响应,按照第四比例减小第二发送窗口的大小,第四比例大于第三比例。
处理器802可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
处理器802还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic array logic,缩写:GAL)或其任意组合。
存储器803可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器803也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器803还可以包括上述种类的存储器的组合。
基于与图3所示的混合接入网络中处理报文的方法同一发明构思,参阅图9所示,本申请实施例还提供了一种混合接入网络中的第二网络设备900,该第二网络设备900可用于执行图3所示的方法。其中,第二网络设备900包括收发器901、处理器902,存储器903和总线904,处理器902以及存储器903之间通过总线904相连,处理器902用于执行存储器中903的代码,当代码被执行时,该执行使得处理器执行以下操作:
接收所述第一网络设备通过所述第一隧道发送的所述第一发送窗口中的第一数据报文,所述第一数据报文中携带第一子链路编号和第一全局编号,所述第一子链路编号用于表示所述第一数据报文在所述第一隧道中的序列号,所述第一全局编号表示所述第一数据报文在所述虚拟绑定隧道中的序列号;所述第二网络设备接收所述第一网络设备通过所述第二隧道发送的所述第二发送窗口中的第二数据报文,所述第二数据报文中携带第二子链路编号和第二全局编号,所述第二子链路编号用于表示所述第二数据报文在所述第二隧道中的序列号,所述第二全局编号用于表示所述第二数据报文在所述虚拟绑定隧道中的序列号;所述第二网络设备将所述第一数据报文和所述第二数据报文存储到所述排序缓存,根据所述第一全局编号和所述第二全局编号对所述第一数据报文和所述第二数据报文进行排序;
响应于所述第二网络设备将所述第一数据报文存储至所述排序缓存后,所述第二网络设备向所述第一网络设备发送第一确认响应,以使得所述第一网络设备收到所述第一确认响应后,按照第一比例增加所述第一发送窗口的大小,所述第一确认响应中携带第一确认号,所述第一确认号是根据所述第一子链路编号得到的,所述第一确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文;
响应于所述第二网络设备将所述第二数据报文存储至所述排序缓存后,所述第二 网络设备向所述第一网络设备发送所述第二确认响应,以使得所述第一网络设备在收到所述第二确认响应后,按照第三比例增加所述第二发送窗口的大小,所述第二确认响应中携带第二确认号,所述第二确认号是根据所述第二子链路编号得到的,所述第二确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第二数据报文。
可选的,第一确认响应为第三数据报文,第三数据报文中包括确认号字段,确认号字段中携带第一确认号。
可选的,第一确认响应为第一GRE控制报文,第一GRE控制报文包括确认报文属性Attribute字段,确认报文Attribute字段包括属性类型Attribute Type字段,属性长度Attribute Length字段以及确认号Acknowledgement Number字段,Attribute Type字段表示确认报文Attribute字段的类型为通知已接收到数据报文的类型,Acknowledgement Number字段用于承载第一确认号。
可选的,处理器902还用于:
在通过第一隧道接收第一网络设备发送的第一发送窗口中的第一数据报文之前,向第一网络设备发送第一通知报文,第一通知报文用于通知第一接收窗口的大小,第一接收窗口的大小用于第一网络设备设置第一发送窗口的大小。通过第二隧道接收第一网络设备发送的第二发送窗口中的第二数据报文之前,向第一网络设备发送第二通知报文,第二通知报文用于通知第二接收窗口的大小,第二接收窗口的大小用于第一网络设备设置第二发送窗口的大小。
可选的,第一通知报文为第二GRE控制报文,第二通知报文为第四GRE控制报文,第二GRE控制报文包括窗口大小属性Window size Attribute TLV字段和第四GRE控制报文包括窗口大小属性Window size Attribute TLV字段,第二GRE控制报文中的Window size Attribute TLV字段用于承载第一接收窗口的大小;第四GRE控制报文中的Window size Attribute TLV字段用于承载第二接收窗口的大小。
处理器902可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
处理器902还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic array logic,缩写:GAL)或其任意组合。
存储器903可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器903也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器903还可以包括上述种类的存储器的组合。
需要说明的是,图6-7提供的装置,可用于实现图3所示的方法。一个具体的实现方式中,图6中的处理单元604可以用图8中的处理器802实现,发送单元603、接收单元605均可以由图8中的收发器801实现。图7中的处理单元702可以用图9 中的处理器902实现,接收单元701和发送单元703均可以由图9中收发器901的实现。
本申请还提供了一种通信系统,包括第一网络设备和第二网络设备,第一网络设备可以是图6、图8对应的实施例所提供的设备。第二网络设备可以是图7、图9对应的实施例所提供的设备。所述通信系统用于执行图3对应的实施例的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (13)

  1. 一种混合接入网络中处理报文的方法,其特征在于,所述混合接入网络包括第一网络设备和第二网络设备,所述第一网络设备和第二网络设备之间建立有第一隧道和第二隧道,所述第一网络设备包括第一缓存和第二缓存,所述第一缓存用于存储第一发送窗口,所述第二缓存用于存储第二发送窗口,所述方法包括:
    所述第一网络设备通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备,所述第一数据报文中携带第一子链路编号,所述第一子链路编号用于表示所述第一数据报文在所述第一隧道中的序列号;
    响应于接收到所述第二网络设备发送的第一确认响应,所述第一网络设备按照第一比例增加所述第一发送窗口的大小,所述第一确认响应中携带第一确认号,所述第一确认号是根据所述第一子链路编号得到的,所述第一确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文;
    响应于在第一预定时间内未接收到所述第二网络设备发送的所述第一确认响应,所述第一网络设备按照第二比例减小所述第一发送窗口的大小,所述第二比例大于所述第一比例;
    所述第一网络设备接收第二数据报文,到达所述第二数据报文的目的地址的下一跳为所述第二网络设备;
    响应于确定所述第一发送窗口的大小大于等于第一阈值,所述第一网络设备将所述第二数据报文存储至所述第二缓存,所述第二数据报文进入所述第二发送窗口,所述第一网络设备通过所述第二隧道向所述第二网络设备发送所述第二数据报文。
  2. 如权利要求1所述的方法,其特征在于,所述第一隧道的优先级高于所述第二隧道,其中,
    所述第一网络设备通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,所述方法还包括:
    所述第一网络设备确定所述第一发送窗口的大小小于所述第一阈值,所述第一网络设备将所述第一数据报文存储至所述第一缓存,所述第一数据报文进入所述第一发送窗口。
  3. 如权利要求1或2所述的方法,其特征在于:所述第一确认响应为第三数据报文,所述第三数据报文中包括确认号字段,所述确认号字段中携带所述第一确认号;或者,
    所述第一确认响应为第一GRE控制报文,所述第一GRE控制报文包括确认报文属性类型长度值Attribute TLV字段,所述确认报文Attribute TLV字段用于承载所述第一确认号。
  4. 如权利要求1~3任一项所述的方法,其特征在于,所述第二网络设备包括第三缓存,所述第三缓存用于存储第一接收窗口,所述第一网络设备通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,所述方法还包括:
    所述第一网络设备接收所述第二网络设备发送的通知报文,所述通知报文用于通知所述第一接收窗口的大小,所述第一接收窗口的大小为M;
    响应于接收到所述通知报文,所述第一网络设备将所述第一发送窗口的大小设置 为L,L<M,L和M均大于0。
  5. 如权利要求4所述的方法,其特征在于,所述通知报文为第二GRE控制报文,所述第二GRE控制报文包括窗口大小属性Window size Attribute TLV字段,所述Window size Attribute TLV字段用于承载所述第一接收窗口的大小。
  6. 一种混合接入网络中处理报文的方法,其特征在于,所述混合接入网络包括第一网络设备和第二网络设备,所述第一网络设备和第二网络设备之间建立有第一隧道和第二隧道,所述第一隧道和所述第二隧道通过绑定连接形成虚拟绑定隧道,所述第一网络设备包括第一缓存和第二缓存,所述第一缓存用于存储第一发送窗口,所述第二缓存用于存储第二发送窗口,所述第二网络设备中包括排序缓存,所述方法包括:
    所述第二网络设备接收所述第一网络设备通过所述第一隧道发送的所述第一发送窗口中的第一数据报文,所述第一数据报文中携带第一子链路编号和第一全局编号,所述第一子链路编号用于表示所述第一数据报文在所述第一隧道中的序列号,所述第一全局编号表示所述第一数据报文在所述虚拟绑定隧道中的序列号;所述第二网络设备接收所述第一网络设备通过所述第二隧道发送的所述第二发送窗口中的第二数据报文,所述第二数据报文中携带第二子链路编号和第二全局编号,所述第二子链路编号用于表示所述第二数据报文在所述第二隧道中的序列号,所述第二全局编号用于表示所述第二数据报文在所述虚拟绑定隧道中的序列号;所述第二网络设备将所述第一数据报文和所述第二数据报文存储到所述排序缓存,根据所述第一全局编号和所述第二全局编号对所述第一数据报文和所述第二数据报文进行排序;
    响应于第二网络设备将所述第一数据报文存储到所述排序缓存,所述第二网络设备向所述第一网络设备发送第一确认响应,以使得所述第一网络设备收到所述第一确认响应后,按照第一比例增加所述第一发送窗口的大小,所述第一确认响应中携带第一确认号,所述第一确认号是根据所述第一子链路编号得到的,所述第一确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文;
    响应于第二网络设备将所述第一数据报文存储到所述排序缓存,所述第二网络设备向所述第一网络设备发送所述第二确认响应,以使得所述第一网络设备在收到所述第二确认响应后,按照第三比例增加所述第二发送窗口的大小,所述第二确认响应中携带第二确认号,所述第二确认号是根据所述第二子链路编号得到的,所述第二确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第二数据报文。
  7. 一种混合接入网络中的第一网络设备,其特征在于,所述混合接入网络包括第一网络设备和第二网络设备,所述第一网络设备和第二网络设备之间建立有第一隧道和第二隧道,所述第一网络设备包括:第一存储单元,用于存储第一发送窗口;
    第二存储单元,用于存储第二发送窗口;
    发送单元,用于通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备,所述第一数据报文中携带第一子链路编号,所述第一子链路编号用于表示所述第一数据报文在所述第一隧道中的序列号;
    处理单元,用于响应于接收到所述第二网络设备发送的第一确认响应,按照第一比例增加所述第一发送窗口的大小,所述第一确认响应携带第一确认号,所述第一确认号是根据所述第一子链路编号得到的,所述第一确认号用于指示所述第一网络设备 所述第二网络设备已经收到所述第一数据报文;
    所述处理单元,还用于响应于在第一预定时间内未接收到所述第二网络设备发送的所述第一确认响应,按照第二比例减小所述第一发送窗口的大小,所述第二比例大于所述第一比例;
    接收单元,用于接收第二数据报文,到达所述第二数据报文的目的地址的下一跳为所述第二网络设备;
    所述处理单元,还用于响应于确定所述第一发送窗口的大小大于等于第一阈值,将所述第二数据报文存储至所述第二存储单元中,使得所述第二数据报文进入所述第二发送窗口;
    所述发送单元,还用于通过所述第二隧道向所述第二网络设备发送所述第二数据报文。
  8. 如权利要求7所述的第一网络设备,其特征在于,所述第一隧道的优先级高于所述第二隧道,
    所述处理单元,还用于在所述发送单元通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,确定所述第一发送窗口的大小小于所述第一阈值,将所述第一数据报文存储至所述第一存储单元,以使所述第一数据报文进入所述第一发送窗口。
  9. 如权利要求7或8所述的第一网络设备,其特征在于,所述第一确认响应为第三数据报文,所述第三数据报文中包括确认号字段,所述确认号字段中携带所述第一确认号;或者,
    所述第一确认响应为第一GRE控制报文,所述第一GRE控制报文包括确认报文属性类型长度值Attribute TLV字段,所述确认报文Attribute TLV字段用于承载所述第一确认号。
  10. 如权利要求7~9任一项所述的第一网络设备,其特征在于,所述第二网络设备包括第三存储单元,所述第三存储单元用于存储第一接收窗口,所述接收单元,还用于在所述发送单元通过所述第一隧道将所述第一发送窗口中的第一数据报文发送给所述第二网络设备之前,接收所述第二网络设备发送的通知报文,所述通知报文用于通知所述第一接收窗口的大小,所述第一接收窗口的大小为M;
    所述处理单元,还用于响应于所述接收单元接收到所述通知报文,将所述第一发送窗口的大小设置为L,L<M,L和M均大于0。
  11. 如权利要求10所述的第一网络设备,其特征在于,所述通知报文为第二GRE控制报文,所述第二GRE控制报文包括窗口大小属性Window size Attribute TLV字段,所述Window size Attribute TLV字段用于承载所述第一接收窗口的大小。
  12. 一种混合接入网络中的第二网络设备,其特征在于,所述混合接入网络包括第一网络设备和第二网络设备,所述第一网络设备和第二网络设备之间建立有第一隧道和第二隧道,所述第一隧道和所述第二隧道通过绑定连接形成虚拟绑定隧道,所述第一网络设备包括第一存储单元和第二存储单元,所述第一存储单元用于存储第一发送窗口,所述第二存储单元用于存储第二发送窗口,所述第二网络设备包括:接收单元,用于接收所述第一网络设备通过所述第一隧道发送的所述第一发送窗口中的第一 数据报文,所述第一数据报文中携带第一子链路编号和第一全局编号,所述第一子链路编号用于表示所述第一数据报文在所述第一隧道中的序列号,所述第一全局编号表示所述第一数据报文在所述虚拟绑定隧道中的序列号;
    所述接收单元,还用于接收所述第一网络设备通过所述第二隧道发送的所述第二发送窗口中的第二数据报文,所述第二数据报文中携带第二子链路编号和第二全局编号,所述第二子链路编号用于表示所述第二数据报文在所述第二隧道中的序列号,所述第二全局编号用于表示所述第二数据报文在所述虚拟绑定隧道中的序列号;
    处理单元,用于将所述第一数据报文和所述第二数据报文存储到排序缓存,根据所述第一全局编号和所述第二全局编号对所述第一数据报文和所述第二数据报文进行排序;
    发送单元,用于在所述处理单元将所述第一数据报文存储到所述排序缓存,向所述第一网络设备发送第一确认响应,以使得所述第一网络设备收到所述第一确认响应后,按照第一比例增加所述第一发送窗口的大小,所述第一确认响应中携带第一确认号,所述第一确认号是根据所述第一子链路编号得到的,所述第一确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第一数据报文;
    所述发送单元还用于在所述处理单元将所述第二数据报文存储到所述排序缓存,向所述第一网络设备发送第二确认响应,以使得所述第一网络设备在收到所述第二确认响应后,按照第三比例增加所述第二发送窗口的大小,所述第二确认响应中携带第二确认号,所述第二确认号是根据所述第二子链路编号得到的,所述第二确认号用于指示所述第一网络设备所述第二网络设备已经收到所述第二数据报文。
  13. 一种通信系统,包括权利要求7~11任一项所述的第一网络设备以及如权利要求12所述的第二网络设备。
PCT/CN2017/099335 2016-11-04 2017-08-28 一种混合接入网络中处理报文的方法及网络设备 WO2018082382A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP17868190.4A EP3531620B1 (en) 2016-11-04 2017-08-28 Method for processing message in hybrid access network, and network device
EP21160792.4A EP3896909B1 (en) 2016-11-04 2017-08-28 Packet processing method and network device in hybrid access network
US16/403,237 US10778469B2 (en) 2016-11-04 2019-05-03 Packet processing method and network device in hybrid access network
US17/009,587 US11570021B2 (en) 2016-11-04 2020-09-01 Packet processing method and network device in hybrid access network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610977391.1A CN108023758B (zh) 2016-11-04 2016-11-04 一种混合接入网络中处理报文的方法及网络设备
CN201610977391.1 2016-11-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/403,237 Continuation US10778469B2 (en) 2016-11-04 2019-05-03 Packet processing method and network device in hybrid access network

Publications (1)

Publication Number Publication Date
WO2018082382A1 true WO2018082382A1 (zh) 2018-05-11

Family

ID=62076640

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/099335 WO2018082382A1 (zh) 2016-11-04 2017-08-28 一种混合接入网络中处理报文的方法及网络设备

Country Status (4)

Country Link
US (2) US10778469B2 (zh)
EP (2) EP3896909B1 (zh)
CN (2) CN111769968A (zh)
WO (1) WO2018082382A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3860013A4 (en) * 2018-10-19 2022-03-02 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR PROCESSING MESSAGES

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108712348A (zh) * 2018-05-18 2018-10-26 王逸人 流量控制方法、系统、设备及计算机可读存储介质
CN110505163B (zh) * 2018-05-18 2021-08-20 华为技术有限公司 传输报文的方法和装置
EP3629505A1 (en) * 2018-09-25 2020-04-01 Panasonic Intellectual Property Corporation of America User equipment and base station involved in transmission of data
EP3920491B1 (en) * 2019-02-01 2023-11-01 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Service processing method, device and computer readable storage medium
CN111865741B (zh) * 2019-04-24 2022-03-01 瑞昱半导体股份有限公司 数据传输方法及数据传输系统
US11228962B2 (en) * 2019-09-10 2022-01-18 The Boeing Company Asymmetric neighbor cache entries for route enhancement in multilink communications
CN114008952A (zh) * 2019-09-23 2022-02-01 Oppo广东移动通信有限公司 一种窗口调整方法及装置、网络设备、终端设备
CN112787919B (zh) * 2020-06-03 2022-07-15 中兴通讯股份有限公司 报文传输方法及设备、可读介质
US11245608B1 (en) * 2020-09-11 2022-02-08 Juniper Networks, Inc. Tunnel processing distribution based on traffic type and learned traffic processing metrics
US11936566B2 (en) * 2020-12-18 2024-03-19 Dish Wireless L.L.C. Intelligent router bonding 5G telephony and digital subscriber line services
CN113301605B (zh) * 2021-05-18 2023-03-24 成都欧珀通信科技有限公司 消息传输方法、系统及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130272293A1 (en) * 2012-04-13 2013-10-17 Itron, Inc. Hybrid access protocol for network nodes
CN105207858A (zh) * 2014-06-16 2015-12-30 华为技术有限公司 接入装置及其执行的将用户设备接入网络的方法
CN105376173A (zh) * 2014-09-02 2016-03-02 中兴通讯股份有限公司 一种发送窗口流量控制方法和终端
CN105657748A (zh) * 2016-03-16 2016-06-08 华为技术有限公司 基于隧道绑定的通信方法和网络设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035214B1 (en) * 1999-09-28 2006-04-25 Nortel Networks Limited System and method for a negative acknowledgement-based transmission control protocol
US7146428B2 (en) * 2001-12-12 2006-12-05 At&T Corp. Secure in-band signaling method for mobility management crossing firewalls
EP1383281A1 (en) * 2002-07-19 2004-01-21 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method for calculating a transmission window size
US7869395B2 (en) * 2005-09-30 2011-01-11 Research In Motion Limited Methods and apparatus for dynamically adjusting a data packet window size for data packet transmission in a wireless communication network
US7787372B2 (en) * 2005-12-12 2010-08-31 Viasat, Inc. Transmission control protocol with performance enhancing proxy for degraded communication channels
FR2919778A1 (fr) * 2007-07-30 2009-02-06 Canon Kk Procede de transmission de paquets de donnees dans un tunnel, produit programme d'ordinateur, moyen de stockage et tete de tunnel correspondants
FR2929789B1 (fr) * 2008-04-08 2010-04-30 Canon Kk Procede de gestion de mecanismes d'amelioration de transmission de flux de donnees sur un tunnel, produit programme d'ordinateur, moyen de stockage et tete de tunnel correspondants
US8340099B2 (en) * 2009-07-15 2012-12-25 Microsoft Corporation Control of background data transfers
US8576711B1 (en) * 2010-09-28 2013-11-05 Google Inc. System and method for reducing latency via client side dynamic acknowledgements
US20140223072A1 (en) * 2013-02-07 2014-08-07 Lsi Corporation Tiered Caching Using Single Level Cell and Multi-Level Cell Flash Technology
EP3007454A4 (en) * 2013-06-05 2016-06-01 Panasonic Ip Corp America DATA DECODING METHOD, DATA DECODING DEVICE AND DATA TRANSMISSION METHOD
CN103490972B (zh) * 2013-09-27 2016-06-22 迈普通信技术股份有限公司 多链路隧道报文传输方法及系统
JP6164056B2 (ja) * 2013-11-12 2017-07-19 富士通株式会社 通信システム、送信装置、中継装置及び通信方法
US9538264B2 (en) * 2014-08-07 2017-01-03 Ciena Corporation ODUflex resizing systems and methods
KR102298991B1 (ko) * 2015-05-22 2021-09-07 삼성전자 주식회사 무선 통신 시스템에서 버퍼 관리 방법 및 장치
US20170126845A1 (en) * 2015-10-29 2017-05-04 VTX Holdings (Singapore) Pte. Ltd. Network communication system
US10425339B2 (en) * 2016-10-24 2019-09-24 Cisco Technology, Inc. Multi-homed load-balanced rate-based tunnels

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130272293A1 (en) * 2012-04-13 2013-10-17 Itron, Inc. Hybrid access protocol for network nodes
CN105207858A (zh) * 2014-06-16 2015-12-30 华为技术有限公司 接入装置及其执行的将用户设备接入网络的方法
CN105376173A (zh) * 2014-09-02 2016-03-02 中兴通讯股份有限公司 一种发送窗口流量控制方法和终端
CN105657748A (zh) * 2016-03-16 2016-06-08 华为技术有限公司 基于隧道绑定的通信方法和网络设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LEYMANN N. : "GRE tunnel bonding", IETF INTERNET DRAFT, 6 July 2015 (2015-07-06), pages 5-12, XP015107539 *
See also references of EP3531620A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3860013A4 (en) * 2018-10-19 2022-03-02 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR PROCESSING MESSAGES
US11888960B2 (en) 2018-10-19 2024-01-30 Huawei Technologies Co., Ltd. Packet processing method and apparatus

Also Published As

Publication number Publication date
EP3896909B1 (en) 2023-07-26
CN111769968A (zh) 2020-10-13
EP3531620A4 (en) 2019-11-13
US11570021B2 (en) 2023-01-31
EP3531620A1 (en) 2019-08-28
EP3531620B1 (en) 2021-04-07
CN108023758A (zh) 2018-05-11
US10778469B2 (en) 2020-09-15
US20190260609A1 (en) 2019-08-22
US20200403827A1 (en) 2020-12-24
CN108023758B (zh) 2020-06-02
EP3896909A1 (en) 2021-10-20

Similar Documents

Publication Publication Date Title
WO2018082382A1 (zh) 一种混合接入网络中处理报文的方法及网络设备
US11190451B2 (en) Packet transmission method and network device
CN110944358B (zh) 数据传输方法和设备
JP6024318B2 (ja) 無線lan基地局、無線lan端末、及びパケット転送方法
KR102267116B1 (ko) 패킷 전송 방법, 프록시 서버 및 컴퓨터 판독가능 저장 매체
CN107770085B (zh) 一种网络负载均衡方法、设备及系统
WO2019179157A1 (zh) 一种数据流量处理方法及相关网络设备
WO2018027674A1 (zh) 传输状态报告装置、方法以及通信系统
EP3007389B1 (en) Gre tunnel implementation method, access point and gateway
CN113645189B (zh) 一种通信方法、网络节点、存储介质及系统芯片
CN113938431B (zh) 突发数据包传输方法、装置和电子设备
US10999210B2 (en) Load sharing method and network device
WO2019085920A1 (zh) 信息传输方法和通信设备
CN111641565A (zh) 一种以太网报文的传输方法、装置及系统
WO2018202204A1 (zh) 一种基于反转服务流特性的通信方法及装置
WO2022155924A1 (zh) 无线通信方法、终端设备和网络设备

Legal Events

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

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017868190

Country of ref document: EP

Effective date: 20190521