CN113347017A - 一种网络通信的方法、装置、网络节点设备及混合网络 - Google Patents
一种网络通信的方法、装置、网络节点设备及混合网络 Download PDFInfo
- Publication number
- CN113347017A CN113347017A CN202110384941.XA CN202110384941A CN113347017A CN 113347017 A CN113347017 A CN 113347017A CN 202110384941 A CN202110384941 A CN 202110384941A CN 113347017 A CN113347017 A CN 113347017A
- Authority
- CN
- China
- Prior art keywords
- network
- pcie
- node
- communication
- ethernet
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种网络通信的方法、装置、网络节点设备及混合网络。所述网络通信方法包括:判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;若判断为能,则对PCIe网络和以太网网络进行选择;若选择PCIe网络,则使用PCIe的通信方式与所述目标节点进行通信,否则,使用以太网的通信方式与所述目标节点进行通信。本发明采用以太网网络与PCIe网络混合通信的方式,利用PCIe通信的高可靠性、传输速率高、物理上具有的低延迟和高带宽的优势,与传统的单一使用TCP/IP七层协议的以太网网络相比,这种混合通信的方式可实现更低的***开销和性能成本,提升通信的传输效率。
Description
技术领域
本发明涉及网络通信技术领域,特别涉及一种网络通信的方法、装置、网络节点设备及混合网络。
背景技术
以太网协议位于TCP/IP七层协议栈的底层(物理层和数据链路层)。运行在以太网网络集群的应用程序之间进行数据通信时,应用层的有效载荷数据需要向下经由TCP/IP全协议栈,TCP/IP协议栈每层的协议都会加上本层协议的数据头,最终形成的数据帧通过网络发送到远端,远端设备接收到数据帧后,再由下至上经由TCP/IP全协议栈,逐层剥离本层协议的数据头,最终有效载荷到达应用层后由应用程序处理。
从硬件的角度来看,数据接收端设备使用以太网协议进行通信时,数据通常由以太网硬件网卡接收,并在网卡发出***中断后进行处理。中断处理器管理队列,并将用户数据向上发送到网络栈中进行进一步处理。直到网络栈验证标识了数据并将其复制到相关的用户缓冲区后,才会通知等待数据的应用程序。从TCP/IP协议栈抽取用户数据的过程,会造成通信的延迟和开销。因此,由于TCP/IP协议栈本身引发通信的延迟和开销,造成了TPC/IP通信的性能瓶颈。
现有技术中存在使用TCP/IP减载引擎(TOE)的手段来尝试解决协议执行问题,但它们在将数据转发到应用程序的接收端时不提供加速,仍必须处理TCP/IP协议栈,并且转发过程中的硬件中断依然会造成迟延和开销,依然无法解决TCP/IP协议栈本身带来性能瓶颈的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种网络通信的方法、装置、网络节点设备及混合网络。
第一方面,本发明实施例提供一种网络通信的方法,包括:
判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;
若判断为能,则对PCIe网络和以太网网络进行选择;
若选择PCIe网络,则使用PCIe的通信方式与所述目标节点进行通信,否则,使用以太网的通信方式与所述目标节点进行通信。
在一个实施例中,使用PCIe的通信方式与所述目标节点进行通信,包括:
通过与本节点的PCIe硬件进行通讯,将本节点应用程序的数据发送给所述PCIe硬件,并通过所述PCIe硬件转发至PCIe网络,直至到达所述目标节点的目标应用程序;
通过所述PCIe硬件接收所述目标应用程序通过PCIe通信方式返回给本节点应用程序的数据。
在一个实施例中,与PCIe硬件进行通讯的方式,包括下述任一项或多项:
通过直接访问本节点的PCIe硬件的方式;
通过MPI直接使用本节点的PCIe硬件,或者通过MPI调用共享内存API使用本节点的PCIe硬件的方式;
使用共享内存API与PCIe硬件进行通讯的方式;
使用PCIe套接字与PCIe硬件进行通讯的方式。
在一个实施例中,使用PCIe套接字与PCIe硬件进行通讯的方式下,将本节点应用程序的数据发送给所述PCIe硬件,并通过所述PCIe硬件转发至PCIe网络,直至到达所述目标节点的目标应用程序,具体包括:
通过预设的PCIe套接字驱动修改应用程序Socket中的套接字类型参数为预设的PCIe套接字类型AF_PCIESOCKS,以使得应用程序通过PCIe套接字的方式处理应用程序的数据;
通过PCIe套接字驱动向PCIe物理层驱动申请队列地址用于存放应用程序的数据;
触发CPU将CPU缓存的应用程序的数据写入至内存映射的IO地址;
通过PCIe硬件对所述数据进行封包处理,并交由PCIe网络中的PCIe交换机发送给所述目标节点的目标应用程序。
使用PCIe套接字与PCIe硬件进行通讯的方式下,通过所述PCIe硬件接收所述目标应用程序通过PCIe通信方式返回给本节点应用程序的数据,包括:
通过本节点的PCIe硬件对接收到的数据进行硬件解包,并触发直接内存访问DMA,将解包后的数据写入所述应用程序的接收套接字中。
在一个实施例中,判断本节点与目标节点之间能否使用PCIe网络进行通信,包括:
通过预设的配置文件的内容,查找所述本节点和所述目标节点是否都设置有PCIe硬件;所述PCIe硬件为PCIe适配卡;所述配置文件包括:主机标识以及与所述主机标识对应的PCIe适配卡的标识;
若查找都存在,则确定所述本节点与目标节点之间可使用PCIe网络进行通信。
在一个实施例中,上述网络通信的方法,还包括:
在使用PCIe的通信方式与所述目标节点进行通信的过程中,若所述PCIe网络断开,则转换至使用以太网网络继续通信;
在使用以太网的通信方式与所述目标节点进行通信的过程中,若所述以太网网络断开,则转换至使用PCIe网络继续通信。
第二方面,本发明实施例提供一种网络通信的方法,包括:
判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;
若判断为能,根据本节点和目标节点在PCIe网络和以太网网络的路由所对应的网络性能参数的大小,选择使用PCIe的通信方式或者使用以太网的通信方式与所述目标节点进行通信。
在一个实施例中,网络性能参数为表征网络拥塞程度的拥塞因子Fcongested;
所述本节点和目标节点在PCIe网络和以太网网络的路由所对应的网络性能参数,通过下述方式计算得到:
分别按照下述公式计算所述本节点和目标节点在PCIe网络和以太网网络的路由所对应的拥塞因子:
Fcongested=Latency*BandwidthUsageRatio;
BandwidthUsageRatio=Throughput/Bandwidth;其中:
Fcongested为拥塞因子,latency为PCIe网络或以太网网络的介质延迟;
Throughput为PCIe网络或以太网网络的吞吐量;
Bandwidth为PCIe网络或以太网网络的带宽。
在一个实施例中,所述PCIe网络和以太网网络的路由的介质延迟、吞吐量和带宽的数值,通过访问Proc文件***获得。
第三方面,本发明实施例提供一种网络通信的装置,包括:
判断模块,用于判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;
选择模块,用于在所述判断模块判断为能时,对PCIe网络和以太网网络进行选择;
通信控制模块,用于根据所述选择模块的选择结果,选择使用PCIe的通信方式与所述目标节点进行通信,或者使用以太网的通信方式与所述目标节点进行通信。
第四方面,本发明实施例提供一种网络通信的装置,包括:
判断模块,用于判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;
选择模块,用于在所述判断模块判断为能时,根据本节点和目标节点在PCIe网络和以太网网络的路由所对应的网络性能参数的大小,对PCIe网络和以太网网络进行选择;
通信控制模块,用于根据所述选择模块的选择结果,选择使用PCIe的通信方式与所述目标节点进行通信,或者使用以太网的通信方式与所述目标节点进行通信。
第五方面,本发明实施例提供一种网络节点设备,所述网络节点设备上设置有PCIe适配卡和/或以太网网卡,所述网络节点设备还包括存储器和处理器;其中,所述存储器存储有计算机程序,所述程序被处理器执行时能够实现如前述的网络通信方法,通过所述PCIe的通信方式或以太网的通信方式进行通信。
第六方面,本发明实施例提供一种混合网络,包括:至少两个如前述的网络节点设备,至少一个与所述网络节点设备连接的PCIe网络设备,以及至少一个与所述网络节点设备连接的以太网网络设备;
所述至少两个网络节点设备分别与至少一个所述PCIe网络设备、至少一个所述以太网网络设备连接,以形成PCIe网络和以太网网络的混合网络。
在一个实施例中,所述PCIe网络设备为PCIe交换机。
第七方面,本发明实施例提供一种服务器集群,所述服务器集群采用前述混合网络的网络架构。
第八方面,本发明实施例提供一种所述服务器集群在车联网、无人驾驶和智能机器人领域的应用。
本发明实施例提供的上述技术方案的有益效果至少包括:
本发明实施例提供的上述网络通信的方法、装置、网络节点设备及混合网络中,节点设备同时具有PCIe网络通信能力和以太网网络通信能力,在判断与目标节点之间能够使用以太网网络和PCIe网络进行通信时,对这两种通信方式进行选择,并根据最终选择的通信方式,使用以太网的通信方式或者PCIe的通信方式与目标节点进行通信,这种混合的通信方法,由于利用了PCIe网络通信所具备的可靠性高、传输速率高、物理上具有较低延迟和高带宽的优势,使得这种节点设备所采用的混合通信方式以及由这种节点设备所组成的混合网络,与传统的单一的以太网网络相比,可以实现较高的传输性能,并降低TCP/IP协议栈分层导致的***开销和性能成本。
本发明实施例在对PCIe网络和以太网网络的通信方式进行选择时,基于网络的拥塞因子来自动选定通信链路,将拥塞因子较小的链路作为将要使用的通信链路,可保证网络节点设备以当前最优的通信方式进行通信,同时也使得PCIe网络和以太网网络的资源都得到有效利用。
本发明实施例在对PCIe网络的通信方式进行选择时,使用PCIe套接字的方式对应用程序的数据包进行封装,应用程序不必改动,可更好地与现有以太网网络通信方式兼容,且对操作***影响小,实现较为容易。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1和图2为本发明实施例提供的一种典型的PCIe组网方式的网络架构示意图;
图3为本发明实施例一提供的网络通信的方法的流程图;
图4为本发明实施例一提供的与PCIe硬件进行通讯的多种方式的示意图;
图5为本发明实施例一提供的PCIe套接字示例的通信原理的示意图;
图6为本发明实施例一提供的PCIe的TLP的数据包格式的示意图;
图7为本发明实施例二提供的网络通信的方法的流程图;
图8为本发明实施例二提供的一个具体实例的网络架构的示意图;
图9为本发明实施例提供的网络通信的装置1的结构框图;
图10为本发明实施例提供的网络通信的装置2的结构框图;
图11为本发明实施例提供的混合网络的网络结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
为了解决现有以太网网络TCP/IP协议栈引发的网络延迟的问题,本发明实施例提供了一种PCI-Express(Peripheral Component Interconnect Express)网络与以太网网络混用的网络通信方法、节点设备及相关混合网络。
在对本发明实施例的具体实施方式进行说明之前,首先对PCIe的通信方式进行说明。
PCIe是一种高速串行计算机扩展总线标准,是一种串行连接,其运行方式更像是网络而不是总线。一种典型的PCIe组网方式参照图1和图2所示,PCIe网络中的网络节点设备之间通过自身的PCIe适配卡、线缆和至少一个PCIe网络互连设备(例如PCIe交换机等)直接连接。与PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为数据发送端和数据接收端。
PCIe不像总线那样处理来自多个源的数据,通过PCIe交换机,控制多个点对点的串行连接。这些连接从PCIe交换机扇出,直接通向数据需要传输到的目的设备。每个设备都有自己的专用连接,因此设备不用像普通总线那样共享带宽。与传统以太网TCP/IP协议栈的通信方式相比,PCIe网络具有数据传输速率高、可靠性高、物理上具有低延迟和高带宽的优势,可以消除TCP/IP协议栈分层导致的***开销和性能成本。
基于PCIe的上述优势,本发明实施例将同时具备PCIe通信能力和传统以太网通信能力的设备作为网络节点设备,这些设备中配置PCIe硬件,通过PCIe网络和以太网网络将这些网络节点设备进行互联。当然,在这样的网络架构中,可以是所有网络节点设备都同时具备PCIe通信能力和以太网通信能力;也可以是部分网络节点设备同时具备PCIe通信能力和以太网通信能力,另外一部分网络节点设备具备PCIe通信能力和以太网通信能力中的任一种。
实施例一:
对于网络节点设备来说,本发明实施例一提供的一种网络通信的方法,参照图3所示,包括:
S31、判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;若判断为能,则执行下述步骤S32;否则本流程结束。
S32、对PCIe网络和以太网网络进行选择;若选择PCIe网络,则执行下述步骤S33;否则,执行下述步骤S34;
S33、使用PCIe的通信方式与目标节点进行通信;
S34、使用以太网的通信方式与目标节点进行通信。
为了说明的简便,在本发明实施例中,使用“本节点”和“目标节点”分别表示通信的两端网络节点设备,而并不特指某一方设备,本领域技术人员可以想见,通信的发送端设备也可能在其他场景下作为通信的接收端设备,反之亦然。
本发明实施例提供的上述网络通信的方法,节点设备同时具有PCIe网络通信能力和以太网网络通信能力,在判断与目标节点之间能够使用以太网网络和PCIe网络进行通信时,对这两种通信方式进行选择,并根据最终选择的通信方式,使用以太网的通信方式或者PCIe的通信方式与目标节点进行通信,这种混合的通信方法,由于利用了PCIe网络通信所具备的可靠性高、传输速率高、物理上具有较低延迟和高带宽的优势,使得这种节点设备所采用的混合通信方式以及由这种节点设备所组成的混合网络,与传统的单一的以太网网络相比,可以实现较高的传输性能,并降低TCP/IP协议栈分层导致的***开销和性能成本。
在一个或多个可能的实施方式中,上述步骤S31中,可以通过例如下述方式来判断本节点与目标节点之间能否使用PCIe网络进行通信:
通过预设的配置文件的内容,查找本节点和目标节点是否都具备PCIe硬件;其中配置文件包括:主机标识(例如hostname字段)以及与主机标识对应的PCIe适配卡的标识(例如Node ID字段);
若查找都存在,则确定本节点与目标节点之间可使用PCIe网络进行通信。
具备PCIe硬件是具备PCIe网络通信的基础,因此通过配置文件的查询就可以确定是否与通信对端建立起PCIe网络通信。
上述PCIe硬件包括但不限于PCIe适配卡等。
在一个或多个可能的实施方式中,上述步骤S32中,可以使用多种策略,对PCIe网络和以太网网络进行选择;例如,可参考网络性能来选择,或者可随机选择、又或者根据应用程序的类型来选择(应用程序类型与通信方式对应)等等,本发明实施例对此不做限定。
在一个或多个可能的实施方式中,上述步骤S33中,使用PCIe的通信方式与目标节点进行通信的过程,包括:
通过与本节点的PCIe硬件进行通讯,将本节点应用程序的数据发送给本节点PCIe硬件,并通过本节点的PCIe硬件转发至PCIe网络,直至到达目标节点的目标应用程序;
通过PCIe硬件接收目标应用程序通过PCIe通信方式返回给本节点应用程序的数据。
在本发明实施例中,上述与PCIe硬件进行通讯的方式,参照图4所示,例如可以是下述任一项或多项的方式:
1)通过直接访问本节点的PCIe硬件的方式;
直接访问PCIe硬件的方式中,应用程序准备事务层数据,将数据做内存映射,然后通过CPU推或硬件直接内存访问(Direct Memory Access,DMA)拉的方式,PCIe硬件得到数据后多播到其它节点。
DMA是指不经过CPU而直接进行外设(例如PCIe适配卡等)和内存(内核空间)的数据交换。CPU向DMA控制器下达指令,由DMA控制器去处理数据传输。
PCIe标准定义了三层:事务层(Transaction Layer)、数据链路层(Data LinkLayer)和物理层(Physical Layer),不同于TCP/IP7层协议,PCIe三层转发均由PCIe硬件实现,事务层主要职责创建(发送)或者解析(接收)事务层数据(TLP,Transaction Layerpacket)。
2)通过信息传递接口(Message passing interface,MPI)直接使用本节点的PCIe硬件,或者通过MPI调用共享内存应用程序编程接口(Application ProgrammingInterface,API)使用本节点的PCIe硬件的方式;
具体来说,MPI是一种信息传递应用程序接口,包括协议和语义说明,它们指明其如何在各种实现中发挥其特性。
通过MPI调用共享内存来使用PCIe硬件,将硬件操作由PCIe驱动和共享内存API封装后进行利用,例如应用于并行计算和AI模型训练等。
3)直接使用共享内存API与PCIe硬件进行通讯的方式;
在本方式下,与2)中不同,可以不通过MPI API,直接用共享内存API与PCIe硬件通讯。
4)使用PCIe套接字与PCIe硬件进行通讯的方式。
图4中还示意出了应用程序如何与以太网硬件进行通讯的方式,具体实现过程可参照现有技术,在此不再赘述。
套接字(Socket)是网络应用程序的基础,从层次上来说,它位于应用层,Socket位于传输层协议之上,可屏蔽不同网络协议之间的差异;Socket可以看成是两个网络应用程序进行通信时,各自通信连接中的端点,这是一个逻辑上的概念。它是网络环境中进程间通信的API,也是可以被命名和寻址的通信端点,使用中的每一个套接字都有其类型和一个与之相连的进程。通信时其中一个网络应用程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过与通信硬件(以太网网卡或者PCIe适配卡)相连的传输介质将这段信息送到另外一台主机的Socket中,使对方能够接收到这段信息。
一个PCIe套接字示例的通信原理参照图5所示。主机A中的应用程序A通过套接字对数据进行封装,经由网络接口卡(以太网网络中是以太网卡,PCIe网络中是PCIe适配卡),发送至主机B的应用程序B。
本发明实施例中,采用PCIe套接字与以太网套接字混用进行通讯方式,可以更好地兼容PCIe网络通信方式和以太网网络通信方式,与前述1、2、3这三种方式相比,PCIeSocket对应用程序透明,在具体实施时,可以通过PCIe套接字驱动即可实现,不需要对操作***打补丁,对操作***影响小,实现较为容易。
使用PCIe套接字与PCIe硬件进行通讯的方式下,上述步骤S33中,将本节点应用程序的数据发送给PCIe硬件,并通过PCIe硬件转发至PCIe网络,直至到达目标节点的目标应用程序,例如可通过下述过程实现:
通过预设的PCIe套接字驱动修改应用程序Socket中的套接字类型参数(例如SOCKET类型参数AF_INET)为预设的PCIe套接字类型AF_PCIESOCKS,以使得应用程序能够通过PCIe套接字的方式处理应用程序的数据;
通过PCIe套接字驱动向PCIe物理层驱动申请队列地址用于存放应用程序的数据;
触发CPU将CPU缓存的应用程序的数据写入至内存映射的IO地址;
通过PCIe硬件对所述数据进行封包处理,并交由PCIe网络中的PCIe交换机发送给目标节点的目标应用程序。
从另一个方面来说,使用PCIe套接字与PCIe硬件进行通讯的方式下,上述步骤S33中,通过所述PCIe硬件接收所述目标应用程序通过PCIe通信方式返回给本节点应用程序的数据,例如可通过下述过程实现:
通过本节点的PCIe硬件对接收到的数据进行硬件解包,并触发直接内存访问DMA,将解包后的数据写入应用程序的接收套接字中。
PCIe硬件对接收到的数据进行硬件解包的过程,与通过PCIe硬件对所述数据进行封包处理的过程,互为逆操作的过程。
以图6所示的TLP的格式(数据包头(head)和数据有效载荷(Data Payload)为事务层上层提供的信息)为例,在PCIe硬件对数据进行封包的过程中,事务层增加了CRC校验,生成ECRC并添加在TLP包尾,到了数据链路层,在TLP前增加了包序列号,再次进行CRC校验,在尾部增加LCRC,构成了数据链路层数据包(Data Link Layer packet,DLLP),然后DLLP下传至物理层,头部和尾部分别增加开始(Start)和结束(End)字段,PCIe适配卡将数据分派至各个数据通道(Lane),每个Lane上加扰码,经8/10或128/130编码,最后通过物理传输介质例如PCIe线缆传输给接收方。
PCIe硬件对接收到的数据进行硬件解包的过程中,物理层接收到数据后,进行逆操作,去掉Start和End,在数据链路层,校验序列号和LCRC,如果没错,剥离序列号和LCRC,将数据向事务层传输,如果校验出错,则通知对方重传,在事务层,校验CRC,如有错误,则数据丢弃,没有错误,则去掉ECRC,获得有效数据载荷。
与传统的TCP/IP套接字对数据进行封装相比,本发明实施例通过PCIe套接字对应用程序的数据包进行封装,应用程序可以实现较低的延迟和高带宽的通信。利用PCIe网络自身的可靠性消除传统TCP/IP协议栈分层导致的***开销和性能成本,通过降低***负载(包括***中断),从而实现低延迟和高带宽。
本发明实施例中,PCIe套接字的方式使用了编程输入/输出(PIO)的方式,PIO的方式指在外设和CPU间交换数据时,数据需要经CPU存储转发,需要占用CPU来读取数据,对于小包数据的传输非常高效,适合数据量小的数据包的传输,而前述直接内存访问DMA操作(直接访问PCIe硬件),非常适合数据量大的流水线数据传输。对于PCIe通信方式的选择上,也可以参考数据包的大小,根据预设的数据包大小的阈值,将数据量较小的数据包通过PIO的方式传输,将数据量较大的数据包通过DMA的方式传输,可以根据应用程序的要求来调整该阈值的大小,以充分降低传输时延。
对于单节点多处理器的使用场景中,***内的通信也可能是延迟的来源,对于利用处理器间本地通信(环回通信,loopback)的应用程序而言,本发明实施例采用PCIe和以太网的混合通信方式,因为PCIe loopback同样无需复杂的七层协议的封包、解包的过程,同样可以很好地提升环回通信中应用程序之间的通信效率,显著地改进***性能。
实施例二:
本发明实施例二提供的一种网络通信的方法,参照图7所示,包括:
S71、判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;若判断为能,则执行下述步骤S72;否则,结束本流程。
S72、根据本节点和目标节点在PCIe网络和以太网网络的路由所对应的网络性能参数的大小,选择使用PCIe的通信方式或者使用以太网的通信方式与所述目标节点进行通信。
本发明实施例二中上述S71,以及S72中使用PCIe的通信方式或者使用以太网的通信方式与所述目标节点进行通信的具体实现方式,可参照实施例一的说明,在此不再赘述。
在步骤S72中,网络性能参数为表征网络拥塞程度的拥塞因子Fcongested;为了对PCIe网络和以太网网络的路由进行选择,本发明实施例需要按照下述公式,分别计算所述本节点和目标节点在PCIe网络和以太网网络的路由所对应的拥塞因子:
Fcongested=Latency*BandwidthUsageRatio;
BandwidthUsageRatio=Throughput/Bandwidth;其中:
Fcongested为拥塞因子,latency为PCIe网络或以太网网络的介质延迟;
Throughput为PCIe网络或以太网网络的吞吐量;
Bandwidth为PCIe网络或以太网网络的带宽。
假设PCIe网络的拥塞因子的数值,小于以太网网络的拥塞因子的数值,则选择PCIe网络,反之,选择以太网网络。
对于PCIe网络和以太网网络来说,上述介质延迟均为对应网络环境下物理硬件链路传输Latency和软件层封包、解包处理所导致的Latency之和,以后者为主。
在一个实施例中,上述PCIe网络和以太网网络的路由的介质延迟、吞吐量和带宽的数值,可通过访问Proc文件***获得;
Proc文件***动态实时维护着PCIe通信链路、以太网通信链路的Latency和Throughput等参数。
上述通过Proc文件***获取Latency和Throughput等参数仅为多种可能的实施方式中的一种,本发明实施例对如何获得上述介质延迟、网络吞吐量和带宽等参数的具体方式不做限定。
如果两个节点设备之间既有PCIe网络连接,又有以太网网络连接,通过上述方法来分别计算PCIe网络和以太网网络链路的拥塞因子,选择采用Fcongested因子更小的媒介作为实际路由链路,这种基于拥塞因子自适应选定通信网络链路的方式,可保证网络节点设备以当前最优的通信方式进行通信,同时也使得PCIe网络和以太网网络的资源都得到有效利用。
下面以一个具体实例说明上述实施例二的网络通信的方法,参照图8所示,节点1和节点2之间同时连接有PCIe通信链路和以太网通信链路,可使用PCIe网络和以太网网络两种通信方式进行通信。
假设节点1中应用程序1,向节点2中应用程序2发送数据,其网络通信流程如下:
节点1和节点2中驱动程序及用户空间辅助程序(库)根据本地的配置文件判断与目标节点间(对于节点1来说,其目标节点为节点2,反之,节点1是节点2的目标节点)是否可用PCIe网络通信,如果不可,则采用以太网通信。
节点1中用户空间辅助程序,根据Proc文件***中维护的PCIe通信、以太网通信链路的Latency和Throughput等参数,计算PCIe链路和以太网链路的拥塞因子,选择采用Fcongested因子更小的媒介作为将要使用的网络路由。
如果决定仍通过以太网链路通信,则应用程序按照传统以太网通信的方式进行后续处理;如果决定通过PCIe链路通信,则在运行时修改应用程序的套接字类型参数AF_INET为AF_PCIESOCKS,使得应用程序按照内核的PCIe套接字驱动定义的方式处理数据。
如果选择通过PCIe链路通信,PCIe套接字驱动向现有的PCIe物理层驱动申请队列地址用于存放应用程序数据,然后触发CPU执行存储指令(write posted storeinstruction)将CPU缓存的应用程序数据写到所申请的内存映射IO地址。PCIe适配卡硬件对数据封包,并交由PCIe交换机发送给目标节点。
基于同一发明构思,本发明实施例还提供了一种网络通信的装置、网络节点设备、混合网络和服务器集群,由于这些装置和设备所解决问题的原理与前述网络通信的方法相似,因此该装置和设备和网络的实施可以参见前述方法的实施,重复之处不再赘述。
本发明实施例提供的一种网络通信的装置1,参照图9所示,包括:
判断模块91,用于判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;
选择模块92,用于在判断模块91判断为能时,对PCIe网络和以太网网络进行选择;
通信控制模块93,用于根据选择模块92的选择结果,选择使用PCIe的通信方式与目标节点进行通信,或者使用以太网的通信方式与目标节点进行通信。
在一个或多个实施例中,上述通信控制模块93,用于通过与本节点的PCIe硬件进行通讯,将本节点应用程序的数据发送给所述PCIe硬件,并通过所述PCIe硬件转发至PCIe网络,直至到达所述目标节点的目标应用程序;通过所述PCIe硬件接收所述目标应用程序通过PCIe通信方式返回给本节点应用程序的数据。
在一个或多个实施例中,与PCIe硬件进行通讯的方式,包括下述任一项或多项:
通过直接访问本节点的PCIe硬件的方式;
通过MPI直接使用本节点的PCIe硬件,或者通过MPI调用共享内存API使用本节点的PCIe硬件的方式;
使用共享内存API与PCIe硬件进行通讯的方式;
使用PCIe套接字与PCIe硬件进行通讯的方式。
相应地,所述通信控制模块93,在使用PCIe套接字与PCIe硬件进行通讯的方式下,通过预设的PCIe套接字驱动修改应用程序Socket中的套接字类型参数为预设的PCIe套接字类型AF_PCIESOCKS,以使得应用程序通过PCIe套接字的方式处理应用程序的数据;通过PCIe套接字驱动向PCIe物理层驱动申请队列地址用于存放应用程序的数据;触发CPU将CPU缓存的应用程序的数据写入至内存映射的IO地址;通过PCIe硬件对所述数据进行封包处理,并交由PCIe网络中的PCIe交换机发送给所述目标节点的目标应用程序。
相应地,所述通信控制模块93,在使用PCIe套接字与PCIe硬件进行通讯的方式下,通过本节点的PCIe硬件对接收到的数据进行硬件解包,并触发直接内存访问DMA,将解包后的数据写入所述应用程序的接收套接字中。
本发明实施例提供的一种网络通信的装置2,参照图10所示,包括:
判断模块101,用于判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;
选择模块102,用于在所述判断模块判断为能时,根据本节点和目标节点在PCIe网络和以太网网络的路由所对应的网络性能参数的大小,对PCIe网络和以太网网络进行选择;
通信控制模块103,用于根据所述选择模块的选择结果,选择使用PCIe的通信方式与所述目标节点进行通信,或者使用以太网的通信方式与所述目标节点进行通信。
在一个实施例中,网络性能参数为表征网络拥塞程度的拥塞因子Fcongested;参照图10所示,该网络通信的装置还可以包括:拥塞因子计算模块104;
所述拥塞因子计算模块104用于分别按照下述公式计算所述本节点和目标节点在PCIe网络和以太网网络的路由所对应的拥塞因子:
Fcongested=Latency*BandwidthUsageRatio;
BandwidthUsageRatio=Throughput/Bandwidth;其中:
Fcongested为拥塞因子,latency为PCIe网络或以太网网络的介质延迟;
Throughput为PCIe网络或以太网网络的吞吐量;
Bandwidth为PCIe网络或以太网网络的带宽。
本发明实施例还提供了一种网络节点设备,该网络节点设备上设置有PCIe适配卡和/或以太网网卡,该网络节点设备还包括存储器和处理器;其中,存储器存储有计算机程序,该计算机程序被处理器执行时能够实现前述的网络通信方法,并通过所述PCIe的通信方式或以太网的通信方式进行通信。
本发明实施例还提供了一种混合网络,参照图11所示,该混合网络包括:至少两个如前述的网络节点设备,至少一个与网络节点设备连接的PCIe网络设备,以及至少一个与网络节点设备连接的以太网网络设备;
至少两个网络节点设备分别与至少一个所述PCIe网络设备、至少一个所述以太网网络设备连接,以形成PCIe网络和以太网网络的混合网络。
在该混合网络中,PCIe网络设备为PCIe交换机。
以太网网络设备包括但不限于路由器、以太网交换机或其他以太网网络设备,本发明实施例对此不做限定。
在上述混合网的网络架构中,可能的情况是所有网络节点设备都同时具备PCIe通信能力和以太网通信能力;也可能是其中部分网络节点设备同时具备PCIe通信能力和以太网通信能力,而另外一部分网络节点设备具备PCIe通信能力和以太网通信能力中的任一种。
图11示意的混合网络中,各网络节点设备都同时具有PCIe通信能力和以太网通信能力,而在具体实施时,该混合网络中还可以有其他的网络节点设备只具有以太网通信能力或者只具有PCIe网络通信能力。具有PCIe通信能力的网络节点设备之间,通过PCIe网络连接,具有以太网通信能力的网络节点设备之间,通过以太网网络连接。
发明实施例还提供了一种服务器集群,该服务器集群采用如前述混合网络的网络架构。
上述服务器集群可广泛地应用于在车联网、无人驾驶和智能机器人等领域。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种网络通信的方法,其特征在于,包括:
判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;
若判断为能,则对PCIe网络和以太网网络进行选择;
若选择PCIe网络,则使用PCIe的通信方式与所述目标节点进行通信,否则,使用以太网的通信方式与所述目标节点进行通信。
2.如权利要求1所述的方法,其特征在于,使用PCIe的通信方式与所述目标节点进行通信,包括:
通过与本节点的PCIe硬件进行通讯,将本节点应用程序的数据发送给所述PCIe硬件,并通过所述PCIe硬件转发至PCIe网络,直至到达所述目标节点的目标应用程序;
通过所述PCIe硬件接收所述目标应用程序通过PCIe通信方式返回给本节点应用程序的数据。
3.如权利要求2所述的方法,其特征在于,与PCIe硬件进行通讯的方式,包括下述任一项或多项:
通过直接访问本节点的PCIe硬件的方式;
通过MPI直接使用本节点的PCIe硬件,或者通过MPI调用共享内存API使用本节点的PCIe硬件的方式;
使用共享内存API与PCIe硬件进行通讯的方式;
使用PCIe套接字与PCIe硬件进行通讯的方式。
4.如权利要求3所述的方法,其特征在于,使用PCIe套接字与PCIe硬件进行通讯的方式下,将本节点应用程序的数据发送给所述PCIe硬件,并通过所述PCIe硬件转发至PCIe网络,直至到达所述目标节点的目标应用程序,具体包括:
通过预设的PCIe套接字驱动修改应用程序Socket中的套接字类型参数为预设的PCIe套接字类型AF_PCIESOCKS,以使得应用程序通过PCIe套接字的方式处理应用程序的数据;
通过PCIe套接字驱动向PCIe物理层驱动申请队列地址用于存放应用程序的数据;
触发CPU将CPU缓存的应用程序的数据写入至内存映射的IO地址;
通过PCIe硬件对所述数据进行封包处理,并交由PCIe网络中的PCIe交换机发送给所述目标节点的目标应用程序。
5.如权利要求3所述的方法,其特征在于,使用PCIe套接字与PCIe硬件进行通讯的方式下,通过所述PCIe硬件接收所述目标应用程序通过PCIe通信方式返回给本节点应用程序的数据,包括:
通过本节点的PCIe硬件对接收到的数据进行硬件解包,并触发直接内存访问DMA,将解包后的数据写入所述应用程序的接收套接字中。
6.一种网络通信的方法,其特征在于,包括:
判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;
若判断为能,根据本节点和目标节点在PCIe网络和以太网网络的路由所对应的网络性能参数的大小,选择使用PCIe的通信方式或者使用以太网的通信方式与所述目标节点进行通信。
7.如权利要求6所述的方法,其特征在于,网络性能参数为表征网络拥塞程度的拥塞因子Fcongested;
所述本节点和目标节点在PCIe网络和以太网网络的路由所对应的网络性能参数,通过下述方式计算得到:
分别按照下述公式计算所述本节点和目标节点在PCIe网络和以太网网络的路由所对应的拥塞因子:
Fcongested=Latency*BandwidthUsageRatio;
BandwidthUsageRatio=Throughput/Bandwidth;其中:
Fcongested为拥塞因子,latency为PCIe网络或以太网网络的介质延迟;
Throughput为PCIe网络或以太网网络的吞吐量;
Bandwidth为PCIe网络或以太网网络的带宽。
8.如权利要求6所述的方法,其特征在于,所述PCIe网络和以太网网络的路由的介质延迟、吞吐量和带宽的数值,通过访问Proc文件***获得。
9.一种网络通信的装置,其特征在于,包括:
判断模块,用于判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;
选择模块,用于在所述判断模块判断为能时,对PCIe网络和以太网网络进行选择;
通信控制模块,用于根据所述选择模块的选择结果,选择使用PCIe的通信方式与所述目标节点进行通信,或者使用以太网的通信方式与所述目标节点进行通信。
10.一种网络通信的装置,其特征在于,包括:
判断模块,用于判断本节点与目标节点之间能否使用以太网网络以及PCIe网络进行通信;
选择模块,用于在所述判断模块判断为能时,根据本节点和目标节点在PCIe网络和以太网网络的路由所对应的网络性能参数的大小,对PCIe网络和以太网网络进行选择;
通信控制模块,用于根据所述选择模块的选择结果,选择使用PCIe的通信方式与所述目标节点进行通信,或者使用以太网的通信方式与所述目标节点进行通信。
11.一种网络节点设备,其特征在于,所述网络节点设备上设置有PCIe适配卡和/或以太网网卡,所述网络节点设备还包括存储器和处理器;其中,所述存储器存储有计算机程序,所述程序被处理器执行时能够实现如权利要求1-5或6-8任一项所述的网络通信方法,通过所述PCIe的通信方式或以太网的通信方式进行通信。
12.一种混合网络,其特征在于,包括:至少两个如权利要求11所述的网络节点设备,至少一个与所述网络节点设备连接的PCIe网络设备,以及至少一个与所述网络节点设备连接的以太网网络设备;
所述至少两个网络节点设备分别与至少一个所述PCIe网络设备、至少一个所述以太网网络设备连接,以形成PCIe网络和以太网网络的混合网络。
13.一种服务器集群,其特征在于,所述服务器集群采用如权利要求12所述的混合网络的网络架构。
14.一种如权利要求13所述的所述服务器集群在车联网、无人驾驶和智能机器人领域的应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110384941.XA CN113347017B (zh) | 2021-04-09 | 2021-04-09 | 一种网络通信的方法、装置、网络节点设备及混合网络 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110384941.XA CN113347017B (zh) | 2021-04-09 | 2021-04-09 | 一种网络通信的方法、装置、网络节点设备及混合网络 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113347017A true CN113347017A (zh) | 2021-09-03 |
CN113347017B CN113347017B (zh) | 2023-07-21 |
Family
ID=77467974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110384941.XA Active CN113347017B (zh) | 2021-04-09 | 2021-04-09 | 一种网络通信的方法、装置、网络节点设备及混合网络 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113347017B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113938531A (zh) * | 2021-09-23 | 2022-01-14 | 北京车和家信息技术有限公司 | 数据传输方法、装置、设备及介质 |
CN115473861A (zh) * | 2022-08-18 | 2022-12-13 | 珠海高凌信息科技股份有限公司 | 基于通信与计算分离的高性能处理***和方法、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102790718A (zh) * | 2012-07-24 | 2012-11-21 | 大唐移动通信设备有限公司 | 网络通信方法与装置 |
CN103312720A (zh) * | 2013-07-01 | 2013-09-18 | 华为技术有限公司 | 一种数据传输方法、设备及*** |
US20190014168A1 (en) * | 2017-07-07 | 2019-01-10 | Pointr Data Inc. | Computer Network using Multiple Connection Pathways |
-
2021
- 2021-04-09 CN CN202110384941.XA patent/CN113347017B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102790718A (zh) * | 2012-07-24 | 2012-11-21 | 大唐移动通信设备有限公司 | 网络通信方法与装置 |
CN103312720A (zh) * | 2013-07-01 | 2013-09-18 | 华为技术有限公司 | 一种数据传输方法、设备及*** |
US20190014168A1 (en) * | 2017-07-07 | 2019-01-10 | Pointr Data Inc. | Computer Network using Multiple Connection Pathways |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113938531A (zh) * | 2021-09-23 | 2022-01-14 | 北京车和家信息技术有限公司 | 数据传输方法、装置、设备及介质 |
CN113938531B (zh) * | 2021-09-23 | 2023-10-31 | 北京车和家信息技术有限公司 | 数据传输方法、装置、设备及介质 |
CN115473861A (zh) * | 2022-08-18 | 2022-12-13 | 珠海高凌信息科技股份有限公司 | 基于通信与计算分离的高性能处理***和方法、存储介质 |
CN115473861B (zh) * | 2022-08-18 | 2023-11-03 | 珠海高凌信息科技股份有限公司 | 基于通信与计算分离的高性能处理***和方法、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113347017B (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10868767B2 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
CN111656336B (zh) | 一种pcie发送、接收方法及装置、设备和*** | |
US10204070B2 (en) | Method, device, system and storage medium for implementing packet transmission in PCIE switching network | |
US10848442B2 (en) | Heterogeneous packet-based transport | |
US7937447B1 (en) | Communication between computer systems over an input/output (I/O) bus | |
KR101219910B1 (ko) | 통합형 다중 전송 매체 커넥터 아키텍쳐 구현 디바이스, 방법 및 시스템 | |
WO2020236279A1 (en) | System and method for facilitating efficient management of idempotent operations in a network interface controller (nic) | |
US8898222B2 (en) | Processing STREAMS messages over a system area network | |
US6799220B1 (en) | Tunneling management messages over a channel architecture network | |
EP4298776A1 (en) | Service mesh offload to network devices | |
EP2003823A1 (en) | Autonegotiation over an interface for which no autonegotiation standard exists | |
CN116018790A (zh) | 基于接收方的精密拥塞控制 | |
CN113347017B (zh) | 一种网络通信的方法、装置、网络节点设备及混合网络 | |
CN114221852A (zh) | 确认到网络装置的卸载 | |
US20220166698A1 (en) | Network resource monitoring | |
CN114138707B (zh) | 一种基于fpga的数据传输*** | |
JP5091121B2 (ja) | 埋め込み型システムのための高速データ処理・通信方法及び装置 | |
US9203895B1 (en) | System and method for lateral connection between interface devices with bypass of external network | |
WO2018004931A1 (en) | Techniques for virtual ethernet switching of a multi-node fabric | |
WO2023048925A1 (en) | Network resource monitoring | |
CN112988633A (zh) | 一种电子设备及数据传输方法 | |
CN117597893A (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 |