WO2021027645A1 - 一种网络报文发送的方法、装置和网络处理器 - Google Patents

一种网络报文发送的方法、装置和网络处理器 Download PDF

Info

Publication number
WO2021027645A1
WO2021027645A1 PCT/CN2020/107013 CN2020107013W WO2021027645A1 WO 2021027645 A1 WO2021027645 A1 WO 2021027645A1 CN 2020107013 W CN2020107013 W CN 2020107013W WO 2021027645 A1 WO2021027645 A1 WO 2021027645A1
Authority
WO
WIPO (PCT)
Prior art keywords
network
header information
mapping table
network processor
information
Prior art date
Application number
PCT/CN2020/107013
Other languages
English (en)
French (fr)
Inventor
林珍
包晓瑜
余中云
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Priority to EP20852721.8A priority Critical patent/EP3989498B1/en
Publication of WO2021027645A1 publication Critical patent/WO2021027645A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload

Definitions

  • This article relates to, but is not limited to, a method, device, network processor, and computer-readable storage medium for sending network messages.
  • the transmission of network messages requires configuration of MAC (Media Access Control)/IP (Internet Protocol)/UDP (User Datagram Protocol, User Datagram Protocol) and other information of the message.
  • MAC Media Access Control
  • IP Internet Protocol
  • UDP User Datagram Protocol, User Datagram Protocol
  • the network message sending method of the related technology occupies a large amount of CPU calculation, which causes high CPU consumption and low message sending efficiency.
  • the embodiment of the present application provides a method for sending a network message, including: a network processor obtains header information of the network message from a mapping table, and generates a network message according to the header information and the payload; wherein, the mapping table Stored in the network processor; the network processor sends the network message.
  • An embodiment of the present application also provides an apparatus for sending a network message, including: an acquisition module, configured to acquire header information of the network message from a mapping table, and generate a network message according to the header information and the payload; wherein, the The mapping table is stored in the network processor; the sending module is used to send the network message.
  • An embodiment of the present application also provides a network processor, including: a memory, a processor, and a computer program stored on the memory and capable of running on the processor, and when the processor executes the program, the network packet is sent Methods.
  • An embodiment of the present application also provides a computer-readable storage medium that stores computer-executable instructions, and the computer-executable instructions are used to execute the method for sending the network message.
  • Figure 1 is a schematic diagram of a mainstream message sending device
  • Fig. 2 is a flowchart of a method for sending a network message according to an embodiment of the present application
  • Fig. 3 is a schematic diagram of a message sending device according to an embodiment of the present application.
  • FIG. 4 is a schematic diagram of an example of a storage unit in an embodiment of the present application as an internal storage space
  • FIG. 5 is a schematic diagram of an example of a storage unit in an embodiment of the present application as a Cache space
  • FIG. 6 is a schematic diagram of an example of a storage unit of an embodiment of the present application as internal storage and Cache space;
  • FIG. 7 is a flowchart of a method for sending a network message according to another embodiment of the present application.
  • Fig. 8 is a flowchart of application example 1 of the present application.
  • Fig. 9 is a flowchart of application example 2 of the present application.
  • FIG. 10 is a schematic diagram of the composition of an apparatus for sending a network message according to an embodiment of the present application.
  • FIG. 11 is a schematic diagram of the composition of a network packet sending apparatus according to another embodiment of the present application.
  • FIG. 12 is a schematic diagram of the composition of a network processor in an embodiment of the present application.
  • MAC/IP/UDP and other information, data description information, and payload data are all placed in the external storage space of the network accelerator.
  • the bus except the payload data Traffic can be considered as additional bus traffic.
  • the payload length is smaller than the total length of the message (including header information)
  • large traffic scenarios reach hundreds of Gbps (GigaBit Per Second, Gigabit/sec)
  • Gbps gigaBit Per Second, Gigabit/sec
  • the current network message sending method is to construct MAC/IP/UDP and other information when sending, and then call the hardware interface to send the message.
  • the CPU Central Processing
  • the CPU Central Processing Unit
  • the CPU Central Processing Unit
  • each group of information such as MAC/IP/UDP requires thousands or even thousands of cycles (machine cycles).
  • there are disadvantages such as high CPU consumption due to information such as MAC/IP/UDP and low efficiency of software sending packets.
  • the packet sending method of the related technology is shown in Figure 1.
  • the network processor includes a descriptor processing unit 11, a command processing unit 12 and a statistical information processing unit 13.
  • the network processor interacts with the external storage space 14 through a bus (Bus) to obtain MAC/IP/UDP and other information, data description information, and payload data.
  • Bus bus
  • this kind of packet sending technology has high bus traffic pressure, low effective utilization of bus bandwidth, high CPU consumption and low message sending efficiency.
  • an embodiment of the present application proposes a method for sending a network message, including:
  • Step 201 The network processor obtains the header information of the network message from the mapping table, and generates the network message according to the header information and the payload; wherein, the mapping table is stored in the network processor.
  • the header information may include, but is not limited to, MAC information, IP information, UDP information, GTPU (GPRS Tunnel Protocol User Plane, General Packet Radio Service Channel Protocol-User Plane) information, SCTP (Stream Control Transmission Protocol, stream control transmission) Protocol) One or more of the information.
  • MAC information IP information
  • UDP information IP information
  • GTPU GPRS Tunnel Protocol User Plane, General Packet Radio Service Channel Protocol-User Plane
  • SCTP Stream Control Transmission Protocol, stream control transmission) Protocol
  • the mapping table may include the header information, an index number (Index), and a mapping relationship between the header information and the Index. Obtain the corresponding header information from the mapping table.
  • Index index number
  • an internal storage unit 20 is added to the network processor, and the memory can store the mapping table.
  • mapping table is stored in at least one of a memory and a cache of the network processor.
  • the internal storage unit 20 of the network processor may include memory (internal storage space 21).
  • the internal storage space 21 includes but is not limited to RAM (Random Access Memory), ROM (Read Only Memory, Read-only storage memory), RAM+ROM. It is used to store pre-configured MAC/IP/UDP header information and Index mapping, etc. Its space size can be configured to adapt to different application scenarios; in the process of sending a packet, only the Index used in this packet is obtained. The network processor will automatically match the corresponding MAC/IP/UDP and other information.
  • the storage unit 20 inside the network processor may include a cache (Cache space 22), which is used to automatically and dynamically add the MAC/IP/UDP header information in the external storage space 14 to the network processor
  • cache space 22 In the Cache space 22 of the module, designated entries are replaced according to preset replacement rules, so as to improve the efficiency of packet sending processing and reduce bus traffic when using external storage space.
  • the embodiment of the present application does not limit the independent number, size, cache performance, and whether to enable or disable the cache space.
  • the internal storage unit can include internal storage space (RAM, ROM, RAM+ROM) 21 and Cache space 22 at the same time, and the internal storage space 21 and Cache space 22 can be configured in the initialization phase according to requirements.
  • the size of the space the embodiment of the application does not limit the selection and size of its instantiation.
  • the storage unit 20 inside the network processor may also include internal storage space and Cache space management logic, which is used to maintain a mapping table between header information and Index, and add, delete and update Index.
  • step 201 before the step 201, it further includes:
  • the network processor generates the mapping table, and stores the mapping table in the network processor.
  • mapping table is stored in the storage unit 20 in the network processor.
  • the generation of the mapping table by the network processor includes:
  • the network processor obtains header information according to the cell configuration information, and establishes a mapping table in which the header information has a mapping relationship with the Index.
  • the corresponding source and destination MAC/IP are obtained through the configuration information of the cell. If the communication is encapsulated on the basis of a higher layer protocol, such as UDP, GTPU, SCTP, etc., the source and destination UDP, GTPU, SCTP information, compose them into complete header information.
  • a higher layer protocol such as UDP, GTPU, SCTP, etc.
  • the header information and Index have a mapping relationship
  • the MAC/IP/UDP header information can only correspond to one Index mapping table, or MAC, IP, and UDP respectively correspond to an Index mapping table, or one of them
  • the MAC/IP and UDP correspond to an Index mapping table.
  • the generation of the mapping table by the network processor includes:
  • the network processor obtains header information from a storage space located outside the network processor, and establishes a mapping table in which the header information has a mapping relationship with the Index.
  • the network processor may first generate header information in a storage space located outside the network processor, and then store the header information in a cache located inside the network processor, and establish a mapping between the header information and the Index The mapping table of the relationship, the next time it is used, the header information is directly obtained from the cache.
  • Step 202 The network processor sends the network packet.
  • the network processor sends out the assembled network message.
  • step 202 it may also include: the network processor collecting statistics on the sent network message information, which may include:
  • the network processor internally stores the header information of the network message, which reduces the bus traffic for accessing external storage space during transmission and saves bus bandwidth; the embodiment of the present application obtains the header information of the network message through a mapping table, reducing Software cycle consumption reduces software and hardware package time, and improves message sending efficiency; moreover, storing the header information inside the network processor shortens the path for obtaining header information, which is beneficial to improve the efficiency of network fault analysis.
  • the embodiments of the present application are implemented by software, the parameters of the software sending interface can be reduced, and the program stability can be improved.
  • internal storage space and/or cache space and related management logic are added to the network processor.
  • the command processing unit 12 judges whether there is a new descriptor in the command space to be sent, and if so, the descriptor processing unit 11 is started for processing; the descriptor processing unit 11 parses the descriptor, and obtains the payload address and length according to the content of the descriptor. And MAC/IP/UDP, message grouping and sending mode and other information, group messages, start message sending; the statistical information processing unit 13 counts the statistical information of the received and sent messages.
  • the external storage space 14 stores MAC/IP/UDP header information and payload required for transmission.
  • the embodiments of the present application do not limit the use, type, and size of the external storage space, and can be selected according to actual applications.
  • the bus connection structure is the physical connection between the network processor and the external storage space, and the network processor can realize read and write access to the external storage space through the bus.
  • the embodiment of the application does not limit the type, width, and number of buses used in the bus connection structure, and can be selected according to actual applications.
  • Step 301 The configuration header information and the mapping table are stored in a storage unit inside the network processor.
  • the software is initialized, and the MAC/IP/UDP header information and the mapping table are configured and stored in the storage unit inside the network processor.
  • the content of the header information is determined according to the protocol used, such as the MAC header information: receiver MAC address (6 bytes), sender MAC address (6 bytes), Ethernet type (two bytes), etc.
  • the embodiment of the application does not limit the types and combinations of header information such as MAC/IP/UDP, and may be header information such as MAC, IP, UDP, GTPU, and SCTP.
  • Step 302 Configure message descriptor information.
  • the message descriptor information may include the source address of the payload of the current packet, the length of the payload, the Index of the current packet, the command mode, etc. After the configuration is completed, the message is started to be sent.
  • Index is passed by the higher layer that configures the MAC/IP/UDP header information and the Index mapping table in the initialization phase.
  • Step 303 The network processor obtains the header information of the current packet transmission from the mapping table according to the Index.
  • This step enters the network sending process, and the network processor obtains the MAC/IP/UDP and other header information of the current packet from the mapping table of MAC/IP/UDP and other header information configured in step 301 and Index according to the Index.
  • Step 304 The network processor obtains the payload address and length of the current packet, obtains the payload, and sends the header information together with the payload to form a packet.
  • the descriptor processing unit in the network processor parses the message descriptor, obtains the payload address and length of this packet, and forms a packet together with header information such as MAC/IP/UDP and sends it.
  • Step 305 The network processor counts the messages sent this time.
  • the statistical information unit counts the number of messages sent this time, message length, process numbers used this time, physical port numbers, and so on.
  • Figure 4 The device implementation scheme involved in this application example is shown in Figure 4, and the method implementation process is shown in Figure 8.
  • the storage unit of the network processor in Figure 4 uses internal storage space.
  • Figure 8 uses the MAC/IP/UDP header information in the network processor and the Index mapping table to construct the network message.
  • the first step of the application example is as follows:
  • Step 401 After the software is initialized, if the communication base station establishes a cell, the MAC/IP of the destination is obtained through the configuration information of the cell. If the communication is encapsulated on the basis of a higher layer protocol, such as UDP, GTPU, SCTP, etc., add it accordingly The source and destination UDP, GTPU, and SCTP information are combined into complete header information.
  • a higher layer protocol such as UDP, GTPU, SCTP, etc.
  • the source and destination UDP, GTPU, and SCTP information are combined into complete header information.
  • the complete header information described in this application example is MAC/IP/UDP header information.
  • the implementation of the embodiment of the present application includes but is not limited to the scenario where the header information described in the first application example only contains MAC/IP/UDP.
  • the complete header information MAC/IP/UDP header described in step 401 is respectively configured in the storage unit 20 of the network processing module in FIG. 4, and a MAC/IP/UDP header information and Index mapping table is established.
  • the establishment relationship can be that the MAC/IP/UDP header information corresponds to only one Index, or MAC, IP, and UDP each correspond to an Index mapping table, or MAC/IP and UDP respectively correspond to an Index mapping table.
  • the mapping table between header information and Index described in the embodiment of the present application includes, but is not limited to, the index mapping table created by the combination of headers described above, and the mapping table of any combination of header types can be created according to application requirements.
  • Step 403 Enter the network sending process, the software completes the processing of sending the payload, and obtains the source end address and the payload length of the payload data stored in the external storage space described in FIG. 4.
  • Step 404 The software configures the message descriptor information, including the source address of the payload of the current packet, the length of the payload, the Index of the current packet, and the command processing mode.
  • step 405 the storage unit 20 in the network processor described in FIG. 4 obtains the MAC/IP/UDP header information of the current packet from the MAC/IP/UDP header information and the Index mapping table configured in step 402 according to the Index.
  • Step 406 Start the sending command, parse the descriptor via the descriptor processing unit and complete the packet sending.
  • the method of sending the command can be only one command, that is, there is only one message descriptor for this packet, or it can contain multiple commands, that is, the packet is sent according to the configured multiple message descriptor information to complete the packet sending process in turn.
  • step 407 it is judged whether the sending of the package is completed, if it is not completed, continue to send, and if it is completed, execute the next step.
  • step 408 the statistical information processing unit of the network processor accumulates the number of messages sent this time, the length of the messages, the process number used this time, the physical port number, etc. during the sending process.
  • Step 409 Wait for the completion of the update of the statistical information, and end the process of the current package delivery.
  • Fig. 9 is a conventional message sending process, in this application example, the MAC/IP/UDP header information stored in the external storage space obtained for the first time is added to the Cache space.
  • Step 501 Enter the network sending process, the software completes the processing of sending the payload, and obtains the source end address and the payload length of the payload data stored in the external storage space described in FIG. 5.
  • Step 502 Apply for an external storage space, which is used to store MAC/IP/UDP header information required for transmission.
  • the embodiment of the application does not limit the type and size of the external storage space described, and can be selected according to actual application scenarios.
  • Step 503 Construct the MAC/IP/UDP header information sent this time and store it in the external storage space.
  • the structure of the MAC/IP/UDP header information may be a software or hardware structure, and the embodiment of the present application does not limit the structure of the MAC/IP/UDP header information.
  • Step 504 The software configures the message descriptor information, including the source address of the payload of the current packet, the length of the payload, and the command processing mode.
  • Steps 505 to 508 are the same as steps 406 to 409 of application example 1.
  • the MAC/IP/UDP header information used for the first time from the external storage space is stored in the Cache space of the network processor after the end of this transmission. Within the storage capacity of the Cache space, if the MAC/IP/UDP header information is not set If it is invalid, the next time the MAC/IP/UDP header information is used, the match will be searched first in the Cache.
  • the Cache can set the enable bit.
  • the three steps of application example are similar to steps 405-409 of application example 1, except that when there are too many MAC/IP/UDP header information items actually used, and the internal storage space of the storage unit in the network processor is limited, the internal Storage space + Cache space.
  • the software needs to plan the MAC/IP/UDP header information entries stored in the internal storage space and the external storage space according to the frequency of header information entries in the actual scene and the requirements of the traffic plan. If the header information used when sending the package is stored in the internal storage space, the package sending process is basically the same as the application example one; the header information used when sending the package is stored in the external storage space, the package sending process is basically the same as the application example two.
  • application example three is a combination of application example one and application example two.
  • this embodiment of the present application adds a new method of using the MAC/IP/UDP header information and Index mapping table in the network processor. This method can effectively solve the bandwidth bottleneck of accessing external storage space and improve the efficiency of packet delivery.
  • an embodiment of the present application further provides an apparatus for sending network packets, including:
  • the obtaining module 61 is configured to obtain the header information of the network message from the mapping table, and generate the network message according to the header information and the payload; wherein the mapping table is stored in the network processor; the sending module 62 uses To send the network message.
  • the mapping table includes the header information, an index number, and a mapping relationship between the header information and the index number
  • the acquisition module 61 is configured to: according to the index number, according to the mapping The relationship obtains the corresponding header information from the mapping table.
  • the device further includes: a generating module 63, configured to generate the mapping table, and store the mapping table in the network processor.
  • the generating module 63 is configured to obtain header information according to cell configuration information, and establish a mapping table in which the header information and the index number have a mapping relationship.
  • the generating module 63 is configured to obtain header information from a storage space located outside the network processor, and establish a mapping table in which the header information and the index number have a mapping relationship.
  • mapping table is stored in at least one of a memory and a cache of the network processor.
  • the header information includes at least one of MAC information, IP information, UDP information, GTPU information, and SCTP information.
  • an embodiment of the present application further provides a network processor, including: a memory 71, a processor 72, and a computer program 73 stored on the memory 71 and running on the processor 72.
  • the processor 72 The method for sending the network message is realized when the program is executed.
  • An embodiment of the present application also provides a computer-readable storage medium that stores computer-executable instructions, and the computer-executable instructions are used to execute the method for sending the network message.
  • the foregoing storage medium may include, but is not limited to: U disk, Read-Only Memory (ROM), Random Access Memory (RAM, Random Access Memory), mobile hard disk, magnetic disk or optical disk, etc.
  • U disk Read-Only Memory
  • RAM Random Access Memory
  • RAM Random Access Memory
  • mobile hard disk magnetic disk or optical disk, etc.
  • Such software may be distributed on a computer-readable medium
  • the computer-readable medium may include a computer storage medium (or non-transitory medium) and a communication medium (or transitory medium).
  • the term computer storage medium includes volatile and non-volatile memory implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data).
  • Computer storage media include but are not limited to RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cassette, tape, magnetic disk storage or other magnetic storage device, or Any other medium used to store desired information and that can be accessed by a computer.
  • communication media usually contain computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as carrier waves or other transmission mechanisms, and may include any information delivery media .

Landscapes

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

Abstract

一种网络报文发送的方法、装置、网络处理器和计算机可读存储介质,所述方法包括:网络处理器从映射表获取网络报文的头信息,根据所述头信息和净荷生成网络报文;其中,所述映射表存储于所述网络处理器内部;所述网络处理器发送所述网络报文。

Description

一种网络报文发送的方法、装置和网络处理器
相关申请的交叉引用
本申请基于申请号为201910734622.X、申请日为2019年8月9日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此以引入方式并入本申请。
技术领域
本文涉及但不限于一种网络报文发送的方法、装置、网络处理器和计算机可读存储介质。
背景技术
网络报文的发送均需要配置报文的MAC(Media Access Control,介质访问控制)/IP(Internet Protocol,网际协议)/UDP(User Datagram Protocol,用户数据报协议)等信息。
相关技术的网络报文发送方式占用了大量CPU计算,使得CPU消耗大,发送报文效率较低。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本申请实施例提供了一种网络报文发送的方法,包括:网络处理器从映射表获取网络报文的头信息,根据所述头信息和净荷生成网络报文;其中,所述映射表存储于所述网络处理器内部;所述网络处理器发送所述网络报文。
本申请实施例还提供一种网络报文发送的装置,包括:获取模块,用于 从映射表获取网络报文的头信息,根据所述头信息和净荷生成网络报文;其中,所述映射表存储于所述网络处理器内部;发送模块,用于发送所述网络报文。
本申请实施例还提供一种网络处理器,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述网络报文发送的方法。
本申请实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述网络报文发送的方法。
在阅读并理解了附图和详细描述后,可以明白其他方面。
附图说明
图1是主流报文发送装置示意图;
图2是本申请实施例的网络报文发送的方法的流程图;
图3是本申请实施例的报文发送装置示意图;
图4是本申请实施例的存储单元例化为内部存储空间的示意图;
图5是本申请实施例的存储单元例化为Cache空间的示意图;
图6是本申请实施例的存储单元例化为内部存储及Cache空间的示意图;
图7是本申请另一实施例的网络报文发送的方法的流程图;
图8是本申请应用实例一的流程图;
图9是本申请应用实例二的流程图;
图10是本申请实施例的一种网络报文发送的装置的组成示意图;
图11是本申请另一实施例的一种网络报文发送的装置的组成示意图;
图12是本申请实施例的网络处理器的组成示意图。
具体实施方式
下文中将结合附图对本申请的实施例进行详细说明。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机 系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
相关技术中,MAC/IP/UDP等信息、数据描述信息以及净荷数据均放在网络加速器的外部存储空间,发送报文时会产生大量的系统总线流量,其中,除净荷数据外的总线流量均可认为是额外的总线流量。尤其在净荷长度占比报文总长度(包含头部信息)较小、以及达到数百Gbps(GigaBit Per Second,千兆/秒)以上的大流量场景,发送报文时频繁通过总线访问外部存储空间配置及获取MAC/IP/UDP等信息,造成了总线流量压力大、总线带宽有效利用率低。
除此之外,目前网络报文发送方式均是在发送时构造MAC/IP/UDP等信息,然后再调用硬件接口将报文发送出去,这种方案虽然灵活,但每次发包CPU(Central Processing Unit,中央处理单元)均需要通过访问总线配置及获取MAC/IP/UDP等信息,占用了大量CPU计算。据统计数据分析,每次组MAC/IP/UDP等信息需要上千甚至几千cycles(机器周期)。尤其是发包次数较多的场景,存在因组MAC/IP/UDP等信息占用CPU消耗大,软件发送报文效率较低的不足。
相关技术的发包方式如图1所示,其中,网络处理器包括描述符处理单元11、命令处理单元12和统计信息处理单元13,网络处理器通过总线(Bus)与外部存储空间14交互,获取MAC/IP/UDP等信息、数据描述信息以及净荷数据等。如前所述,这种发包技术存在总线流量压力大、总线带宽有效利用率低,以及占用CPU消耗大、发送报文效率较低等情况。
参照图2和图3,本申请实施例提出一种网络报文发送的方法,包括:
步骤201,网络处理器从映射表获取网络报文的头信息,根据所述头信息和净荷生成网络报文;其中,所述映射表存储于所述网络处理器内部。
其中,所述头信息可以包括但不限于MAC信息、IP信息、UDP信息、GTPU(GPRS Tunnel Protocol User Plane,通用分组无线服务通道协议-用户面)信息、SCTP(Stream Control Transmission Protocol,流控制传输协议)信息中的一种或多种。
在一实施例中,所述映射表可以包括所述头信息、索引号(Index)、以 及所述头信息和Index的映射关系,所述网络处理器根据Index,按照所述映射关系从所述映射表中获取对应的头信息。
参照图3,本申请实施例中,网络处理器上新增内部的存储单元20,该存储器可以存储所述映射表。
在一实施例中,所述映射表存储于所述网络处理器的内存和缓存中的至少之一。
参照图4,所述网络处理器内部的存储单元20可以包括内存(内部存储空间21),该内部存储空间21包括但不限于RAM(Random Access Memory,随机存储内存),ROM(Read Only Memory,只读存储内存),RAM+ROM。其用于存储预先配置的MAC/IP/UDP头信息及Index的映射等,其空间大小可配,以适配不同的应用场景;在发包过程中,只需获取到本次发包使用的Index,网络处理器将自动匹配对应的MAC/IP/UDP等信息。
参照图5,所述网络处理器内部的存储单元20可以包括缓存(Cache空间22),用于当使用外部存储空间14中的MAC/IP/UDP头信息时,可自动动态添加至网络处理器模块的Cache空间22中,根据预设的替换规则替换指定条目,达到在使用外部存储空间时提高发包处理效率及降低总线流量的效果。本申请实施例对Cache空间的独立数量、大小、缓存性能、是否使能等不作限制。
参照图6,所述的内部存储单元可以同时包括内部存储空间(RAM,ROM,RAM+ROM)21和Cache空间22,且内部存储空间21与Cache空间22可根据需求在初始化阶段配置例化的空间大小,本申请实施例对其例化的选择及其大小不作限制。
所述网络处理器内部的存储单元20还可以包括内部存储空间及Cache空间的管理逻辑,用于维护头信息与Index的映射表,增加、删除和更新Index。
在一实施例中,所述步骤201之前,还包括:
所述网络处理器生成所述映射表,将所述映射表存储于所述网络处理器内部。
也就是说,将所述映射表存储于所述网络处理器中的存储单元20中。
在一实施例中,所述网络处理器生成所述映射表,包括:
所述网络处理器根据小区配置信息获取头信息,建立所述头信息与Index具有映射关系的映射表。
其中,通过小区的配置信息获取到相应的源端、目的端的MAC/IP,如果通信是封装在更高层的协议基础上,如UDP、GTPU、SCTP等,则相应添加源端、目的端UDP、GTPU、SCTP信息,将其组成完整的头信息。
建立所述头信息与Index具有映射关系的映射表,其中,可以是MAC/IP/UDP头信息只对应一个Index映射表,也可以是MAC、IP、UDP分别对应一个Index映射表,或者是其中的MAC/IP、UDP分别对应一个Index映射表。
在一实施例中,所述网络处理器生成所述映射表,包括:
所述网络处理器从位于所述网络处理器外部的存储空间获取头信息,建立所述头信息与Index具有映射关系的映射表。
其中,可以是网络处理器先在位于所述网络处理器外部的存储空间生成头信息,然后将该头信息存储到位于所述网络处理器内部的缓存中,建立所述头信息与Index具有映射关系的映射表,下次使用时,直接从缓存中获取头信息。
步骤202,所述网络处理器发送所述网络报文。
本步骤中,所述网络处理器将组装好的网络报文发送出去。
步骤202之后,还可以包括:所述网络处理器对发送的网络报文信息进行统计,可以包括:
对本次发送的网络报文的个数、报文长度、本次发送使用的进程号、物理端口号等进行累加计数。
本申请实施例中,网络处理器内部存储了网络报文的头信息,减少发送时访问外部存储空间的总线流量,节省总线带宽;本申请实施例通过映射表获取网络报文的头信息,减少软件的cycle消耗,减少软硬件组包时间,提高报文发送效率;而且,将头信息存于网络处理器内部,缩短获取头信息的路径,有利于提高网络故障分析效率。本申请实施例采用软件实现时,可以减 少软件发送接口的参数,提高程序稳定性。
参照图3~6,本申请实施例中,在网络处理器上新增内部存储空间和/或缓存空间以及相关管理逻辑(MAC/IP/UDP等信息体与Index的映射等)。
其中,命令处理单元12判断命令空间是否有新的描述符需要发送,若有就启动描述符处理单元11进行处理;描述符处理单元11解析描述符,根据描述符的内容获取净荷地址、长度和MAC/IP/UDP、报文组包和发送方式等信息,并组报文,启动报文发送;统计信息处理单元13于统计收发报文的统计信息。
所述外部存储空间14存储发送时所需要的MAC/IP/UDP头信息、净荷。本申请实施例对所述的外部存储空间的使用与否、类型及大小不作限制,可根据实际应用场合选择。
总线连接结构是网络处理器和外部存储空间的物理连接,网络处理器可通过总线实现对外部存储空间的读写访问。本申请实施例对所述的总线连接结构使用的总线类型、宽度、数量不作限制,可根据实际应用选择。
下面以一个实施例说明构造及发送网络报文的方法,如图7所示,包括如下步骤:
步骤301,配置头信息与映射表并存于网络处理器内部的存储单元。
本步骤中,进行软件初始化,配置MAC/IP/UDP等头信息与映射表并存于网络处理器内部的存储单元。
所述头信息是根据使用的协议确定其内容,如MAC头信息:接收方MAC地址(6字节)、发送方MAC地址(6字节)、以太类型(两字节)等。
本申请实施例对MAC/IP/UDP等头信息的类型、组合不作限制,可以是MAC、IP、UDP、GTPU、SCTP等头信息。
步骤302,配置报文描述符信息。
所述报文描述符信息可包括本次发包的净荷源端地址、净荷长度、本次发包的Index、命令方式等,配置结束后启动发送报文。
其中,Index是由初始化阶段配置MAC/IP/UDP等头信息与Index映射表的高层传递。
步骤303,网络处理器根据Index从映射表中获取本次发包的头信息。
本步骤进入网络发送进程,网络处理器根据Index从步骤301配置的MAC/IP/UDP等头信息与Index的映射表获取本次发包的MAC/IP/UDP等头信息。
步骤304,网络处理器获取本次发包的净荷地址、长度,获取净荷,将头信息与净荷共同组包发送。
其中,网络处理器中描述符处理单元解析报文描述符,获取本次发包的净荷地址、长度,并与MAC/IP/UDP等头信息共同组包发送。
步骤305,网络处理器对本次发送的报文进行统计。
其中,由统计信息单元对本次发送的报文个数、报文长度、本次发送使用的进程号、物理端口号等进行累加计数。
下面以一些应用实例进行说明。
应用实例一:
本应用实例涉及的装置实施方案如图4,方法实现流程如图8。图4网络处理器的存储单元使用的是内部存储空间,图8采用网络处理器中的MAC/IP/UDP头信息与Index映射表的方式进行构造网络报文。
应用实例一步骤如下:
步骤401,软件初始化后,如通信基站建立小区后,通过小区的配置信息获取到目的端的MAC/IP,如果通信是封装在更高层的协议基础上,如UDP、GTPU、SCTP等,则相应添加源端、目的端UDP、GTPU、SCTP信息,将其组成完整的头部信息。为简化描述,本应用实例中描述的完整头部信息为MAC/IP/UDP头信息。本申请实施例的实施方案包括但不仅限于本应用实例一描述的头部信息只包含MAC/IP/UDP的场景。
步骤402,将步骤401描述的完整头部信息MAC/IP/UDP头分别配置至图4中网络处理模块的存储单元20中,建立MAC/IP/UDP头信息与Index映 射表。建立关系可以是MAC/IP/UDP头信息只对应一个Index,也可以是MAC、IP、UDP分别对应一个Index映射表,或者是其中的MAC/IP、UDP分别对应一个Index映射表。本申请实施例描述的头信息与Index的映射表包括但不限于以上描述的头部组合建立Index映射表,可以根据应用场合需求建立任意头部种类组合的映射表。
步骤403,进入网络发送进程,软件完成发送净荷的处理,获取存储于图4描述的外部存储空间的净荷数据源端地址及净荷长度。
步骤404,软件配置报文描述符信息,包括本次发包的净荷源端地址、净荷长度、本次发包的Index、命令处理方式等。
步骤405,图4描述的网络处理器中的存储单元20根据Index从步骤402中配置的MAC/IP/UDP头信息与Index映射表获取本次发包的MAC/IP/UDP头信息。
步骤406,启动发送命令,经描述符处理单元解析描述符并完成组包发送。发送命令的方式可以是只有一个命令,即本次发包只有一个报文描述符,也可以包含多个命令,即本次发包依次根据配置的多个报文描述符信息完成发包过程。
步骤407,判断发包是否完成,若未完成,继续发送,若完成,执行下一步。
步骤408,网络处理器的统计信息处理单元在发送过程对本次发送的报文个数、报文长度、本次发送使用的进程号、物理端口号等进行累加计数。
步骤409,等待统计信息更新完成,结束本次发包过程。
应用实例二:
将应用实例一网络处理器中存储单元的具体例化对象由内部存储空间替换为Cache空间,构成本应用实例的装置实施方案图5。本应用实例采用的方法如图9。图9虽然是常规的报文发送流程,但在本应用实例中,将首次获取的存储于外部存储空间的MAC/IP/UDP头信息添加至Cache空间。
应用实例二步骤如下:
步骤501,进入网络发送进程,软件完成发送净荷的处理,获取存储于图5描述的外部存储空间的净荷数据源端地址及净荷长度。
步骤502,申请外部存储空间,该空间用于存储发送时所需要的MAC/IP/UDP头信息。本申请实施例对描述的外部存储空间的类型及大小不作限制,可根据实际应用场合选择。
步骤503,构造本次发送的MAC/IP/UDP头信息,并将其存储于外部存储空间。该MAC/IP/UDP头信息的构造可以是软件或者是硬件构造,本申请实施例对MAC/IP/UDP头信息的构造方式不作限制。
步骤504,软件配置报文描述符信息,包括本次发包的净荷源端地址、净荷长度、命令处理方式等。
步骤505~508,与应用实例一的步骤406~409相同。
从外部存储空间首次使用的MAC/IP/UDP头信息,在本次发送结束后存于网络处理器的Cache空间中,在Cache空间存储能力范围内,若MAC/IP/UDP头信息未被置为无效,则下次使用到该MAC/IP/UDP头信息时,优先在Cache中查找匹配。该Cache可设置使能位。
应用实例三:
当MAC/IP/UDP头信息组合太多,受限于网络处理器的存储单元大小,可结合应用实例一和应用实例二实施。保持灵活性的同时,也对发送报文的效率作适当提升。
应用实例三步骤与应用实例一的步骤405~409相似,区别在于当实际使用的MAC/IP/UDP头信息条目太多,而网络处理器中存储单元的内部存储空间有限,此时需要使用内部存储空间+Cache空间的方式。软件在初始化阶段需根据实际场景中头信息条目频度和流量方案需求,分别规划存储至内部存储空间和外部存储空间的MAC/IP/UDP头信息条目。若发包时使用的头信息存储于内部存储空间,则发包的流程与应用实例一基本相同;发包时使用的头信息存储于外部存储空间,则发包流程与应用实例二基本相同。本质上应用实例三是应用实例一和应用实例二的组合使用。
综上所述,本申请实施例提供的技术方案,实现简单、灵活,技术人员可根据实际应用场景选择使用的方式。在保持传统的发包组包灵活性的基础上,本申请实施例新增了采用网络处理器中的MAC/IP/UDP头信息与Index映射表的方式。该方式能够有效解决访问外部存储空间的带宽瓶颈,提高发包的效率。
如图10所示,本申请实施例还提供一种网络报文发送的装置,包括:
获取模块61,用于从映射表获取网络报文的头信息,根据所述头信息和净荷生成网络报文;其中,所述映射表存储于所述网络处理器内部;发送模块62,用于发送所述网络报文。
在一实施例中,所述映射表包括所述头信息、索引号、以及所述头信息和所述索引号的映射关系,所述获取模块61,用于:根据索引号,按照所述映射关系从所述映射表中获取对应的头信息。
如图11所示,在一实施例中,所述装置还包括:生成模块63,用于生成所述映射表,将所述映射表存储于所述网络处理器内部。
在一实施例中,所述生成模块63,用于:根据小区配置信息获取头信息,建立所述头信息与索引号具有映射关系的映射表。
在一实施例中,所述生成模块63,用于:从位于所述网络处理器外部的存储空间获取头信息,建立所述头信息与索引号具有映射关系的映射表。
在一实施例中,所述映射表存储于所述网络处理器的内存和缓存中的至少之一。
在一实施例中,所述头信息包括MAC信息、IP信息、UDP信息、GTPU信息、SCTP信息中的至少之一。
如图12所示,本申请实施例还提供一种网络处理器,包括:存储器71、处理器72及存储在存储器71上并可在处理器72上运行的计算机程序73,所述处理器72执行所述程序时实现所述网络报文发送的方法。
本申请实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述网络报文发送的方法。
在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施例中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (10)

  1. 一种网络报文发送的方法,包括:
    网络处理器从映射表获取网络报文的头信息,根据所述头信息和净荷生成网络报文;其中,所述映射表存储于所述网络处理器内部;
    所述网络处理器发送所述网络报文。
  2. 如权利要求1所述的方法,其中,所述映射表包括所述头信息、索引号、以及所述头信息和所述索引号的映射关系,所述网络处理器从映射表获取网络报文的头信息,包括:
    所述网络处理器根据索引号,按照所述映射关系从所述映射表中获取对应的头信息。
  3. 如权利要求1所述的方法,其中,所述网络处理器从映射表获取网络报文的头信息之前,所述方法还包括:
    所述网络处理器生成所述映射表,将所述映射表存储于所述网络处理器内部。
  4. 如权利要求3所述的方法,其中,所述网络处理器生成所述映射表,包括:
    所述网络处理器根据小区配置信息获取头信息,建立所述头信息与索引号具有映射关系的映射表。
  5. 如权利要求3所述的方法,其中,所述网络处理器生成所述映射表,包括:
    所述网络处理器从位于所述网络处理器外部的存储空间获取头信息,建立所述头信息与索引号具有映射关系的映射表。
  6. 如权利要求1所述的方法,其中,
    所述映射表存储于所述网络处理器的内存和缓存中的至少之一。
  7. 如权利要求1~6中任意一项所述的方法,其中,
    所述头信息包括介质访问控制MAC信息、网际协议IP信息、用户数据报协议UDP信息、通用分组无线服务通道协议-用户面GTPU信息、流控制传输协议SCTP信息中的至少之一。
  8. 一种网络报文发送的装置,其中,包括:
    获取模块,用于从映射表获取网络报文的头信息,根据所述头信息和净荷生成网络报文;其中,所述映射表存储于所述网络处理器内部;
    发送模块,用于发送所述网络报文。
  9. 一种网络处理器,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1~7中任意一项所述网络报文发送的方法。
  10. 一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~7中任意一项所述网络报文发送的方法。
PCT/CN2020/107013 2019-08-09 2020-08-05 一种网络报文发送的方法、装置和网络处理器 WO2021027645A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP20852721.8A EP3989498B1 (en) 2019-08-09 2020-08-05 Method and network processor for sending network message

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910734622.XA CN112350957B (zh) 2019-08-09 2019-08-09 一种网络报文发送的方法、装置和网络处理器
CN201910734622.X 2019-08-09

Publications (1)

Publication Number Publication Date
WO2021027645A1 true WO2021027645A1 (zh) 2021-02-18

Family

ID=74366889

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/107013 WO2021027645A1 (zh) 2019-08-09 2020-08-05 一种网络报文发送的方法、装置和网络处理器

Country Status (3)

Country Link
EP (1) EP3989498B1 (zh)
CN (1) CN112350957B (zh)
WO (1) WO2021027645A1 (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1091523A2 (en) * 1999-09-29 2001-04-11 Nec Corporation Speed converter for IEEE-1394 serial bus network
CN1933450A (zh) * 2006-10-26 2007-03-21 杭州华为三康技术有限公司 板间通信方法及接口板
CN101841476A (zh) * 2010-04-22 2010-09-22 北京星网锐捷网络技术有限公司 报文处理方法、装置和网络设备
CN102404789A (zh) * 2010-09-15 2012-04-04 华为技术有限公司 数据包处理方法、设备及系统
CN103179085A (zh) * 2011-12-20 2013-06-26 华为技术有限公司 网际协议头置换映射关系的获取方法及网络节点
US20140047188A1 (en) * 2011-04-18 2014-02-13 Huawei Technologies Co., Ltd. Method and Multi-Core Communication Processor for Replacing Data in System Cache
US20150098469A1 (en) * 2013-02-21 2015-04-09 Applied Micro Circuits Corporation Tcp segmentation offload in a server on a chip
CN106330788A (zh) * 2016-08-19 2017-01-11 北京网迅科技有限公司杭州分公司 报文分片传输方法和装置
CN108809854A (zh) * 2017-12-27 2018-11-13 北京时代民芯科技有限公司 一种用于大流量网络处理的可重构芯片架构

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032035B2 (en) * 2000-12-08 2006-04-18 Intel Corporation Method and apparatus for improving transmission performance by caching frequently-used packet headers
US10491718B2 (en) * 2016-05-18 2019-11-26 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for processing packets in a network device

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1091523A2 (en) * 1999-09-29 2001-04-11 Nec Corporation Speed converter for IEEE-1394 serial bus network
CN1933450A (zh) * 2006-10-26 2007-03-21 杭州华为三康技术有限公司 板间通信方法及接口板
CN101841476A (zh) * 2010-04-22 2010-09-22 北京星网锐捷网络技术有限公司 报文处理方法、装置和网络设备
CN102404789A (zh) * 2010-09-15 2012-04-04 华为技术有限公司 数据包处理方法、设备及系统
US20140047188A1 (en) * 2011-04-18 2014-02-13 Huawei Technologies Co., Ltd. Method and Multi-Core Communication Processor for Replacing Data in System Cache
CN103179085A (zh) * 2011-12-20 2013-06-26 华为技术有限公司 网际协议头置换映射关系的获取方法及网络节点
US20150098469A1 (en) * 2013-02-21 2015-04-09 Applied Micro Circuits Corporation Tcp segmentation offload in a server on a chip
CN106330788A (zh) * 2016-08-19 2017-01-11 北京网迅科技有限公司杭州分公司 报文分片传输方法和装置
CN108809854A (zh) * 2017-12-27 2018-11-13 北京时代民芯科技有限公司 一种用于大流量网络处理的可重构芯片架构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3989498A4 *

Also Published As

Publication number Publication date
EP3989498A4 (en) 2022-07-13
EP3989498A1 (en) 2022-04-27
CN112350957A (zh) 2021-02-09
EP3989498B1 (en) 2024-01-03
CN112350957B (zh) 2024-06-07

Similar Documents

Publication Publication Date Title
CN102769869B (zh) 无线接入点的控制和配置报文快速转发系统
US11502962B2 (en) Method, apparatus, and system for implementing data transmission
WO2024067336A1 (zh) 报文处理方法、可编程网卡设备、物理服务器及存储介质
US20210014179A1 (en) Packet fragment processing method and apparatus and system
WO2020258302A1 (zh) 一种数据传输方法、交换机及站点
US20210218688A1 (en) Method and Apparatus for Load Balancing and Packet Re-Sequencing on Network
US20200220953A1 (en) Packet processing method and apparatus
WO2020259112A1 (zh) 一种检测传输时延的方法及相关设备
EP3813318B1 (en) Packet transmission method, communication device, and system
EP4057576A1 (en) Packet encapsulating method and apparatus, and packet decapsulating method and apparatus
US20230006937A1 (en) Packet flow identification with reduced decode operations
WO2022116953A1 (zh) 报文处理方法、设备、系统及存储介质
WO2023125380A1 (zh) 一种数据管理的方法及相应装置
US20230091501A1 (en) Port status configuration method, apparatus, and system, and storage medium
EP2953302B1 (en) Service packet processing method, apparatus and system
CN105634977A (zh) 发现路径最大传输单元的方法和装置
CN107070719B (zh) 一种设备管理方法和装置
Jain et al. Evolving to 6G: Improving the Cellular Core to lower control and data plane latency
US12003417B2 (en) Communication method and apparatus
CN111385156B (zh) sFlow流采样方法、装置及系统
EP2996303A1 (en) Input parameter generation method and device
WO2021027645A1 (zh) 一种网络报文发送的方法、装置和网络处理器
CN106712983B (zh) 运行、管理和维护oam报文处理方法及装置
CN116886621A (zh) 报文转发控制方法、dpu及相关设备
CN114793199A (zh) 一种报文处理方法、装置及网络设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20852721

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020852721

Country of ref document: EP

Effective date: 20220120

NENP Non-entry into the national phase

Ref country code: DE