CN116319659A - 一种负载均衡设备中地址解析方法、系统及设备 - Google Patents

一种负载均衡设备中地址解析方法、系统及设备 Download PDF

Info

Publication number
CN116319659A
CN116319659A CN202310197318.2A CN202310197318A CN116319659A CN 116319659 A CN116319659 A CN 116319659A CN 202310197318 A CN202310197318 A CN 202310197318A CN 116319659 A CN116319659 A CN 116319659A
Authority
CN
China
Prior art keywords
message
arp
address
load balancing
memory
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
CN202310197318.2A
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.)
Shanghai Hongji Information Technology Co Ltd
Original Assignee
Shanghai Hongji Information 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 Shanghai Hongji Information Technology Co Ltd filed Critical Shanghai Hongji Information Technology Co Ltd
Priority to CN202310197318.2A priority Critical patent/CN116319659A/zh
Publication of CN116319659A publication Critical patent/CN116319659A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种负载均衡设备中地址解析方法、系统及设备,该方法包括:将网卡中的报文通过DMA‑COPY技术直接映射到用户空间内存中;所述用户空间内存为虚拟内存;利用负载均衡应用程序创建ARP表;利用所述负载均衡应用程序对所述用户控件内存中的报文进行解析,生成地址解析结果;所述负载均衡应用程序为用户态程序;将所述地址解析结果存放至由所述负载均衡应用程序创建的ARP表中。本发明提高了设备的性能以及可靠性。

Description

一种负载均衡设备中地址解析方法、系统及设备
技术领域
本发明涉及地址解析领域,特别是涉及一种负载均衡设备中地址解析方法、系统及设备。
背景技术
负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站,应用数据库等服务的应用性和可靠性。负载均衡设备在对服务器进行连接时需要对设备中断进行地址解析,以获取服务器的MAC地址。
地址解析是通过IP地址解析出物理地址的协议,主机发送请求将ARP请求广播到本地局域网,终端收到广播消息通过发送ARP响应报文将自己的物理地址返回给发送的主机,主机将IP和MAC地址存入到本地的ARP表中并保存一段时间,下次请求时直接查询ARP表。
通常的网络设备对ARP协议的解析流程是首先网卡驱动收到ARP报文然后交给Linux内核模块进行处理,传统的Linux内核网络协议栈具有较强的通用性和开源性,所以应用较多,但因为内核的中断和用户空间和内核空间切换产生的内存拷贝会导致网络处理存在着性能瓶颈,往往负载均衡设备对网络流量的性能具有比较高的要求,所以一种负载均衡设备中地址解析的实现方法成为一个亟待解决的问题。
图1为现有的地址解析方法框图,如图1所示,首先网卡收到报文产生硬中断,驱动再将报文交到内核,内核对报文进行处理,将解析出来的IP和MAC地址放到内核的ARP表中。因此,一般的报文处理是网卡接收到报文产生中断,之后网卡调用DMA接口将数据传输到内核空间的主存中,如果用户态程序需要进一步处理报文需要再将内核态的内存再复制到用户空间中,拷贝内存会产生中断,中断会影响CPU性能;ARP表存放在内核中必须向内核发送请求才能修改ARP表,ioctl为同步操作需要等待内核返回消息(影响性能)并有消息丢失的可能(不可靠)。可见,现有的采用内核对报文进行处理时,在对性能要求较高的场景下,内核进行地址解析,处理报文因为有中断和用户空间内核空间切换增加了内存拷贝次数,有性能瓶颈;用户不能直接修改内核的ARP表,需要先向内核发送消息然后交给内核处理,具有一定的时延。
发明内容
本发明的目的是提供一种负载均衡设备中地址解析方法、系统及设备,以解决现有的采用内核对报文进行处理的方式性能差以及存在时延的问题。
为实现上述目的,本发明提供了如下方案:
一种负载均衡设备中地址解析方法,包括:
将网卡中的报文通过DMA-COPY技术直接映射到用户空间内存中;所述用户空间内存为虚拟内存;
利用负载均衡应用程序创建ARP表;
利用所述负载均衡应用程序对所述用户控件内存中的报文进行解析,生成地址解析结果;所述负载均衡应用程序为用户态程序;
将所述地址解析结果存放至由所述负载均衡应用程序创建的ARP表中。
可选的,将网卡中的报文通过DMA-COPY技术映射到用户空间内存中,具体包括:
对网卡中的内核驱动代码进行修改,删除驱动中对收发报文时的中断函数,将收发包的函数移植到用户态程序;
对所述用户态程序初始化时,从所述内核中申请连续的大页内存,并代替所述内核管理所述大页内存;
当所述网卡接收到所述报文时,利用I/O设备通过DMA接口将所述报文拷贝到内核空间的一段所述大页内存中,使得所述用户态程序能够访问拷贝到所述大页内存的报文;
基于所述报文,使用内存映射函数将所述大页内存的物理地址映射为用户可操作的虚拟地址,存储至所述用户空间内存中,使得所述用户态程序能够操作具有报文的大页内存,对所述报文中的内容进行操作。
可选的,利用负载均衡应用程序创建ARP表,具体包括:
判断所述报文是否为ARP报文,得到第一判断结果;
若所述第一判断结果为所述报文是ARP报文,检查所述ARP表是否已初始化,得到第二判断结果;
若所述第二判断结果表示为所述ARP表已初始化,利用负载均衡应用程序创建ARP表;
若所述第二判断结果表示为所述ARP表未初始化,在申请的所述大页内存中创建ARP表;
若所述第一判断结果为所述报文不是ARP报文,不创建ARP表。
可选的,利用所述负载均衡应用程序对所述用户控件内存中的报文进行解析,生成地址解析结果,具体包括:
判断所述ARP报文的类型;
若所述ARP报文的类型为ARP请求报文,解析出所述ARP请求报文中发送方IP地址和MAC地址,并在所述ARP表中查找所述发送方IP地址和MAC地址的对应表项;
若所述ARP表中没有所述对应表项,添加所述发送方IP地址和MAC地址的对应表项;
若所述ARP表中有相同MAC地址但不同的IP地址,更新所述ARP表中IP地址的对应表项,并向对端发送ARP响应报文;
若所述ARP报文的类型为ARP响应报文,解析出所述ARP响应报文中发送方IP和MAC地址,将IP-MAC表项添加到ARP表;所述IP-MAC表项为所述ARP响应报文中发送方IP和MAC地址的对应表项。
一种负载均衡设备中地址解析系统,包括:
映射模块,用于将网卡中的报文通过DMA-COPY技术直接映射到用户空间内存中;所述用户空间内存为虚拟内存;
ARP表创建模块,用于利用负载均衡应用程序创建ARP表;
解析模块,用于利用所述负载均衡应用程序对所述用户控件内存中的报文进行解析,生成地址解析结果;所述负载均衡应用程序为用户态程序;
存放模块,用于将所述地址解析结果存放至由所述负载均衡应用程序创建的ARP表中。
可选的,所述映射模块具体包括:
移植单元,用于对网卡中的内核驱动代码进行修改,删除驱动中对收发报文时的中断函数,将收发包的函数移植到用户态程序;
大页内存申请单元,用于对所述用户态程序初始化时,从所述内核中申请连续的大页内存,并代替所述内核管理所述大页内存;
拷贝单元,用于当所述网卡接收到所述报文时,利用I/O设备通过DMA接口将所述报文拷贝到内核空间的一段所述大页内存中,使得所述用户态程序能够访问拷贝到所述大页内存的报文;
映射单元,用于基于所述报文,使用内存映射函数将所述大页内存的物理地址映射为用户可操作的虚拟地址,存储至所述用户空间内存中,使得所述用户态程序能够操作具有报文的大页内存,对所述报文中的内容进行操作。
可选的,所述ARP表创建模块具体包括:
第一判断单元,用于判断所述报文是否为ARP报文,得到第一判断结果;
第二判断单元,用于若所述第一判断结果为所述报文是ARP报文,检查所述ARP表是否已初始化,得到第二判断结果;
ARP表第一创建单元,用于若所述第二判断结果表示为所述ARP表已初始化,利用负载均衡应用程序创建ARP表;
ARP表第二创建单元,用于若所述第二判断结果表示为所述ARP表未初始化,在申请的所述大页内存中创建ARP表;
ARP表不创建单元,用于若所述第一判断结果为所述报文不是ARP报文,不创建ARP表。
可选的,所述解析模块具体包括:
类型判断单元,用于判断所述ARP报文的类型;
对应表项查找单元,用于若所述ARP报文的类型为ARP请求报文,解析出所述ARP请求报文中发送方IP地址和MAC地址,并在所述ARP表中查找所述发送方IP地址和MAC地址的对应表项;
对应表项添加单元,用于若所述ARP表中没有所述对应表项,添加所述发送方IP地址和MAC地址的对应表项;
对应表项更新单元,用于若所述ARP表中有相同MAC地址但不同的IP地址,更新所述ARP表中IP地址的对应表项,并向对端发送ARP响应报文;
ARP表更新单元,用于若所述ARP报文的类型为ARP响应报文,解析出所述ARP响应报文中发送方IP和MAC地址,将IP-MAC表项添加到ARP表;所述IP-MAC表项为所述ARP响应报文中发送方IP和MAC地址的对应表项。
一种电子设备,包括存储器及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述任一项所述的负载均衡设备中地址解析方法。
一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的负载均衡设备中地址解析方法。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供了一种负载均衡设备中地址解析方法、系统及设备,利用存储器直接访问(Direct MemoryAccess,DMA)-零拷贝(COPY)技术,使得报文通过内存映射至虚拟内存中,绕过内核处理,利用负载均衡应用程序直接对报文进行协议解析,将地址解析结果保存在负载均衡应用程序创建的ARP表中。本发明绕过内核在用户空间内存进行地址解析的方法,提高了设备的性能以及可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有的地址解析方法框图;
图2为本发明所提供的负载均衡设备中地址解析方法框图。
图3为本发明所提供的负载均衡设备中地址解析方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种负载均衡设备中地址解析方法、系统及设备,能够提高设备的性能以及可靠性。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
图2为本发明所提供的负载均衡设备中地址解析方法框图,如图2所示,其中,本发明用到的DMA-COPY技术为映射以及零拷贝技术,对地址解析协议(Address ResolutionProtocol,ARP)的请求和响应不再通过内核中的模块进行解析,而是将网卡中的报文通过DMA-COPY(DMA零拷贝技术)映射到用户空间内存由负载均衡应用程序对报文进行解析,处理结果放到负载均衡应用程序创建的ARP表中。
如图3所示,本发明提供了一种负载均衡设备中地址解析方法,包括:
步骤301:将网卡中的报文通过DMA-COPY技术直接映射到用户空间内存中;所述用户空间内存为虚拟内存。
在实际应用中,DMA-COPY技术具体包括如下步骤:1)对网卡中的内核驱动代码进行修改,删除驱动中对收发报文时的中断函数,将收发包的函数移植到用户态程序。
2)用户态程序初始化时,从内核中申请连续的大页内存,并代替内核管理这块内存。
3)网卡接收到ARP报文时,I/O设备通过DMA接口将报文拷贝到内核空间的一段内存中,由于步骤2用户态对该段内存进行了管理,所以用户态可以访问这段内存的数据。
4)使用内存映射函数mmap将大页内存的物理地址映射为用户可操作的虚拟地址,使得用户态可以操作这段内存,对报文中的内容进行操作。
步骤302:利用负载均衡应用程序创建ARP表。
步骤303:利用所述负载均衡应用程序对所述用户控件内存中的报文进行解析,生成地址解析结果;所述负载均衡应用程序为用户态程序。
在实际应用中,解析过程具体包括如下步骤:1)对端发送ARP响应/ARP请求。
2)用户态程序,基于前面介绍的内存映射和DMA的步骤报文内容已映射到虚拟内存,所以用户态可以直接对报文处理,首先判断报文是否是ARP报文。
3)如果是ARP报文则进一步处理,检查ARP表是否初始化,若未初始化则在申请的大页内存中创建ARP表。
4)判断ARP报文的类型,若为ARP请求报文,首先解析出ARP报文中发送方IP和MAC地址,并在ARP表中查找对应表项,没有则添加,有相同mac但是不同IP则更新对应的表项,再发送ARP响应报文给对端;若为ARP响应报文,解析出报文中发送方IP和MAC地址,将IP-MAC表项添加到ARP表。
5)报文处理完毕,释放内存。
步骤304:将所述地址解析结果存放至由所述负载均衡应用程序创建的ARP表中。
本发明消除了内核态收包触发大量内核中断以及报文到用户态拷贝消耗大量CPU性能从而提高了在高并发流量下地址解析的性能。
本发明通过用户态直接管理ARP表,不使用ioctl向内核发消息的方式更新内核ARP表从而使得更新ARP表流程更简洁,避免消息传输所造成的错误影响ARP表更新。
实施例二
为了执行上述实施例一对应的方法,以实现相应的功能和技术效果,下面提供一种负载均衡设备中地址解析系统。
一种负载均衡设备中地址解析系统,包括:
映射模块,用于将网卡中的报文通过DMA-COPY技术直接映射到用户空间内存中;所述用户空间内存为虚拟内存。
在实际应用中,所述映射模块具体包括:移植单元,用于对网卡中的内核驱动代码进行修改,删除驱动中对收发报文时的中断函数,将收发包的函数移植到用户态程序;大页内存申请单元,用于对所述用户态程序初始化时,从所述内核中申请连续的大页内存,并代替所述内核管理所述大页内存;拷贝单元,用于当所述网卡接收到所述报文时,利用I/O设备通过DMA接口将所述报文拷贝到内核空间的一段所述大页内存中,使得所述用户态程序能够访问拷贝到所述大页内存的报文;映射单元,用于基于所述报文,使用内存映射函数将所述大页内存的物理地址映射为用户可操作的虚拟地址,存储至所述用户空间内存中,使得所述用户态程序能够操作具有报文的大页内存,对所述报文中的内容进行操作。
ARP表创建模块,用于利用负载均衡应用程序创建ARP表。
在实际应用中,所述ARP表创建模块具体包括:第一判断单元,用于判断所述报文是否为ARP报文,得到第一判断结果;第二判断单元,用于若所述第一判断结果为所述报文是ARP报文,检查所述ARP表是否已初始化,得到第二判断结果;ARP表第一创建单元,用于若所述第二判断结果表示为所述ARP表已初始化,利用负载均衡应用程序创建ARP表;ARP表第二创建单元,用于若所述第二判断结果表示为所述ARP表未初始化,在申请的所述大页内存中创建ARP表;ARP表不创建单元,用于若所述第一判断结果为所述报文不是ARP报文,不创建ARP表。
解析模块,用于利用所述负载均衡应用程序对所述用户控件内存中的报文进行解析,生成地址解析结果;所述负载均衡应用程序为用户态程序。
在实际应用中,所述解析模块具体包括:类型判断单元,用于判断所述ARP报文的类型;对应表项查找单元,用于若所述ARP报文的类型为ARP请求报文,解析出所述ARP请求报文中发送方IP地址和MAC地址,并在所述ARP表中查找所述发送方IP地址和MAC地址的对应表项;对应表项添加单元,用于若所述ARP表中没有所述对应表项,添加所述发送方IP地址和MAC地址的对应表项;对应表项更新单元,用于若所述ARP表中有相同MAC地址但不同的IP地址,更新所述ARP表中IP地址的对应表项,并向对端发送ARP响应报文;ARP表更新单元,用于若所述ARP报文的类型为ARP响应报文,解析出所述ARP响应报文中发送方IP和MAC地址,将IP-MAC表项添加到ARP表;所述IP-MAC表项为所述ARP响应报文中发送方IP和MAC地址的对应表项。
存放模块,用于将所述地址解析结果存放至由所述负载均衡应用程序创建的ARP表中。
实施例三
本发明实施例提供一种电子设备包括存储器及处理器,该存储器用于存储计算机程序,该处理器运行计算机程序以使电子设备执行实施例一提供的负载均衡设备中地址解析方法。
本发明的伪代码如下:
Figure BDA0004107766610000101
Figure BDA0004107766610000111
在实际应用中,上述电子设备可以是服务器。
在实际应用中,电子设备包括:至少一个处理器(processor)、存储器(memory)、总线及通信接口(Communications Interface)。
其中:处理器、通信接口、以及存储器通过通信总线完成相互间的通信。
通信接口,用于与其它设备进行通信。
处理器,用于执行程序,具体可以执行上述实施例所述的方法。
具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。
处理器可能是中央处理器CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器,用于存放程序。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
基于以上实施例的描述,本申请实施例提供一种存储介质,其上存储有计算机程序指令,计算机程序指令可被处理器执行以实现任意实施例所述的方法
本申请实施例提供的负载均衡设备中地址解析系统以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网性能。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)其他具有数据交互功能的电子设备。
至此,已经对本主题的特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作可以按照不同的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、
数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带、磁盘存储或其他磁性存储设备
或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种负载均衡设备中地址解析方法,其特征在于,包括:
将网卡中的报文通过DMA-COPY技术直接映射到用户空间内存中;所述用户空间内存为虚拟内存;
利用负载均衡应用程序创建ARP表;
利用所述负载均衡应用程序对所述用户控件内存中的报文进行解析,生成地址解析结果;所述负载均衡应用程序为用户态程序;
将所述地址解析结果存放至由所述负载均衡应用程序创建的ARP表中。
2.根据权利要求1所述的负载均衡设备中地址解析方法,其特征在于,将网卡中的报文通过DMA-COPY技术映射到用户空间内存中,具体包括:
对网卡中的内核驱动代码进行修改,删除驱动中对收发报文时的中断函数,将收发包的函数移植到用户态程序;
对所述用户态程序初始化时,从所述内核中申请连续的大页内存,并代替所述内核管理所述大页内存;
当所述网卡接收到所述报文时,利用I/O设备通过DMA接口将所述报文拷贝到内核空间的一段所述大页内存中,使得所述用户态程序能够访问拷贝到所述大页内存的报文;
基于所述报文,使用内存映射函数将所述大页内存的物理地址映射为用户可操作的虚拟地址,存储至所述用户空间内存中,使得所述用户态程序能够操作具有报文的大页内存,对所述报文中的内容进行操作。
3.根据权利要求2所述的负载均衡设备中地址解析方法,其特征在于,利用负载均衡应用程序创建ARP表,具体包括:
判断所述报文是否为ARP报文,得到第一判断结果;
若所述第一判断结果为所述报文是ARP报文,检查所述ARP表是否已初始化,得到第二判断结果;
若所述第二判断结果表示为所述ARP表已初始化,利用负载均衡应用程序创建ARP表;
若所述第二判断结果表示为所述ARP表未初始化,在申请的所述大页内存中创建ARP表;
若所述第一判断结果为所述报文不是ARP报文,不创建ARP表。
4.根据权利要求3所述的负载均衡设备中地址解析方法,其特征在于,利用所述负载均衡应用程序对所述用户控件内存中的报文进行解析,生成地址解析结果,具体包括:
判断所述ARP报文的类型;
若所述ARP报文的类型为ARP请求报文,解析出所述ARP请求报文中发送方IP地址和MAC地址,并在所述ARP表中查找所述发送方IP地址和MAC地址的对应表项;
若所述ARP表中没有所述对应表项,添加所述发送方IP地址和MAC地址的对应表项;
若所述ARP表中有相同MAC地址但不同的IP地址,更新所述ARP表中IP地址的对应表项,并向对端发送ARP响应报文;
若所述ARP报文的类型为ARP响应报文,解析出所述ARP响应报文中发送方IP和MAC地址,将IP-MAC表项添加到ARP表;所述IP-MAC表项为所述ARP响应报文中发送方IP和MAC地址的对应表项。
5.一种负载均衡设备中地址解析系统,其特征在于,包括:
映射模块,用于将网卡中的报文通过DMA-COPY技术直接映射到用户空间内存中;所述用户空间内存为虚拟内存;
ARP表创建模块,用于利用负载均衡应用程序创建ARP表;
解析模块,用于利用所述负载均衡应用程序对所述用户控件内存中的报文进行解析,生成地址解析结果;所述负载均衡应用程序为用户态程序;
存放模块,用于将所述地址解析结果存放至由所述负载均衡应用程序创建的ARP表中。
6.根据权利要求5所述的负载均衡设备中地址解析系统,其特征在于,所述映射模块具体包括:
移植单元,用于对网卡中的内核驱动代码进行修改,删除驱动中对收发报文时的中断函数,将收发包的函数移植到用户态程序;
大页内存申请单元,用于对所述用户态程序初始化时,从所述内核中申请连续的大页内存,并代替所述内核管理所述大页内存;
拷贝单元,用于当所述网卡接收到所述报文时,利用I/O设备通过DMA接口将所述报文拷贝到内核空间的一段所述大页内存中,使得所述用户态程序能够访问拷贝到所述大页内存的报文;
映射单元,用于基于所述报文,使用内存映射函数将所述大页内存的物理地址映射为用户可操作的虚拟地址,存储至所述用户空间内存中,使得所述用户态程序能够操作具有报文的大页内存,对所述报文中的内容进行操作。
7.根据权利要求6所述的负载均衡设备中地址解析系统,其特征在于,所述ARP表创建模块具体包括:
第一判断单元,用于判断所述报文是否为ARP报文,得到第一判断结果;
第二判断单元,用于若所述第一判断结果为所述报文是ARP报文,检查所述ARP表是否已初始化,得到第二判断结果;
ARP表第一创建单元,用于若所述第二判断结果表示为所述ARP表已初始化,利用负载均衡应用程序创建ARP表;
ARP表第二创建单元,用于若所述第二判断结果表示为所述ARP表未初始化,在申请的所述大页内存中创建ARP表;
ARP表不创建单元,用于若所述第一判断结果为所述报文不是ARP报文,不创建ARP表。
8.根据权利要求7所述的负载均衡设备中地址解析系统,其特征在于,所述解析模块具体包括:
类型判断单元,用于判断所述ARP报文的类型;
对应表项查找单元,用于若所述ARP报文的类型为ARP请求报文,解析出所述ARP请求报文中发送方IP地址和MAC地址,并在所述ARP表中查找所述发送方IP地址和MAC地址的对应表项;
对应表项添加单元,用于若所述ARP表中没有所述对应表项,添加所述发送方IP地址和MAC地址的对应表项;
对应表项更新单元,用于若所述ARP表中有相同MAC地址但不同的IP地址,更新所述ARP表中IP地址的对应表项,并向对端发送ARP响应报文;
ARP表更新单元,用于若所述ARP报文的类型为ARP响应报文,解析出所述ARP响应报文中发送方IP和MAC地址,将IP-MAC表项添加到ARP表;所述IP-MAC表项为所述ARP响应报文中发送方IP和MAC地址的对应表项。
9.一种电子设备,其特征在于,包括存储器及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行如权利要求1-4中任一项所述的负载均衡设备中地址解析方法。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的负载均衡设备中地址解析方法。
CN202310197318.2A 2023-03-02 2023-03-02 一种负载均衡设备中地址解析方法、系统及设备 Pending CN116319659A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310197318.2A CN116319659A (zh) 2023-03-02 2023-03-02 一种负载均衡设备中地址解析方法、系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310197318.2A CN116319659A (zh) 2023-03-02 2023-03-02 一种负载均衡设备中地址解析方法、系统及设备

Publications (1)

Publication Number Publication Date
CN116319659A true CN116319659A (zh) 2023-06-23

Family

ID=86800765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310197318.2A Pending CN116319659A (zh) 2023-03-02 2023-03-02 一种负载均衡设备中地址解析方法、系统及设备

Country Status (1)

Country Link
CN (1) CN116319659A (zh)

Similar Documents

Publication Publication Date Title
CN109547286B (zh) 一种cdn节点的选择方法、设备及存储介质
CN111163130B (zh) 一种网络服务系统及其数据传输方法
CN110377369B (zh) 一种运行小程序的方法、设备和计算机存储介质
CN110177047B (zh) 报文发送方法、装置、电子设备和计算机可读存储介质
CN111679790A (zh) 远程软件开发存储空间分配方法及装置
CN112769671B (zh) 消息处理方法、装置与系统
JP7311707B2 (ja) ヒューマンマシン対話処理方法
CN112835632B (zh) 一种端能力的调用方法、设备和计算机存储介质
CN114201317B (zh) 数据传输方法、装置、存储介质及电子设备
CN112055251A (zh) 一种媒体数据播放方法、装置、设备及存储介质
CN111694639A (zh) 进程容器地址的更新方法、装置和电子设备
CN112751935B (zh) 请求处理方法、装置、电子设备及存储介质
CN111400068A (zh) 接口的控制方法、装置、可读介质和电子设备
CN111614694B (zh) 通信方法、装置及电子设备和计算机可读存储介质
CN116560878B (zh) 一种内存共享方法和相关装置
CN116319659A (zh) 一种负载均衡设备中地址解析方法、系统及设备
CN109614089B (zh) 数据访问代码的自动生成方法、装置、设备及存储介质
CN113391860A (zh) 服务请求处理方法、装置、电子设备及计算机存储介质
CN112839071B (zh) 训练系统、训练数据访问方法及装置、电子设备、介质
CN114595080A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN111953644B (zh) 用于多媒体通信的终端连接方法及系统
CN113518183A (zh) 摄像头调用方法、装置和电子设备
CN112565421B (zh) 信息传输方法、系统、电子设备及存储介质
CN111580987A (zh) 远程过程调用方法、装置、存储介质及终端设备
CN105072047A (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