CN109862127A - 一种报文传输的方法及相关装置 - Google Patents

一种报文传输的方法及相关装置 Download PDF

Info

Publication number
CN109862127A
CN109862127A CN201711243604.9A CN201711243604A CN109862127A CN 109862127 A CN109862127 A CN 109862127A CN 201711243604 A CN201711243604 A CN 201711243604A CN 109862127 A CN109862127 A CN 109862127A
Authority
CN
China
Prior art keywords
host
message
tunnel
network information
virtual
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.)
Granted
Application number
CN201711243604.9A
Other languages
English (en)
Other versions
CN109862127B (zh
Inventor
叶磊
谭焜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201711243604.9A priority Critical patent/CN109862127B/zh
Publication of CN109862127A publication Critical patent/CN109862127A/zh
Application granted granted Critical
Publication of CN109862127B publication Critical patent/CN109862127B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种报文传输的方法,第一宿主机接收来自第一虚拟端的第一报文,第一报文中携带源虚拟网络信息和目的虚拟网络信息,源虚拟网络信息为第一虚拟端的网络信息,目的虚拟网络信息为第二虚拟端的网络信息,第二通信设备还包括第二宿主机;第一宿主机根据目的虚拟网络信息以及第一宿主机中的网络信息映射关系确定目的主机网络信息,网络信息映射关系包括第二虚拟端和第二宿主机的网络信息之间的映射关系;第一宿主机向第二通信设备发送第二报文。本申请实施例还提供报文发送装置。本申请中的虚拟端信息均实现了透明化,从而能够为发送数据的虚拟端提供有针对性的服务。

Description

一种报文传输的方法及相关装置
技术领域
本申请涉及计算机虚拟网络技术领域,尤其涉及一种报文传输的方法及相关装置。
背景技术
在计算机网络中,网络地址转换(network address translation,NAT)也叫做网络掩蔽,是一种在网际互连协议(internet protocol,IP)数据包通过路由器或防火墙时重写来源IP地址或目的IP地址的技术。这种技术被普遍使用在有多台主机但只通过一个公有IP地址访问因特网的私有网络中。
目前,采用NAT技术进行地址转换的一种实现方式如图1所示,具体过程为,内网用户主机通过NAT设备向外网服务器发送IP报文,NAT设备查看报头内容,若该IP报文是发往外网的,则将其私网地址(例如192.168.1.3)转换成一个可以在以太网上选路的公网地址(例如20.1.1.1),然后将报文发送给外网的服务器,与此同时在NAT设备上记录这一IP地址的映射。外网的服务器给内网的用户主机发送应答报文,该应答报文的IP地址是20.1.1.1。应答报文到达NAT设备之后,NAT设备查看报头内容,根据NAT设备上的记录,用内网的私有地址192.168.1.3替换应答报文的目的IP地址。
然而,采用上述传统的NAT方案,在较为复杂的虚拟化场景下对IP地址的指示不准确,从而难以为用户提供有针对性的业务。
发明内容
本申请提供了一种报文传输的方法及相关装置,在数据传输过程中可以使得两侧的虚拟端均能获取对端虚拟端的网络信息,从而为发送数据的虚拟端提供有针对性的服务。
本申请实施例的第一方面提供一种报文传输的方法,该方法主要应用于含有虚拟端的第一通信设备以及第二通信设备,虚拟端为虚拟机或者容器虚拟端为虚拟机和容器,其中,第一通信设备包含第一虚拟端以及第一宿主机,第二通信设备包含第二虚拟端以及第二宿主机。其中,如果出现第一虚拟端为虚拟机,第二虚拟端为容器,或者第一虚拟端为容器,第二虚拟端为虚拟机,则出现“混排”的情况,这种部署方式能够提升数据传输的可靠性以及安全性,成本也会相应增加,本申请可以根据需求确定第一虚拟端和第二虚拟端的组成,在数据传输过程中,首先由第一通信设备中的第一虚拟端向第一宿主机发送第一报文,且在该第一报文中携带第一虚拟端的源虚拟网络信息。
可以理解的是,第一报文既可以是一个消息,也可以是一个数据包。目前的机制是通过在宿主机中预埋探测机制,通过拦截两个通信宿主机之间的数据包,来发现待加速的信道的,发起启动动作,准备进行NAT加速。这样做的好处是,宿主机之间不感知的承载信道的具体情况,只需要发送和接收数据就可以。
当然,从实现的角度来看,宿主机也可以主动发送第一报文给承载信道,这样就不需要拦截数据包,这样,这个源虚拟网络信息可以放在一个特定的消息中进行传输。
首先,由第一宿主机接收第一虚拟端发送的第一报文,在该第一报文中携带了源虚拟网络信息和目的虚拟网络信息,源虚拟网络信息是第一虚拟端的网络信息,目的虚拟网络信息是第二虚拟端的网络信息。
接下来,第一宿主机根据第一报文以及第一宿主机中的网络信息映射关系得到第二报文,第二报文中携带第二宿主机的网络信息,网络信息映射关系包括第二虚拟端的网络信息和第二宿主机的网络信息之间的映射关系。这里的网络信息映射关系可以是表格,或者其他的数据结构类型。最后,第一宿主机向第二宿主机发送第二报文,第二报文中包括源主机网络信息和目的主机网络信息。第二宿主机向第二虚拟端发送该第二报文,第二虚拟端根据网络信息映射关系,以及目的虚拟网络信息、源主机网络信息和目的主机网络信息可以获知源虚拟网络信息。
该虚拟端还可以是使用其他虚拟化技术,实现的类似虚拟机或者容器的功能的其他形态的虚拟端。
可以理解的是,第一宿主机在向第二通信设备发送第二报文之前,还可以根据网络信息映射关系将第一虚拟端的网络信息转化成第一宿主机的网络信息,其中,第一宿主机是第二报文的源端,第二宿主机是第二报文的目的端。
可见,提供了一种报文传输的方法,首先第一虚拟端向第一宿主机发送第一报文,该第一报文中携带第一虚拟端所对应的源虚拟网络信息,然后第一宿主机根据第一报文以及网络信息映射关系确定第二虚拟端所对应的目的虚拟网络信息,最后第一宿主机向第二宿主机发送数据包,第二虚拟端可根据网络信息映射关系确定数据包的源虚拟网络信息。通过上述方式,在数据传输过程中可以使得两侧的虚拟端均能获取对端虚拟端的网络信息,不会与宿主机的网络信息产生混淆,从而能够为发送数据的虚拟端提供有针对性的服务。
在一种可能的设计中,在本申请实施例的第一方面的第一种实现方式中,相应地,第一宿主机还能接收第二通信设备发送的报文,具体地:
第一宿主机接收来自第二通信设备的第三报文,第一宿主机根据第三报文以及以及第一宿主机中的网络信息映射关系得到第四报文,其中,第四报文中携带第一虚拟端的网络信息,网络信息映射关系还包括第一宿主机的网络信息、第二宿主机的网络信息和第一虚拟端的网络信息之间的映射关系。其中,第三报文中携带第一宿主机的网络信息以及第二宿主机的网络信息,该第一宿主机可以根据第一宿主机的网络信息、第二宿主机的网络信息以及第一宿主机中的网络信息映射关系确定第一虚拟端的网络信息,其中,网络信息映射关系还包括第一宿主机的网络信息、第二宿主机的网络信息和第一虚拟端的网络信息之间的映射关系,第一宿主机向第一虚拟端发送第四报文,其中,第四报文中携带第一虚拟端的网络信息。
因为存在管理面协商通道(即VxLAN或单独私有协议),可以事先建立前文中的网络信息映射关系,一种实现方式下,该网络信息映射关系包括第一虚拟端的网络信息、第一宿主机的网络信息、第二宿主机的网络信息和第二虚拟端的网络信息之间的映射关系。其中,单独私有协议可以是预先定义的两个代理模块之间的通信规则,agent模块主要承担了信道管理的任务,这些任务包含但不仅限于对信道资源的分配,C/S的NAT信息协商,信道的创建和销毁等功能。
应理解,第一宿主机向第一虚拟端发送第四报文的步骤中,还包括把第一宿主机的网络信息根据网络信息映射关系转化为第一虚拟端的网络信息,第四报文中还带有第一虚拟端的网络信息,其中,第一虚拟端为第四报文的目的端,第二虚拟为第四报文的源端。
可见,提供了一种报文传输的方法,可以使得两个虚拟端的地址均实现了透明化,不会与宿主机的网络信息产生混淆,从而能够为发送数据的虚拟端提供有针对性的服务。
在一种可能的设计中,在本申请实施例的第一方面的第二种实现方式中,在建立第一隧道之前,第一宿主机先向第二通信设备中的第二宿主机发送隧道建立请求,然后,第二宿主机根据隧道建立请求向第一宿主机回复一个隧道建立响应。第一宿主机根据该隧道建立响应建立第一隧道。
其中,第一隧道为第一虚拟端与第二虚拟端之间进行通信的隧道,具体地,该第一隧道为NAT隧道。
可见,本申请实施例中,第一宿主机和第二宿主机之间会打通第一隧道,也就是NAT隧道,也就是打通了第一虚拟端到第二虚拟端的NAT隧道,以此实现虚拟端之间的NAT穿透,同时,采用NAT穿透技术还有利于提升数据传输的效率。
在一种可能的设计中,在本申请实施例的第一方面的第三种实现方式中,网络信息具体包括网际互联协议IP地址以及端口号。
在一种可能的设计中,在本申请实施例的第一方面的第四种实现方式中,网络信息映射关系中包括第一宿主机的IP地址、第一宿主机的端口号、第一虚拟端的IP地址、第二虚拟端的虚拟端口号、第二宿主机的IP地址、第二宿主机的端口号、第二虚拟端的IP地址、第二虚拟端的端口号以及通信协议类型。
在第一宿主机还可以预先建立该网络信息映射关系,具体为:
第一宿主机根据目的实体IP地址、目的实体端口号、目的虚拟IP地址、目的虚拟端口号、源实体IP地址、源实体端口号、源虚拟IP地址、源虚拟端口号以及通信协议类型建立网络信息映射关系,其中,目的实体IP地址表示第二宿主机的IP地址,目的实体端口号表示第二宿主机的端口号,目的虚拟IP地址表示第二虚拟端的IP地址,目的虚拟端口号表示第二虚拟端的端口号,源实体IP地址表示第一宿主机的IP地址,源实体端口号表示第一宿主机的端口号,源虚拟IP地址表示第一虚拟端的IP地址,源虚拟端口号表示第一虚拟端的端口号。
例如,网络信息映射关系可以为源虚拟IP地址:192.168.1.100,源虚拟端口号:30000,目的虚拟IP地址:192.168.1.101,目的虚拟端口号:80,源实体IP地址:10.67.57.22,源实体端口号20001,目的实体IP地址:10.67.57.33,目的实体端口号:4790,对应于通信协议类型:IP。
可见,本申请实施例中,第一宿主机还可以根据获取到的九元组信息建立网络信息映射关系,当然,第二宿主机同样根据获取到的九元组信息也建立相同的网络信息映射关系,根据该网络信息映射关系可以实现虚拟端之间地址和端口号的透明化,以此提升方案的可行性和可操作性。
在一种可能的设计中,在本申请实施例的第一方面的第五种实现方式中,第一宿主机向第二通信设备发送第二报文之前,还可以包括如下两种情况:
第一种:在传输交互数据满足预设隧道切换条件的情况下,第一宿主机将第二隧道切换为第一隧道,其中,传输交互数据用于表示第一宿主机与所述第二宿主机的数据传输情况。这里的第一隧道仍可以为NAT隧道,而第二隧道即为原始隧道,例如GRE隧道等,通常情况下,第二隧道的传输速率低于第一隧道的传输速率。
第二种:如果传输交互数据不满足所述预设隧道切换条件,那么第一宿主机将会继续采用第二隧道向第二通信设备传输第二报文。
可见,本申请实施例中,介绍了一种报文传输的方法,初始交互一般先采用传统隧道方式,比如VxLAN或GRE隧道,当满足条件时就会切换到采用NAT技术的隧道。通过上述方式,一方面利用NAT隧道可以提供数据传输高效率,提升网络效率。另一方面充分采用传统双层隧道能力,仅对待加速连接进行NAT加速,这样既没有拖延建链时间,又可以有针对性地进行信道加速。综上,采用双隧道或多隧道并存技术可以取长补短,各取所长。
在一种可能的设计中,在本申请实施例的第一方面的第六种实现方式中,在传输交互数据满足预设隧道切换条件的情况下,第一宿主机确定将第二隧道切换为第一隧道可以包括如下至少一种情况:
第一种,如果第二报文的传输时长大于或者等于第一预设门限,那么第一宿主机通信设备确定传输交互数据满足预设隧道切换条件,并且确定将原始第二隧道(如VxLAN或GRE隧道)切换为目标第一隧道(NAT隧道),其中,第二报文的传输时长为第一宿主机通信设备通过原始隧道第二隧道向第二宿主机通信设备传输第二报文的时间长度。这类情形适用于观看视频或者在一段时间内需要传输数据流的情况。
第二种,如果第二报文的数量大于或者等于第二预设门限,那么第一宿主机通信设备确定传输交互数据满足预设隧道切换条件,并且确定将原始第二隧道(如VxLAN或GRE隧道)切换为目标第一隧道(NAT隧道),其中,第二报文的数量为第一宿主机通信设备通过原始隧道第二隧道向第二宿主机通信设备传输第二报文的个数。
第三种,如果第二报文的传输速率大于或者等于第三预设门限,那么第一宿主机通信设备确定传输交互数据满足预设隧道切换条件,并且确定将原始隧道第二隧道(如VxLAN或GRE隧道)切换为目标隧道第一隧道(NAT隧道),其中,第二报文的传输速率为第一宿主机通信设备通过原始隧道第二隧道向第二宿主机通信设备传输第二报文的速率。
第四种,如果第二报文所携带的用户优先级大于或者等于第四预设门限,那么第一宿主机通信设备确定传输交互数据满足预设隧道切换条件,并且确定将原始隧道第二隧道(如VxLAN或GRE隧道)切换为目标隧道第一隧道(NAT隧道),其中,用户优先级预先设定的第二报文优先级别,第二报文为第一宿主机通信设备通过原始隧道第二隧道向第二宿主机通信设备传输的第二报文。
可见,本申请实施例中,具体介绍了几种适用于双隧道或多隧道的情况,首先采用传统隧道技术建立连接,同时开始NAT双向协商,一旦协商完成,随即切换到NAT方式隧道。通过上述方式,实现多个隧道技术并存,从而能够服务于数据流的不同阶段。此外,能够通过多种特征筛选具备加速价值数据流,以此提升方案的实用性。
本申请实施例的第二方面提供一种报文传输的方法,该方法主要应用于含有虚拟端的第一通信设备以及第二通信设备,虚拟端为虚拟机或者容器虚拟端为虚拟机或容器,其中,第一通信设备包含第一虚拟端以及第一宿主机,第二通信设备包含第二虚拟端以及第二宿主机。其中,如果出现第一虚拟端为虚拟机,第二虚拟端为容器,或者第一虚拟端为容器,第二虚拟端为虚拟机,则出现“混排”的情况,这种部署方式能够提升数据传输的可靠性以及安全性,成本也会相应增加,本申请可以根据需求确定第一虚拟端和第二虚拟端的组成,在数据传输过程中,首先由第二宿主机接收来自第一通信设备发送的第二报文,其中,第二报文中携带第一宿主机的网络信息以及第二宿主机的网络信息,然后第二宿主机根据第二报文以及第一宿主机中的网络信息映射关系得到第五报文,其中,第五报文中携带第二虚拟端的网络信息,第二宿主机中的网络信息映射关系包括第一宿主机的网络信息、第二宿主机的网络信息和第二虚拟端的网络信息之间的映射关系,最后,第二宿主机向第二虚拟端发送第五报文,其中,第五报文中携带第二虚拟端的网络信息。
第二宿主机维护了一个与第一宿主机相同的网络信息映射关系,这样才能在接收数据包时,通过该网络信息映射关系确定对应的源虚拟网络信息。
可见,提供了一种报文传输的方法,在数据传输过程中可以使得两侧的虚拟端均能获取对端虚拟端的网络信息,从而为发送数据的虚拟端提供有针对性的服务。
在一种可能的设计中,在本申请实施例的第二方面的第一种实现方式中,第二宿主机还可以向第一通信设备发送数据,具体地:
首先,第二宿主机接收来自第二虚拟端的第六报文,然后第二宿主机根据第六报文以及第二宿主机中的网络信息映射关系得到第七报文,其中,第七报文中携带第一宿主机的网络信息,第二宿主机中的网络信息映射关系还包括第一虚拟端的网络信息以及第一宿主机的网络信息之间的映射关系。其中,第六报文中携带第一虚拟端的网络信息;然后第二宿主机根据第一虚拟端的网络信息以及第二宿主机中的网络信息映射关系确定第一宿主机的网络信息,最后,第二宿主机向第一通信设备发送第七报文,其中,第七报文中携带第一宿主机的网络信息。
可见,提供了一种报文传输的方法,可以使得两个虚拟端的地址均实现了透明化,不会与宿主机的网络信息产生混淆,从而能够为发送数据的虚拟端提供有针对性的服务。
在一种可能的设计中,在本申请实施例的第二方面的第二种实现方式中,在建立第一隧道之前,第一宿主机先向第二通信设备中的第二宿主机发送隧道建立请求,然后,第二宿主机根据隧道建立请求向第一宿主机回复一个隧道建立响应。第一宿主机根据该隧道建立响应建立第一隧道。其中,第一隧道为第一虚拟端与第二虚拟端之间进行通信的隧道,具体地,该第一隧道为NAT隧道。
可见,本申请实施例中,第一宿主机和第二宿主机之间会打通第一隧道,也就是NAT隧道,也就是打通了第一虚拟端到第二虚拟端的NAT隧道,以此实现虚拟端之间的NAT穿透,同时,采用NAT穿透技术还有利于提升数据传输的效率。
在一种可能的设计中,在本申请实施例的第二方面的第三种实现方式中,网络信息具体包括网际互联协议IP地址以及端口号。
在一种可能的设计中,在本申请实施例的第二方面的第四种实现方式中,网络信息映射关系中包括第一宿主机的IP地址、第一宿主机的端口号、第一虚拟端的IP地址、第二虚拟端的虚拟端口号、第二宿主机的IP地址、第二宿主机的端口号、第二虚拟端的IP地址、第二虚拟端的端口号以及通信协议类型。
在第一宿主机还可以预先建立该网络信息映射关系,具体为:
第一宿主机根据目的实体IP地址、目的实体端口号、目的虚拟IP地址、目的虚拟端口号、源实体IP地址、源实体端口号、源虚拟IP地址、源虚拟端口号以及通信协议类型建立网络信息映射关系,其中,目的实体IP地址表示第二宿主机的IP地址,目的实体端口号表示第二宿主机的端口号,目的虚拟IP地址表示第二虚拟端的IP地址,目的虚拟端口号表示第二虚拟端的端口号,源实体IP地址表示第一宿主机的IP地址,源实体端口号表示第一宿主机的端口号,源虚拟IP地址表示第一虚拟端的IP地址,源虚拟端口号表示第一虚拟端的端口号。
例如,网络信息映射关系可以为源虚拟IP地址:192.168.1.100,源虚拟端口号:30000,目的虚拟IP地址:192.168.1.101,目的虚拟端口号:80,源实体IP地址:10.67.57.22,源实体端口号20001,目的实体IP地址:10.67.57.33,目的实体端口号:4790,对应于通信协议类型:IP。
可见,本申请实施例中,第一宿主机还可以根据获取到的九元组信息建立网络信息映射关系,当然,第二宿主机同样根据获取到的九元组信息也建立相同的网络信息映射关系,根据该网络信息映射关系可以实现虚拟端之间地址和端口号的透明化,以此提升方案的可行性和可操作性。
在一种可能的设计中,在本申请实施例的第二方面的第五种实现方式中,第二宿主机在接收第一宿主机发送的第二报文之前;
第一种:在传输交互数据满足预设隧道切换条件的情况下,第一宿主机将第二隧道切换为第一隧道,其中,传输交互数据用于表示第一宿主机与所述第二宿主机的数据传输情况。这里的第一隧道仍可以为NAT隧道,而第二隧道即为原始隧道,例如GRE隧道等,通常情况下,第二隧道的传输速率低于第一隧道的传输速率。
第二种:如果传输交互数据不满足所述预设隧道切换条件,那么第一宿主机将会继续采用第二隧道向第二通信设备传输第二报文。
可见,本申请实施例中,介绍了一种报文传输的方法,初始交互一般先采用传统隧道方式,比如VxLAN或GRE隧道,当满足条件时就会切换到采用NAT技术的隧道。通过上述方式,一方面利用NAT隧道可以提供数据传输高效率,提升网络效率。另一方面充分采用传统双层隧道能力,仅对待加速连接进行NAT加速,这样既没有拖延建链时间,又可以有针对性地进行信道加速。综上,采用双隧道或多隧道并存技术可以取长补短,各取所长。
在一种可能的设计中,在本申请实施例的第一方面的第六种实现方式中,在传输交互数据满足预设隧道切换条件的情况下,第一宿主机确定将第二隧道切换为第一隧道可以包括如下至少一种情况:
第一种,如果第二报文的传输时长大于或者等于第一预设门限,那么第一宿主机通信设备确定传输交互数据满足预设隧道切换条件,并且确定将原始第二隧道(如VxLAN或GRE隧道)切换为目标第一隧道(NAT隧道),其中,第二报文的传输时长为第一宿主机通信设备通过原始隧道第二隧道向第二宿主机通信设备传输第二报文的时间长度。这类情形适用于观看视频或者在一段时间内需要传输数据流的情况。
第二种,如果第二报文的数量大于或者等于第二预设门限,那么第一宿主机通信设备确定传输交互数据满足预设隧道切换条件,并且确定将原始第二隧道(如VxLAN或GRE隧道)切换为目标第一隧道(NAT隧道),其中,第二报文的数量为第一宿主机通信设备通过原始隧道第二隧道向第二宿主机通信设备传输第二报文的个数。
第三种,如果第二报文的传输速率大于或者等于第三预设门限,那么第一宿主机通信设备确定传输交互数据满足预设隧道切换条件,并且确定将原始隧道第二隧道(如VxLAN或GRE隧道)切换为目标隧道第一隧道(NAT隧道),其中,第二报文的传输速率为第一宿主机通信设备通过原始隧道第二隧道向第二宿主机通信设备传输第二报文的速率。
第四种,如果第二报文所携带的用户优先级大于或者等于第四预设门限,那么第一宿主机通信设备确定传输交互数据满足预设隧道切换条件,并且确定将原始隧道第二隧道(如VxLAN或GRE隧道)切换为目标隧道第一隧道(NAT隧道),其中,用户优先级预先设定的第二报文优先级别,第二报文为第一宿主机通信设备通过原始隧道第二隧道向第二宿主机通信设备传输的第二报文。
可见,本申请实施例中,具体介绍了几种适用于双隧道或多隧道的情况,首先采用传统隧道技术建立连接,同时开始NAT双向协商,一旦协商完成,随即切换到NAT方式隧道。通过上述方式,实现多个隧道技术并存,从而能够服务于数据流的不同阶段。此外,能够通过多种特征筛选具备加速价值数据流,以此提升方案的实用性。
本申请实施例的第三方面提供一种报文传输装置,报文传输装置报文传输装置包括第一宿主机和第一虚拟端,第一虚拟端为虚拟机或容器,报文传输装置包括:
第一虚拟端用于向第一虚拟机发送第一报文,第一报文中携带第二虚拟端的网络信息,第二虚拟端运行于第二通信设备,第二通信设备还包括第二宿主机;
第一宿主机用于根据第一报文以及第一宿主机中的网络信息映射关系得到第二报文,第二报文中携带第二宿主机的网络信息,网络信息映射关系包括第二虚拟端的网络信息和第二宿主机的网络信息之间的映射关系;
第一宿主机用于向第二通信设备发送第二报文。
本申请实施例的第四方面提供一种报文传输装置,报文传输装置报文传输装置包括第二宿主机和第二虚拟端,第二虚拟端为虚拟机或容器,报文传输装置包括:
第二宿主机用于接收来自第一通信设备发送的第二报文,其中,第二报文中携带第一宿主机的网络信息以及第二宿主机的网络信息,第一宿主机运行于第一通信设备,第一通信设备还包括第一虚拟端;
第二宿主机用于根据第二报文以及第一宿主机中的网络信息映射关系得到第五报文,,其中,第五报文中携带第二虚拟端的网络信息,第二宿主机中的网络信息映射关系包括第一宿主机的网络信息、第二宿主机的网络信息和第二虚拟端的网络信息之间的映射关系;
第二虚拟端用于接收来自第二宿主机的第五报文。
本申请中的报文传输装置为报文接收装置或者报文发送装置。
本申请实施例的第五方面提供一种通信设备,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序和指令;
所述收发器用于在所述处理器的控制下接收或发送信息;
所述处理器用于执行所述存储器中的程序;
所述总线系统用于连接所述存储器、所述收发器以及所述处理器,以使所述存储器、所述收发器以及所述处理器进行通信;
所述处理器用于调用所述存储器中的程序指令,执行如第一方面中任一项所述的方法。
本申请实施例的第六方面提供一种通信设备,包括:存储器、收发器、处理器以及总线系统;
其中,所述存储器用于存储程序和指令;
所述收发器用于在所述处理器的控制下接收或发送信息;
所述处理器用于执行所述存储器中的程序;
所述总线系统用于连接所述存储器、所述收发器以及所述处理器,以使所述存储器、所述收发器以及所述处理器进行通信;
所述处理器用于调用所述存储器中的程序指令,执行如第二方面中任一项所述的方法。
第七方面,本申请实施例提供一种计算机设备,包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该服务器运行时,该处理器执行该存储器存储的该计算机执行指令,以使该服务器执行如上述任一方面的方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,用于储存为上述方法所用的计算机软件指令,当其在计算机上运行时,使得计算机可以执行上述中任一方面的方法。
第九方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述任一方面的方法。
另外,第三方面至第九方面任一种设计方式的具体实现方式,以及各种实现方式所带来的技术效果可参见第一方面至第二方面中不同设计方式所带来的技术效果,此处不再赘述。
从以上技术方案可以看出,本申请具有以下优点:
本申请实施例中,提供了一种报文传输的方法,首先第一虚拟端向第一宿主机发送第一报文,该第一报文中携带第一虚拟端所对应的源虚拟网络信息,然后第一宿主机根据第一报文以及网络信息映射关系确定第二虚拟端所对应的目的虚拟网络信息,最后第一宿主机向第二宿主机发送数据包,第二虚拟端可根据网络信息映射关系确定数据包的源虚拟网络信息。通过上述方式,在虚拟端通过目标隧道接收到数据之前,可以根据网络信息映射关系将实体网络信息转换为虚拟网络信息,这样的话,两个虚拟端的地址均实现了透明化,也就是接收到数据的虚拟端能够准确地定位到发送数据的虚拟端,从而能够为发送数据的虚拟端提供有针对性的服务。
附图说明
图1为现有技术中地址转换的一个网络拓扑图;
图2为本申请实施例中虚拟化网络架构示意图;
图3为本申请实施例中报文传输的方法一个场景交互示意图;
图4为本申请实施例中报文传输的方法一个交互方式示意图;
图5为本申请实施例中平台软件和服务器硬件中的实现形态示意图;
图6为本申请实施例中报文传输的方法一个实施例示意图;
图7为本申请实施例中网络地址转换信息透明还原的一个实施例示意图;
图8为本申请实施例中单端口多服务的一个实施例示意图;
图9为本申请应用场景中一种单隧道建立的一个流程示意图;
图10为本申请实施例中报文传输的方法另一个实施例示意图;
图11为本申请应用场景中一种双隧道或多隧道建立的一个流程示意图;
图12为本申请实施例中不同数据流量场景下虚拟网络性能损耗对比示意图;
图13为本申请实施例中报文传输装置一个实施例示意图;
图14为本申请实施例中报文传输装置一个实施例示意图;
图15为本申请实施例中报文传输装置一个结构示意图;
图16为本申请实施例中物理机一个结构示意图。
具体实施方式
本申请提供了一种报文传输的方法及相关装置,可以使得接收到数据的虚拟端根据网络信息映射关系,确定发送数据的虚拟端所对应的虚拟网络信息,以此为发送数据的虚拟端提供有针对性的服务。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了方便理解,首先对本申请实施例中涉及的词语进行简要说明:
虚拟端:包括虚拟机(virtual machine,VM)或者容器(container)中的至少一种;
VM:指通过软件模拟的具有完整硬件系统功能的,并运行在一个隔离环境中的完整计算机系统。虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。
container:一种软件沙箱,是一种安全机制,为运行中的程序提供的隔离环境,通常严格控制其中的程序所能访问的资源。
宿主机(host):是一个具有两个网络适配器的主机系统,并且主机系统中的寻径功能被禁止,而对外部网络的服务和访问则由网关上的代理服务器提供。它是一种结构简单,但安全性很高的防火墙系统,也是对双宿主主机防火墙的一个改进。一种实现方式中,可以认为虚拟端运行于宿主机之上。
五元组:源网际互联协议(internet protocol,IP)地址,源端口号,目的IP地址,目的端口号以及传输层协议这五个量组成的一个集合例如:源IP地址为:192.168.1.1,源端口号为:10000,传输层协议为:TCP,目的IP地址为:121.14.88.76,目标I端口号为:80,这就构成了一个五元组。其意义是,一个IP地址为192.168.1.1的终端通过端口号10000,利用TCP协议和IP地址为121.14.88.76,端口号为80的终端进行连接。
隧道:即网络隧道,是指利用一种网络协议来传输另一种网络协议,它主要利用网络隧道协议来实现这种功能,网络隧道技术涉及了三种网络协议,即网络隧道协议、隧道协议下面的承载协议和隧道协议所承载的被承载协议。
网络地址转换(network address translation,NAT):在计算机网络中,NAT也叫做网络掩蔽胡这IP掩蔽,是一种在IP数据包通过路由器或防火墙时重写来源IP地址或目的IP地址的技术,这种技术被普遍使用在有多台主机,但只有一个公共IP地址访问因特网的私有网络中。
此外,关于文中还出现了第一宿主机的网络信息、第一虚拟端的网络信息第二宿主机的网络信息以及第二宿主机的网络信息,下面将进行介绍:
第一宿主机的网络信息:源实体网络信息,具体包括第一宿主机的IP地址和端口号;
第一虚拟端的网络信息:源虚拟网络信息,具体包括第一虚拟端的IP地址和端口号;
第二宿主机的网络信息:目的实体网络信息,具体包括第二宿主机的IP地址和端口号;
第二宿主机的网络信息:目的虚拟网络信息,具体包括第二虚拟端的IP地址和端口号。
应理解,本申请主要应用于虚拟化网络,请参阅图2,图2为本申请实施例中虚拟化网络架构示意图,如图所示,图2展示一个数据中心系统100,即存在至少一个数据中心网络管理器110(data center network manager,DCNM)通过网络来实现对由叶节点交换机和针节点交换机组成的数据中心网络进行管理。其中的数据中心网络管理器110可以采用服务器(server)的形式实现,上面集成负责管理网络的应用程序。每台叶节点交换机可以采用机架上交换机(top-of-rack switch)的形式来实现,即每台叶节点交换机均可位于一个机架单元(rack unit)中,其中,机架单元可以认为是数据中心的“储物柜”,用于摆放交换机。以图2为例,叶节点2 125和叶节点4 130这两台叶节点交换机可位于一个机架单元中,该机架单元能够容纳一个或多个服务器(如图1中的135和140)。每个叶节点交换机被配置用于路由或转发该机架单元中的服务器和其他网络单元之间的通信消息。每一个服务器(以图2中,和叶节点交换机125关联的服务器135为例)可以容纳一个或多个虚拟交换机(virtualswitch)145。虚拟交换机以及虚拟机被创建并且运行在每个服务器上的虚拟层(hypervisor)155,该虚拟层155可通过虚拟机监控器来实现,具体通过VM管理程序来实现。虚拟层155实现服务器上物理资源的虚拟化以及调度,供一个或者多个虚拟机使用。在上述体系中,管理面和数据面之间的交互情况为,若宿主机需要了解底层网络配置(如IP地址,路由表等),则宿主机需要通过管理面向虚拟层的数据面发起请求,虚拟层的数据面根据请求将底层网络配置的内容反映在网卡上。
需要注意的是,图2所示的虚拟交换机145和虚拟机150并非包含在虚拟层155中,而是覆盖(overlay)在虚拟层155之上。
每个虚拟交换机145可以被配置用来管理一个由虚拟机(或容器)组成的虚拟机网络和/或子网中虚拟机之间的通信。每一台虚拟交换机145采用运行在服务器135的软件来实现。由此,虚拟交换机145能够实现物理交换机的功能。类似的,每一个虚拟机150采用运行在服务器135的软件来实现。虚拟机150被配置用于和其他的虚拟机通过网络架构(fabric)115通信。对于数据中心系统100,可以存在任意数量的服务器,每台服务器可以容纳任意数量的虚拟交换机以及任意数量的虚拟机。为了简化描述,图2中包括一台服务器135以及与之关联的叶节点交换机125,以及一个服务器135以及与之关联的叶节点交换机130。在一个例子中,虚拟交换机145可以管理服务器135中的多个虚拟交换机之间的通信。
服务器135以及与之关联的叶节点交换机125被放置于一个机架单元(rack unit,或者称为rack)中,这一点未在图2中示出。其他的服务器也可以被容纳于机架中。Leaf交换机125以及叶节点交换机130负责对机架中的服务器(包括运行在服务器之上的虚拟机)作为发送方或者接收方的通信信息进行路由处理或者转发处理。ToR(Top-of-Rack)指的是交换机125和130,以及图2中的其他的叶节点交换机。叶节点交换机125和130能够被用来提供机架中的服务器、虚拟机以及虚拟交换机通信的备份以及容错。由此,叶节点交换机125和ToR交换机130是对等的两个交换机。这些叶节点交换机以及针节点交换机可以被配置用于和DCNM 110通信,该DCNM 110可以用于通过控制针节点交换机以及叶节点交换机而管理不同机架内的服务器(物理机或虚拟机)之间的通信。
为了便于介绍,请参阅图3,图3为本申请实施例中隧道建立的方法一个场景交互示意图,如图所示,在宿主机中包含软件模块,即代理(agent)模块和数据面(data path)模块,其中,新增的agent模块对data path模块增加了NAT功能,而宿主机具体可以是一个具有管理权限的VM、或者上述的虚拟层,如hypervisor,或者用于运行容器的软件系统,例如VM,或者上述的虚拟层等等,容器有软件层面的操作系统或者虚拟层。本申请中有三种对应关系,第一种对应关系为虚拟端为容器,宿主机为运行于物理机上操作系统;第二种对应关系为虚拟端为容器,宿主机为VM,第三种对应关系为虚拟端为VM,宿主机为运行于物理机上操作系统。
下面将分别介绍agent模块和data path模块。
agent模块主要承担了信道管理的任务,这些任务包含但不仅限于对信道资源的分配,客户端/服务器(client/server,C/S)的NAT信息协商,信道的创建和销毁等功能。
data path模块可主要承载数据面的功能,支持agent模块下发的NAT指令,对进出虚拟实体的数据包进行处理,一般采用虚拟交换(virtual switch,vSwitch)或传输控制协议(transmission control protocol,TCP)/网际互连协议(internet protocol,IP)的协议栈对数据包进行处理。
下面将结合附图3说明两个宿主机之间如何进行数据传输。
第一步,宿主机1作为发起方通过传统隧道或者私有格式信道向宿主机2发送第一个数据包,此时,宿主机1中的代理模块和宿主机2中的代理模块也可以相互交换各自的源网络地址转换(source network address translation,SNAT)信息和目的网络地址转换(destination network address translation,DNAT)信息,其中,传统隧道可以是通用路由封装(generic routing encapsulation,GRE)信道,或者互联网协议版本(internetprotocol version,IPv)信道,或者虚拟网络通用路由封装(network virtual genericrouting encapsulation,NVGRE)信道,又或者是互联网协议安全(internet protocolsecurity,IPSec)信道,当然,还可以是其他类型的隧道,此处不做限定。
此外,SNAT信息包括数据发送方对应的五元组,即源IP地址,目的IP地址,源端口号、目的端口号以及通信协议,DNAT信息包括数据接收方对应的五元组,即源IP地址,目的IP地址,源端口号、目的端口号以及通信协议。
第二步,宿主机1中的代理模块将SNAT信息和DNAT信息需求转化为具体执行规则(执行规则可以为源虚拟IP地址:192.168.1.100,对应于源虚拟端口号:30000,对应于目的虚拟IP地址:192.168.1.101,对应于目的虚拟端口号:80,对应于源实体IP地址:10.67.57.22,对应于源实体端口号20001,对应于目的实体IP地址:10.67.57.33,对应于目的实体端口号:4790,对应于通信协议类型:IP),类似地,宿主机2中的代理模块也将SNAT和DNAT需求转化为具体执行规则,两个宿主机所维护的执行规则内容一致。宿主机1中的代理模块和宿主机2中的代理模块分别将执行规则下发至对应的data path模块,下发方式通常为vSwitch或内核协议栈。
第三步,执行规则在data path模块中生效,至此,宿主机1和宿主机2之间的NAT隧道建立完成,后续宿主机之间的所有数据包均可以通过该NAT隧道进行传送。
而现有方案中,只能在单端使用SNAT技术或者DNAT技术,无法同时实现SNAT技术和DNAT技术,且无法获取整条数据流的服务质量(quality of service,QoS)。
另一方面,结合图4所提供的隧道建立方法一个交互示意图,如图所示,本申请中的第一通信设备可以是客户端,第二通信设备可以是服务器,具体地:
步骤S1中,客户端的agent模块通过data path模块的钩子函数或vSwitch受控的控制器截获交互数据包,客户端通过传统隧道(双隧道或多隧道)或私有格式信道(NAT隧道),向服务器侧的agent模块发送交互数据包;
步骤S2中,服务器的agent模块收到客户端侧agent模块发来的交互数据包;
步骤S3中,客户端从本地SNAT资源池获取空闲端口,并通报本地的SNAT端口号,同时申请服务器侧的DNAT端口号;
步骤S4中,服务器从本地DNAT资源池获取空闲端口,并通报本地的DNAT端口号,同时申请客户端侧的SNAT端口号;
步骤S5中,由于服务器侧的IP地址和DNAT端口有差异,在不超过容量上限情况下,客户端可以采用单端口多服务技术,通过agent模块分配单一SNAT端口给服务器;
步骤S6中,由于客户端侧的IP地址和SNAT端口有差异,在不超过容量上限情况下,服务器可以采用单端口多服务技术,通过agent模块分配单一DNAT端口给客户端;
步骤S7中,客户端的agent模块收到服务器的DNAT信息,将SNAT信息和DNAT信息转化为具体执行规则,规则中除了包括转发功能,还需要包括进出参与主体的接口时还原参与主体IP信息,客户端具体规则下发给data path模块;
步骤S8中,服务器的agent模块收到客户端的DNAT信息,将SNAT信息和DNAT信息转化为具体执行规则,规则中除了包括转发功能,还需要包括进出参与主体的接口时还原参与主体IP信息,客户端具体规则下发给data path模块;
步骤S9中,规则在客户端中的data path模块生效,NAT隧道建立完成,后续参与主体间的所有数据包均通过该NAT隧道传送,数据包需要等待最终规则在data path模块生效,才开始真正交互通讯;
步骤S10中,规则在服务器中的data path模块生效,NAT隧道建立完成,后续参与主体间的所有数据包均通过该NAT隧道传送,数据包需要等待最终规则在data path模块生效,才开始真正交互通讯。
可以理解的是,data path顾名思义,又可以称为“数据路径”,data path先通过软件将数据传输至缓存器(buffer)中,由光纤线路将buffer中数据转换成脉冲信号,即完成数转模的过程,最后,数据发送至以太网。Agent是一个进程,可以指虚拟端的容器应用或者VM应用。
另一种实现方式中,本申请实施例中第一通信装置的产品形态和第二通信装置的产品形态是基于虚拟端实现的,虚拟端包括容器和/或VM,宿主机上承载有C/S。本申请实施例中的程序代码可以运行于虚拟网络的平台软件、通信管理模块内部以及通信管理模块外部。具体地,请参阅图5,图5为本申请实施例中平台软件和服务器硬件中的实现形态示意图,下面将结合图5介绍各个模块。
在agent模块中,网络地址转换信息通信(NAT information communication)主要用于负责在信道创建之前,客户端和服务器之间交换SNAT信息及DNAT信息。
在agent模块中,网络地址转换端口管理(NAT port management)主要用于在客户端和服务器发起连接前分配SNAT端口,并协商获得对端的DNAT端口。
在agent模块中,网络地址转换规则发生器(NAT rule generator)主要用于生成data path模块可解析的规则。
在agent模块中,网络地址转换生命管理(NAT rule life management)主要用于老化端口资源及回收端口资源。
在data path模块中,网络地址转换规则执行器(NAT rule executor)主要用于执行agent模块下发的NAT规则,并完成数据包的转换。
在data path模块中,网络地址转换规则管理(NAT rule management)主要用于作为data path模块与agent模块的对接通道,完成规则的增加、删除及更新。
在网络硬件中,网络接口卡(network interface card,NIC)主要用于连接通信装置与网络,NIC也是局域网中最基本的部件之一。
可以理解的是,本申请实施例中的程序代码运行于服务器的主机内存和/或图形处理器(graphics processing unit,GPU),图5所示的是本申请在服务器和平台软件中的实现形态,主要新增了agent模块和data path模块,但data path模块的执行引擎无需修改。
下面将结合本申请中所有的附图具体说明一种报文传输的方法,具体将以两种不同的场景为例进行介绍。第一种场景为单隧道场景,也就是只采用NAT隧道的场景,第二种场景为双隧道或多隧道场景,比如采用GRE信道和NAT隧道的场景,或者采用虚拟局域网扩展(virtual extensible local area network,VxLAN)和NAT隧道的场景。
实施例一、单隧道场景(NAT隧道)
请参阅图6,图6为本申请实施例中报文传输的方法一个实施例示意图,所述方法应用于包含有虚拟端的第一通信设备以及第二通信设备,所述虚拟端为虚拟机或容器,其中,所述第一通信设备包含第一虚拟端以及第一宿主机,所述第二通信设备包含第二虚拟端以及第二宿主机,本申请实施例中隧道建立的方法一个实施例包括:
101、第一宿主机接收来自第一虚拟端的第一报文,其中,第一报文中携带第二虚拟端的网络信息,第二虚拟端运行于第二通信设备,第二通信设备还包括第二宿主机;
本实施例中,第一通信设备也可以认为是源端设备,而第二通信设备可以认为是目的端设备。首先第一通信设备中的第一虚拟端向第一宿主机发送第一报文,其中,该第一报文中携带了第一虚拟端的源虚拟网络信息,第一宿主机根据网络映射关系可以确定目的虚拟网络信息。源实体网络信息和源虚拟网络信息属于SNAT信息,源实体网络信息主要包含第一宿主机对应的源实体IP地址和源实体端口号,而源虚拟网络信息主要包含第一虚拟端所对应的源虚拟IP地址和源虚拟端口号。
可以理解的是,目的实体网络信息和目的虚拟网络信息属于DNAT信息,目的实体网络信息主要包含第二宿主机的目的实体IP地址以及目的实体端口号,而目的虚拟网络信息主要包含第二虚拟端对应的目的虚拟IP地址和目的虚拟端口号。
102、第一宿主机根据第一报文以及第一宿主机中的网络信息映射关系得到第二报文,第二报文中携带第二宿主机的网络信息,网络信息映射关系包括第二虚拟端的网络信息和第二宿主机的网络信息之间的映射关系;
本实施例中,第一宿主机可以根据预先建立的网络信息映射关系和第一报文中携带的源虚拟网络信息,确定第二虚拟端所对应的目的虚拟网络信息。
具体地,第一宿主机在根据第一报文以及网络信息映射关系确定第二虚拟端所对应的目的虚拟网络信息之前,还需要建立网络信息映射关系。
第一宿主机获取源实体IP地址、源实体端口号、源虚拟IP地址和源虚拟端口号,结合目的实体IP地址、目的实体端口号、目的虚拟IP地址和目的虚拟端口号便能够建立网络信息映射关系。其中,目的实体IP地址表示第二宿主机的IP地址,目的实体端口号表示第二宿主机的端口号,目的虚拟IP地址表示第二虚拟端的IP地址,目的虚拟端口号表示第二虚拟端的端口号,源实体IP地址表示第一宿主机的IP地址,源实体端口号表示第一宿主机的端口号,源虚拟IP地址表示第一虚拟端的IP地址,源虚拟端口号表示第一虚拟端的端口号。在实际应用中,还需要在网络信息映射关系中加入通信协议类型,以获知需采用何种通信协议传输数据。为了便于理解,请参阅表1,表1为第一宿主机建立的网络信息映射关系的一个示意。
表1
需要说明的是,表1中的IP地址和端口号仅为一个示意,在实际应用中,还可以灵活地设置网络信息映射关系中的各项内容。
103、第一宿主机向第二通信设备发送第二报文,第二报文中携带第二宿主机的网络信息;
本实施例中,第一宿主机向第二宿主机发送第二报文之前,还可以根据网络信息映射关系建立第一隧道,其中,第一隧道为第一虚拟端与第二虚拟端之间进行通信的隧道,第一隧道可以为NAT隧道。
可选地,第一宿主机根据网络信息映射关系建立第一隧道之后,第一宿主机还可以在第二报文中加入目的虚拟网络信息,然后第一宿主机通过该第一隧道向第二宿主机发送该第二报文。当然,此时对于第二宿主机而言,也已经建立起网络信息映射关系,于是第二宿主机可以根据本地维护的网络信息映射关系确定第二报文所对应的源虚拟网络信息。
从而使得第一通信设备和第二通信设备在采用第一隧道通信时,均能实现虚拟端地址的透明化,换言之,利用网络信息映射关系能够准确地定位到发送数据的虚拟端,从而能够为发送数据的虚拟端提供有针对性的服务。
104、第二宿主机确定第二虚拟端的网络信息,并向第二虚拟端发送第五报文;
本实施例中,第二宿主机向第二虚拟端转发第五报文,第五报文中同样携带了源主机网络信息和目的主机网络信息。
105、第二虚拟端根据第五报文确定源虚拟网络信息。
本实施例中,第二虚拟端知道自身对应的目的虚拟网络信息,同时又从第五报文中得到源主机网络信息和目的主机网络信息,根据网络信息映射关系就能知道源虚拟网络信息。
具体地,第二宿主机获取目的实体网络信息以及目的虚拟网络信息,即得到目的实体IP地址、目的实体端口号、目的虚拟IP地址和目的虚拟端口号,第二宿主机结合源实体IP地址、源实体端口号、源虚拟IP地址和源虚拟端口号便能够建立网络信息映射关系。在实际应用中,还需要在网络信息映射关系中加入通信协议类型,以获知需采用何种通信协议传输数据。为了便于理解,请参阅表2,表2为第二宿主机建立的网络信息映射关系的一个示意。
表2
需要说明的是,表2中的IP地址和端口号仅为一个示意,在实际应用中,还可以灵活地设置网络信息映射关系中的各项内容,但是第一宿主机和第二宿主机所维护的网络信息映射关系是一致的。
采用上述网络信息映射关系还可以实现NAT信息的透明还原,为了便于介绍,请参阅图7,图7为本申请实施例中网络地址转换信息透明还原的一个实施例示意图,如图所示,SNAT信息包括源实体网络信息和源虚拟网络信息,DNAT信息包括目的实体网络信息和目的虚拟网络信息,当前存在实体网络及虚拟网络,本申请可以按需建立虚拟网络间穿越规则,即建立网络信息映射关系,以此同步两端的SNAT信息与DNAT信息,当第二报文进入参与主体接口时,完整地还原虚拟网络和实体网络,提供真正的隧道服务。
之所以称为“透明”,是因为客户端只需正常发出对服务器的IP访问请求,就可以在两台宿主机之间协商并建立起网络信息映射关系,构建宿主机之间的访问通道。之所以称为“还原”,是因为客户端和服务器均完全感知SNAT信息和DNAT信息,网络信息映射关系中包含还原动作,即宿主机网络的IP地址及端口号,进入参与主机接口时修改为参与宿主机间虚拟网络的IP地址及端口号。
具体地,以图7为例,由图可见,宿主机网络为10.*的地址(*表示省略),而参与宿主机间虚拟网络为192.*的地址,当NAT隧道建立之后,在进出主机接口(1号接口)从192.*的地址转换为10.*的地址。而在进出参与主体接口(2号接口)从10.*的地址转换回192.*的地址。
可选地,传统的DNAT技术需要为每个服务建立单独对外端口,这样会大量地耗费端口资源,而采用本申请所提供的数据传输方法可以实现单端口多服务,即减少端口资源的浪费,为了便于介绍,请参阅图8,图8为本申请实施例中单端口多服务的一个实施例示意图,如图所示,通过VxLAN或单独私有协议可以预先建立网络信息映射关系,其中,网络信息映射关系包括但不仅限于源虚拟IP地址、源虚拟端口号、源实体IP地址、源实体端口号、目的虚拟IP地址、目的虚拟端口号、目的实体IP地址以及目的实体端口号,其中,源实体端口可以接近64千字节(kilobyte,K),当然,这些端口中有一部分是预留给对外服务的,每个端口对应唯一的一组虚拟IP地址和端口号。目的实体端口号不变,可以根据源实体端口号和源实体IP地址确定最终的服务流向,即确定目的虚拟IP地址和目的虚拟端口号。
可以理解的是,对于单个固定的服务端口,可以支持无明显上限的接入流。而对于特定源主机对某个特定的目的主机服务端口的访问,最多支持接近64K(即64K个业务)。若需要进行扩展,可以通过目的主机上的第二或第三端口来支持,总数量达到N×64K,N为大于或等于1的正整数。
本申请实施例中,提供了一种报文传输的方法,首先第一虚拟端向第一宿主机发送第一报文,该第一报文中携带第一虚拟端所对应的源虚拟网络信息,然后第一宿主机根据第一报文以及网络信息映射关系确定第二虚拟端所对应的目的虚拟网络信息,最后第一宿主机向第二宿主机发送数据包,第二虚拟端可根据网络信息映射关系确定数据包的源虚拟网络信息。通过上述方式,在虚拟端通过目标隧道接收到数据之前,可以根据网络信息映射关系将实体网络信息转换为虚拟网络信息,这样的话,两个虚拟端的地址均实现了透明化,也就是接收到数据的虚拟端能够准确地定位到发送数据的虚拟端,从而能够为发送数据的虚拟端提供有针对性的服务。
可选地,在上述图6对应的实施例基础上,第一宿主机还可以接收第三报文,具体地:
首先,第一宿主机接收来自第二通信设备的第三报文,其中,第三报文中携带第一宿主机的网络信息以及第二宿主机的网络信息,然后,第一宿主机根据第一宿主机的网络信息、第二宿主机的网络信息以及第一宿主机中的网络信息映射关系确定第一虚拟端的网络信息,网络信息映射关系还包括第一宿主机的网络信息、第二宿主机的网络信息和第一虚拟端的网络信息之间的映射关系,最后第一宿主机向第一虚拟端发送第四报文,其中,第四报文中携带第一虚拟端的网络信息。
可选地,在上述图6对应的实施例基础上,第二宿主机还可以接收来自第一通信设备的第二报文,具体地:
首先,第二宿主机接收来自第一通信设备发送的第二报文,其中,第二报文中携带第一宿主机的网络信息以及第二宿主机的网络信息,第一宿主机运行于第一通信设备,第一通信设备还包括第一虚拟端,然后第二宿主机根据第一宿主机的网络信息以及第二宿主机的网络信息以及第一宿主机中的网络信息映射关系确定第二虚拟端的网络信息,第二宿主机中的网络信息映射关系包括第一宿主机的网络信息、第二宿主机的网络信息和第二虚拟端的网络信息之间的映射关系,最后第二宿主机向第二虚拟端发送第五报文,其中,第五报文中携带第二虚拟端的网络信息。
可选地,在上述图6对应的实施例基础上,第二宿主机还可以向第一通信设备发送第七报文,具体地:
首先,第二宿主机接收来自第二虚拟端的第六报文,其中,第六报文中携带第一虚拟端的网络信息,然后第二宿主机根据第一虚拟端的网络信息以及第二宿主机中的网络信息映射关系确定第一宿主机的网络信息,第二宿主机中的网络信息映射关系还包括第一虚拟端的网络信息、第二宿主机中的网络信息以及第一宿主机的网络信息之间的映射关系,最后,第二宿主机向第一通信设备发送第七报文,其中,第七报文中携带第一宿主机的网络信息。
其次,本申请实施例中,提供了一种报文接收的方法,可以使得两个虚拟端的地址均实现了透明化,不会与宿主机的网络信息产生混淆,从而能够为发送数据的虚拟端提供有针对性的服务。
为便于理解,下面以一个具体应用场景对本申请中一种报文传输的方法进行详细描述,请参阅图9,图9为本申请应用场景中一种单隧道建立的一个流程示意图,如图所示,当前环境无其他隧道技术,一种典型的单通道NAT隧道建立的流程如下,具体为:
步骤A1中,对于客户端向服务器发起隧道建立的动作,即客户端先向客户端的data path模块发送首个数据包,其中,该数据包中包括虚拟五元组,即通信协议类型,源虚拟IP地址、源虚拟端口号、源实体IP地址和源实体端口号;
步骤A2中,客户端的data path模块在收到这首个数据包之后,客户端的datapath模块会向客户端的agent模块请求NAT隧道;
步骤A3中,客户端的agent模块向服务器的agent模块请求建立NAT隧道;
步骤A4中,此时,服务器的agent模块根据通信协议类型、源虚拟IP地址、源虚拟端口号、源实体IP地址、源实体端口号、目的虚拟IP地址、目的虚拟端口号、目的实体IP地址以及目的实体端口号建立起NAT转换规则,即建立起网络信息映射关系,并通知服务器的datapath模块维护该NAT转换规则;
步骤A5中,服务器的agent模块通知客户端的agent模块允许建立NAT隧道,并且告知客户端的agent模块通信协议类型、目的虚拟IP地址、目的虚拟端口号、目的实体IP地址以及目的实体端口号;
步骤A6中,客户端的agent模块通知客户端的data path模块已准备好NAT隧道的建立;
步骤A7中,客户端的agent模块根据通信协议类型、虚拟IP地址、源虚拟端口号、源实体IP地址、源实体端口号、目的虚拟IP地址、目的虚拟端口号、目的实体IP地址以及目的实体端口号建立起NAT转换规则,即建立起网络信息映射关系,并通知客户端的data path模块维护该NAT转换规则;
步骤A8中,客户端主机通过NAT隧道向服务器主机发送NAT数据包;
步骤A9中,服务器的data path模块向服务器发送NAT数据包;
步骤A10中,服务器向服务器的data path模块发送NAT数据包,至此打通服务器向服务器的data path模块之间的数据传输通道;
步骤A11中,服务器主机通过NAT隧道向客户端主机发送NAT数据包,至此打通服务器和客户端之间的数据传输通道。
实施例二、双隧道或多隧道场景(VxLAN/GRE+NAT方式)
请参阅图10,图10为本申请实施例中报文传输的方法另一个实施例示意图,该隧道建立的方法应用于隧道建立系统,隧道建立系统包含第一通信设备以及第二通信设备,第一通信设备包含第一虚拟端,第二通信设备包含第二虚拟端,其中,虚拟端为容器和/或虚拟机,本申请实施例中隧道建立的方法一个实施例包括:
201、在传输交互数据满足预设隧道切换条件的情况下,第一宿主机将第二隧道切换为第一隧道,其中,传输交互数据用于表示第一宿主机与第二宿主机的数据传输情况;
本实施例中,第一通信设备可以根据传输交互数据实时监测是否满足预设隧道切换条件,如果满足该预设隧道切换条件,那么第一通信设备可以将第二隧道切换为第一隧道。可以理解的是,第二隧道通常为GRE隧道或者VxLAN隧道,在实际应用中,原始隧道还可以是其他类型的隧道,而第一隧道即为NAT隧道。
反之,如果传输交互数据不满足预设隧道切换条件,则第一宿主机继续采用原始隧道向第二宿主机传输数据包。这里的传输交互数据即用于表示第一通信设备与第二通信设备的数据传输情况。
202、第一宿主机接收来自第一虚拟端的第一报文,其中,第一报文中携带源虚拟网络信息和目的虚拟网络信息,源虚拟网络信息为第一虚拟端的网络信息,目的虚拟网络信息为第二虚拟端的网络信息,第二虚拟端运行于第二通信设备,第二通信设备还包括第二宿主机;
本实施例中,步骤202如上述步骤101中所描述的内容,故此处不做赘述。
203、第一宿主机根据第一报文以及第一宿主机中的网络信息映射关系得到第二报文,第二报文中携带第二宿主机的网络信息,网络信息映射关系包括第二虚拟端的网络信息和第二宿主机的网络信息之间的映射关系;
本实施例中,步骤203如上述步骤102中所描述的内容,故此处不做赘述。
204、第一宿主机向第二通信设备发送第二报文;
本实施例中,步骤204如上述步骤103中所描述的内容,故此处不做赘述。
205、第二宿主机确定第二虚拟端的网络信息,并向第二虚拟端发送第五报文;
本实施例中,步骤205如上述步骤104中所描述的内容,故此处不做赘述。
206、第二虚拟端根据网络信息映射关系和第五报文确定源虚拟网络信息。
本实施例中,步骤206如上述步骤105中所描述的内容,故此处不做赘述。
本申请实施例中,介绍了一种数据的方法,初始交互一般先采用传统隧道方式,比如VxLAN或GRE隧道,当满足条件时就会切换到采用NAT技术的隧道。通过上述方式,一方面利用NAT隧道可以提供数据传输高效率,提升网络效率。另一方面充分采用传统双层隧道能力,仅对待加速连接进行NAT加速,这样既没有拖延建链时间,又可以有针对性地进行信道加速。综上,采用双隧道或多隧道并存技术可以取长补短,各取所长。
可选地,在上述图10对应的实施例的基础上,本申请实施例提供的报文传输的方法第一个可选实施例中,在传输交互数据满足预设隧道切换条件的情况下,第一宿主机确定将第二隧道切换为第一隧道,可以包括至少一种:
若第二报文的传输时长大于或者等于第一预设门限,则第一宿主机确定传输交互数据满足预设隧道切换条件,并将第二隧道切换为第一隧道,第二宿主机通过第一隧道接收第一宿主机发送的第二报文,其中,第二报文的传输时长为第一通信设备通过原始隧道向第二通信设备传输第二报文的时间长度;
和/或,
若第二报文的数量大于或者等于第二预设门限,则第一宿主机确定传输交互数据满足预设隧道切换条件,并将第二隧道切换为第一隧道,第二宿主机通过第一隧道接收第一宿主机发送的第二报文,其中,第二报文的数量为第一通信设备通过原始隧道向第二通信设备传输第二报文的个数;
和/或,
若第二报文的传输速率大于或者等于第三预设门限,则第一宿主机确定传输交互数据满足预设隧道切换条件,并将第二隧道切换为第一隧道,第二宿主机通过第一隧道接收第一宿主机发送的第二报文,其中,第二报文的传输速率为第一通信设备通过原始隧道向第二通信设备传输第二报文的速率;
和/或,
若第二报文所携带的用户优先级大于或者等于第四预设门限,则第一宿主机确定传输交互数据满足预设隧道切换条件,并将第二隧道切换为第一隧道,第二宿主机通过第一隧道接收第一宿主机发送的第二报文,其中,用户优先级预先设定的第二报文优先级别,第二报文为第一通信设备通过原始隧道向第二通信设备传输的第二报文。
本实施例中,双隧道或多隧道场景下,初始交互一般采用传统隧道方式建立,比如采用VxLAN或GRE隧道,当满足预设隧道切换条件条件时,发起采用NAT技术的隧道方式切换。当前协议在宿主机网络还有剩余端口资源可以作为第一宿主机的源出口,也可以作为第二宿主机的目的出口。
介绍了四种可以将第二隧道切换为第一隧道的情形,在实际应用中,包含但不仅限于这四种情形。
第一种,如果第二报文的传输时长大于或者等于第一预设门限,那么第一宿主机确定传输交互数据满足预设隧道切换条件,并且确定将第二隧道(如VxLAN或GRE隧道)切换为第一隧道(NAT隧道),其中,第二报文的传输时长为第一宿主机通过第二隧道向第二宿主机传输第二报文的时间长度。这类情形适用于观看视频或者在一段时间内需要传输数据流的情况。
需要说明的是,第一预设门限可以为1小时,或者2小时,或者其他的时间,此处不做限定。
第二种,如果第二报文的数量大于或者等于第二预设门限,那么第一宿主机确定传输交互数据满足预设隧道切换条件,并且确定将第二隧道(如VxLAN或GRE隧道)切换为第一隧道(NAT隧道),其中,第二报文的数量为第一宿主机通过第二隧道向第二宿主机传输第二报文的个数。这类情形适用于观看视频或者需要传输大量第二报文的情况。
需要说明的是,第二预设门限可以为100个,或者200个,或者其他的第二报文格式,此处不做限定。
第三种,如果第二报文的传输速率大于或者等于第三预设门限,那么第一宿主机备确定传输交互数据满足预设隧道切换条件,并且确定将第二隧道(如VxLAN或GRE隧道)切换为第一隧道(NAT隧道),其中,第二报文的传输速率为第一宿主机通过第二隧道向第二宿主机传输第二报文的速率。这类情形适用于观看视频或者需要数据传输不卡顿的情况。
需要说明的是,第三预设门限可以为1兆每秒,或者1.2兆每秒,或者其他的传输速率,此处不做限定。
第四种,如果第二报文所携带的用户优先级大于或者等于第四预设门限,那么第一宿主机确定传输交互数据满足预设隧道切换条件,并且确定将第二隧道(如VxLAN或GRE隧道)切换为第一隧道(NAT隧道),其中,用户优先级预先设定的第二报文优先级别,第二报文为第一宿主机通过第二隧道向第二宿主机传输的第二报文。这类情形适用于用户对第二报文重要性有要求的场景。
需要说明的是,第四预设门限可以为第一优先级,或者第二优先级,或者其他的优先级,此处不做限定。
其次,本申请实施例中,具体介绍了几种适用于双隧道或多隧道的情况,首先采用传统隧道技术建立连接,同时开始NAT双向协商,一旦协商完成,随即切换到NAT方式隧道。通过上述方式,实现多个隧道技术并存,从而能够服务于数据流的不同阶段。此外,能够通过多种特征筛选具备加速价值数据流,以此提升方案的实用性。
为便于理解,下面以一个具体应用场景对本申请中另一种报文传输的方法进行详细描述,请参阅图11,图11为本申请应用场景中一种双隧道或多隧道建立的一个流程示意图,如图所示,典型的双隧道或多隧道建立的流程如下,具体为:
步骤B1中,客户端通过VxLAN隧道向客户端的data path模块发送数据包;
步骤B2中,客户端的data path模块向客户端的agent模块上报传输交互数据,其中,该传输交互数据用于表示客户端与服务器之间的数据传输情况;
步骤B3中,客户端的agent模块判断传输交互数据是否满足预设隧道切换条件,如果满足该条件,那么客户端的agent模块便会决定采用NAT隧道来代替原本的VxLAN隧道,使得数据能够通过NAT隧道来发送;
步骤B4中,客户端的agent模块向服务器的agent模块请求建立NAT隧道;
步骤B5中,此时,服务器的agent模块根据通信协议类型、虚拟IP地址、源虚拟端口号、源实体IP地址、源实体端口号、目的虚拟IP地址、目的虚拟端口号、目的实体IP地址以及目的实体端口号建立起NAT转换规则,即建立起网络信息映射关系,并通知服务器的datapath模块维护该NAT转换规则;
步骤B6中,服务器的agent模块通知客户端的agent模块允许建立NAT隧道,并且告知客户端的agent模块通信协议类型、目的虚拟IP地址、目的虚拟端口号、目的实体IP地址以及目的实体端口号;
步骤B7中,客户端的agent模块通知客户端的data path模块已准备好NAT隧道的建立;
步骤B8中,客户端的agent模块根据通信协议类型、虚拟IP地址、源虚拟端口号、源实体IP地址、源实体端口号、目的虚拟IP地址、目的虚拟端口号、目的实体IP地址以及目的实体端口号建立起NAT转换规则,即建立起网络信息映射关系,并通知客户端的data path模块维护该NAT转换规则;
步骤B9中,客户端主机通过NAT隧道向服务器主机发送NAT数据包;
步骤B10中,服务器的data path模块向服务器发送NAT数据包;
步骤B11中,服务器向服务器的data path模块发送NAT数据包,至此打通服务器向服务器的data path模块之间的数据传输通道;
步骤B12中,服务器主机通过NAT隧道向客户端主机发送NAT数据包,至此打通服务器和客户端之间的数据传输通道。
实施例三、实验数据
为了更直观地了解本申请中一种隧道建立方法的性能优势,还针对该不同数据流量对本申请所提供的技术方案进行试验。请参阅图12,图12为本申请实施例中不同数据流量场景下虚拟网络性能损耗对比示意图,由图可见,采用本申请所提供的技术方案,其性能开销和宿主机网络相比下降了小于5%,比传统隧道技术(如VxLAN)相比,其性能改善超过了50%。
从而,不难看出,采用本申请所提供的技术方案之后,可采用一层网络实现叠加效果,性能得到大幅度提升。
下面对本申请中一个实施例对应的报文传输装置进行详细描述,所述报文传输装置包括第一宿主机302和第一虚拟端,所述虚拟端为虚拟机或容器,,请参阅图13,本申请实施例中的报文传输装置30包括:
所述第一虚拟端301用于向所述第一虚拟机发送第一报文,所述第一报文中携带第二虚拟端的网络信息,所述第二虚拟端运行于第二通信设备,所述第二通信设备还包括第二宿主机;
所述第一宿主机302用于根据所述第一报文以及所述第一宿主机中的网络信息映射关系得到第二报文,所述第二报文中携带所述第二宿主机的网络信息,所述网络信息映射关系包括所述第二虚拟端的网络信息和第二宿主机的网络信息之间的映射关系;
所述第一宿主机302用于向所述第二通信设备发送所述第二报文,所述第二报文中携带所述第二宿主机的网络信息。
本申请实施例中,提供了一种通信设备,首先第一虚拟端向第一宿主机发送第一报文,该第一报文中携带第一虚拟端所对应的源虚拟网络信息,然后第一宿主机根据第一报文以及网络信息映射关系确定第二虚拟端所对应的目的虚拟网络信息,最后第一宿主机向第二宿主机发送数据包,第二虚拟端可根据网络信息映射关系确定数据包的源虚拟网络信息。通过上述方式,在虚拟端通过目标隧道接收到数据之前,可以根据网络信息映射关系将实体网络信息转换为虚拟网络信息,这样的话,两个虚拟端的地址均实现了透明化,也就是接收到数据的虚拟端能够准确地定位到发送数据的虚拟端,从而能够为发送数据的虚拟端提供有针对性的服务。
可选地,在上述图13所对应的实施例的基础上,本申请实施例提供的报文传输装置30的另一实施例中,
所述第一宿主机302用于接收来自所述第二通信设备的第三报文,其中,所述第三报文中携带所述第一宿主机的网络信息以及所述第二宿主机的网络信息;
所述第一宿主机302用于根据所述第三报文以及以及所述第一宿主机中的网络信息映射关系得到第四报文,其中,所述第四报文中携带所述第一虚拟端的网络信息,所述网络信息映射关系还包括所述第一宿主机的网络信息、所述第二宿主机的网络信息和所述第一虚拟端的网络信息之间的映射关系;
所述第一宿主机302用于向所述第一虚拟端301发送第四报文,其中,所述第四报文中携带所述第一虚拟端的网络信息。
可见,提供了一种报文接收的方法,可以使得两个虚拟端的地址均实现了透明化,不会与宿主机的网络信息产生混淆,从而能够为发送数据的虚拟端提供有针对性的服务。
可选地,在上述图13所对应的实施例的基础上,本申请实施例提供的报文传输装置30的另一实施例中,
所述第一宿主机302用于向所述第二通信设备发送隧道建立请求;
所述第一宿主机302用于接收所述第二通信设备发送的隧道建立响应;
所述第一宿主机302用于根据所述隧道建立响应建立第一隧道,其中,所述第一隧道用于所述第一宿主机与所述第二宿主机之间的通信;
所述第一宿主机302用于通过所述第一隧道向所述第二通信设备发送所述第二报文。
再次,本申请实施例中,第一宿主机和第二宿主机之间会打通第一隧道,也就是NAT隧道,也就是打通了第一虚拟端到第二虚拟端的NAT隧道,以此实现虚拟端之间的NAT穿透,同时,采用NAT穿透技术还有利于提升数据传输的效率。
可选地,在上述图13所对应的实施例的基础上,本申请实施例提供的报文传输装置30的另一实施例中,
所述第一宿主机302用于向所述第二通信设备发送第二报文之前,在传输交互数据满足预设隧道切换条件的情况下,将第二隧道切换为所述第一隧道,其中,所述传输交互数据用于表示所述第一宿主机与所述第二宿主机的数据传输情况;
所述第一宿主机302用于向所述第二通信设备发送第二报文之前,若所述传输交互数据不满足所述预设隧道切换条件,则所述第一宿主机继续采用所述第二隧道向所述第二通信设备传输所述第二报文。
进一步地,本申请实施例中,介绍了一种报文传输的方法,初始交互一般先采用传统隧道方式,比如VxLAN或GRE隧道,当满足条件时就会切换到采用NAT技术的隧道。通过上述方式,一方面利用NAT隧道可以提供数据传输高效率,提升网络效率。另一方面充分采用传统双层隧道能力,仅对待加速连接进行NAT加速,这样既没有拖延建链时间,又可以有针对性地进行信道加速。综上,采用双隧道或多隧道并存技术可以取长补短,各取所长。
可选地,在上述图13所对应的实施例的基础上,本申请实施例提供的报文传输装置30的另一实施例中,
所述第一宿主机302用于若第二报文的传输时长大于或者等于第一预设门限,则确定所述传输交互数据满足所述预设隧道切换条件,并将所述第二隧道切换为所述第一隧道,其中,所述第二报文的传输时长为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的时间长度;
和/或,
若所述第二报文的数量大于或者等于第二预设门限,则确定所述传输交互数据满足所述预设隧道切换条件,并将所述第二隧道切换为所述第一隧道,其中,所述第二报文的数量为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的个数;
和/或,
若所述第二报文的传输速率大于或者等于第三预设门限,则确定所述传输交互数据满足所述预设隧道切换条件,并将所述第二隧道切换为所述第一隧道,其中,所述第二报文的传输速率为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的速率;
和/或,
若所述第二报文所携带的用户优先级大于或者等于第四预设门限,则确定所述传输交互数据满足所述预设隧道切换条件,并将所述第二隧道切换为所述第一隧道,其中,所述用户优先级预先设定的第二报文优先级别,所述第二报文为所述第一宿主机通过所述第二隧道向所述第二宿主机传输的第二报文。
更进一步地,本申请实施例中,本申请实施例中,具体介绍了几种适用于双隧道或多隧道的情况,首先采用传统隧道技术建立连接,同时开始NAT双向协商,一旦协商完成,随即切换到NAT方式隧道。通过上述方式,实现多个隧道技术并存,从而能够服务于数据流的不同阶段。此外,能够通过多种特征筛选具备加速价值数据流,以此提升方案的实用性。
下面对本申请中另一个实施例对应的第二宿主机进行详细描述,所述报文传输装置报文传输装置包括第二宿主机和第二虚拟端,所述第二虚拟端为虚拟机或容器,请参阅图14,本申请实施例中的报文传输装置40包括:
所述第二宿主机401用于接收来自第一通信设备发送的第二报文,其中,所述第二报文中携带第一宿主机的网络信息以及所述第二宿主机的网络信息,所述第一宿主机运行于第一通信设备,所述第一通信设备还包括第一虚拟端;
所述第二宿主机401用于根据所述第二报文以及所述第一宿主机中的网络信息映射关系得到第五报文,,其中,所述第五报文中携带所述第二虚拟端的网络信息,所述第二宿主机中的网络信息映射关系包括所述第一宿主机的网络信息、所述第二宿主机的网络信息和所述第二虚拟端的网络信息之间的映射关系;
所述第二宿主机401用于向所述第二虚拟端402发送所述第五报文,其中,所述第五报文中携带所述第二虚拟端的网络信息。
本申请实施例中,提供了一种宿主机,可以根据网络信息映射关系将实体网络信息转换为虚拟网络信息,这样的话,两个虚拟端的地址均实现了透明化,也就是接收到数据的虚拟端能够准确地定位到发送数据的虚拟端,从而能够为发送数据的虚拟端提供有针对性的服务。
可选地,在上述图14所对应的实施例的基础上,本申请实施例提供的报文传输装置40的另一实施例中,
所述第二宿主机401用于接收来自所述第二虚拟端的第六报文,其中,所述第六报文中携带所述第一虚拟端的网络信息;
所述第二宿主机401用于根据所述第六报文以及所述第二宿主机中的网络信息映射关系确定第七报文,其中,所述第七报文中携带所述第一宿主机的网络信息所述第二宿主机中的网络信息映射关系还包括所述第一虚拟端的网络信息以及所述第一宿主机的网络信息之间的映射关系;
所述第二宿主机401用于向所述第一通信设备发送第七报文,其中,所述第七报文中携带所述第一宿主机的网络信息。
可见,提供了一种报文传输的方法,可以使得两个虚拟端的地址均实现了透明化,不会与宿主机的网络信息产生混淆,从而能够为发送数据的虚拟端提供有针对性的服务。
可选地,在上述图14所对应的实施例的基础上,本申请实施例提供的报文传输装置40的另一实施例中,
所述接收模块401,具体用于通过第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述第一隧道用于所述第一宿主机与所述第二宿主机之间的通信。
再次,本申请实施例中,第一宿主机和第二宿主机之间会打通第一隧道,也就是NAT隧道,也就是打通了第一虚拟端到第二虚拟端的NAT隧道,以此实现虚拟端之间的NAT穿透,同时,采用NAT穿透技术还有利于提升数据传输的效率。
可选地,在上述图14所对应的实施例的基础上,本申请实施例提供的报文传输装置40的另一实施例中,
所述第二宿主机401用于通过第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述第一隧道用于所述第一宿主机与所述第二宿主机之间的通信。
进一步地,本申请实施例中,介绍了一种报文传输的方法,初始交互一般先采用传统隧道方式,比如VxLAN或GRE隧道,当满足条件时就会切换到采用NAT技术的隧道。通过上述方式,一方面利用NAT隧道可以提供数据传输高效率,提升网络效率。另一方面充分采用传统双层隧道能力,仅对待加速连接进行NAT加速,这样既没有拖延建链时间,又可以有针对性地进行信道加速。综上,采用双隧道或多隧道并存技术可以取长补短,各取所长。
可选地,在上述图14所对应的实施例的基础上,本申请实施例提供的报文传输装置40的另一实施例中,
所述第二宿主机401用于若第二报文的传输时长大于或者等于第一预设门限,则通过所述第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述第二报文的传输时长为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的时间长度;
和/或,
若所述第二报文的数量大于或者等于第二预设门限,则通过所述第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述第二报文的数量为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的个数;
和/或,
若所述第二报文的传输速率大于或者等于第三预设门限,则通过所述第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述第二报文的传输速率为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的速率;
和/或,
若所述第二报文所携带的用户优先级大于或者等于第四预设门限,则通过所述第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述用户优先级预先设定的第二报文优先级别,所述第二报文为所述第一宿主机通过所述第二隧道向所述第二宿主机传输的第二报文。
更进一步地,本申请实施例中,具体介绍了几种适用于双隧道或多隧道的情况,首先采用传统隧道技术建立连接,同时开始NAT双向协商,一旦协商完成,随即切换到NAT方式隧道。通过上述方式,实现多个隧道技术并存,从而能够服务于数据流的不同阶段。此外,能够通过多种特征筛选具备加速价值数据流,以此提升方案的实用性。
本发明实施例还提供了另一种通信设备,如图15所示,以通信设备为物理机为例:
图15示出的是与本发明实施例提供的物理机为相关的手机的部分结构的框图。参考图15,物理机为包括:射频(radio frequency,RF)电路510、存储器520、输入单元530、显示单元540、传感器550、音频电路560、无线保真(wireless fidelity,WiFi)模块570、处理器580、以及电源590等部件。本领域技术人员可以理解,图15中示出的物理机结构并不构成对物理机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图15对物理机为的各个构成部件进行具体的介绍:
通常RF电路510包括至少一个放大器、收发信机、耦合器、低噪声放大器(lownoise amplifier,LNA)、双工器等。此外,RF电路510还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(global system of mobile communication,GSM)、通用分组无线服务(general packetradio service,GPRS)、码分多址(code division multiple access,CDMA)、宽带码分多址(wideband code division multiple access,WCDMA)、长期演进(long term evolution,LTE)、电子邮件、短消息服务(short messaging service,SMS)等。
存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行物理机的各种功能应用以及数据处理,例如,实现如前文所述的第一宿主机,第一虚拟端,第二宿主机以及第二虚拟端。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据物理机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元530可用于接收输入的数字或字符信息,以及产生与物理机的用户设置以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入设备532。触控面板531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板531上或在触控面板531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器580,并能接收处理器580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板531。除了触控面板531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元540可用于显示由用户输入的信息或提供给用户的信息以及物理机的各种菜单。显示单元540可包括显示面板541,可选的,可以采用液晶显示器(liquid crystaldisplay,LCD)、有机发光二极管(organic light-emitting diode,OLED)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图15中,触控面板531与显示面板541是作为两个独立的部件来实现物理机的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现物理机的输入和输出功能。
物理机还可包括至少一种传感器550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在物理机移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别物理机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于物理机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路560、扬声器561,传声器562可提供用户与物理机之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经RF电路510以发送给比如另一物理机,或者将音频数据输出至存储器520以便进一步处理。
WiFi属于短距离无线传输技术,物理机通过WiFi模块570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图15示出了WiFi模块570,但是可以理解的是,其并不属于物理机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器580是物理机的控制中心,利用各种接口和线路连接整个物理机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行物理机的各种功能和处理数据,从而对物理机进行整体监控。可选的,处理器580可包括一个或多个处理单元;可选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
物理机还包括给各个部件供电的电源590(比如电池),可选的,电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,物理机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该物理机所包括的处理器580还具有以下功能:
接收来自所述第一虚拟端的第一报文,其中,所述第一报文中携带第二虚拟端的网络信息,所述第二虚拟端运行于第二通信设备,所述第二通信设备还包括第二宿主机;
根据所述第二虚拟网络信息以及所述第一宿主机中的网络信息映射关系确定所述第二宿主机的网络信息,所述网络信息映射关系包括所述第二虚拟端的网络信息和第二宿主机的网络信息之间的映射关系;
向所述第二通信设备发送第二报文,所述第二报文中携带所述第二宿主机的网络信息。
此外,处理器580还用于:
接收来自第一通信设备发送的第二报文,其中,所述第二报文中携带第一宿主机的网络信息以及所述第二宿主机的网络信息,所述第一宿主机运行于第一通信设备,所述第一通信设备还包括第一虚拟端;
根据所述第一宿主机的网络信息以及所述第二宿主机的网络信息以及所述第一宿主机中的网络信息映射关系确定所述第二虚拟端的网络信息,所述第二宿主机中的网络信息映射关系包括所述第一宿主机的网络信息、所述第二宿主机的网络信息和所述第二虚拟端的网络信息之间的映射关系;
向所述第二虚拟端发送所述第五报文,其中,所述第五报文中携带所述第二虚拟端的网络信息。
请参阅图16,图16为本申请实施例中物理机另一个结构示意图,如图所示,物理机90包括处理器91、收发器92、存储器94以及总线90,该收发器92可以用于两个报文传输装置报文传输装置之间的通信,即收发器92具体用于收发信息或通话过程中信号的接收和发送,特别地,将接收后的信息给处理器91处理;另外,将设计上行的数据发送给对端设备。通常,收发器92包括但不限于天线、至少一个放大器、收发信机、耦合器、LNA、双工器等。此外,还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于GSM、GPRS、CDMA、WCDMA、LTE、电子邮件、SMS等。
此外,虚拟端和宿主机之间可以通过通信接口进行通信,图中并未示意出,一些情况下,收发器92也可用于同一宿主机上的两个虚拟端之间的通信。
处理器91用于收发器92接收来自第一虚拟端的第一报文,其中,第一报文中携带第二虚拟端的网络信息,第二虚拟端运行于第二通信设备,第二通信设备还包括第二宿主机,处理器91用于根据第二虚拟网络信息以及第一宿主机中的网络信息映射关系确定第二宿主机的网络信息,网络信息映射关系包括第二虚拟端的网络信息和第二宿主机的网络信息之间的映射关系,控制收发器92向第二通信设备发送第二报文,第二报文中携带第二宿主机的网络信息。
可选地,该处理器91用于控制收发器92接收来自第一通信设备发送的第二报文,其中,第二报文中携带第一宿主机的网络信息以及第二宿主机的网络信息,第一宿主机运行于第一通信设备,第一通信设备还包括第一虚拟端;根据第一宿主机的网络信息以及第二宿主机的网络信息以及第一宿主机中的网络信息映射关系确定第二虚拟端的网络信息,第二宿主机中的网络信息映射关系包括第一宿主机的网络信息、第二宿主机的网络信息和第二虚拟端的网络信息之间的映射关系;控制控制收发器92向第二虚拟端发送第五报文,其中,第五报文中携带第二虚拟端的网络信息。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (32)

1.一种报文传输的方法,其特征在于,所述方法用于包含有第一虚拟端以及第一宿主机的第一通信设备,所述虚拟端为虚拟机或容器,所述方法包括:
所述第一宿主机接收来自所述第一虚拟端的第一报文,其中,所述第一报文中携带第二虚拟端的网络信息,所述第二虚拟端运行于第二通信设备,所述第二通信设备还包括第二宿主机;
所述第一宿主机根据所述第一报文以及所述第一宿主机中的网络信息映射关系得到第二报文,所述第二报文中携带所述第二宿主机的网络信息,所述网络信息映射关系包括所述第二虚拟端的网络信息和第二宿主机的网络信息之间的映射关系;
所述第一宿主机向所述第二通信设备发送所述第二报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一宿主机接收来自所述第二通信设备的第三报文,其中,所述第三报文中携带所述第一宿主机的网络信息以及所述第二宿主机的网络信息;
所述第一宿主机根据所述第三报文以及以及所述第一宿主机中的网络信息映射关系得到第四报文,其中,所述第四报文中携带所述第一虚拟端的网络信息,所述网络信息映射关系还包括所述第一宿主机的网络信息、所述第二宿主机的网络信息和所述第一虚拟端的网络信息之间的映射关系;
所述第一宿主机向所述第一虚拟端发送所述第四报文。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一宿主机向所述第二通信设备发送隧道建立请求;
所述第一宿主机接收所述第二通信设备发送的隧道建立响应;
所述第一宿主机根据所述隧道建立响应建立第一隧道,其中,所述第一隧道用于所述第一宿主机与所述第二宿主机之间的通信;
所述第一宿主机向所述第二通信设备发送第二报文,包括:
所述第一宿主机通过所述第一隧道向所述第二通信设备发送所述第二报文。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述网络信息包括网际互联协议IP地址以及端口号。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述网络信息映射关系中包括所述第一宿主机的IP地址、所述第一宿主机的端口号、所述第一虚拟端的IP地址、所述第二虚拟端的虚拟端口号、所述第二宿主机的IP地址、所述第二宿主机的端口号、所述第二虚拟端的IP地址、所述第二虚拟端的端口号以及通信协议类型。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一宿主机向所述第二通信设备发送第二报文之前,所述方法还包括:
在传输交互数据满足预设隧道切换条件的情况下,所述第一宿主机将第二隧道切换为所述第一隧道,其中,所述传输交互数据用于表示所述第一宿主机与所述第二宿主机的数据传输情况;
若所述传输交互数据不满足所述预设隧道切换条件,则所述第一宿主机继续采用所述第二隧道向所述第二通信设备传输所述第二报文。
7.根据权利要求6所述的方法,其特征在于,所述在传输交互数据满足预设隧道切换条件的情况下,所述第一宿主机确定将第二隧道切换为第一隧道,包括:
若第二报文的传输时长大于或者等于第一预设门限,则所述第一宿主机确定所述传输交互数据满足所述预设隧道切换条件,并将所述第二隧道切换为所述第一隧道,其中,所述第二报文的传输时长为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的时间长度;
和/或,
若所述第二报文的数量大于或者等于第二预设门限,则所述第一宿主机确定所述传输交互数据满足所述预设隧道切换条件,并将所述第二隧道切换为所述第一隧道,其中,所述第二报文的数量为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的个数;
和/或,
若所述第二报文的传输速率大于或者等于第三预设门限,则所述第一宿主机确定所述传输交互数据满足所述预设隧道切换条件,并将所述第二隧道切换为所述第一隧道,其中,所述第二报文的传输速率为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的速率;
和/或,
若所述第二报文所携带的用户优先级大于或者等于第四预设门限,则所述第一宿主机确定所述传输交互数据满足所述预设隧道切换条件,并将所述第二隧道切换为所述第一隧道,其中,所述用户优先级预先设定的第二报文优先级别,所述第二报文为所述第一宿主机通过所述第二隧道向所述第二宿主机传输的第二报文。
8.一种报文传输的方法,其特征在于,所述方法用于包含有第二虚拟端以及第二宿主机的第二通信设备,所述虚拟端为虚拟机或容器,所述方法包括:
所述第二宿主机接收来自第一通信设备发送的第二报文,其中,所述第二报文中携带第一宿主机的网络信息以及所述第二宿主机的网络信息,所述第一宿主机运行于第一通信设备,所述第一通信设备还包括第一虚拟端;
所述第二宿主机根据所述第二报文以及所述第一宿主机中的网络信息映射关系得到第五报文,其中,所述第五报文中携带所述第二虚拟端的网络信息,所述第二宿主机中的网络信息映射关系包括所述第一宿主机的网络信息、所述第二宿主机的网络信息和所述第二虚拟端的网络信息之间的映射关系;
所述第二宿主机向所述第二虚拟端发送所述第五报文。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述第二宿主机接收来自所述第二虚拟端的第六报文,其中,所述第六报文中携带所述第一虚拟端的网络信息;
所述第二宿主机根据所述第六报文以及所述第二宿主机中的网络信息映射关系得到第七报文,其中,所述第七报文中携带所述第一宿主机的网络信息,所述第二宿主机中的网络信息映射关系还包括所述第一虚拟端的网络信息以及所述第一宿主机的网络信息之间的映射关系;
所述第二宿主机向所述第一通信设备发送所述第七报文。
10.根据权利要求1所述的方法,其特征在于,所述第二宿主机接收来自第一通信设备发送的第二报文,包括:
所述第二宿主机通过第一隧道接收所述第一通信设备发送的所述第二报文,其中,,其中,所述第一隧道用于所述第一宿主机与所述第二宿主机之间的通信。
11.根据权利要求8至10中任一项所述的方法,其特征在于,所述网络信息包括网际互联协议IP地址以及端口号。
12.根据权利要求8至11中任一项所述的方法,其特征在于,所述网络信息映射关系中包括所述第一宿主机的IP地址、所述第一宿主机的端口号、所述第一虚拟端的IP地址、所述第二虚拟端的虚拟端口号、所述第二宿主机的IP地址、所述第二宿主机的端口号、所述第二虚拟端的IP地址、所述第二虚拟端的端口号以及通信协议类型。
13.根据权利要求8至12中任一项所述的方法,其特征在于,所述第二宿主机接收所述第一通信设备发送的第二报文之前,所述方法还包括:
在传输交互数据满足预设隧道切换条件的情况下,所述第二宿主机通过第一隧道接收所述第一通信设备发送的所述第二报文。
14.根据权利要求13所述的方法,其特征在于,所述在传输交互数据满足预设隧道切换条件的情况下,所述第二宿主机通过第一隧道接收所述第一通信设备发送的所述第二报文,包括:
若第二报文的传输时长大于或者等于第一预设门限,则所述第二宿主机通过所述第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述第二报文的传输时长为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的时间长度;
和/或,
若所述第二报文的数量大于或者等于第二预设门限,则所述第二宿主机通过所述第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述第二报文的数量为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的个数;
和/或,
若所述第二报文的传输速率大于或者等于第三预设门限,则所述第二宿主机通过所述第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述第二报文的传输速率为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的速率;
和/或,
若所述第二报文所携带的用户优先级大于或者等于第四预设门限,则所述第二宿主机通过所述第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述用户优先级预先设定的第二报文优先级别,所述第二报文为所述第一宿主机通过所述第二隧道向所述第二宿主机传输的第二报文。
15.一种报文传输装置,其特征在于,所述报文传输装置包括第一宿主机和第一虚拟端,所述第一虚拟端为虚拟机或容器,
所述第一虚拟端用于向所述第一虚拟机发送第一报文,所述第一报文中携带第二虚拟端的网络信息,所述第二虚拟端运行于第二通信设备,所述第二通信设备还包括第二宿主机;
所述第一宿主机用于根据所述第一报文以及所述第一宿主机中的网络信息映射关系得到第二报文,所述第二报文中携带所述第二宿主机的网络信息,所述网络信息映射关系包括所述第二虚拟端的网络信息和第二宿主机的网络信息之间的映射关系;
所述第一宿主机用于向所述第二通信设备发送第二报文。
16.根据权利要求15所述的报文传输装置,其特征在于,
所述第一宿主机用于接收来自所述第二通信设备的第三报文,其中,所述第三报文中携带所述第一宿主机的网络信息以及所述第二宿主机的网络信息;
所述第一宿主机用于根据所述第三报文以及以及所述第一宿主机中的网络信息映射关系得到第四报文,其中,所述第四报文中携带所述第一虚拟端的网络信息,所述网络信息映射关系还包括所述第一宿主机的网络信息、所述第二宿主机的网络信息和所述第一虚拟端的网络信息之间的映射关系;
所述第一宿主机用于向所述第一虚拟端发送所述第四报文。
17.根据权利要求15所述的报文传输装置,其特征在于,所述第一宿主机还包括建立模块;
所述第一宿主机用于向所述第二通信设备发送隧道建立请求;
所述第一宿主机用于接收所述第二通信设备发送的隧道建立响应;
所述第一宿主机用于根据所述隧道建立响应建立第一隧道,其中,所述第一隧道用于所述第一宿主机与所述第二宿主机之间的通信;
所述第一宿主机用于通过所述第一隧道向所述第二通信设备发送所述第二报文。
18.根据权利要求15至17中任一项所述的报文传输装置,其特征在于,所述网络信息包括网际互联协议IP地址以及端口号。
19.根据权利要求15至18中任一项所述的报文传输装置,其特征在于,所述网络信息映射关系中包括所述第一宿主机的IP地址、所述第一宿主机的端口号、所述第一虚拟端的IP地址、所述第二虚拟端的虚拟端口号、所述第二宿主机的IP地址、所述第二宿主机的端口号、所述第二虚拟端的IP地址、所述第二虚拟端的端口号以及通信协议类型。
20.根据权利要求15至19中任一项所述的报文传输装置,其特征在于,
所述第一宿主机用于向所述第二通信设备发送第二报文之前,在传输交互数据满足预设隧道切换条件的情况下,将第二隧道切换为所述第一隧道,其中,所述传输交互数据用于表示所述第一宿主机与所述第二宿主机的数据传输情况;
所述第一宿主机用于向所述第二通信设备发送第二报文之前,若所述传输交互数据不满足所述预设隧道切换条件,则所述第一宿主机继续采用所述第二隧道向所述第二通信设备传输所述第二报文。
21.根据权利要求20中任一项所述的报文传输装置,其特征在于,
所述第一宿主机用于若第二报文的传输时长大于或者等于第一预设门限,则确定所述传输交互数据满足所述预设隧道切换条件,并将所述第二隧道切换为所述第一隧道,其中,所述第二报文的传输时长为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的时间长度;
和/或,
若所述第二报文的数量大于或者等于第二预设门限,则确定所述传输交互数据满足所述预设隧道切换条件,并将所述第二隧道切换为所述第一隧道,其中,所述第二报文的数量为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的个数;
和/或,
若所述第二报文的传输速率大于或者等于第三预设门限,则确定所述传输交互数据满足所述预设隧道切换条件,并将所述第二隧道切换为所述第一隧道,其中,所述第二报文的传输速率为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的速率;
和/或,
若所述第二报文所携带的用户优先级大于或者等于第四预设门限,则确定所述传输交互数据满足所述预设隧道切换条件,并将所述第二隧道切换为所述第一隧道,其中,所述用户优先级预先设定的第二报文优先级别,所述第二报文为所述第一宿主机通过所述第二隧道向所述第二宿主机传输的第二报文。
22.一种报文传输装置,其特征在于,所述报文发送装置包括第二宿主机和第二虚拟端,所述第二虚拟端为虚拟机或容器,
所述第二宿主机用于接收来自第一通信设备发送的第二报文,其中,所述第二报文中携带第一宿主机的网络信息以及所述第二宿主机的网络信息,所述第一宿主机运行于第一通信设备,所述第一通信设备还包括第一虚拟端;
所述第二宿主机用于根据所述第二报文以及所述第一宿主机中的网络信息映射关系得到第五报文,其中,所述第五报文中携带所述第二虚拟端的网络信息,所述第二宿主机中的网络信息映射关系包括所述第一宿主机的网络信息、所述第二宿主机的网络信息和所述第二虚拟端的网络信息之间的映射关系;
所述第二虚拟端用于接收来自所述第二宿主机的所述第五报文。
23.根据权利要求22所述的报文传输装置,其特征在于,
所述第二宿主机用于接收来自所述第二虚拟端的第六报文,其中,所述第六报文中携带所述第一虚拟端的网络信息;
所述第二宿主机用于根据所述第六报文以及所述第二宿主机中的网络信息映射关系确定第七报文,其中,所述第七报文中携带所述第一宿主机的网络信息,所述第二宿主机中的网络信息映射关系还包括所述第一虚拟端的网络信息以及所述第一宿主机的网络信息之间的映射关系;
所述第二宿主机用于向所述第一通信设备发送所述第七报文。
24.根据权利要求22所述的报文传输装置,其特征在于,
所述第二宿主机用于通过第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述第一隧道用于所述第一宿主机与所述第二宿主机之间的通信。
25.根据权利要求22至24中任一项所述的报文传输装置,其特征在于,所述网络信息包括网际互联协议IP地址以及端口号。
26.根据权利要求22至25中任一项所述的报文传输装置,其特征在于,所述网络信息映射关系中包括所述第一宿主机的IP地址、所述第一宿主机的端口号、所述第一虚拟端的IP地址、所述第二虚拟端的虚拟端口号、所述第二宿主机的IP地址、所述第二宿主机的端口号、所述第二虚拟端的IP地址、所述第二虚拟端的端口号以及通信协议类型。
27.根据权利要求22至26中任一项所述的报文传输装置,其特征在于,
所述第二宿主机用于接收所述第一通信设备发送的第二报文之前,在传输交互数据满足预设隧道切换条件的情况下,通过第一隧道接收所述第一通信设备发送的所述第二报文。
28.根据权利要求27所述的报文传输装置,其特征在于,
所述第二宿主机用于若第二报文的传输时长大于或者等于第一预设门限,则通过所述第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述第二报文的传输时长为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的时间长度;
和/或,
若所述第二报文的数量大于或者等于第二预设门限,则通过所述第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述第二报文的数量为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的个数;
和/或,
若所述第二报文的传输速率大于或者等于第三预设门限,则通过所述第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述第二报文的传输速率为所述第一宿主机通过所述第二隧道向所述第二宿主机传输所述第二报文的速率;
和/或,
若所述第二报文所携带的用户优先级大于或者等于第四预设门限,则通过所述第一隧道接收所述第一通信设备发送的所述第二报文,其中,所述用户优先级预先设定的第二报文优先级别,所述第二报文为所述第一宿主机通过所述第二隧道向所述第二宿主机传输的第二报文。
29.一种物理机,其特征在于,所述物理机包括硬件层、运行在所述硬件层之上的第一宿主机和第一虚拟端,所述第一虚拟端为容器或虚拟机,所述硬件层包括存储器、收发器、处理器以及总线系统;所述收发器用于在所述处理器的控制下与其他物理机通信,
所述总线系统用于连接所述存储器、所述收发器以及所述处理器,以使所述存储器、所述收发器以及所述处理器进行通信;
所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1至7中任一项所述的方法。
30.一种物理机,其特征在于,所述物理机包括硬件层、运行在所述硬件层之上的第一宿主机和第一虚拟端,所述第一虚拟端为容器或虚拟机,所述硬件层包括存储器、收发器、处理器以及总线系统;所述收发器用于在所述处理器的控制下与其他物理机通信,
所述总线系统用于连接所述存储器、所述收发器以及所述处理器,以使所述存储器、所述收发器以及所述处理器进行通信;
所述处理器用于调用所述存储器中的程序指令,以执行如权利要求8至14中任一项所述的方法。
31.一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至7中任一项所述的方法,或执行如权利要求8至14中任一项所述的方法。
32.一种包含指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行如权利要求1至7任一项所述的方法,或执行如权利要求8至14中任一项所述的方法。
CN201711243604.9A 2017-11-30 2017-11-30 一种报文传输的方法及相关装置 Active CN109862127B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711243604.9A CN109862127B (zh) 2017-11-30 2017-11-30 一种报文传输的方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711243604.9A CN109862127B (zh) 2017-11-30 2017-11-30 一种报文传输的方法及相关装置

Publications (2)

Publication Number Publication Date
CN109862127A true CN109862127A (zh) 2019-06-07
CN109862127B CN109862127B (zh) 2021-05-11

Family

ID=66888714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711243604.9A Active CN109862127B (zh) 2017-11-30 2017-11-30 一种报文传输的方法及相关装置

Country Status (1)

Country Link
CN (1) CN109862127B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112383594A (zh) * 2020-10-30 2021-02-19 新华三技术有限公司 基于超级账本Fabric网络的跨主机通信方法及装置
CN112787957A (zh) * 2021-01-15 2021-05-11 新华三人工智能科技有限公司 一种报文处理方法及装置
CN113300871A (zh) * 2020-09-14 2021-08-24 阿里巴巴集团控股有限公司 一种仿真网络的组网方法和装置
CN113453076A (zh) * 2020-03-24 2021-09-28 中国移动通信集团河北有限公司 用户视频业务质量评估方法、装置、计算设备和存储介质
CN113873041A (zh) * 2021-09-30 2021-12-31 迈普通信技术股份有限公司 报文传输方法、装置、网络设备及计算机可读存储介质
CN116188180A (zh) * 2023-04-25 2023-05-30 浩然加中医疗科技(山东)有限公司 一种基于gre网络的医保报销结算方法、系统及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013173973A1 (zh) * 2012-05-22 2013-11-28 华为技术有限公司 网络通信方法和装置
CN103814554A (zh) * 2013-12-11 2014-05-21 华为技术有限公司 一种虚拟可扩展局域网的通信方法、装置和系统
US9197489B1 (en) * 2012-03-30 2015-11-24 Amazon Technologies, Inc. Live migration of virtual machines in a hybrid network environment
CN105591820A (zh) * 2015-12-31 2016-05-18 北京轻元科技有限公司 一种高可扩展的容器网络管理系统和方法
CN107395781A (zh) * 2017-06-29 2017-11-24 北京小度信息科技有限公司 网络通信方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9197489B1 (en) * 2012-03-30 2015-11-24 Amazon Technologies, Inc. Live migration of virtual machines in a hybrid network environment
WO2013173973A1 (zh) * 2012-05-22 2013-11-28 华为技术有限公司 网络通信方法和装置
CN103814554A (zh) * 2013-12-11 2014-05-21 华为技术有限公司 一种虚拟可扩展局域网的通信方法、装置和系统
CN105591820A (zh) * 2015-12-31 2016-05-18 北京轻元科技有限公司 一种高可扩展的容器网络管理系统和方法
CN107395781A (zh) * 2017-06-29 2017-11-24 北京小度信息科技有限公司 网络通信方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113453076A (zh) * 2020-03-24 2021-09-28 中国移动通信集团河北有限公司 用户视频业务质量评估方法、装置、计算设备和存储介质
CN113300871A (zh) * 2020-09-14 2021-08-24 阿里巴巴集团控股有限公司 一种仿真网络的组网方法和装置
CN112383594A (zh) * 2020-10-30 2021-02-19 新华三技术有限公司 基于超级账本Fabric网络的跨主机通信方法及装置
CN112383594B (zh) * 2020-10-30 2022-04-22 新华三技术有限公司 基于超级账本Fabric网络的跨主机通信方法及装置
CN112787957A (zh) * 2021-01-15 2021-05-11 新华三人工智能科技有限公司 一种报文处理方法及装置
CN112787957B (zh) * 2021-01-15 2022-10-11 新华三人工智能科技有限公司 一种报文处理方法及装置
CN113873041A (zh) * 2021-09-30 2021-12-31 迈普通信技术股份有限公司 报文传输方法、装置、网络设备及计算机可读存储介质
CN113873041B (zh) * 2021-09-30 2024-03-01 迈普通信技术股份有限公司 报文传输方法、装置、网络设备及计算机可读存储介质
CN116188180A (zh) * 2023-04-25 2023-05-30 浩然加中医疗科技(山东)有限公司 一种基于gre网络的医保报销结算方法、系统及设备

Also Published As

Publication number Publication date
CN109862127B (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
CN109862127A (zh) 一种报文传输的方法及相关装置
US11689455B2 (en) Loop prevention in virtual layer 2 networks
US11765057B2 (en) Systems and methods for performing end-to-end link-layer and IP-layer health checks between a host machine and a network virtualization device
CN113141386B (zh) 私有网络中Kubernetes集群的接入方法、装置、设备和介质
US20220210070A1 (en) Layer-2 networking storm control in a virtualized cloud environment
NL2033587B1 (en) Multi-access management service queueing and reordering techniques
EP4203428A1 (en) Multi-access management service enhancements for quality of service and time sensitive applications
TWI393401B (zh) 用以管理多播路由之系統、裝置、方法及具有電腦程式收錄其中之記憶體
WO2019062836A1 (zh) 网络切片管理方法及其装置
EP2843906B1 (en) Method, apparatus, and system for data transmission
US10044645B2 (en) Transmitting multi-destination packets in overlay networks
US20220353339A1 (en) Efficient flow management utilizing control packets
Nobach et al. Statelet-based efficient and seamless NFV state transfer
US20220263754A1 (en) Packet flow in a cloud infrastructure based on cached and non-cached configuration information
US20230370371A1 (en) Layer-2 networking storm control in a virtualized cloud environment
CN108390937A (zh) 远程监控方法、装置及存储介质
CN117561705A (zh) 用于图形处理单元的路由策略
CN110417573A (zh) 一种数据传送的方法及系统
US11689447B2 (en) Enhanced dynamic encryption packet segmentation
Benomar et al. Enabling container-based fog computing with openstack
US20240106760A1 (en) Network device level optimizations for latency sensitive rdma traffic
CN116243988A (zh) 一种智能网卡控制方法、装置、电子设备及存储介质
CN116724546A (zh) 用于融合以太网上的RDMA(RoCE)云规模多租赁
CN115296952B (zh) 一种设备调度方法、装置、设备及存储介质
TWI854467B (zh) 用於在一運算環境中提供增強之端點多播模擬的方法、系統及電腦程式產品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant