WO2016169251A1 - 虚拟机的tcp数据传输方法和虚拟机系统 - Google Patents

虚拟机的tcp数据传输方法和虚拟机系统 Download PDF

Info

Publication number
WO2016169251A1
WO2016169251A1 PCT/CN2015/094573 CN2015094573W WO2016169251A1 WO 2016169251 A1 WO2016169251 A1 WO 2016169251A1 CN 2015094573 W CN2015094573 W CN 2015094573W WO 2016169251 A1 WO2016169251 A1 WO 2016169251A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
tcp
time value
adjustment time
tcp adjustment
Prior art date
Application number
PCT/CN2015/094573
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 北京邮电大学
Publication of WO2016169251A1 publication Critical patent/WO2016169251A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1671Details of the supervisory signal the supervisory signal being transmitted together with control information
    • H04L1/1678Details of the supervisory signal the supervisory signal being transmitted together with control information where the control information is for timing, e.g. time stamps
    • 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
    • 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 embodiments of the present invention relate to a computer technology, and in particular, to a transmission control protocol (TCP) data transmission method and a virtual machine system of a virtual machine.
  • TCP transmission control protocol
  • Virtualization technology is the underlying supporting technology of cloud computing technology.
  • Virtualization technology abstracts multiple virtual computers on a single physical machine.
  • the platform that provides access to the underlying hardware resources is called a virtual machine monitor.
  • the abstracted virtual computer is a special application with computer functions called virtual machine. .
  • the TCP virtual data transmission method of the existing virtual machine is used. After the transmitting virtual machine located on the physical machine at the transmitting end sends a data packet to the receiving end virtual machine located on the receiving end physical machine, the receiving end virtual machine sends the virtual machine to the transmitting end virtual machine.
  • ACK Acknowledgement
  • the response packet if the response packet arrives at the physical machine of the sending end, the transmitting virtual machine has been scheduled to go, then the response packet will be cached on the physical machine of the sending end, and the virtual machine at the sending end.
  • the response packet can be received only when it is rescheduled, and when the sender virtual machine is rescheduled, the TCP retransmission timer set on it may have timed out, and this timeout is called a pseudo timeout.
  • the TCP retransmission timer set on the sender virtual machine is timed out. Therefore, the sender virtual machine resends the data packet to the receiving virtual machine, causing waste of network bandwidth resources. And the TCP protocol stack of the sender virtual machine considers that congestion has occurred, thereby turning on congestion control and affecting the throughput of the network.
  • a first aspect of the present invention provides a virtual machine TCP data transmission method for solving the defects in the prior art, reducing network bandwidth resource waste, and improving network throughput.
  • Another aspect of the present invention is to provide a virtual machine system for solving the shortcomings in the prior art. Trap, reduce network bandwidth resource waste, and improve network throughput.
  • a first aspect of the present invention provides a transmission control protocol TCP data transmission method for a virtual machine, including:
  • the virtual machine monitor detects whether the first virtual machine is being scheduled or being scheduled to go within a preset time period
  • the virtual machine monitor determines a first TCP adjustment time value and sends a first notification message including the first TCP adjustment time value to the first virtual machine;
  • the first virtual machine delays the timeout period of its own TCP retransmission timer by the first TCP adjustment time value and sends the first TCP to the second virtual machine that performs TCP communication with the first virtual machine. Adjusting a second notification message of the time value;
  • the second virtual machine determines a second TCP adjustment time value according to the first TCP adjustment time value and delays the time when the data packet is sent to the first virtual machine by the second TCP adjustment time value.
  • the virtual machine monitor is configured to detect whether the first virtual machine is being scheduled or being scheduled to go within a preset time period, and if yes, the virtual machine monitor determines a first TCP adjustment time value and sends the first virtual machine to the first virtual machine Sending a first notification message including the first TCP adjustment time value;
  • the second virtual machine is configured to determine a second TCP adjustment time value according to the first TCP adjustment time value and delay the time for sending the data packet to the first virtual machine to delay the second TCP adjustment time value.
  • the virtual machine monitor detects whether the first virtual machine is being scheduled or is scheduled to go within a preset time. If yes, the virtual machine monitor determines the first TCP adjustment time value and sends the timeout to the scheduling timer. The first virtual machine, the first virtual machine delays the timeout period of its own TCP retransmission timer by the first TCP adjustment time value, and therefore, after the first virtual machine is scheduled to go, when the first virtual machine When rescheduled, the TCP retransmission timer does not time out, thereby reducing the occurrence of a pseudo timeout. The first virtual machine does not resend the previously transmitted data packet, thereby reducing network bandwidth resource waste and, due to TCP retransmission.
  • the timer does not time out, so the TCP stack does not turn on congestion control, which increases network throughput.
  • the TCP adjustment time value determines a second TCP adjustment time value and delays the time when the data packet is sent to the first virtual machine by the second TCP adjustment time value, thereby avoiding the second virtual machine repeating when the first virtual machine is scheduled to travel
  • Sending data packets further reduces the waste of network bandwidth resources.
  • FIG. 1 is a flowchart of a TCP data transmission method of a virtual machine according to Embodiment 1 of the present invention
  • FIG. 2 is a flowchart of a TCP data transmission method of a virtual machine according to Embodiment 2 of the present invention
  • FIG. 3 is a flowchart of a TCP data transmission method of a virtual machine according to Embodiment 3 of the present invention.
  • FIG. 4 is a flowchart of a TCP data transmission method of a virtual machine according to Embodiment 4 of the present invention.
  • FIG. 5 is a flowchart of a TCP data transmission method of a virtual machine according to Embodiment 5 of the present invention.
  • FIG. 6 is a schematic structural diagram of a virtual machine system according to Embodiment 6 of the present invention.
  • FIG. 7 is a schematic structural diagram of a virtual machine monitor according to Embodiment 7 of the present invention.
  • Embodiment 8 is a schematic structural diagram of a virtual machine according to Embodiment 8 of the present invention.
  • FIG. 9 is a schematic structural diagram of a virtual machine according to Embodiment 9 of the present invention.
  • FIG. 10 is a schematic structural diagram of a virtual machine system according to Embodiment 10 of the present invention.
  • FIG. 1 is a flowchart of a TCP data transmission method of a virtual machine according to Embodiment 1 of the present invention. As shown in Figure 1, the method includes the following process.
  • Step 101 The virtual machine monitor detects whether the first virtual machine is being scheduled or is scheduled to go within a preset time period.
  • step 102 is performed, if the virtual machine The monitor detects that the first virtual machine is not being scheduled to travel, nor is it scheduled to go within a preset time period, and then proceeds to step 101, and the virtual machine monitor continues to detect.
  • the preset time period is a parameter that can be flexibly set according to the needs of the actual application, and the specific value of the parameter is a real number greater than 0.
  • the virtual machine monitor can be different for different virtual machine platforms. Detection method. For example, under the XEN virtualization platform, the virtual machine monitor determines in the virtual machine scheduler whether the scheduling timer corresponding to the first virtual machine times out or times out within a preset time period; under the KVM virtualization platform, the virtual machine monitors In the process scheduling module of the Linux kernel, it is determined whether the corresponding process of the first virtual machine is being scheduled or scheduled within a preset time period; under the lguest virtualization platform, the virtual machine monitor can be in the virtual machine context switching module. Determines whether the virtual machine is being switched context or whether it is switched context within a preset time period.
  • step 102 if the virtual machine monitor detects that the scheduling timer of the first virtual machine expires or times out within a preset time period, step 102 is performed, if the virtual machine monitor detects If the scheduling timer of the first virtual machine does not expire and does not time out within the preset time period, step 101 is continued, and the virtual machine monitor detects whether the scheduling timer of the first virtual machine times out or times out within a preset time period.
  • Step 102 If yes, the virtual machine monitor determines a first TCP adjustment time value and sends a first notification message including the first TCP adjustment time value to the first virtual machine.
  • the virtual machine monitor determines a first TCP adjustment time value and sends the first virtual machine with the first TCP adjustment time value.
  • a first notification message wherein the first virtual machine delays a timeout period of its own TCP retransmission timer by the first TCP adjustment time value and sends a second virtual machine to the first virtual machine for TCP communication.
  • the virtual machine monitor detects whether the first virtual machine is being scheduled or is scheduled to go within a preset time period. If yes, the virtual machine monitor determines the first TCP adjustment time value and sends the timeout scheduling. The first virtual machine corresponding to the timer, the first virtual machine delays the timeout period of its own TCP retransmission timer by the first TCP adjustment time value, and therefore, after the first virtual machine is scheduled to go, When a virtual machine is scheduled again, the TCP retransmission timer does not time out, thereby reducing the occurrence of a pseudo timeout, and the first virtual machine does not resend the previously transmitted data packet, thereby reducing network bandwidth resource waste, and The TCP retransmission timer does not time out, so the TCP stack does not turn on congestion control, thereby increasing network throughput.
  • the sending, by the virtual machine monitor, the first notification message including the first TCP adjustment time value to the first virtual machine includes: the virtual machine monitor passes the event channel The mechanism sends a first notification message including the first TCP adjustment time value to the first virtual machine; or the virtual machine monitor sends the first TCP to the first virtual machine by using a shared memory manner Adjust the first notification message for the time value.
  • FIG. 2 is a flowchart of a TCP data transmission method of a virtual machine according to Embodiment 2 of the present invention. As shown in FIG. 2, the method includes the following process.
  • Step 201 The first virtual machine receives a first notification message from the virtual machine monitor that includes the first TCP adjustment time value.
  • the first notification message is sent by the virtual machine monitor when detecting that the first virtual machine is being scheduled or being scheduled to travel within a preset time period.
  • Step 202 The first virtual machine delays the timeout period of its own TCP retransmission timer by the first TCP adjustment time value.
  • Step 203 The first virtual machine sends a second notification message including the first TCP adjustment time value to a second virtual machine that performs TCP communication with the first virtual machine.
  • the first virtual machine sends a second notification message including the first TCP adjustment time value to the second virtual machine that performs TCP communication with the first virtual machine, so that the second virtual
  • the virtual machine monitor detects whether the first virtual machine is being scheduled or is scheduled to go within a preset time period. If yes, the virtual machine monitor determines the first TCP adjustment time value and sends the timeout scheduling. The first virtual machine corresponding to the timer, the first virtual machine delays the timeout period of its own TCP retransmission timer by the first TCP adjustment time value, and therefore, after the first virtual machine is scheduled to go, When a virtual machine is scheduled again, the TCP retransmission timer is not Timeout, thereby reducing the occurrence of pseudo timeout, the first virtual machine will not resend the previously sent data packets, thereby reducing network bandwidth resource waste, and since the TCP retransmission timer does not time out, the TCP protocol stack does not Congestion control is turned on to increase network throughput.
  • the second virtual machine that sends the second notification message including the first TCP adjustment time value to the second virtual machine that performs TCP communication with the first virtual machine includes: The first virtual machine sends a second notification message including the first TCP adjustment time value to a second virtual machine that performs TCP communication with the first virtual machine in a socket manner.
  • FIG. 3 is a flowchart of a TCP data transmission method of a virtual machine according to Embodiment 3 of the present invention. As shown in FIG. 3, the method includes the following process.
  • Step 301 The second virtual machine that performs TCP communication with the first virtual machine receives a second notification message from the first virtual machine that includes a first TCP adjustment time value.
  • Step 302 The second virtual machine determines a second TCP adjustment time value according to the first TCP adjustment time value.
  • Step 303 The second virtual machine delays the sending of the data packet to the first virtual machine by the second TCP adjustment time value.
  • the virtual machine monitor detects whether the first virtual machine is being scheduled or is scheduled within a preset time period, and if so, the virtual machine monitor determines the first TCP adjustment time value and sends the scheduling timing to the timeout.
  • the first virtual machine delays the timeout period of its own TCP retransmission timer by the first TCP adjustment time value and sends a second virtual to the first virtual machine for TCP communication.
  • the time of the packet is postponed by the second TCP adjustment time value.
  • the TCP retransmission timer does not time out, thereby reducing the occurrence of a pseudo timeout.
  • the first virtual machine does not resend the previously sent data packet, and the second virtual machine does not repeatedly send the data packet when the first virtual machine is scheduled to travel, thereby reducing network bandwidth resource waste, and, due to TCP Timer does not pass the timeout, TCP protocol stack and therefore will not turn congestion control to improve network throughput.
  • the second TCP adjustment time value includes:
  • the second virtual machine adjusts, in its own TCP transmission control module, a location of a data packet that needs to be sent to the first virtual machine in a sending queue according to the second TCP adjustment time value;
  • the second virtual machine adds a time delay of the second TCP adjustment time value before sending the data packet to the first virtual machine.
  • FIG. 4 is a flowchart of a TCP data transmission method of a virtual machine according to Embodiment 4 of the present invention.
  • the first physical machine and the second physical machine are included, the virtual machine monitor and the first virtual machine are disposed on the first physical machine, and the second virtual machine is disposed on the second physical machine.
  • the method includes the following process.
  • Step 401 The virtual machine monitor detects whether the first virtual machine is being scheduled or being scheduled to go within a preset time period.
  • step 402 is performed, if the virtual machine The monitor detects that the first virtual machine is not being scheduled to be scheduled, nor is it scheduled to go within a preset time period. Then, step 401 is continued, and the virtual machine monitor continues to detect.
  • the preset time period is a parameter that can be flexibly set according to the needs of the actual application, and the specific value of the parameter is a real number greater than 0.
  • the virtual machine monitor can adopt different detection methods for different virtual machine platforms. For example, under the XEN virtualization platform, the virtual machine monitor determines in the virtual machine scheduler whether the scheduling timer corresponding to the first virtual machine times out or times out within a preset time period; under the KVM virtualization platform, the virtual machine monitors In the process scheduling module of the Linux kernel, it is determined whether the corresponding process of the first virtual machine is being scheduled or scheduled within a preset time period; under the lguest virtualization platform, the virtual machine monitor can be in the virtual machine context switching module. Determine whether the virtual machine is being switched context or whether it is switched up and down within a preset time period Text.
  • step 402 if the virtual machine monitor detects that the scheduling timer of the first virtual machine expires or times out within a preset time period, step 402 is performed, if the virtual machine monitor detects If the scheduling timer of the first virtual machine does not time out and does not time out within the preset time period, step 401 is continued, and the virtual machine monitor detects whether the scheduling timer of the first virtual machine times out or times out within a preset time period.
  • Step 402 If yes, the virtual machine monitor determines the first TCP adjustment time value and sends a first notification message including the first TCP adjustment time value to the first virtual machine.
  • Step 403 The first virtual machine delays the timeout period of its own TCP retransmission timer by the first TCP adjustment time value and sends the first virtual adjustment time value to the second virtual machine that performs TCP communication with the first virtual machine. Two notification messages.
  • Step 404 The second virtual machine determines the second TCP adjustment time value according to the first TCP adjustment time value and delays the time when the data packet is sent to the first virtual machine by the second TCP adjustment time value.
  • the virtual machine monitor detects whether the first virtual machine is being scheduled or is scheduled to go within a preset time period. If yes, the virtual machine monitor determines the first TCP adjustment time value and sends the timeout scheduling. The first virtual machine corresponding to the timer, the first virtual machine delays the timeout period of its own TCP retransmission timer by the first TCP adjustment time value, and therefore, after the first virtual machine is scheduled to go, When a virtual machine is scheduled again, the TCP retransmission timer does not time out, thereby reducing the occurrence of a pseudo timeout, and the first virtual machine does not resend the previously transmitted data packet, thereby reducing network bandwidth resource waste, and The TCP retransmission timer does not time out, so the TCP stack does not turn on congestion control, thereby increasing network throughput.
  • FIG. 5 is a flowchart of a method for transmitting TCP data of a virtual machine according to Embodiment 5 of the present invention.
  • the first physical machine and the second physical machine are included, the virtual machine monitor and the first virtual machine are disposed on the first physical machine, and the second virtual machine is disposed on the second physical machine.
  • the method includes the following process.
  • Step 501 The virtual machine monitor detects whether the first virtual machine is being scheduled or being scheduled to go within a preset time period.
  • step 501 if the virtual machine monitor detects that the first virtual machine is being scheduled to go, or the virtual machine monitor detects that the first virtual machine is scheduled to go within a preset time period, performing steps 502. If the virtual machine monitor detects that the first virtual machine is not being scheduled to be scheduled, and is not scheduled to go within a preset time period, proceed to step 501, and the virtual machine monitor continues to detect.
  • the preset time period is a parameter that can be flexibly set according to the needs of the actual application, and the specific value of the parameter is a real number greater than 0.
  • the virtual machine monitor can adopt different detection methods for different virtual machine platforms. For example, under the XEN virtualization platform, the virtual machine monitor determines in the virtual machine scheduler whether the scheduling timer corresponding to the first virtual machine times out or times out within a preset time period; under the KVM virtualization platform, the virtual machine monitors In the process scheduling module of the Linux kernel, it is determined whether the corresponding process of the first virtual machine is being scheduled or scheduled within a preset time period; under the lguest virtualization platform, the virtual machine monitor can be in the virtual machine context switching module. Determines whether the virtual machine is being switched context or whether it is switched context within a preset time period.
  • step 502 if the virtual machine monitor detects that the scheduling timer of the first virtual machine expires or times out within a preset time period, step 502 is performed, if the virtual machine monitor detects If the scheduling timer of the first virtual machine does not expire and does not time out within the preset time period, proceed to step 501, the virtual machine monitor detects whether the scheduling timer of the first virtual machine times out or times out within a preset time period.
  • Step 502 If yes, the virtual machine monitor determines a first TCP adjustment time value and sends a first notification message including the first TCP adjustment time value to the first virtual machine.
  • the virtual machine monitor can determine the first TCP adjustment time value in various ways.
  • the virtual machine monitor may adopt a preset unified first TCP adjustment time value, or the virtual machine monitor may determine the first virtual according to a correspondence between the preset virtual machine and the first TCP adjustment time value.
  • the first TCP adjustment time value corresponding to the machine, or the first TCP adjustment time value may also be determined in other various manners.
  • the scheduling algorithm of the virtual machine monitor is denoted by F.
  • the virtual machine monitor may send a first notification message including the first TCP adjustment time value to the first virtual machine in multiple manners.
  • the method is: the virtual machine monitor sends a first notification message including the first TCP adjustment time value to the first virtual machine by using a virtual machine monitor and a virtual machine communication manner provided by different virtualization platforms, for example, The virtual machine monitor provided by the Xen-type virtualization platform communicates with the virtual machine as an event channel mechanism.
  • the virtual machine monitor sends a first notification message including the first TCP adjustment time value to the first virtual machine by using a shared memory manner, for example, a Xen type
  • the shared memory mode provided by the virtualization platform is the authorization table mechanism.
  • Step 503 The first virtual machine delays the timeout period of its own TCP retransmission timer by the first TCP adjustment time value.
  • Step 504 The first virtual machine sends a second notification message including the first TCP adjustment time value to a second virtual machine that performs TCP communication with the first virtual machine.
  • the first virtual machine may send a second notification message including the first TCP adjustment time value to the second virtual machine that performs TCP communication with the first virtual machine in multiple manners.
  • the first virtual machine sends a socket including the first TCP adjustment time value to a second virtual machine that performs TCP communication with the first virtual machine in a socket manner. Two notification messages.
  • a preferred embodiment is: the first virtual machine queries the TCP transmission control block of the kernel, and finds all the second virtual machines that perform TCP communication with the first virtual machine, and All second virtual machines that perform TCP communication by the first virtual machine send a second notification message including the first TCP adjustment time value.
  • Step 505 The second virtual machine determines a second TCP adjustment time value according to the first TCP adjustment time value.
  • Step 506 The time when the second virtual machine sends a data packet to the first virtual machine The second TCP adjustment time value is delayed.
  • the second virtual machine may delay the time for sending the data packet to the first virtual machine to delay the second TCP adjustment time value in a plurality of manners, where a specific implementation manner is: The second virtual machine adjusts, in its own TCP transmission control module, a position of a data packet that needs to be sent to the first virtual machine in a sending queue according to the second TCP adjustment time value; or another The specific implementation manner is: the second virtual machine adds a time delay of the second TCP adjustment time value before sending the data packet to the first virtual machine.
  • a preferred implementation manner is: the second virtual machine traverses all TCP transmission control blocks in the kernel, finds all TCP connections related to the first virtual machine, and connects all the TCP connections to the The time when the first virtual machine sends the data packet is delayed by the second TCP adjustment time value.
  • the virtual machine monitor detects whether the first virtual machine is being scheduled or is scheduled to go within a preset time period. If yes, the virtual machine monitor determines the first TCP adjustment time value and sends the timeout scheduling. a first virtual machine corresponding to the timer, the first virtual machine delaying a timeout period of its own TCP retransmission timer by the first TCP adjustment time value and performing a second TCP communication with the first virtual machine The virtual machine sends a second notification message including the first TCP adjustment time value, and the second virtual machine determines a second TCP adjustment time value according to the first TCP adjustment time value and sends the value to the first virtual machine.
  • the time of the data packet is postponed by the second TCP adjustment time value, so after the first virtual machine is scheduled to be dispatched, when the first virtual machine is scheduled again, the TCP retransmission timer does not time out, thereby reducing the occurrence of a pseudo timeout.
  • the first virtual machine does not resend the previously sent data packet, and the second virtual machine does not repeatedly send the data packet when the first virtual machine is scheduled to travel, thereby reducing network bandwidth resource waste, and, due to T The CP retransmission timer does not time out, so the TCP stack does not turn on congestion control, thereby increasing network throughput.
  • the virtual machine monitor sends the notification message to the first virtual machine by using the event channel mechanism or the shared memory mode, and the first virtual machine sends the notification message to the second virtual machine by using the socket mode.
  • FIG. 6 is a schematic structural diagram of a virtual machine system according to Embodiment 6 of the present invention.
  • the virtual machine system includes at least: a virtual machine monitor 61, a first virtual machine 62, and a second virtual machine. 63.
  • the virtual machine monitor 61 is configured to detect whether the first virtual machine 62 is being scheduled to go or within a preset time period. If yes, the virtual machine monitor 61 determines a first TCP adjustment time value and goes to the The first virtual machine 62 transmits a first notification message including the first TCP adjustment time value.
  • the first virtual machine 62 is configured to delay the timeout period of its own TCP retransmission timer by the first TCP adjustment time value and send the second virtual machine 63 that performs TCP communication with the first virtual machine 62.
  • the first notification message of the first TCP adjustment time value is configured to delay the timeout period of its own TCP retransmission timer by the first TCP adjustment time value and send the second virtual machine 63 that performs TCP communication with the first virtual machine 62.
  • the second virtual machine 63 is configured to determine a second TCP adjustment time value according to the first TCP adjustment time value and delay the time when the data packet is sent to the first virtual machine 62 by the second TCP adjustment time value.
  • the virtual machine monitor detects whether the first virtual machine is being scheduled or is scheduled to go within a preset time period, and if so, the virtual machine monitor determines the first TCP adjustment time value and sends the scheduling timing to the timeout.
  • the first virtual machine delays the timeout period of its own TCP retransmission timer by the first TCP adjustment time value, and therefore, after the first virtual machine is scheduled to go, the first virtual machine
  • the TCP retransmission timer does not time out, thereby reducing the occurrence of the pseudo timeout.
  • the first virtual machine does not resend the previously sent data packets, thereby reducing network bandwidth resource waste, and, due to TCP.
  • the retransmission timer does not time out, so the TCP stack does not turn on congestion control, which increases network throughput.
  • the virtual machine system of the sixth embodiment of the present invention can be used to perform the TCP data transmission method of the virtual machine according to the fourth embodiment of the present invention.
  • the specific implementation process and technical effects can be referred to the fourth embodiment of the present invention, and details are not described herein again.
  • the value, F(vm) represents the time at which the first virtual machine 62 is scheduled next time determined according to the scheduling algorithm of the virtual machine monitor 61, and N 0 represents the current time.
  • the virtual machine monitor 61 is specifically configured to send, by using an event channel mechanism, the first notification message including the first TCP adjustment time value to the first virtual machine 62; or The virtual machine monitor 61 is specifically configured to send, by using a shared memory manner, the first pass including the first TCP adjustment time value to the first virtual machine 62. Know the news.
  • the first virtual machine 62 is specifically configured to send, by using a socket mode, a second virtual machine 63 that performs TCP communication with the first virtual machine 62, including the first A TCP adjusts the second notification message of the time value.
  • FIG. 7 is a schematic structural diagram of a virtual machine monitor according to Embodiment 7 of the present invention.
  • the virtual machine monitor includes at least a scheduling detection module 71, a first time value module 72, and a first notification module 73.
  • the scheduling detection module 71 is configured to detect whether the first virtual machine is being scheduled or being scheduled to go within a preset time period, and if so, triggering the first time value module 72.
  • the first time value module 72 is configured to determine a first TCP adjustment time value in a scheduling timer of the first virtual machine and send the first TCP adjustment time value to the first notification module 73.
  • the first notification module 73 is configured to send, to the first virtual machine, a first notification message that includes the first TCP adjustment time value, so that the first virtual machine will time out its own TCP retransmission timer. Time delaying the first TCP adjustment time value and transmitting a second notification message including the first TCP adjustment time value to a second virtual machine that performs TCP communication with the first virtual machine.
  • the virtual machine monitor of the seventh embodiment of the present invention can be used to perform the TCP data transmission method of the virtual machine according to the first embodiment of the present invention.
  • the specific implementation process and technical effects can be referred to the first embodiment of the present invention, and details are not described herein again. .
  • the time value, F(vm) represents the time of the next scheduled first virtual machine determined according to the scheduling algorithm of the virtual machine monitor, and N 0 represents the current time.
  • the first notification module 73 is specifically configured to send, by using an event channel mechanism, a first notification message that includes the first TCP adjustment time value to the first virtual machine; or The first notification module 73 is specifically configured to send, by using a shared memory manner, a first notification message that includes the first TCP adjustment time value to the first virtual machine.
  • FIG. 8 is a schematic structural diagram of a virtual machine according to Embodiment 8 of the present invention.
  • the virtual machine serves as a first virtual machine.
  • the virtual machine includes at least a TCP module 81 and a second notification module 82.
  • the TCP module 81 is configured to receive a first notification message including a first TCP adjustment time value from a virtual machine monitor and delay a timeout period of its own TCP retransmission timer by the first TCP adjustment time value.
  • the second notification module 82 is configured to receive a first notification message that includes a first TCP adjustment time value from a virtual machine monitor, and send the second virtual machine that performs TCP communication with the first virtual machine to include the first a second notification message of the TCP adjustment time value, so that the second virtual machine determines the second TCP adjustment time value according to the first TCP adjustment time value and delays sending the data packet to the first virtual machine The second TCP adjustment time value;
  • the first notification message is sent by the virtual machine monitor when detecting that the first virtual machine is being scheduled or being scheduled to travel within a preset time period.
  • the virtual machine in the eighth embodiment of the present invention can be used to perform the TCP data transmission method of the virtual machine according to the second embodiment of the present invention.
  • the specific implementation process and technical effects can be referred to the second embodiment of the present invention, and details are not described herein again.
  • the second notification module 82 is specifically configured to send, by using a socket mode, a second virtual machine that performs TCP communication with the first virtual machine, including the first TCP. A second notification message that adjusts the time value.
  • FIG. 9 is a schematic structural diagram of a virtual machine according to Embodiment 9 of the present invention.
  • the virtual machine serves as a second virtual machine.
  • the virtual machine includes at least a remote monitoring module 91, a second time value module 92, and a TCP module 93.
  • the intercept remote scheduling module 91 is configured to receive a second notification message that includes a first TCP adjustment time value from a first virtual machine that performs TCP communication with the second virtual machine.
  • the second time value module 92 is configured to determine a second TCP adjustment time value according to the first TCP adjustment time value.
  • the TCP module 93 is configured to delay the time when the data packet is sent to the first virtual machine by the second TCP adjustment time value.
  • the virtual machine of the ninth embodiment of the present invention can be used to perform the TCP data transmission method of the virtual machine according to the third embodiment of the present invention.
  • the specific implementation process and technical effects can be referred to the third embodiment of the present invention, and details are not described herein again.
  • the TCP module 93 is specifically configured to: in its own TCP transmission control module, adjust data to be sent to the first virtual machine according to the second TCP adjustment time value.
  • the location of the packet in the sending queue; or the TCP module 93 is specifically configured to add a time delay of the second TCP adjustment time value before sending the data packet to the first virtual machine.
  • FIG. 10 is a schematic structural diagram of a virtual machine system according to Embodiment 10 of the present invention.
  • the first physical machine and the second physical machine are included, the virtual machine monitor and the first virtual machine are disposed on the first physical machine, and the second virtual machine is disposed on the second physical machine.
  • the first virtual machine and the second virtual machine perform TCP data transmission.
  • the second virtual machine is also scheduled, so another virtual machine monitor can be set on the second physical machine, and the first virtual machine can also be configured.
  • the remote virtual scheduling module 91 and the second time value module 92 are included, and the second virtual machine may also include a second notification module 82.
  • the virtual machine monitor is respectively disposed on the first physical machine and the second physical machine, and the virtual machine monitors on the first physical machine and the second physical machine are all described in the seventh embodiment of the present invention.
  • the virtual machine monitors the internal components of which include: a scheduling detection module 71, a first time value module 72, and a first notification module 73; in the tenth embodiment of the present invention, the internal components of the first virtual machine and the second virtual machine.
  • the second notification module 82 according to the eighth embodiment of the present invention, and the monitoring remote scheduling module 91 and the second time value module 92 according to the ninth embodiment of the present invention, and further includes a TCP module 1001, the TCP The module 1001 is configured to perform the functions of the TCP module 81 according to the eighth embodiment of the present invention and the TCP module 93 according to the ninth embodiment of the present invention.
  • the TCP data transmission system of the virtual machine in the tenth embodiment of the present invention can be used to perform the TCP data transmission method of the virtual machine according to the fourth or fifth embodiment of the present invention.
  • the specific implementation process and technical effects can be referred to the fourth embodiment of the present invention. Fifth, I will not repeat them here.
  • the aforementioned program can be stored in a computer readable storage medium.
  • the program when executed, performs the steps including the foregoing method embodiments; and the foregoing storage medium includes various media that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.

Landscapes

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

Abstract

本发明公开了一种虚拟机的TCP数据传输方法和虚拟机系统。虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走,若是,所述虚拟机监视器确定第一TCP调整时间值并向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息,所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息,所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值,从而能够减少网络带宽资源浪费,提高网络吞吐量。

Description

虚拟机的TCP数据传输方法和虚拟机系统 技术领域
本发明实施例涉及计算机技术,尤其涉及一种虚拟机的传输控制协议(Transmission Control Protocol,简称TCP)数据传输方法和虚拟机系统。
背景技术
近年来,计算机技术领域正在大力发展云计算技术。虚拟化技术是云计算技术的底层支撑技术。虚拟化技术是在一台物理机上抽象出多台虚拟计算机,其中,提供底层硬件资源访问的平台称为虚拟机监视器,抽象出的虚拟计算机是具备计算机功能的特殊应用程序,称为虚拟机。采用虚拟化技术后,在一台物理机上存在多台虚拟机,根据调度时延对各台虚拟机进行调度。
目前,采用现有的虚拟机的TCP数据传输方法,在位于发送端物理机上的发送端虚拟机向位于接收端物理机上的接收端虚拟机发送数据包后,接收端虚拟机会向发送端虚拟机返回应答包(Acknowledgement,简称ACK),如果该应答包到达发送端物理机时,上述发送端虚拟机已经被调度走了,那么该应答包会被缓存在发送端物理机上,当发送端虚拟机被重新调度时才能够接收到该应答包,而当发送端虚拟机被重新调度时,其上设置的TCP的重传定时器可能已经超时,将这种超时称为伪超时。
当伪超时发生时,由于发送端虚拟机被重新调度时其上设置的TCP的重传定时器已经超时,因此发送端虚拟机会向上述接收端虚拟机重新发送上述数据包,造成网络带宽资源浪费,并且发送端虚拟机的TCP协议栈会认为发生了拥塞,从而开启拥塞控制,影响网络的吞吐量。
发明内容
本发明的第一个方面是提供一种虚拟机TCP数据传输方法,用以解决现有技术中的缺陷,减少网络带宽资源浪费,提高网络吞吐量。
本发明的另一个方面是提供一种虚拟机系统,用以解决现有技术中的缺 陷,减少网络带宽资源浪费,提高网络吞吐量。
本发明的第一个方面是提供一种虚拟机的传输控制协议TCP数据传输方法,包括:
虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走;
若是,所述虚拟机监视器确定第一TCP调整时间值并向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;
所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息;
所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值。
本发明的另一个方面是提供一种虚拟机系统,包括:虚拟机监视器、第一虚拟机和第二虚拟机;
所述虚拟机监视器,用于检测第一虚拟机是否正在或在预设时间段内被调度走,若是,所述虚拟机监视器确定第一TCP调整时间值并向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;
所述第一虚拟机,用于将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息;
所述第二虚拟机,用于根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值。
由上述发明内容可见,通过虚拟机监视器检测第一虚拟机是否正在或在预设时间内被调度走,若是,虚拟机监视器确定第一TCP调整时间值并发送给超时的调度定时器对应的第一虚拟机,所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值,因此,在第一虚拟机被调度走后,当第一虚拟机被再次调度时,TCP重传定时器并不超时,从而减少伪超时的发生,第一虚拟机不会重新发送前次发送过的数据包,从而减少网络带宽资源浪费,并且,由于TCP重传定时器并不超时,因此TCP协议栈并不会开启拥塞控制,从而提高网络吞吐量。进一步地, 由于所述第一虚拟机向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息,所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值,因此避免第二虚拟机在第一虚拟机被调度走时重复发送数据包,进一步减少了网络带宽资源浪费。
附图说明
图1为本发明实施例一的虚拟机的TCP数据传输方法的流程图;
图2为本发明实施例二的虚拟机的TCP数据传输方法的流程图;
图3为本发明实施例三的虚拟机的TCP数据传输方法的流程图;
图4为本发明实施例四的虚拟机的TCP数据传输方法的流程图;
图5为本发明实施例五的虚拟机的TCP数据传输方法的流程图;
图6为本发明实施例六的虚拟机系统的结构示意图;
图7为本发明实施例七的虚拟机监视器的结构示意图;
图8为本发明实施例八的虚拟机的结构示意图;
图9为本发明实施例九的虚拟机的结构示意图;
图10为本发明实施例十的虚拟机系统的结构示意图。
具体实施方式
图1为本发明实施例一的虚拟机的TCP数据传输方法的流程图。如图1所示,该方法包括以下过程。
步骤101:虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走。
在本步骤中,若虚拟机监视器检测到第一虚拟机正在被调度走,或虚拟机监视器检测到第一虚拟机在预设时间段内被调度走,则执行步骤102,若虚拟机监视器检测到第一虚拟机并不是正在被调度走,也不在预设时间段内被调度走,则继续执行步骤101,虚拟机监视器继续检测。
在本步骤中,预设时间段是可以根据实际应用的需要灵活设定的参数,该参数的具体数值为大于0的实数。
在本步骤中,对于不同的虚拟机平台,虚拟机监视器可以采用不同 的检测方法。例如:在XEN虚拟化平台下,虚拟机监视器在虚拟机调度程序中判断第一虚拟机对应的调度定时器是否超时或在预设时间段内超时;在KVM虚拟化平台下,虚拟机监视器在Linux内核的进程调度模块中判断第一虚拟机对应进程是否正在被调度或是否在预设时间段内被调度;在lguest虚拟化平台下,虚拟机监视器可在虚拟机上下文切换模块中判断虚拟机是否正在被切换上下文或是否在预设时间段内被切换上下文。
以XEN虚拟化平台为例,在本步骤中,若虚拟机监视器检测到第一虚拟机的调度定时器超时或在预设时间段内超时,则执行步骤102,若虚拟机监视器检测到第一虚拟机的调度定时器未超时且也不在预设时间段内超时,则继续执行步骤101,虚拟机监视器检测第一虚拟机的调度定时器是否超时或在预设时间段内超时。
步骤102:若是,所述虚拟机监视器确定第一TCP调整时间值并向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息。
在本步骤中,若所述第一虚拟机的调度定时器超时,所述虚拟机监视器确定第一TCP调整时间值并向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息,以使所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息,所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值。
在本发明实施例一中,通过虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走,若是,虚拟机监视器确定第一TCP调整时间值并发送给超时的调度定时器对应的第一虚拟机,所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值,因此,在第一虚拟机被调度走后,当第一虚拟机被再次调度时,TCP重传定时器并不超时,从而减少伪超时的发生,第一虚拟机不会重新发送前次发送过的数据包,从而减少网络带宽资源浪费,并且,由于TCP重传定时器并不超时,因此TCP协议栈并不会开启拥塞控制,从而提高网络吞吐量。
在上述技术方案的基础上,进一步地,所述虚拟机监视器确定第一TCP调整时间值包括:所述虚拟机监视器根据N=F(vm)-N0确定第一TCP调整时间值,其中,N表示所述第一TCP调整时间值,F(vm)表示根据虚拟机监视器的调度算法确定的下次调度所述第一虚拟机的时刻,N0表示当前时刻。
在上述技术方案的基础上,进一步地,所述虚拟机监视器向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息包括:所述虚拟机监视器通过事件通道机制向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;或者,所述虚拟机监视器通过共享内存方式向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息。
图2为本发明实施例二的虚拟机的TCP数据传输方法的流程图。如图2所示,该方法包括以下过程。
步骤201:第一虚拟机接收来自虚拟机监视器的包含第一TCP调整时间值的第一通知消息。
其中,所述第一通知消息是所述虚拟机监视器在检测到所述第一虚拟机正在或在预设时间段内被调度走时发出的。
步骤202:所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值。
步骤203:所述第一虚拟机向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息。
在本步骤中,所述第一虚拟机向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息,以使所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值。
在本发明实施例二中,通过虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走,若是,虚拟机监视器确定第一TCP调整时间值并发送给超时的调度定时器对应的第一虚拟机,所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值,因此,在第一虚拟机被调度走后,当第一虚拟机被再次调度时,TCP重传定时器并不 超时,从而减少伪超时的发生,第一虚拟机不会重新发送前次发送过的数据包,从而减少网络带宽资源浪费,并且,由于TCP重传定时器并不超时,因此TCP协议栈并不会开启拥塞控制,从而提高网络吞吐量。
在上述技术方案的基础上,进一步地,所述第一虚拟机向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息包括:所述第一虚拟机采用套接字方式,向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息。
图3为本发明实施例三的虚拟机的TCP数据传输方法的流程图。如图3所示,该方法包括以下过程。
步骤301:与第一虚拟机进行TCP通信的第二虚拟机接收来自所述第一虚拟机的包含第一TCP调整时间值的第二通知消息。
步骤302:所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值。
步骤303:所述第二虚拟机将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值。
在本发明实施例三中,通过虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度,若是,虚拟机监视器确定第一TCP调整时间值并发送给超时的调度定时器对应的第一虚拟机,所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息,所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值,因此在第一虚拟机被调度走后,当第一虚拟机被再次调度时,TCP重传定时器并不超时,从而减少伪超时的发生,第一虚拟机不会重新发送前次发送过的数据包,第二虚拟机在第一虚拟机被调度走时不会重复发送数据包,从而减少网络带宽资源浪费,并且,由于TCP重传定时器并不超时,因此TCP协议栈并不会开启拥塞控制,从而提高网络吞吐量。
在上述技术方案的基础上,进一步地,所述第二虚拟机根据所述第 一TCP调整时间值确定第二TCP调整时间值包括:所述第二虚拟机根据M=N-1/2RTT确定第二TCP调整时间值,其中,M表示所述第二TCP调整时间值,N表示所述第一TCP调整时间值,RTT表示往返时间。
在上述技术方案的基础上,进一步地,所述第二虚拟机将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值包括:
所述第二虚拟机在自身的TCP传输控制模块中,根据所述第二TCP调整时间值,调整需要向所述第一虚拟机发送的数据包在发送队列中的位置;
或者,所述第二虚拟机在向所述第一虚拟机发送数据包之前添加时间长度为所述第二TCP调整时间值的时延。
图4为本发明实施例四的虚拟机的TCP数据传输方法的流程图。在本发明实施例四中,包括第一物理机和第二物理机,虚拟机监视器与第一虚拟机设置在第一物理机上,第二虚拟机设置在第二物理机上,本发明实施例四以第一虚拟机与第二虚拟机之间进行TCP数据传输为例。如图4所示,该方法包括以下过程。
步骤401:虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走。
在本步骤中,若虚拟机监视器检测到第一虚拟机正在被调度走,或虚拟机监视器检测到第一虚拟机在预设时间段内被调度走,则执行步骤402,若虚拟机监视器检测到第一虚拟机并不是正在被调度走,也不在预设时间段内被调度走,则继续执行步骤401,虚拟机监视器继续检测。
在本步骤中,预设时间段是可以根据实际应用的需要灵活设定的参数,该参数的具体数值为大于0的实数。
在本步骤中,对于不同的虚拟机平台,虚拟机监视器可以采用不同的检测方法。例如:在XEN虚拟化平台下,虚拟机监视器在虚拟机调度程序中判断第一虚拟机对应的调度定时器是否超时或在预设时间段内超时;在KVM虚拟化平台下,虚拟机监视器在Linux内核的进程调度模块中判断第一虚拟机对应进程是否正在被调度或是否在预设时间段内被调度;在lguest虚拟化平台下,虚拟机监视器可在虚拟机上下文切换模块中判断虚拟机是否正在被切换上下文或是否在预设时间段内被切换上下 文。
以XEN虚拟化平台为例,在本步骤中,若虚拟机监视器检测到第一虚拟机的调度定时器超时或在预设时间段内超时,则执行步骤402,若虚拟机监视器检测到第一虚拟机的调度定时器未超时且也不在预设时间段内超时,则继续执行步骤401,虚拟机监视器检测第一虚拟机的调度定时器是否超时或在预设时间段内超时。
步骤402:若是,虚拟机监视器确定第一TCP调整时间值并向第一虚拟机发送包含第一TCP调整时间值的第一通知消息。
步骤403:第一虚拟机将自身的TCP重传定时器的超时时间推迟第一TCP调整时间值并向与第一虚拟机进行TCP通信的第二虚拟机发送包含第一TCP调整时间值的第二通知消息。
步骤404:第二虚拟机根据第一TCP调整时间值确定第二TCP调整时间值并将向第一虚拟机发送数据包的时间推迟第二TCP调整时间值。
在本发明实施例四中,通过虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走,若是,虚拟机监视器确定第一TCP调整时间值并发送给超时的调度定时器对应的第一虚拟机,所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值,因此,在第一虚拟机被调度走后,当第一虚拟机被再次调度时,TCP重传定时器并不超时,从而减少伪超时的发生,第一虚拟机不会重新发送前次发送过的数据包,从而减少网络带宽资源浪费,并且,由于TCP重传定时器并不超时,因此TCP协议栈并不会开启拥塞控制,从而提高网络吞吐量。
图5为本发明实施例五的虚拟机的TCP数据传输方法的流程图。在本发明实施例五中,包括第一物理机和第二物理机,虚拟机监视器与第一虚拟机设置在第一物理机上,第二虚拟机设置在第二物理机上,本发明实施例五以第一虚拟机与第二虚拟机之间进行TCP数据传输为例。如图5所示,该方法包括以下过程。
步骤501:虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走。
在本步骤中,若虚拟机监视器检测到第一虚拟机正在被调度走,或虚拟机监视器检测到第一虚拟机在预设时间段内被调度走,则执行步骤 502,若虚拟机监视器检测到第一虚拟机并不是正在被调度走,也不在预设时间段内被调度走,则继续执行步骤501,虚拟机监视器继续检测。
在本步骤中,预设时间段是可以根据实际应用的需要灵活设定的参数,该参数的具体数值为大于0的实数。
在本步骤中,对于不同的虚拟机平台,虚拟机监视器可以采用不同的检测方法。例如:在XEN虚拟化平台下,虚拟机监视器在虚拟机调度程序中判断第一虚拟机对应的调度定时器是否超时或在预设时间段内超时;在KVM虚拟化平台下,虚拟机监视器在Linux内核的进程调度模块中判断第一虚拟机对应进程是否正在被调度或是否在预设时间段内被调度;在lguest虚拟化平台下,虚拟机监视器可在虚拟机上下文切换模块中判断虚拟机是否正在被切换上下文或是否在预设时间段内被切换上下文。
以XEN虚拟化平台为例,在本步骤中,若虚拟机监视器检测到第一虚拟机的调度定时器超时或在预设时间段内超时,则执行步骤502,若虚拟机监视器检测到第一虚拟机的调度定时器未超时且也不在预设时间段内超时,则继续执行步骤501,虚拟机监视器检测第一虚拟机的调度定时器是否超时或在预设时间段内超时。
步骤502:若是,所述虚拟机监视器确定第一TCP调整时间值并向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息。
在本步骤中,虚拟机监视器可以采用多种方式确定第一TCP调整时间值。例如,虚拟机监视器可以采用预设的统一的第一TCP调整时间值,或者,虚拟机监视器可以根据预设的虚拟机与第一TCP调整时间值的对应关系,确定所述第一虚拟机对应的第一TCP调整时间值,或者,还可以采用其它多种方式确定第一TCP调整时间值。一种较佳的具体实施方式为:所述虚拟机监视器根据N=F(vm)-N0确定第一TCP调整时间值,其中,N表示所述第一TCP调整时间值,F(vm)表示根据虚拟机监视器的调度算法确定的下次调度所述第一虚拟机的时刻,N0表示当前时刻。以F表示虚拟机监视器的调度算法。
在本步骤中,虚拟机监视器可以采用多种方式向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息。一种较佳的具体实施 方式为:所述虚拟机监视器通过不同虚拟化平台提供的虚拟机监视器与虚拟机的通信方式向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息,例如,Xen型虚拟化平台提供的虚拟机监视器与虚拟机的通信方式为:事件通道机制。或者,另一种较佳的具体实施方式为:所述虚拟机监视器通过共享内存方式向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息,例如,Xen型虚拟化平台提供的共享内存方式为授权表机制。
步骤503:所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值。
步骤504:所述第一虚拟机向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息。
在本步骤中,所述第一虚拟机可以采用多种方式向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息。一种较佳的具体实施方式为:所述第一虚拟机采用套接字方式,向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息。
在本步骤中,一种较佳的具体实施方式为:第一虚拟机查询内核的TCP传输控制块,找出与所述第一虚拟机进行TCP通信的全部第二虚拟机,向与所述第一虚拟机进行TCP通信的全部第二虚拟机均发送包含所述第一TCP调整时间值的第二通知消息。
步骤505:所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值。
在本步骤中,第二虚拟机可以采用多种方式根据所述第一TCP调整时间值确定第二TCP调整时间值。例如,第二虚拟机可以根据预设的第一TCP调整时间值与第二TCP调整时间值的对应关系,确定所述第一TCP调整时间值对应的第二TCP调整时间值,或者,还可以采用其它多种方式确定第二TCP调整时间值。一种较佳的具体实施方式为:所述第二虚拟机根据M=N-1/2RTT确定第二TCP调整时间值,其中,M表示所述第二TCP调整时间值,N表示所述第一TCP调整时间值,RTT表示往返时间。
步骤506:所述第二虚拟机将向所述第一虚拟机发送数据包的时间推 迟所述第二TCP调整时间值。
在本步骤中,所述第二虚拟机可以采用多种方式,将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值,其中,一种具体的实现方式为:所述第二虚拟机在自身的TCP传输控制模块中,根据所述第二TCP调整时间值,调整需要向所述第一虚拟机发送的数据包在发送队列中的位置;或者,另一种具体的实现方式为:所述第二虚拟机在向所述第一虚拟机发送数据包之前添加时间长度为所述第二TCP调整时间值的时延。
在本步骤中,一种较佳的实施方式为:第二虚拟机遍历内核中的全部TCP传输控制块,找到与所述第一虚拟机相关的全部TCP连接,把全部TCP连接中向所述第一虚拟机发送数据包的时间均推迟所述第二TCP调整时间值。
在本发明实施例五中,通过虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走,若是,虚拟机监视器确定第一TCP调整时间值并发送给超时的调度定时器对应的第一虚拟机,所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息,所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值,因此在第一虚拟机被调度走后,当第一虚拟机被再次调度时,TCP重传定时器并不超时,从而减少伪超时的发生,第一虚拟机不会重新发送前次发送过的数据包,第二虚拟机在第一虚拟机被调度走时不会重复发送数据包,从而减少网络带宽资源浪费,并且,由于TCP重传定时器并不超时,因此TCP协议栈并不会开启拥塞控制,从而提高网络吞吐量。并且,通过对第一TCP调整时间值和第二TCP调整时间值的计算,准确的避免了伪超时的产生。并且,通过事件通道机制或共享内存方式实现了虚拟机监视器向第一虚拟机发送通知消息,通过套接字方式实现了第一虚拟机向第二虚拟机发送通知消息。
图6为本发明实施例六的虚拟机系统的结构示意图。如图6所示,该虚拟机系统至少包括:虚拟机监视器61、第一虚拟机62和第二虚拟机 63。
其中,所述虚拟机监视器61用于检测第一虚拟机62是否正在或在预设时间段内被调度走,若是,所述虚拟机监视器61确定第一TCP调整时间值并向所述第一虚拟机62发送包含所述第一TCP调整时间值的第一通知消息。
所述第一虚拟机62用于将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值并向与所述第一虚拟机62进行TCP通信的第二虚拟机63发送包含所述第一TCP调整时间值的第二通知消息。
所述第二虚拟机63用于根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机62发送数据包的时间推迟所述第二TCP调整时间值。
在本发明实施例六中,虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走,若是,虚拟机监视器确定第一TCP调整时间值并发送给超时的调度定时器对应的第一虚拟机,所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值,因此,在第一虚拟机被调度走后,当第一虚拟机被再次调度时,TCP重传定时器并不超时,从而减少伪超时的发生,第一虚拟机不会重新发送前次发送过的数据包,从而减少网络带宽资源浪费,并且,由于TCP重传定时器并不超时,因此TCP协议栈并不会开启拥塞控制,从而提高网络吞吐量。
本发明实施例六的虚拟机系统可以用于执行本发明实施例四所述的虚拟机的TCP数据传输方法,其具体实现过程和技术效果可以参照本发明实施例四,此处不再赘述。
在上述技术方案的基础上,进一步地,所述虚拟机监视器61具体用于根据N=F(vm)-N0确定第一TCP调整时间值;其中,N表示所述第一TCP调整时间值,F(vm)表示根据虚拟机监视器61的调度算法确定的下次调度所述第一虚拟机62的时刻,N0表示当前时刻。
在上述技术方案的基础上,进一步地,所述虚拟机监视器61具体用于通过事件通道机制向所述第一虚拟机62发送包含所述第一TCP调整时间值的第一通知消息;或者,所述虚拟机监视器61具体用于通过共享内存方式向所述第一虚拟机62发送包含所述第一TCP调整时间值的第一通 知消息。
在上述技术方案的基础上,进一步地,所述第一虚拟机62具体用于采用套接字方式,向与所述第一虚拟机62进行TCP通信的第二虚拟机63发送包含所述第一TCP调整时间值的第二通知消息。
在上述技术方案的基础上,进一步地,所述第二虚拟机63具体用于根据M=N-1/2RTT确定第二TCP调整时间值,其中,M表示所述第二TCP调整时间值,N表示所述第一TCP调整时间值,RTT表示往返时间;所述第二虚拟机63具体用于在自身的TCP传输控制模块中,根据所述第二TCP调整时间值,调整需要向所述第一虚拟机62发送的数据包在发送队列中的位置;或者,所述第二虚拟机63具体用于在向所述第一虚拟机62发送数据包之前添加时间长度为所述第二TCP调整时间值的时延。
图7为本发明实施例七的虚拟机监视器的结构示意图。如图7所示,该虚拟机监视器至少包括:调度检测模块71、第一时间值模块72和第一通知模块73。
其中,所述调度检测模块71用于检测第一虚拟机是否正在或在预设时间段内被调度走,若是,触发所述第一时间值模块72。
所述第一时间值模块72用于在所述第一虚拟机的调度定时器超时确定第一TCP调整时间值并发送给第一通知模块73。
所述第一通知模块73用于向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息,以使所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息。
本发明实施例七的虚拟机监视器可以用于执行本发明实施例一所述的虚拟机的TCP数据传输方法,其具体实现过程和技术效果可以参照本发明实施例一,此处不再赘述。
在上述技术方案的基础上,进一步地,所述第一时间值模块72具体用于根据N=F(vm)-N0确定第一TCP调整时间值;其中,N表示所述第一TCP调整时间值,F(vm)表示根据虚拟机监视器的调度算法确定的下次调度所述第一虚拟机的时刻,N0表示当前时刻。
在上述技术方案的基础上,进一步地,所述第一通知模块73具体用于通过事件通道机制向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;或者,所述第一通知模块73具体用于通过共享内存方式向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息。
图8为本发明实施例八的虚拟机的结构示意图。该虚拟机作为第一虚拟机,如图8所示,该虚拟机至少包括:TCP模块81和第二通知模块82。
其中,所述TCP模块81用于接收来自虚拟机监视器的包含第一TCP调整时间值的第一通知消息并将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值。
所述第二通知模块82用于接收来自虚拟机监视器的包含第一TCP调整时间值的第一通知消息并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息,以使所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值;
其中,所述第一通知消息是所述虚拟机监视器在检测到所述第一虚拟机正在或在预设时间段内被调度走时发出的。
本发明实施例八的虚拟机可以用于执行本发明实施例二所述的虚拟机的TCP数据传输方法,其具体实现过程和技术效果可以参照本发明实施例二,此处不再赘述。
在上述技术方案的基础上,进一步地,所述第二通知模块82具体用于采用套接字方式,向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息。
图9为本发明实施例九的虚拟机的结构示意图。该虚拟机作为第二虚拟机,如图9所示,该虚拟机至少包括:监听远端调度模块91、第二时间值模块92和TCP模块93。
其中,所述监听远端调度模块91用于接收来自与所述第二虚拟机进行TCP通信的第一虚拟机的包含第一TCP调整时间值的第二通知消息。
所述第二时间值模块92用于根据所述第一TCP调整时间值确定第二TCP调整时间值。
所述TCP模块93用于将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值。
本发明实施例九的虚拟机可以用于执行本发明实施例三所述的虚拟机的TCP数据传输方法,其具体实现过程和技术效果可以参照本发明实施例三,此处不再赘述。
在上述技术方案的基础上,进一步地,所述第二时间值模块92具体用于根据M=N-1/2RTT确定第二TCP调整时间值,其中,M表示所述第二TCP调整时间值,N表示所述第一TCP调整时间值,RTT表示往返时间。
在上述技术方案的基础上,进一步地,所述TCP模块93具体用于在自身的TCP传输控制模块中,根据所述第二TCP调整时间值,调整需要向所述第一虚拟机发送的数据包在发送队列中的位置;或者,所述TCP模块93具体用于在向所述第一虚拟机发送数据包之前添加时间长度为所述第二TCP调整时间值的时延。
图10为本发明实施例十的虚拟机系统的结构示意图。在本发明实施例十中,包括第一物理机和第二物理机,虚拟机监视器与第一虚拟机设置在第一物理机上,第二虚拟机设置在第二物理机上。第一虚拟机与第二虚拟机之间进行TCP数据传输,在实际应用中,第二虚拟机也会被调度,因此第二物理机上可以设置另一个虚拟机监视器,第一虚拟机也可以包括监听远端调度模块91和第二时间值模块92,第二虚拟机也可以包括第二通知模块82。即,本发明实施例十中,在第一物理机和第二物理机上分别设置虚拟机监视器,且第一物理机和第二物理机上的虚拟机监视器均为本发明实施例七所述的虚拟机监视器,其内部组成结构均包括:调度检测模块71、第一时间值模块72和第一通知模块73;本发明实施例十中,第一虚拟机与第二虚拟机的内部组成结构相同,均包括本发明实施例八所述的第二通知模块82以及本发明实施例九所述的监听远端调度模块91和第二时间值模块92,并且还包括TCP模块1001,该TCP模块1001用于完成本发明实施例八所述的TCP模块81以及本发明实施例九所述的TCP模块93的功能。
本发明实施例十的虚拟机的TCP数据传输系统可以用于执行本发明实施例四或五所述的虚拟机的TCP数据传输方法,其具体实现过程和技术效果可以参照本发明实施例四或五,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

  1. 一种虚拟机的传输控制协议TCP数据传输方法,其特征在于,包括:
    虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走;
    若是,所述虚拟机监视器确定第一TCP调整时间值并向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;
    所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息;
    所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值。
  2. 根据权利要求1所述的方法,其特征在于,所述虚拟机监视器确定第一TCP调整时间值包括:
    所述虚拟机监视器根据N=F(vm)-N0确定第一TCP调整时间值;
    其中,N表示所述第一TCP调整时间值,F(vm)表示根据虚拟机监视器的调度算法确定的下次调度所述第一虚拟机的时刻,N0表示当前时刻。
  3. 根据权利要求1或2所述的方法,其特征在于,所述向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息包括:
    所述虚拟机监视器通过事件通道机制向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;
    或者,所述虚拟机监视器通过共享内存方式向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息。
  4. 根据权利要求1或2所述的方法,其特征在于,所述向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息包括:
    所述第一虚拟机采用套接字方式,向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息。
  5. 根据权利要求1或2所述的方法,其特征在于,
    所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值包括:所述第二虚拟机根据M=N-1/2RTT确定第二TCP调整时间值,其中,M表示所述第二TCP调整时间值,N表示所述第一TCP调整时间值,RTT表示往返时间;
    所述将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值包括:所述第二虚拟机在自身的TCP传输控制模块中,根据所述第二TCP调整时间值,调整需要向所述第一虚拟机发送的数据包在发送队列中的位置;或者,所述第二虚拟机在向所述第一虚拟机发送数据包之前添加时间长度为所述第二TCP调整时间值的时延。
  6. 一种虚拟机系统,其特征在于,包括:虚拟机监视器、第一虚拟机和第二虚拟机;
    所述虚拟机监视器,用于检测第一虚拟机是否正在或在预设时间段内被调度走,若是,所述虚拟机监视器确定第一TCP调整时间值并向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;
    所述第一虚拟机,用于将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息;
    所述第二虚拟机,用于根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值。
  7. 根据权利要求6所述的系统,其特征在于,
    所述虚拟机监视器具体用于根据N=F(vm)-N0确定第一TCP调整时间值;
    其中,N表示所述第一TCP调整时间值,F(vm)表示根据虚拟机监视器的调度算法确定的下次调度所述第一虚拟机的时刻,N0表示当前时刻。
  8. 根据权利要求6或7所述的系统,其特征在于,
    所述虚拟机监视器具体用于通过事件通道机制向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;
    或者,所述虚拟机监视器具体用于通过共享内存方式向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息。
  9. 根据权利要求6或7所述的系统,其特征在于,
    所述第一虚拟机具体用于采用套接字方式,向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息。
  10. 根据权利要求6或7所述的系统,其特征在于,
    所述第二虚拟机具体用于根据M=N-1/2RTT确定第二TCP调整时间值,其中,M表示所述第二TCP调整时间值,N表示所述第一TCP调整时间值,RTT表示往返时间;
    所述第二虚拟机具体用于在自身的TCP传输控制模块中,根据所述第二TCP调整时间值,调整需要向所述第一虚拟机发送的数据包在发送队列中的位置;或者,所述第二虚拟机具体用于在向所述第一虚拟机发送数据包之前添加时间长度为所述第二TCP调整时间值的时延。
PCT/CN2015/094573 2015-04-22 2015-11-13 虚拟机的tcp数据传输方法和虚拟机系统 WO2016169251A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510195153.0A CN104917594B (zh) 2015-04-22 2015-04-22 虚拟机的tcp数据传输方法和虚拟机系统
CN201510195153.0 2015-04-22

Publications (1)

Publication Number Publication Date
WO2016169251A1 true WO2016169251A1 (zh) 2016-10-27

Family

ID=54086330

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/094573 WO2016169251A1 (zh) 2015-04-22 2015-11-13 虚拟机的tcp数据传输方法和虚拟机系统

Country Status (2)

Country Link
CN (1) CN104917594B (zh)
WO (1) WO2016169251A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104917594B (zh) * 2015-04-22 2018-05-29 北京邮电大学 虚拟机的tcp数据传输方法和虚拟机系统
CN108196934B (zh) * 2016-12-08 2022-04-26 阿里巴巴集团控股有限公司 一种定时器的定时设置方法、装置和虚拟化设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1561615A (zh) * 2001-09-28 2005-01-05 埃沃柳姆公司 采用重传定时器改善传输协议性能的方法
CN102217249A (zh) * 2008-12-05 2011-10-12 株式会社Ntt都科摩 通信装置和通信方法
CN104516767A (zh) * 2013-09-27 2015-04-15 国际商业机器公司 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统
CN104917594A (zh) * 2015-04-22 2015-09-16 北京邮电大学 虚拟机的tcp数据传输方法和虚拟机系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9229839B2 (en) * 2013-01-09 2016-01-05 Microsoft Technology Licensing, Llc Implementing rate controls to limit timeout-based faults
CN104199753B (zh) * 2014-09-04 2018-05-29 中标软件有限公司 一种虚拟机应用服务故障恢复系统及其故障恢复方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1561615A (zh) * 2001-09-28 2005-01-05 埃沃柳姆公司 采用重传定时器改善传输协议性能的方法
CN102217249A (zh) * 2008-12-05 2011-10-12 株式会社Ntt都科摩 通信装置和通信方法
CN104516767A (zh) * 2013-09-27 2015-04-15 国际商业机器公司 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统
CN104917594A (zh) * 2015-04-22 2015-09-16 北京邮电大学 虚拟机的tcp数据传输方法和虚拟机系统

Also Published As

Publication number Publication date
CN104917594A (zh) 2015-09-16
CN104917594B (zh) 2018-05-29

Similar Documents

Publication Publication Date Title
US10462707B2 (en) Data transmission method and apparatus
CN109327288B (zh) 数据传输加速方法、装置及系统
US10715282B2 (en) Method and related device for improving TCP transmission efficiency using delayed ACK
US9485184B2 (en) Congestion control for delay sensitive applications
JP5974159B2 (ja) 通信ネットワーク内でtcpプロトコルにより引き起こされたバックオフを緩和する装置及び方法
EP3694160A1 (en) Date transmission method, apparatus and device
Ren et al. A survey on TCP Incast in data center networks
EP2930899B1 (en) Tcp link configuration method and apparatus
US11870698B2 (en) Congestion control method and apparatus, communications network, and computer storage medium
EP3739784A1 (en) Data packet sending method and related device
Lu et al. Dynamic ECN marking threshold algorithm for TCP congestion control in data center networks
Huang et al. Packet slicing for highly concurrent TCPs in data center networks with COTS switches
JP2004229306A (ja) 送信コンピューティングシステムが連続するアクションを歩調合せする方法
Qin et al. Analysis for TCP in data center networks: Outcast and Incast
WO2016169251A1 (zh) 虚拟机的tcp数据传输方法和虚拟机系统
CN108234089B (zh) 用于低时延通信的方法和系统
Zhou et al. TCP stalls at the server side: Measurement and mitigation
US11044350B1 (en) Methods for dynamically managing utilization of Nagle's algorithm in transmission control protocol (TCP) connections and devices thereof
US20140334296A1 (en) Aggressive Transmission Control Protocol (TCP) Retransmission
Kishimoto et al. A TCP Incast avoidance method based on retransmission requests from a client
Nikitinskiy et al. A stateless transport protocol in software defined networks
JPWO2020012973A1 (ja) 通信制御装置、方法、及びプログラム
e Silva et al. High throughput and low latency on hadoop clusters using explicit congestion notification: The untold truth
Zhang et al. DCUDP: scalable data transfer for high‐speed long‐distance networks
Deng et al. Mip: Minimizing the idle period of data transmission in data center networks

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: 15889734

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15889734

Country of ref document: EP

Kind code of ref document: A1