首页> 中国专利> 虚拟机的TCP数据传输方法和虚拟机系统

虚拟机的TCP数据传输方法和虚拟机系统

摘要

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

著录项

  • 公开/公告号CN104917594A

    专利类型发明专利

  • 公开/公告日2015-09-16

    原文格式PDF

  • 申请/专利权人 北京邮电大学;

    申请/专利号CN201510195153.0

  • 发明设计人 王洪波;王建建;

    申请日2015-04-22

  • 分类号

  • 代理机构北京同立钧成知识产权代理有限公司;

  • 代理人宋扬

  • 地址 100876 北京市海淀区西土城路10号

  • 入库时间 2023-12-18 11:00:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-29

    授权

    授权

  • 2015-10-14

    实质审查的生效 IPC(主分类):H04L1/16 申请日:20150422

    实质审查的生效

  • 2015-09-16

    公开

    公开

说明书

技术领域

本发明实施例涉及计算机技术,尤其涉及一种虚拟机的传输控制协议 (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、磁碟或者光盘等各种可以存储程序代码 的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对 其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号