CN104917594B - 虚拟机的tcp数据传输方法和虚拟机系统 - Google Patents
虚拟机的tcp数据传输方法和虚拟机系统 Download PDFInfo
- Publication number
- CN104917594B CN104917594B CN201510195153.0A CN201510195153A CN104917594B CN 104917594 B CN104917594 B CN 104917594B CN 201510195153 A CN201510195153 A CN 201510195153A CN 104917594 B CN104917594 B CN 104917594B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- tcp
- time values
- time
- adjustment time
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/1607—Details of the supervisory signal
- H04L1/1671—Details of the supervisory signal the supervisory signal being transmitted together with control information
- H04L1/1678—Details of the supervisory signal the supervisory signal being transmitted together with control information where the control information is for timing, e.g. time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
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
技术领域
本发明实施例涉及计算机技术,尤其涉及一种虚拟机的传输控制协议(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 (8)
1.一种虚拟机的传输控制协议TCP数据传输方法,其特征在于,包括:
虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走;
若是,所述虚拟机监视器确定第一TCP调整时间值并向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;
所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息;
所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值;
所述虚拟机监视器确定第一TCP调整时间值包括:
所述虚拟机监视器根据N=F(vm)-N0确定第一TCP调整时间值;
其中,N表示所述第一TCP调整时间值,F(vm)表示根据虚拟机监视器的调度算法确定的下次调度所述第一虚拟机的时刻,N0表示当前时刻;
所述第二虚拟机根据所述第一TCP调整时间值确定第二TCP调整时间值包括:所述第二虚拟机根据M=N-1/2RTT确定第二TCP调整时间值,其中,M表示所述第二TCP调整时间值,N表示所述第一TCP调整时间值,RTT表示往返时间。
2.根据权利要求1所述的方法,其特征在于,所述向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息包括:
所述虚拟机监视器通过事件通道机制向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;
或者,所述虚拟机监视器通过共享内存方式向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息。
3.根据权利要求1所述的方法,其特征在于,所述向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息包括:
所述第一虚拟机采用套接字方式,向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息。
4.根据权利要求1所述的方法,其特征在于,
所述将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值包括:所述第二虚拟机在自身的TCP传输控制模块中,根据所述第二TCP调整时间值,调整需要向所述第一虚拟机发送的数据包在发送队列中的位置;或者,所述第二虚拟机在向所述第一虚拟机发送数据包之前添加时间长度为所述第二TCP调整时间值的时延。
5.一种虚拟机系统,其特征在于,包括:虚拟机监视器、第一虚拟机和第二虚拟机;
所述虚拟机监视器,用于检测第一虚拟机是否正在或在预设时间段内被调度走,若是,所述虚拟机监视器确定第一TCP调整时间值并向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;
所述第一虚拟机,用于将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息;
所述第二虚拟机,用于根据所述第一TCP调整时间值确定第二TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二TCP调整时间值;
所述虚拟机监视器具体用于根据N=F(vm)-N0确定第一TCP调整时间值;
其中,N表示所述第一TCP调整时间值,F(vm)表示根据虚拟机监视器的调度算法确定的下次调度所述第一虚拟机的时刻,N0表示当前时刻;
所述第二虚拟机具体用于根据M=N-1/2RTT确定第二TCP调整时间值,其中,M表示所述第二TCP调整时间值,N表示所述第一TCP调整时间值,RTT表示往返时间。
6.根据权利要求5所述的系统,其特征在于,
所述虚拟机监视器具体用于通过事件通道机制向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;
或者,所述虚拟机监视器具体用于通过共享内存方式向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息。
7.根据权利要求5所述的系统,其特征在于,
所述第一虚拟机具体用于采用套接字方式,向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一TCP调整时间值的第二通知消息。
8.根据权利要求5所述的系统,其特征在于,
所述第二虚拟机具体用于在自身的TCP传输控制模块中,根据所述第二TCP调整时间值,调整需要向所述第一虚拟机发送的数据包在发送队列中的位置;或者,所述第二虚拟机具体用于在向所述第一虚拟机发送数据包之前添加时间长度为所述第二TCP调整时间值的时延。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510195153.0A CN104917594B (zh) | 2015-04-22 | 2015-04-22 | 虚拟机的tcp数据传输方法和虚拟机系统 |
PCT/CN2015/094573 WO2016169251A1 (zh) | 2015-04-22 | 2015-11-13 | 虚拟机的tcp数据传输方法和虚拟机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510195153.0A CN104917594B (zh) | 2015-04-22 | 2015-04-22 | 虚拟机的tcp数据传输方法和虚拟机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104917594A CN104917594A (zh) | 2015-09-16 |
CN104917594B true CN104917594B (zh) | 2018-05-29 |
Family
ID=54086330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510195153.0A Active CN104917594B (zh) | 2015-04-22 | 2015-04-22 | 虚拟机的tcp数据传输方法和虚拟机系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104917594B (zh) |
WO (1) | WO2016169251A1 (zh) |
Families Citing this family (2)
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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199753A (zh) * | 2014-09-04 | 2014-12-10 | 中标软件有限公司 | 一种虚拟机应用服务故障恢复系统及其故障恢复方法 |
CN104516767A (zh) * | 2013-09-27 | 2015-04-15 | 国际商业机器公司 | 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2830397B1 (fr) * | 2001-09-28 | 2004-12-03 | Evolium Sas | Procede pour ameliorer les performances d'un protocole de transmission utilisant un temporisateur de retransmission |
CN102217249B (zh) * | 2008-12-05 | 2014-03-19 | 株式会社Ntt都科摩 | 通信装置和通信方法 |
US9229839B2 (en) * | 2013-01-09 | 2016-01-05 | Microsoft Technology Licensing, Llc | Implementing rate controls to limit timeout-based faults |
CN104917594B (zh) * | 2015-04-22 | 2018-05-29 | 北京邮电大学 | 虚拟机的tcp数据传输方法和虚拟机系统 |
-
2015
- 2015-04-22 CN CN201510195153.0A patent/CN104917594B/zh active Active
- 2015-11-13 WO PCT/CN2015/094573 patent/WO2016169251A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516767A (zh) * | 2013-09-27 | 2015-04-15 | 国际商业机器公司 | 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统 |
CN104199753A (zh) * | 2014-09-04 | 2014-12-10 | 中标软件有限公司 | 一种虚拟机应用服务故障恢复系统及其故障恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016169251A1 (zh) | 2016-10-27 |
CN104917594A (zh) | 2015-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102195752B (zh) | 使用基于数据报的传输协议来传送远程呈现数据的方法 | |
US8553540B2 (en) | Congestion control for delay sensitive applications | |
US6615383B1 (en) | System and method for message transmission between network nodes connected by parallel links | |
US7496690B2 (en) | Method, system, and program for managing memory for data transmission through a network | |
US7058723B2 (en) | Congestion control for internet protocol storage | |
US20050141425A1 (en) | Method, system, and program for managing message transmission through a network | |
JP5935940B2 (ja) | 通信方法、通信装置、および、通信プログラム | |
CN102664718B (zh) | 无线侧tcp数据重传的方法和设备 | |
US20080095094A1 (en) | Mobile communication system, base station device and method of estimating number of uplink packet retransmissions thereof | |
JP2011514734A5 (zh) | ||
US9130740B2 (en) | Variable acknowledge rate to reduce bus contention in presence of communication errors | |
CN102457438A (zh) | 用于发送数据的方法和设备 | |
CN104917594B (zh) | 虚拟机的tcp数据传输方法和虚拟机系统 | |
KR102323799B1 (ko) | 무선 통신 시스템에서 단말, 기지국 및 이의 통신 방법 | |
CN107426108A (zh) | Tcp拥塞控制方法、装置及服务端 | |
WO2005067258A1 (en) | Method, system, and program for overrun identification | |
US8874984B2 (en) | High performance virtual converged enhanced ethernet with persistent state flow control | |
US20060064621A1 (en) | Apparatus and method for tracking packets in a reliably connected transmission system | |
US10033489B1 (en) | Managing communications based on network conditions | |
JP5998923B2 (ja) | プログラム、情報処理装置、及び通信方法 | |
CN103684681B (zh) | 传输装置与传输方法 | |
US10009409B2 (en) | Retransmission control network node and related method | |
CN110266446A (zh) | 一种基于sack模式调整乱序时长的方法和装置 | |
CN109361620A (zh) | 一种数据发送的方法、装置、设备及存储介质 | |
JP2013239886A (ja) | 情報処理装置、情報処理システム、パケット送信方法、データ数通知方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |