一种基于Virtio端口传输数据的方法和系统技术方案

技术编号:26178052 阅读:34 留言:0更新日期:2020-10-31 14:25
本发明专利技术公开了一种基于Virtio端口传输数据的方法和系统,属于虚拟化技术领域。所述方法包括:当Vswitch接收到物理网卡发送的第一数据内容时,所述Vswitch确定发送所述第一数据内容的第一Vswitch逻辑端口,并在所述第一数据内容中添加所述第一Vswitch逻辑端口的端口标识;所述Vswitch通过所述第一Vswitch逻辑端口,以及所述Vswitch与Vrouter之间共用的Virtio端口,向所述Vrouter发送所述第一数据内容;所述Vrouter通过与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口接收所述第一数据内容,并将其发送至与所述第一Vrouter逻辑端口对应的第一虚拟网卡。采用本发明专利技术,可以提高数据传输性能。

【技术实现步骤摘要】
一种基于Virtio端口传输数据的方法和系统
本专利技术涉及虚拟化
,特别涉及一种基于Virtio端口传输数据的方法和系统。
技术介绍
虚拟化网络包括了Vrouter(虚拟路由器)和Vswitch(虚拟交换机)等部件。Virtio技术是一种半虚拟化的设备抽象接口规范,Vrouter和Vswitch之间通常利用Virtio端口来实现数据的传输,其中,位于Vswitch一侧的Virtio端口可称为Virtio_host端口,位于Vrouter一侧的Virtio端口可称为Virtio_user端口。Vswitch可以接入有多个Vrouter,每个Vrouter可以为其管理的租户网络的虚拟网卡创建Virtio_user端口,如果一个租户网络配置有多个虚拟网卡,则Vrouter需要为该租户网络的每个虚拟网卡创建一个Virtio_user端口,相应的,Vswitch也需要创建一个对应的Virtio_host端口。以虚拟网卡接收数据为例,当物理网卡接收到发送至某虚拟网卡(可称为目标虚拟网卡)的数据内容时,物理网卡可以将该数据内容发送给Vswit本文档来自技高网...

【技术保护点】
1.一种基于Virtio端口传输数据的方法,其特征在于,所述方法包括:/n当Vswitch接收到物理网卡发送的第一数据内容时,所述Vswitch确定发送所述第一数据内容的第一Vswitch逻辑端口,并在所述第一数据内容中添加所述第一Vswitch逻辑端口的端口标识;/n所述Vswitch通过所述第一Vswitch逻辑端口,以及所述Vswitch与Vrouter之间共用的Virtio端口,向所述Vrouter发送所述第一数据内容;/n所述Vrouter通过与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口接收所述第一数据内容,并将其发送至与所述第一Vrouter逻辑端...

【技术特征摘要】
1.一种基于Virtio端口传输数据的方法,其特征在于,所述方法包括:
当Vswitch接收到物理网卡发送的第一数据内容时,所述Vswitch确定发送所述第一数据内容的第一Vswitch逻辑端口,并在所述第一数据内容中添加所述第一Vswitch逻辑端口的端口标识;
所述Vswitch通过所述第一Vswitch逻辑端口,以及所述Vswitch与Vrouter之间共用的Virtio端口,向所述Vrouter发送所述第一数据内容;
所述Vrouter通过与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口接收所述第一数据内容,并将其发送至与所述第一Vrouter逻辑端口对应的第一虚拟网卡;
协议栈接收由所述第一虚拟网卡解封装处理的所述第一数据内容,将所述第一数据内容转换为第二数据内容,并将所述第二数据内容发送至第二虚拟网卡;
所述Vrouter通过与所述第二虚拟网卡对应的第二Vrouter逻辑端口,接收由所述第二虚拟网卡封装处理的第二数据内容,并在所述第二数据内容中添加所述第二Vrouter逻辑端口的端口标识;
所述Vrouter通过所述第二Vrouter逻辑端口以及所述Virtio端口,向所述Vswitch发送所述第二数据内容;
所述Vswitch通过与所述第二Vrouter逻辑端口的端口标识唯一对应的第二Vswitch逻辑端口,接收所述第二数据内容并将其发送至所述物理网卡。


2.根据权利要求1所述的方法,其特征在于,所述Vswitch确定发送所述第一数据内容的第一Vswitch逻辑端口,包括:
所述Vswitch基于所述第一数据内容中携带的MAC地址,将端口地址表中与所述第一数据内容携带的MAC地址对应的Vswitch逻辑端口,确定为发送所述第一数据内容的第一Vswitch逻辑端口。


3.根据权利要求1所述的方法,其特征在于,所述在接收到物理网卡发送的第一数据内容之前,还包括:
预先按照所述Vrouter管理的虚拟网卡的数目,在所述Vswitch和所述Vrouter中分别配置所述数目的所述Vswitch逻辑端口和所述Vrouter逻辑端口,其中,所述Vswitch逻辑端口和所述Vrouter逻辑端口的端口标识唯一对应;
生成记录有所述Vswitch逻辑端口、所述Vrouter逻辑端口和虚拟网卡对应关系的映射表。


4.根据权利要求1所述的方法,其特征在于,所述在所述第一数据内容中添加所述第一Vswitch逻辑端口的端口标识,包括:
所述Vswitch将所述第一Vswitch逻辑端口的端口标识,记录在所述第一数据内容的数据结构mbuf的预设字段中。


5.根据权利要求3所述的方法,其特征在于,所述Vrouter通过与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口,接收所述第一数据内容并将其发送至与所述第一Vrouter逻辑端口对应的所述第一虚拟网卡,包括:
所述Vrouter根据所述映射表,确定与所述第一Vswitch逻辑端口的端口标识唯一对应的第一Vrouter逻辑端口;
所述Vrouter通过确定出的所述第一Vrouter逻辑端口,接收所述第一数据内容并将其发送至与所述第一Vrouter逻辑端口对应的所述第一虚拟网卡。


6.根据权利要求1所述的方法,其特征在于,所述将所述第一数据内容转换为第二数据内容,并将所述第二数据内容发送至第二虚拟网卡,包括:
所述协议栈判断所述第一数据内容携带的目的IP地址是否为所述第一虚拟网卡的IP地址;
如果是,则所述协议栈将所述第一数据内容提交至应用层处理,并接收所述应用层返回的所述第一数据内容的响应内容;所述协议栈基于路由表查找第二虚拟网卡和下一跳路由,将所述响应内容的源MAC地址修改为第二虚拟网卡的MAC地址,将所述响应内容的目的MAC地址修改为所述下一跳路由的MAC地址,得到所述第二数据内容,并将所述第二数据内容发送至第二虚拟网卡;
如果否,则所述协议栈基于路由表查找第二虚拟网卡和下一跳路由,将所述第一数据内容的源MAC地址修改为第二虚拟网卡的M...

【专利技术属性】
技术研发人员:程杜勇曹志文
申请(专利权)人:厦门网宿有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1