WO2022174444A1 - Procédé et appareil de transmission de flux de données, et dispositif de réseau - Google Patents

Procédé et appareil de transmission de flux de données, et dispositif de réseau Download PDF

Info

Publication number
WO2022174444A1
WO2022174444A1 PCT/CN2021/077239 CN2021077239W WO2022174444A1 WO 2022174444 A1 WO2022174444 A1 WO 2022174444A1 CN 2021077239 W CN2021077239 W CN 2021077239W WO 2022174444 A1 WO2022174444 A1 WO 2022174444A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
channel
data stream
output
flow
Prior art date
Application number
PCT/CN2021/077239
Other languages
English (en)
Chinese (zh)
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 PCT/CN2021/077239 priority Critical patent/WO2022174444A1/fr
Priority to CN202180092641.2A priority patent/CN116889024A/zh
Publication of WO2022174444A1 publication Critical patent/WO2022174444A1/fr

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/54Allocation or scheduling criteria for wireless resources based on quality criteria

Definitions

  • the present application relates to the field of communication technologies, and in particular, to a data stream transmission method, apparatus, and network device.
  • the bandwidth processing capability, the number of ports, and the number of users supported by network devices increase rapidly, and more and more types of services are carried on network devices, so that a network device can carry massive amounts of data.
  • the services can include voice calls, video calls, remote control, and automatic driving. The requirements are very high, and priority service needs to be ensured regardless of the current network status is congested or not.
  • a network device when a network device transmits a data stream through a network card, it usually divides the data stream into a non-congested stream and a congested stream according to the service type of the data stream, and stores the non-congested stream in the on-chip cache of the network card. Stored in the off-chip cache of the NIC. After that, when scheduling the output of the data stream, read the data stream from the on-chip cache and the off-chip cache, and differentiate the two channels of high priority and low priority according to the business priority.
  • Data flows with higher levels are buffered on high-priority channels, and data flows and congested flows with lower priorities among non-congested flows are buffered on low-priority channels, and the high-priority channels are preferentially served. Since the read delay of the on-chip cache is extremely small, and the data flow with higher priority in the non-congested flow is output through the high-priority channel, the high-priority data flow can be output quickly, so as to obtain a lower delay.
  • the congested stream is stored in the off-chip cache, which has a large read delay, and the low-priority data stream in the non-congested stream is output through the low-priority channel, so it is necessary to wait for the congested stream to be read and then queue up for output.
  • This will increase the delay of low-priority data streams in non-congested streams, and will reduce the efficiency of on-chip cache allocation and release to a certain extent.
  • the present application provides a data stream transmission method, device and network device, which can be used to reduce the delay of low-priority data streams in non-congested streams, thereby improving the efficiency of on-chip cache allocation and release, thereby improving on-chip cache utilization rate.
  • a first aspect provides a data stream transmission method, which is applied to a network card, the network card is coupled with an off-chip cache, the network card includes an on-chip cache, a first channel and a second channel, and the priority of the first channel is higher than that of the second channel.
  • the priority of the channel includes: receiving the first packet of the first data flow, and according to the first data flow
  • the service type determines that the first data flow is a non-congested flow or a congested flow, the first data flow may include multiple packets, the first packet is any one of the multiple packets, and the first packet may Including the first queue index used to indicate the first data stream; if the first data stream is a non-congested stream, for example, the first data stream is data for services that require relatively high latency, such as video calls, remote control, or automatic driving stream, store the first packet in the on-chip cache, and when triggering the scheduling instruction of the first data stream, read the first packet of the first data stream from the on-chip cache and output it through the first channel ; If the first data flow is a congested flow, for example, the first data flow is a data flow of services that are not sensitive to delay and packet loss, such
  • the network card when the network card receives the message of the first data flow, if the first data flow is a non-congested flow, the message of the first data flow is stored in the on-chip cache, and the first data flow is scheduled.
  • the data stream is read from the on-chip cache, it is output through the first channel with high priority. Since the read delay of the on-chip cache is small, it can ensure that both high-priority and low-priority data streams in non-congested streams can be quickly processed. To a certain extent, the efficiency of the allocation and release of the on-chip cache is improved, thereby improving the utilization of the on-chip cache.
  • the packets of the first data stream are stored in the off-chip cache, and are read from the off-chip cache when the first data stream is scheduled and passed through the second low-priority second stream.
  • the buffer requirements for congested flows can be guaranteed.
  • the network card determines that the first data flow is a non-congested flow or a congested flow according to a service type of the first data flow, including: if the service type of the first data flow is a delay requirement If the service type of the first data flow is less than the first delay, it is determined that the first data flow is a non-congested flow; if the service type of the first data flow is a service type whose delay requirement is greater than the second delay, it is determined that the first data flow is a congested flow. , the second delay is greater than the first delay.
  • the method may further include: the network card determines according to the port, user priority, and/or real-time corresponding to the first data stream.
  • the queue length determines whether the first data flow is a congested flow or a non-congested flow. For example, if the transmission rate of the port corresponding to the first data stream is high, the user priority is high, or the real-time queue is short, the network card can determine that the first data stream is a non-congested stream. If the rate is low, the user priority is low, or the real-time queue is long, the network card may determine that the first data flow is a congested flow.
  • the method further includes: when receiving the second packet of the first data flow, storing the second packet in the off-chip cache, and the second packet of the second packet is stored in the off-chip cache.
  • the sequence number is greater than the first sequence number of the first packet.
  • the first packet may be a packet before the first data flow is converted from a non-congested flow to a congested flow, and the second packet may be a first data flow from a non-congested flow.
  • a packet after the flow is converted into a congested flow and the sequence number of each packet can be used to indicate the position of the packet in the first data stream (also called the sending order); in the first data stream, the sequence number is less than After the packet of the second sequence number of the second packet is output through the first channel, that is, after all the packets of the first data stream received before the second packet are output, the second packet is read from the off-chip cache. The message is output through the second channel.
  • the received second packet of the first data flow can be stored in the off-chip cache to avoid the first data flow.
  • the packets of the data stream are accumulated in the on-chip cache, thereby improving the efficiency of the allocation and release of the on-chip cache to a certain extent; in addition, when scheduling the first data stream, the After the packet whose sequence number is smaller than the second sequence number is output, the second packet is read from the off-chip cache and output through the second channel, which can avoid the first data stream being converted from the non-congested stream to the congested stream.
  • the text is out of order.
  • the method further includes: when the first packet of the first data stream is input to the first channel, adding an input quantity of the packets of the first data stream in the first channel to One; when the first packet is output from the first channel, add one to the output number of the packets of the first data stream in the first channel; when the second packet is input to the second channel, carry the input number in the first channel In the control information of the two packets; wherein, when the output quantity is greater than or equal to the input quantity carried by the control information of the second packet, the packet whose sequence number is smaller than the second sequence number in the first data stream has passed the first channel output.
  • the network card outputs all the packets of the first data stream received before the second packet
  • the second packet is output through the second channel, thereby ensuring that the first data stream is sent from the first data stream.
  • the packet is out of order.
  • the method further includes: when a third packet of the first data flow is received, storing the third packet in the on-chip cache, where the third packet may be the third packet of the first data stream.
  • a packet after a data stream is converted from a congested stream to a non-congested stream the sequence number of each packet can be used to indicate the position of the packet in the first data stream (also called the sending order); if the second If the packets of the first data stream in the channel are not all output, the third packet is read from the on-chip buffer and output through the second channel; if all the packets of the first data stream in the second channel are output, the third packet is read from the The third message is read in the internal buffer and output through the first channel.
  • the received third packet of the first data flow is stored in the on-chip cache, which can guarantee the first data flow.
  • a small transmission delay can be obtained; in addition, when the first data flow is scheduled, according to whether all the packets of the first data flow in the second pass are output, the third packet is passed through the first data flow correspondingly.
  • the output of one channel or the second channel can avoid the problem of out-of-order packets when the first data flow is converted from the congested flow to the non-congested flow.
  • each packet of the first data stream in the second channel corresponds to one input and output information
  • the method further includes: when the first packet of the first data stream is input to the second channel When outputting from the channel or from the second channel, the input and output information of the first packet is recorded, and the input and output information is used to determine whether all the packets of the first data stream in the second channel are output.
  • the network card can determine whether all the packets of the first data stream in the second channel are output through the input and output information, so as to determine whether the third packet is output through the first channel or the second channel, and further This avoids the problem of out-of-order packets when the first data flow is converted from the congested flow to the non-congested flow.
  • the input and output information is the number of packets of the first data stream in the second channel, and the first packet of the first data stream is input to or from the second channel.
  • recording the input and output information of the first packet including: when the first packet of the first data stream is input to the second channel, adding one to the number of packets; When the second channel outputs, the number of packets is reduced by one; when the number of packets is 0, all the packets of the first data stream in the second channel have been output; when the number of packets is not 0, Not all packets of the first data stream in the second channel are output.
  • a simple and effective manner is provided for determining whether all the packets of the first data stream in the second channel are output.
  • the input and output information includes an input flag bit and a stream flag bit, and when the first packet of the first data stream is input to the second channel or output from the second channel, the first packet of the first data stream is recorded.
  • Input and output information of a packet including: when the first packet of the first data stream is input to the second channel, the input flag position corresponding to the first packet is valid, and the stream flag position is the stream of the first data stream identification; when the first message of the first data stream is output from the second channel, the input flag position corresponding to the first message is invalid; wherein, when the input and output information of the first data stream corresponds to the flow identification of all When the input flag bits are all invalid, all the messages of the first data stream in the second channel are output; when there are valid input flag bits in all input flag bits corresponding to the stream identifier of the first data stream in the input and output information, Not all packets of the first data stream in the second channel are output.
  • the network card includes a register group, each register in the register group is used to store the input and output information of a message, and the depth of the register group is related to the off-chip maximum read delay, The required bandwidth is related to the minimum packet length required to meet the required performance.
  • the method further includes: when the occupancy rate of the register group is greater than the first threshold, reducing the transmission amount of packets of the congested flow in the second channel; When the occupancy rate of the first channel is greater than the second threshold, the transmission amount of the packets of the non-congested flow in the first channel is reduced, and the second threshold is greater than the first threshold.
  • the method further includes: according to at least one of the occupancy rate of the on-chip cache, the occupancy rate of the off-chip cache, the occupancy rate of the first channel, or the occupancy rate of the second channel item that adjusts the throughput of congested streams and/or the throughput of non-congested streams.
  • the over-occupancy of the first channel and/or the second channel can be avoided as much as possible while ensuring that the non-congested flow has a lower delay, thereby avoiding the overloaded work of the network card.
  • a data stream transmission device is provided, the device is coupled to an off-chip cache, the device includes an on-chip cache, a first channel and a second channel, and the priority of the first channel is higher than the priority of the second channel (that is, when both the first channel and the second channel have data output, the network card preferentially serves the first channel), the device further includes: a receiving unit, configured to receive the first packet of the first data stream, the first data stream It may include multiple packets, the first packet is any one of the multiple packets, and the first packet may include a first queue index used to indicate the first data stream; the determining unit is used for determining according to the The service type of the first data flow or the queue length of the first data flow determines that the first data flow is a non-congested flow or a congested flow; the scheduling unit is configured to determine that the first data flow is a non-congested flow (for example, the first data flow is video call, remote control, or automatic driving and other services that require relatively high latency),
  • the writing unit is used to store the first packet in the on-chip cache if the first data flow is a non-congested flow, and if the first data flow is a congested flow, write the The first message is stored in the off-chip cache;
  • the scheduling unit is also used for triggering a scheduling instruction of the first data stream;
  • the reading unit is used for, if the first data stream is a non-congested stream, from the on-chip cache Read the first packet of the first data stream and output it through the first channel. If the first data stream is a congested stream, read the first packet of the first data stream from the off-chip buffer and output it through the second channel .
  • the scheduling unit is further configured to: if the service type of the first data flow is a service type whose delay requirement is less than the first delay, determine that the first data flow is a non-congested flow ; if the service type of the first data flow is a service type whose delay requirement is greater than the second delay, it is determined that the first data flow is a congested flow, and the second delay is greater than the first delay.
  • the scheduling unit is further configured to: according to the corresponding port, user priority, and/or real-time queue length of the first data flow It is determined whether the first data flow is a congested flow or a non-congested flow. For example, if the transmission rate of the port corresponding to the first data stream is relatively high, the user priority is relatively high, or the real-time queue is relatively short, the scheduling unit may determine that the first data stream is a non-congested stream. When the transmission rate is low, the user priority is low, or the real-time queue is long, the scheduling unit may determine that the first data flow is a congested flow.
  • the writing unit is further configured to store the second packet in the off-chip cache when the receiving unit receives the second packet of the first data stream, and the first The second sequence number of the second packet is greater than the first sequence number of the first packet.
  • the first packet may be a packet before the first data flow is converted from a non-congested flow to a congested flow, and the second packet may be the first packet.
  • the apparatus further includes: a first counter, configured to, when the first packet of the first data stream is input to the first channel, count the value of the first data stream in the first channel The input quantity of the message is increased by one; the second counter is used to increase the output quantity of the message of the first data stream in the first channel by one when the first message is output from the first channel; when the second message is input When the second channel is used, the input quantity is carried in the control information of the second packet; wherein, when the output quantity is greater than or equal to the input quantity carried in the control information of the second packet, the sequence number in the first data stream A packet smaller than the second sequence number has been output through the first channel.
  • a first counter configured to, when the first packet of the first data stream is input to the first channel, count the value of the first data stream in the first channel The input quantity of the message is increased by one
  • the second counter is used to increase the output quantity of the message of the first data stream in the first channel by one when the first message is output from the first channel; when the second message is input
  • the writing unit is further configured to, when the receiving unit receives the first data stream of the first data stream When there are three packets, the third packet is stored in the on-chip cache, and the third packet is a packet after the first data stream is converted from a congested stream to a non-congested stream; the reading unit is also used if the If the packets of the first data stream in the second channel are not all output, the third packet is read from the on-chip buffer and output through the second channel; the reading unit is also used if the first data in the second channel All the packets of the flow are output, and the third packet is read from the on-chip buffer and output through the first channel.
  • each packet of the first data stream in the second channel corresponds to one input and output information
  • the reading unit is further configured to: when the first packet of the first data stream When input to or output from the second channel, the input and output information of the first packet is recorded, and the input and output information is used to determine whether all the packets of the first data stream in the second channel are output.
  • the input and output information is the number of packets of the first data stream in the second channel
  • the reading unit is further configured to: when the first packet of the first data stream is input When the second channel is used, the number of packets is increased by one; when the first packet of the first data stream is output from the second channel, the number of packets is reduced by one; when the number of packets is 0, the number of packets is 0. All the packets of the first data stream in the second channel have been output; when the number of the packets is not 0, the packets of the first data stream in the second channel have not been all output.
  • the input and output information includes an input flag bit and a stream flag bit
  • the reading unit is further configured to: when the first packet of the first data stream is input to the second channel, The position of the input flag corresponding to the first packet is valid, and the position of the stream identifier is the stream identifier of the first data stream; when the first packet of the first data stream is output from the second channel, the corresponding value of the first packet is set.
  • the input flag position is invalid; wherein, when all the input flag bits corresponding to the stream identifier of the first data stream in the input and output information are invalid, all the messages of the first data stream in the second channel are output; when the input and output information When there are valid input flag bits in all input flag bits corresponding to the flow identifier of the first data stream in the information, not all packets of the first data stream in the second channel are output.
  • the device includes a register group, each register in the register group is used to store input and output information of a message, and the depth of the register group is related to the off-chip maximum read delay,
  • the required bandwidth is related to the minimum packet length required to meet the required performance.
  • the scheduling unit is further configured to: when the occupancy rate of the register group is greater than the first threshold, reduce the transmission amount of the congested flow; when the occupancy rate of the register group is greater than the first threshold When the second threshold is used, the transmission amount of the non-congested flow is reduced, and the second threshold is greater than the first threshold.
  • the scheduling unit is further configured to: according to the occupancy rate of the on-chip cache, the occupancy rate of the off-chip cache, the occupancy rate of the first channel, or the occupancy rate of the second channel At least one item adjusts the throughput of congested flows and/or the throughput of non-congested flows.
  • a chip is also provided.
  • the chip includes the data stream transmission device provided by the second aspect or any possible implementation manner of the second aspect.
  • the chip is a network card.
  • a network device in yet another aspect of the present application, includes a network card and a processor, the processor can be configured to send a data stream to the network card, and the network card includes the second aspect or any of the second aspects. Possible implementations of the provided data streaming device.
  • the network device may be a terminal device, a router, a switch, or the like in an access network, a metropolitan area network, a backbone network, or a local area network.
  • a computer-readable storage medium where instructions are stored in the computer-readable storage medium, and when the instructions are executed on a device, the device causes the device to perform the above first aspect or the first aspect.
  • a data streaming method provided by any possible implementation.
  • a computer program product which, when the computer program product runs on a device, enables the device to execute the data provided by the first aspect or any possible implementation manner of the first aspect Streaming method.
  • any data stream transmission device, chip, network device, computer storage medium or computer program product provided above are all used to execute the data stream transmission method provided above, and therefore, the beneficial effects that can be achieved.
  • the beneficial effects in the data stream transmission method provided above can be referred to, and details are not repeated here.
  • FIG. 1 is a schematic structural diagram of a network device according to an embodiment of the present application.
  • FIG. 2 is a schematic structural diagram of a network card according to an embodiment of the present application.
  • FIG. 3 is a schematic flowchart of a data stream transmission method according to an embodiment of the present application.
  • FIG. 4 is a schematic flowchart of another data stream transmission method provided by an embodiment of the present application.
  • FIG. 5 is a schematic flowchart of another data stream transmission method provided by an embodiment of the present application.
  • FIG. 6 is a schematic diagram of a register group provided by an embodiment of the present application.
  • FIG. 7 is a schematic flowchart of a data stream transmission apparatus provided by an embodiment of the present application.
  • FIG. 8 is a schematic flowchart of another data stream transmission apparatus provided by an embodiment of the present application.
  • At least one means one or more
  • plural means two or more.
  • And/or which describes the association relationship of the associated objects, indicates that there can be three kinds of relationships, for example, A and/or B, which can indicate: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A, B can be singular or plural.
  • the character “/” generally indicates that the associated objects are an “or” relationship.
  • At least one item(s) below” or similar expressions thereof refer to any combination of these items, including any combination of single item(s) or plural items(s).
  • At least one (a) of a, b, or c can represent: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, c may be single or multiple .
  • words such as “first” and “second” are used to distinguish the same items or similar items with substantially the same functions and functions.
  • the first threshold and the second threshold are only used to distinguish different thresholds, and the sequence of the first threshold is not limited. Those skilled in the art can understand that words such as “first” and “second” do not limit the quantity and execution order.
  • the high and low priorities of the data streams may be divided according to the priorities of the services corresponding to the data streams.
  • High-priority services usually refer to services that have higher requirements on bandwidth and delay.
  • the services can include voice calls, video calls, remote control, and automatic driving.
  • a low-priority service usually refers to a service that is not sensitive to delay and packet loss.
  • the low-priority service may include web browsing and file downloading.
  • non-congested flow and the congested flow can be divided according to the status of ports, users, queue scheduling priority, real-time queue length and buffer occupancy status.
  • non-congested flows may include high-priority data flows and some low-priority data flows with smaller data volumes, and congested flows may include some low-priority data flows with larger data volumes;
  • the non-congested flow and the congested flow will also be converted.
  • the non-congested flow can be converted into a congested flow
  • the congested flow can also be converted into a non-congested flow. The two are not fixed.
  • the low-priority data flow can be It is considered to be a non-congested flow; in addition, in most application scenarios, the high-priority data flow will not exceed the maximum processing bandwidth of the port, so the high-priority data flow is basically a non-congested flow.
  • the on-chip cache can also be called the local buffer, which refers to the cache integrated inside the network card.
  • the space of the on-chip cache is small, but the read delay is small, which can be used for fast forwarding of non-congested flows in this application. In the case of fast forwarding, the cache space can be quickly released, and the utilization rate of the cache space can be improved.
  • Off-chip cache refers to the cache located outside the network card chip, that is, independent of the network card.
  • the off-chip cache has a large space, but the read delay is large, and the access bandwidth supported by different off-chip caches may vary. It is usually used after queue congestion accumulates, or for services that require the length of the cache. .
  • FIG. 1 is a schematic structural diagram of a network device provided by an embodiment of the application.
  • the network device may be a terminal device, a router, or a switch in an access network, a metropolitan area network, a backbone network, or a local area network.
  • the foregoing devices are collectively referred to as network devices in the embodiments of the present application.
  • the network device may include a processor 101 , a memory 102 , a network card 103 and a bus 104 , and the processor 101 , the memory 102 and the network card 103 are coupled through the bus 104 .
  • the processor 101 executes various functions of the network device by running or executing software programs and/or modules stored in the memory 102 and calling data stored in the memory 102 .
  • the processor 101 may include one or more modules, for example, the processor 101 may include a central processing unit (CPU), and processing such as a network processor (NP), a digital signal processor, an artificial intelligence other types of general-purpose processors such as microcontrollers, microcontrollers, or microprocessors. Further, the processor 101 may also include other hardware circuits or accelerators, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, transistors Logic devices, hardware components, or any combination thereof, etc.
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • Memory 102 may be used to store data, software programs, and modules, and may be implemented by any type of volatile or non-volatile memory or combinations thereof.
  • the memory 102 may include random access memory (RAM), double data rate (DDR) synchronous dynamic or synchronous static RAM, non-volatile random access memory (non-volatile random access memory) , NVRAM), Electrically Erasable Programmable Read-Only Memory, Erasable Programmable Read-Only Memory, Programmable Read-Only Memory, Read-Only Memory, High Band Memory (HBM), Magnetic Memory, Flash Memory , disk or CD, etc.
  • the multiple memories or modules included in the memory 102 may all be integrated together, or may be partially integrated together.
  • the memory 102 includes DDR and HBM, the DDR can be integrated in the chip of the memory 102, and the HBM can be packaged together with the network card 103 as an independent chip.
  • the network card 103 can be a network interface card (NIC), and the network device can send a data stream through the network card 103, and can also receive a data stream through the network card 103.
  • the bus 104 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus or the like.
  • PCI peripheral component interconnect
  • EISA extended industry standard architecture
  • the bus 104 can be divided into an address bus, a data bus, a control bus, and the like. For ease of presentation, only one thick line is used in FIG. 1, but it does not mean that there is only one bus or one type of bus.
  • the network card 103 may include a packet write controller (packet write controller, PWC), a scheduler (scheduler, SCH), a packet read controller (packet read controller, PRC), an on-chip cache .
  • the SCH can be used to distinguish non-congested (NC) flows and congested (congested, CG) flows in the input data flow, for example, according to ports, users, real-time queue length and queue scheduling priority, and buffer occupancy status, etc.
  • the PWC can be used to write the input data stream into the off-chip buffer or on-chip buffer according to the scheduling of the SCH.
  • the off-chip buffer (eg, DDR or HBM) is coupled to the network card 103.
  • the PWC can write the non-congested stream to Enter the on-chip cache and write the congested stream to the off-chip cache.
  • the PRC may include a first channel CH1 and a second channel CH2, the priority of CH1 may be higher than that of CH2, and the PWC may be used to select the off-chip buffer and the on-chip buffer according to the SCH scheduling according to the first-in, first-out ( First in first out, FIFO) reads the data stream sequentially, and outputs the data stream through CH1 and CH2.
  • the CG-FIFO in Figure 2 can represent the storage pointer of the congested stream in the cache
  • the NC-FIFO can represent the non-congested stream in the buffer.
  • the storage pointers in the buffer, the CG-FIFO and the NC-FIFO can be specifically sent to the PRC by the SCH.
  • the network device shown in FIG. 1 and the network card shown in FIG. 2 do not constitute limitations on the structure of the network device and the network card. In practical applications, the network device and the network card may also include more or less components than shown, or combine some components, or arrange different components.
  • FIG. 3 is a schematic flowchart of a data stream transmission method provided by an embodiment of the present application, the method can be applied to a network card, the network card is coupled to an off-chip cache, and the network card includes an on-chip cache, a first channel and a second channel, The priority of the first channel is higher than the priority of the second channel.
  • the method includes the following steps.
  • S301 Receive a first packet of a first data flow, and determine, according to a service type of the first data flow, that the first data flow is a non-congested flow or a congested flow.
  • the first data stream may refer to what is sent to the network card by a processor in the network device where the network card is located.
  • the processor can send the one or more data streams to the network card, so that the network card can send the one or more data streams to
  • the first data stream may be any one of the one or more data streams.
  • the first data stream may include multiple packets (also referred to as data packets), and the first packet may be any one of the multiple packets.
  • Each of the multiple packets of the first data stream may include a stream flag bit, and the stream flag bit may be used to indicate the first data stream, that is, the stream flag bit in each packet of the first data stream is available to indicate that the message is a message of the first data stream.
  • the first data stream can be identified by the first queue index (queue index, QID).
  • the flow flag bit in each packet of the flow may be the first QID.
  • the network card may receive one or more packets of the first data stream, and the first packet may be the one or more packets. any message in the text.
  • the network card can determine whether the first data stream is a congested stream or a non-congested stream according to the service type of the first data stream, and the specific step of determining whether the first data stream is a congested stream or a non-congested stream can be performed by the network card shown in FIG. 2 .
  • the scheduler SCH to execute.
  • the scheduler SCH may determine that the first data stream is a non-congested stream; when the first data stream is a non-congested stream
  • the scheduler SCH may determine that the first data flow is a congested flow. Wherein, if it is determined that the first data stream is a non-congested stream, the following steps S302a-S303a are performed; if it is determined that the first data stream is a congested stream, the following steps S302b-S303b are performed.
  • the network card determining that the first data flow is a non-congested flow or a congested flow according to the service type of the first data flow may include: if the service type of the first data flow is a service type with a delay requirement less than the first delay, then Determine that the first data flow is a non-congested flow; if the service type of the first data flow is a service type with a delay requirement greater than the second delay, then determine that the first data flow is a congested flow, and the second delay is greater than the first delay .
  • the method may further include: the network card determines according to the port, user priority, and/or real-time corresponding to the first data stream.
  • the queue length determines whether the first data flow is a congested flow or a non-congested flow. For example, if the transmission rate of the port corresponding to the first data stream is high, the user priority is high, or the real-time queue is short, the network card can determine that the first data stream is a non-congested stream. If the rate is low, the user priority is low, or the real-time queue is long, the network card may determine that the first data flow is a congested flow.
  • S302a If the first data flow is a non-congested flow, store the first packet in the on-chip cache.
  • the scheduler SCH in the network card determines that the first data stream is a non-congested stream
  • the scheduler SCH can send first indication information to the packet writing controller PWC in the network card, and the first indication information can be used for Indicating that the first data flow is a non-congested flow can also be used to indicate a cache address corresponding to the first packet.
  • the message writing controller PWC receives the first indication information, it can store the first message in the on-chip cache according to the cache address.
  • the network card receives other messages of the first data stream
  • the network card can also store the other messages in the on-chip cache according to the above method. That is, when the first data flow is a non-congested flow, the network card can store the received packets of the first data flow in the on-chip cache.
  • S303a When the scheduling instruction of the first data stream is triggered, read the first packet of the first data stream from the on-chip buffer and output it through the first channel.
  • the scheduling instruction of the first data stream can be triggered by the scheduler SCH in the network card and sent to the message reading controller PRC in the network card, and the scheduling instruction can be used to schedule the message reading controller PRC to read
  • the scheduling instruction of the first data stream may carry the storage address or storage pointer of the first data stream in the on-chip cache.
  • the message reading controller PRC can be based on the scheduling instruction Read the message of the first data stream (including the first message) from the on-chip cache. If the on-chip cache includes multiple messages of the first data stream, the message read controller PRC can read the message according to the first-in The multiple packets are sequentially read in the order of the first-out FIFO, and stored in the first channel, so as to output the multiple packets through the first channel.
  • the priority of the first channel is higher than the priority of the second channel, so that the network card can serve the first channel preferentially when the network is congested, so as to ensure that the packets of the non-congested flow can be quickly output through the first channel, so that the non-congested flow can be quickly output. Congested flow gets extremely low latency.
  • the scheduler SCH in the network card determines that the first data stream is a congested stream
  • the scheduler SCH can send second indication information to the packet writing controller PWC in the network card
  • the second indication information can be used for Indicating that the first data flow is a congested flow may also be used to indicate a cache address corresponding to the first packet.
  • the message writing controller PWC receives the second indication information, it can store the second message in the off-chip cache according to the cache address.
  • the network card may also store the other packets in the off-chip cache according to the above method. That is, when the first data flow is a congested flow, the network card can store the received packets of the first data flow in the off-chip cache.
  • the scheduling instruction of the first data stream can be triggered by the scheduler SCH in the network card and sent to the message reading controller PRC in the network card, and the scheduling instruction can be used to schedule the message reading controller PRC to read
  • the scheduling instruction of the first data stream may carry the storage address or storage pointer of the first data stream in the off-chip cache.
  • the message reading controller PRC can be based on the scheduling instruction Read the message of the first data stream (including the first message) from the off-chip cache; if the off-chip cache includes multiple messages of the first data stream, the message reading controller PRC can read the message according to the first-in
  • the multiple packets are sequentially read in a first-out FIFO order to be stored in the second channel, and the multiple packets are output through the second channel.
  • the priority of the second channel is lower than the priority of the first channel, so that the network card can serve the first channel preferentially when the network is congested, so as to ensure that the high-low priority and low-priority data flows in the non-congested flow can be quickly output, so that the non-congested flow obtains extremely low latency, which in turn improves the utilization of the on-chip cache to a certain extent.
  • the method may also include S304a, and S304a and S303a may be in no particular order.
  • S304a is located after S303a as example to illustrate.
  • S304a When receiving the second packet of the first data stream, store the second packet in the off-chip cache.
  • the network card can store the packet of the congested flow in the off-chip cache according to the principle, Store the second message in the off-chip cache.
  • the scheduler SCH in the network card may send second indication information to the packet writing controller PWC, and the second indication information may be used to indicate the first data stream It is a congested flow, and can also be used to indicate the cache address corresponding to the second packet, so that when the packet writing controller PWC receives the second indication information, it can store the second packet in the off-chip cache according to the cache address.
  • the network card can also store the other packets in the chip according to the method corresponding to the second packet. in the external cache.
  • the method may further include S305a.
  • S305a After the packet with the sequence number smaller than the second sequence number in the first data stream is output through the first channel, read the second packet from the off-chip cache and output through the second channel.
  • the first packet may be a packet before the first data flow is converted from a non-congested flow to a congested flow
  • the second packet may be a packet after the first data flow is converted from a non-congested flow to a congested flow.
  • the first sequence number may be used to indicate the position of the first packet in the first data stream (may also be referred to as a sending order)
  • the second sequence number may be used to indicate the position of the second packet in the first data stream.
  • the position of the second packet in the first data stream is located after the first packet, that is, the second sequence number is greater than the first sequence number.
  • serial number of each packet can be carried in the packet, and when the network card receives each packet, the serial number of the packet can be obtained from each packet. For example, when the network card receives the first packet of the first data stream, it can obtain the first sequence number from the first packet; when receiving the second packet, it can obtain the second sequence number from the second packet. serial number.
  • the storage location of the packets of the first data flow received by the network card is also correspondingly switched from the on-chip cache to the off-chip cache, and the on-chip cache is stored in the on-chip cache.
  • the sequence number of the packet of the first data stream is smaller than the sequence number of the packet of the first data stream in the off-chip cache.
  • the network card can output all the packets of the first data stream received before the second packet after outputting the packets in the first data stream whose sequence number is smaller than the second sequence number through the first channel.
  • the second packet is read from the off-chip buffer and output through the second channel.
  • the network card when the first data stream is a non-congested stream, stores the received packets of the first data stream packet.1 and packet.2 in the on-chip cache, and when the first data stream is converted from the non-congested stream When the flow is congested, the network card stores the received packet packet.3 of the first data flow in the off-chip cache.
  • the network card can schedule the output of the first data stream in the first After the two packets, packet.1 and packet.2, whose sequence numbers are smaller than NO.3 in the data stream, are output through the first channel, packet.3 is read from the off-chip cache to be output through the second channel.
  • the network card may determine whether the packets with the sequence number smaller than the second sequence number in the first data stream have passed through the first channel by recording the input quantity and output quantity of the packets of the first data stream respectively.
  • Channel output that is, to determine whether all the packets of the first data stream in the first channel have been output. Specifically, taking the first packet of the first data stream as an example, when the first packet of the first data stream is input to the first channel, the number of input packets of the first data stream in the first channel is increased by one; When the first packet is output from the first channel, the output quantity of the packets of the first data stream in the first channel is increased by one.
  • the network card may include two counters, the two counters may be a first counter and a second counter, the first counter may be used to record the number of packets of the first data stream input in the first channel, the Two counters may be used to record the number of packets of the first data stream output from the first channel, and the two counters may be located in the packet reading controller PRC of the network card.
  • the network card when the first data stream is converted from a non-congested stream to a congested stream, and the network card receives a second packet converted to a congested stream (for example, the second packet is a packet after the first data stream is converted to a congested stream) packet), when the network card inputs the second packet into the second channel, it can carry the input quantity of the packets of the first data stream corresponding to the current first channel in the control information of the second packet (also referred to as the control information of the second packet). In the associated control information), the number of inputs carried by the control information of the second message can be used to represent the number of messages corresponding to the first data stream input to the first channel before the second message.
  • the network card before outputting the second packet through the second channel, the network card can determine that the sequence number in the first data stream is smaller than the second sequence number according to the number of inputs carried in the control information of the second packet and the number of outputs corresponding to the current first channel Whether the packets with the number of the packets have been output through the first channel; if the output quantity is greater than or equal to the input quantity carried by the control information of the second packet, it is determined that the packets with the sequence number smaller than the second sequence number in the first data stream have been Output through the first channel; if the output quantity is less than the input quantity carried by the control information of the second packet, then the packets whose sequence number is smaller than the second sequence number in the first data stream are not all output through the first channel.
  • the network card may continue to output the packets of the first data stream through the first channel until the output quantity is greater than or equal to the input quantity carried by the control information of the second packet.
  • the first counter when the count of the first counter satisfies the first value (for example, 8K), the count of the first counter and the count of the second counter may be simultaneously subtracted by the second value (for example, 2K). ) to avoid the problem of out-of-order packets due to counter overflow.
  • the first numerical value and the second numerical value may be set in advance, which are not specifically limited in this embodiment of the present application.
  • the method may further include S304b, and S304b and S303b may be in no particular order.
  • S304b is located after S303b as example to illustrate.
  • S304b When the third packet of the first data stream is received, store the third packet in the on-chip cache.
  • the first packet may be a packet before the first data flow is converted from a congested flow to a non-congested flow
  • the third packet may be a packet after the first data flow is converted from a congested flow to a non-congested flow.
  • the first sequence number may be used to indicate the position of the first packet in the first data stream (it may also be referred to as a sending order), and the third sequence number may be used to indicate the position of the third packet in the first data stream.
  • the third sequence number greater than the first sequence number may be used to indicate that the position of the third packet in the first data stream is located after the first packet.
  • serial number of each packet can be carried in the packet, and when the network card receives each packet, the serial number of the packet can be obtained from each packet. For example, when the network card receives the first packet of the first data stream, it can obtain the first sequence number from the first packet; when receiving the third packet, it can obtain the second sequence number from the third packet. serial number.
  • the network card can store the packets of the non-congested flow in the on-chip cache according to the principle of , and store the third message in the on-chip cache.
  • the scheduler SCH in the network card may send third indication information to the packet writing controller PWC, and the third indication information may be used to indicate the first data stream It is a non-congested flow, and can also be used to indicate the cache address corresponding to the third packet, so that when the packet writing controller PWC receives the third indication information, it can store the third packet in the on-chip cache according to the cache address. middle. Further, after the network card is converted into a congested stream, if the network card also receives other packets of the first data stream, the network card can also store the other packets in the chip according to the method corresponding to the third packet. in the internal cache.
  • the method may further include S305b or S305c.
  • S305b If the packets of the first data stream in the second channel are not all output, read the third packet from the on-chip buffer and output through the second channel.
  • S305c If all the packets of the first data stream in the second channel are output, read the third packet from the on-chip buffer and output through the first channel.
  • the storage location of the packets of the first data flow received by the network card is also correspondingly switched from the off-chip cache to the on-chip cache, and the No.
  • the sequence number of the packet of one data stream is greater than the sequence number of the packet of the first data stream in the on-chip cache.
  • the network card can determine whether all the packets of the first data stream in the second channel have been output; Channel output; if not all output, read the third packet from the on-chip buffer and output through the second channel, the read third packet is located in other packets of the first data stream in the second channel (that is, from the chip After the message of the first data stream read in the internal data stream, such as the first message), according to the order of first-in, first-out, after the other messages are output, the third message can be output through the second channel, so as to ensure Packets with the first data stream are not out of sequence when output.
  • the network card when the first data flow is a congested flow, stores the received packets packet.1 and packet.2 of the first data flow in the off-chip cache.
  • the network card stores the received packet packet.3 of the first data flow in the on-chip cache. If the serial numbers corresponding to packet.1 and packet.2 are NO.1 and NO.2 respectively, and the serial number corresponding to packet.3 is NO.3, the network card can determine the first data stream when scheduling the output of the first data stream.
  • the messages of the first data stream in the second channel may correspond to input and output information
  • the network card may determine the first data in the second channel by recording the input and output information of the messages of the first data stream in the second channel. Whether all the packets of the flow have been output, that is, it is determined whether all the packets of the first data flow received before the third packet in the second channel have been output.
  • the input and output information may be the number of packets of the first data stream in the second channel.
  • the process of recording the number of packets may be as follows : When the first packet of the first data stream is input to the second channel, add one to the number of packets of the first data stream in the second channel; when the first packet is output from the second channel, add the number of packets to the second channel minus one.
  • the network card may include a third counter, and the third counter may be used to record the number of packets of the first data flow in the second channel. For example, the third counter may be incremented by one when the first packet enters the second channel.
  • the third counter when the first message is output from the second channel, the third counter can be located in the message reading controller PRC of the network card; in addition, the recorded number of messages can be stored in the memory included in the network card,
  • the memory may be a 2R2W memory, and after the third calculator increases or decreases the number of packets by one each time, the network card may update the memory according to the number corresponding to the third calculator.
  • the network card before outputting the third packet, can read and judge the number of packets stored in the memory; if the number of packets is not 0, it means that the packets of the first data stream in the second channel are not All output, at this time, the third packet is read from the on-chip cache and output through the second channel; if the number of packets is 0, it means that all the packets of the first data stream in the second channel have been output.
  • the third message is read from the on-chip cache and output through the first channel.
  • the above solution of recording the number of packets may be applicable to scenarios where the number of data streams of the system specification is small and only one packet is required to be processed in one clock cycle in terms of processing performance.
  • the number of packets corresponding to multiple data streams can also be mapped to the memory of the memory through a hash algorithm. stored in the same entry.
  • the input and output information may include an input flag bit and a flow flag bit.
  • the process of recording the input and output information of the first packet may be as follows : When the first message is input to the second channel, the input flag position corresponding to the first message is set to be valid, and the flow ID position is the flow ID of the first data stream; when the first message is output from the second channel, the The input flag position corresponding to the first packet is invalid.
  • the network card may include a register group. As shown in FIG. 6 , the structure of the register group may be expressed as depth* ⁇ VLD, QID ⁇ , that is, each register in the register group may include an input flag bit VLD.
  • enq-addr represents the enqueue pointer
  • deq-addr represents the dequeue pointer
  • the VLD in the register is set to 1 (for example, it is valid when set to 1, invalid when set to 0), and QID is set to QID1, and then the enq-addr of the enqueue pointer can be increased by one; if the first message corresponds to the dequeue If the pointer deq-addr is at position 2, when the first message is output from the second channel, the VLD in the register at position 2 can be set to 0 (for example, it is valid when set to 1, invalid when set to 0), and also The QID can be set to 0 (optional), after which the deque-addr can be incremented by one.
  • the network card can judge whether all the packets of the first data stream in the second channel have been output through the input information stored in the register group; When all the input flag bits corresponding to the stream identifier of the first data stream in the input and output information) are invalid, it is determined that all the messages of the first data stream in the second channel are output; if the first data stream in the input and output information is invalid When there is a valid input flag bit in all the input flag bits corresponding to the stream identifier of , it is determined that the packets of the first data stream in the second channel are not all output. It should be noted that the enqueue pointer enq-addr and the dequeue pointer deq-addr can be incremented from 0 until the depth of the register group is incremented, and then the cycle starts from 0 again.
  • the number of registers included in the register group may be larger, for example The number can reach hundreds of thousands or even millions, or it can be set to meet the off-chip read delay of the network card according to the total number of packets that need to be stored in the second channel under the condition that the processing performance requirements of the network card are met.
  • the required maximum depth of the register group is calculated according to different performance specification requirements and the maximum delay of the used off-chip cache.
  • the depth of the register group is related to the maximum off-chip read delay (ie the maximum read delay of the off-chip cache) ⁇ , the bandwidth W required by the specification, and the minimum packet length L required by the specification when meeting the performance requirement.
  • depth ⁇ W/L. If ⁇ is 4us and the specification requires 165 bytes (byte, B) or more to reach 500Gbps as an example, then when W is 500Gbps and L is 165B ⁇ 8bits, depth is equal to 1515 .
  • a control mechanism can be added to control the occupancy of register bank or memory in real time.
  • the control plane For example, the scheduler SCH
  • the network card acts as a back pressure to avoid further occupation of the register set or memory.
  • the control mechanism may include: when the occupancy rate of the register group is greater than the first threshold, reducing the transmission amount of the packets of the congested flow in the second channel, for example, the network card in the The scheduler SCH can reduce the scheduling of the congested flow to reduce the flow of the congested flow read from the off-chip cache by the packet read controller PRC in the network card, thereby reducing the transmission volume of the congested flow in the second channel. .
  • the occupancy rate of the register group is greater than the second threshold, reduce the transmission volume of the packets of the non-congested flow in the first channel.
  • the scheduler SCH in the network card can reduce the scheduling of the non-congested flow to reduce the
  • the packet reading controller PRC in the network card reads the traffic of the non-congested flow from the on-chip cache, thereby reducing the transmission volume of the non-congested flow in the first channel, and the second threshold is greater than the first threshold.
  • the network card can also be based on the occupancy rate of the on-chip cache, the occupancy rate of the off-chip cache, the occupancy rate of the first channel, the occupancy rate of the second channel, the NC-FIFO corresponding to the first channel, and/or the occupancy rate of the second channel.
  • the CG-FIFO corresponding to the channel reduces the transmission amount of the congested flow or the non-congested flow through different thresholds, so as to realize the transmission control of the congested flow and the non-congested flow.
  • the normal transmission of non-congested streams can be ensured by controlling the transmission of congested streams in the case of continuous congestion or small off-chip buffers or insufficient performance, so that non-congested streams can continue to obtain low latency, thereby improving user performance. experience.
  • the network card when the network card receives the message of the first data flow, if the first data flow is a non-congested flow, the message of the first data flow is stored in the on-chip cache, and is scheduled in the scheduling When the first data stream is read from the on-chip cache, it is output through the high-priority first channel. Since the read delay of the on-chip cache is small, it can ensure that both high-priority and low-priority data streams in non-congested streams can be It is quickly output, thereby improving the allocation and release efficiency of the on-chip cache to a certain extent, thereby improving the utilization of the on-chip cache.
  • the packets of the first data stream are stored in the off-chip cache, and are read from the off-chip cache when the first data stream is scheduled and passed through the second low-priority second stream.
  • the buffer requirements for congested flows can be guaranteed.
  • orderly transmission of multiple packets of the same data stream can also be implemented through a certain order-preserving logic. Improve user experience.
  • the network card includes corresponding hardware structures and/or software modules for executing each function.
  • the present application can be implemented in hardware or a combination of hardware and computer software with reference to the network elements and algorithm steps of each example described in the embodiments disclosed herein. Whether a function is performed by hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Skilled artisans may implement the described functionality using different methods for each particular application, but such implementations should not be considered beyond the scope of this application.
  • the network card may be divided into functional modules according to the foregoing method examples.
  • each functional module may be divided corresponding to each function, or two or more functions may be integrated into one processing module.
  • the above-mentioned integrated modules can be implemented in the form of hardware, and can also be implemented in the form of software function modules. It should be noted that, the division of modules in the embodiments of the present application is schematic, and is only a logical function division, and there may be other division manners in actual implementation.
  • FIG. 7 shows a possible schematic structural diagram of the data stream transmission device involved in the above embodiment
  • the device may be a network card, and the device includes: a receiving unit 401 , scheduling unit 402 , writing unit 403 and reading unit 404 .
  • the receiving unit 401 is configured to perform S301 in the above method embodiments, the step of receiving the second packet and/or the third packet of the first data stream, etc.;
  • the scheduling unit 402 is configured to perform the above method embodiments determining the first The data flow is a non-congested flow or a congested flow, and the step of triggering the scheduling instruction of the first data flow;
  • the writing unit 403 is configured to execute one or more steps in S302a, S302b, S304a or S304b in the above method embodiments;
  • the reading unit 404 is configured to perform one or more steps of S303a, S303b, S305a, S305b or S305c in the above method embodiments.
  • the corresponding relationship between the functional structure shown in the device and each unit of the network card shown in FIG. 2 may be: the receiving unit 401 and the writing unit 403 may correspond to the message writing controller PWC in FIG.
  • the unit 402 may correspond to the scheduler SCH in FIG. 2
  • the reading unit 404 may correspond to the message reading controller PRC in FIG. 2 .
  • the above-mentioned scheduling unit 402, writing unit 403 and reading unit 404 may be processors, the receiving unit 401 may be a receiver, and the receiver and the transmitter may generally constitute a transceiver, which may be called communication interface.
  • the device may be a network card, and the device includes: a processor 412, a communication interface 413, a memory 411 and bus 414.
  • the processor 412 , the communication interface 413 , and the memory 411 are connected to each other through a bus 414 .
  • the processor 412 is configured to control and manage the actions of the device.
  • the processor 412 is configured to execute S302a-S305a, S302b-S305c in the above method embodiments, and/or used in the methods described herein. Other procedures of the described technique.
  • the communication interface 413 is used to support the device to communicate, for example, to support the device to receive the first message, the second message and/or the third message, and the like.
  • the memory 411 is used to store the program codes and data of the device. For example, the memory 411 may be used to store the packets of the data stream received by the network card.
  • the processor 412 may be a microprocessor, an application specific integrated circuit, a field programmable gate array or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. It may implement or execute the various exemplary logical blocks, modules and circuits described in connection with this disclosure.
  • the processor may also be a combination that performs computing functions, such as a combination comprising one or more microprocessors, a combination of a digital signal processor and a microprocessor, and the like.
  • the bus 414 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus or the like.
  • the network card when the network card receives the message of the first data flow, if the first data flow is a non-congested flow, the message of the first data flow is stored in the on-chip cache, and is scheduled in the scheduling When the first data stream is read from the on-chip cache, it is output through the high-priority first channel. Since the read delay of the on-chip cache is small, it can ensure that both high-priority and low-priority data streams in non-congested streams can be It is quickly output, thereby improving the allocation and release efficiency of the on-chip cache to a certain extent, thereby improving the utilization of the on-chip cache.
  • the packets of the first data stream are stored in the off-chip cache, and are read from the off-chip cache when the first data stream is scheduled and passed through the second low-priority second stream.
  • the buffer requirements for congested flows can be guaranteed.
  • a chip is also provided, and the chip is used for executing the data stream transmission method provided herein.
  • the chip may be the network card shown in FIG. 2 , or the chip may include the data stream transmission device shown in FIG. 7 or FIG. 8 .
  • a network device is also provided, and the structure of the network device may be as shown in FIG. 1 , that is, the network device may include a processor 101 and a network card 103; wherein, the processor 101 may be used to The network card 103 sends the data stream, and the network card 103 can be any of the network cards or data stream transmission devices provided above, and is used to execute the data stream transmission method provided herein.
  • the network device may further include a memory 102 .
  • a computer-readable storage medium is also provided, and instructions are stored in the computer-readable storage medium, and when at least one processor of a device executes the instructions, the device causes the device to execute the instructions provided herein. data streaming method.
  • a computer program product in another embodiment, includes computer-executable instructions, and the computer-executable instructions are stored in a computer-readable storage medium; at least one processor of the device can be obtained from a computer-readable storage medium. Reading the storage medium reads the computer-executable instructions, which are executed by at least one processor to cause a device to implement the data streaming methods provided herein.

Landscapes

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

Abstract

La présente invention concerne le domaine technique des communications, et porte sur un procédé et un appareil de transmission de flux de données, et un dispositif de réseau, qui sont utilisés pour réduire le retard temporel de flux de données à basse priorité parmi des flux non congestionnés, et améliorer l'efficacité d'attribution et de libération d'un cache sur puce. Le procédé consiste à : recevoir un premier paquet d'un premier flux de données, et déterminer, selon le type de service du premier flux de données, si le premier flux de données est un flux non congestionné ou un flux congestionné ; si le premier flux de données est un flux non congestionné, stocker le premier paquet dans un cache sur puce, et lorsqu'une instruction de planification pour le premier flux de données est déclenchée, lire le premier paquet du premier flux de données dans le cache sur puce et le délivrer en sortie par un premier canal ; et si le premier flux de données est un flux congestionné, stocker le premier paquet dans un cache hors puce, et lorsqu'une instruction de planification pour le premier flux de données est déclenchée, lire le premier paquet du premier flux de données dans le cache hors puce et le délivrer en sortie par un second canal, la priorité du premier canal étant supérieure à celle du second canal.
PCT/CN2021/077239 2021-02-22 2021-02-22 Procédé et appareil de transmission de flux de données, et dispositif de réseau WO2022174444A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2021/077239 WO2022174444A1 (fr) 2021-02-22 2021-02-22 Procédé et appareil de transmission de flux de données, et dispositif de réseau
CN202180092641.2A CN116889024A (zh) 2021-02-22 2021-02-22 一种数据流传输方法、装置及网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/077239 WO2022174444A1 (fr) 2021-02-22 2021-02-22 Procédé et appareil de transmission de flux de données, et dispositif de réseau

Publications (1)

Publication Number Publication Date
WO2022174444A1 true WO2022174444A1 (fr) 2022-08-25

Family

ID=82931930

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/077239 WO2022174444A1 (fr) 2021-02-22 2021-02-22 Procédé et appareil de transmission de flux de données, et dispositif de réseau

Country Status (2)

Country Link
CN (1) CN116889024A (fr)
WO (1) WO2022174444A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117134932A (zh) * 2023-04-06 2023-11-28 荣耀终端有限公司 数据流调度方法和电子设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07283814A (ja) * 1994-04-07 1995-10-27 Matsushita Electric Ind Co Ltd フロー制御方式
CN101854660A (zh) * 2009-03-30 2010-10-06 大唐移动通信设备有限公司 一种拥塞控制方法及装置
CN102216911A (zh) * 2011-05-31 2011-10-12 华为技术有限公司 一种数据管理方法、装置及数据芯片
CN102244568A (zh) * 2011-06-24 2011-11-16 华南理工大学 一种附带式跨层设计的无线网络拥塞控制方法
CN103916331A (zh) * 2013-01-08 2014-07-09 友讯科技股份有限公司 对数据封包进行分析以选择连线路径的连线方法
CN105376172A (zh) * 2014-08-29 2016-03-02 华平信息技术股份有限公司 一种控制网络拥塞的方法
CN106851727A (zh) * 2017-01-23 2017-06-13 西安电子科技大学 基于多路径路由协议实现自组网拥塞控制的方法
CN107454017A (zh) * 2017-06-05 2017-12-08 上海交通大学 一种云数据中心网络中混合数据流协同调度方法
CN109714267A (zh) * 2018-12-26 2019-05-03 清华大学 管理反向队列的传输控制方法及***
CN111328148A (zh) * 2020-03-11 2020-06-23 展讯通信(上海)有限公司 数据传输方法及装置
WO2020236293A1 (fr) * 2019-05-23 2020-11-26 Cray Inc. Systèmes et procédés de routage adaptatif en présence de flux persistants

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07283814A (ja) * 1994-04-07 1995-10-27 Matsushita Electric Ind Co Ltd フロー制御方式
CN101854660A (zh) * 2009-03-30 2010-10-06 大唐移动通信设备有限公司 一种拥塞控制方法及装置
CN102216911A (zh) * 2011-05-31 2011-10-12 华为技术有限公司 一种数据管理方法、装置及数据芯片
CN102244568A (zh) * 2011-06-24 2011-11-16 华南理工大学 一种附带式跨层设计的无线网络拥塞控制方法
CN103916331A (zh) * 2013-01-08 2014-07-09 友讯科技股份有限公司 对数据封包进行分析以选择连线路径的连线方法
CN105376172A (zh) * 2014-08-29 2016-03-02 华平信息技术股份有限公司 一种控制网络拥塞的方法
CN106851727A (zh) * 2017-01-23 2017-06-13 西安电子科技大学 基于多路径路由协议实现自组网拥塞控制的方法
CN107454017A (zh) * 2017-06-05 2017-12-08 上海交通大学 一种云数据中心网络中混合数据流协同调度方法
CN109714267A (zh) * 2018-12-26 2019-05-03 清华大学 管理反向队列的传输控制方法及***
WO2020236293A1 (fr) * 2019-05-23 2020-11-26 Cray Inc. Systèmes et procédés de routage adaptatif en présence de flux persistants
CN111328148A (zh) * 2020-03-11 2020-06-23 展讯通信(上海)有限公司 数据传输方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117134932A (zh) * 2023-04-06 2023-11-28 荣耀终端有限公司 数据流调度方法和电子设备

Also Published As

Publication number Publication date
CN116889024A (zh) 2023-10-13

Similar Documents

Publication Publication Date Title
US8248930B2 (en) Method and apparatus for a network queuing engine and congestion management gateway
US8218546B2 (en) Interleaved processing of dropped packets in a network device
US8059671B2 (en) Switching device
US20100265954A1 (en) Method, System, and Computer Program Product for High-Performance Bonding Resequencing
US20150215226A1 (en) Device and Method for Packet Processing with Memories Having Different Latencies
US20140098818A1 (en) Internal Cut-Through For Distributed Switches
US8576850B2 (en) Band control apparatus, band control method, and storage medium
EP4175232A1 (fr) Procédé et dispositif de gestion de congestion
WO2020134425A1 (fr) Procédé, appareil et dispositif de traitement de données et support de stockage
US20230283578A1 (en) Method for forwarding data packet, electronic device, and storage medium for the same
CN110830388B (zh) 一种数据调度方法、装置、网络设备及计算机存储介质
US8792511B2 (en) System and method for split ring first in first out buffer memory with priority
US8599694B2 (en) Cell copy count
WO2022174444A1 (fr) Procédé et appareil de transmission de flux de données, et dispositif de réseau
WO2018000820A1 (fr) Procédé et dispositif de gestion de file d'attente
US8879578B2 (en) Reducing store and forward delay in distributed systems
CN114531488A (zh) 一种面向以太网交换器的高效缓存管理***
US8995458B1 (en) Method and apparatus for delay jitter reduction in networking device
CN115086238B (zh) 一种tsn网络端口输出调度装置
WO2022213617A1 (fr) Procédé et appareil de mise en forme dynamique de trafic
CN102594670B (zh) 多端口多流的调度方法、装置及设备
US7729259B1 (en) Reducing latency jitter in a store-and-forward buffer for mixed-priority traffic
CN113765796A (zh) 流量转发控制方法及装置
US8842696B1 (en) Guaranteed rate port scheduler
US20080228823A1 (en) Frame transfer apparatus

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: 21926161

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202180092641.2

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21926161

Country of ref document: EP

Kind code of ref document: A1