数据传输方法、装置、设备及存储介质转让专利
申请号 : CN201911409353.6
文献号 : CN111193653B
文献日 : 2021-08-06
发明人 : 吴皓睿 , 裴超 , 王亮 , 王健 , 冯瑞青
申请人 : 腾讯科技(深圳)有限公司
摘要 :
权利要求 :
1.一种数据传输方法,其特征在于,应用于支持远程直接内存访问协议RoCE的发送方网卡,所述方法包括:
获取原始数据包、第一地址和租户标识,其中所述第一地址包括接收所述原始数据包的接收方网卡的地址,所述租户标识用于指示接收方服务器上对应的租户;其中,发送方服务器与所述接收方服务器之间建立有远程直接内存访问RDMA连接,所述原始数据包为RDMA数据包;
根据所述第一地址和所述租户标识,对所述原始数据包进行隧道封装,得到隧道数据包;
将所述隧道数据包发送给所述第一地址对应的接收方网卡,所述接收方网卡支持所述RoCE。
2.根据权利要求1所述的方法,其特征在于,所述原始数据包携带第二地址,所述第二地址包括接收方虚拟机的地址,所述接收方虚拟机的地址包括第二媒体访问控制MAC地址和第二网际协议IP地址,所述第一地址包括所述接收方网卡的第一MAC地址和第一IP地址,所述根据所述第一地址和所述租户标识,对所述原始数据包进行隧道封装,得到隧道数据包,包括:
将所述原始数据包的所述第二MAC地址删掉,添加所述第一MAC地址、所述第一IP地址和所述租户标识,得到所述隧道数据包。
3.根据权利要求2所述的方法,其特征在于,所述原始数据包包括包头和包体,所述原始数据包的包头包括第二MAC地址字段和第二IP地址字段,所述第二MAC地址字段包括所述第二MAC地址,所述第二IP地址字段包括所述第二IP地址、显式拥塞通知ECN值和差分服务代码点DSCP值,所述原始数据包的包体包括传输数据;
所述隧道数据包包括包头和包体,所述隧道数据包的包头包括第一MAC地址字段、第一IP地址字段和隧道协议字段,所述第一MAC地址字段包括所述第一MAC地址,所述第一IP地址字段包括所述第一IP地址,所述隧道协议字段包括所述租户标识,所述隧道数据包的包体包括所述第二IP地址字段和所述传输数据;所述根据所述第一地址和所述租户标识,对所述原始数据包进行隧道封装,得到隧道数据包之后,所述方法还包括:将所述第二IP数据字段中的ECN值和所述第二IP数据字段中的DSCP值写入所述第一IP地址字段中。
4.根据权利要求1所述的方法,其特征在于,所述获取原始数据包、第一地址和租户标识,包括:
获取发送方服务器下发的发送方流表,所述发送方流表包括所述第一地址和所述租户标识;
所述发送方服务器用于接收到发送方虚拟机获取的原始数据包时,建立与所述接收方服务器之间的RDMA连接,在建立所述RDMA连接的过程中生成所述发送方流表,将所述发送方流表下发给所述发送方网卡,并将所述原始数据包下发给所述发送方网卡。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一地址和所述租户标识,对所述原始数据包进行隧道封装,得到隧道数据包,包括:确定所述原始数据包与所述发送方流表匹配成功时,根据所述第一地址和所述租户标识,对所述原始数据包进行隧道封装,得到所述隧道数据包。
6.根据权利要求5所述的方法,其特征在于,所述发送方流表还包括匹配项,所述匹配项包括第三IP地址、第二IP地址、网卡物理端口号、三层协议号和应用层端口号,所述第三IP地址为发送方虚拟机的IP地址,所述第二IP地址为接收方虚拟机的IP地址,所述确定所述原始数据包与所述发送方流表匹配成功时,根据所述第一地址和所述租户标识,对所述原始数据包进行隧道封装,得到所述隧道数据包,包括:当所述原始数据包对应的第三IP地址、第二IP地址、网卡物理端口号、三层协议号和应用层端口号,与所述匹配项中的第三IP地址、第二IP地址、网卡物理端口号、三层协议号和应用层端口号相同时,确定所述原始数据包与所述发送方流表匹配成功。
7.一种数据传输方法,其特征在于,应用于支持远程直接内存访问协议RoCE的接收方网卡,所述方法包括:
接收发送方网卡发送的隧道数据包,所述隧道数据包由支持所述RoCE的发送方网卡根据第一地址和租户标识对原始数据包进行隧道封装后得到,所述第一地址包括所述接收方网卡的地址,所述租户标识用于指示接收方服务器上对应的租户;其中,发送方服务器与所述接收方服务器之间建立有远程直接内存访问RDMA连接,所述原始数据包为RDMA数据包;
对所述隧道数据包进行解封装,得到所述原始数据包和所述租户标识;
将所述原始数据包和所述租户标识传输至所述接收方服务器。
8.根据权利要求7所述的方法,其特征在于,所述隧道数据包包括所述第一地址和所述租户标识,所述接收方网卡的地址包括第一媒体访问控制MAC地址和第一网际协议IP地址,所述对所述隧道数据包进行解封装,得到所述原始数据包和所述租户标识,包括:获取所述隧道数据包中的租户标识;
将所述隧道数据包中的第一MAC地址和第一IP地址删掉,得到所述原始数据包。
9.根据权利要求8所述的方法,其特征在于,所述隧道数据包包括包头和包体,所述隧道数据包的包头包括第一MAC地址字段、第一IP地址字段和隧道协议字段,所述第一MAC地址字段包括所述第一MAC地址,所述第一IP地址字段包括所述第一IP地址、显式拥塞通知ECN值和差分服务代码点DSCP值,所述隧道协议字段包括所述租户标识,所述隧道数据包的包体包括第二IP地址字段和传输数据,所述第二IP地址字段包括第二IP地址,所述第二IP地址为接收方虚拟机的IP地址;
所述原始数据包包括包头和包体,所述原始数据包的包头包括所述第二IP地址字段,所述原始数据包的包体包括所述传输数据;所述对所述隧道数据包进行解封装,得到所述原始数据包和所述租户标识之后,所述方法还包括:将所述第一IP地址字段中的ECN值和所述第一IP地址字段中的DSCP值写入所述第二IP地址字段中;
在所述原始数据包的包头中添加第二MAC地址字段,所述第二MAC地址字段包括第二MAC地址,所述第二MAC地址为所述接收方虚拟机的MAC地址。
10.根据权利要求7所述的方法,其特征在于,所述对所述隧道数据包进行解封装,得到所述原始数据包和所述租户标识,包括:获取所述接收方服务器下发的接收方流表,所述接收方服务器用于建立与发送方服务器之间的RDMA连接,在建立所述RDMA连接的过程中生成所述接收方流表,将所述接收方流表下发给所述接收方网卡;
确定所述隧道数据包与所述接收方流表匹配成功时,对所述原始数据包进行解封装,得到所述原始数据包和所述租户标识。
11.根据权利要求10所述的方法,其特征在于,所述接收方流表包括匹配项,所述匹配项包括第四IP地址、第一IP地址、租户标识、三层协议号和应用层端口号,所述第四IP地址为发送方网卡的IP地址,所述第一IP地址为接收方网卡的IP地址,所述隧道数据包中包括第四IP地址、第一IP地址、租户标识、三层协议号和应用层端口号,所述确定所述隧道数据包与所述接收方流表匹配成功时,对所述原始数据包进行解封装,得到所述原始数据包和所述租户标识,包括:
当所述隧道数据包中的第四IP地址、第一IP地址、租户标识、三层协议号和应用层端口号,与所述匹配项中的第四IP地址、第一IP地址、租户标识、三层协议号和应用层端口号相同时,确定所述隧道数据包与所述接收方流表匹配成功。
12.一种数据传输装置,其特征在于,应用于支持远程直接内存访问协议RoCE的发送方网卡,所述装置包括:
获取模块,用于获取原始数据包、第一地址和租户标识,其中所述第一地址包括接收所述原始数据包的接收方网卡的地址,所述租户标识用于指示所述接收方服务器上对应的租户;其中,发送方服务器与所述接收方服务器之间建立有远程直接内存访问RDMA连接,所述原始数据包为RDMA数据包;
封装模块,用于根据所述第一地址和所述租户标识,对所述原始数据包进行隧道封装,得到隧道数据包;
发送模块,用于将所述隧道数据包发送给所述第一地址对应的接收方网卡,所述接收方网卡支持所述RoCE。
13.一种数据传输装置,其特征在于,应用于支持远程直接内存访问协议RoCE的接收方网卡,所述装置包括:
接收模块,用于接收发送方网卡发送的隧道数据包,所述隧道数据包由支持所述RoCE的发送方网卡根据第一地址和租户标识对原始数据包进行隧道封装后得到,所述第一地址包括接收所述原始数据包的接收方网卡的地址,所述租户标识用于指示所述接收方服务器上对应的租户;其中,发送方服务器与所述接收方服务器之间建立有远程直接内存访问RDMA连接,所述原始数据包为RDMA数据包;
解封装模块,用于对所述隧道数据包进行解封装,得到所述原始数据包和所述租户标识;
传输模块,用于将所述原始数据包和所述租户标识传输至所述接收方服务器。
14.一种网卡,其特征在于,所述网卡用于实现如权利要求1至6任一所述的数据传输方法,或者实现如权利要求7至11任一所述的数据传输方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如权利要求1至6任一所述的数据传输方法,或者实现如权利要求7至11任一所述的数据传输方法。
说明书 :
数据传输方法、装置、设备及存储介质
技术领域
背景技术
统的存储区,而不对远程系统的操作系统造成任何影响,无需远程系统的中央处理器参与
数据传输过程,减少了资源消耗,进而提升了操作系统的性能,具有高带宽、低时延及低处
理器占用率的特点。
租户隔离,则租户的数据就会被其他租户嗅探到,无法保证数据安全。因此,亟需提供一种
方法,能够在公有云中实现RDMA技术时,将公有云中每个租户的数据隔离出来,以保证数据
安全。
发明内容
据包为传输控制协议/互联网协议TCP/IP数据包;
址,所述租户标识用于指示接收方服务器上对应的租户;
的租户;
述第一地址包括所述接收方网卡的第一MAC地址和第一IP地址,所述封装模块,包括:
字段包括所述第二IP地址、显式拥塞通知ECN值和差分服务代码点DSCP值,所述原始数据包
的包体包括传输数据;
IP地址字段包括所述第一IP地址,所述隧道协议字段包括所述租户标识,所述隧道数据包
的包体包括所述第二IP地址字段和所述传输数据;所述装置还包括:
送方流表,将所述发送方流表下发给所述发送方网卡,并将所述原始数据包下发给所述发
送方网卡。
址,所述第二IP地址为接收方虚拟机的IP地址,所述封装单元,还用于当所述原始数据包对
应的第三IP地址、第二IP地址、网卡物理端口号、三层协议号和应用层端口号,与所述匹配
项中的第三IP地址、第二IP地址、网卡物理端口号、三层协议号和应用层端口号相同时,确
定所述原始数据包与所述发送方流表匹配成功。
据包为传输控制协议/互联网协议TCP/IP数据包;
述原始数据包的接收方网卡的地址,所述租户标识用于指示所述接收方服务器上对应的租
户;
述第一IP地址字段包括所述第一IP地址、显式拥塞通知ECN值和差分服务代码点DSCP值,所
述隧道协议字段包括所述租户标识,所述隧道数据包的包体包括第二IP地址字段和传输数
据,所述第二IP地址字段包括第二IP地址,所述第二IP地址为接收方虚拟机的IP地址;
程中生成所述接收方流表,将所述接收方流表下发给所述接收方网卡;
IP地址为接收方网卡的IP地址,所述隧道数据包中包括第四IP地址、第一IP地址、租户标
识、三层协议号和应用层端口号,所述解封装单元,还用于当所述隧道数据包中的第四IP地
址、第一IP地址、租户标识、三层协议号和应用层端口号,与所述匹配项中的第四IP地址、第
一IP地址、租户标识、三层协议号和应用层端口号相同时,确定所述隧道数据包与所述接收
方流表匹配成功。
如所述数据传输方法中所执行的操作。
方法中所执行的操作。
道数据包发送给第一地址对应的接收方网卡;接收方网卡接收到隧道数据包时,对隧道数
据包进行解封装,得到原始数据包和租户标识;将原始数据包和租户标识传输至接收方服
务器;接收方服务器用于将原始数据包分发给租户标识对应的租户。因此,通过进行隧道封
装,根据租户标识对租户进行区分,可以将公有云中每个租户的数据隔离出来,保证了数据
的安全。
附图说明
例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获
得其他的附图。
具体实施方式
Encapsulation,通用路由封装协议)或者VxLAN(Virtual Extensible Local Area
Network,虚拟扩展局域网)等实现多租户隔离的云网络,可以为云服务器构建隔离的、用户
自主配置和管理的虚拟网络环境,提升用户云中资源的安全性,简化用户的网络部署。
远程系统的操作系统造成任何影响,无需远程系统的中央处理器参与数据传输过程,减少
了资源消耗,进而提升了操作系统的性能,具有高带宽、低时延及低处理器占用率的特点。
隧道的两端来看,封装就是用来创建、维持和撤销一个隧道,来实现信息的隐蔽和抽象。
Overlay网络。在公有云网络中,Underlay网络主要是指GRE、VxLAN等隧道协议的外层网络,
Overlay网络是指GRE、Vxlan等隧道协议的内层网络。
区分。举例来说,在不脱离本申请的范围的情况下,可以将第一地址称为第二地址,且类似
地,可将第二地址称为第一地址。
器102配置有接收方网卡104。发送方服务器101与接收方服务器102建立RDMA连接,并通过
发送方网卡103和接收方网卡104进行数据传输。
方网卡103,由发送方网卡103进行隧道封装。其中,封装所需的租户标识、IP地址等信息由
网管系统下发到发送方网卡103。发送方网卡103通过RDMA连接,将该封装后的数据包发送
给接收方网卡104,由接收方网卡104对该数据包进行解封装得到原始数据包和租户标识。
接收方服务器102通过接收方网卡104获取到原始数据包和租户标识时,将原始数据包分发
给该租户标识对应的租户。因此基于隧道协议实现了公有云上的多租户隔离,保证了数据
包的安全性。
并将该原始数据包下发给发送方网卡。
拟机,当租户拥有多个虚拟机时,该多个虚拟机之间需要构成一个虚拟网络。
程中产生数据时,调用RDMA库,根据该数据生成原始数据包,该原始数据包为RDMA数据包,
并由发送方服务器通过发送方网卡将该原始数据包发送给接收方服务器的虚拟机中的
RDMA应用。
RDMA连接的过程中,获取源IP地址、目的IP地址、网卡物理端口号等交互参数,根据交互参
数生成发送方流表,下发给发送方服务器的发送方网卡。
定网络传输中的一条数据流。该流表项中至少包括:匹配项、优先级、计数器、操作项和超时
时间。匹配项可用于与数据包进行匹配,可以包括源MAC地址、目的MAC地址、源IP地址、目的
IP地址等;优先级可用于表示流表之间的优先级关系,按照优先级高低的顺序依次对流表
进行匹配;计数器可用于统计数据包的个数;指令可用于按照匹配项与数据包的匹配的结
果,对数据包进行转发或丢弃,超时时间可用于表示该流表的最长有效时间或最大空闲时
间,根据超时时间对流表进行删除。
所执行的操作。如图3所示,发送方流表31中可以包括匹配项311、优先级312、计数器313、操
作项314和超时时间315等,该发送方流表的匹配项中可以包括第三IP地址、第二IP地址、网
卡物理端口号、三层协议号和应用层端口号,其中第三IP地址为发送方虚拟机的IP地址,第
二IP地址为接收方虚拟机的IP地址。该发送方流表的操作项中可以包括第一地址和租户标
识,其中第一地址包括接收原始数据包的接收方网卡的地址,租户标识用于指示接收方服
务器上对应的租户,其中,该租户标识为32位的数字。
能。RoCE协议是一种允许通过以太网使用远程直接内存访问技术的网络协议,例如,该RoCE
协议可以为RoCE v1协议或者RoCE v2协议等。
为RDMA数据包,因此建立RDMA连接来进行数据传输。其中,发送方服务器和接收方服务器建
立RDMA连接,需要通过建立TCP/IP(Transmission Control Protocol/Internet
Protocol,传输控制协议/互联网协议)连接,来获得交互信息。发送方服务器和接收方服务
器获取建立TCP/IP连接过程中产生的TCP/IP数据包,根据TCP/IP数据包携带的交互信息,
生成发送方流表和接收方流表。
值用于表示该原始数据包为TCP/IP数据包。因此,通过给原始数据包分配不同的DSCP值,可
以区分该原始数据包是通过RDMA连接传输的RDMA数据包,还是传统的TCP/IP数据包,传输
网络可以根据第一DSCP值和第二DSCP值区分不同的数据包,实现隔离与流控,解决了RDMA
网络和传统TCP/IP网络的隔离问题。
连接请求,由发送方设备接收接收方设备的RDMA连接请求。
接的过程中,可同时下发发送方流表和接收方流表。
一IP地址和租户标识,得到隧道数据包。
和第二IP(Internet Protocol,网际协议)地址,第二MAC地址为接收方虚拟机的MAC地址,
第二IP地址为包括接收方虚拟机的IP地址。虚拟机网络可以根据该第二地址将原始数据包
发送给该第二地址对应的虚拟机。
方网卡的MAC地址,第一IP地址可以包括接收方网卡的IP地址和发送方网卡的IP地址。当发
送方服务器将原始数据包下发给发送方网卡,发送方网卡接收到该原始数据包时,进行流
表查询,当确定该原始数据包与发送方流表匹配成功时,从发送方流表中获取第一MAC地址
和第一IP地址,以及租户标识。
据包。
方式生成流表,将流表下发到网卡,网卡根据Per Flow的方式,按照源IP地址和目的IP地址
查询目的端口号和源端口号对应的流表。而本申请实施例中,根据Per Destination(一对
IP地址和目的端口号)对流表进行分类,其中流表中的字段包括源IP地址、目的IP地址和目
的端口号。服务器按照Per Destination的方式生成流表,将流表下发到网卡,网卡根据Per
Destination的方式,按照源IP地址和目的IP地址查询目的端口号对应的流表。因此,通过
本申请实施例提供的方法,仅根据目的端口号进行分类,不考虑源端口号,减少了分类的类
别,对流表的查询速度更快,时延更低,节省发送方网卡和接收方网卡的资源。
网卡接收到原始数据包时可获取该原始数据包对应的网卡物理端口号,则通过原始数据包
对应的第三IP地址、第二IP地址、三层协议号、应用层端口号和网卡物理端口号即可确定该
原始数据包的传输流向。发送方流表包括匹配项,匹配项中包括第三IP地址、第二IP地址、
三层协议号、应用层端口号和网卡物理端口号,则通过发送方流表中的第三IP地址、第二IP
地址、三层协议号、应用层端口号和网卡物理端口号即可确定该发送方流表对应的数据包
的传输流向。因此,当原始数据包对应的参数与发送方流表中的参数相同时,确定原始数据
包与发送方流表匹配成功。
址、第一IP地址和租户标识,得到隧道数据包。
(Explicit Congestion Notification,显式拥塞通知)值和DSCP值,原始数据包的包体包
括传输数据。
地址,隧道协议字段包括租户标识,隧道数据包的包体包括第二IP地址字段和传输数据。
值。因此,该原始数据包中可能包括带有拥塞标识的ECN值。其中DSCP值用于区分该原始数
据包为RDMA数据包,还是传统的TCP/IP数据包。
二MAC地址,第二IP地址字段412中包括第二IP地址、DSCP值、ECN值,TCP/UDP协议字段413中
包括TCP/UDP协议,传输数据字段414中包括待传输的传输数据。将原始数据包的第二MAC地
址字段411删掉,添加第一MAC地址字段、第一IP地址字段和GRE协议字段,并将第二IP地址
字段412中的DSCP值、ECN值拷贝到第一IP地址字段,得到隧道数据包。如图4所示,隧道数据
包中包括包头的第一MAC地址字段421、第一IP地址字段422、GRE协议字段423,以及包体的
第二IP地址字段424、TCP/UDP协议字段425和传输数据字段426。其中,第一MAC地址字段421
中包括第一MAC地址,第一IP地址字段422中包括第一IP地址、DSCP值、ECN值,GRE协议字段
423中包括GRE协议,且GRE协议中携带租户标识。
道协议,仅需保证得到的隧道数据包可以携带租户标识即可。
发送方向上命中流表501时,将该原始数据包的第二MAC地址删掉,添加第一MAC地址、第一
IP地址和租户标识,得到隧道数据包;在接收方向上命中流表501时,将隧道数据包的第一
MAC地址和第一IP地址删掉,添加第二MAC地址,得到原始数据包。
信息,如IP地址、MAC地址、网卡端口号、应用层端口号等,将待传输的数据映射到RoCE协议
的净荷中,将网络传输信息填充到RoCE协议对应的包头中,形成封装RoCE协议的原始数据
包。该原始数据包通过发送方服务器发送到发送方网卡,当与流表匹配成功时根据流表对
原始数据包进行隧道封装,得到隧道数据包。由网卡与交换机保证数据在网络中的可靠传
输。
端口号等传输信息,根据传输信息生成发送方流表。具体过程为:发送方服务器将原始数据
包发往发送方网卡,发送方网卡先进行流表匹配。如果匹配成功,则将原始数据包进行隧道
封装,将封装后的数据包发往网络;如果匹配失败,则发送方网卡将该原始数据包返回到发
送方服务器进行处理。由发送方服务器对原始数据包进行解析,得到原始数据包的IP地址、
三层协议号和应用层端口号等传输信息,根据传输信息生成发送方流表,将发送方流表下
发到发送方网卡,后续发送方网卡接收到该原始数据包时即可匹配该发送方流表,根据发
送方流表进行数据包转发。
送方流表下发给发送方网卡,因此将该原始数据包发送给发送方网卡,发送方网卡在首次
接收到该数据包时即可与发送方流表匹配成功。
表执行操作;当查询结果为未命中时,则需要转发至慢速通道,通过流表接口为发送方网卡
安装流表。
层网络。隧道数据包中的第一地址,是物理主机上网卡的地址,用于在真实的物理网络中进
行数据传输,称为Underlay网络,是隧道协议的外层网络。Overlay网络建立在Underlay网
络之上,与Underlay网络是一对相对的概念。因此通过隧道协议,可以实现内层网络与外层
网络的隔离。
确定一个接收方网卡,租户标识用于指示接收方网卡对应的接收方服务器上的租户。
卡接收到隧道数据包时,对隧道数据包进行解封装,得到原始数据包和租户标识,具体可参
见下述步骤205。
始数据包和租户标识传输至接收方服务器。
第一地址,第一地址包括接收方网卡的第一MAC地址和第一IP地址,对隧道数据包进行解封
装,包括:获取隧道数据包中的租户标识,将隧道数据包中的第一MAC地址和第一IP地址删
掉,得到原始数据包。接收方网卡得到原始数据包和租户标识,将原始数据包和租户标识传
输至该接收方网卡对应的接收方服务器中。
二IP地址字段和传输数据,第二IP地址字段包括第二IP地址。
括包头和包体,原始数据包的包头包括第二IP地址字段,原始数据包的包体包括传输数据。
在原始数据包的包头中添加第二MAC地址字段,第二MAC地址字段包括第二MAC地址,将ECN
值和DSCP值写入第二IP地址字段。
的第二IP地址字段中,实现了RDMA网络的流控问题,解决了RDMA网络和传统TCP/IP网络的
隔离问题。
数据包中的第四IP地址、第一IP地址、租户标识、三层协议号和应用层端口号可确定该隧道
数据包的传输流向。接收方流表包括匹配项,匹配项中可以包括第四IP地址、第一IP地址、
租户标识、三层协议号和应用层端口号,接收方流表中的第四IP地址、第一IP地址、租户标
识、三层协议号和应用层端口号可确定该接收方流表对应的数据包的传输流向。因此,当隧
道数据包的参数与接收方流表的参数相同时,确定隧道数据包与接收方流表匹配成功。
816。其中,第一MAC地址字段811中包括第一MAC地址,第一IP地址字段812中包括第一IP地
址、DSCP值、ECN值,GRE协议字段813中包括GRE协议,且GRE协议中携带租户标识,第二IP地
址字段814中包括第二IP地址,TCP/UDP协议字段815中包括TCP/UDP协议,传输数据字段816
中包括待传输的传输数据。将隧道数据包的第一MAC地址字段811、第一IP地址字段812、GRE
协议字段813删掉,添加第二MAC地址字段,并将第一MAC地址字段811中的DSCP值、ECN值拷
贝到第二IP地址字段,得到原始数据包。如图8所示,原始数据包中包括包头的第二MAC地址
字段821、第二IP地址字段822、TCP/UDP协议字段823,以及包体的传输数据字段824。其中,
第二MAC地址字段821中包括第二MAC地址,第二IP地址字段822中包括第二IP地址、DSCP值、
ECN值。
904为不带随道协议的TCP/IP包(非RoCE数据包)。发送方服务器对不同类型的数据包打上
不同的DSCP值,以标识不同类型的数据包,网络上的交换机通过DSCP值来区分数据包,实现
流控。
拟机网络,该第二地址用于指示多个虚拟机中的任一发送方虚拟机。当接收方服务器获取
到原始数据包和租户标识时,确定该租户标识对应的租户,将该原始数据包发送至该租户
的虚拟机网络中,由虚拟机网络将原始数据包方发送给第二地址对应的任一接收方虚拟机
中,租户可基于该任一接收方虚拟机,接收该原始数据包。
器可以管理RDMA网络和VPC网络的数据,虽然可以从物理上隔离RDMA数据包与TCP/IP数据
包,但是RDMA网络的多租户仍然未能隔离。而且,采用双网卡的方式,除网卡外,线材、交换
机等都要双份,布线复杂,配置成本和运营成本高。
给第一地址对应的接收方网卡;接收方网卡接收到隧道数据包时,对隧道数据包进行解封
装,得到原始数据包和租户标识,传输至接收方服务器;接收方服务器将原始数据包分发给
租户标识对应的租户。由于VPC网络中包括多个租户,每个租户可以通过RDMA网络进行数据
包的收发,在RDMA网络中,根据本申请实施例提供的方法,将VPC网络中一个或多个租户的
数据包进行隧道封装,通过租户标识对租户进行区分,将VPC网络中各租户的数据隔离出来
在RDMA网络中进行传输,则每个租户只能获取该租户自己的数据包,例如租户1可以获取租
户1的数据包,但无法获取租户2的数据包,实现了每个租户的数据不会被其他租户获取到,
保证了数据的安全。
多租户隔离的问题。满足VPC租户部署机器学习、大数据、科学计算等应用的需求,具有低延
时性。
包进行区分,解决了RDMA网络和传统TCP/IP网络的隔离问题。
Flow的方式生成流表,将流表下发到网卡,网卡根据Per Flow的方式,按照源IP地址和目的
IP地址查询目的端口号和源端口号对应的流表。而本申请实施例中,根据Per Destination
(一对IP地址和目的端口号)对流表进行分类,其中流表中的字段包括源IP地址、目的IP地
址和目的端口号。服务器按照Per Destination的方式生成流表,将流表下发到网卡,网卡
根据Per Destination的方式,按照源IP地址和目的IP地址查询目的端口号对应的流表。因
此,通过本申请实施例提供的方法,仅根据目的端口号进行分类,不考虑源端口号,减少了
分类的类别,降低了流表规格,对流表的查询速度更快,时延更低。
始数据包和租户标识传输至接收方服务器,接收方服务器用于将原始数据包分发给租户标
识对应的租户。
对应的接收方网卡;接收方网卡接收到隧道数据包时,对隧道数据包进行解封装,得到原始
数据包和租户标识;将原始数据包和租户标识传输至接收方服务器;接收方服务器用于将
原始数据包分发给租户标识对应的租户。因此,通过进行隧道封装,根据租户标识对租户进
行区分,可以将公有云中每个租户的数据隔离出来,保证了数据的安全。
包括接收方网卡的第一MAC地址和第一IP地址,封装模块1102,包括:
式拥塞通知ECN值和差分服务代码点DSCP值,原始数据包的包体包括传输数据;隧道数据包
包括包头和包体,隧道数据包的包头包括第一MAC地址字段、第一IP地址字段和隧道协议字
段,第一MAC地址字段包括第一MAC地址,第一IP地址字段包括第一IP地址,隧道协议字段包
括租户标识,隧道数据包的包体包括第二IP地址字段和传输数据。该装置还包括:
建立与接收方服务器之间的远程直接内存访问RDMA连接,在建立RDMA连接的过程中生成发
送方流表,将发送方流表下发给发送方网卡,并将原始数据包下发给发送方网卡。
为接收方虚拟机的IP地址,封装单元1132,还用于当原始数据包对应的第三IP地址、第二IP
地址、网卡物理端口号、三层协议号和应用层端口号,与匹配项中的第三IP地址、第二IP地
址、网卡物理端口号、三层协议号和应用层端口号相同时,确定原始数据包与发送方流表匹
配成功。
制协议/互联网协议TCP/IP数据包;连接建立模块1301,包括:
据包的接收方网卡的地址,租户标识用于指示接收方服务器上对应的租户;
括第一IP地址、显式拥塞通知ECN值和差分服务代码点DSCP值,隧道协议字段包括租户标
识,隧道数据包的包体包括第二IP地址字段和传输数据,第二IP地址字段包括第二IP地址,
第二IP地址为接收方虚拟机的IP地址;
接收方流表,将接收方流表下发给接收方网卡;
卡的IP地址,隧道数据包中包括第四IP地址、第一IP地址、租户标识、三层协议号和应用层
端口号,解封装单元1542,还用于当隧道数据包中的第四IP地址、第一IP地址、租户标识、三
层协议号和应用层端口号,与匹配项中的第四IP地址、第一IP地址、租户标识、三层协议号
和应用层端口号相同时,确定隧道数据包与接收方流表匹配成功。
块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者
部分功能。另外,上述实施例提供的数据传输装置与数据传输方法实施例属于同一构思,其
具体实现过程详见方法实施例,这里不再赘述。
Units,CPU)1901和一个或一个以上的存储器1902,以及一个或一个以上的网卡1903。其中,
所述存储器1902中存储有至少一条程序代码,所述至少一条程序代码由所述处理器1901加
载并执行以实现上述各个方法实施例提供的服务器执行的方法,所述网卡1903用于实现上
述各个方法实施例提供的网卡执行的方法。当然,该服务器还可以具有有线或无线网络接
口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现
设备功能的部件,在此不做赘述。
据传输方法中所具有的操作。
操作。
存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
保护范围之内。