[发明专利]一种基于虚拟机的数据发送方法、接收方法及系统有效
申请号: | 201310076510.2 | 申请日: | 2013-03-11 |
公开(公告)号: | CN103176833A | 公开(公告)日: | 2013-06-26 |
发明(设计)人: | 何冠森;张洁 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;H04L12/861 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 唐华明 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 虚拟机 数据 发送 方法 接收 系统 | ||
技术领域
本发明涉及数据传输领域,特别是涉及一种基于虚拟机的数据发送方法、接收方法及系统。
背景技术
虚拟机(Virtual Machine)是指通过软件模拟的、具有完整硬件系统功能的,运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,可以在一台物理计算机上模拟出一台或多台虚拟的计算机。虚拟机可以像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。
通常,虚拟机所在的物理计算机称为宿主机(Host),虚拟机自身称为客户机(Guest)。
在Xen虚拟机架构中,宿主机向客户机发送数据的过程主要是:宿主机的Netback(宿主机的后端虚拟网络设备)先对需要发送的数据包进行切包。切包可以将数据量较大的数据包拆分成多个数据量较小(不大于允许传输的最大值)的数据包。然后,Netback端将拆分后的数据包逐一发送至客户机的Netfront(客户机的前端虚拟网络设备)。Netfront逐一接收Netback发送的数据包,并逐一回复ACK(Acknowledgement)包,以告知Host“Guest已经对某个数据包接收成功”。
可见,现有技术中,基于虚拟机的数据发送、接收方法,需要对较大的数据包进行拆分,相对于拆分之前,拆分后得到的较小的数据包的数目较多,逐个传递数目较多的数据包,会导致Host和Guest的系统开销较大。另外,由于Guest对于每个数据包还需要逐一发送ACK包,导致对Guest的开销进一步增大。
发明内容
本发明的目的是提供一种基于虚拟机的数据发送方法、接收方法及系统,能够避免对较大的数据进行拆分,减少Host的系统开销。
为实现上述目的,本发明提供了如下方案:
根据本发明的第一方面的第一种可能的实现方式,本发明提供一种基于虚拟机的数据发送方法,所述方法应用于具有宿主机和客户机的虚拟机架构,所述方法包括:
宿主机的后端虚拟网络设备获取套接字缓冲区的数据;所述套接字缓冲区的数据的数据片段,采用链表形式存储,所述数据片段的大小与所述宿主机的物理网卡发送的数据包的大小相等;
将所述数据片段映射至共享内存区域,以便客户机从所述共享内存区域读取所述数据片段。
结合第一方面的第二种可能的实现方式,所述共享内存区域为IO环。
结合第一方面的第三种可能的实现方式,将所述数据片段映射至共享内存区域,包括:
对所述数据片段进行标识,以表明所述数据片段是采用链表形式存储的;
将标识后的数据片段映射至共享内存区域。
结合第一方面的第四种可能的实现方式,还包括:
获取客户机的前端虚拟网络设备支持的数据片段聚合方式;
当所述数据片段聚合方式表示所述客户机的前端虚拟网络设备只支持按照数组形式进行数据片段聚合时,
所述将所述数据片段映射至共享内存区域,包括:
每次将预设数目的数据片段映射至所述共享内存区域,所述预设数目小于或等于所述数组形式定义的数据片段的个数的最大值。
根据本发明的第二方面的第一种可能的实现方式,本发明提供一种基于虚拟机的数据接收方法,所述方法包括:
客户机的前端虚拟网络设备从所述共享内存区域中获取所述数据片段;其中,所述数据片段为宿主机的后端虚拟网络设备将套接字缓冲区中的数据的数据片段映射至所述共享内存区域而得到的结果,所述套接字缓冲区中的数据数据片段采用链表形式存储,所述数据片段的大小与所述宿主机的物理网卡发送的数据包的大小相等;
按照链表形式,将所述数据片段聚合为套接字缓冲区的数据。
结合第二方面的第二种可能的实现方式,所述将所述数据片段聚合为套接字缓冲区的数据,包括:
获取所述数据片段的链表属性;所述链表属性用于表示各个数据片段之间的顺序;
按照所述顺序,将所述数据片段聚合为套接字缓冲区的数据。
结合第二方面的两种可能的实现方式中的任意一种,所述方法还包括:
获取所述数据片段的存储标识;
当所述存储标识表示所述数据片段是采用数组形式存储时,按照数组形式,将所述数据片段聚合为套接字缓冲区的数据。
根据本发明的第三方面的第一种可能的实现方式,本发明提供一种基于虚拟机的数据发送系统,所述系统应用于具有宿主机和客户机的虚拟机架构,所述系统包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310076510.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种页面监控方法及系统
- 下一篇:电表上盖的安装结构
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置