CN115225483A - 数据包转发方法及电子设备、存储介质 - Google Patents
数据包转发方法及电子设备、存储介质 Download PDFInfo
- Publication number
- CN115225483A CN115225483A CN202210763812.6A CN202210763812A CN115225483A CN 115225483 A CN115225483 A CN 115225483A CN 202210763812 A CN202210763812 A CN 202210763812A CN 115225483 A CN115225483 A CN 115225483A
- Authority
- CN
- China
- Prior art keywords
- port
- function
- fast forwarding
- packet
- forwarding
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000006870 function Effects 0.000 claims description 186
- 238000012545 processing Methods 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011056 performance test Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种数据包转发方法及电子设备、存储介质,方法包括:通用收包函数从第一端口接收到数据包之后,调用快速转发函数;所述快速转发函数在预设快转配置表中,查找所述第一端口的端口号,并依据查找结果确定所述第一端口是否存在快速转发的目标端口;其中,所述快转配置表记录启用快速转发的端口及其对应的目标端口;若存在,所述快速转发函数通过所述目标端口转发所述数据包。本申请方案,在DPDK套件设置快速转发函数和快转配置表,并针对网络设备的一些端口启用快速转发功能,可极大提高网络设备的转发效率。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种数据包转发方法及电子设备、计算机可读存储介质。
背景技术
随着社会信息化程度不断提高,对网络设备流量吞吐提出越来越高的要求。目前主流的方案为:使用DPDK(Data Plane Development Kit,数据平面开发套件),配合其它用户层协议栈来实现大流量吞吐需求。然而,正由于需经过协议栈处理数据包,数据包的处理链路过长,导致网络设备的转发效率低下。
发明内容
本申请实施例的目的在于提供一种数据包转发方法及电子设备、计算机可读存储介质,用于对数据包进行快速转发。
一方面,本申请提供了一种数据包转发方法,包括:
通用收包函数从第一端口接收到数据包之后,调用快速转发函数;
所述快速转发函数在预设快转配置表中,查找所述第一端口的端口号,并依据查找结果确定所述第一端口是否存在快速转发的目标端口;其中,所述快转配置表记录启用快速转发的端口及其对应的目标端口;
若存在,所述快速转发函数通过所述目标端口转发所述数据包。
通过上述措施,在DPDK套件设置快速转发函数和快转配置表,并针对网络设备的一些端口启用快速转发功能,可极大提高网络设备的转发效率。
在一实施例中,所述快速转发函数通过所述目标端口转发所述数据包,包括:
根据目标端口的端口号查找全局数组,获得所述目标端口对应的软件功能模块;
通过所述软件功能模块调用通用发包函数指针,确定所述软件功能模块对应的指定发送函数;
依据所述指定发送函数发送所述数据包。
通过上述措施,快速转发函数可以在目标端口发送出数据包,从而实现快速转发。
在一实施例中,在所述依据所述指定发送函数发送所述数据包之后,所述方法还包括:
所述快速转发函数获取所述指定发送函数返回的本次发包量;其中,所述本次发包量指示本次发送的数据包数量;
所述快速转发函数判断所述本次发包量是否等于本次收包量;其中,所述本次收包量指示本次从所述第一端口接收的数据包总量;
若不同,所述快速转发函数释放未处理的数据包,并确定数据包剩余量为零;其中,所述数据包剩余量为未转发的数据包数量;
若相同,所述快速转发函数确定数据包剩余量为零。
通过上述措施,快速转发函数可以确定数据包剩余量。
在一实施例中,所述方法还包括:
所述快速转发函数将所述数据包剩余量作为本次收包量,返回所述通用收包函数。
通过该措施,可以保证进行快速转发的数据包不会被提交到系统收包策略处理模块,更不会被提交到用户层协议栈,从而避免数据包被重复处理。
在一实施例中,所述方法还包括:
若所述第一端口不存在快速转发的目标端口,所述快速转发函数向所述通用收包函数返回本次收包量;其中,所述本次收包量指示本次从所述第一端口接收的数据包总量。
通过上述措施,快速转发函数可以通知通用收包函数第一端口的数据包未作处理。
在一实施例中,所述方法还包括:
所述通用收包函数接收来自所述快速转发函数的本次收包量之后,向系统收包策略处理模块返回所述本次收包量、以及本次收包量指示的数据包。
通过上述措施,本申请方案可以在对处理流程改动最小的情况下兼容现有数据转发逻辑。
在一实施例中,在所述快速转发函数在预设快转配置表中,查找所述第一端口的端口号之前,所述方法还包括:
物理网卡扫描函数在扫描端口时,通过预设规则解析函数解析交换配置文件,并根据解析结果生成所述快转配置表。
通过上述措施,在物理网卡扫描函数扫描物理端口以生成全局数组的阶段,可以构造出快转配置表。
在一实施例中,所述方法还包括:
响应于配置指令,确定多组构成快速转发关系的端口对;所述端口对中的两个端口均开启快速转发功能,且互为对方的目标端口;
根据多组端口对,生成交换配置文件。
通过上述措施,可以灵活地启用网络身边上物理端口的快速转发功能,从而针对启用功能的物理端口进行数据包快速转发,极大地提升了网络设备的转发效率。
另一方面,本申请提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述数据包转发方法。
进一步的,本申请提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述数据包转发方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1为相关技术的数据包转发的设备架构示意图;
图2为本申请一实施例提供的电子设备的结构示意图;
图3为本申请一实施例提供的数据包转发方法的流程示意图;
图4为本申请一实施例提供的设备架构示意图;
图5为本申请一实施例提供的图3中步骤330的细节流程示意图;
图6为本申请一实施例提供的数据包剩余量的确定方法的流程示意图;
图7为本申请一实施例提供的快速转发函数的内部处理流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
参见图1,为相关技术的数据包转发的设备架构示意图,如图1所示,双向箭头表示控制信息的交互,向上箭头表示数据包接收方向,向下箭头表示数据包发送方向。网络设备的系统构建软件层VLAN(Virtual Local Area Network,虚拟局域网),将源port(源端口)和目的port(目的端口)加入一个VLAN组中。系统收包策略模块根据系统定制的收包策略,调用DPDK套件所提供的通用收包函数rte_eth_rx_burst从物理网卡源端口上接收数据包,并将数据包上传至用户层协议栈。用户层协议栈根据协议配置对数据包进行处理后,发送给系统发包策略处理模块。系统发包策略处理模块根据处理结果以及自身发送策略,通过DPDK套件所提供的通用发包函数rte_eth_tx_burst从目的端口发出数据包。
然而,该转发流程中数据包需要经过物理网卡、DPDK套件、系统收包策略处理模块、用户层协议栈、系统发包策略处理模块,处理链路过长,导致网络设备转发效率低下。此外,由于DPDK套件需要系统收包策略处理模块驱动才可进行工作,无法将DPDK套件与系统中其它模块进行隔离,当网络设备转发性能异常时,难以排查问题所在位置。
如图2所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图2中以一个处理器11为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程。在一实施例中,电子设备1可以是处理数据包的网络设备,用于执行数据包转发方法。
存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器11执行以完成本申请提供的数据包转发方法。
参见图3,为本申请一实施例提供的数据包转发方法的流程示意图,如图3所示,该方法可以包括以下步骤310-步骤330。
步骤310:通用收包函数从第一端口接收到数据包之后,调用快速转发函数。
本申请方案应用于搭载DPDK套件的网络设备,网络设备的系统收包策略处理模块可以驱动DPDK套件提供的通用收包函数,从而通过通用收包函数从网络设备的各个物理端口接收数据包。
第一端口可以为网络设备上的任一物理端口。
快速转发函数netswitch_fast_tx为自定义函数,用于对符合快速转发规则的数据包进行快速转发。
网络设备的第一端口接收到数据包之后,通用收包函数可以从第一端口收到数据包,并调用快速转发函数进行处理。在调用快速转发函数时,通用收包函数可以将第一端口的端口号port_id、存放从第一端口收到的数据包的指针rx_pkts、第一端口上接收数据包的队列的队列标识queue_id、本次收包量nb_pkts等参数传递至快速转发函数。
步骤320:快速转发函数在预设快转配置表中,查找第一端口的端口号,并依据查找结果确定第一端口是否存在快速转发的目标端口;其中,快转配置表记录启用快速转发的端口及其对应的目标端口。
步骤330:若存在,快速转发函数通过目标端口转发数据包。
快转配置表中记录若干快速转发表项,每一快速转发表项记录启用快速转发功能的端口的端口号、以及目标端口的端口号。目标端口为发送数据包的端口。快速转发表项中可以通过状态标识来说明端口启用快速转发功能。比如:设1为快速转发功能的启用状态;设0为快速转发功能的未启用状态。另外,也可默认快转配置表中所记录的端口均启用快速转发功能,此时无需额外的状态标识。
快速转发函数被通用收包函数调用后,可以在快转配置表中查找第一端口的端口号。一种情况下,未查到第一端口的端口号,换而言之,第一端口未启用快速转发功能,第一端口不存在快速转发的目标端口。此时,从第一端口接收的数据包需提交至用户层协议栈处理。另一种情况下,查到第一端口的端口号,换而言之,第一端口启用快速转发功能,此时,快速转发函数可以通过目标端口直接转发数据包。
参见图4,为本申请一实施例提供的设备架构示意图,如图4所示,双向箭头表示控制信息的交互,向上箭头表示数据包接收方向,向下箭头表示数据包发送方向。对于启用快速转发功能的端口而言,端口收到的数据包只在DPDK套件层面处理,无需提交至用户层协议栈,极大地缩短了处理链路,从而提升了网络设备的转发效率。
通过上述措施,在DPDK套件设置快速转发函数和快转配置表,并针对网络设备的一些端口启用快速转发功能,可极大提高网络设备的转发效率。
在一实施例中,参见图5,为本申请一实施例提供的图3中步骤330的细节流程示意图,如图5所示,快速转发函数在通过目标端口发送数据包时,可以执行如下步骤331-步骤333。
步骤331:根据目标端口的端口号查找全局数组,获得目标端口对应的软件功能模块。
其中,全局数组rte_eth_devices[txport_id]用于记录网络设备上所有物理端口的端口信息,端口信息可以包括但不限于端口号、软件功能模块tx_dev等信息。这里,软件功能模块是物理端口的软件表达。
快速转发函数根据目标端口的端口号查找全局数组,从而得到与端口号对应的软件功能模块。
步骤332:通过软件功能模块调用通用发包函数指针,确定软件功能模块对应的指定发送函数。
这里,不同端口的软件功能模块对应的指定发送函数不同,通用发包函数指针tx_pkt_burst用于存储各个端口的软件功能模块所对应的指定发送函数。
快速转发函数可以通过软件功能模块调用通用发包函数指针,从而确定该软件功能模块所对应的发送函数tx_func,作为指定发送函数。
步骤333:依据指定发送函数发送数据包。
在确定指定发送函数之后,快速转发函数可以根据第一端口上接收数据包的队列的队列标识,确定目标端口上发送数据包的队列tx_queue。这里,接收数据包的队列与发送数据包的队列具有相同的队列标识。快速转发函数可以基于存放第一端口收到的数据包的指针,获取从第一端口接收的数据包,进而在发送队列、本次收包量的基础上,通过指定发送函数发送数据包,从而将数据包从目标端口发送出去。
通过上述措施,快速转发函数可以在目标端口发送出数据包,从而实现快速转发。
在一实施例中,参见图6,为本申请一实施例提供的数据包剩余量的确定方法的流程示意图,如图6所示,通过指定发送函数发送数据包之后,快速转发函数可以通过如下步骤610-步骤640确定数据包剩余量。
步骤610:快速转发函数获取指定发送函数返回的本次发包量;其中,本次发包量指示本次发送的数据包数量。
指定发送函数在发送数据包之后,可以向快速转发函数返回本次发包量txnb_pkts,使得快速转发函数可以确定本次发包量。
步骤620:快速转发函数判断本次发包量是否等于本次收包量;其中,本次收包量指示本次从第一端口接收的数据包总量。
快速转发函数可以比较指定发送函数所返回的本次发包量与通用收包函数传递的本次收包量。
步骤630:若不同,快速转发函数释放未处理的数据包,并确定数据包剩余量为零;其中,数据包剩余量为未转发的数据包数量。
步骤640:若相同,快速转发函数确定数据包剩余量为零。
一种情况下,两者不同,由于本次发包量不可能大于本次收包量,此时,还存在尚未发送的数据包。快速转发函数可以从存放数据包的指针中直接释放未处理的数据包,并确定数据包剩余量为零。需要说明的是,网络设备的发送带宽往往远大于接收带宽,因此,快速转发后剩余数据包的情况一般不会出现。
另一种情况下,两者相同,说明从第一端口接收的数据包已全部发送完毕,快速转发函数可以确定数据包剩余量为零。
在一实施例中,快速转发函数在确定数据包剩余量之后,可以将数据包剩余量作为本次收包量,返回给通用收包函数。此时,通用收包函数可以认为第一端口的数据包已全部被快速转发函数发送,相当于第一端口当前未收到数据包。
通过该措施,可以保证进行快速转发的数据包不会被提交到系统收包策略处理模块,更不会被提交到用户层协议栈,从而避免数据包被重复处理。
在一实施例中,快速转发函数在快转配置表中查找第一端口的端口号之后,若第一端口不存在快速转发的目标端口,快速转发函数可以直接向通用收包函数返回本次收包量。
此时,本次收包量与通用收包函数传递给快速转发函数的本次收包量相同,因此,通用收包函数可以确定快速转发函数未处理第一端口的数据包。
参见图7,为本申请一实施例提供的快速转发函数的内部处理流程示意图,如图7,快速转发函数netswitch_fast_tx接受调用,获得第一端口的端口号port_id、队列标识queue_id、存放数据包的指针rx_pkts、本次收包量nb_pkts。快速转发函数可以通过第一端口的端口号在快转配置表中查找对应的快转配置表项。
一种情况下,未查到对应的快转配置表项,确定第一端口未开启快速转发功能,此时直接将本次收包量nb_pkts返回给通用收包函数。
另一种情况下,查到对应的快转配置表项,确定第一端口开启快速转发功能,此时,可以获得根据第一端口对应目标端口的端口号,并根据目标端口的端口号确定目标端口的软件功能模块tx_dev。通过软件功能模块调用通用发包函数指针,可以确定软件功能模块对应的指定发送函数tx_func。进一步根据队列标识确定发送队列,进而根据指定发送函数、发送队列、存放数据包的指针、本次收包量发送数据包。在发送数据包之后,可以得到指定发送函数返回的本次发包量txnb_pkts,并比对本次发包量和本次收包量以确定是否发送第一端口的所有数据包。一方面,若全部发送完成,可以确定数据包剩余量为零。另一方面,若未全部发送完成,可以释放未发送完成的数据包rte_pktmbuf_free,并将数据包剩余量置位零。快速转发函数可以将数据包剩余量作为本次发包量,返回给通用收包函数,以告知通用收包函数完成对第一端口的数据包的处理。
在一实施例中,通用收包函数接收来自快速转发函数的本次收包量之后,可以向系统收包策略处理模块返回本次收包量、以及本次收包量指示的数据包。
一方面,在未接收到数据包,或者,数据包已经由快速转发函数处理的情况下,本次收包量为零,通用收包函数向系统收包策略处理模块返回本次收包量,可以告知系统收包策略处理模块未接收到数据包。
另一方面,当第一端口未启用快速转发功能时,本次收包量不为零,通用收包函数可以向系统收包策略处理模块返回本次收包量,以说明从第一端口接收到数据包,此外可以提交从第一端口接收的数据包,使得系统收包策略处理模块可以将数据包交由用户层协议栈进行处理。
通过上述措施,本申请方案可以在对处理流程改动最小的情况下兼容现有数据转发逻辑。
在一实施例中,在快转配置表中查找第一端口的端口号之前,需要生成快转配置表。网络设备的物理网卡扫描函数rte_bus_scan在扫描端口时,可以调用预设规则解析函数netswitch_config_parse。规则解析函数可以从网络设备的指定路径下读取交换配置文件switch_config,该交换配置文件记录网络设备上开启快速转发功能的端口。规则解析函数可以解析交换配置文件,并根据解析结果生成快转配置表。
示例性的,交换配置文件的内容为:
VLAN_GROUP:port1,port3
VLAN_GROUP:port2,port4
VLAN_GROUP:port5,port6
这说明:物理端口port1与port3开启快速转发功能,且port1为port3的目标端口,port3为port1的目标端口;物理端口port2与port4开启快速转发功能,且port2为port4的目标端口,port4为port2的目标端口;物理端口port5与port6开启快速转发功能,且port5为port6的目标端口,port6为port5的目标端口。
解析得到的快转配置表项为:
vlan_switch[1]={fast_switch_state=1,dst_port_id=3};表示端口port1开启快速转发功能,且port3为port1的目标端口;
vlan_switch[3]={fast_switch_state=1,dst_port_id=1};表示端口port3开启快速转发功能,且port1为port3的目标端口;
vlan_switch[2]={fast_switch_state=1,dst_port_id=4};表示端口port2开启快速转发功能,且port4为port2的目标端口;
vlan_switch[4]={fast_switch_state=1,dst_port_id=2};表示端口port4开启快速转发功能,且port2为port4的目标端口;
vlan_switch[5]={fast_switch_state=1,dst_port_id=6};表示端口port5开启快速转发功能,且port6为port5的目标端口;
vlan_switch[6]={fast_switch_state=1,dst_port_id=5};表示端口port6开启快速转发功能,且port5为port6的目标端口。
根据解析出的多个快转配置表项可以构建快转配置表。
通过上述措施,在物理网卡扫描函数扫描物理端口以生成全局数组的阶段,可以构造出快转配置表。
在一实施例中,运维人员可以根据需要对网络设备进行配置,从而开启或关闭网络设备上物理端口的快速转发功能。在配置时运维人员可以通过用户终端(比如:主机、平板电脑、主机等设备)向网络设备下发配置指令。网络设备可以响应于配置指令,确定多组构成快速转发关系的端口对。其中,端口对中的两个端口均开启快速转发功能,且互为对方的目标端口。示例性的,端口对记为VLAN_GROUP:port1,port3,表示物理端口port1和port3开启快速转发功能,且互为对方的目标端口。网络设备可以根据多组端口对,生成交换配置文件。
通过上述措施,可以灵活地启用网络身边上物理端口的快速转发功能,从而针对启用功能的物理端口进行数据包快速转发,极大地提升了网络设备的转发效率。
本申请方案,通过启用物理端口的快速转发功能,可以将DPDK套件与用户层协议栈、系统发包策略处理模块进行隔离,因而,在网络设备转发性能异常时,可以借助本申请方案排查问题所在位置。
示例性的,某型号网络设备开发过程中,在使用网络设备的两个10G网口进行大流量数据包转发性能测试,测试结果为能够转发100%的数据包,也就是说网络设备的吞吐性能至少为20G。在使用网络设备的16个1G网口串联进行大流量数据包转发性能测试,测试结果为能转发70%的数据包,出现网卡丢包问题。
两次测试在网卡硬件上使用过相同硬件,只是表现形式不同,理论上不应该出现性能差异。且通过第一次测试,可以物理网卡硬件性能充足,可以排除物理网卡硬件问题。因此,问题出现在DPDK套件、系统收包策略处理模块、系统发包策略处理模块、用户层协议栈上。
通过本申请方案,对网络设备所有物理端口启用快速转发功能,从而建立快速转发通路。此时,重新将网络设备16个1G网口串联进行大流量数据包转发性能测试,测试结果为能转发100%的数据包,说明DPDK套件和系统收包策略处理模块不存在问题,问题出现在用户层协议栈或系统发包策略处理模块。
Claims (10)
1.一种数据包转发方法,其特征在于,包括:
通用收包函数从第一端口接收到数据包之后,调用快速转发函数;
所述快速转发函数在预设快转配置表中,查找所述第一端口的端口号,并依据查找结果确定所述第一端口是否存在快速转发的目标端口;其中,所述快转配置表记录启用快速转发的端口及其对应的目标端口;
若存在,所述快速转发函数通过所述目标端口转发所述数据包。
2.根据权利要求1所述的方法,其特征在于,所述快速转发函数通过所述目标端口转发所述数据包,包括:
根据目标端口的端口号查找全局数组,获得所述目标端口对应的软件功能模块;
通过所述软件功能模块调用通用发包函数指针,确定所述软件功能模块对应的指定发送函数;
依据所述指定发送函数发送所述数据包。
3.根据权利要求2所述的方法,其特征在于,在所述依据所述指定发送函数发送所述数据包之后,所述方法还包括:
所述快速转发函数获取所述指定发送函数返回的本次发包量;其中,所述本次发包量指示本次发送的数据包数量;
所述快速转发函数判断所述本次发包量是否等于本次收包量;其中,所述本次收包量指示本次从所述第一端口接收的数据包总量;
若不同,所述快速转发函数释放未处理的数据包,并确定数据包剩余量为零;其中,所述数据包剩余量为未转发的数据包数量;
若相同,所述快速转发函数确定数据包剩余量为零。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述快速转发函数将所述数据包剩余量作为本次收包量,返回所述通用收包函数。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一端口不存在快速转发的目标端口,所述快速转发函数向所述通用收包函数返回本次收包量;其中,所述本次收包量指示本次从所述第一端口接收的数据包总量。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
所述通用收包函数接收来自所述快速转发函数的本次收包量之后,向系统收包策略处理模块返回所述本次收包量、以及本次收包量指示的数据包。
7.根据权利要求1所述的方法,其特征在于,在所述快速转发函数在预设快转配置表中,查找所述第一端口的端口号之前,所述方法还包括:
物理网卡扫描函数在扫描端口时,通过预设规则解析函数解析交换配置文件,并根据解析结果生成所述快转配置表。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
响应于配置指令,确定多组构成快速转发关系的端口对;所述端口对中的两个端口均开启快速转发功能,且互为对方的目标端口;
根据多组端口对,生成交换配置文件。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-8任意一项所述的数据包转发方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-8任意一项所述的数据包转发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210763812.6A CN115225483A (zh) | 2022-06-29 | 2022-06-29 | 数据包转发方法及电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210763812.6A CN115225483A (zh) | 2022-06-29 | 2022-06-29 | 数据包转发方法及电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115225483A true CN115225483A (zh) | 2022-10-21 |
Family
ID=83610547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210763812.6A Pending CN115225483A (zh) | 2022-06-29 | 2022-06-29 | 数据包转发方法及电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115225483A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101068212A (zh) * | 2007-06-11 | 2007-11-07 | 中兴通讯股份有限公司 | 一种网络地址转换转发的装置及方法 |
WO2012167559A1 (zh) * | 2011-06-10 | 2012-12-13 | 中兴通讯股份有限公司 | 一种快速转发数据包的方法及三层设备 |
CN102957600A (zh) * | 2011-08-19 | 2013-03-06 | 中兴通讯股份有限公司 | 一种数据报文转发方法及装置 |
CN103067281A (zh) * | 2012-12-28 | 2013-04-24 | 深圳市磊科实业有限公司 | 一种路由器快速转发方法及实施该方法的系统 |
US20140007060A1 (en) * | 2012-06-29 | 2014-01-02 | Microsoft Corporation | Implementation of distributed methods that support generic functions |
US20150261726A1 (en) * | 2012-12-06 | 2015-09-17 | Tencent Technology (Shenzhen) Company Limited | Screenshot method and device |
CN110224929A (zh) * | 2019-04-17 | 2019-09-10 | 西安交大捷普网络科技有限公司 | 基于dpdk的链路聚合接口的数据包转发方法 |
CN111371779A (zh) * | 2020-02-29 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种基于dpdk虚拟化管理系统的防火墙及其实现方法 |
CN111800344A (zh) * | 2020-07-08 | 2020-10-20 | 深圳市共进电子股份有限公司 | 数据转发方法、装置、路由器和可读存储介质 |
CN113132273A (zh) * | 2019-12-30 | 2021-07-16 | 华为技术有限公司 | 一种数据转发方法及装置 |
KR20220085290A (ko) * | 2020-12-15 | 2022-06-22 | 현대오토에버 주식회사 | 소프트웨어 검증 방법 및 이를 위한 장치 |
-
2022
- 2022-06-29 CN CN202210763812.6A patent/CN115225483A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101068212A (zh) * | 2007-06-11 | 2007-11-07 | 中兴通讯股份有限公司 | 一种网络地址转换转发的装置及方法 |
WO2012167559A1 (zh) * | 2011-06-10 | 2012-12-13 | 中兴通讯股份有限公司 | 一种快速转发数据包的方法及三层设备 |
CN102957600A (zh) * | 2011-08-19 | 2013-03-06 | 中兴通讯股份有限公司 | 一种数据报文转发方法及装置 |
US20140007060A1 (en) * | 2012-06-29 | 2014-01-02 | Microsoft Corporation | Implementation of distributed methods that support generic functions |
US20150261726A1 (en) * | 2012-12-06 | 2015-09-17 | Tencent Technology (Shenzhen) Company Limited | Screenshot method and device |
CN103067281A (zh) * | 2012-12-28 | 2013-04-24 | 深圳市磊科实业有限公司 | 一种路由器快速转发方法及实施该方法的系统 |
CN110224929A (zh) * | 2019-04-17 | 2019-09-10 | 西安交大捷普网络科技有限公司 | 基于dpdk的链路聚合接口的数据包转发方法 |
CN113132273A (zh) * | 2019-12-30 | 2021-07-16 | 华为技术有限公司 | 一种数据转发方法及装置 |
CN111371779A (zh) * | 2020-02-29 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种基于dpdk虚拟化管理系统的防火墙及其实现方法 |
CN111800344A (zh) * | 2020-07-08 | 2020-10-20 | 深圳市共进电子股份有限公司 | 数据转发方法、装置、路由器和可读存储介质 |
KR20220085290A (ko) * | 2020-12-15 | 2022-06-22 | 현대오토에버 주식회사 | 소프트웨어 검증 방법 및 이를 위한 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302346B (zh) | 一种传输数据流量的方法和装置 | |
CN112714138B (zh) | 基于攻击流量的测试方法、装置、设备及存储介质 | |
US10813156B2 (en) | Method and apparatus for processing network connection | |
CN113296859B (zh) | 页面加载方法及装置、存储介质、电子装置 | |
CN111314180A (zh) | 一种以太网链路测试方法、终端及存储介质 | |
WO2016114750A1 (en) | Data link layer information | |
CN115225483A (zh) | 数据包转发方法及电子设备、存储介质 | |
CN110311861B (zh) | 一种引导数据流量的方法和装置 | |
CN111092952B (zh) | 一种数据交互方法及相关产品 | |
CN110602143B (zh) | Pc端与远程设备实现通讯的方法、系统及可读存储介质 | |
CN112600703A (zh) | 网络设备远程访问故障定位方法及装置 | |
US20150304200A1 (en) | Traffic information collection system and collection control node | |
CN111082860A (zh) | 一种光分配节点的测试方法、服务器、系统及存储介质 | |
US7693166B2 (en) | Method and apparatus for transmitting data to network and method and apparatus for receiving data from network | |
US6934290B2 (en) | Determining connection information for a network | |
CN110034973B (zh) | 基于网络设备的转发映射表维护方法及装置 | |
CN110213176B (zh) | 交换机的报文处理方法、装置、设备及介质 | |
CN113242292A (zh) | 报文传输方法、装置、设备、介质及产品 | |
US11985008B2 (en) | Media gateway device, and media path configuration method | |
CN111240867A (zh) | 一种信息通讯系统及方法 | |
CN113162922A (zh) | 客户端数据的获取方法及装置、存储介质、电子设备 | |
CN111294344A (zh) | 数据转发的控制系统、方法、电子设备及存储介质 | |
KR100535584B1 (ko) | 망관리시스템에서의 광대역 가입자망 통합 관리 방법 | |
CN115086219B (zh) | 一种虚拟路由器确定方法、设备及计算机可读存储介质 | |
CN117880227B (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 |