虚拟机的tcp数据传输方法和虚拟机系统的制作方法

文档序号:9202505阅读:900来源:国知局
虚拟机的tcp数据传输方法和虚拟机系统的制作方法
【技术领域】
[0001]本发明实施例涉及计算机技术,尤其涉及一种虚拟机的传输控制协议(Transmiss1n Control Protocol,简称TCP)数据传输方法和虚拟机系统。
【背景技术】
[0002]近年来,计算机技术领域正在大力发展云计算技术。虚拟化技术是云计算技术的底层支撑技术。虚拟化技术是在一台物理机上抽象出多台虚拟计算机,其中,提供底层硬件资源访问的平台称为虚拟机监视器,抽象出的虚拟计算机是具备计算机功能的特殊应用程序,称为虚拟机。采用虚拟化技术后,在一台物理机上存在多台虚拟机,根据调度时延对各台虚拟机进行调度。
[0003]目前,采用现有的虚拟机的TCP数据传输方法,在位于发送端物理机上的发送端虚拟机向位于接收端物理机上的接收端虚拟机发送数据包后,接收端虚拟机会向发送端虚拟机返回应答包(Acknowledgement,简称ACK),如果该应答包到达发送端物理机时,上述发送端虚拟机已经被调度走了,那么该应答包会被缓存在发送端物理机上,当发送端虚拟机被重新调度时才能够接收到该应答包,而当发送端虚拟机被重新调度时,其上设置的TCP的重传定时器可能已经超时,将这种超时称为伪超时。
[0004]当伪超时发生时,由于发送端虚拟机被重新调度时其上设置的TCP的重传定时器已经超时,因此发送端虚拟机会向上述接收端虚拟机重新发送上述数据包,造成网络带宽资源浪费,并且发送端虚拟机的TCP协议栈会认为发生了拥塞,从而开启拥塞控制,影响网络的吞吐量。

【发明内容】

[0005]本发明的第一个方面是提供一种虚拟机TCP数据传输方法,用以解决现有技术中的缺陷,减少网络带宽资源浪费,提高网络吞吐量。
[0006]本发明的另一个方面是提供一种虚拟机系统,用以解决现有技术中的缺陷,减少网络带宽资源浪费,提高网络吞吐量。
[0007]本发明的第一个方面是提供一种虚拟机的传输控制协议TCP数据传输方法,包括:
[0008]虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走;
[0009]若是,所述虚拟机监视器确定第一 TCP调整时间值并向所述第一虚拟机发送包含所述第一 TCP调整时间值的第一通知消息;
[0010]所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一 TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一 TCP调整时间值的第二通知消息;
[0011]所述第二虚拟机根据所述第一 TCP调整时间值确定第二 TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二 TCP调整时间值。
[0012]本发明的另一个方面是提供一种虚拟机系统,包括:虚拟机监视器、第一虚拟机和第二虚拟机;
[0013]所述虚拟机监视器,用于检测第一虚拟机是否正在或在预设时间段内被调度走,若是,所述虚拟机监视器确定第一 TCP调整时间值并向所述第一虚拟机发送包含所述第一TCP调整时间值的第一通知消息;
[0014]所述第一虚拟机,用于将自身的TCP重传定时器的超时时间推迟所述第一 TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一 TCP调整时间值的第二通知消息;
[0015]所述第二虚拟机,用于根据所述第一 TCP调整时间值确定第二 TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二 TCP调整时间值。
[0016]由上述
【发明内容】
可见,通过虚拟机监视器检测第一虚拟机是否正在或在预设时间内被调度走,若是,虚拟机监视器确定第一 TCP调整时间值并发送给超时的调度定时器对应的第一虚拟机,所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一 TCP调整时间值,因此,在第一虚拟机被调度走后,当第一虚拟机被再次调度时,TCP重传定时器并不超时,从而减少伪超时的发生,第一虚拟机不会重新发送前次发送过的数据包,从而减少网络带宽资源浪费,并且,由于TCP重传定时器并不超时,因此TCP协议栈并不会开启拥塞控制,从而提高网络吞吐量。进一步地,由于所述第一虚拟机向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一 TCP调整时间值的第二通知消息,所述第二虚拟机根据所述第一 TCP调整时间值确定第二 TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二 TCP调整时间值,因此避免第二虚拟机在第一虚拟机被调度走时重复发送数据包,进一步减少了网络带宽资源浪费。
【附图说明】
[0017]图1为本发明实施例一的虚拟机的TCP数据传输方法的流程图;
[0018]图2为本发明实施例二的虚拟机的TCP数据传输方法的流程图;
[0019]图3为本发明实施例三的虚拟机的TCP数据传输方法的流程图;
[0020]图4为本发明实施例四的虚拟机的TCP数据传输方法的流程图;
[0021]图5为本发明实施例五的虚拟机的TCP数据传输方法的流程图;
[0022]图6为本发明实施例六的虚拟机系统的结构示意图;
[0023]图7为本发明实施例七的虚拟机监视器的结构示意图;
[0024]图8为本发明实施例八的虚拟机的结构示意图;
[0025]图9为本发明实施例九的虚拟机的结构示意图;
[0026]图10为本发明实施例十的虚拟机系统的结构示意图。
【具体实施方式】
[0027]图1为本发明实施例一的虚拟机的TCP数据传输方法的流程图。如图1所示,该方法包括以下过程。
[0028]步骤101:虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走。
[0029]在本步骤中,若虚拟机监视器检测到第一虚拟机正在被调度走,或虚拟机监视器检测到第一虚拟机在预设时间段内被调度走,则执行步骤102,若虚拟机监视器检测到第一虚拟机并不是正在被调度走,也不在预设时间段内被调度走,则继续执行步骤101,虚拟机监视器继续检测。
[0030]在本步骤中,预设时间段是可以根据实际应用的需要灵活设定的参数,该参数的具体数值为大于O的实数。
[0031]在本步骤中,对于不同的虚拟机平台,虚拟机监视器可以采用不同的检测方法。例如:在XEN虚拟化平台下,虚拟机监视器在虚拟机调度程序中判断第一虚拟机对应的调度定时器是否超时或在预设时间段内超时虚拟化平台下,虚拟机监视器在Linux内核的进程调度模块中判断第一虚拟机对应进程是否正在被调度或是否在预设时间段内被调度;在Iguest虚拟化平台下,虚拟机监视器可在虚拟机上下文切换模块中判断虚拟机是否正在被切换上下文或是否在预设时间段内被切换上下文。
[0032]以XEN虚拟化平台为例,在本步骤中,若虚拟机监视器检测到第一虚拟机的调度定时器超时或在预设时间段内超时,则执行步骤102,若虚拟机监视器检测到第一虚拟机的调度定时器未超时且也不在预设时间段内超时,则继续执行步骤101,虚拟机监视器检测第一虚拟机的调度定时器是否超时或在预设时间段内超时。
[0033]步骤102:若是,所述虚拟机监视器确定第一 TCP调整时间值并向所述第一虚拟机发送包含所述第一 TCP调整时间值的第一通知消息。
[0034]在本步骤中,若所述第一虚拟机的调度定时器超时,所述虚拟机监视器确定第一TCP调整时间值并向所述第一虚拟机发送包含所述第一 TCP调整时间值的第一通知消息,以使所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一 TCP调整时间值并向与所述第一虚拟机进行TCP通信的第二虚拟机发送包含所述第一 TCP调整时间值的第二通知消息,所述第二虚拟机根据所述第一 TCP调整时间值确定第二 TCP调整时间值并将向所述第一虚拟机发送数据包的时间推迟所述第二 TCP调整时间值。
[0035]在本发明实施例一中,通过虚拟机监视器检测第一虚拟机是否正在或在预设时间段内被调度走,若是,虚拟机监视器确定第一 TCP调整时间值并发送给超时的调度定时器对应的第一虚拟机,所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一TCP调整时间值,因此,在第一虚拟机被调度走后,当第一虚拟机被再次调度时,TCP重传定时器并不超时,从而减少伪超时的发生,第一虚拟机不会重新发送前次发送过的数据包,从而减少网络带宽资源浪费,并且,由于TCP重传定时器并不超时,因此TCP协议栈并不会开启拥塞控制,从而提尚网络吞吐量。
[0036]在上述技术方案的基础上,进一步地,所述虚拟机监视器确定第一 TCP调整时间值包括:所述虚拟机监视器根据N = F (vm) -%确定第一 TCP调整时间值,其中,N表示所述第一 TCP调整时间值,F(vm)表示根据虚拟机监视器的调度算法确定的下次调度所述第一虚拟机的时刻,Ntl表示当前时刻。
[0037]在上述技术方案的基础上,进一步地,所述虚拟机监视器向所述第一虚拟机发送包含所述第一 TCP调整时间值的第一通知消息包括:所述虚拟机监视器通过事件通道机制向所述第一虚拟机发送包含所述第一 TCP调整时间值的第一通知消息;或者,所述虚拟机监视器通过共享内存方式向所述第一虚拟机发送包含所述第一 TCP调整时间值的第一通知消息。
[0038]图2为本发明实施例二的虚拟机的TCP数据传输方法的流程图。如图2所示,该方法包括以下过程。
[0039]步骤201:第一虚拟机接收来自虚拟机监视器的包含第一 TCP调整时间值的第一通知消息。
[0040]其中,所述第一通知消息是所述虚拟机监视器在检测到所述第一虚拟机正在或在预设时间段内被调度走时发出的。
[0041]步骤202:所述第一虚拟机将自身的TCP重传定时器的超时时间推迟所述第一 TCP调整时间值。
[0
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1