用于数据包广播的多目的地DMA的制作方法

专利查询7天前  12


本技术总体上涉及网络流量管理,并且更具体地涉及管理在计算装置上运行的多个服务的网络流量。


背景技术:

1、近来,服务器已经被扩展为执行多个服务,例如在云计算环境中在共享硬件上运行的多个虚拟服务器。在一些场景中,可以使用虚拟机和/或虚拟化容器将多个服务彼此隔离。当前的网络接口控制器(nic)装置对于系统软件来说本身表现为单个单片装置。此类nic装置可由单个装置驱动器管理,该单个驱动器经由虚拟nic接口与服务器上运行的多个服务进行通信。


技术实现思路

1、在示例实施方案中,一种由网络流量管理系统实施的方法包括:在连接到主机计算机的硬件网络接口控制器(nic)处接收网络数据包;由所述硬件nic将关于所述网络数据包的元数据发送到在所述主机计算机上运行的代理进程;在所述硬件nic处接收来自所述代理进程的响应消息,该响应消息包括存储器位置标识符;以及由所述硬件nic将所述网络数据包写入到所述主机计算机的与所述存储器位置标识符相关联的存储器位置,其中所述写入包括执行直接存储器访问(dma)操作。

2、在另一个示例实施方案中,一种系统包括一个或多个网络流量管理模块、联网模块或服务器模块、包括在其上存储的编程指令的存储器、以及一个或多个处理器,所述一个或多个处理器被配置为能够执行所存储的编程指令以:在连接到主机计算机的硬件网络接口控制器(nic)处接收网络数据包;由所述硬件nic将关于所述网络数据包的元数据发送到在所述主机计算机上运行的代理进程;在所述硬件nic处接收来自所述代理进程的响应消息,所述响应消息包括存储器位置标识符;以及由所述硬件nic将所述网络数据包写入到所述主机计算机的与所述存储器位置标识符相关联的存储器位置,其中所述写入包括执行直接存储器访问(dma)操作。

3、在另一个示例实施方案中,一种非暂时性计算机可读介质在其上存储有指令,所述指令包括可执行代码,所述可执行代码当由一个或多个处理器执行时致使所述处理器:在连接到主机计算机的硬件网络接口控制器(nic)处接收网络数据包;由所述硬件nic将关于所述网络数据包的元数据发送到在所述主机计算机上运行的代理进程;在所述硬件nic处接收来自所述代理进程的响应消息,所述响应消息包括存储器位置标识符;以及由所述硬件nic将所述网络数据包写入到所述主机计算机的与所述存储器位置标识符相关联的存储器位置,其中所述写入包括执行直接存储器访问(dma)操作。

4、在另一个示例实施方案中,一种网络流量管理设备包括存储器和一个或多个处理器,所述存储器包括在其上存储的编程指令,所述一个或多个处理器被配置为能够执行所存储的编程指令以:在连接到主机计算机的硬件网络接口控制器(nic)处接收网络数据包;由所述硬件nic将关于所述网络数据包的元数据发送到在所述主机计算机上运行的代理进程;在所述硬件nic处接收来自所述代理进程的响应消息,所述响应消息包括存储器位置标识符;以及由所述硬件nic将所述网络数据包写入到所述主机计算机的与所述存储器位置标识符相关联的存储器位置,其中所述写入包括执行直接存储器访问(dma)操作。

5、在另一个示例实施方案中,一种由网络流量管理系统实施的方法包括:由在主机计算机上运行的代理进程接收关于网络数据包的元数据,其中关于所述网络数据包的所述元数据是从连接到所述主机计算机的硬件网络接口控制器(nic)接收的;由所述代理进程使用所述元数据识别所述主机计算机的存储器缓冲区;由所述代理进程将直接存储器访问(dma)写入消息发送到所述硬件nic,其中所述dma写入消息包括与所述存储器缓冲区相关联的存储器位置标识符;以及由所述代理进程从所述硬件nic接收通知消息,所述通知消息指示所述硬件nic已执行dma操作以将所述网络数据包写入到所述主机计算机的所述存储器缓冲区。

6、在另一个示例实施方案中,一种系统包括一个或多个网络流量管理模块、联网模块或服务器模块、包括在其上存储的编程指令的存储器、以及一个或多个处理器,所述一个或多个处理器被配置为能够执行所存储的编程指令以:由在主机计算机上运行的代理进程接收关于网络数据包的元数据,其中关于所述网络数据包的所述元数据是从连接到所述主机计算机的硬件网络接口控制器(nic)接收的;由所述代理进程使用所述元数据识别所述主机计算机的存储器缓冲区;由所述代理进程将直接存储器访问(dma)写入消息发送到所述硬件nic,其中所述dma写入消息包括与所述存储器缓冲区相关联的存储器位置标识符;以及由所述代理进程从所述硬件nic接收通知消息,所述通知消息指示所述硬件nic已执行dma操作以将所述网络数据包写入到所述主机计算机的所述存储器缓冲区。

7、在另一个示例实施方案中,一种非暂时性计算机可读介质在其上存储有指令,所述指令包括可执行代码,所述可执行代码当由一个或多个处理器执行时致使所述处理器:由在主机计算机上运行的代理进程接收关于网络数据包的元数据,其中关于所述网络数据包的所述元数据是从连接到所述主机计算机的硬件网络接口控制器(nic)接收的;由所述代理进程使用所述元数据识别所述主机计算机的存储器缓冲区;由所述代理进程将直接存储器访问(dma)写入消息发送到所述硬件nic,其中所述dma写入消息包括与所述存储器缓冲区相关联的存储器位置标识符;以及由所述代理进程从所述硬件nic接收通知消息,所述通知消息指示所述硬件nic已执行dma操作以将所述网络数据包写入到所述主机计算机的所述存储器缓冲区。

8、在另一个示例实施方案中,一种网络流量管理设备包括存储器和一个或多个处理器,所述存储器包括在其上存储的编程指令,所述一个或多个处理器被配置为能够执行所存储的编程指令以:由在主机计算机上运行的代理进程接收关于网络数据包的元数据,其中关于所述网络数据包的所述元数据是从连接到所述主机计算机的硬件网络接口控制器(nic)接收的;由所述代理进程使用所述元数据识别所述主机计算机的存储器缓冲区;由所述代理进程将直接存储器访问(dma)写入消息发送到所述硬件nic,其中所述dma写入消息包括与所述存储器缓冲区相关联的存储器位置标识符;以及由所述代理进程从所述硬件nic接收通知消息,所述通知消息指示所述硬件nic已执行dma操作以将所述网络数据包写入到所述主机计算机的所述存储器缓冲区。

9、在另一个示例实施方案中,一种由网络流量管理系统实施的方法包括:由连接到主机计算机的硬件网络接口控制器(nic)接收网络广播数据包;由所述硬件nic向在所述主机计算机上运行的代理进程发送请求以识别所述主机计算机中的应接收所述网络广播数据包的多个存储器位置;由所述硬件nic接收来自所述代理进程的响应,该响应包括与所述多个存储器位置相关联的多个存储器位置标识符;以及由所述硬件nic将所述网络广播数据包写入到所述主机计算机中的与所述多个存储器位置标识符相关联的所述多个存储器位置,其中所述写入包括执行多个直接存储器访问(dma)操作。

10、在另一个示例实施方案中,一种系统包括一个或多个网络流量管理模块、联网模块或服务器模块、包括在其上存储的编程指令的存储器、以及一个或多个处理器,所述一个或多个处理器被配置为能够执行所存储的编程指令以:由连接到主机计算机的硬件网络接口控制器(nic)接收网络广播数据包;由所述硬件nic向在所述主机计算机上运行的代理进程发送请求以识别所述主机计算机中的应接收所述网络广播数据包的多个存储器位置;由所述硬件nic接收来自所述代理进程的响应,所述响应包括与所述多个存储器位置相关联的多个存储器位置标识符;以及由所述硬件nic将所述网络广播数据包写入到所述主机计算机中的与所述多个存储器位置标识符相关联的所述多个存储器位置,其中所述写入包括执行多个直接存储器访问(dma)操作。

11、在另一个示例实施方案中,一种非暂时性计算机可读介质在其上存储有指令,所述指令包括可执行代码,所述可执行代码当由一个或多个处理器执行时致使所述处理器:由连接到主机计算机的硬件网络接口控制器(nic)接收网络广播数据包;由所述硬件nic向在所述主机计算机上运行的代理进程发送请求以识别所述主机计算机中的应接收所述网络广播数据包的多个存储器位置;由所述硬件nic接收来自所述代理进程的响应,所述响应包括与所述多个存储器位置相关联的多个存储器位置标识符;以及由所述硬件nic将所述网络广播数据包写入到所述主机计算机中的与所述多个存储器位置标识符相关联的所述多个存储器位置,其中所述写入包括执行多个直接存储器访问(dma)操作。

12、在另一个示例实施方案中,一种网络流量管理设备包括存储器和一个或多个处理器,所述存储器包括在其上存储的编程指令,所述一个或多个处理器被配置为能够执行所存储的编程指令以:由连接到主机计算机的硬件网络接口控制器(nic)接收网络广播数据包;由所述硬件nic向在所述主机计算机上运行的代理进程发送请求以识别所述主机计算机中的应接收所述网络广播数据包的多个存储器位置;由所述硬件nic接收来自所述代理进程的响应,所述响应包括与所述多个存储器位置相关联的多个存储器位置标识符;以及由所述硬件nic将所述网络广播数据包写入到所述主机计算机中的与所述多个存储器位置标识符相关联的所述多个存储器位置,其中所述写入包括执行多个直接存储器访问(dma)操作。


技术特征:

1.一种由网络流量管理系统实施的方法,所述方法包括:

2.如权利要求1所述的方法,其中:

3.如权利要求2所述的方法,其中:

4.如权利要求2所述的方法,其中:

5.如权利要求1所述的方法,其中:

6.一种系统,其包括一个或多个网络流量管理模块、联网模块或服务器模块、包括在其上存储的编程指令的存储器、以及一个或多个处理器,所述一个或多个处理器被配置为能够执行所存储的编程指令以:

7.如权利要求6所述的系统,其中:

8.如权利要求7所述的系统,其中:

9.如权利要求7所述的系统,其中:

10.如权利要求6所述的系统,其中:

11.一种非暂时性计算机可读介质,其上存储有指令,所述指令包括可执行代码,所述可执行代码当由一个或多个处理器执行时致使所述处理器:

12.如权利要求11所述的非暂时性计算机可读介质,其中:

13.如权利要求12所述的非暂时性计算机可读介质,其中:

14.如权利要求12所述的非暂时性计算机可读介质,其中:

15.如权利要求11所述的非暂时性计算机可读介质,其中:

16.一种网络流量管理设备,其包括存储器和一个或多个处理器,所述存储器包括在其上存储的编程指令,所述一个或多个处理器被配置为能够执行所存储的编程指令以:

17.如权利要求16所述的网络流量管理设备,其中:

18.如权利要求17所述的网络流量管理设备,其中:

19.如权利要求17所述的网络流量管理设备,其中:

20.如权利要求16所述的网络流量管理设备,其中:


技术总结
公开了与广播数据包直接存储器访问(DMA)操作相关的技术。当连接到主机计算机的网络接口控制器(NIC)接收到广播数据包时,它可以向在主机计算机上运行的代理进程发送对多个目的地缓冲区的请求。在一些实施方案中,向代理的请求包括数据包的全部或部分,或者有关数据包的元数据。在这样的实施方案中,代理可以使用请求的内容来识别应接收数据包的服务。替代地,NIC可以识别目的地服务并且可以将目的地服务的标识符发送给代理。代理可以向服务发送对存储器缓冲区的请求,并且可以作为响应接收存储器位置标识符。代理可以将标识符发送到NIC,所述NIC可以执行多个DMA操作以将广播数据包写入到所识别的存储器位置。

技术研发人员:蔡皓,蒂莫西·S·米歇尔,丹尼尔·J·麦克德莫特,戴维·瑞恩
受保护的技术使用者:F5 公司
技术研发日:
技术公布日:2024/12/5

最新回复(0)