WO2019105317A1 - 一种业务报文发送的方法、网络设备和*** - Google Patents

一种业务报文发送的方法、网络设备和*** Download PDF

Info

Publication number
WO2019105317A1
WO2019105317A1 PCT/CN2018/117367 CN2018117367W WO2019105317A1 WO 2019105317 A1 WO2019105317 A1 WO 2019105317A1 CN 2018117367 W CN2018117367 W CN 2018117367W WO 2019105317 A1 WO2019105317 A1 WO 2019105317A1
Authority
WO
WIPO (PCT)
Prior art keywords
network device
service
tcp
packet
priority
Prior art date
Application number
PCT/CN2018/117367
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 EP18883666.2A priority Critical patent/EP3709602A4/en
Publication of WO2019105317A1 publication Critical patent/WO2019105317A1/zh
Priority to US16/886,218 priority patent/US11258717B2/en

Links

Images

Classifications

    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Definitions

  • the present invention relates to the field of communications, and in particular, to a method, a network device, and a system for sending a service packet.
  • Transmission Control Protocol is a connection-oriented, reliable transport layer communication protocol.
  • TCP Transmission Control Protocol
  • the network device may be in the process of packet loss.
  • the service requirements of the TCP bearer (such as the throughput rate) are not met, which seriously affects the user experience.
  • the video service is interrupted. .
  • the present invention provides a method, a network device, and a system for sending a service packet, and obtains a TCP window based on the priority of the service, so that the size of the service packet sent by the sender is flexibly controlled, and the service packet transmission is satisfied. Reduce the loss of service packets while reducing demand.
  • the embodiment of the present invention provides a method for sending a service packet, where the method includes: the first network device receives a TCP packet sent by the second network device, where the TCP packet includes a service identifier; and the first network device The priority of the service corresponding to the service identifier is determined according to the service identifier.
  • the first network device obtains a TCP window according to the priority of the service; the first network device sends a first TCP ACK message to the second network device, where the first TCP ACK message includes the TCP window, and the TCP window is used for the second network device calculation The size of the service packet sent to the first network device.
  • the first network device obtains the priority of the service according to the service identifier in the TCP packet, and then obtains the TCP window according to the priority of the service. Since the obtained TCP window of the first network device is determined based on the service priority, different transmission requirements of different priority services can be satisfied, so that the size of the message sent by the sender can be flexibly controlled. For example, for low-priority services, the TCP window can be selected to be smaller. For high-priority services, the TCP window can be selected to be larger, so that it can meet the needs of different services and can also make full use of it. Network resources, reducing packet loss of service packets.
  • the first network device sends the TCP packet to the third network device, and the first network device receives the second TCP ACK packet sent by the third network device, where the first network device updates with the TCP window.
  • the TCP window in the second TCP ACK packet generates a first TCP ACK packet.
  • the first network device acts as an intermediate device of the TCP service packet transmission path, and actively intercepts the TCP packet, and calculates the TCP window according to the priority of the service, and replaces the TCP window with the TCP sent by the service packet receiving end.
  • the TCP window in the ACK packet can flexibly control the size of the service packet sent by the sender.
  • the service requirement information of the service is obtained, and the TCP window is calculated according to the service requirement information.
  • the service corresponding to the first priority is a high-priority service, and the priority of the service is the first priority, indicating that the service is a high-priority service.
  • the first network device when the first network device determines that the priority of the service is the first priority, the first network device sends the service identifier to the controller, and the receiving controller calculates the service requirement information according to the service. TCP window.
  • the service requirement information includes a throughput rate
  • the throughput rate is used to identify the traffic of the corresponding service that needs to be transmitted by the first network device in a unit time
  • the first network device is configured according to the throughput rate and the cache of the first network device.
  • the TCP window is calculated by the size of the occupied cache.
  • the first network device calculates the TCP window according to the service requirement information, so as to accurately ensure the transmission requirement of the service, and obtain different TCP windows for different services, thereby flexibly controlling the size of the service packet sent by the sender.
  • the bandwidth resources are constant, you can flexibly adjust the bandwidth usage of different services and reduce packet loss.
  • the TCP window is calculated according to the occupied condition of the cache of the first network device, which can provide more accurate service transmission guarantee for the forwarded service.
  • the TCP window is calculated using the following formula:
  • Throughput is the throughput rate included in the service demand information
  • B is the size of the cache of the first network device, including the size of the occupied cache and the size of the unoccupied cache;
  • currentB is the size of the cache occupied by the first network device cache
  • C is a rate at which the first network device reads the queue from the cache, or when the first network device transmits the service packet
  • C is the sending rate of the outbound interface of the service packet sent by the first network device
  • Window is the TCP window that needs to be calculated.
  • the first network device can calculate the range of a TCP window by using the above formula.
  • the TCP window in this range is capable of satisfying the throughput rate of the service, and the TCP window can be flexibly adjusted.
  • a certain threshold for example, 80%
  • a smaller value in the range calculated by the TCP window for the above formula may be selected, if the cache occupancy of the first network device is lower than a specific
  • the threshold value for example, 40%, can select a larger value in the range calculated by the TCP window for the above formula, so that the TCP window can be flexibly adjusted to meet the service transmission requirement, and the cache of the first network device is prevented from being excessively occupied and reduced. Packet loss of service packets.
  • the first network device calculates the TCP window using the following formula:
  • Throughput is the throughput rate
  • B is the size of the cache of the first network device
  • currentB is the size of the cache occupied by the first network device cache
  • C is a rate at which the first network device reads the queue from the cache, or when the first network device transmits the service packet
  • C is the sending rate of the outbound interface of the service packet sent by the first network device
  • Window is the TCP window that needs to be calculated
  • ⁇ t is a processing delay of the first network device processing the service packet in the cache, or when the first network device is ⁇ t is the transmission delay of the outbound interface that the first network device sends the service packet when the intermediate device on the service packet transmission path is described.
  • the first network device when the first network device calculates the TCP window, the first network device also uses the sending delay of the outbound interface of the first network device to send the service packet, or processes the processing of the service packet in the occupied cache for the first network device.
  • the delay is such that the range of the TCP window is calculated more accurately.
  • the sending delay of the outbound interface of the first network device to send the service packet is large, or the processing delay of the service packet in the occupied cache is large, the calculated TCP window is calculated. The scope will be more precise, so that it can more accurately meet the needs of the user's business.
  • the TCP window calculated using the above formula also satisfies the formula: window ⁇ B-currentB. Since the first network device calculates the TCP window, the remaining cache of the first network device is B-currentB, so the first network device can only store at most the message of the remaining cache size, and uses this formula as a supplement to calculate the TCP window. , can reduce the loss of business messages to a certain extent.
  • the first network device sends the service identifier to a controller that stores the correspondence between the service identifier and the service requirement information.
  • the controller obtains the service requirement information according to the service identifier and the corresponding relationship, and sends the service requirement information to the first network device, where the first network device receives the service requirement information sent by the controller.
  • the first network device directly stores the correspondence between the service identifier and the service requirement information; the first network device obtains the service requirement information from the correspondence by using the service identifier.
  • the service requirement of the service is obtained.
  • the TCP window is calculated according to the service requirement information, thereby avoiding frequent calculation of the TCP window and causing excessive network resources. Occupied.
  • the first network device obtains the TCP window according to the priority of the service, including:
  • the TCP window takes a value of 0, or sets a TCP window. Is a smaller value. The value of the smaller value is as long as the service can be guaranteed to be uninterrupted.
  • the second priority is lower than the first priority, and the service corresponding to the second priority is a low priority service.
  • the TCP window takes a value of 0, or a smaller value, so that the low can be appropriately suppressed.
  • Priority packet service packets are sent to reduce packet loss, and further resources can be reserved for transmission of high-priority services.
  • the first network device determines that the priority of the service is the first priority, and the cache occupied by the cache of the first network device is greater than or equal to the second threshold, the first network device The service identifier is sent to the controller, and the first network device receives the TCP window calculated by the controller according to the service requirement information of the service. Since the controller centrally controls the devices in the network, the controller stores the demand information of the services. Therefore, it is more flexible for the controller to calculate the TCP window mode for the managed network devices.
  • the method further includes: receiving, by the first network device, a flow table sent by the controller, where the flow table is used to direct the first network device to send the first TCP ACK message to the second network device;
  • the network device adds a TCP window to the flow table.
  • the first network device sends the first TCP ACK message to the second network device
  • the first network device obtains a TCP window from the flow table, and adds the TCP window to the first TCP.
  • the TCP window is added to the flow table.
  • the TCP window can be obtained directly from the flow table, and the first TCP ACK packet is forwarded more efficiently.
  • the method further includes: receiving, by the first network device, a service packet sent by the second network device, where a payload portion of the service packet is a TCP window, or an entire service packet.
  • the size is a TCP window.
  • the TCP packet is a TCP synchronization (SYN) packet or a TCP service packet
  • the TCP service packet carries the service packet of the user.
  • the rate at which the first network device receives the interface of the TCP service packet from the second network device is the first rate
  • the rate at which the first network device sends the TCP service packet to the third network device is The second rate
  • the first rate is greater than the second rate
  • the embodiment of the present invention provides a method for sending a service packet, where the method includes: the controller receives a service identifier sent by the first network device; and the controller determines, according to the service identifier, a priority of the service corresponding to the service identifier; The controller calculates a TCP window according to the priority of the service, and sends the TCP window to the first network device, triggering the first network device to send the TCP window to the second network device, where the TCP window is used for the second network device to calculate the first The size of the service packet sent by the network device.
  • the controller calculates the TCP window according to the priority of the service. Because the TCP window is calculated based on the service priority, the controller can meet the different requirements of different priority services, so that the size of the packet sent by the sender can be flexibly controlled. Reduce packet loss of service packets.
  • the controller determines that the priority of the service is the first priority
  • the service request information corresponding to the service is obtained according to the service identifier, and the controller calculates the TCP window according to the service requirement information.
  • the service requirement information includes a throughput rate
  • the throughput rate is used to identify the traffic of the corresponding service that needs to be transmitted by the first network device in a unit time
  • the controller calculates the TCP window according to the service requirement information, including:
  • the TCP window is calculated based on the throughput rate and the size of the occupied cache in the cache of the first network device.
  • the controller calculates the TCP window using the following formula:
  • Throughput is the throughput rate included in the service demand information
  • B is the size of the cache of the first network device, including the size of the occupied cache and the size of the unoccupied cache;
  • currentB is the size of the cache occupied by the first network device cache
  • C is a rate at which the first network device reads the queue from the cache, or when the first network device transmits the service packet
  • C is the sending rate of the outbound interface of the service packet sent by the first network device
  • Window is the TCP window that needs to be calculated.
  • the controller calculates the TCP window using the following formula:
  • Throughput is the throughput rate
  • B is the size of the cache of the first network device
  • currentB is the size of the cache occupied by the first network device cache
  • C is a rate at which the first network device reads the queue from the cache, or when the first network device transmits the service packet
  • C is the sending rate of the outbound interface of the service packet sent by the first network device
  • Window is the TCP window that needs to be calculated
  • ⁇ t is a processing delay of the first network device processing the service packet in the cache, or when the first network device is ⁇ t is the transmission delay of the outbound interface that the first network device sends the service packet when the intermediate device on the service packet transmission path is described.
  • the TCP window also satisfies the following formula:
  • the embodiment of the present invention provides a network device for sending a service packet, where the method in any one of the possible implementation manners of the first aspect or the first aspect is performed.
  • the network device comprises means for performing the method of the first aspect or any one of the possible implementations of the first aspect.
  • the embodiment of the present invention provides a controller for sending a service packet, where the method in any one of the possible implementation manners of the second aspect or the second aspect is performed.
  • the controller comprises means for performing the method of any of the possible implementations of the second aspect or the second aspect.
  • a network device comprising: a processor, a network interface, and a memory.
  • the memory may be used to store program code
  • the processor is configured to call the program code in the memory to perform the method in any of the foregoing first aspect or the first aspect of the first aspect. For details, refer to the detailed description in the method example. Let me repeat.
  • a controller comprising: a processor, a network interface, and a memory.
  • the memory may be used to store program code
  • the processor is used to call the program code in the memory to perform the method in any one of the foregoing possible implementations of the second aspect or the second aspect. For details, refer to the detailed description in the method example. Let me repeat.
  • a network device in a seventh aspect, includes: a main control board and an interface board.
  • the main control board includes: a first processor and a second memory.
  • the interface board includes: a second processor, a second memory, and an interface card.
  • the second memory is configured to store the program code, and the second processor is configured to invoke the program code in the second memory to perform the following operations: receiving the TCP message sent by the second network device, the TCP message includes the service identifier, and the service identifier is The main control board sends.
  • the first memory is configured to store the program code
  • the first processor is configured to: call the program code in the first memory to perform the following operations: receiving the service identifier sent by the interface board, and obtaining the priority of the service corresponding to the service identifier according to the service identifier; The priority of the service is obtained from the TCP window.
  • the second processor is further configured to invoke the program code in the second memory to perform an operation of: sending a TCP ACK message to the second network device, where the TCP ACK message includes a TCP window.
  • an inter-process communication (IPC) control channel is established between the main control board and the interface board.
  • IPC inter-process communication
  • the eighth aspect provides a system for sending a service packet, where the system includes a first network device and a second network device, where the second network device is configured to send a TCP packet to the first network device, where The TCP packet includes a service identifier, and receives a TCP ACK packet sent by the first network device, and calculates a size of the service packet sent to the first network device according to the TCP window in the TCP ACK packet.
  • a computer storage medium for storing computer software instructions for use in the network device or controller described above, including a program designed to perform the above aspects.
  • FIG. 1 is a schematic diagram of an application scenario according to an embodiment of the present disclosure
  • FIG. 2 is a method for establishing a connection between a device and sending a packet according to an embodiment of the present invention
  • 3A is a schematic flowchart of a method for sending a service packet according to an embodiment of the present invention
  • 3B is a schematic flowchart of a method for obtaining a priority of a service according to an embodiment of the present invention
  • 3C is a schematic flowchart of a method for obtaining a TCP window according to a service priority according to an embodiment of the present invention
  • 3D is a schematic flowchart of a method for sending a service packet according to an embodiment of the present invention
  • FIG. 4 is a schematic flowchart of a method for sending a service packet according to an embodiment of the present disclosure
  • FIG. 5 is a schematic structural diagram of a first network device according to an embodiment of the present disclosure.
  • FIG. 6 is a schematic structural diagram of a first network device according to an embodiment of the present disclosure.
  • FIG. 7 is a schematic structural diagram of a first network device according to an embodiment of the present disclosure.
  • FIG. 8 is a schematic structural diagram of a first network device according to an embodiment of the present disclosure.
  • FIG. 9 is a schematic structural diagram of a controller according to an embodiment of the present disclosure.
  • FIG. 10 is a schematic structural diagram of a controller according to an embodiment of the present disclosure.
  • FIG. 11 is a schematic structural diagram of a controller according to an embodiment of the present disclosure.
  • FIG. 12 is a schematic diagram of a system for sending service packets according to an embodiment of the present invention.
  • FIG. 1 shows a possible application scenario of an embodiment of the present invention.
  • the device 101 and the device 102 are user devices, such as a mobile phone or a personal computer, and the device 103 and the device 104 are user access devices, such as an optical line terminal (OLT) or an optical network unit. (optical network unit, ONU), etc.;
  • device 105 is a forwarding device in the network, such as a router or a switch, etc.;
  • device 106 is a server in the network, such as a content delivery network (CDN) server or the like.
  • Interface 1 and interface 2 are the two physical interfaces of device 105.
  • the rate of interface 1 is higher than the rate of interface 2, for example, the rate of interface 1 is 3000 megabits per second (Mbit/s), and the rate of interface 2 is 1000 Mbit/s, if device 101 is directed to the server per unit time.
  • the service traffic can reach the device 105 through the interface 1.
  • the rate of the interface 2 is lower than the rate of the interface 1, the service traffic is accumulated on the device 105.
  • the cache of the device 105 is occupied. , there may be a problem of traffic loss.
  • traffic may be accumulated on the device 105, when the cache of the device 105 is fully occupied. , there may be a problem of traffic loss.
  • Embodiments of the present invention provide a method for transmitting a service packet and a network device and system based on the method.
  • the method can obtain the TCP window by using the service priority, so that the size of the service packet sent by the sending end can be flexibly controlled, and the packet loss of the service packet can be reduced while satisfying the transmission requirement of the service packet.
  • the method, the network device and the system are based on the same invention concept. Since the principles of the method, the network device and the system for solving the problem are similar, the implementation of the network device and the method can refer to each other, and the implementation of the system and the method can also refer to each other. The repetitions are not repeated here.
  • an embodiment of the present invention provides a method for establishing a connection and sending a message by using TCP when a service packet is transmitted between TCPs, where the sending end of FIG. 2 can be used.
  • the receiving end can be device 106 in FIG.
  • the method includes:
  • the service packet sending end sends a first SYN packet to the service packet receiving end, where the first SYN packet includes a synchronization (syn) field, and the syn field takes a value of 1.
  • the value of the syn field is 1, it indicates that the sender requests to establish a TCP connection with the receiver.
  • the first SYN packet further includes a first sequence number (SN), and the first SN value may be a random value.
  • the receiving end after receiving the first SYN packet, the receiving end sends a first TCP ACK packet to the sending end, where the first TCP ACK packet includes an ack number field, and the ack number value is the first SN plus one. .
  • the receiving end also sends a second SYN message to the sending end, where the second SYN message includes the second SN, and the second SN value may also be a random value.
  • the receiving end may send the first TCP ACK message and the second SYN message to a sending end, or the receiving end may send the first TCP ACK message and the second SYN message to the sending end respectively. .
  • the receiving end receives the first TCP ACK packet and the second SYN packet, and after determining that the ack number included in the first TCP ACK packet is 1 for the first SN, sending the second TCP ACK packet to the receiving end.
  • the value of the ack number included in the second TCP ACK packet is the second SN plus one.
  • the sending end sends a service packet to the receiving end.
  • the receiving end After receiving the service packet sent by the sending end, the receiving end sends a third TCP ACK packet to the sending end, where the third TCP ACK packet is used to indicate that the sending end has correctly received the service packet.
  • FIG. 3A illustrates a method for sending a service packet according to an embodiment of the present invention.
  • the method includes:
  • the first network device receives a TCP packet sent by the second network device, where the TCP packet includes a service identifier.
  • the first network device is the receiving end in the method shown in FIG. 2, and the second network device is the transmitting end in the method shown in FIG. 2.
  • the TCP packet may be a SYN packet sent by the second network device to the first network device during the TCP connection establishment, for example, the first SYN packet in S201 in FIG.
  • the TCP packet may be a TCP service packet sent by the second network device to the first network device after establishing a TCP connection with the first network device, for example, the service packet in S204 in FIG. .
  • the TCP service packet carries a specific service.
  • the service identifier is used to identify a service.
  • the service identifier may be a flow label (FL) or a service label.
  • the service identifier includes a destination Internet Protocol (IP) address; if multiple services are simultaneously running on the second network device, in order to distinguish different services, The service identifier includes a destination IP address and a destination port number (Port), or the service identifier includes a destination IP address, a destination port number, a source IP address, and a source port number.
  • IP Internet Protocol
  • the first network device determines, according to the service identifier, a priority of the service corresponding to the service identifier.
  • the first network device is the device corresponding to the destination address of the service packet, that is, the first network device is the receiving end of the service packet, for example, the first network device is the device 106 in FIG.
  • the first network device is an intermediate device on the service message transmission path.
  • the first network device is the device 105 in FIG.
  • the first network device can obtain the service identifier in the following three manners:
  • the service identifier is obtained from the TCP SYN packet sent by the second network device to the first network device for establishing a TCP connection, for example, the service is obtained from the first SYN packet in the S201 part of FIG. logo.
  • the service identifier is obtained from the TCP ACK packet sent by the second network device to the first network device for establishing a TCP connection, for example, obtained from the second TCP ACK packet in the S203 part in FIG. Business identity.
  • the service identifier is obtained from the service packet sent by the second network device to the first network device, for example, the service identifier is obtained from the service packet in the S204 part of FIG.
  • the first network device has previously stored the correspondence between the service identifier and the service priority. After receiving the TCP packet, the first network device can directly obtain the correspondence between the service identifier and the service priority. The priority of the service corresponding to the service identifier.
  • FIG. 3B merely exemplifies an implementation manner, and the present application does not make any limitation on how to obtain the priority of the service according to the service identifier, and is not based on reading the content of the present application by those skilled in the art. Other ways that can be thought of are described.
  • the first network device obtains a TCP window according to a priority of the service.
  • the TCP window specifically refers to the size of the TCP window or the value of the TCP window.
  • FIG. 3C is merely illustrative of an implementation manner, and the present application does not describe how to obtain a TCP window, and other manners that can be conceived by those skilled in the art upon reading the content of the present application.
  • the first network device sends a first TCP ACK message to the second network device, where the first TCP ACK message includes a TCP window.
  • an embodiment of the present invention provides a method for sending a service packet.
  • a first network device obtains a TCP window according to a service identifier includes:
  • the first network device receives a TCP packet sent by the second network device, where the TCP packet includes a service identifier.
  • the first network device After receiving the TCP packet, the first network device sends the service identifier in the TCP packet to the controller.
  • the controller stores the correspondence between the service identifier and the service priority.
  • the first network device may first obtain the service identifier in the TCP packet, and then send the service identifier to the controller.
  • the first network device may directly copy the TCP packet to the controller, and the controller obtains the service identifier according to the TCP packet.
  • the controller After obtaining the service identifier, the controller obtains the priority of the service corresponding to the service identifier according to the correspondence between the service identifier and the service priority, and then sends the priority of the service to the first network device.
  • the first network device receives a priority of a service corresponding to the service identifier sent by the controller.
  • the controller controls or manages network devices in the network.
  • the controller can be a network management device or a controller under a Software-defined networking (SDN) architecture.
  • the network device in the embodiment of the present invention may be a router or a switch, or a repeater in an SDN network architecture.
  • the first network device obtains a TCP window according to a priority of the service.
  • the first network device sends a first TCP ACK message to the second network device, where the first TCP ACK message includes a TCP window.
  • the first network device receives a flow table sent by the controller, where the flow table is used to direct the first network device to send the first TCP ACK message to the second network device.
  • the first network device saves the flow table sent by the controller, and the first network device adds the obtained TCP window to the flow table.
  • the first network device first obtains the TCP window from the flow table containing the TCP window saved by the first network device, and then adds the TCP window to the And transmitting, in the first TCP ACK message, the first TCP ACK message to the second network device.
  • FIG. 3C is a schematic diagram of a method for obtaining a TCP window according to a service priority according to an embodiment of the present invention. The method may be applied to step S303 in the embodiment shown in FIG. 3A or FIG. 3B. Referring to FIG. 3C, the method includes:
  • the computing device determines the priority of the service, that is, determines whether the priority of the service is high priority or low priority.
  • the computing device is the first network device or controller in the embodiment of the present invention.
  • the TCP window is calculated.
  • the service corresponding to the first priority is a high priority service.
  • the computing device is a first network device.
  • the first network device determines that the priority of the service is the first priority, the service requirement information of the service is obtained, and the TCP window is calculated according to the service requirement information.
  • the first network device obtains the service requirement information of the service in the following two manners:
  • the first network device sends the service identifier to the controller, and the controller stores the correspondence between the service identifier and the service requirement information.
  • the control receives the service identifier
  • the corresponding service requirement information is determined according to the service identifier, and then the service requirement information is sent to the first network device.
  • the first network device may copy the TCP packet, and then send the copied TCP packet to the controller, and the controller obtains the service identifier according to the copied TCP packet.
  • the first network device first parses the obtained service identifier from the TCP packet, and then sends the service identifier to the controller.
  • the first network device pre-stores the correspondence between the service identifier and the service requirement information. After the first network device determines that the priority of the service is a high priority, the service requirement information is obtained from the corresponding relationship.
  • the first network device determines that the priority of the service is the first priority, and the cache occupied by the cache of the first network device is greater than or equal to the first threshold, the first network device obtains The service demand information of the service, and calculating a TCP window according to the service demand information.
  • the size of the cache can also be understood as a cached value.
  • the first threshold is a preset value. For example, the size of the cache of the first network device is 100 megabytes, and the first threshold may be 70 megabytes. When the cache of the first network device is occupied, the cache is greater than or equal to At 70 Mbps, obtain business demand information for the business.
  • the TCP window is calculated according to the service requirement information, thereby avoiding frequent calculation of the TCP window and causing the network resource to pass. More occupied.
  • S3033 When the computing device determines that the priority of the service is the second priority, obtaining a size of the cache occupied by the cache of the first network device.
  • the first priority is greater than the second priority, and the service corresponding to the second priority is a low priority service.
  • the computing device determines whether the cache occupied by the cache of the first network device is greater than or equal to a second threshold.
  • the cache of the first network device refers to a total cache of the first network device.
  • the computing device determines that the cache occupied by the cache of the first network device is greater than or equal to a second threshold, set the TCP window to 0, or set the TCP window to a smaller value.
  • the value of the smaller value needs to be able to ensure that the service is not interrupted.
  • the smaller value may take a value of 10K or 100K.
  • the second threshold is a preset value.
  • the size of the cache of the first network device is 100 megabytes, and the second threshold may be 80 megabytes.
  • set the TCP window to 0, or set the TCP window to a smaller value.
  • the values of the first threshold and the second threshold may be the same or different.
  • the TCP window takes a value of a default value, for example, the TCP window may take the value of the last calculation to obtain a TCP window, or Specific value.
  • the computing device is a first network device, and in another example, the computing device can also be a controller.
  • the controller is a computing device
  • the first network device determines that the priority of the service is the first priority
  • the first network device sends an advertisement message to the controller
  • the TCP window is calculated by the controller.
  • the controller determines the service requirement of the corresponding service identifier according to the correspondence between the stored service identifier and the service requirement information, and calculates a TCP window according to the service requirement information.
  • the embodiment shown in FIG. 4 For a specific controller to calculate the TCP window procedure, reference may be made to the embodiment shown in FIG. 4 below.
  • the service requirement information includes a throughput rate, where the throughput rate is used to identify traffic of the service corresponding to the service identifier that the first network device needs to transmit in a unit time, and the computing device is configured according to the throughput rate and the first network device.
  • the TCP window is calculated by the size of the cache occupied in the cache. The computing device calculates the TCP window in two ways:
  • the computing device calculates the TCP window using the following formula:
  • Throughput is the throughput rate
  • B is a size of a cache of the first network device, where the cache includes a cache occupied by the first network device and an unoccupied cache;
  • currentB is the size of the cache occupied by the first network device cache
  • C is a rate at which the first network device reads the queue from the cache, or when the first network device transmits the service packet
  • C is the sending rate of the outbound interface of the service packet sent by the first network device
  • Window is the TCP window that needs to be calculated.
  • the computing device can calculate the range of a TCP window by using the above formula.
  • the TCP window in this range is capable of satisfying the throughput rate of the service, and the TCP window can be flexibly adjusted.
  • a certain threshold for example, 80%
  • a smaller value in the range calculated by the TCP window for the above formula for example, a minimum value
  • the cache is over-occupied, reducing packet loss of service packets.
  • the computing device calculates the TCP window using the following formula:
  • Throughput is the throughput rate
  • B is the size of the cache of the first network device
  • CurrentB is the size of the buffer occupied by the first network device cache
  • C is a rate at which the first network device reads the queue from the cache, or when the first network device transmits the service packet
  • C is the sending rate of the outbound interface of the service packet sent by the first network device
  • Window is the TCP window that needs to be calculated
  • the first network device is the receiving end of the service packet
  • the first network device is the device 106 in FIG. 1
  • the second network device may be the device 101 or the device 102 in FIG. 1
  • ⁇ t is The first network device processes the processing delay of the service packet in the cache;
  • the first network device is the intermediate device on the service packet transmission path, for example, the first network device is The device 105 in the second network device may be the device 101 or the device 102 in FIG. 1
  • ⁇ t is the transmission delay of the outbound interface of the first network device to send the service packet.
  • the computing device When calculating the TCP window, the computing device also utilizes the sending delay of the outgoing interface of the first network device to send the service packet, or the processing delay of the first network device processing the service packet in the occupied cache, so that the TCP window is calculated.
  • the scope is more precise. In particular, when the sending delay of the outbound interface of the first network device to send the service packet is large, or the processing delay of the service packet in the occupied cache is large, the calculated TCP window is calculated. The scope will be more precise, so that it can more accurately meet the needs of the user's business.
  • the value of the TCP window also satisfies the following formula:
  • the remaining cache of the first network device is B-currentB, so the first network device can only store at most the message of the remaining cache size, and uses this formula as a supplement to calculate the TCP window. , can reduce the packet loss of business messages to a certain extent.
  • FIG. 3D is a schematic flowchart of the method. Referring to FIG. 3D, the method is shown in FIG. Methods include:
  • the first network device receives a TCP packet sent by the second network device, where the TCP packet includes a service identifier.
  • the first network device obtains a priority of the service corresponding to the service identifier according to the service identifier.
  • the first network device obtains a TCP window according to a priority of the service.
  • the first network device sends the TCP packet to the third network device.
  • the first network device receives a second TCP ACK packet sent by the third network device.
  • the first network device updates the TCP window in the second TCP ACK packet by using the TCP window obtained in step S303 to generate a first TCP ACK packet.
  • the steps S301, S302, S303, and S304 are the same as the steps S301, S302, S303, and S304 in FIG. 3A.
  • the steps S301, S302, S303, and S304 are the same as the steps S301, S302, S303, and S304 in FIG. 3A.
  • the steps S301, S302, S303, and S304 are the same as the steps S301, S302, S303, and S304 in FIG. 3A.
  • the second network device is a sending end of the service packet
  • the first network device is an intermediate device in the service packet transmission path
  • the third network device is a receiving end of the service packet.
  • the first network device is the device 105 in FIG. 1
  • the second network device is the device 101 or the device 102 in FIG. 1
  • the third network device is the device 106 in FIG.
  • the first network device acts as an intermediate device on the transmission path, and actively intercepts the TCP packet, and calculates the TCP window according to the priority of the service, and replaces the TCP window with the TCP window in the TCP ACK packet sent by the service packet receiving end, thereby
  • the size of the service packets sent by the sender can be flexibly controlled.
  • the first network device calculates the TCP window according to the cached occupancy condition and the service requirement information of the first network device, and can provide more accurate services for the forwarded service. Transmission guarantee.
  • steps S302 and S303 may be performed before or after step S3032, which is not specifically limited in the embodiment of the present invention.
  • the first network device can obtain the service identifier in the following four manners:
  • the service identifier is obtained from the TCP SYN packet sent by the second network device to the third network device for establishing a TCP connection, for example, the service is obtained from the first SYN packet in the S201 part in FIG. logo.
  • the service identifier is obtained from the TCP SYN packet or the TCP ACK packet sent by the third network device to the first network device, for example, the S202 part of the method shown in FIG.
  • the service identifier is obtained in an ACK packet or a second SYN packet.
  • the service identifier is obtained from the TCP ACK packet sent by the second network device to the third network device for establishing a TCP connection, for example, obtained from the second TCP ACK packet in the S203 part in FIG. Business identity.
  • the service identifier is obtained from the service packet sent by the second network device to the third network device, for example, the service identifier is obtained from the service packet in the S204 part of FIG.
  • the first network device receives the message from the high speed interface and sends the message from the low speed interface.
  • the rate at which the first network device receives the TCP service message from the second network device is the first rate.
  • the rate at which the interface of the network device sends the TCP service packet to the third network device is a second rate, where the first rate is greater than the second rate.
  • the method may further include:
  • the first network device receives the corresponding service identifier service packet sent by the second network device.
  • the size of the payload portion of the service packet is the TCP window obtained in step S303, or the size of the entire packet of the service packet is the TCP window obtained in step S303.
  • the first network device when the first network device is an intermediate device on the transmission path of the service packet, the first network device further sends the service packet received from the second network device to the receiving end of the service packet, for example,
  • the first network device is the device 105 in FIG. 1
  • the second network device may be the device 101 or the device 102 in FIG. 1 .
  • the first network device After the first network device receives the service packet from the second network device, the first network device also reports the service. The text is sent to device 106 in FIG.
  • the embodiment of the present invention further provides a method for sending a service packet.
  • the method includes:
  • the first network device receives a TCP packet sent by the second network device, where the TCP packet includes a service identifier.
  • the TCP packet includes a service identifier.
  • the first network device After receiving the TCP packet, the first network device sends the service identifier in the TCP packet to the controller. Correspondingly, the controller receives the service identifier. Optionally, the first network device may first obtain the service identifier in the TCP packet, and then send the service identifier to the controller. Alternatively, the first network device may directly copy the TCP packet to the controller, and the controller obtains the service identifier according to the TCP packet. For details, refer to step S3021 in FIG. 3B above.
  • the controller determines the priority of the service corresponding to the service identifier according to the correspondence between the service identifier and the service priority.
  • the priority of the service corresponding to the service identifier is determined according to the service identifier. Reference may be made to step S302 in FIG. 3A or step S3022 in FIG. 3B, and details are not described herein again.
  • the controller calculates a TCP window according to the priority of the service. For the calculation of the TCP window based on the service priority, refer to the method shown in Figure 3C above, and details are not described here.
  • the controller sends a TCP window to the first network device, and correspondingly, the first network device receives the TCP window.
  • the first network device generates a first TCP ACK packet, where the first TCP ACK packet includes the TCP window.
  • the first network device sends a first TCP ACK packet to the second network device, where the TCP window is used by the second network device to calculate a size of a service packet sent to the first network device.
  • the first network device is a receiving end of the service packet
  • the second network device is a sending end of the service packet.
  • the first network device is device 106 in FIG. 1
  • the second network device can be device 101 or device 102 in FIG.
  • the method shown in FIG. 4 further includes: the first network device sends the TCP packet to the third network device, and receives the second TCP ACK packet sent by the third network device.
  • the first network device updates the TCP window in the second TCP ACK message with the TCP window calculated in step S404, and generates a first TCP ACK message in step S406.
  • the first network device is an intermediate device on the service packet forwarding path
  • the second network device is a sending end of the service packet
  • the third network device is a receiving end of the service packet.
  • the first network device may be the device 105 in FIG. 1
  • the second network device may be the device 101 or the device 102 in FIG. 1
  • the third network device is the device 106 in FIG.
  • the controller calculates the TCP window according to the priority of the service. Since the TCP window is calculated based on the service priority, the controller can meet different transmission requirements of different priority services, thereby flexibly controlling the sending end to send the packet. The size is beneficial to reduce packet loss of service packets.
  • FIG. 5 is a schematic diagram showing a possible structure of the first network device involved in the foregoing embodiment, where the first network device 500 can implement the embodiment shown in FIG. 3A, 3B, 3C, 3D or FIG.
  • the function of the first network device includes a receiving unit 501, a determining unit 502, a processing unit 503, and a transmitting unit 504. These units can perform the respective functions of the first network device in the above method embodiments.
  • the receiving unit 501 is configured to support the first network device 500 to perform the process S301 in FIG. 3A, the processes S301 and S3023 in FIG. 3B, the processes S301 and S3035 in FIG. 3D, and/or the processes S401 and S405 in FIG.
  • a determining unit 502 configured to support the first network device 500 to perform the process S302 in FIG. 3A, and/or the process S302 in FIG. 3D; and a sending unit 504, configured to support the first network device 500 to perform the process S304 in FIG. 3A, Processes S3021 and S304 in FIG. 3B, processes S3034 and S304 in FIG. 3D, and/or processes S402 and S407 in FIG.
  • the processing unit 503 is configured to support the first network device 500 to perform the process S303 in FIG. 3A, the process S303 in FIG. 3B, the processes S3031, S3032, S3033, S3034, and S3035 in FIG. 3C, and the processes S303 and S3036 in FIG.
  • the receiving unit 501 is configured to perform various information receiving performed by the first network device in the foregoing method embodiment
  • the determining unit 502 is configured to perform a determining action performed by the first network device in the foregoing method embodiment.
  • the processing unit 503 is configured to perform the processing of the first network device except the information transceiving and determining action in the foregoing method embodiment.
  • the receiving unit 501 is configured to receive a TCP packet sent by the second network device, where the TCP packet includes a service identifier, and the determining unit 502 is configured to determine, according to the service identifier, a priority of the service corresponding to the service identifier, where the processing unit 503 is configured.
  • the sending unit 504 is configured to send a first TCP ACK message to the second network device, where the first TCP ACK message includes the TCP window, and the TCP window is used by the TCP window.
  • the second network device calculates a size of the service packet sent to the first network device.
  • FIG. 6 is a schematic diagram of another possible structure of the first network device involved in the foregoing embodiment, where the first network device 600 can also implement 3A, 3B, 3C, and 3D. Or the function of the first network device in the embodiment shown in FIG.
  • the first network device 600 includes a storage unit 601, a processing unit 602, and a communication unit 603.
  • the communication unit 603 is configured to support communication between the first network device 600 and other network entities, such as communication with a third network device or controller illustrated in FIG. 3B, FIG. 3D or FIG. 4, for example, a communication unit 603 for supporting the first network device 600 to perform processes S301 and S304 in FIG. 3A, processes S301, S3021, S3023, and S304 in FIG.
  • the processing unit 602 is configured to perform control management on the action of the first network device 600.
  • the processing unit 602 is configured to support the first network device 600 to perform processes S302 and S303 in FIG. 3A, process S303 in FIG. 3B, and FIG. 3C.
  • the storage unit 601 is configured to store program codes and data of the first network device 600.
  • the storage unit 601 is configured to store program codes and data of the first network device 600.
  • FIG. 3A, 3B, 3C, 3D or FIG. 4 please refer to the detailed description of the corresponding steps in the foregoing embodiment shown in FIG. 3A, 3B, 3C, 3D or FIG. 4, and details are not described herein again.
  • the processing unit 602 may be a processor, for example, may be a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (application-specific integrated circuit, ASIC), field programmable gate array (FPGA) or other programmable logic device, transistor logic device, hardware component, or any combination thereof. It is possible to implement or carry out various exemplary logical blocks, modules and circuits described in connection with the disclosure of the embodiments of the invention.
  • the processor may also be a combination of computing functions, for example, including one or more microprocessor combinations, a combination of a DSP and a microprocessor, and the like.
  • the communication unit 603 can be a transceiver, and the storage unit 601 can be a memory.
  • the first network device involved in the embodiment of the present invention may be the first network device 700 shown in FIG. 7.
  • the first network device 700 includes a processor 702, a transceiver 703, a memory 701, and a bus 704.
  • the processor 702, the transceiver 703, and the memory 701 are connected to each other through a bus 704.
  • the bus 704 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA). ) Bus, etc.
  • the bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 7, but it does not mean that there is only one bus or one type of bus.
  • the first network device 700 can implement the functions of the first network device in the embodiment shown in FIG. 3A, 3B, 3C, 3D or FIG.
  • the processor 702 and the transceiver 703 can perform the respective functions of the first network device in the above method examples.
  • the transceiver 703 is configured to support the first network device 700 to perform processes S301 and S304 in FIG. 3A, processes S301, S3021, S3023, and S304 in FIG. 3B, processes S301, S3034, S3035, and S304 in FIG. 3D, and/or Processes S401, S402, S405, and S407 in FIG.
  • the processor 702 is configured to support the first network device 700 to perform processes S302 and S303 in FIG. 3A, process S303 in FIG. 3B, processes S3031, S3032, S3033, S3034, and S3035 in FIG. 3C, process S302 in FIG.
  • the memory 701 is configured to store program codes and data of the first network device 700.
  • FIG. 3A, 3B, 3D or FIG. 4 please refer to the detailed description of the corresponding steps in the foregoing embodiment shown in FIG. 3A, 3B, 3D or FIG. 4, and details are not described herein again.
  • an embodiment of the present invention provides another first network device 800.
  • the first network device 800 can be a router or a switch or a network device with a forwarding function, and the network device 800 can implement the functions of the first network device in the foregoing method embodiments.
  • the first network device 800 includes: a main control board 801 and an interface board 802.
  • the main control board 801 includes a processor 803 and a memory 804.
  • the interface board 802 includes a processor 805, a memory 806, and an interface card 807.
  • the main control board 801 is coupled to the interface board 802.
  • the hardware can perform the corresponding functions in the above method examples.
  • the memory 806 can be used to store the program code of the interface board 802, and the processor 805 is used to call the program code in the memory 806 to trigger the interface card 807 to execute the foregoing method embodiment.
  • the processor 805 calls the program code in the memory 806 to trigger the interface card 807 to support the first network device 800 to perform the processes S301 and S304 in FIG. 3A, the process S301 in FIG. 3B. S3021, S3023, and S304, processes S301, S3034, S3035, and S304 in FIG. 3D, and/or processes S401, S402, S405, and S407 in FIG.
  • the processor 805 is further configured to send the service identifier to the main control board 801.
  • the memory 804 can be used to store the program code of the main control board 801.
  • the processor 803 is configured to call the program code in the memory 804 to perform other processing than the information transmission and reception of the first network device in the foregoing method embodiment.
  • the processor 803 is configured to support the first network device 800 to perform processes S302 and S303 in FIG. 3A, process S303 in FIG. 3B, processes S3031, S3032, S3033, S3034, and S3035 in FIG. 3C, the process in FIG. 3D. S302, S303, and S3036, process S406 in FIG. 4, and/or other processes performed by the first network device in the techniques described herein.
  • the memory 804 is used to store program codes and data of the main control board 801.
  • the memory 804 is used to store program codes and data of the main control board 801.
  • FIG. 3A, 3B, 3C, 3D or FIG. 4 please refer to the detailed description of the corresponding steps in the foregoing embodiment shown in FIG. 3A, 3B, 3C, 3D or FIG. 4, and details are not described herein again.
  • an IPC control channel is established between the main control board 801 and the interface board 802, and the IPC control channel is used for communication between the main control board 801 and the interface board 802.
  • FIG. 9 shows a possible structural diagram of the controller involved in the above embodiment, which can implement the functions of the controller in the embodiment shown in FIG. 3B, 3C or FIG.
  • the controller 900 includes a receiving unit 901, a determining unit 902, a processing unit 903, and a transmitting unit 904. These units can perform the corresponding functions of the controllers in the above method examples.
  • the receiving unit 901 is configured to support the controller 900 to perform the process S3021 in FIG. 3B, and/or the process S402 in FIG. 4;
  • the determining unit 902 is configured to support the controller 900 to perform the process S3022 in FIG. 3B, in FIG.
  • the receiving unit 901 is configured to perform various information receiving by the controller in the foregoing method embodiment
  • the determining unit 902 is configured to perform the determining action performed by the controller in the foregoing method embodiment
  • the sending unit 904 is configured to execute the foregoing The information is sent by the controller in the method embodiment.
  • the processing unit 903 is configured to perform other processing than the information receiving and receiving and determining actions of the controller in the foregoing method embodiment.
  • the receiving unit 901 is configured to receive a service identifier sent by the first network device, where the determining unit 902 is configured to determine a priority of the service corresponding to the service identifier according to the service identifier, and the processing unit 903 is configured to use, according to the service Priority calculation TCP window; sending unit 904, configured to send the TCP window to the first network device, so that the first network device sends the TCP window to the second network device, where the TCP window is used by the second network device to calculate The size of the service packet sent by the first network device.
  • the receiving unit 901 is configured to receive a service identifier sent by the first network device, where the determining unit 902 is configured to determine a priority of the service corresponding to the service identifier according to the service identifier, and the processing unit 903 is configured to use, according to the service Priority calculation TCP window; sending unit
  • each functional unit in the embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the receiving unit and the transmitting unit may be the same unit and different units.
  • the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
  • FIG. 10 shows another possible structural diagram of the controller involved in the above embodiment, and the controller 1000 can also implement the embodiment shown in FIG. 3B, 3C or FIG. The function of the controller.
  • the controller 1000 includes a storage unit 1001, a processing unit 1002, and a communication unit 1003.
  • the communication unit 1003 is for supporting the communication of the controller 1000 with other network entities, for example, for supporting the controller 900 to perform the processes S3021, S3023 in Fig. 3B, and the processes S402, S405 in Fig. 4.
  • the processing unit 1002 is configured to perform control management on the action of the controller 1000.
  • the processing unit 1002 is configured to support the controller 1000 to perform the process S3022 in FIG. 3B, the processes S3031, S3032, S3033, S3034, and S3035 in FIG. 3C.
  • Process S404 in 4 and/or other processes performed by the controller in the techniques described herein.
  • the storage unit 1001 is configured to store program codes and data of the controller 1000. For detailed processing, please refer to the detailed description of the corresponding steps in the foregoing embodiment shown in FIG. 3B, 3C or FIG. 4, and details are not described herein again.
  • the processing unit 1002 may be a processor, such as a CPU, a general purpose processor, a DSP, an ASIC, an FPGA, or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. It is possible to implement or carry out various exemplary logical blocks, modules and circuits described in connection with the disclosure of the embodiments of the invention.
  • the processor may also be a combination of computing functions, for example, including one or more microprocessor combinations, a combination of a DSP and a microprocessor, and the like.
  • Communication unit 1003 can be a transceiver.
  • the storage unit 1001 may be a memory.
  • the controller may be the controller 1100 shown in FIG.
  • the controller 1100 includes a processor 1102, a transceiver 1103, a memory 1101, and a bus 1104.
  • the transceiver 1103, the processor 1102, and the memory 1101 are connected to each other through a bus 1104.
  • the bus 1104 may be a PCI bus or an EISA bus.
  • the bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 11, but it does not mean that there is only one bus or one type of bus.
  • the controller 1100 can implement the functions of the controller in the embodiment shown in FIG. 3B or FIG.
  • the processor 1102 and the transceiver 1103 can perform the respective functions of the controllers in the above method examples.
  • the transceiver 1103 is for supporting the first controller 1100 to perform the processes S3021, S3023 in FIG. 3B, and/or the processes S402 and S405 in FIG.
  • the processor 1102 is configured to support the controller 1100 to perform the process S3022 in FIG. 3B, the processes S3031, S3032, S3033, S3034, and S3035 in FIG. 3C, the process S404 in FIG. 4, and/or the controller in the techniques described herein. Other processes performed.
  • the memory 701 is configured to store program codes and data of the controller 1100. For details, refer to the detailed description of the corresponding steps in the foregoing embodiment shown in FIG. 3B or FIG. 4, and details are not described herein again.
  • an embodiment of the present invention provides another system 1200 for transmitting a service packet, where the system 1200 is configured to implement a method for transmitting a service packet in the foregoing method embodiment.
  • the system 1200 includes a first network device 1201 and a second network device 1202.
  • the first network device 1201 and the second network device 1202 can implement the functions of the first network device and the second network device in the embodiment shown in FIG. 3A, 3B, 3C, 3D or FIG. 4, respectively.
  • the first network device 1201 performs processes S301, S302, S302, and S304 in FIG. 3A, processes S301, S3021, S3022, S3023, S303, and S304 in FIG.
  • the second network device 1202 is configured to send a TCP packet to the first network device 1201, where the TCP packet includes a service identifier, and receives a first TCP ACK packet sent by the first network device 1201, where the first TCP ACK packet is sent. Contains the TCP window obtained by network device 1201.
  • the system 1200 also includes a third network device for implementing the functionality of the third network device in the embodiment illustrated in FIG. 3D.
  • a third network device for implementing the functionality of the third network device in the embodiment illustrated in FIG. 3D.
  • the TCP packet sent by the first network device 1201 is received, and an ACK packet for the TCP packet is sent to the first network device 1201.
  • the system 1200 also includes a controller for implementing the functions of the controllers in the embodiments of Figures 3B, 3C, and 4.
  • a controller for implementing the functions of the controllers in the embodiments of Figures 3B, 3C, and 4.
  • the service identifier sent by the first network device 1201 is received, the service priority is obtained according to the service identifier, and the TCP window is calculated; and the calculated TCP window is sent to the first network device 1201.
  • the embodiment of the present invention further provides a storage medium for storing software instructions used in the foregoing embodiments, including a program for executing the method shown in the foregoing embodiment, when it is executed on a computer or a device,
  • the illustrated computer or device performs the methods of the foregoing method embodiments.
  • the "first” in the first network device mentioned in the embodiment of the present invention is only used for name identification, and does not represent the first in the order. The same rules apply to "second” and "third".
  • any of the device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as the cells may or may not be Physical units can be located in one place or distributed to multiple network elements. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
  • the connection relationship between the modules indicates that there is a communication connection between them, and specifically may be implemented as one or more communication buses or signal lines.
  • the steps of the method or algorithm described in the disclosure of the embodiments of the present invention may be implemented in a hardware manner, or may be implemented by a processor executing software instructions.
  • the software instructions may be composed of corresponding software modules, which may be stored in a random access memory (RAM), a flash memory, a read only memory (ROM), an erasable programmable read only memory ( Erasable programmable ROM (EPROM), electrically erasable programmable read only memory (EEPROM), hard disk, removable hard disk, optical disk, or any other form of storage medium known in the art.
  • An exemplary storage medium is coupled to the processor to enable the processor to read information from, and write information to, the storage medium.
  • the storage medium can also be an integral part of the processor.
  • the processor and the storage medium can be located in an ASIC. Additionally, the ASIC can be located in a core network interface device.
  • the processor and the storage medium may also exist as discrete components in the core network interface device.
  • the functions described herein can be implemented in hardware, software, firmware, or any combination thereof.
  • the functions may be stored in a computer readable medium or transmitted as one or more instructions or code on a computer readable medium.
  • Computer readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one location to another.
  • a storage medium may be any available media that can be accessed by a general purpose or special purpose computer.

Landscapes

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

Abstract

本申请公开了一种业务报文发送的方法、设备及***。该方法包括:第一网络设备接收第二网络设备发送的TCP报文,TCP报文包含业务标识。第一网络设备根据所述业务标识获得业务标识对应的业务的优先级,然后根据所述业务的优先级获得TCP窗口。第一网络设备向第二网络设备发送TCP ACK报文,该TCP ACK报文包含获得的TCP窗口,该TCP窗口用于第二网络设备计算向第一网络设备发送的业务报文的大小。由于第一网络设备基于业务优先级来获得TCP窗口,从而能够灵活的调整发送端发送的业务报文的大小,在满足业务报文传输要求的同时,减少业务报文的丢包。

Description

一种业务报文发送的方法、网络设备和***
本申请要求于2017年11月28日提交中国国家知识产权局、申请号为201711212836.8、申请名称为“一种业务报文发送的方法、网络设备和***”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及通信领域,尤其涉及一种业务报文发送的方法、网络设备和***。
背景技术
传输控制协议TCP(Transmission Control Protocol,TCP)是一种面向连接的、可靠的传输层通信协议。在使用TCP传输业务报文的场景,当网络设备中出现从高速接口接收报文,并从低速接口向外发送报文时,或者多个用户接入设备的流量汇聚到同一个网络设备时,网络设备就可能会出现丢包的情况,导致TCP承载的业务的需求(如:吞吐率)得不到满足,严重影响用户体验,特别在网络设备传输视频业务时,会导致视频业务中断等现象。
现有技术中,为解决此类问题,一般通过适当增加网络设备的缓存(buffer)来避免丢包。但这种方式会使得业务流量在缓存中排队时间增长,导致业务流量传输的时延增大,难以保证业务的传输需求,此外,当网络设备上突发流量很多时,也还是会出现一定程度的丢包。
发明内容
本申请提供了一种业务报文发送的方法、网络设备和***,基于业务的优先级来获得TCP窗口,从而能够灵活的控制发送端发送的业务报文的大小,实现在满足业务报文传输需求的同时,减少业务报文的丢包。
第一方面,本发明实施例提供了一种业务报文发送的方法,该方法包括:第一网络设备接收第二网络设备发送的TCP报文,该TCP报文包含业务标识;第一网络设备根据业务标识确定业务标识对应的业务的优先级。第一网络设备根据业务的优先级获得TCP窗口;第一网络设备向第二网络设备发送第一TCP ACK报文,第一TCP ACK报文包含该TCP窗口,TCP窗口用于第二网络设备计算向第一网络设备发送的业务报文的大小。
采用上述方法,第一网络设备根据TCP报文中的业务标识获得业务的优先级,然后根据业务的优先级来获得TCP窗口。由于第一网络设备的获得的TCP窗口是基于业务优先级来确定的,因此能够满足不同优先级业务的不同传输需求,从而能够灵活的控制发送端发送报文的大小。举例来说,对于低优先级业务来说,TCP窗口可以选择的小一些,对于高优先级的业务来说,TCP窗口可以选择的大一些,这样即可满足不同业务的需求,还能够充分利用网络资源,减少业务报文的丢包。
在一种可能的设计中,第一网络设备向第三网络设备发送该TCP报文,第一网络设备接收第三网络设备发送的第二TCP ACK报文,第一网络设备用该TCP窗口更新所述第二 TCP ACK报文中的TCP窗口,生成第一TCP ACK报文。在这种设计中,第一网络设备作为TCP业务报文传输路径的中间设备,主动拦截TCP报文,并根据业务的优先级计算TCP窗口,并将TCP窗口替换业务报文接收端发送的TCP ACK报文中的TCP窗口,从而能够灵活控制发送端发送的业务报文的大小。
在一种可能的设计中,在第一网络设备确定业务的优先级为第一优先级时,获得业务的业务需求信息,并根据业务需求信息计算TCP窗口。第一优先级对应的业务为高优先级业务,该业务的优先级为第一优先级则说明该业务为高优先级业务。
在一种可能的设计中,在第一网络设备确定业务的优先级为第一优先级时,第一网络设备将所述业务标识向控制器发送,并接收控制器根据业务的业务需求信息计算的TCP窗口。
在一种可能的设计中,业务需求信息包括吞吐率,吞吐率用于标识第一网络设备单位时间内需要传输的对应业务的流量,第一网络设备根据吞吐率和第一网络设备的缓存中被占用缓存的大小计算TCP窗口。
采用上述方式,第一网络设备根据业务需求信息计算TCP窗口,这样能够准确的保障业务的传输需求,对于不同业务计算得到不同的TCP窗口,从而能够灵活控制发送端发送的业务报文的大小,在带宽资源一定的情况下,能够灵活的调整不同业务的带宽占用,减少丢包。另外,当第一网络设备为TCP业务报文传输路径的中间设备,根据第一网络设备的缓存的被占用情况来计算TCP窗口,能够为被转发的业务提供更精确的业务传输保障。
在一种可能的设计中,利用如下公式计算TCP窗口:
Figure PCTCN2018117367-appb-000001
其中,
Throughput为该业务需求信息中包含的吞吐率;
B为第一网络设备的缓存的大小,包含被占用缓存的大小和未被占用缓存的大小;
currentB为第一网络设备缓存中被占用的缓存的大小;
当所述第一网络设备为所述业务报文的接收端时,C为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,C为所述第一网络设备发送所述业务报文的出接口的发送速率;
window为需要计算的该TCP窗口。
采用上述方式,第一网络设备利用上述公式能够计算得到一个TCP窗口的范围,这个范围内的TCP窗口都是能够满足该业务的吞吐率的要求的,并且可以灵活调整TCP窗口。例如,当第一网络设备的缓存占用率超过一个特定阈值,例如:80%,可以选择TCP窗口为上述公式计算的范围内的较小值,如果第一网络设备的缓存占用率低于一个特定阈值,例如40%,可以选择TCP窗口为上述公式计算的范围内的较大值,这样能够灵活的调整TCP窗口,满足业务传输需求的同时,避免第一网络设备的缓存被过多占用,减少业务报文的丢包。
在一种可能的设计中,第一网络设备利用如下公式计算所述TCP窗口:
Figure PCTCN2018117367-appb-000002
其中,
Throughput为该吞吐率;
B为第一网络设备的缓存的大小;
currentB为第一网络设备缓存中被占用的缓存的大小;
当所述第一网络设备为所述业务报文的接收端时,C为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,C为所述第一网络设备发送所述业务报文的出接口的发送速率;
window为需要计算的TCP窗口;
当所述第一网络设备为所述业务报文的接收端时,Δt为所述第一网络设备处理被占用的缓存中业务报文的处理时延,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,Δt为所述第一网络设备发送业务报文的出接口的发送时延。
采用上述方式,第一网络设备在计算TCP窗口时,还利用了第一网络设备发送业务报文的出接口的发送时延,或为第一网络设备处理被占用的缓存中业务报文的处理时延,这样计算TCP窗口的范围更加精确。特别的,在第一网络设备发送业务报文的出接口的发送时延较大,或第一网络设备处理被占用的缓存中业务报文的处理时延较大时,计算得到的TCP窗口的范围会更精确,这样能够更准确的满足用户业务的需求。
在一种可能的实现中,利用上述公式计算的TCP窗口还满足如公式:window<B-currentB。由于第一网络设备在计算TCP窗口时,第一网络设备的剩余缓存为B-currentB,所以第一网络设备最多也只能存储剩余缓存大小的报文,利用这个公式作为计算TCP窗口的一个补充,可以一定程度的较少业务报文的丢包。
在一种可能的实现中,第一网络设备将业务标识发送到存储有所述业务标识和所述业务需求信息的对应关系的控制器。控制器根据业务标识和该对应关系获得业务需求信息,并将业务需求信息向第一网络设备发送,第一网络设备接收控制器发送的业务需求信息。
在一种可能的实现中,第一网络设备直接存储有业务标识和业务需求信息的对应关系;第一网络设备利用业务标识从该对应关系中获得所述业务需求信息。
在一种可能的实现中,在第一网络设备确定业务的优先级为第一优先级时,并且第一网络设备的缓存中被占用的缓存大于或等于第一阈值时,获得业务的业务需求信息,并根据业务需求信息计算TCP窗口。
采用上述方式,第一网络设备在第一网络设备的缓存中被占用的缓存大于或等于第一阈值时,才根据业务需求信息计算TCP窗口,从而避免频繁计算TCP窗口导致对网络资源的过多占用。
在一种可能的实现中,第一网络设备根据业务的优先级获得TCP窗口包括:
在第一网络设备确定业务的优先级为第二优先级业务时,并且确定第一网络设备的缓存中被占用的缓存大于或等于第二阈值时,TCP窗口取值为0,或者设置TCP窗口为一个较小值。其中,该较小值的取值只要能够保证该业务不会中断即可。其中,第二优先级低于第一优先级,第二优先级对应的业务为低优先级业务。
采用上述方式,第一网络设备在确定业务为低优先级业务,并且第一网络设备被占用缓存达到第二阈值时,TCP窗口取值为0,或一个较小值,这样能够通过适当抑制低优先级的业务报文的发送,来减少丢包,进一步可以给高优先级业务的传输预留更多的资源。
在一种可能的实现中,在第一网络设备确定业务的优先级为第一优先级,并且第一网络设备的缓存中被占用的缓存大于或等于第二阈值时,第一网络设备将所述业务标识向控制器发送,第一网络设备接收控制器根据业务的业务需求信息计算的TCP窗口。由于控制 器对网络中的设备进行集中控制,控制器存储业务的需求信息,因此,由控制器来为被管理的网络设备计算TCP窗口方式更加灵活。
在一种可能的实现中,该方法还包括:第一网络设备接收控制器发送的流表,流表用于指导第一网络设备将第一TCP ACK报文向第二网络设备发送;第一网络设备将TCP窗口添加到流表中,第一网络设备向第二网络设备发送第一TCP ACK报文时,第一网络设备从流表中获得TCP窗口,并将TCP窗口添加到第一TCP ACK报文中。将TCP窗口添加的到流表中,在发送第一TCP ACK报文时,可以直接从流表中获得TCP窗口,第一TCP ACK报文转发效率更高。
在一种可能的实现中,该方法还包括:第一网络设备接收第二网络设备发送的业务报文,业务报文的净荷(payload)部分的大小为TCP窗口,或者整个业务报文的大小为TCP窗口。
在一种可能的实现中,TCP报文为TCP同步(SYN)报文或TCP业务报文,该TCP业务报文承载了用户的业务报文。
在一种可能的实现中,第一网络设备从第二网络设备接收TCP业务报文的接口的速率为第一速率,第一网络设备向第三网络设备发送TCP业务报文的接口的速率为第二速率,第一速率大于第二速率。
第二方面,本发明实施例提供了一种业务报文发送的方法,该方法包括:控制器接收第一网络设备发送的业务标识;控制器根据业务标识确定业务标识对应的业务的优先级;控制器根据业务的优先级计算TCP窗口,并将TCP窗口向第一网络设备发送,触发第一网络设备将TCP窗口发送到第二网络设备,该TCP窗口用于第二网络设备计算向第一网络设备发送的业务报文的大小。
采用上述方式,控制器根据业务的优先级计算TCP窗口,由于基于业务优先级计算TCP窗口,因此能够满足不同优先级业务的不同需求,从而能够灵活的控制发送端发送报文的大小,有利于减少业务报文的丢包。
在一种可能的实现中,在控制器确定业务的优先级为第一优先级时,根据业务标识获得业务对应的业务需求信息,控制器根据业务需求信息计算TCP窗口。
在一种可能的实现中,业务需求信息包括吞吐率,吞吐率用于标识第一网络设备单位时间内需要传输的对应业务的流量,控制器根据业务需求信息计算TCP窗口包括:
根据吞吐率和第一网络设备的缓存中被占用缓存的大小计算TCP窗口。
在一种可能的实现中,控制器利用如下公式计算TCP窗口:
Figure PCTCN2018117367-appb-000003
其中,
Throughput为该业务需求信息中包含的吞吐率;
B为第一网络设备的缓存的大小,包含被占用缓存的大小和未被占用缓存的大小;
currentB为第一网络设备缓存中被占用的缓存的大小;
当所述第一网络设备为所述业务报文的接收端时,C为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,C为所述第一网络设备发送所述业务报文的出接口的发送速率;
window为需要计算的该TCP窗口。
在一种可能的设计中,控制器利用如下公式计算所述TCP窗口:
Figure PCTCN2018117367-appb-000004
其中,
Throughput为所述吞吐率;
B为第一网络设备的缓存的大小;
currentB为第一网络设备缓存中被占用的缓存的大小;
当所述第一网络设备为所述业务报文的接收端时,C为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,C为所述第一网络设备发送所述业务报文的出接口的发送速率;
window为需要计算的所述TCP窗口;
当所述第一网络设备为所述业务报文的接收端时,Δt为所述第一网络设备处理被占用的缓存中业务报文的处理时延,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,Δt为所述第一网络设备发送业务报文的出接口的发送时延。
在一种可能的实现中,该TCP窗口还满足如下公式:
window<B-currentB。
第三方面,本发明实施例提供了一种业务报文发送的网络设备,执行第一方面或第一方面的任意一种可能的实现方式中的方法。具体地,该网络设备包括用于执行第一方面或第一方面的任意一种可能的实现方式中的方法的单元。
第四方面,本发明实施例提供了一种业务报文发送的控制器,执行第二方面或第二方面的任意一种可能的实现方式中的方法。具体地,该控制器包括用于执行第二方面或第二方面的任意一种可能的实现方式中的方法的单元。
第五方面,提供了一种网络设备,该网络设备包括:处理器、网络接口和存储器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第一方面或第一方面的任意一种可能的实现方式中的方法,具体参见方法示例中的详细描述,此处不再赘述。
第六方面,提供了一种控制器,该控制器包括:处理器、网络接口和存储器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第二方面或第二方面的任意一种可能的实现方式中的方法,具体参见方法示例中的详细描述,此处不再赘述。
第七方面,提供了一种网络设备,该网络设备包括:主控板和接口板。主控板包括:第一处理器和第二存储器。接口板包括:第二处理器、第二存储器和接口卡。第二存储器可以用于存储程序代码,第二处理器用于调用第二存储器中的程序代码执行如下操作:接收第二网络设备发送的TCP报文,TCP报文包含业务标识,并将业务标识向主控板发送。
第一存储器可以用于存储程序代码,第一处理器用于调用第一存储器中的程序代码执行如下操作:接收接口板发送的业务标识,并根据业务标识获得业务标识对应的业务的优先级;根据业务的优先级获得TCP窗口。
第二处理器还用于调用第二存储器中的程序代码执行如下操作:向第二网络设备发送TCP ACK报文,TCP ACK报文包含TCP窗口。
在一种可能的实现方式中,主控板和接口板之间建立进程间通信协议(inter-process communication,IPC)控制通道。
第八方面,提供了一种业务报文发送的***,该***包含前述方面提供的第一网络设 备和第二网络设备,该第二网络设备用于向第一网络设备发送TCP报文,该TCP报文包含业务标识;接收第一网络设备发送的TCP ACK报文,并根据该TCP ACK报文中的TCP窗口计算向第一网络设备发送的业务报文的大小。
第九方面,提供了一种计算机存储介质,用于储存为上述网络设备或控制器所用的计算机软件指令,其包括用于执行上述方面所设计的程序。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中使用的附图作简单地介绍。显而易见地,下面附图只是本发明的一些实施例的附图,对于本领域普通技术人员来说,在不付出创造性劳动性的前提下,还可以根据这些附图获得同样能实现本发明的其他技术方案和附图。
图1为本发明实施例提供的一种应用场景示意图;
图2为本发明实施例提供的一种设备之间TCP建立连接及发送报文的方法;
图3A为本发明实施例提供的一种业务报文发送的方法流程示意图;
图3B为本发明实施例提供的一种获得业务的优先级的方法流程示意图;
图3C为本发明实施例提供的一种根据业务优先级获得TCP窗口方法的流程示意图;
图3D为本发明实施例提供的一种业务报文发送的方法流程示意图;
图4为本发明实施例提供的一种业务报文发送的方法流程示意图;
图5为本发明实施例提供的一种第一网络设备的结构示意图;
图6为本发明实施例提供的一种第一网络设备的结构示意图;
图7为本发明实施例提供的一种第一网络设备的结构示意图;
图8为本发明实施例提供的一种第一网络设备的结构示意图;
图9为本发明实施例提供的一种控制器的结构示意图;
图10为本发明实施例提供的一种控制器的结构示意图;
图11为本发明实施例提供的一种控制器的结构示意图;
图12为本发明实施例提供的一种业务报文发送的***示意图。
具体实施方式
下面结合附图,对本发明的实施例进行描述。
图1示出了本发明实施例的一种可能的应用场景。在该应用场景中,设备101和设备102为用户设备,例如:手机或个人电脑等;设备103和设备104为用户接入设备,例如:光线路终端(optical line terminal,OLT)或光网络单元(optical network unit,ONU)等;设备105为网络中的转发设备,例如:路由器或交换机等;设备106为网络中的服务器,例如内容分发网络(content delivery network,CDN)服务器等。接口1和接口2为设备105的两个物理接口。在接口1的速率比接口2的速率高的情况下,例如:接口1的速率为3000兆比特每秒(Mbit/s),接口2的速率为1000Mbit/s,如果单位时间内设备101向服务器106发送大量业务流量时,业务流量可以顺利通过接口1到达设备105,但由于接口2的速率低于接口1的速率,会导致业务流量积压在设备105上,当设备105的缓存全部被占用时,则可能出现业务流量丢包的问题。在 另一种情况下,如果单位时间内多个设备101和/或多个102设备向设备106发送业务流量,也可能会出现业务流量积压在设备105上,当设备105的缓存全部被占用时,则可能出现业务流量丢包的问题。
本发明实施例提供一种业务报文发送的方法及基于这个方法的网络设备和***。该方法通过利用业务优先级来获得TCP窗口,从而能够灵活的控制发送端发送的业务报文的大小,能够实现在满足业务报文传输需求的同时,减少业务报文的丢包。其中,方法、网络设备和***是基于同一发明构思的,由于方法、网络设备和***解决问题的原理相似,因此,网络设备与方法的实施可以相互参见,***与方法的实施也可以相互参见,重复之处不再赘述。
结合图1所示的应用场景,参阅图2,本发明实施例提供了一种设备之间通过TCP传输业务报文时,TCP建立连接及发送报文的方法,其中图2中的发送端可以为图1中的设备101和设备102,接收端可以为图1中的设备106。该方法包括:
S201,业务报文发送端向业务报文接收端发送第一SYN报文,该第一SYN报文中包含同步(syn)字段,并且syn字段取值为1。在该syn字段取值为1时,表明发送端请求和接收端建立TCP连接。该第一SYN报文还包含第一序列号(sequence number,SN),该第一SN取值可以为随机值。
S202,接收端接收到第一SYN报文后,会向发送端发送第一TCP ACK报文,第一TCP ACK报文包含响应数(ack number)字段,ack number取值为第一SN加1。接收端还会向发送端发送第二SYN报文,第二SYN报文包含第二SN,第二SN取值也可以是随机值。接收端可以将第一TCP ACK报文和第二SYN报文放到一个报文中发送给发送端,或者,接收端可以将第一TCP ACK报文和第二SYN报文分别向发送端发送。
S203,接收端接收发送的第一TCP ACK报文和第二SYN报文,在确定第一TCP ACK报文中包含的ack number为第一SN加1后,向接收端发送第二TCP ACK报文,第二TCP ACK报文中包含的ack number取值为第二SN加1。在接收端判断第二TCP ACK报文中的ack number为第二SN加1时,完成发送端和接收端之间的TCP连接建立。
S204,发送端向接收端发送业务报文。
S205,接收端接收到发送端发送的业务报文后,会向发送端发送第三TCP ACK报文,该第三TCP ACK报文用于指示发送端给业务报文已经正确收到。
图3A本发明实施例提供了一种业务报文发送的方法,参阅图3A所示,该方法包括:
S301,第一网络设备接收第二网络设备发送的TCP报文,TCP报文包含业务标识。
在一个示例中,第一网络设备为图2所示方法中的接收端,第二网络设备为图2所示方法中的发送端。
在一个示例中,该TCP报文可以为TCP建立连接过程中第二网络设备向第一网络设备发送的SYN报文,例如图1中的S201中的第一SYN报文。
在一个示例中,该TCP报文可以为第二网络设备在与第一网络设备建立TCP连接之后,向第一网络设备发送的TCP业务报文,例如,图1中的S204中的业务报文。 该TCP业务报文承载了具体的一个业务。
在一个示例中,该业务标识用来标识一种业务,具体的,该业务标识可以为流标签(flow label,FL)或业务标签。
在一个示例中,如果第二网络设备上只运行一种业务,则业务标识包括目的互联网协议(Internet Protocol,IP)地址;如果第二网络设备上同时运行多种业务,为了区分不同的业务,业务标识包括目的IP地址和目的端口号(Port),或者业务标识包括目的IP地址、目的端口号、源IP地址和源端口号。
S302,第一网络设备根据业务标识确定业务标识对应的业务的优先级。
在一个示例中,第一网络设备为业务报文的目的地址对应的设备,即:第一网络设备为业务报文的接收端,例如,第一网络设备为图1中的设备106,或者,第一网络设备为业务报文传输路径上的一个中间设备,例如,第一网络设备为图1中的设备105。当第一网络设备为业务报文的接收端时,第一网络设备获取业务标识可以通过以下三种方式:
第一种方式,从第二网络设备向第一网络设备发送的用于建立TCP连接的TCP SYN报文中获取业务标识,例如,从图2中的S201部分的第一SYN报文中获取业务标识。
第二种方式,从第二网络设备向第一网络设备发送的用于建立TCP连接的TCP ACK报文中获取业务标识,例如,从图2中的S203部分的第二TCP ACK报文中获取业务标识。
第三种方式,从第二网络设备向第一网络设备发送的业务报文中获取业务标识,例如,从图2中的S204部分的业务报文中获取业务标识。
在一个示例中,第一网络设备已经预先存储了业务标识和业务优先级的对应关系,在第一网络设备接收到该TCP报文后,可以直接利用业务标识和业务优先级的对应关系,获得业务标识对应的业务的优先级。
第一网络设备根据业务标识获得业务标识对应的业务的优先级的其他的实现方式可以参考下述图3B所示实施例中的具体描述。可以理解,图3B仅仅是示例性的给出一种实现方式,本申请并不对如何根据业务标识获取业务的优先级的方式做任何限定,也不对本领域技术人员在阅读本申请内容的基础上可以想到的其它方式进行赘述。
S303,第一网络设备根据业务的优先级获得TCP窗口。本发明实施例中,TCP窗口具体指TCP窗口的大小或TCP窗口的值。
第一网络设备如何根据业务的优先级获得TCP窗口可以参考下述图3C所示实施例中的具体描述。可以理解,图3C仅仅是示例性的给出一种实现方式,本申请并不对如何获取TCP窗口方式限定,也不对本领域技术人员在阅读本申请内容的基础上可以想到的其它方式进行赘述。
S304,第一网络设备向第二网络设备发送第一TCP ACK报文,第一TCP ACK报文包含TCP窗口。
基于图3A所示的方法,本发明实施例提供了一种业务报文发送方法,参阅图3B所示,具体提供了一种第一网络设备如何根据业务标识获取TCP窗口的实施方式,该方法包括:
S301,第一网络设备接收第二网络设备发送的TCP报文,TCP报文包含业务标识。
S3021,在第一网络设备接收到该TCP报文后,将该TCP报文中的业务标识向控制器发送。
控制器存储有业务标识和业务优先级的对应关系。可选地,第一网络设备可以先获得该TCP报文中的业务标识,然后将业务标识向控制器发送。或者,第一网络设备也可以直接将该TCP报文复制一份向控制器发送,控制器根据该TCP报文获得业务标识。
S3022,控制器在获得到业务标识后,根据业务标识和业务优先级的对应关系,获得该业务标识所对应的业务的优先级,然后将业务的优先级发送到第一网络设备。
S3023,第一网络设备接收控制器发送的该业务标识所对应的业务的优先级。
在本发明实施例中,控制器对网络中的网络设备控制或管理。控制器可以为网络管理设备或者为软件定义网络(Software-defined networking,SDN)架构下的控制器。本发明实施例中的网络设备可以分别为路由器或交换机,或者为SDN网络架构下的转发器。
S303,第一网络设备根据业务的优先级获得TCP窗口。
S304,第一网络设备向第二网络设备发送第一TCP ACK报文,第一TCP ACK报文包含TCP窗口。
在一个示例中,第一网络设备接收控制器发送的流表,流表用于指导第一网络设备将第一TCP ACK报文向第二网络设备发送。第一网络设备保存控制器下发的流表,第一网络设备将获得的TCP窗口添加到流表中。在第一网络设备需要向第二网络设备发送该TCP窗口时,第一网络设备先从该第一网络设备保存的含有该TCP窗口的流表中获得该TCP窗口,然后将该TCP窗口添加到第一TCP ACK报文中,并将第一TCP ACK报文向所述第二网络设备发送。
图3C为本发明实施例提供的一种根据业务优先级获得TCP窗口的方法,该方法可以应用于图3A或图3B所示实施例中的步骤S303中。参阅图3C所示,该方法包括:
S3031,计算设备判断业务的优先级的大小,即判断业务的优先级是高优先级还是低优先级。可选地,计算设备为本发明实施例中的第一网络设备或控制器。
S3032,当计算设备确定业务的优先级为第一优先级时,计算TCP窗口。其中,第一优先级对应的业务为高优先级业务。
在一个示例中,在步骤S3032中,计算设备为第一网络设备。当第一网络设备确定业务的优先级为第一优先级时,获取该业务的业务需求信息,并根据所述业务需求信息计算该TCP窗口。
在一个示例中,当该计算设备为第一网络设备时,该第一网络设备获得该业务的业务需求信息可以通过以下两种方式:
第一种方式,第一网络设备将业务标识向控制器发送,控制器存储有业务标识和业务需求信息的对应关系。在控制接收到业务标识后,根据业务标识确定对应的业务需求信息,然后将业务需求信息向第一网络设备发送。其中,第一网络设备可以将TCP报文复制一份,然后将复制的TCP报文向控制器发送,控制器根据复制的TCP报文获得业务标识。或者,第一网络设备先从该TCP报文中解析得到的业务标识,然后将 该业务标识向控制器发送。
第二种方式,第一网络设备预先存储有业务标识和业务需求信息的对应关系,在第一网络设备确定业务的优先级为高优先级后,从该对应关系中获得业务需求信息。
在一个示例中,当第一网络设备确定业务的优先级为第一优先级,并且所述第一网络设备的缓存中被占用的缓存大于或等于第一阈值时,第一网络设备才去获得该业务的业务需求信息,并根据所述业务需求信息计算TCP窗口。在本发明实施例中,缓存的大小也可以理解为缓存的值。第一阈值为预先设定的一个值,例如,第一网络设备的缓存的大小为100兆,第一阈值可以取值为70兆,当第一网络设备的缓存中被占用的缓存大于或等于70兆时,获得该业务的业务需求信息。采用上述方式,第一网络设备在确定第一网络设备的缓存中被占用的缓存大于或等于第一阈值时,才根据业务需求信息计算TCP窗口,从而避免频繁计算TCP窗口导致对网络资源的过多占用。
具体如何根据所述业务需求信息计算该TCP窗口请参考以下详细描述。
S3033,当计算设备确定业务的优先级为第二优先级时,获得第一网设备的缓存中被占用的缓存的大小。第一优先级大于第二优先级,第二优先级对应的业务为低优先级业务。
S3034,计算设备判断第一网络设备的缓存中被占用的缓存是否大于或等于第二阈值。可选地,第一网络设备的缓存是指第一网络设备总的缓存。
S3035,当计算设备确定第一网络设备的缓存中被占用的缓存大于或等于第二阈值时,设置TCP窗口为0,或者设置TCP窗口为一个较小值。其中,该较小值的取值需要能够保证该业务不会中断,例如:该较小值可以取值10K或100K等。第二阈值为预先设定的一个值,例如,第一网络设备的缓存的大小为100兆,第二阈值可以取值为80兆,当第一网络设备的缓存中被占用的缓存大于或等于80兆时,设置TCP窗口为0,或者设置TCP窗口为一个较小值。第一阈值和第二阈值的取值可以相同也可以不同。
在一个示例中,当计算设备确定第一网络设备的缓存中被占用的缓存小于第二阈值时,TCP窗口取值为默认值,例如:TCP窗口可以取值为最近一次计算获得TCP窗口,或特定值。
在一个示例中,在步骤S3032中,计算设备为第一网络设备,在另外的示例中,该计算设备也可以为控制器。在控制器为计算设备的实施方式下,当第一网络设备判断业务的优先级为第一优先级时,第一网络设备向控制器发送通告消息,由控制器计算TCP窗口。控制器根据存储的业务标识和业务需求信息的对应关系,确定对应业务标识的业务需求,并根据该业务需求信息计算TCP窗口。具体控制器计算TCP窗口过程可以参考下述图4所示的实施例。
在一个示例中,业务需求信息包含吞吐率,该吞吐率用于标识第一网络设备在单位时间内需要传输的对应该业务标识的业务的流量,计算设备根据该吞吐率和第一网络设备的缓存中被占用缓存的大小计算TCP窗口。计算设备通过以下两种方式计算TCP窗口:
第一种方式,计算设备利用如下公式计算该TCP窗口:
Figure PCTCN2018117367-appb-000005
其中,
Throughput为该吞吐率;
B为第一网络设备的缓存的大小,该缓存包含第一网络设备被占用的缓存和未被占用的缓存;
currentB为第一网络设备缓存中被占用的缓存的大小;
当所述第一网络设备为所述业务报文的接收端时,C为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,C为所述第一网络设备发送所述业务报文的出接口的发送速率;
window为需要计算的TCP窗口。
计算设备利用上述公式能够计算得到一个TCP窗口的范围,这个范围内的TCP窗口都是能够满足该业务的吞吐率的要求的,并且可以灵活调整TCP窗口。例如,当第一网络设备的缓存占用率超过一个特定阈值,例如:80%,可以选择TCP窗口为上述公式计算的范围内的较小值,例如最小值,如果第一网络设备的缓存占用率低于一个特定阈值,例如40%,可以选择TCP窗口为上述公式计算的范围内的较大值,例如最大值,这样能够灵活的调整TCP窗口,满足用户业务需求的同时,避免第一网络设备的缓存被过多占用,减少业务报文的丢包。
第二种方式,计算设备利用如下公式计算该TCP窗口:
Figure PCTCN2018117367-appb-000006
其中,
Throughput为该吞吐率;
B为第一网络设备的缓存的大小;
currentB为所述第一网络设备缓存中被占用的缓存的大小;
当所述第一网络设备为所述业务报文的接收端时,C为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,C为所述第一网络设备发送所述业务报文的出接口的发送速率;
window为需要计算的该TCP窗口;
当所述第一网络设备为所述业务报文的接收端时,例如,第一网络设备为图1中的设备106,第二网络设备可以为图1中的设备101或设备102,Δt为所述第一网络设备处理被占用的缓存中业务报文的处理时延;当所述第一网络设备为所述业务报文传输路径上的中间设备时,例如,第一网络设备为图1中的设备105,第二网络设备可以为图1中的设备101或设备102,Δt为所述第一网络设备发送业务报文的出接口的发送时延。
计算设备在计算TCP窗口时,还利用了第一网络设备发送业务报文的出接口的发送时延,或第一网络设备处理被占用的缓存中业务报文的处理时延,这样计算TCP窗口的范围更加精确。特别的,在第一网络设备发送业务报文的出接口的发送时延较大,或第一网络设备处理被占用的缓存中业务报文的处理时延较大时,计算得到的TCP窗口的范围会更精确,这样能够更准确的满足用户业务的需求。
在一个示例中,在计算设备利用上述两种方式计算TCP窗口时,该TCP窗口的取值还满足以下公式:
window<B-currentB。
由于第一网络设备在计算TCP窗口时,第一网络设备的剩余缓存为B-currentB,所以第一网络设备最多也只能存储剩余缓存大小的报文,利用这个公式作为计算TCP窗口的一个补充,可以一定程度的减少业务报文的丢包。
在一个示例中,基于图3A所示的业务报文发送的方法,本发明实施例还提供的一种业务报文发送的方法,图3D为该方法的流程示意图,参阅图3D所示,该方法包括:
S301,第一网络设备接收第二网络设备发送的TCP报文,TCP报文包含业务标识。
S302,第一网络设备根据业务标识获得业务标识对应的业务的优先级。
S303,第一网络设备根据业务的优先级获得TCP窗口。
S3034,第一网络设备向第三网络设备发送所述TCP报文。
S3035,第一网络设备接收第三网络设备发送的第二TCP ACK报文。
S3036,第一网络设备用步骤S303中获得的TCP窗口更新第二TCP ACK报文中的TCP窗口,生成第一TCP ACK报文。
S304,发送该第一TCP ACK报文。
在本发明实施例中,上述步骤S301、S302、S303以及S304与图3A中步骤S301、S302、S303以及S304相同,详细内容请阅图3A所示实施例,此处不再一一赘述。
在本实施例中,第二网络设备为业务报文的发送端,第一网络设备为业务报文传输路径上的一个中间设备,第三网络设备为业务报文的接收端。举例来说,第一网络设备为图1中的设备105,第二网络设备为图1中的设备101或设备102,第三网络设备为图1中的设备106。第一网络设备作为传输路径上的中间设备,主动拦截TCP报文,并根据业务的优先级计算TCP窗口,并将TCP窗口替换业务报文接收端发送的TCP ACK报文中的TCP窗口,从而能够灵活控制发送端发送的业务报文的大小。另外,在使用图3C所示的公式计算TCP窗口时,第一网络设备根据第一网络设备的缓存的被占用情况及业务需求信息来计算TCP窗口,能够为被转发的业务提供更精确的业务传输保障。
在一个示例中,步骤S302和S303可以在步骤S3032之前或之后执行,本发明实施例不做具体限制。
在一个示例中,第一网络设备获取业务标识可以通过以下四种方式:
第一种方式,从第二网络设备向第三网络设备发送的用于建立TCP连接的TCP SYN报文中获取业务标识,例如,从图2中的S201部分的第一SYN报文中获取业务标识。
第二种方式,从第三网络设备向第一网络设备发送的用于建立TCP连接的TCP SYN报文或TCP ACK报文中获取业务标识,例如,从图2所示方法中S202部分的第一ACK报文或第二SYN报文中获取业务标识。
第三种方式,从第二网络设备向第三网络设备发送的用于建立TCP连接的TCP ACK报文中获取业务标识,例如,从图2中的S203部分的第二TCP ACK报文中获取业务标识。
第四种方式,从第二网络设备向第三网络设备发送的业务报文中获取获取业务标识,例如,从图2中的S204部分的业务报文中获取业务标识。
在一个示例中,第一网络设备从高速接口接收报文,并从低速接口发送报文,例如,第一网络设备从第二网络设备接收TCP业务报文的接口的速率为第一速率,第一网络设备向第三网络设备发送TCP业务报文的接口的速率为第二速率,第一速率大于第二速率。
在一个示例中,在图3A、图3B或图3D所示的方法中步骤S304之后还可以包括:
第一网络设备接收第二网络设备发送的对应该业务标识业务报文。该业务报文的净荷(payload)部分大小为步骤S303中获得的TCP窗口,或者,该业务报文的整个报文的大小为步骤S303中获得的TCP窗口。
在一个示例中,当第一网络设备作为业务报文的传输路径上的中间设备时,第一网络设备还将从第二网络设备接收的业务报文向业务报文的接收端发送,例如,第一网络设备为图1中的设备105,第二网络设备可以为图1中的设备101或设备102,在第一网络设备从第二网络设备接收到业务报文后,还会将业务报文向图1中的设备106发送。
结合图1所示的应用场景,本发明实施例还提供了一种业务报文发送方法,参阅图4所示,该方法包括:
S401,第一网络设备接收第二网络设备发送的TCP报文,TCP报文包含业务标识。具体实现方式参考上述图3A、3B以及3D中的步骤S301,此处不再赘述。
S402,在第一网络设备接收到该TCP报文后,将该TCP报文中的业务标识向控制器发送,相应地,控制器接收该业务标识。可选地,第一网络设备可以先获得该TCP报文中的业务标识,然后将业务标识向控制器发送。或者,第一网络设备也可以直接将该TCP报文复制一份向控制器发送,控制器根据该TCP报文获得业务标识。具体可以参考上述图3B中的步骤S3021。
S403,控制器在获得到业务标识后,根据业务标识和业务优先级的对应关系,确定该业务标识所对应的业务的优先级。具体根据业务标识确定业务标识对应的业务的优先级可以参考上述图3A中的步骤S302,或图3B中步骤S3022,此处不再赘述。
S404,控制器根据业务的优先级计算TCP窗口。具体根据业务优先级计算TCP窗口的计算方式可以参见上述图3C所示的方法,此处不再赘述。
S405,控制器向第一网络设备发送TCP窗口,相应地,第一网络设备接收该TCP窗口。
S406,第一网络设备生成第一TCP ACK报文,该第一TCP ACK报文包含该TCP窗口。
S407,第一网络设备向第二网络设备发送第一TCP ACK报文,该TCP窗口用于所述第二网络设备计算向所述第一网络设备发送的业务报文的大小。
在一个示例中,第一网络设备为业务报文的接收端,第二网络设备为业务报文的发送端。例如,第一网络设备为图1中的设备106,第二网络设备可以为图1中的设备101或设备102。
在一个示例中,图4所示方法还包括:第一网络设备向第三网络设备发送该TCP报文,并接收第三网络设备发送的第二TCP ACK报文。第一网络设备用步骤S404中计算得到的TCP窗口更新第二TCP ACK报文中的TCP窗口,生成步骤S406中的第一TCP ACK报文。在该示例中,第一网络设备为业务报文转发路径上的中间设备,第二网络设备为业务报文的发送端,第三网络设备为业务报文的接收端。第一网络设备可以为图1中的设备105,第二网络设备可以为图1中的设备101或设备102,第三网络设备为图1中的设备106。
在本发明实施例中,控制器根据业务的优先级计算TCP窗口,由于基于业务优先级计算TCP窗口,因此能够满足不同优先级业务的不同传输需求,从而能够灵活的控制发送端发送报文的大小,有利于减少业务报文的丢包。
图5示出了上述实施例中所涉及的第一网络设备的一种可能的结构示意图,该第一网络设备500可以实现图3A、3B、3C、3D或图4所示的实施例中的第一网络设备的功能。参阅图5,该第一网络设备500包括:接收单元501,确定单元502,处理单元503和发送单元504。这些单元可以执行上述方法实施例中第一网络设备的相应功能。接收单元501,用于支持第一网络设备500执行图3A中的过程S301,图3B中的过程S301和S3023,图3D中的过程S301和S3035,和/或图4中的过程S401和S405;确定单元502,用于支持第一网络设备500执行图3A中的过程S302,和/或图3D中的过程S302;发送单元504,用于支持第一网络设备500执行图3A中的过程S304,图3B中的过程S3021和S304,图3D中的过程S3034和S304,和/或图4中的过程S402和S407。处理单元503用于支持第一网络设备500执行图3A中的过程S303,图3B中的过程S303,图3C中的过程S3031、S3032、S3033、S3034和S3035,图3D中的过程S303和S3036,图4中的过程S406,和/或本文所描述的技术中第一网络设备执行的其它过程。例如,接收单元501,用于执行上述方法实施例中第一网络设备执行的各种信息接收;确定单元502,用于执行上述方法实施例中第一网络设备执行的确定动作;发送单元504,用于执行上述方法实施例中第一网络设备执行的各种信息发送;处理单元503,用于执行上述方法实施例中第一网络设备除了信息收发和确定动作之外的其他处理。举例来说,接收单元501,用于接收第二网络设备发送的TCP报文,TCP报文包含业务标识;确定单元502,用于根据业务标识确定业务标识对应的业务的优先级;处理单元503,用于根据业务的优先级获得TCP窗口;发送单元504,用于向第二网络设备发送第一TCP ACK报文,所述第一TCP ACK报文包含所述TCP窗口,所述TCP窗口用于第二网络设备计算向第一网络设备发送的业务报文的大小。具体执行过程请参考上述图3A、3B、3C、3D或图4所示实施例中相应步骤的详细描述,这里不再一一赘述。
在采用集成的单元的情况下,图6示出了上述实施例中所涉及的第一网络设备的另一种可能的结构示意图,该第一网络设备600同样可以实现3A、3B、3C、3D或图4所示的实施例中的第一网络设备的功能。第一网络设备600包括:存储单元601、处理单元602和通信单元603。通信单元603用于支持第一网络设备600与其他网络实体的通信,例如与图3B、图3D或图4中示出的第三网络设备或控制器之间的通信,举例来说,通信单元603用于支持第一网络设备600执行图3A中的过程S301和S304,图3B中的过程S301、S3021、S3023和S304,图3D中的过程S301、S3034、S3035和S304,和/或图4中的过程S401、S402、S405和S407。处理单元602用于对第一网络设备600的动作进行控制管理,例如,处理单元602用于支持第一网络设备600执行图3A中的过程S302和S303,图3B中的过程S303,图3C中的过程S3031、S3032、S3033、S3034和S3035,图3D中的过程S302、S303和S3036,图4中的过程S406,和/或本文所描述的技术中第一网络设备执行的其它过程。存储单元601,用于存储第一网络设备600的程序代码和数据。具体执行过程请参考上述图3A、3B、3C、3D或 图4所示实施例中相应步骤的详细描述,这里不再一一赘述。
其中,处理单元602可以是处理器,例如可以是中央处理器(central processing unit,CPU)、通用处理器,数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元603可以是收发器,存储单元601可以是存储器。
当处理单元602为处理器,通信单元603为收发器,存储单元601为存储器时,本发明实施例所涉及的第一网络设备可以为图7所示的第一网络设备700。
参阅图7所示,该第一网络设备700包括:处理器702、收发器703、存储器701以及总线704。其中,处理器702、收发器703以及存储器701通过总线704相互连接;总线704可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。该第一网络设备700可以实现图3A、3B、3C、3D或图4所示的实施例中的第一网络设备的功能。处理器702和收发器703可以执行上述方法示例中第一网络设备的相应功能。收发器703用于支持第一网络设备700执行图3A中的过程S301和S304,图3B中的过程S301、S3021、S3023和S304,图3D中的过程S301、S3034、S3035和S304,和/或图4中的过程S401、S402、S405和S407。处理器702用于支持第一网络设备700执行图3A中的过程S302和S303,图3B中的过程S303,图3C中的过程S3031、S3032、S3033、S3034和S3035,图3D中的过程S302、S303和S3036,图4中的过程S406,和/或本文所描述的技术中第一网络设备执行的其它过程。存储器701,用于存储第一网络设备700的程序代码和数据。具体执行过程请参考上述图3A、3B、3D或图4所示实施例中相应步骤的详细描述,这里不再一一赘述。
参阅图8所示,本发明实施例提供了另一种第一网络设备800。第一网络设备800可以为路由器或交换器或有转发功能的网络设备,网络设备800能够实现前述方法实施例中的第一网络设备的功能。所述第一网络设备800包括:主控板801和接口板802。主控板801包括:处理器803和存储器804。接口板802包括:处理器805、存储器806和接口卡807。主控板801和接口板802耦合。
这些硬件可以执行上述方法示例中的相应功能,例如,存储器806可以用于存储接口板802的程序代码,处理器805用于调用存储器806中的程序代码触发接口卡807执行上述方法实施例中第一网络设备执行的各种信息接收和发送,例如,处理器805调用存储器806中的程序代码触发接口卡807支持第一网络设备800执行图3A中的过程S301和S304,图3B中的过程S301、S3021、S3023和S304,图3D中的过程S301、S3034、S3035和S304,和/或图4中的过程S401、S402、S405和S407。处理器805,还用于将业务标识向主控板801发送。存储器804可以用于存储主控板801的程序代 码,处理器803用于调用存储器804中的程序代码执行上述方法实施例中第一网络设备除了信息收发之外的其他处理。例如,处理器803用于支持第一网络设备800执行图3A中的过程S302和S303,图3B中的过程S303,图3C中的过程S3031、S3032、S3033、S3034和S3035,图3D中的过程S302、S303和S3036,图4中的过程S406,和/或本文所描述的技术中第一网络设备执行的其它过程。存储器804用于存储主控板801的程序代码和数据。具体执行过程请参考上述图3A、3B、3C、3D或图4所示实施例中相应步骤的详细描述,这里不再一一赘述。
在一种可能的实现方式中,主控板801和接口板802之间建立IPC控制通道,主控板801和接口板802之间利用该IPC控制通道进行通信。
图9示出了上述实施例中所涉及的控制器的一种可能的结构示意图,该控制器可以实现图3B、3C或图4所示的实施例中的控制器的功能。参阅图9,该控制器900包括:接收单元901,确定单元902,处理单元903和发送单元904。这些单元可以执行上述方法示例中控制器的相应功能。接收单元901,用于支持控制器900执行图3B中的过程S3021,和/或图4中的过程S402;确定单元902,用于支持控制器900执行图3B中的过程S3022,图4中的过程S403;发送单元904,用于支持控制器900执行图3B中的过程S3023,图4中的过程S405;处理单元903用于支持控制器900执行图3C中的过程S3031、S3032、S3033、S3034和S3035,图4中的过程S404,和/或本文所描述的技术中控制器执行的其它过程。例如,接收单元901,用于执行上述方法实施例中控制器执行的各种信息接收;确定单元902,用于执行上述方法实施例中控制器执行的确定动作;发送单元904,用于执行上述方法实施例中控制器执行的各种信息发送;处理单元903,用于执行上述方法实施例中控制器除了信息收发和确定动作之外的其他处理。举例来说,接收单元901,用于用于接收第一网络设备发送的业务标识;确定单元902,用于根据业务标识确定业务标识对应的业务的优先级;处理单元903,用于根据业务的优先级计算TCP窗口;发送单元904,用于将TCP窗口向第一网络设备发送,以便于第一网络设备将TCP窗口发送到第二网络设备,所述TCP窗口用于第二网络设备计算向第一网络设备发送的业务报文的大小。具体执行过程请参考上述图3B、3C或图4所示实施例中相应步骤的详细描述,这里不再一一赘述。
需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。例如,上述实施例中,接收单元和发送单元可以是同一个单元,也不同的单元。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
在采用集成的单元的情况下,图10示出了上述实施例中所涉及的控制器的另一种可能的结构示意图,该控制器1000同样可以实现3B、3C或图4所示的实施例中的控制器的功能。
控制器1000包括:存储单元1001、处理单元1002和通信单元1003。通信单元1003用于支持控制器1000与其他网络实体的通信,例如,用于支持控制器900执行 图3B中的过程S3021、S3023,和图4中的过程S402、S405。处理单元1002用于对控制器1000的动作进行控制管理,例如,处理单元1002用于支持控制器1000执行图3B中的过程S3022,图3C中的过程S3031、S3032、S3033、S3034和S3035,图4中的过程S404,和/或本文所描述的技术中控制器执行的其它过程。存储单元1001,用于存储控制器1000的程序代码和数据。具体处理过程请参考上述图3B、3C或图4所示实施例中相应步骤的详细描述,这里不再一一赘述
其中,处理单元1002可以是处理器,例如可以是CPU、通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元1003可以是收发器。存储单元1001可以是存储器。
当处理单元1002为处理器,通信单元1003为收发器,存储单元1001为存储器时,本发明实施例所涉及的控制器可以为图11所示的控制器1100。
参阅图11所示,该控制器1100包括:处理器1102、收发器1103、存储器1101以及总线1104。其中,收发器1103、处理器1102以及存储器1101通过总线1104相互连接;总线1104可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。该控制器1100可以实现图3B或图4所示的实施例中的控制器的功能。处理器1102和收发器1103可以执行上述方法示例中控制器的相应功能。收发器1103用于支持第控制器1100执行图3B中的过程S3021、S3023,和/或图4中的过程S402和S405。处理器1102用于支持控制器1100执行图3B中的过程S3022,图3C中的过程S3031、S3032、S3033、S3034和S3035,图4中的过程S404,和/或本文所描述的技术中控制器执行的其它过程。存储器701,用于存储控制器1100的程序代码和数据。具体执行过程请参考上述图3B或图4所示实施例中相应步骤的详细描述,这里不再一一赘述。
参阅图12所示,发明实施例提供了另一种业务报文发送的***1200,该***1200用于实现前述方法实施例中的业务报文发送的方法。该***1200包括第一网络设备1201和第二网络设备1202。该第一网络设备1201和第二网络设备1202可以分别实现图3A、3B、3C、3D或图4所示的实施例中的第一网络设备和第二网络设备的功能。例如,第一网络设备1201执行图3A中的过程S301、S302、S302和S304,图3B中的过程S301、S3021、S3022、S3023、S303和S304,图3C中的过程S3031、S3032、S3033、S3034和S3035,图3D中的过程S301、S302、S303、S3034、S3035、S3036和S304,和/或用于本文所描述的技术中第一网络设备执行的其它过程。第二网络设备1202,用于向第一网络设备1201发送TCP报文,该TCP报文包含业务标识,并接收第一网络设备1201发送的第一TCP ACK报文,该第一TCP ACK报文包含网络设备1201获得的TCP窗口。
在一个示例中,该***1200还包括第三网络设备,该第三网络设备用于实现图3D所示的实施例中第三网络设备的功能。例如,接收第一网络设备1201发送的TCP 报文,并向第一网络设备1201发送针对该TCP报文的ACK报文。
在一个示例中,该***1200还包括控制器,该控制器用于实现图3B、3C和图4所示实施例中的控制器的功能。例如,接收第一网络设备1201发送的业务标识,根据业务标识获得业务优先级,并计算TCP窗口;向第一网络设备1201发送计算得到的TCP窗口。
本发明实施例还提供了一种存储介质,用于储存前述实施例中所用的软件指令,其包括用于执行前述实施例所示的方法的程序,当其在计算机或设备上执行时,使得所示计算机或设备执行前述方法实施例中的方法。
本发明实施例中提到的第一网络设备中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”和“第三”。
需说明的是,以上描述的任意装置实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的第一网络设备或控制器实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read only memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、硬盘、移动硬盘、光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (29)

  1. 一种业务报文发送的方法,其特征在于,包括:
    第一网络设备接收第二网络设备发送的传输控制协议TCP报文,所述TCP报文包含业务标识;
    所述第一网络设备根据所述业务标识确定所述业务标识对应的业务的优先级;
    所述第一网络设备根据所述业务的优先级获得TCP窗口;
    所述第一网络设备向所述第二网络设备发送第一TCP ACK报文,所述第一TCP ACK报文包含所述TCP窗口,所述TCP窗口用于所述第二网络设备计算向所述第一网络设备发送的业务报文的大小。
  2. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    所述第一网络设备向第三网络设备发送所述TCP报文;
    所述第一网络设备接收所述第三网络设备发送的第二TCP ACK报文,所述第一网络设备用所述TCP窗口更新所述第二TCP ACK报文中的TCP窗口,生成所述第一TCP ACK报文。
  3. 根据权利要求1或2所述的方法,其特征在于,所述第一网络设备根据所述业务的优先级获得TCP窗口包括:
    在所述第一网络设备确定所述业务的优先级为第一优先级时,获得所述业务的业务需求信息,并根据所述业务需求信息计算所述TCP窗口。
  4. 根据权利要求3所述的方法,其特征在于,所述第一网络设备获得所述业务的业务需求信息包括:
    所述第一网络设备将所述业务标识发送到存储有所述业务标识和所述业务需求信息的对应关系的控制器;
    所述第一网络设备接收所述控制器发送的所述业务需求信息。
  5. 根据权利要求3所述的方法,其特征在于,所述第一网络设备存储有所述业务标识和所述业务需求信息的对应关系,所述第一网络设备获得所述业务的业务需求信息包括:
    所述第一网络设备利用所述业务标识从所述对应关系中获得所述业务需求信息。
  6. 根据权利要求1或2所述的方法,其特征在于,所述第一网络设备根据所述业务的优先级获得TCP窗口包括:
    在所述第一网络设备确定所述业务的优先级为第一优先级时,所述第一网络设备将所述业务标识向控制器发送,所述控制器存储有所述业务标识和所述业务的业务需求信息的对应关系;
    所述第一网络设备接收所述控制器根据所述业务的业务需求信息计算的所述TCP窗口。
  7. 根据权利要求3至6任一权利要求所述的方法,其特征在于,所述业务需求信息包括吞吐率,所述吞吐率用于标识所述第一网络设备单位时间内需要传输的对应所述业务的流量,所述根据所述业务需求信息计算所述TCP窗口包括:
    根据所述吞吐率和所述第一网络设备的缓存中被占用缓存的大小计算所述TCP窗口。
  8. 根据权利要求7所述的方法,其特征在于,利用如下公式计算所述TCP窗口:
    Figure PCTCN2018117367-appb-100001
    其中,
    Throughput为所述吞吐率;
    B为所述第一网络设备的缓存的大小;
    currentB为所述第一网络设备缓存中被占用的缓存的大小;
    当所述第一网络设备为所述业务报文的接收端时,C为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,C为所述第一网络设备发送所述业务报文的出接口的发送速率;
    window为需要计算的所述TCP窗口。
  9. 根据权利要求7所述的方法,其特征在于,利用如下公式计算所述TCP窗口:
    Figure PCTCN2018117367-appb-100002
    其中,
    Throughput为所述吞吐率;
    B为所述第一网络设备的缓存的大小;
    currentB为所述第一网络设备缓存中被占用的缓存的大小;
    当所述第一网络设备为所述业务报文的接收端时,C为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,C为所述第一网络设备发送所述业务报文的出接口的发送速率;
    window为需要计算的所述TCP窗口;
    当所述第一网络设备为所述业务报文的接收端时,Δt为所述第一网络设备处理被占用的缓存中业务报文的处理时延,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,Δt为所述第一网络设备发送业务报文的出接口的发送时延。
  10. 根据权利要求8或9所述的方法,其特征在于,所述TCP窗口还满足如下公式:
    window<B-currentB。
  11. 根据权利要求1或2所述的方法,其特征在于,所述第一网络设备根据所述业务的优先级获得TCP窗口包括:
    在所述第一网络设备确定所述业务的优先级为第二优先级时,并且确定所述第一网络设备的缓存中被占用的缓存大于或等于阈值时,所述TCP窗口取值为0。
  12. 根据权利要求1至11任一权利要求所述的方法,其特征在于,还包括:
    所述第一网络设备接收所述第二网络设备发送的业务报文,所述业务报文的报文净荷 部分的大小为所述TCP窗口,或者所述业务报文的大小为所述TCP窗口。
  13. 一种业务报文发送的方法,其特征在于,包括:
    控制器接收第一网络设备发送的业务标识;
    所述控制器根据所述业务标识确定所述业务标识对应的业务的优先级;
    所述控制器根据所述业务的优先级计算TCP窗口,并将所述TCP窗口向所述第一网络设备发送,触发所述第一网络设备将所述TCP窗口发送到第二网络设备,所述TCP窗口用于所述第二网络设备计算向所述第一网络设备发送的业务报文的大小。
  14. 根据权利要求13所述的方法,其特征在于,所述控制器根据所述业务的优先级计算TCP窗口包括:
    在所述控制器确定所述业务的优先级为第一优先级时,根据所述业务标识获得所述业务对应的业务需求信息;
    所述控制器根据所述业务需求信息计算所述TCP窗口。
  15. 根据权利要求14所述的方法,其特征在于,所述业务需求信息包括吞吐率,所述吞吐率用于标识所述第一网络设备单位时间内需要传输的对应所述业务的流量,所述控制器根据所述业务需求信息计算所述TCP窗口包括:
    所述控制器根据所述吞吐率和所述第一网络设备的缓存中被占用缓存的大小计算所述TCP窗口。
  16. 根据权利要求15所述的方法,其特征在于,所述控制器利用如下公式计算所述TCP窗口:
    Figure PCTCN2018117367-appb-100003
    其中,
    Throughput为所述吞吐率;
    B为所述第一网络设备的缓存的大小;
    currentB为所述第一网络设备缓存中被占用的缓存的大小;
    当所述第一网络设备为所述业务报文的接收端时,C为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,C为所述第一网络设备发送所述业务报文的出接口的发送速率;
    window为需要计算的所述TCP窗口。
  17. 根据权利要求15所述的方法,其特征在于,所述控制器利用如下公式计算所述TCP窗口:
    Figure PCTCN2018117367-appb-100004
    其中,
    Throughput为所述吞吐率;
    B为所述第一网络设备的缓存的大小;
    currentB为所述第一网络设备缓存中被占用的缓存的大小;
    当所述第一网络设备为所述业务报文的接收端时,C为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,C为所述第一网络设备发送所述业务报文的出接口的发送速率;
    window为需要计算的所述TCP窗口;
    当所述第一网络设备为所述业务报文的接收端时,Δt为所述第一网络设备处理被占用的缓存中业务报文的处理时延,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,Δt为所述第一网络设备发送业务报文的出接口的发送时延。
  18. 一种第一网络设备,其特征在于,包括:
    接收单元,用于接收第二网络设备发送的传输控制协议TCP报文,所述TCP报文包含业务标识;
    确定单元,用于根据所述接收单元接收的所述TCP报文中的所述业务标识确定所述业务标识对应的业务的优先级;
    处理单元,用于根据所述确定单元确定的所述业务的优先级获得TCP窗口;
    发送单元,用于向所述第二网络设备发送第一TCP ACK报文,所述第一TCP ACK报文包含所述处理单元获得的所述TCP窗口,所述TCP窗口用于所述第二网络设备计算向所述第一网络设备发送的业务报文的大小。
  19. 根据权利要求18所述的第一网络设备,其特征在于,
    所述发送单元,还用于向第三网络设备发送所述TCP报文;
    所述接收单元,还用于接收所述第三网络设备发送的第二TCP ACK报文;
    所述处理单元,还用于利用所述TCP窗口更新所述第二TCP ACK报文中的TCP窗口,生成所述第一TCP ACK报文。
  20. 根据权利要求18或19所述的第一网络设备,其特征在于,包括:
    所述确定单元,还用于确定所述业务的优先级是否为第一优先级;
    所述处理单元根据所述确定单元确定的所述业务的优先级获得TCP窗口包括:
    在所述确定单元确定所述业务的优先级为第一优先级时,所述处理单元获得所述业务的业务需求信息,并根据所述业务需求信息计算所述TCP窗口。
  21. 根据权利要求18或19所述的第一网络设备,其特征在于,
    所述确定单元,还用于确定所述业务的优先级是否为第一优先级;
    所述发送单元,还用于在所述确定单元确定所述业务的优先级为第一优先级时,将所述业务标识向控制器发送,所述控制器存储有所述业务标识和所述业务的业务需求信息的对应关系;
    所述接收单元,还用于接收所述控制器根据所述业务的业务需求信息计算的所述TCP窗口。
  22. 根据权利要求20或21所述的第一网络设备,其特征在于,所述业务需求信息包 括吞吐率,所述吞吐率用于标识所述第一网络设备单位时间内需要传输的对应所述业务的流量,所述根据所述业务需求信息计算所述TCP窗口包括:
    根据所述吞吐率和所述第一网络设备的缓存中被占用缓存的大小计算所述TCP窗口。
  23. 根据权利要求22所述的第一网络设备,其特征在于,利用如下公式计算所述TCP窗口:
    Figure PCTCN2018117367-appb-100005
    其中,
    Throughput为所述吞吐率;
    B为所述第一网络设备的缓存的大小;
    currentB为所述第一网络设备缓存中被占用的缓存的大小;
    当所述第一网络设备为所述业务报文的接收端时,C为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,C为所述第一网络设备发送所述业务报文的出接口的发送速率;
    window为需要计算的所述TCP窗口。
  24. 根据权利要求18或19所述的第一网络设备,其特征在于,包括:
    所述确定单元,还用于确定所述业务的优先级是否为第二优先级,并且确定所述第一网络设备的缓存中被占用的缓存的大小;
    所述处理单元根据所述确定单元确定的所述业务的优先级获得TCP窗口包括:
    在所述确定单元确定所述业务的优先级为第二优先级,并且确定所述第一网络设备的缓存中被占用的缓存大于或等于阈值时,所述处理单元设置所述TCP窗口为0。
  25. 一种业务报文发送的控制器,其特征在于,包括:
    接收单元,用于接收第一网络设备发送的业务标识;
    确定单元,用于据所述接收单元接收的所述业务标识确定所述业务标识对应的业务的优先级;
    处理单元,用于根据所述确定单元确定的所述业务的优先级计算传输控制协议TCP窗口;
    发送单元,用于将所述TCP窗口向所述第一网络设备发送,触发所述第一网络设备将所述TCP窗口发送到第二网络设备,所述TCP窗口用于所述第二网络设备计算向所述第一网络设备发送的业务报文的大小。
  26. 根据权利要求25所述的控制器,其特征在于,包括:
    所述确定单元,用于确定所述业务的优先级是否为第一优先级;
    所述处理单元根据所述确定单元确定的所述业务的优先级计算TCP窗口包括:
    在所述确定单元确定所述业务的优先级为第一优先级时,所述处理单元根据所述业务标识获得所述业务对应的业务需求信息,根据所述业务需求信息计算所述TCP窗口。
  27. 根据权利要求26所述的控制器,其特征在于,所述业务需求信息包括吞吐率, 所述吞吐率用于标识所述第一网络设备单位时间内需要传输的对应所述业务的流量,
    所述处理单元利用如下公式计算所述TCP窗口:
    Figure PCTCN2018117367-appb-100006
    其中,
    Throughput为所述吞吐率;
    B为所述第一网络设备的缓存的大小;
    currentB为所述第一网络设备缓存中被占用的缓存的大小;
    当所述第一网络设备为所述业务报文的接收端时,C为所述第一网络设备从缓存中读取队列的速率,或当所述第一网络设备为所述业务报文传输路径上的中间设备时,C为所述第一网络设备发送所述业务报文的出接口的发送速率;
    window为需要计算的所述TCP窗口。
  28. 一种业务报文发送的***,其特征在,所述***包括第一网络设备和第二网络设备,其中,
    所述第二网络设备,用于向所述第一网络设备发送传输控制协议TCP报文,所述TCP报文包含业务标识;
    所述第一网络设备,用于接收所述第二网络设备发送所述TCP报文;根据所述业务标识确定所述业务标识对应的业务的优先级,根据所述业务的优先级获得TCP窗口;向所述第二网络设备发送TCP ACK报文,所述TCP ACK报文包含所述TCP窗口;
    所述第二网络设备,用于接收所述TCP ACK报文,并根据所述TCP窗口计算向所述第一网络设备发送的业务报文的大小。
  29. 一种计算机可读介质,包括指令,当其在计算机上执行时,使得所述计算机执行如权利要求1至17任意一项所述的方法。
PCT/CN2018/117367 2017-11-28 2018-11-26 一种业务报文发送的方法、网络设备和*** WO2019105317A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP18883666.2A EP3709602A4 (en) 2017-11-28 2018-11-26 SERVICE PACKAGE SENDING PROCESS, NETWORK DEVICE, AND SYSTEM
US16/886,218 US11258717B2 (en) 2017-11-28 2020-05-28 Method for sending service packet, network device, and system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201711212836.8A CN109842564B (zh) 2017-11-28 2017-11-28 一种业务报文发送的方法、网络设备和***
CN201711212836.8 2017-11-28

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/886,218 Continuation US11258717B2 (en) 2017-11-28 2020-05-28 Method for sending service packet, network device, and system

Publications (1)

Publication Number Publication Date
WO2019105317A1 true WO2019105317A1 (zh) 2019-06-06

Family

ID=66665364

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/117367 WO2019105317A1 (zh) 2017-11-28 2018-11-26 一种业务报文发送的方法、网络设备和***

Country Status (4)

Country Link
US (1) US11258717B2 (zh)
EP (1) EP3709602A4 (zh)
CN (1) CN109842564B (zh)
WO (1) WO2019105317A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110505037B (zh) * 2019-08-27 2022-03-01 南方电网科学研究院有限责任公司 一种网络接口通信速率匹配方法、装置、设备和存储介质
CN110493141B (zh) * 2019-08-27 2023-08-08 南方电网科学研究院有限责任公司 一种路由转发传输控制方法、装置、设备和存储介质
CN113765800B (zh) * 2020-06-05 2023-04-28 华为技术有限公司 传输报文的方法、装置、***、设备及可读存储介质
WO2022150685A1 (en) * 2021-01-11 2022-07-14 Arris Enterprises Llc Smart bandwidth allocation
CN113938955B (zh) * 2021-09-09 2023-06-06 中国联合网络通信集团有限公司 数据传输方法、装置、设备及***
CN114189477B (zh) * 2021-10-22 2023-12-26 新华三大数据技术有限公司 一种报文拥塞控制方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101369875A (zh) * 2008-09-12 2009-02-18 上海华为技术有限公司 一种传输控制协议数据包的传输方法、装置及***
CN101507202A (zh) * 2006-08-23 2009-08-12 松下电器产业株式会社 通信装置
CN102893577A (zh) * 2010-06-17 2013-01-23 松下电器产业株式会社 数据发送装置及数据发送方法
US20160255009A1 (en) * 2015-02-26 2016-09-01 Citrix Systems, Inc. System for bandwidth optimization with traffic priority determination

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2682531B1 (fr) 1991-10-15 1993-11-26 Merlin Gerin Disjoncteur multipolaire a blocs unipolaires.
CN101674242B (zh) * 2009-10-13 2011-12-28 福建星网锐捷网络有限公司 一种业务报文发送控制方法及装置
CN102143078B (zh) * 2011-03-29 2013-10-02 华为技术有限公司 一种报文处理方法、转发设备及***
US20140355623A1 (en) * 2013-06-03 2014-12-04 Futurewei Technologies, Inc. Transmission Control Protocol (TCP) Connection Control Parameter In-Band Signaling
US10158575B2 (en) * 2015-06-17 2018-12-18 Citrix Systems, Inc. System for bandwidth optimization with high priority traffic awareness and control

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101507202A (zh) * 2006-08-23 2009-08-12 松下电器产业株式会社 通信装置
CN101369875A (zh) * 2008-09-12 2009-02-18 上海华为技术有限公司 一种传输控制协议数据包的传输方法、装置及***
CN102893577A (zh) * 2010-06-17 2013-01-23 松下电器产业株式会社 数据发送装置及数据发送方法
US20160255009A1 (en) * 2015-02-26 2016-09-01 Citrix Systems, Inc. System for bandwidth optimization with traffic priority determination

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3709602A4

Also Published As

Publication number Publication date
EP3709602A1 (en) 2020-09-16
US11258717B2 (en) 2022-02-22
CN109842564B (zh) 2022-11-11
EP3709602A4 (en) 2020-12-16
US20200296046A1 (en) 2020-09-17
CN109842564A (zh) 2019-06-04

Similar Documents

Publication Publication Date Title
WO2019105317A1 (zh) 一种业务报文发送的方法、网络设备和***
CN108494676B (zh) 数据传输方法、装置、数据收发设备、***及存储介质
EP3720052B1 (en) Service identification method and device, and network device
WO2019169556A1 (zh) 一种报文发送的方法、装置和存储设备
CN108540380B (zh) 多子流网络传输方法及装置
US11968111B2 (en) Packet scheduling method, scheduler, network device, and network system
US20230139633A1 (en) Data Packet Sending Method and Apparatus
JP7487316B2 (ja) サービスレベル構成方法および装置
US20200351215A1 (en) Data Stream Sending Method and System, and Device
CN106537867A (zh) 一种数据传输方法、装置和***
US11165705B2 (en) Data transmission method, device, and computer storage medium
WO2021148020A1 (zh) 调整服务等级的方法、装置、设备及存储介质
WO2017114231A1 (zh) 一种报文发送方法、tcp代理以及tcp客户端
CN109428842A (zh) 一种QoS信息传送方法和装置
EP2854346A1 (en) Method for adjusting bandwidth in network virtualization system
Halepoto et al. Management of buffer space for the concurrent multipath transfer over dissimilar paths
CN111416775B (zh) 数据接收和发送方法、装置及***
CN107231316B (zh) 报文的传输方法及装置
US11805071B2 (en) Congestion control processing method, packet forwarding apparatus, and packet receiving apparatus
CN111615170B (zh) 一种数据传输方法及***
JP2015133669A (ja) 通信装置
CN114070776B (zh) 一种改进的时间敏感网络数据传输方法、装置及设备
CN113098580B (zh) 卫星空口报文缓存与限速处理方法、装置、设备及介质
CN109729018B (zh) 基于流量整形的突发尺寸确定方法及相关设备
US20030014495A1 (en) System, method, and apparatus for preventing data packet overflow at node in wireless packet data services network

Legal Events

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

Ref document number: 18883666

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018883666

Country of ref document: EP

Effective date: 20200609