CN114237928A - 容器间通信方法及装置、电子设备、计算机可读存储介质 - Google Patents

容器间通信方法及装置、电子设备、计算机可读存储介质 Download PDF

Info

Publication number
CN114237928A
CN114237928A CN202111438947.7A CN202111438947A CN114237928A CN 114237928 A CN114237928 A CN 114237928A CN 202111438947 A CN202111438947 A CN 202111438947A CN 114237928 A CN114237928 A CN 114237928A
Authority
CN
China
Prior art keywords
port
container
address
data packet
destination
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.)
Pending
Application number
CN202111438947.7A
Other languages
English (en)
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.)
BEIJING ZHONGFU TAIHE TECHNOLOGY DEVELOPMENT CO LTD
Nanjing Zhongfu Information Technology Co Ltd
Zhongfu Information Co Ltd
Zhongfu Safety Technology Co Ltd
Original Assignee
BEIJING ZHONGFU TAIHE TECHNOLOGY DEVELOPMENT CO LTD
Nanjing Zhongfu Information Technology Co Ltd
Zhongfu Information Co Ltd
Zhongfu Safety Technology 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 BEIJING ZHONGFU TAIHE TECHNOLOGY DEVELOPMENT CO LTD, Nanjing Zhongfu Information Technology Co Ltd, Zhongfu Information Co Ltd, Zhongfu Safety Technology Co Ltd filed Critical BEIJING ZHONGFU TAIHE TECHNOLOGY DEVELOPMENT CO LTD
Priority to CN202111438947.7A priority Critical patent/CN114237928A/zh
Publication of CN114237928A publication Critical patent/CN114237928A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种容器间通信方法及装置、电子设备、计算机可读存储介质,涉及通信技术领域,该方法应用于安装在宿主机上的虚拟设备,宿主机内创建有分别与虚拟设备连接的多个容器,该方法包括:当接收到第一容器发送的数据包时,根据预先建立的端口IP对照表,确定与数据包对应的目的端口;将数据包发送至与目的端口对应的第二容器。对于同一宿主机中第一容器和第二容器间的通信,只需要查找预先建立的端口IP对照表,即可将第一容器发出的数据包转发至第二容器,与通过内核查找路由表的容器间通信方式相比,缩短了判断逻辑,减少了内核运行,因此提高了转发速度和转发效率,从而提高了容器间的数据传输效率。

Description

容器间通信方法及装置、电子设备、计算机可读存储介质
技术领域
本发明涉及通信技术领域,尤其是涉及一种容器间通信方法及装置、电子设备、计算机可读存储介质。
背景技术
容器技术指有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求的技术。容器是与操作系统其他部分隔离开的一个或一组进程,包括Docker容器;同一台宿主机上的不同容器在同一个子网内。VPP(VectorPacket Processing,矢量数据包处理)平台是一个可扩展的框架,可提供开箱即用的生产质量交换机/路由器功能;VPP平台是矢量数据包处理技术的开源版本,是一种高性能的数据包处理堆栈。
目前基于VPP平台的Docker容器间通信方法如下:在安装有VPP平台的宿主机上创建容器1和容器2后,当容器1产生访问容器2的数据包时,该数据包先传输至VPP平台,VPP平台通过内核查找路由表,确定下一跳的IP地址,并将数据包转发至与该下一跳的IP地址对应的目的端口,从而将数据包从该目的端口传输到容器2,如此实现了Docker容器间通信。其中,路由表是一种存储在路由器或者联网计算机中的电子表格(文件)或者类数据库,路由表存储着指向特定网络地址的路径。由于在传输数据包过程中,VPP平台需要通过内核查找路由表,因此这种容器间通信方法存在转发速度慢,转发效率低的问题,导致容器间的数据传输效率较低。
发明内容
本发明的目的在于提供一种容器间通信方法及装置、电子设备、计算机可读存储介质,以提高转发速度和转发效率,从而提高容器间的数据传输效率。
第一方面,本发明实施例提供了一种容器间通信方法,应用于安装在宿主机上的虚拟设备,所述宿主机内创建有分别与所述虚拟设备连接的多个容器,所述方法包括:
当接收到第一容器发送的数据包时,根据预先建立的端口IP对照表,确定与所述数据包对应的目的端口;
将所述数据包发送至与所述目的端口对应的第二容器。
进一步地,所述根据预先建立的端口IP对照表,确定与所述数据包对应的目的端口,包括:
从所述数据包中解析得到目的IP地址;
根据所述目的IP地址和所述端口IP对照表,确定与所述数据包对应的目的端口。
进一步地,所述端口IP对照表为端口哈希对照表,所述根据所述目的IP地址和所述端口IP对照表,确定与所述数据包对应的目的端口,包括:
根据预设的哈希算法,对所述目的IP地址进行哈希计算,得到哈希值;
在所述端口哈希对照表中,查找得到与所述哈希值对应的目的端口的端口号。
进一步地,所述将所述数据包发送至与所述目的端口对应的第二容器,包括:
确定与所述目的端口的端口号对应的收发队列;
通过将所述数据包添加到所述收发队列的发送队列中,将所述数据包发送至所述收发队列对应的第二容器。
进一步地,在根据预先建立的端口IP对照表,确定与所述数据包对应的目的端口之前,所述方法还包括:
当生成与所述第一容器对应的第一端口时,将所述第一端口的IP地址配置成与所述第一容器的IP地址相同,并根据所述第一端口的端口号和IP地址,更新当前的端口IP对照表;
当生成与所述第二容器对应的第二端口时,将所述第二端口的IP地址配置成与所述第二容器的IP地址相同,并根据所述第二端口的端口号和IP地址,更新当前的端口IP对照表。
第二方面,本发明实施例还提供了一种容器间通信装置,应用于安装在宿主机上的虚拟设备,所述宿主机内创建有分别与所述虚拟设备连接的多个容器,所述装置包括:
确定模块,用于当接收到第一容器发送的数据包时,根据预先建立的端口IP对照表,确定与所述数据包对应的目的端口;
发送模块,用于将所述数据包发送至与所述目的端口对应的第二容器。
进一步地,所述确定模块具体用于:
从所述数据包中解析得到目的IP地址;
根据所述目的IP地址和所述端口IP对照表,确定与所述数据包对应的目的端口。
进一步地,所述装置还包括更新模块,所述更新模块用于:
当生成与所述第一容器对应的第一端口时,将所述第一端口的IP地址配置成与所述第一容器的IP地址相同,并根据所述第一端口的端口号和IP地址,更新当前的端口IP对照表;
当生成与所述第二容器对应的第二端口时,将所述第二端口的IP地址配置成与所述第二容器的IP地址相同,并根据所述第二端口的端口号和IP地址,更新当前的端口IP对照表。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行第一方面所述方法。
本发明实施例提供的容器间通信方法及装置、电子设备、计算机可读存储介质中,该方法应用于安装在宿主机上的虚拟设备,宿主机内创建有分别与虚拟设备连接的多个容器,该方法包括:当接收到第一容器发送的数据包时,根据预先建立的端口IP对照表,确定与数据包对应的目的端口;将数据包发送至与目的端口对应的第二容器。对于同一宿主机中第一容器和第二容器间的通信,只需要查找预先建立的端口IP对照表,即可将第一容器发出的数据包转发至第二容器,与通过内核查找路由表的容器间通信方式相比,缩短了判断逻辑,减少了内核运行,因此提高了转发速度和转发效率,从而提高了容器间的数据传输效率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种容器间通信方法的流程示意图;
图2为本发明实施例提供的一种容器间通信方法的原理示意图;
图3为本发明实施例提供的另一种容器间通信方法的流程示意图;
图4为本发明实施例提供的一种容器间通信装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前基于VPP平台的Docker容器间通信方法,存在转发速度慢,转发效率低的问题,基于此,本发明实施例提供的一种容器间通信方法及装置、电子设备、计算机可读存储介质,可以提高转发速度和转发效率,从而提高容器间的数据传输效率。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种容器间通信方法进行详细介绍。
本发明实施例提供了一种容器间通信方法,该方法应用于安装在宿主机上的虚拟设备,也即该方法由该虚拟设备执行,宿主机内创建有分别与虚拟设备连接的多个容器。宿主机内的容器可以但不限于为Docker容器,虚拟设备可以但不限于为VPP平台。参见图1所示的一种容器间通信方法的流程示意图,该方法主要包括如下步骤S102~步骤S104:
步骤S102,当接收到第一容器发送的数据包时,根据预先建立的端口IP对照表,确定与数据包对应的目的端口。
数据包是TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)通信传输中的数据单位,数据包中携带有目的IP地址,可以先从数据包中解析得到目的IP地址,然后根据目的IP地址和端口IP对照表,确定与数据包对应的目的端口。这里的目的端口可以采用虚拟网卡形式。当在端口IP对照表中未查找到目的端口时,可以通过内核查找路由表,来确定目的端口。
在一种可能的实现方式中,考虑到目的IP地址较长,为了方便查找,上述端口IP对照表为端口哈希对照表,基于此,可以通过如下过程确定与数据包对应的目的端口:根据预设的哈希算法,对目的IP地址进行哈希计算,得到哈希值;在端口哈希对照表中,查找得到与哈希值对应的目的端口的端口号。上述哈希算法可以根据实际需求选择,这里不做限定。这样通过将较长的目的IP地址转换为一个哈希值,基于该哈希值从端口哈希对照表中查找对应目的端口的端口号,实现了目的端口的快速查找。
步骤S104,将数据包发送至与目的端口对应的第二容器。
在一些可能的实施例中,可以先确定与目的端口的端口号对应的收发队列,然后通过将数据包添加到收发队列的发送队列中,将数据包发送至收发队列对应的第二容器。
本发明实施例提供的容器间通信方法,对于同一宿主机中第一容器和第二容器间的通信,只需要查找预先建立的端口IP对照表,即可将第一容器发出的数据包转发至第二容器,与通过内核查找路由表的容器间通信方式相比,缩短了判断逻辑,减少了内核运行,因此提高了转发速度和转发效率,从而提高了容器间的数据传输效率。
为了便于理解,本发明实施例还提供了上述端口IP对照表的更新过程,具体如下:虚拟设备通过第一端口与第一容器通信,通过第二端口与第二容器通信;虚拟设备当生成与第一容器对应的第一端口时,将第一端口的IP地址配置成与第一容器的IP地址相同,并根据第一端口的端口号和IP地址,更新当前的端口IP对照表;当生成与第二容器对应的第二端口时,将第二端口的IP地址配置成与第二容器的IP地址相同,并根据第二端口的端口号和IP地址,更新当前的端口IP对照表。
为了便于理解,下面参照图2,以容器为Docker容器,虚拟设备为VPP平台,端口为虚拟网卡,端口IP对照表为端口哈希对照表为例,对上述容器间通信方法的原理进行详细介绍:
1、使用桥接模式,在宿主机内创建容器C、容器D。
可以通过命令行创建容器C和容器D,创建完成后会自动产生用于宿主机与容器以及容器间的通信的虚拟网卡A、虚拟网卡B、虚拟网卡C和虚拟网卡D,其中虚拟网卡A、虚拟网卡B位于宿主机内,虚拟网卡C和虚拟网卡D分别位于容器C和容器D内。
其中,桥接模式是docker默认的网络模式;在这种模式下,docker为容器创建独立的网络栈,保证容器内的进程使用独立的网络环境,实现容器之间、容器与宿主机之间的网络栈隔离。
2、在宿主机内安装编译好的VPP平台,启动VPP平台,初始化创建用于关联IP地址和端口(即虚拟网卡)的端口哈希对照表。
3、通过命令行的方式,将容器C、容器D在宿主机内生成的虚拟网卡A和虚拟网卡B添加到VPP平台中。由此VPP平台生成2个端口(即虚拟网卡A和虚拟网卡B)。
4、对第3步产生的2个端口通过命令行配置IP地址,其中,虚拟网卡A的IP地址与虚拟网卡C的IP地址相同,虚拟网卡B的IP地址与虚拟网卡D的IP地址相同。
这样虚拟网卡A与虚拟网卡C之间可以通过收发队列1进行数据传输,虚拟网卡B与虚拟网卡D之间可以通过收发队列2进行数据传输,实现了VPP平台分别与容器C和容器D的通信连接。
5、将虚拟网卡A的端口号和IP地址以及虚拟网卡B的端口号和IP地址等信息,添加到端口哈希对照表中。
为了便于理解,参照图2所示的容器间通信方法的原理示意图,本发明实施例还提供的另一种容器间通信方法,如图3所示,容器C使用虚拟网卡C传输数据包到容器D的过程如下:
步骤S302,容器C的虚拟网卡C发送数据包至VPP平台。
数据包中的目的IP地址为虚拟网卡D的IP地址,即数据包的目的地为容器D的虚拟网卡D。
步骤S304,VPP平台的虚拟网卡A接收数据包。
步骤S306,VPP平台获取数据包的目的IP地址。
步骤S308,VPP平台依据目的IP地址计算哈希值。
步骤S310,VPP平台通过哈希值和端口哈希对照表,确定目的端口为虚拟网卡B。
步骤S312,VPP平台通过虚拟网卡B获取对应的收发队列2。
步骤S314,VPP平台将数据包添加到收发队列2的发送队列中。
步骤S316,虚拟网卡B驱动将数据包发送出去。
步骤S318,容器D通过虚拟网卡D的接收队列获取数据包。
如此完成了数据包的完整传输过程。
这样在VPP平台中进行宿主机内容器的数据包过滤,满足相同宿主机并接入VPP平台的数据包,通过端口哈希对照表可以直接确定相应的虚拟网卡,进而直接将这部分流量转发到相应的虚拟网卡的发送队列上,无需通过内核进行路由表查找,缩短了判断逻辑,减少了内核运行,从而提高了转发流量速度和转发效率,大大提高了数据传输效率。
对应于上述的容器间通信方法,本发明实施例还提供了一种容器间通信装置,该装置应用于安装在宿主机上的虚拟设备,宿主机内创建有分别与虚拟设备连接的多个容器。参见图4所示的一种容器间通信装置的结构示意图,该装置包括:
确定模块42,用于当接收到第一容器发送的数据包时,根据预先建立的端口IP对照表,确定与数据包对应的目的端口;
发送模块44,用于将数据包发送至与目的端口对应的第二容器。
本发明实施例提供的容器间通信装置,对于同一宿主机中第一容器和第二容器间的通信,只需要查找预先建立的端口IP对照表,即可将第一容器发出的数据包转发至第二容器,与通过内核查找路由表的容器间通信方式相比,缩短了判断逻辑,减少了内核运行,因此提高了转发速度和转发效率,从而提高了容器间的数据传输效率。
进一步地,上述确定模块42具体用于:从数据包中解析得到目的IP地址;根据目的IP地址和端口IP对照表,确定与数据包对应的目的端口。
进一步地,上述端口IP对照表为端口哈希对照表,上述确定模块42还用于:根据预设的哈希算法,对目的IP地址进行哈希计算,得到哈希值;在端口哈希对照表中,查找得到与哈希值对应的目的端口的端口号。
进一步地,上述发送模块44具体用于:确定与目的端口的端口号对应的收发队列;通过将数据包添加到收发队列的发送队列中,将数据包发送至收发队列对应的第二容器。
进一步地,上述装置还包括与确定模块42连接的更新模块,更新模块用于:当生成与第一容器对应的第一端口时,将第一端口的IP地址配置成与第一容器的IP地址相同,并根据第一端口的端口号和IP地址,更新当前的端口IP对照表;当生成与第二容器对应的第二端口时,将第二端口的IP地址配置成与第二容器的IP地址相同,并根据第二端口的端口号和IP地址,更新当前的端口IP对照表。
本实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
参见图5,本发明实施例还提供一种电子设备100,包括:处理器50,存储器51,总线52和通信接口53,所述处理器50、通信接口53和存储器51通过总线52连接;处理器50用于执行存储器51中存储的可执行模块,例如计算机程序。
其中,存储器51可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory,简称NVM),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线52可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器51用于存储程序,所述处理器50在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的装置所执行的方法可以应用于处理器50中,或者由处理器50实现。
处理器50可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器50中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器50可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器51,处理器50读取存储器51中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前面方法实施例中所述的容器间通信方法。该计算机可读存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
附图中的流程图和框图显示了根据本发明的多个实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种容器间通信方法,其特征在于,应用于安装在宿主机上的虚拟设备,所述宿主机内创建有分别与所述虚拟设备连接的多个容器,所述方法包括:
当接收到第一容器发送的数据包时,根据预先建立的端口IP对照表,确定与所述数据包对应的目的端口;
将所述数据包发送至与所述目的端口对应的第二容器。
2.根据权利要求1所述的容器间通信方法,其特征在于,所述根据预先建立的端口IP对照表,确定与所述数据包对应的目的端口,包括:
从所述数据包中解析得到目的IP地址;
根据所述目的IP地址和所述端口IP对照表,确定与所述数据包对应的目的端口。
3.根据权利要求2所述的容器间通信方法,其特征在于,所述端口IP对照表为端口哈希对照表,所述根据所述目的IP地址和所述端口IP对照表,确定与所述数据包对应的目的端口,包括:
根据预设的哈希算法,对所述目的IP地址进行哈希计算,得到哈希值;
在所述端口哈希对照表中,查找得到与所述哈希值对应的目的端口的端口号。
4.根据权利要求1所述的容器间通信方法,其特征在于,所述将所述数据包发送至与所述目的端口对应的第二容器,包括:
确定与所述目的端口的端口号对应的收发队列;
通过将所述数据包添加到所述收发队列的发送队列中,将所述数据包发送至所述收发队列对应的第二容器。
5.根据权利要求1所述的容器间通信方法,其特征在于,在根据预先建立的端口IP对照表,确定与所述数据包对应的目的端口之前,所述方法还包括:
当生成与所述第一容器对应的第一端口时,将所述第一端口的IP地址配置成与所述第一容器的IP地址相同,并根据所述第一端口的端口号和IP地址,更新当前的端口IP对照表;
当生成与所述第二容器对应的第二端口时,将所述第二端口的IP地址配置成与所述第二容器的IP地址相同,并根据所述第二端口的端口号和IP地址,更新当前的端口IP对照表。
6.一种容器间通信装置,其特征在于,应用于安装在宿主机上的虚拟设备,所述宿主机内创建有分别与所述虚拟设备连接的多个容器,所述装置包括:
确定模块,用于当接收到第一容器发送的数据包时,根据预先建立的端口IP对照表,确定与所述数据包对应的目的端口;
发送模块,用于将所述数据包发送至与所述目的端口对应的第二容器。
7.根据权利要求6所述的容器间通信装置,其特征在于,所述确定模块具体用于:
从所述数据包中解析得到目的IP地址;
根据所述目的IP地址和所述端口IP对照表,确定与所述数据包对应的目的端口。
8.根据权利要求6所述的容器间通信装置,其特征在于,所述装置还包括更新模块,所述更新模块用于:
当生成与所述第一容器对应的第一端口时,将所述第一端口的IP地址配置成与所述第一容器的IP地址相同,并根据所述第一端口的端口号和IP地址,更新当前的端口IP对照表;
当生成与所述第二容器对应的第二端口时,将所述第二端口的IP地址配置成与所述第二容器的IP地址相同,并根据所述第二端口的端口号和IP地址,更新当前的端口IP对照表。
9.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-5中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1-5中任一项所述的方法。
CN202111438947.7A 2021-11-29 2021-11-29 容器间通信方法及装置、电子设备、计算机可读存储介质 Pending CN114237928A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111438947.7A CN114237928A (zh) 2021-11-29 2021-11-29 容器间通信方法及装置、电子设备、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111438947.7A CN114237928A (zh) 2021-11-29 2021-11-29 容器间通信方法及装置、电子设备、计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN114237928A true CN114237928A (zh) 2022-03-25

Family

ID=80751995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111438947.7A Pending CN114237928A (zh) 2021-11-29 2021-11-29 容器间通信方法及装置、电子设备、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN114237928A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114978610A (zh) * 2022-04-29 2022-08-30 北京火山引擎科技有限公司 一种流量传输控制方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114978610A (zh) * 2022-04-29 2022-08-30 北京火山引擎科技有限公司 一种流量传输控制方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN107278359B (zh) 云计算系统中报文处理的方法、主机和系统
CN109074330B (zh) 网络接口卡、计算设备以及数据包处理方法
US8774055B2 (en) Switching method
US20130346585A1 (en) Network system, and policy route setting method
WO2015019530A1 (en) Switch clusters having layer-3 distributed router functionality
EP3863240A1 (en) Method for forwarding packet in hybrid network, device, and system
CN107113241B (zh) 路由确定方法、网络配置方法以及相关装置
JP7481436B2 (ja) Srネットワークでパケットを転送する方法、デバイス、及びシステム
CN112243046B (zh) 通信方法和网卡
US10673750B2 (en) System and method for virtualized receive descriptors
CN112260848B (zh) 虚拟网络功能的配置方法和装置
CN106921578B (zh) 一种转发表项的生成方法和装置
CN111770035B (zh) Mac地址表更新方法、装置、报文发送方法及电子设备
WO2017032112A1 (zh) 一种与无中央处理器单板通讯的方法及通讯设备
US10621124B2 (en) Method, device and computer program product for enabling SR-IOV functions in endpoint device
CN115426312B (zh) 一种大规模多模态网络中标识管理及优化转发方法和装置
CN113472624A (zh) 一种基于vDPA实现虚拟网络数据包转发的方法及应用
CN115102896B (zh) 数据广播方法、广播加速器、noc、soc及电子设备
CN114237928A (zh) 容器间通信方法及装置、电子设备、计算机可读存储介质
CN114756332A (zh) 基于虚拟机设备直通的数据访问方法、设备以及系统
US20240022501A1 (en) Data Packet Sending Method and Device
CN109698845B (zh) 数据传输的方法、服务器、卸载卡及存储介质
CN108306757B (zh) 可编程数据平面虚拟层构建方法及存储介质
CN112131146B (zh) 获取设备信息的方法、装置、存储介质及电子设备
US10523457B2 (en) Network communication method, system and controller of PCIe and Ethernet hybrid networks

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