一种数据转发方法、装置及系统与流程

文档序号:11138469阅读:418来源:国知局
本发明涉及通信
技术领域
:,尤其涉及一种数据转发方法、装置及系统。
背景技术
::OpenFlow技术是将控制功能从网络设备中分离出来,在网络设备上维护流表(flowtable)结构,数据分组按照流表进行转发,而流表的生成、维护、配置则由中央控制器来管理。OpenFlow的流表结构将网络处理层次扁平化,使得网络数据的处理满足细粒度的处理要求。在这种控制转发分离架构下,网络的逻辑控制功能和高层策略可以通过中央控制器灵活地进行动态管理和配置,可在不影响传统网络正常流量的情况下,在现有的网络中实现和部署新型网络架构。OpenFlow最初作为软件定义网络(SoftwareDefinedNetwork,SDN)的原型提出时,主要由OpenFlow交换机和控制器两部分组成。OpenFlow交换机根据流表来转发数据包,代表着数据转发平面;控制器通过全网络视图来实现管控功能,其控制逻辑表示控制平面。在现有的远程直接内存存取(RemoteDirectMemoryAccess,RDMA)技术完成数据拷贝,流程如下(该实例使用的系统构架如图1所示):主机端将远程直接内存存取数据的原始请求作为一个工作队列元素(workqueueelement,WQE)存放入发送队列(SendQueue,SQ)中;当进行数据存取时,从RDMA的SQ中取出WQE,根据WQE取出需要发送的数据,切分该数据并封装成有相同目的地址和源地址的数据包,逐个发 送至交换机。交换机根据数据包的目的地址和源地址逐个查表,如果查表不能确定数据包的路径下发表项,则将数据包上报到控制器。控制器为每一个上报的数据包查找路径下发表项。根据上述RDMA)技术数据拷贝过程可知,虽然控制平面能够将控制逻辑集中部署到整个网络,但是当RDMA应用的数据读写请求切分得到的海量数据涌向转发平面,再通过转发平面涌向控制平面时,转发平面和控制平面将进入一个无效的繁忙状态,从而会造成以下问题:整个过程时延比较大,在此过程中很多相同目的地址和源地址的数据包需要重复查表确定路径下发表项,所以造成了大量的无效工作,不仅大量消耗交换机和控制器的资源,还延迟有效数据包的处理。技术实现要素:本发明实施例提供一种数据转发方法、装置及系统,本发明所提供的方法、装置及系统解决现有RDMA技术的数据转发过程时延比较大的问题。第一方面,提供数据转发方法,该方法具体包括:当电子设备利用远程直接内存存取RDMA方式进行数据拷贝时,所述电子设备从发送队列SQ中取出待发送数据对应的工作队列元素WQE;其中,该WQE与所述待发送数据的原始请求对应;所述电子设备将所述WQE对应的第一目的地址和第一源地址与预设过滤表中每个表项的目的地址和源地址进行匹配;如果所述第一目的地址和第一源地址与所述预设过滤表中的目的地址和源地址均不相同,所述电子设备将所述WQE封装成一个待处理数据包发送到交换机;所述电子设备通过交换机将所述待处理数据包转发至控制器;并在接收到交换机发送的针对所述待处理数据包的确认信息后,将所述待发送数据发送到交换机。结合第一方面,在第一种可能的实现方式中,所述待处理数据包中包括数据唯一标识,该数据唯一标识用于唯一标示所述WQE;将所述待发送数据发送到交换机之前,还包括:根据所述数据唯一标识确定所述WQE;获取确定的所述WQE对应的所述待发送数据。结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,将所述WQE封装成一个待处理数据包发送到交换机,包括:将所述WQE存入待处理队列中;将所述待处理队列中的WQE封装成一个待处理数据包发送至交换机。结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,将所述待处理队列中的WQE封装成一个待处理数据包发送至交换机,包括:当确定所述待处理队列中的WQE数量大于预设阈值,则将所述待处理队列中的设定数量的WQE封装一个待处理数据包发送至交换机;或者根据预设周期检测所述待处理队列,并将检测到的该待处理队列中的WQE到封装成一个待处理数据包发送至交换机。结合第一方面,或者第一方面的第一至三种可能的实现方式中的任意一种,在第四种可能的实现方式中,将每个工作队列元素对应的第一目的地址和第一源地址与预设过滤表中的目的地址和源地址进行匹配之前,还包括:获取所述发送队列SQ中已获得转发路径的WQE对应的第二目的地址和第二源地址,并根据所述第二目的地址和第二源地址生成所述预设过滤表。第二方面,提供一种数据转发方法,该方法具体包括:交换机接收当电子设备利用远程直接内存存取RDMA方式进行数据拷贝时发送的待处理数据包;所述交换机根据该待处理数据包中的查询标识确定该待处理数据包是用于查询数据转发路径的数据包,则将所述待处理数据包转发至控制器;所述交换机接收控制器发送的反馈信息,该反馈信息中包括转发数据的流表项和确认信息;所述交换机将所述确认信息发送到所述电子设备;所述交换机接收所述电子设备发送的所述数据,并根据所述流表项转发所述数据。结合第二方面,在第一种可能的实现方式中,根据该待处理数据包中的查询标识确定该待处理数据包是用于查询数据转发路径的数据包,包括:从所述待处理数据包中获取所述查询标识,并将获取到的所述查询标识与预设的查询表项进行匹配,如果在所述查询表项中匹配到与所述查询标识相同的标识,则确定所述待处理数据包是用于查询数据转发路径的数据包。第三方面,提供一种电子设备,该电子设备具体包括:获取模块,当电子设备利用远程直接内存存取RDMA方式进行数据拷贝时,用于从发送队列SQ中取出待发送数据对应的工作队列元素WQE,其中,该WQE与所述待发送数据的原始请求对应;过滤模块,用于将所述WQE对应的第一目的地址和第一源地址与预设过滤表中每个表项的目的地址和源地址进行匹配;封装模块,如果所述第一目的地址和第一源地址与所述预设过滤表中的目的地址和源地址均不相同,用于将所述WQE封装成一个待处理数据包;收发模块,用于通过交换机将所述待处理数据包转发至控制器;并在接收到交换机发送的针对所述待处理数据包的确认信息后,将所述待发送数据发送到交换机。结合第三方面,在第一种可能的实现方式中,所述收发模块还用于添加数据唯一标识到所述待处理数据包中,并根据所述数据唯一标识确定所述WQE;获取确定的所述WQE对应的所述待发送数据;其中,该数据唯一标识用于唯一标示所述WQE。结合第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,封装模块具体用于将所述WQE存入待处理队列中;将所述待处理队列中的WQE封装成一个待处理数据包发送至交换机。结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述封装模块具体用于当确定所述待处理队列中的WQE数量大于预设阈值,则将所述待处理队列中的设定数量的WQE封装一个待处理数据包发送至交换机;或者根据预设周期检测所述待处理队列,并将检测到的该待处理队列中的WQE到封装成一个待处理数据包发送至交换机。结合第三方面,或者第三方面的第一至三种可能的实现方式中的任意一种,在第四种可能的实现方式中,该电子设备还包括:生成模块,用于获取所述发送队列SQ中已获得转发路径的WQE对应的第二目的地址和第二源地址,并根据所述第二目的地址和第二源地址生成所述预设过滤表。第四方面,提供一种交换机,该交换机具体包括:识别模块,用于接收当电子设备利用远程直接内存存取RDMA方式进行数据拷贝时发送的待处理数据包,根据该待处理数据包中的查询标识确定该待 处理数据包是用于查询所述数据转发路径的数据包,则将所述待处理数据包转发至控制器;接收模块,用于接收控制器发送的反馈信息,该反馈信息中包括转发数据的流表项和确认信息;转发模块,用于将所述确认信息发送到所述电子设备,并接收所述电子设备发送的所述数据,根据所述流表项转发所述数据。结合第四方面,在第一种可能的实现方式中,所述识别模块具体用于从所述待处理数据包中获取所述查询标识,并将获取到的所述查询标识与预设的查询表项进行匹配,如果在所述查询表项中匹配到与所述查询标识相同的标识,则确定所述待处理数据包是用于查询数据转发路径的数据包。本发明实施例中,如果电子设备通过RDMA技术进行数据拷贝,在没有将待发送的数据切换成小的数据块发送到交换机之前,电子设备先将待发送的数据对应的WQE封装成一个数据包,并通过交换机将该数据包转发到控制器,使得控制器针对WQE确定待发送数据对应的路径,并将确定的路径发送给交换机,从而避免了交换机针对由所述待发送数据切分出的具有同一源地址和目的地址的多个切分数据块,总是要去控制器请求路径下发表项的问题,从而避免了现有技术中出现的针对很多相同目的地址和源地址的数据块,交换机需要重复向控制器查表确定路径下发表项的问题,因此节约了交换机和控制器的处理资源,提高了待发送数据的转发效率。附图说明图1为现有技术中远程直接内存存取技术完成数据拷贝的系统结构示意图;图2为本发明实施例一提供的一种数据转发方法的流程示意图;图3为本发明实施例二提供的一种数据转发方法的流程示意图;图4为本发明实施例三提供的一种数据转发方法的流程示意图;图5为本发明实施例提供的一种电子设备的结构示意图;图6为本发明实施例提供的一种交换机的结构示意图;图7为本发明实施例提供的一种数据转发系统的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。现有远程直接内存存取(RemoteDirectMemoryAccess,RDMA)是为了解决网络传输中服务器端数据处理的延迟而产生的。通过RDMA技术进行数据的存储时,RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到太多计算机的处理功能。基于RDMA技术,本发明实施例提供一种数据转发方法,下面结合说明书附图对本发明实施例作进一步详细描述:实施例一如图2所示,本发明实施例提供一种数据转发方法,该方法具体包括:步骤201,当电子设备利用RDMA方式进行数据拷贝时,该电子设备从发送队列(SendQueue,SQ)中取出待发送数据对应的工作队列元素(workqueueelement,WQE);其中,该WQE与所述待发送数据的原始请求对应;并且该原始请求是指 电子设备需要发送数据时,针对数据发送所生成的请求。如果数据转发流程中,数据需要将原始待发送的数据切分成小的数据块再发送,那原始请求该原始请求则是针对的原始待发送数据,并不是切分之后的数据块。步骤202,电子设备将所述WQE对应的第一目的地址和第一源地址与预设过滤表中每个表项的目的地址和源地址进行匹配;如果所述第一目的地址和第一源地址与所述预设过滤表中的目的地址和源地址均不相同,则转入步骤203;否则,直接将该WQE对应的数据切分发送到交换机;因为不同的域中不同设备的ID可以相同,所以在本发明事实实施例中,源地址可以由源保护域标识和源标识组合形成,其中源保护域标识为源设备所属保护域的唯一标识;源标识为源设备的唯一标识。目的地址可以由目的保护域标识和目的标识组合形成,其中目的保护域标识为目的设备所属保护域的唯一标识;目的标识为目的设备的唯一标识。步骤203,将所述WQE封装成一个待处理数据包发送到交换机;通过交换机将所述待处理数据包转发至控制器;使得交换机将所述待处理数据包转发至控制器后,控制器确定所述WQE对应的流表项(该流表项中包括转发待发送数据的转发路径),控制器在确定流表项后,将流表项发送到交换机;后面如果交换机接收到该WQE对应的待发送数据后,则可以根据该流表项进行转发。在该实施例中,交换机根据预设的判断规则判断待处理数据包为查询路径的数据包之后,则直接将该待处理数据包透传到控制器,从而控制器根据该待处理数据包中的请求信息确定待发送数据的转发路径(该转发路径添加在控制器反馈给交换机的流表项中)。步骤204,该电子设备通过交换机将所述待处理数据包转发至控制器;并 在接收到交换机发送的针对所述待处理数据包的确认信息后,将所述待发送数据发送到交换机。在本发明实施例中,将每个工作队列元素对应的第一目的地址和第一源地址与预设过滤表中的目的地址和源地址进行匹配之前,该方法还进一步包括:获取所述发送队列SQ中已获得转发路径的WQE对应的第二目的地址和第二源地址,并根据所述第二目的地址和第二源地址生成所述预设过滤表。并且,该过滤表会根据发送队列SQ中已获得转发路径WQE的变化进行适应性的调整。现有技术中,电子设备如果通过RDMA方式拷贝数据,会直接将该数据切分成多个小的数据块,然后发送到交换机进行转发;如果交换机中没有数据块(即请求对应的数据)对应的转发路径,则需要针对每个数据块向控制器发送获取路径的请求,然后控制器针对每个请求反馈对应的路径。同一请求虽然对应多个数据块,但是多个数据块所对应的路径是一样的,所以按照现有技术的方案则会导致控制器资源的浪费。针对该问题,本发明实施例所提供的方案中,如果电子设备通过RDMA技术进行数据拷贝,在没有将待发送的数据切换成小的数据块发送到交换机之前,电子设备先将待发送的数据对应的WQE封装成一个数据包,并通过交换机将该数据包转发到控制器,使得控制器针对WQE确定待发送数据对应的路径,并将确定的路径发送给交换机,从而避免了交换机针对由所述待发送数据切分出的具有同一源地址和目的地址的多个切分数据块,总是要去控制器请求路径下发表项的问题,从而避免了现有技术中出现的针对很多相同目的地址和源地址的数据块,交换机需要重复向控制器查表确定路径下发表项的问题,因此节约了交换机和控制器的处理资源,提高了待发送数据的转发效率。因为电子设备可能会针对不同的数据发起数据拷贝的请求,如果存在多个WQE时,则将WQE封装成一个待处理数据包发送到交换机的具体实现方式可以是:将所述WQE存入待处理队列中;将所述待处理队列中的WQE封装成一个待处理数据包发送至交换机。其中,可触发设备封装待处理数据包的条件可以包括多种,以下提供两种最优化的实施方式,具体包括:一、当确定所述待处理队列中的WQE数量大于预设阈值,则将所述待处理队列中设定数量的WQE封装成一个待处理数据包发送至交换机;二、根据预设周期检测所述待处理队列,并将检测到的该待处理队列中的WQE到封装成一个待处理数据包发送至交换机。当电子设备发送了多个原始请求到控制器之后,如果控制器反馈了相关的信息,为了找到反馈信息对应的数据并进行转发,则可以通过以下方式实现:待处理数据包的整个转发流程中,都携带预设的数据唯一标识,该数据唯一标识用于唯一标示所述WQE,则电子设备将所述待发送数据发送到交换机之前,进一步包括:根据所述数据唯一标识确定所述WQE;获取确定的所述WQE对应的所述待发送数据。实施例二如图3所示,为了更详细的说明本发明实施例所提供的方案,以下针对具体的使用环境对本发明实施例所提供的方案做进一步的说明,当电子设备利用远程直接内存存取RDMA技术进行数据拷贝时,具体包括:步骤301,发起数据拷贝请求的电子设备预设过滤表,该过滤表中包括多个过滤表项,每个表项表示一个已经获取转发路径的目录项;其中每个表项包 括关键信息可以是:目的id、源id、目的保护域(ProtectionDomain,pd)pd、源pd、数据流标识和状态标识;表项结构如表1所示:目的id源id目的pd源pd表1每个关键信息的参数意义是:目的id和源id:目的设备和源设备的唯一标识;目的pd和源pd:目的设备和源设备所属保护域的唯一标识,因为在不同的域中可以用同样的id标示不同设备,所以为了确定唯一的目的地址和源地址,则需要将目的id和目的pd组合形成目的地址;将源id和源pd组合形成源地址。步骤302,电子设备从SQ中取出WQE,并获取该WQE对应的目的id、源id、目的pd和源pd;其中,为了唯一的标识该WQE还获取该WQE对应的数据流标识。步骤303,电子设备将WQE对应的目的地址和源地址与过滤表中存储的目的地址和源地址进行匹配,并根据匹配结果将该WQE放入待命队列或执行队列中,其中,待命队列用于存放还未建好路径的发送指令;执行队列用于存放已经建好发送路径的指令。在该实施例中,目的地址可以用目的id和目的pd标示;源地址可以用源id和源pd标示,如果过滤表中没有与WQE对应的目的id、源id、目的pd和源pd相同的表项,则将该WQE放入待命队列中;当WQE的状态调整成执行状态,则可以将该WQE放入执行队列中;待命队列中的WQE携带该WQE的目的id、源id、目的pd、源pd和数据流标识;如果过滤表中有与WQE对应的目的id、源id、目的pd和源pd相同的表 项,则将该WQE放入执行队列中。步骤304,电子设备以一定的周期从待命队列中选择WQE组成一个特殊的数据包SQ_WQE_WAIT,将该数据包发送给交换机。SQ_WQE_WAIT包括一个WQE、多个WQE或者WQE的部分信息。从待命队列中选取WQE的原则可以是:先按照顺序选取,对于长时间没有完成路径建立的发送指令可按照一定的策略优先选择。步骤305,交换机接收到SQ_WQE_WAIT之后,判断是否为请求路径的数据包,如果是,则直接转发到控制器,在接收到控制器反馈的确认数据包SQ_WQE_OK和流表项后,存储该流表项,并将确认数据包SQ_WQE_OK转发给电子设备;交换机转发数据包SQ_WQE_WAIT和SQ_WQE_OK可以通过以下具体方式实现:预先两条流表项,一条用于识别接收到的数据包为特殊包SQ_WQE_WAIT之后,直接打包上报给控制器;另一条用于识别接收到的数据包为反馈数据包SQ_WQE_OK后转发给相应的主机。交换机是接收到SQ_WQE_WAIT后立即上报控制器,由控制器决策转发规则后,控制器向该交换机发送SQ_WQE_OK和流表项。步骤306,电子设备接收到交换机转发来的SQ_WQE_OK后,根据SQ_WQE_OK中携带的数据流标识,从待命SQ中找出该数据流标识对应的WQE,将该WQE放入执行SQ。步骤307,根据WQE取出需要发送的数据,切分该数据并封装成有相同目的地址和源地址的数据包,将该数据包逐个发送至交换机;由交换机将数据包转发到目的地址对应的设备。在该实施例中,电子设备进行数据拷贝操作都是从执行SQ中获取WQE进行对应的数据获取,所以电子设备将待命SQ中的WQE放入执行SQ之后,才触发电子设备进行远程直接内存存取操作。实施例三如图4,本发明实施例还提供另外一种数据转发方法,当电子设备利用远程直接内存存取RDMA技术进行数据拷贝时,该方法具体包括:步骤401,交换机接收当电子设备利用远程直接内存存取RDMA方式进行数据拷贝时发送的待处理数据包,根据该待处理数据包中的查询标识确定该待处理数据包是用于查询所述数据转发路径的数据包,则将所述待处理数据包转发至控制器;其中,根据该待处理数据包中的查询标识确定该待处理数据包是用于查询所述数据转发路径的数据包包括:从所述待处理数据包中获取所述查询标识,并将获取到的所述查询标识与预设的查询表项进行匹配,如果在所述查询表项中匹配到与所述查询标识相同的标识,则确定所述待处理数据包是用于查询数据转发路径的数据包。步骤402,接收控制器发送的反馈信息,该反馈信息中包括转发所述数据的流表项和确认信息;步骤403,将所述确认信息发送到所述电子设备;步骤404,接收所述电子设备发送的所述数据,并根据所述流表项(该流表项中包括转发所述数据的转发路径)转发所述数据。在该实施例中,交换机需要将电子设备发送的请求转发路径的待处理数据包透传到控制器,使得控制器可以针对该请求下发对应的转发路径。当控制器在确定请求对应的转发路径后,则需要反馈转发路径和确认消息给交换机和所 述电子设备,因为数据包是通过交换机转发到其他设备的,所以交换机接收到转发路径后,则用接收到的转发路径更新自身的转发路由表;在该实施例中,电子设备需要确定交换机有请求对应的转发路径后,再进行数据的转发,所以交换机接收到控制器反馈的确认信息后,将该确认消息转发至电子设备,从而使得电子设备根据该确认消息确定可以进行发送的数据。在该实施例中,交换机需要将控制器反馈的确认消息转发到电子设备,具体实现方式可以是:将确认信息中设定标识与预设转发表进行匹配,如果与预设转发表中的某一表项相同,则将该确认信息转发至电子设备。因为路径转发请求通过了两个设备的处理,所以为了保证电子设备在接收到确认信息能够对应的确定该确认信息所对应的待转发数据,所以在生成请求的时候,则需要给待转发数据分给一个唯一标示该数据的数据流标识,在生成获取转发路径的请求时,在该请求中携带该数据流标识,交换机在和控制器在处理该请求相关的消息收都添加该数据流标识,使得数据的处理过程中以及电子设备最后接收到确认消息时,能够知道接收到的确认消息所对应的数据。实施例四如图5所示,本发明实施例提供一种电子设备,该电子设备具体包括:获取模块501,当电子设备利用远程直接内存存取RDMA方式进行数据拷贝时,用于从发送队列(SQ)中取出待发送数据对应的工作队列元素(WQE);其中,该WQE与所述待发送数据的原始请求对应;过滤模块502,用于将所述WQE对应的第一目的地址和第一源地址与预设过滤表中每个表项的目的地址和源地址进行匹配;封装模块503,如果所述第一目的地址和第一源地址与所述预设过滤表中 的目的地址和源地址不相同,用于将所述WQE封装成一个待处理数据包;其中,该封装模块503具体用于将所述WQE存入待处理队列中;并将所述待处理队列中的WQE封装成一个待处理数据包发送至交换机。在具体应用中该预设条件可以采用多种方式实现,在该实施例中提供两种最优化的方式,具体为:该封装模块503具体用于当确定所述待处理队列中的WQE数量大于预设阈值,则将所述待处理队列中的设定数量的WQE封装一个待处理数据包发送至交换机;或者根据预设周期检测所述待处理队列,并将检测到的该待处理队列中的WQE到封装成一个待处理数据包发送至交换机。收发模块504,用于通过交换机将所述待处理数据包转发至控制器;并在接收到交换机发送的针对所述待处理数据包的确认信息后,将所述待发送数据发送到交换机。为了将在各设备之间转发的请求与数据对应上,所以还可以在请求中添加一个唯一标示WQE的数据唯一标识,所以该收发模块504还用于添加数据唯一标识到所述待处理数据包中,并根据所述数据唯一标识确定所述WQE;获取确定的所述WQE对应的所述待发送数据;其中,该数据唯一标识用于唯一标示所述WQE。该实施例中,该电子设备还包括:生成模块,用于获取所述发送队列SQ中已获得转发路径的WQE对应的第二目的地址和第二源地址,并根据所述第二目的地址和第二源地址生成所述预设过滤表。进一步,因为发送队列SQ中的WQE是实时更新的,所以该生成模块也可以周期性的根据发送队列的变化进行适应性的更新调整。实施例五如图6所示,本发明实施例还提供一种交换机,当该电子设备利用远程直接内存存取RDMA技术进行数据拷贝时,该交换机具体包括:识别模块601,用于接收当电子设备利用远程直接内存存取RDMA方式进行数据拷贝时发送的待处理数据包,根据该待处理数据包中的查询标识确定该待处理数据包是用于查询所述数据转发路径的数据包,则将所述待处理数据包转发至控制器;其中,该识别模块601具体用于从所述待处理数据包中获取所述查询标识,并将获取到的所述查询标识与预设的查询表项进行匹配,如果在所述查询表项中匹配到与所述查询标识相同的标识,则确定所述待处理数据包是用于查询数据转发路径的数据包。接收模块602,用于接收控制器发送的反馈信息,该反馈信息中包括转发数据的流表项和确认信息;转发模块603,用于将所述确认信息发送到所述电子设备,并接收所述电子设备发送的所述数据,根据所述流表项转发所述数据。实施例六如图7所示,本发明实施例提供一种数据转发系统,该系统包括:电子设备701,用于从发送队列SQ中取出待发送数据对应的工作队列元素WQE;将所述WQE对应的第一目的地址和第一源地址与预设过滤表中每个表项的目的地址和源地址进行匹配,如果所述第一目的地址和第一源地址与所述预设过滤表中的目的地址和源地址不相同;将所述WQE封装成一个待处理数据包发送到交换机;在接收到针对所述待处理数据包的确认信息后,将所述待发送数据发送到交换机;其中,该WQE与所述待发送数据的原始请求对应交换机702,用于接收到所述电子设备发送的待处理数据包,根据该待处理数据包中的查询标识确定该待处理数据包是用于查询所述数据转发路径的数据包,则将所述待处理数据包转发至控制器;在接收控制器发送的反馈信息后,该反馈信息中包括转发所述数据的流表项和确认信息;将所述确认信息发送到所述电子设备,并接收所述电子设备发送的所述数据,根据所述流表项转发所述数据;控制器703,用于接收交换机转发来的待处理数据包,并从该待处理数据包中获取WQE,根据该WQE中的源地址和目标地址获取对应的转发路径,并将转发路径和确认信息发送到交换机。本申请实施例中的上述一个或多个技术方案,至少具有如下的技术效果:现有技术中,电子设备如果通过RDMA技术拷贝数据,会直接将该数据切分成多个小的数据块,然后发送到交换机进行转发;如果交换机中没有数据块(即请求对应的数据)对应的转发路径,则需要针对每个数据块向控制器发送获取路径的请求,然后控制器针对每个请求反馈对应的路径。同一请求虽然对应多个数据块,但是多个数据块所对应的路径是一样的,所以按照现有技术的方案则会导致控制器资源的浪费。针对该问题,本发明实施例中,如果电子设备通过RDMA技术进行数据拷贝,在没有将待发送的数据切换成小的数据块发送到交换机之前,电子设备先将待发送的数据对应的WQE封装成一个数据包,并通过交换机将该数据包转发到控制器,使得控制器针对WQE确定待发送数据对应的路径,并将确定的路径发送给交换机,从而避免了交换机针对由所述待发送数据切分出的具有同一源地址和目的地址的多个切分数据块,总是要去控制器请求路径下发表项的问题,从而避免了现有技术中出现的针对很多相同目的地址和源地址的数据块,交换机需要重复向控制器查表确定路径下 发表项的问题,因此节约了交换机和控制器的处理资源,提高了待发送数据的转发效率。本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1