WO2021018087A1 - 数据传输方法及装置 - Google Patents

数据传输方法及装置 Download PDF

Info

Publication number
WO2021018087A1
WO2021018087A1 PCT/CN2020/104811 CN2020104811W WO2021018087A1 WO 2021018087 A1 WO2021018087 A1 WO 2021018087A1 CN 2020104811 W CN2020104811 W CN 2020104811W WO 2021018087 A1 WO2021018087 A1 WO 2021018087A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
data frame
data
preemptible
transmission
Prior art date
Application number
PCT/CN2020/104811
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 JP2022505259A priority Critical patent/JP7394960B2/ja
Priority to EP20846611.0A priority patent/EP3993293A4/en
Publication of WO2021018087A1 publication Critical patent/WO2021018087A1/zh
Priority to US17/583,685 priority patent/US12003319B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/245Traffic characterised by specific attributes, e.g. priority or QoS using preemption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • 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/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority

Definitions

  • This application relates to the field of network technology, and in particular to a data transmission method and device.
  • the sending end and the receiving end forward data frames through network equipment, which can also be called media access control (MAC) frames to realize communication.
  • Network equipment generally uses a "best effort" forwarding strategy to forward data frames. Under this forwarding strategy, the network device forwards the data frames in the order of the received data frames. However, there are data frames with different priorities in the actual network. When network devices use this forwarding strategy to forward data frames, low-priority data frames will occupy the channel so that high-priority data frames cannot be transmitted in time, resulting in high-priority data frames. The transmission delay of data frames is relatively large.
  • a frame preemption mechanism is introduced in time-sensitive networking (TSN).
  • TSN time-sensitive networking
  • the frame preemption mechanism defined by the Institute for Electrical and Electronic Engineers (IEEE) 802.3br and IEEE 802.1Qbu
  • the frame types of data frames are divided into express frames and preemptable frames. class.
  • the transmission priority of fast frames is higher than the transmission priority of preemptible frames.
  • the present application provides a data transmission method and device, which can solve the problem that the traditional frame preemption mechanism cannot truly guarantee the priority transmission of high-priority data frames.
  • a data transmission method which includes:
  • the network device determines that the frame type of the second data frame is a fast frame. If the frame type of the first data frame is a fast frame, the network device adjusts the frame type of the first data frame to a preemptible frame; the network device suspends the transmission of the first data frame and starts to transmit the second data frame.
  • the network device dynamically adjusts the frame type of the currently transmitted data frame, so that the frame type of the high-priority data frame in the network device is a fast frame, and the frame type of the low-priority data frame is a preemptible frame, and Compared with the fixed division of the frame type of the data frame in the traditional way, the frame type of the data frame can be determined more flexibly, thus realizing the flexible preemption of the high-priority data frame to the low-priority data frame. Flexibility of data transmission.
  • adjusting the frame type of the first data frame to a preemptible frame includes: if the frame type of the first data frame is a fast frame, and There is a third data frame preempted and transmitted by the first data frame, and the frame type of the third data frame is marked as the first preemptible frame mark, and the network device adjusts the frame type mark of the first data frame to the second preemptible frame mark , The second preemptible frame marker is different from the first preemptible frame marker.
  • the method of extending the preemptible frame flag can be used to distinguish different data frames whose frame types are all preemptible frames, or the method of adding an indication field to the frame structure of the data segment can be used to distinguish that the frame types are all available Preempt different data frames of the frame.
  • adjusting the frame type of the first data frame to a preemptible frame includes: if the frame type of the first data frame is a fast frame, And there is no third data frame preempted and transmitted by the first data frame, and the network device adjusts the frame type of the first data frame to a preemptible frame.
  • This implementation method can be compatible with the existing transmission method, ensuring that there is only one preemptible frame that is preempted for transmission in the network device.
  • the network device continues to transmit the first data frame.
  • the network device continues to transmit the first data frame, including:
  • the network device determines that the frame type of the fourth data frame is a fast frame , And transmit the fourth data frame; after the fourth data frame transmission ends, the network device continues to transmit the first data frame.
  • This application realizes that high-priority data frames are always transmitted preferentially compared to low-priority data frames.
  • Another data transmission method which includes:
  • the network device detects whether there is a second data frame to be transmitted during the transmission of the first data frame, the frame type of the first data frame and the second data frame are the same, and the priority of the second data frame is higher than that of the first data frame.
  • the network device determines that the frame type of the first data frame is a preemptible frame, and the frame type of the second data frame is a fast frame; the network device suspends transmission of the first data frame and starts to transmit the second data frame.
  • the frame type of the high priority data frame in the network device is a fast frame
  • the frame type of the low priority data frame is The type is a preemptible frame, which realizes the flexible preemption of high-priority data frames to low-priority data frames between data frames of the same frame type, and improves the flexibility of data transmission.
  • determining that the frame type of the first data frame is a preemptible frame and the frame type of the second data frame is a fast frame includes: if the frame types of the first data frame and the second data frame are both fast frames, The frame type of one data frame is adjusted to a preemptible frame; if the frame types of the first data frame and the second data frame are both preemptible frames, the frame type of the second data frame is adjusted to a fast frame.
  • adjusting the frame type of the first data frame to a preemptible frame includes: if the first data frame and the second data frame are The frame types of the two data frames are all fast frames, and there is a third data frame preempted and transmitted by the first data frame, and the frame type of the third data frame is marked as the first preemptible frame mark, then the frame of the first data frame The type mark is adjusted to the second preemptible frame mark, and the second preemptible frame mark is different from the first preemptible frame mark.
  • adjusting the frame type of the first data frame to a preemptible frame includes: if the first data frame and When the frame types of the second data frame are all fast frames, and there is no third data frame preempted and transmitted by the first data frame, the frame type of the first data frame is adjusted to a preemptible frame.
  • the network device continues to transmit the first data frame.
  • continuing to transmit the first data frame includes:
  • the network device After the second data frame transmission ends, if there is a fourth data frame to be transmitted, and the priority of the fourth data frame is higher than the priority of the first data frame, the network device transmits the fourth data frame; in the fourth data frame transmission After the end, the network device continues to transmit the first data frame.
  • a device for data transmission includes a plurality of functional modules: the multiple functional modules interact to implement the methods in the first aspect and various embodiments thereof.
  • the multiple functional modules may be implemented based on software, hardware, or a combination of software and hardware, and the multiple functional modules may be combined or divided arbitrarily based on specific implementations.
  • another device for data transmission includes multiple functional modules: the multiple functional modules interact with each other to implement the methods in the second aspect and various embodiments described above.
  • the multiple functional modules may be implemented based on software, hardware, or a combination of software and hardware, and the multiple functional modules may be combined or divided arbitrarily based on specific implementations.
  • a processing chip in a fifth aspect, includes a programmable logic circuit and/or program instructions, and the processing chip runs the programmable logic circuit and/or program instructions to implement the first aspect or The data transmission method of any one of the second aspect.
  • the processing chip includes a processing unit and a scheduling unit;
  • the processing unit is configured to buffer the data frame to be transmitted into the corresponding egress port queue according to the priority of the data frame to be transmitted;
  • the scheduling unit is configured to schedule data frames to be transmitted in the egress port queue to implement the data transmission method according to any one of the first aspect or the second aspect.
  • the scheduling unit includes data egress scheduling logic and media access control MAC encapsulation logic;
  • the data egress scheduling logic is used to schedule the data frames to be transmitted in the egress port queue, and provide the MAC encapsulation logic with a frame type indication corresponding to the data frame to be transmitted, and the frame type indication uses To indicate the frame type of the data frame to be transmitted;
  • the MAC encapsulation logic is configured to perform MAC encapsulation on the data frame to be transmitted according to the frame type indication corresponding to the data frame to be transmitted.
  • the processing chip further includes a memory; the memory is used for buffering data frames to be transmitted, specifically, the memory includes storage space allocated to the port queue.
  • the processing unit includes at least one of a network processor and a central processing unit, and the scheduling unit includes at least one of an application specific integrated circuit and a programmable logic device.
  • the memory is further configured to store computer program instructions, and the processing unit invokes the computer program instructions stored in the memory to execute one or more of the data transmission methods described in the first aspect or the second aspect. Steps.
  • a data transmission device including: a communication interface, and the processing chip described in the fifth aspect.
  • the communication interface and the processing chip may be connected through a communication bus.
  • the data transmission device further includes a memory, and a computer program is stored in the memory, and the computer program includes program instructions.
  • the processing chip invokes the computer program stored in the memory to execute one or more steps in the data transmission method of the first aspect or the second aspect.
  • a computer storage medium stores instructions, and when the instructions are executed by a processor, the data transmission method as described in the first aspect and any one of its implementation modes is implemented, Or, implement the data transmission method as described in the second aspect and any implementation manner thereof.
  • the frame type of the higher priority data frame in the currently transmitted data frame and the data frame to be transmitted is a fast frame, which is more
  • the frame type of the low-priority data frame is a preemptible frame, thereby realizing the flexible preemption of the high-priority data frame to the low-priority data frame, and improving the flexibility of data transmission.
  • FIG. 1 is a flowchart of a data transmission method provided by an embodiment of the present application
  • FIG. 2 is a schematic diagram of a frame structure of a data frame provided by an embodiment of the present application
  • FIG. 3 is a schematic diagram of the frame structure of another data frame provided by an embodiment of the present application.
  • FIG. 4 is a schematic diagram of a frame structure of another data frame provided by an embodiment of the present application.
  • FIG. 5 is a schematic diagram of preemptive transmission of a data frame provided by an embodiment of the present application.
  • FIG. 6 is a schematic diagram of another preemptive transmission of data frames provided by an embodiment of the present application.
  • FIG. 7 is a schematic diagram of yet another data frame preemptive transmission provided by an embodiment of the present application.
  • FIG. 8 is a flowchart of another data transmission method provided by an embodiment of the present application.
  • FIG. 9 is a schematic structural diagram of a data transmission device provided by an embodiment of the present application.
  • FIG. 10 is a schematic structural diagram of another data transmission device provided by an embodiment of the present application.
  • FIG. 11 is a block diagram of a data transmission device provided by an embodiment of the present application.
  • FIG. 12 is a schematic structural diagram of a processing chip provided by an embodiment of the present application.
  • FIG. 13 is a schematic structural diagram of a scheduling unit provided by an embodiment of the present application.
  • the data transmission method provided in the embodiments of the present application can be applied to network equipment in a communication network.
  • the communication network may be an industrial network, an in-vehicle network, a data center network (DCN), a metropolitan area network, a wide area network, or a campus network, etc.
  • the application scenario of the data transmission method in this embodiment of the application is not Make a limit.
  • the network device can be a router, switch or server, etc. The network device buffers all data frames to be sent in each out port queue, and then transmits the data frames in the out port queue to the outside through the corresponding port.
  • the network device can divide the data frame into multiple priority levels, for example, 8 priority levels, or 16 priority levels, which is not limited in the embodiment of the present application.
  • the network device divides the data frame into 8 priority levels, including priority levels 0 to 7, as an example for description. Among them, the larger the priority value, the higher the priority.
  • the network device may include 8 egress port queues, and each egress port queue is used to buffer a priority data frame.
  • the outgoing port queue may also be referred to as a class of service queue (COSQ) or priority queue.
  • COSQ class of service queue
  • the priority of the egress port queue and the priority of the data frame that it buffers one-to-one correspondence is taken as an example.
  • the network device forwards the data frames in the port queue in order according to the priority from high to low. For example, suppose that the network device includes three egress port queues with buffered data frames, including the first egress port queue with priority 2, the second egress port queue with priority 5, and the third egress queue with priority 6.
  • the first outgoing port queue is buffered with priority 2 data frames
  • the second outgoing port queue is buffered with priority 5 data frames
  • the third outgoing port queue is buffered with priority 6 data frames Frame
  • the network device forwards the data frame, it first transmits the data frame in the third egress port queue, then transmits the data frame in the second egress port queue, and finally transmits the data frame in the first egress port queue.
  • the network device when the network device is in the process of transmitting the first data frame with priority 5 in the second egress port queue, if the third egress port queue receives the second data frame to be transmitted, it will follow the traditional frame preemption mechanism :
  • the frame type of the second egress port queue is set to a preemptible frame, that is, the frame type of the first data frame with a priority of 5 is a preemptible frame
  • the frame type of the third egress port queue is set to a fast frame, that is The frame type of the second data frame with a priority of 6 is a fast frame
  • the network device suspends transmission of the first data frame in the second egress port queue, and starts to transmit the second data frame in the third egress port queue.
  • the network device continues to transmit the first data frame in the second out-port queue, that is, the second data frame with priority 6 can interrupt the second data frame with priority 5. Transmission of a data frame and preemptive transmission.
  • the network device transmits the first data frame in the second egress port queue After the end, the second data frame in the third egress port queue is transmitted.
  • the frame type of the data frame stored in the egress port queue is set to the frame type set by the egress port queue.
  • the frame type of the data frame can be marked with the value of a specific field in the data frame.
  • the data frame includes a start MAC-merge-packet delimiter (SMD) field, and the frame type of the data frame can be indicated by the value of the SMD field.
  • SMD start MAC-merge-packet delimiter
  • the frame type of the data frame is fixed in advance.
  • the frame type of the data frame with the priority of 0 to 3 is set as a preemptible frame
  • the frame type of the data frame with the priority of 4 to 7 is set.
  • the frame type is set to fast frame. Therefore, high-priority data frames with the same frame type cannot interrupt low-priority data frames and preempt the transmission, resulting in lower data transmission flexibility in traditional implementations.
  • the frame type of the higher priority data frame among the currently transmitted data frame and the data frame to be transmitted is a fast frame.
  • the frame type of the lower priority data frame is a preemptible frame.
  • the frame type of the data frame can be flexibly adjusted to realize the high priority data frame to the low priority
  • the flexible preemption of level data frames can realize multilevel preemption transmission of data frames, which improves the flexibility of data transmission.
  • Fig. 1 is a flowchart of a data transmission method provided by an embodiment of the present application. As shown in Figure 1, the method includes:
  • Step 101 If there is a second data frame to be transmitted during the transmission of the first data frame, the network device determines that the frame type of the second data frame is a fast frame, and the priority of the second data frame is higher than that of the first data frame. priority.
  • the network equipment Since the network equipment transmits data frames in order of priority from high to low, during the process of transmitting the first data frame by the network equipment, the data frames with the priority lower than or equal to the priority of the first data frame in the network equipment will not The preemptive transmission of the first data frame means that the transmission of the first data frame will not be affected. Therefore, when the network device transmits the first data frame, it only needs to determine whether there is a second data frame with a higher priority than the first data frame in the network device.
  • the network device may determine the frame type of the second data frame as a fast frame.
  • the second data frame to be transmitted in the network device may be received from another device (for example, the sending end), or may be generated by the network device itself.
  • the network device before transmitting the first data frame, the network device also buffers the first data frame in a corresponding egress port queue according to the priority of the first data frame, for example, the first egress port queue. Before step 101, the network device also buffers the second data frame in the corresponding egress port queue, for example, the second egress port queue, according to the priority in the second data frame to be transmitted.
  • Step 102 If the frame type of the first data frame is a fast frame, the network device adjusts the frame type of the first data frame to a preemptible frame.
  • the network device may determine the frame type of the first data frame according to the value of the SMD field in the first data frame. If the frame type of the first data frame is a fast frame, the network device adjusts the frame type of the first data frame to a preemptible frame, so that the second data frame with a higher priority can treat the first data with a lower priority. Frames are preemptively transmitted to ensure low-latency transmission of high-priority data frames. If the frame type of the first data frame is a preemptible frame, there is no need to perform step 102, and the network device can directly perform the subsequent step 103.
  • Step 103 The network device suspends the transmission of the first data frame and starts to transmit the second data frame.
  • the second data frame can preempt the transmission of the first data frame, that is, the network device can suspend the transmission of the first data frame.
  • One data frame, and the second data frame is transmitted first.
  • Step 104 After the transmission of the second data frame ends, the network device continues to transmit the first data frame.
  • the frame type of the first data frame transmitted after the network device is powered on is a fast frame.
  • it is judged whether the priority of the first data frame to be transmitted is the lowest priority supported by the network device, if the priority of the first data frame is not the lowest supported by the network device Priority, the frame type of the first data frame is determined to be a fast frame, and if the priority of the first data frame is the lowest priority supported by the network device, the frame type of the first data frame is determined to be available Preempt the frame. Since the data frame with the lowest priority does not need to be preemptively transmitted to other data frames, in this embodiment of the present application, the network device may determine the frame type of the data frame with the lowest priority as all preemptible frames.
  • the first data frame may be the first data frame transmitted after the network device is powered on, or may be a subsequent data frame transmitted, which is not limited in this embodiment of the application.
  • the network device when the network device obtains a second data frame with a higher priority during the transmission of the first data frame, it is determined that the frame type of the second data frame is a fast frame. For example, when a network device transmits a data frame with a priority of 1 while transmitting a data frame with a priority of 0, it can determine that the frame type of the data frame with a priority of 1 is a fast frame; another example is that the network device is transmitting When there is a data frame with a priority of 7 to be transmitted in the process of a data frame with a priority of 6, it can be determined that the frame type of the data frame with a priority of 7 is a fast frame. Compared with the current frame type division mechanism, it improves To determine the flexibility of the frame type of the data frame.
  • the first possible implementation of step 102 includes: if the frame type of the first data frame is a fast frame, and there is a third data frame preempted and transmitted by the first data frame in the network device, the third data frame If the frame type mark of is the first preemptible frame mark, the network device adjusts the frame type mark of the first data frame to the second preemptible frame mark, and the second preemptible frame mark is different from the first preemptible frame mark.
  • a network device transmits a data frame with a priority of 0, there is a data frame with a priority of 1 to be transmitted, and a data frame with a priority of 1 preemptively transmits a data frame with a priority of 0; the network device is transmitting In the process of a data frame with a priority of 1, there is a data frame with a priority of 2 to be transmitted, a data frame with a priority of 2 preemptively transmits a data frame with a priority of 1, and so on, the higher priority data frames are sequentially For preemptive transmission of low-priority data frames, there are at most 7 data frames preempted for transmission in the network device.
  • different preemptible frame markers can be used, for example, preempt
  • Figure 2 is a schematic diagram of the frame structure of a data frame defined in IEEE 802.3br.
  • the data frame includes a preamble (preamble), an SMD field, a load field, and a cyclic redundancy check (CRC) field.
  • the length of the preamble is 7 octets (7octets)
  • the length of the SMD field is 1 octet (1octet)
  • the length of the payload field is greater than or equal to 60 Octet (60octets)
  • the length of the CRC field is 4 octets (4octets).
  • Figure 3 is a schematic diagram of the frame structure of another data frame defined in IEEE 802.3br.
  • the data frame includes a preamble, an SMD field, a continue transmission (FRAG_COUNT) field, a load field and a CRC field.
  • the length of the preamble is 6 octets (6octets)
  • the length of the FRAG_COUNT field is 1 octet (1octet)
  • the length of the SMD field is 1 octet.
  • the length of the payload field is greater than or equal to 60 octets (60 octets)
  • the length of the CRC field is 4 octets (4 octets).
  • the frame structure of the first data segment of a fast frame, a complete preemptible frame, or a preemptible frame for transmission (hereinafter referred to as the "preemptible frame first") is shown in Figure 2.
  • the frame structure of the other data fragments (hereinafter referred to as the "preemptible frame subsequent fragments") in the preemptible frame for preemptible transmission (hereinafter referred to as “preemptible frame subsequent fragments”) is shown in Figure 3.
  • the FRAG_COUNT field is used to indicate the data fragment It belongs to the same data frame as the previous data segment. Among them, each data segment of the data frame that is preempted for transmission can be regarded as a data subframe.
  • the receiving end determines whether the frame type of the data frame is a fast frame or a preemptible frame based on the value of the SMD field in the data frame, and determines whether the data frame and the previously transmitted data frame belong to the same data frame according to whether the FRAG_COUNT field exists in the data frame.
  • the fast frame mark is SMD-E
  • the preemptible frame mark of the first data segment of the preemptible frame includes SMD-S0, SMD -S1, SMD-S2 and SMD-S3
  • the preemptible frame markers except for the first data segment in the preemptible frame include SMD-C0, SMD-C1, SMD- C2 and SMD-C3.
  • the frame type tags SMD-E, SMD-S0 to SMD-S3, and SMD-C0 to SMD-C3 are respectively identified by different values.
  • the frame type tag SMD-E corresponds to the value 0xD5.
  • the values of other frame type flags can be referred to the standard, and will not be listed here.
  • the frame structure of the fast frame follows the frame structure defined in IEEE 802.3br as shown in Figure 2, but the fast frame flag needs to be extended.
  • the total number of the expanded fast frame flag is The number is the same as the number of priority queues in the network device.
  • the network device has at most 7 data frames preempted for transmission in the process of transmitting data frames, namely In the process of data frame transmission by the network device, there may be 7 data frames whose frame types are adjusted from fast frames to preemptible frames. Therefore, the embodiments of this application extend the fast frame tag based on the fast frame tag SMD-E defined in the IEEE 802.3br standard, use the defined fast frame tag SMD-E as SMD-E0, and extend the new fast frame Mark SMD-E1 to SMD-E7, so that the expanded fast frame mark includes 8 SMD-E0 to SMD-E7.
  • the fast frame mark of the data frame can be determined according to the priority of the data frame, so that the priority corresponds to the fast frame mark one-to-one. For example, if the frame type of the data frame with priority 7 is fast frame, the fast frame of the data frame with priority 7 is marked as SMD-E7; if the frame type of the data frame with priority 6 is fast frame, Then the fast frame of the data frame with priority 6 is marked as SMD-E6, and so on.
  • the fast frame of the data frame with a priority of 7 can also be marked as SMD-E0, and the fast frame of the data frame with a priority of 6 can be marked as SMD-E1, and so on.
  • the embodiment of the present application provides two ways to distinguish which data frame the subsequent slice of the preemptible frame belongs to.
  • Method 1 The frame structure of the subsequent fragments of the preemptible frame follows the frame structure defined in IEEE 802.3br as shown in Figure 3, and the subsequent preemptible frame markers are extended.
  • the total number of subsequent preemptible frame markers after the extension is the network Four times the number of priority queues in the device.
  • the FRAG-COUNT field in the subsequent slices of the preemptible frame follows the definition in IEEE 802.3br and does not need to be extended.
  • the FRAG-COUNT field is cyclically used according to 4 subsequent slices.
  • the FRAG-COUNT field of the first preemptible frame subsequent slice of a data frame is FRAG-COUNT0 with a value of 0xE6, and the FRAG-COUNT field of the second preemptible frame subsequent slice of the data frame is FRAG-COUNT1,
  • the value is 0x4C
  • the FRAG-COUNT field of the third preemptible frame subsequent slice of the data frame is FRAG-COUNT2
  • the value is 0x7F
  • the FRAG-COUNT field of the fourth preemptible frame subsequent slice of the data frame is FRAG- COUNT0
  • the value is 0xB3
  • the FRAG-COUNT field of the fifth preemptible frame subsequent slice of the data frame is FRAG-COUNT0
  • the value is 0xE6,....
  • the embodiment of this application can extend the subsequent preemptible frame markers SMD-C0 to SMD-C3 defined in IEEE 802.3br to SMD-C0 to SMD-C31.
  • the values of the preempt frame flags SMD-C0 to SMD-C31 are different from each other. Among them, every four subsequent preemptible frames are marked as a group, for example, SMD-C0 to SMD-C3 are a group, SMD-C4 to SMD-C7 are a group, and SMD-C24 to SMD-C27 are followed by each group.
  • the preemptible frame tag corresponds to a fast frame tag
  • SMD-E0 corresponds to SMD-C0 to SMDC3
  • SMD-E1 corresponds to SMD-C4 to SMDC7
  • SMD-E7 corresponds to SMD-C28 to SMD-C31.
  • SMD-C0 to SMD-C31 can also be grouped in other ways, which is not limited in this application.
  • the frame type mark of the subsequent fragments of the preemptible frame of the data frame can adopt subsequent preemptible frame marks SMD-C0 to SMD -C3, the corresponding FRAG-COUNT field follows the definition in IEEE 802.3br, including FRAG-COUNT0 (value 0xE6) to FRAG-COUNT3 (value 0xB3); if the frame type is marked as fast frame, mark the data frame of SMD-E1 It is adjusted to a preemptible frame.
  • the frame type of the subsequent fragments of the preemptible frame of this data frame can be marked by the subsequent preemptible frame markers SMD-C4 to SMD-C7.
  • the corresponding FRAG-COUNT field follows the definition in IEEE 802.3br, which is also FRAG-COUNT0 (value 0xE6) to FRAG-COUNT3 (value 0xB3), the following are the same, and will not be repeated; and so on, if the frame type is marked as fast frame mark SMD-E6 data frame is adjusted to a preemptible frame, the The frame type flags of the subsequent fragments of the preemptible frame of the data frame can be the subsequent preemptable frame flags SMD-C24 to SMD-C27.
  • the data frame whose frame type is marked as fast frame mark SMD-E7 is adjusted to be a preemptible frame, and the frame type mark of subsequent fragments of the preemptible frame can adopt the subsequent preemptible frame marks SMD-C28 to SMD-C31.
  • the data frame whose frame type is marked as fast frame mark SMD-E7 can also be adjusted to a preemptible frame, and the frame type mark of subsequent fragments of the preemptible frame of this data frame adopts subsequent preemptable frame marks SMD-C0 to SMD-C3 ,
  • the corresponding FRAG-COUNT field follows the definition in IEEE 802.3br, which is also FRAG-COUNT0 (value 0xE6) to FRAG-COUNT3 (value 0xB3), the following are the same, and will not be repeated;
  • the frame type is marked as fast frame mark SMD-
  • the E6 data frame is adjusted to a preemptible frame, and the frame type of the subsequent fragments of the preemptible frame of this data frame is marked by the subsequent preemptable frame markers SMD-C4 to SMD-C7; and so on, the frame type is marked as fast frame marker SMD-
  • the data frame of E0 is adjusted to a preemptible frame, and the frame type label of the subsequent slice of the
  • the receiving end After receiving a certain data frame, the receiving end can judge based on the frame structure whether the data frame is a data segment in a certain data frame that is preempted transmission, if the data frame is data in a certain data frame that is preempted transmission Fragment, the receiving end can determine which data fragment and the previously received data fragment belong to the same data frame based on the value of the SMD field in the data frame.
  • Manner 2 Define a new frame structure that can preempt the subsequent slices of the frame, for example, the frame structure shown in FIG. 4.
  • the frame structure of the subsequent fragment of the preemptible frame shown in Figure 4 adds an indication field based on the frame structure of the subsequent fragment of the preemptible frame defined by IEEE 802.3br.
  • the indication field is used to indicate which data fragment is different from the previous transmission. Or which data segments belong to the same data frame.
  • the preamble, SMD field, FRAG_COUNT field, indication field, load field and CRC field are included in the subsequent slices of the preemptible frame.
  • the value of the indication field may be the same as the value of the SMD field in the target data segment, and the target data segment is the first data segment belonging to the same data frame as the subsequent segment of the preemptible frame. For example, if the value of the SMD field in the first data segment of the first data frame that is preempted for transmission is 0xD5, then the value of the indication field in the second data segment and subsequent data segments of the first data frame are both 0xD5.
  • the method of setting the value of the SMD field in the subsequent fragments of the preemptible frame can follow the SMD-C0 to SMD-C3 defined in IEEE 802.3br. The embodiments of this application are not here. Do repeat.
  • step 102 includes: if the frame type of the first data frame is a fast frame, and there is no third data frame preempted and transmitted by the first data frame in the network device, the network device sends the first data frame The frame type is adjusted to a preemptible frame.
  • the network device does not adjust the frame type of the first data frame.
  • the frame type of the first data frame is not adjusted, that is, the first data frame is continuously transmitted, and the second data frame cannot preempt the transmission of the first data frame.
  • This implementation method can be compatible with the existing transmission method, ensuring that there is only one preemptible frame that is preempted for transmission in the network device.
  • the frame structure and frame type tag defined in IEEE 802.3br can be used without extension. That is, the frame structure of the first slice of the preemptible frame is shown in Figure 2, and the frame structure of the subsequent slice of the preemptible frame is shown in Figure 3.
  • the network device may detect the frame structure of the data frame to be transmitted in the network device to determine whether there is a third data frame preempted and transmitted by the first data frame in the network device.
  • FIG. 5 is a schematic diagram of preemptive transmission of a data frame provided by an embodiment of the present application.
  • the network device obtains a second data frame with a priority higher than that of the first data frame, and the network device suspends transmission of the first data frame and starts transmission The second data frame; after the second data frame transmission ends, the network device continues to transmit the first data frame.
  • the preemptive transmission mode of the data frame includes two possible implementations.
  • FIG. 6 and Fig. 7 are schematic diagrams of preemptive transmission using the first possible implementation in step 102.
  • the network device obtains the first data frame with a higher priority than the priority of the third data frame in the process of transmitting the third data frame, the network device suspends the transmission of the third data frame, and Start to transmit the first data frame; in the process of transmitting the first data frame, the network device acquires a second data frame with a priority higher than that of the first data frame, the network device suspends the transmission of the first data frame, and Start transmitting the second data frame; after the second data frame transmission ends, the network device continues to transmit the first data frame; after the first data frame transmission ends, the network device continues to transmit the third data frame.
  • FIG. 6 shows the data frame preemption transmission using mode 1.
  • Figure 7 shows data frame preemption transmission in mode two. The arrows in Figures 5 to 7 all indicate the transmission direction of the data frame.
  • FIGS. 6 and 7 the frame structures of the first data segment of the first data frame, the second data frame, and the first data segment of the third data frame are all shown in FIG. 2. For ease of illustration, only part of the frame structure of each data frame is shown in FIG. 6 and FIG. 7. For example, suppose that the priority of the third data frame is 3, the priority of the first data frame is 5, the priority of the second data frame is 6, and the initial frame type of the third data frame is a fast frame.
  • the value of the SMD field in the first data segment of the third data frame is the value corresponding to SMD-E3 (indicated by SMD-E3), and the SMD field in the first data segment of the first data frame
  • the value of is the value corresponding to SMD-E5
  • the value of the SMD field in the second data frame is the value corresponding to SMD-E6.
  • Figure 6 uses the method of extending the subsequent preemptible frame flag to distinguish which data frame the subsequent slice of the preemptible frame belongs to.
  • the frame structures of the second data segment of the first data frame and the second data segment of the third data frame in FIG. 6 are shown in FIG. 3.
  • the value of the SMD field in the second data segment of the first data frame is the value corresponding to SMD-C20
  • the value of the SMD field in the second data segment of the third data frame is the value corresponding to SMD-C12.
  • the value of the FRAG_COUNT field is set using the setting method in the standard defined by IEEE802.3br, which is not repeated in the embodiment of the present application.
  • the subsequent preemptible frame marker SMD-C20 corresponds to the fast frame marker SMD-E5
  • the subsequent preemptible frame marker SMD-C12 corresponds to the fast frame marker SMD-E3. Therefore, According to the subsequent preemptible frame flag, it is possible to know which data frame the subsequent slice of the preemptible frame belongs to.
  • the receiving end combines the data segment with the SMD field value of SMD-E5 and the data segment with the SMD field value of SMD-C20 (and possibly SMD-C21, etc.) to obtain the first data frame.
  • the receiving end combines the data segment with the SMD field value of SMD-E3 and the data segment with the SMD field value of SMD-C12 (and possibly SMD-C13, etc.) to obtain the third data frame.
  • Fig. 7 adopts a method of adding an indication field to the frame structure of the subsequent slice of the preemptible frame to distinguish which data frame the subsequent slice of the preemptible frame belongs to.
  • the frame structures of the second data segment of the first data frame and the second data segment of the third data frame in FIG. 7 are shown in FIG. 4.
  • the value of the SMD field in the second data segment of the first data frame is the value corresponding to SMD-C0
  • the value of the indicating field is the value corresponding to SMD-E5 (the value corresponding to the first data segment in the first data frame).
  • the value of the SMD field of the third data frame is the same); the value of the SMD field in the second data segment of the third data frame is the value corresponding to SMD-C0, and the value of the indicating field is the value corresponding to SMD-E3 (which is the same as the value of the third data frame).
  • the value of the FRAG_COUNT field is set using the setting method in the standard defined by IEEE 802.3br, which is not described in detail in the embodiment of the present application. It can be understood that according to the value of the indication field, it is directly possible to know which data frame the subsequent slice of the preemptible frame belongs to.
  • the receiving end combines the data fragments whose SMD field value is SMD-E5 and all the data fragments whose indicated field value is SMD-E5 to obtain the third data frame.
  • the receiving end combines the data fragments whose SMD field value is SMD-E3 and all the data fragments whose indicated field value is SMD-E3 to obtain the third data frame.
  • the network device obtains the first data frame with a priority higher than the priority of the third data frame during the transmission of the third data frame, and the network The device suspends the transmission of the third data frame and starts to transmit the first data frame; while the network device is transmitting the first data frame, it acquires a second data frame with a priority higher than that of the first data frame.
  • the network device continues to transmit the first data frame; after the transmission of the first data frame ends, the network device transmits the first data frame Second data frame: After the second data frame transmission ends, the network device continues to transmit the third data frame.
  • the network device determines the fourth data
  • the frame type of the frame is a fast frame, and the fourth data frame is transmitted; after the fourth data frame transmission ends, the network device continues to transmit the first data frame.
  • the priority of the fourth data frame is lower than or equal to the priority of the second data frame.
  • the network device when a network device has a second data frame with a priority higher than that of the first data frame during the transmission of the first data frame, the second data frame If the frame type of the first data frame is a fast frame, the network device adjusts the frame type of the first data frame to a preemptible frame.
  • the embodiment of the application dynamically adjusts the frame type of the currently transmitted data frame, so that the frame type of the high-priority data frame in the network device is a fast frame, and the frame type of the low-priority data frame is a preemptible frame, which is different from the traditional Compared with the fixed division method of the frame type of the data frame, the frame type of the data frame can be flexibly adjusted to achieve multi-level preemption, thereby realizing the flexible preemption of high-priority data frames to low-priority data frames, which improves Flexibility of data transmission.
  • Fig. 8 is a flowchart of another data transmission method provided by an embodiment of the present application. As shown in Figure 8, the method includes:
  • Step 801 If there is a second data frame to be transmitted during the transmission of the first data frame, the frame type of the first data frame is the same as the frame type of the second data frame, and the priority of the second data frame is higher than that of the first data frame.
  • the network device determines that the frame type of the first data frame is a preemptible frame, and the frame type of the second data frame is a fast frame.
  • step 101 For the relevant explanation of the first data frame, reference may be made to step 101, which is not repeated in the embodiment of the present application.
  • the egress port queue in the embodiment of the present application may be provided with a queue identifier, which is used to indicate the queue type of the egress port queue, and the queue type includes a fast queue or a preemptible queue.
  • the queue identifier of the egress port queue with priority 0 ⁇ 3 is the preemptible identifier, which means that the egress port queue with priority 0 ⁇ 3 is the preemptible queue; the queue identifier of the egress port queue with equal priority is 4 ⁇ 7
  • the frame type of the data frame in the fast queue is a fast frame
  • the frame type of the data frame in the preemptible queue is a preemptible frame.
  • Preemptible identification and quick identification can be numbers or characters.
  • the preemptible flag is 1, and the fast flag is 0.
  • the preemptible identifier is P
  • the quick identifier is E.
  • the network device Before transmitting the data frame, the network device will buffer the data frame to be transmitted into the corresponding egress port queue according to the priority of the data frame. Since the frame type of the data frame in each egress port queue is determined, the network When the device transmits the first data frame, the module or chip that controls the transmission of the data frame can actively detect the output that has a higher priority than the first data frame and is the same as the queue identifier of the egress port queue where the first data frame is located. Whether there is a second data frame to be transmitted in the port queue.
  • the network device detects whether there is a second data frame to be transmitted in the fast queue with a priority of 7 during the process of transmitting the first data frame. For another example, if the frame type of the first data frame is a preemptible frame and the priority is 1, then the network device detects whether there are waiting in the preemptible queue with priority 2 and priority 3 during the process of the first data frame. The second data frame transmitted.
  • the egress port queue can also send an instruction to the module or chip that controls the data frame transmission in the network device.
  • the instruction includes the frame type and priority of the egress port queue to notify the module or chip that controls the data frame transmission to be transmitted.
  • the frame type of the second data frame is the same as the frame type of the first data frame being transmitted, and the priority of the second data frame is higher than the priority of the first data frame.
  • the network device determines that the frame type of the first data frame is a preemptible frame, and the frame type of the second data frame is a fast frame, including: if the frame types of the first data frame and the second data frame are both fast frames, the network device will The frame type of one data frame is adjusted to a preemptible frame, and no operation is performed on the frame type of the second data frame.
  • the network device adjusts the frame type of the first data frame to a preemptible frame, including: if the frame type of the first data frame is a fast frame, and the network device has third data preempted and transmitted by the first data frame Frame, the frame type of the third data frame is marked as the first preemptible frame mark, and the network device adjusts the frame type mark of the first data frame to the second preemptible frame mark, and the second preemptible frame mark is the same as the first preemptible frame mark.
  • the preemption frame tag is different. For this process, reference may be made to the detailed description in the first possible implementation manner of step 102, which is not repeated here.
  • the network device adjusts the frame type of the first data frame to a preemptible frame, including: if the frame type of the first data frame is a fast frame, and there is no third data frame preempted and transmitted by the first data frame in the network device , The network device adjusts the frame type of the first data frame to a preemptible frame. If the frame type of the first data frame is a fast frame, and there is a third data frame that is preempted and transmitted by the first data frame in the network device, the network device does not adjust the frame type of the first data frame.
  • a preemptible frame including: if the frame type of the first data frame is a fast frame, and there is no third data frame preempted and transmitted by the first data frame in the network device .
  • the network device adjusts the frame type of the first data frame to a preemptible frame. If the frame type of the first data frame is a fast frame, and there is a third data frame that is preempted and transmitted by the first data frame in the network device,
  • the network device determines that the frame type of the first data frame is a preemptible frame, and the frame type of the second data frame is a fast frame, and further includes: if the frame types of the first data frame and the second data frame are both preemptible frames, the network device The frame type of the second data frame is adjusted to a fast frame, and no operation is performed on the frame type of the first data frame.
  • Step 802 The network device suspends transmission of the first data frame, and starts to transmit the second data frame.
  • step 103 For the specific details of this step, reference may be made to the relevant description in step 103 above, which will not be repeated here.
  • Step 803 After the transmission of the second data frame ends, the network device continues to transmit the first data frame.
  • step 104 For the specific details of this step, reference may be made to the relevant description in step 104, which is not repeated here.
  • the network device determines that the frame type of the first data frame is a preemptible frame, and the frame type of the second data frame is a fast frame.
  • the embodiment of the application dynamically adjusts the frame type of the currently transmitted data frame or the frame type of the data frame in the egress port queue, so that the frame type of the high priority data frame in the network device is a fast frame, and the frame type of the low priority data
  • the frame type of the frame is a preemptible frame, which realizes the flexible preemption of high priority data frames to low priority data frames among data frames of the same frame type, and improves the flexibility of data transmission.
  • the data transmission method shown in FIG. 1 and the data transmission method shown in FIG. 8 are proposed based on the same inventive concept.
  • the sequence of the steps of each of the above data transmission methods can be adjusted appropriately, and the steps can also be increased or decreased according to the situation. Any method that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be covered by the protection scope of this application.
  • FIG. 9 is a schematic structural diagram of a data transmission device provided by an embodiment of the present application. As shown in Fig. 9, the device 90 includes:
  • the determining module 901 is configured to determine that the frame type of the second data frame is a fast frame if there is a second data frame to be transmitted in the process of transmitting the first data frame, and the priority of the second data frame is higher than that of the first data frame priority.
  • the adjusting module 902 is configured to adjust the frame type of the first data frame to a preemptible frame if the frame type of the first data frame is a fast frame.
  • the transmission module 903 is configured to suspend transmission of the first data frame and start transmission of the second data frame.
  • the adjustment module is configured to: if the frame type of the first data frame is a fast frame and there is a third data frame preempted and transmitted by the first data frame, the frame type of the third data frame is marked as the first preemptible Frame marker, the frame type marker of the first data frame is adjusted to the second preemptible frame marker, and the second preemptible frame marker is different from the first preemptible frame marker.
  • the frame type of the third data frame is marked as the first preemptible Frame marker
  • the frame type marker of the first data frame is adjusted to the second preemptible frame marker
  • the second preemptible frame marker is different from the first preemptible frame marker.
  • the adjustment module is configured to: if the frame type of the first data frame is a fast frame and there is no third data frame preempted and transmitted by the first data frame, adjust the frame type of the first data frame to be preemptible frame.
  • the transmission module is further configured to continue to transmit the first data frame after the transmission of the second data frame ends.
  • the transmission module is specifically configured to: after the transmission of the second data frame ends, if there is a fourth data frame to be transmitted, and the priority of the fourth data frame is higher than the priority of the first data frame, determine the first data frame The frame type of the four data frames is a fast frame, and the fourth data frame is transmitted; after the fourth data frame transmission ends, the first data frame is continued to be transmitted.
  • the device 90 further includes a buffer module, configured to buffer the first data frame in a corresponding egress port queue according to the priority of the first data frame before transmitting the first data frame, for example, the first egress port queue . It is also used to buffer the second data frame in the corresponding egress port queue, for example, the second egress port queue, according to the priority in the second data frame to be transmitted.
  • a buffer module configured to buffer the first data frame in a corresponding egress port queue according to the priority of the first data frame before transmitting the first data frame, for example, the first egress port queue . It is also used to buffer the second data frame in the corresponding egress port queue, for example, the second egress port queue, according to the priority in the second data frame to be transmitted.
  • the device 90 further includes an enable/disable control module for controlling whether the device 90 enables the data transmission method provided in the embodiment of the present application.
  • the device 90 executes the data transmission method shown in FIG. 1.
  • the device 110 executes a traditional frame preemption mechanism.
  • the frame type of the data frame is determined to be a fast frame, and if the frame type of the first data frame is a fast frame, the network device adjusts the frame type of the first data frame to a preemptible frame through the adjustment module.
  • the embodiment of the application dynamically adjusts the frame type of the currently transmitted data frame, so that the frame type of the high-priority data frame in the network device is a fast frame, and the frame type of the low-priority data frame is a preemptible frame, which is different from the traditional Compared with the fixed division method of the frame type of the data frame, the frame type of the data group can be flexibly adjusted to achieve multi-level preemption, thereby realizing the flexible preemption of high-priority data frames to low-priority data frames, improving The flexibility of data transmission is improved.
  • FIG. 10 is a schematic structural diagram of another data transmission device provided by an embodiment of the present application. As shown in FIG. 10, the apparatus 100 includes:
  • the determining module 1001 is configured to, if there is a second data frame to be transmitted during the transmission of the first data frame, the frame types of the first data frame and the second data frame are the same, and the priority of the second data frame is higher than that of the first data frame. Based on the priority of the data frame, it is determined that the frame type of the first data frame is a preemptible frame, and the frame type of the second data frame is a fast frame.
  • the transmission module 1002 is used to suspend transmission of the first data frame and start transmission of the second data frame.
  • the determining module is configured to: if the frame types of the first data frame and the second data frame are both fast frames, adjust the frame type of the first data frame to a preemptible frame;
  • the frame types of the data frames are all preemptible frames, and the frame type of the second data frame is adjusted to a fast frame.
  • the determining module is configured to: if the frame types of the first data frame and the second data frame are both fast frames, and there is a third data frame preempted and transmitted by the first data frame, the frame type of the third data frame If the mark is the first preemptible frame mark, the frame type mark of the first data frame is adjusted to the second preemptible frame mark, and the second preemptible frame mark is different from the first preemptible frame mark.
  • the preemptible frame marking please refer to the detailed description in the data transmission method shown in FIG. 1, which will not be repeated here.
  • the determining module is configured to: if the frame types of the first data frame and the second data frame are both fast frames, and there is no third data frame preempted and transmitted by the first data frame, then the first data frame The frame type of the frame is adjusted to a preemptible frame.
  • the transmission module is further configured to continue to transmit the first data frame after the transmission of the second data frame ends.
  • the transmission module is specifically used for:
  • the fourth data frame is transmitted; after the transmission of the fourth data frame is completed , Continue to transmit the first data frame.
  • the device 100 further includes a buffer module, configured to buffer the first data frame in a corresponding egress port queue according to the priority of the first data frame before transmitting the first data frame, for example, the first egress port queue . It is also used to buffer the second data frame in the corresponding egress port queue, for example, the second egress port queue, according to the priority in the second data frame to be transmitted.
  • a buffer module configured to buffer the first data frame in a corresponding egress port queue according to the priority of the first data frame before transmitting the first data frame, for example, the first egress port queue . It is also used to buffer the second data frame in the corresponding egress port queue, for example, the second egress port queue, according to the priority in the second data frame to be transmitted.
  • the device 100 further includes an enable/disable control module for controlling whether the device 100 enables the data transmission method provided in the embodiment of the present application.
  • an enable/disable control module for controlling whether the device 100 enables the data transmission method provided in the embodiment of the present application.
  • the device 100 executes the data transmission method shown in FIG. 8.
  • the device 100 executes a traditional frame preemption mechanism.
  • the network device determines through the determining module that the frame type of the first data frame is a preemptible frame, and the frame type of the second data frame is a fast frame.
  • the embodiment of the application dynamically adjusts the frame type of the currently transmitted data frame or the frame type of the data frame in the egress port queue, so that the frame type of the high priority data frame in the network device is a fast frame, and the frame type of the low priority data
  • the frame type of the frame is a preemptible frame, which realizes the flexible preemption of high-priority data frames to low-priority data frames, and improves the flexibility of data transmission.
  • FIG. 11 is a block diagram of a data transmission device provided by an embodiment of the present application.
  • the data transmission device may be a network device, for example, a switch or router.
  • the device 110 includes: a processing chip 1101.
  • the apparatus 110 may further include a memory 1102, a communication bus 1103, and a communication interface 1104.
  • the processing chip 1101, the memory 1102, and the communication interface 1104 are connected to each other through a communication bus 1103.
  • the processing chip 1101 includes a programmable logic circuit and/or program instructions. When the processing chip 1101 runs the programmable logic circuit and/or program instructions, the data transmission method shown in FIG. 1 or FIG. 8 is implemented.
  • FIG. 12 is a schematic structural diagram of a processing chip 1101 provided by an embodiment of the present application. As shown in FIG. 12, the processing chip 1101 includes a processing unit 1101A and a scheduling unit 1101B.
  • the processing unit 1101A may be a central processing unit (CPU), a network processor (NP), or a combination of a CPU and an NP.
  • CPU central processing unit
  • NP network processor
  • the memory 1102 is used to store a computer program, and the computer program includes program instructions.
  • the processing unit 1101A calls the computer program stored in the memory 1102, and runs the program instructions in the computer program to buffer the data frame to be transmitted into the corresponding out port queue according to the priority in the data frame to be transmitted.
  • the data frame to be transmitted in the egress port queue can be understood as a message without MAC encapsulation.
  • the scheduling unit 1101B may be an application specific integrated circuit (ASIC), a programmable logic device (programmable logic device, PLD), or a combination thereof.
  • the above-mentioned PLD may be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a general array logic (generic array logic, GAL), or any combination thereof.
  • the scheduling unit 1101B runs the programmable logic circuit in the processing chip, and schedules the data frames to be transmitted in the egress port queue to implement the data transmission method described in FIG. 1 or FIG. 8. Specifically, the scheduling unit is used for preempting the transmission of low-priority data frames according to the method of high-priority data frames described in FIG. 1 or FIG.
  • the frame type of the frame then set the value corresponding to the frame type in the SMD field during MAC encapsulation; finally, the data frame carrying the frame type (the value of the SMD field) reaches the communication interface 1104 after passing through the physical layer (PHY), and then from the communication
  • the interface 1104 transmits to the receiving end.
  • the receiving end can determine whether the received data frame is a fast frame or a preemptible frame for preemptive transmission according to the value of the SMD field in the data frame.
  • the processing chip 1101 further includes a storage unit 1101C, and the storage unit 1101C includes a storage space set for the egress port queue for buffering data frames to be transmitted.
  • the storage unit 1101C can also be used to store computer program instructions, and the processing unit 1101A calls the computer program instructions stored in the storage unit 1101C to buffer the data frame to be transmitted to the corresponding data frame according to the priority of the data frame to be transmitted. In the outgoing port queue.
  • the memory 1102 may also be used to buffer data frames to be transmitted.
  • the communication interface 1104 includes a wired communication interface.
  • the wired communication interface includes an Ethernet interface.
  • the Ethernet interface can be an optical interface, an electrical interface or a combination thereof.
  • FIG. 13 is a schematic structural diagram of a scheduling unit 1101B according to an embodiment of the present application.
  • the scheduling unit 1101B includes data egress scheduling logic 1101B-1 and MAC encapsulation logic 1101B-2.
  • the data egress scheduling logic 1101B-1 is used to schedule the data frames to be transmitted in the egress port queue, and provide the MAC encapsulation logic with a frame type indication corresponding to the data frame to be transmitted, and the frame type indication is used to indicate the data frame to be transmitted The frame type of the data frame.
  • the MAC encapsulation logic 1101B-2 is used to: perform MAC encapsulation on the data frame to be transmitted according to the data frame to be transmitted provided by the data egress scheduling logic 1101B-1 and the frame type indication corresponding to the data frame to be transmitted.
  • the data egress scheduling logic 1101B-1 when the data egress scheduling logic 1101B-1 provides the MAC encapsulation logic 1101B-2 with a data frame to be transmitted, it provides out-of-band parallel to the MAC encapsulation logic 1101B-2 with a frame type indication corresponding to the data frame .
  • the frame type indication includes: start of packet (SOP), end of packet (EOP), start of MAC-merge (SOM) and end of MAC fragment ( end of MAC-merge, EOM).
  • SOP is 1 for the head of the message
  • EOP is 1 for the end of the message
  • both SOP and EOP are 0 for the middle segment of the message.
  • a SOM of 1 indicates that the first of the subsequent frames of the frame can be preempted
  • an EOM of 1 indicates that the last of the subsequent frames of the frame can be preempted
  • both SOM and EOM of 0 indicate that the middle film of the subsequent frames of the frame can be preempted.
  • the data egress scheduling logic 1101B-1 when the data egress scheduling logic 1101B-1 provides the first data frame whose frame type is a fast frame to the MAC encapsulation logic 1101B-2, it sends out-of-band parallel to the MAC encapsulation logic 1101B-2 with an SOP value of 1, and EOP as If the instruction is 0, the next one is to send the SOP value is 0, EOP is 0, and then the SOP value is 0, EOP value is 1; in this way, the first data frame is transmitted at one time, not preempted transmission,
  • the SMD value encapsulated by the MAC encapsulation logic 1101B-2 for the first data frame is SMD-E0.
  • the out-of-band parallel sends the SOP value of 1 to the MAC encapsulation logic 1101B-2
  • the EOP is 0.
  • the MAC encapsulation logic 1101B-2 encapsulates the SMD value of the first data frame as SMD-S0.
  • the data egress scheduling logic 1101B-1 schedules the second data frame to preempt the transmission of the first data frame, so while the second data frame is provided to the MAC encapsulation logic 1101B-2, the out-of-band parallel to the MAC encapsulation logic 1101B-2 Send an indication that the SOP value is 1 and EOP is 0, and the SMD value that the MAC encapsulation logic 1101B-2 encapsulates for the second data frame is SMD-E1.
  • the data egress scheduling logic 1101B-1 schedules the third data frame to preempt the transmission of the second data frame, so while the third data frame is provided to the MAC encapsulation logic 1101B-2, the out-of-band parallel to the MAC encapsulation logic 1101B-2 Send an indication that the SOP value is 1 and EOP is 0, the MAC encapsulation logic 1101B-2 encapsulates the SMD value of the third data frame to SMD-E2; next, the data outlet scheduling logic 1101B-1 continues to transmit the third data frame, and Send an indication that the SOP value is 0 and the EOP value is 0, and then send an indication that the SOP value is 0 and the EOP value is 1, and the MAC encapsulation logic 1101B-2 encapsulates SMD-E2 for all subsequent fragments of the third data frame.
  • the data outlet scheduling logic 1101B-1 continues to transmit the second data frame, and sends an indication that the SOP value is 0, EOP is 0, SOM is 1, and EOM is 0, and the MAC encapsulation logic 1101B-2 gives the second data frame SMD-C4 can be encapsulated in the follow-up piece of the preemptible frame; then an indication of SOP value 0, EOP being 0, SOM bit 0, and EOM being 0 is sent, and MAC encapsulation logic 1101B-2 encapsulates SMD in the preemptible frame follow-up piece of the second data frame -C5; and then send an indication that the SOP value is 0, EOP is 1, SOM is 0, and EOM is 1, and the MAC encapsulation logic 1101B-2 encapsulates SMD-C6 to the subsequent slice of the preemptible frame of the second data frame.
  • the data egress scheduling logic 1101B-1 continues to transmit the first data frame, and sends an indication that the SOP value is 0, EOP is 0, SOM is 1, and EOM is 0, and the MAC encapsulation logic 1101B-2 gives the first data frame SMD-C0 can be encapsulated in the subsequent frame of the preemptible frame; then an indication of SOP value of 0, EOP of 0, SOM of 0, and EOM of 0 is sent, and the MAC encapsulation logic 1101B-2 encapsulates SMD in the subsequent frame of the preemptible frame of the first data frame -C1; then send an indication indicating that the SOP value is 0, the EOP is 1, the SOM is 0, and the EOM is 1, and the MAC encapsulation logic 1101B-2 encapsulates SMD-C2 to the preemptible frame subsequent slice of the first data frame.
  • the MAC encapsulation logic 1101B-2 did not receive an instruction with an EOP value of 1 after finding that the previous SOP value was 1. Instead, it received an instruction with a SOP value of 1. It can be known that preemptive transmission has occurred. And when the MAC encapsulation logic 1101B-2 receives a data frame with a SOP value of 1, it selects one in turn from SMD-S0 or SMD-E0, SMD-E1, SMD-E2, ..., SMD-E7. The MAC encapsulation logic 1101B-2 receives the first data frame with a SOP value of 1, and encapsulates the data frame with SMD-S0 or SMD-E0 according to the frame type of the data frame.
  • the data frame provided by the data egress scheduling logic 1101B-1 to the MAC encapsulation logic 1101B-2 carries a frame type indication.
  • the frame type indication of the fast frame includes: SOP and EOP.
  • a SOP of 1 indicates the message header
  • an EOP of 1 indicates that the SOP and EOP at the end of the message are 0 at the same time, indicating the middle segment of the message.
  • the frame type indications of preemptible frames include: SOP, EOP, SOM and EOM.
  • the frame type indication may also include priority information, so that the MAC encapsulation logic 1101B-2 can distinguish each intermediate subsequent slice.
  • the MAC encapsulation logic 1101B-2 may set the value of the SMD field in the MAC encapsulation header according to the frame type indication carried in the data frame to obtain the data frame of the corresponding frame type.
  • the communication interfaces 1104 may be used to communicate with other devices.
  • the communication interface 1104 may be used to receive data frames and/or send data frames.
  • the processing chip 1101 further includes a register, and the register includes an enable/disable flag bit.
  • the enable/disable flag position is a first value (for example, 1), it means that the device 110 enables the data transmission method provided in the embodiment of the present application.
  • the position of the enable and disable flag is a second value (for example, 0), it means that the device 110 disables the data transmission method provided in the embodiment of the present application. At this time, the device 110 performs traditional frame preemption. mechanism.
  • the processing chip 1101 When the enable/disable flag bit is set in the device 110, the processing chip 1101 includes a programmable logic circuit and/or program instructions for implementing the data transmission method shown in FIG. 1 or FIG. 8, It also includes programmable logic circuits and/or program instructions for implementing traditional frame preemption mechanisms.
  • the communication interface 1104 may also include a wireless communication interface, and the wireless communication interface may be a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof.
  • WLAN wireless local area network
  • the device 110 may further include a processor 1105 for implementing other services or functions besides the data transmission method provided in this application.
  • the processor can be single-core or multi-core.
  • An embodiment of the present application also provides a computer storage medium, the computer storage medium stores instructions, and when the instructions are executed by a processor, the data transmission method shown in FIG. 1 or FIG. 8 is implemented.
  • the terms “first”, “second” and “third” are only used for descriptive purposes, and cannot be understood as indicating or implying relative importance.
  • the term “at least one” refers to one or more, and the term “plurality” refers to two or more, unless specifically defined otherwise.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Communication Control (AREA)

Abstract

本申请公开了一种数据传输方法及装置,属于网络技术领域。若网络设备在传输第一数据帧的过程中有待传输的第二数据帧,且第二数据帧的优先级高于第一数据帧的优先级,则网络设备确定第二数据帧的帧类型为快速帧。若第一数据帧的帧类型为快速帧,网络设备将第一数据帧的帧类型调整为可抢占帧;然后网络设备暂停传输第一数据帧,并开始传输第二数据帧。本申请通过对当前传输的数据帧的帧类型进行动态调整,实现了高优先级的数据帧对低优先级的数据帧的灵活抢占,提高了数据传输的灵活性。

Description

数据传输方法及装置
本申请要求了2019年7月26日提交的,申请号为201910680722.9,发明名称为“数据传输方法及装置”的中国申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及网络技术领域,特别涉及一种数据传输方法及装置。
背景技术
发送端和接收端之间通过网络设备转发数据帧,也可称为媒体介质访问控制(media access control,MAC)帧,实现通信。网络设备一般采用“尽力而为(best effort)”的转发策略转发数据帧。在该转发策略下,网络设备按照接收到的数据帧的先后顺序转发数据帧。然而实际网络中存在不同优先级的数据帧,网络设备采用该转发策略转发数据帧时,会出现低优先级的数据帧占用信道使得高优先级的数据帧无法及时传输,进而导致高优先级的数据帧的传输时延较大的问题。
时间敏感网络(time-sensitive networking,TSN)中引入了帧抢占(preemption)机制。在电气和电子工程师协会(Institute for Electrical and Electronic Engineers,IEEE)802.3br和IEEE 802.1Qbu定义的帧抢占机制中,数据帧的帧类型分为快速(express)帧和可抢占(preemptable)帧这两类。其中,快速帧的传输优先级高于可抢占帧的传输优先级。当网络设备在传输帧类型为“可抢占帧”的第一数据帧的过程中有另一个帧类型为“快速帧”的第二数据帧待传输时,网络设备会暂停传输该第一数据帧,并开始传输该第二数据帧;并在该第二数据帧传输完毕后,再继续传输该第一数据帧,进而保证“快速帧”的低时延传输。
但是,传统的帧抢占机制中,将数据帧分为快速帧和可抢占帧这两类,并且只允许“快速帧”抢占“可抢占帧”,优先传输。如果网络设备中数据帧的优先级不止两个时,例如,包括0~7共八个优先级,则无法真正保证高优先级的数据帧优先传输。
发明内容
本申请提供了一种数据传输方法及装置,可以解决传统的帧抢占机制中无法真正保证高优先级的数据帧优先传输的问题。
第一方面,提供了一种数据传输方法,该方法包括:
若在传输第一数据帧的过程中有待传输的第二数据帧,且第二数据帧的优先级高于第一数据帧的优先级,网络设备确定第二数据帧的帧类型为快速帧。若第一数据帧的帧类型为快速帧,网络设备将第一数据帧的帧类型调整为可抢占帧;网络设备暂停传输第一数据帧,并开始传输第二数据帧。
本申请中,网络设备对当前传输的数据帧的帧类型进行动态调整,使网络设备中高优先级的数据帧的帧类型为快速帧,低优先级的数据帧的帧类型为可抢占帧,与传统方式中对数据帧的帧类型进行固定划分的方式相比,可以更灵活地确定数据帧的帧类型,从而实现了高优先级的数据帧对低优先级的数据帧的灵活抢占,提高了数据传输的灵活性。
在一种可能的实现方式中,若第一数据帧的帧类型为快速帧,将第一数据帧的帧类型调 整为可抢占帧,包括:若第一数据帧的帧类型为快速帧,且存在被第一数据帧抢占传输的第三数据帧,第三数据帧的帧类型标记为第一可抢占帧标记,则网络设备将第一数据帧的帧类型标记调整为第二可抢占帧标记,第二可抢占帧标记与第一可抢占帧标记不同。
本申请中,可以采用扩展可抢占帧标记的方式来区分帧类型均为可抢占帧的不同数据帧,或者,可以采用在数据片段的帧结构中增加指示字段的方式来区分帧类型均为可抢占帧的不同数据帧。
在另一种可能的实现方式中,若第一数据帧的帧类型为快速帧,将第一数据帧的帧类型调整为可抢占帧,包括:若第一数据帧的帧类型为快速帧,且不存在被第一数据帧抢占传输的第三数据帧,网络设备将第一数据帧的帧类型调整为可抢占帧。
这种实现方式可以兼容现有传输方式,保证网络设备中仅有一个被抢占传输的可抢占帧。
可选地,在第二数据帧传输结束后,网络设备继续传输第一数据帧。
可选地,网络设备继续传输第一数据帧,包括:
在第二数据帧传输结束后,若有待传输的第四数据帧,且第四数据帧的优先级高于第一数据帧的优先级,则网络设备确定第四数据帧的帧类型为快速帧,并传输第四数据帧;在第四数据帧传输结束后,网络设备继续传输第一数据帧。
本申请实现了高优先级的数据帧相较于低优先级的数据帧始终优先传输。
第二方面,提供了另一种数据传输方法,该方法包括:
若网络设备在传输第一数据帧的过程中检测是否有待传输的第二数据帧,第一数据帧和第二数据帧的帧类型相同,且第二数据帧的优先级高于第一数据帧的优先级,则网络设备确定第一数据帧的帧类型为可抢占帧,第二数据帧的帧类型为快速帧;网络设备暂停传输第一数据帧,并开始传输第二数据帧。
本申请中,通过对当前传输的数据帧或出端口队列中的数据帧的帧类型进行动态调整,使网络设备中高优先级的数据帧的帧类型为快速帧,低优先级的数据帧的帧类型为可抢占帧,实现了帧类型相同的数据帧之间高优先级的数据帧对低优先级的数据帧的灵活抢占,提高了数据传输的灵活性。
可选地,确定第一数据帧的帧类型为可抢占帧,第二数据帧的帧类型为快速帧,包括:若第一数据帧和第二数据帧的帧类型均为快速帧,将第一数据帧的帧类型调整为可抢占帧;若第一数据帧和第二数据帧的帧类型均为可抢占帧,将第二数据帧的帧类型调整为快速帧。
在一种可能的实现方式中,若第一数据帧和第二数据帧的帧类型均为快速帧,将第一数据帧的帧类型调整为可抢占帧,包括:若第一数据帧和第二数据帧的帧类型均为快速帧,且存在被第一数据帧抢占传输的第三数据帧,第三数据帧的帧类型标记为第一可抢占帧标记,则将第一数据帧的帧类型标记调整为第二可抢占帧标记,第二可抢占帧标记与第一可抢占帧标记不同。
在另一种可能的实现方式中,若第一数据帧和第二数据帧的帧类型均为快速帧,将第一数据帧的帧类型调整为可抢占帧,包括:若第一数据帧和第二数据帧的帧类型均为快速帧,且不存在被第一数据帧抢占传输的第三数据帧时,则将第一数据帧的帧类型调整为可抢占帧。
可选地,在第二数据帧传输结束后,网络设备继续传输第一数据帧。
可选地,在第二数据帧传输结束后,继续传输第一数据帧,包括:
在第二数据帧传输结束后,若有待传输的第四数据帧,且第四数据帧的优先级高于第一数据帧的优先级,网络设备传输第四数据帧;在第四数据帧传输结束后,网络设备继续传输第一数据帧。
第三方面,提供了一种用于数据传输装置,所述装置包括多个功能模块:所述多个功能模块相互作用,实现上述第一方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
第四方面,提供了另一种用于数据传输装置,所述装置包括多个功能模块:所述多个功能模块相互作用,实现上述第二方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
第五方面,提供了一种处理芯片,所述处理芯片包括可编程逻辑电路和/或程序指令,所述处理芯片运行所述可编程逻辑电路和/或程序指令,以实现如第一方面或第二方面任一所述的数据传输方法。
可选地,所述处理芯片包括处理单元和调度单元;
所述处理单元用于根据待传输的数据帧的优先级,将所述待传输的数据帧缓存至对应的出端口队列中;
所述调度单元用于对所述出端口队列中待传输的数据帧进行调度,以实现如第一方面或第二方面任一所述的数据传输方法。
可选地,所述调度单元包括数据出口调度逻辑和媒体访问控制MAC封装逻辑;
所述数据出口调度逻辑用于对所述出端口队列中待传输的数据帧进行调度,并向所述MAC封装逻辑提供所述待传输的数据帧对应的帧类型指示,所述帧类型指示用于指示所述待传输的数据帧的帧类型;
所述MAC封装逻辑用于根据所述待传输的数据帧对应的帧类型指示,对所述待传输的数据帧进行MAC封装。
可选地,所述处理芯片还包括存储器;所述存储器用于缓存待传输的数据帧,具体地,所述存储器中包括分配给出端口队列的存储空间。
可选地,所述处理单元包括网络处理器和中央处理器中的至少一者,所述调度单元包括专用集成电路和可编程逻辑器件中的至少一者。可选地,所述存储器还用于存储计算机程序指令,所述处理单元调用所述存储器中存储的计算机程序指令,以执行上述第一方面或第二方面所述数据传输方法中的一个或多个步骤。
第六方面,提供了一种数据传输装置,包括:通信接口,以及上述第五方面所述的处理芯片。
所述通信接口和所述处理芯片可以通过通信总线相连。
所述数据传输装置还包括存储器,所述存储器中存储计算机程序,所述计算机程序包括程序指令。所述处理芯片调用所述存储器中存储的计算机程序,以执行上述第一方面或第二方面所述数据传输方法中的一个或多个步骤。
第七方面,提供了一种计算机存储介质,所述计算机存储介质上存储有指令,当所述指令被处理器执行时,实现如第一方面及其任一实现方式所述的数据传输方法,或者,实现如第二方面及其任一实现方式所述的数据传输方法。
本申请提供的技术方案带来的有益效果至少包括:
通过对当前传输的数据帧和/或待传输的数据帧的帧类型进行动态调整,使当前传输的数据帧和待传输的数据帧中较高优先级的数据帧的帧类型为快速帧,较低优先级的数据帧的帧类型为可抢占帧,从而实现高优先级的数据帧对低优先级的数据帧的灵活抢占,提高了数据 传输的灵活性。
附图说明
图1是本申请实施例提供的一种数据传输方法的流程图;
图2是本申请实施例提供的一种数据帧的帧结构示意图;
图3是本申请实施例提供的另一种数据帧的帧结构示意图;
图4是本申请实施例提供的又一种数据帧的帧结构示意图;
图5是本申请实施例提供的一种数据帧的抢占传输示意图;
图6是本申请实施例提供的另一种数据帧的抢占传输示意图;
图7是本申请实施例提供的又一种数据帧的抢占传输示意图;
图8是本申请实施例提供的另一种数据传输方法的流程图;
图9是本申请实施例提供的一种数据传输装置的结构示意图;
图10是本申请实施例提供的另一种数据传输装置的结构示意图;
图11是本申请实施例提供的一种数据传输装置的框图;
图12是本申请实施例提供的一种处理芯片的结构示意图;
图13是本申请实施例提供的一种调度单元的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供的数据传输方法可以应用于通信网络中的网络设备。可选地,该通信网络可以是工业网络、车载网络、数据中心网络(data center network,DCN)、城域网络、广域网络或园区网络等,本申请实施例对该数据传输方法的应用场景不做限定。网络设备可以是路由器,交换机或服务器等。网络设备将所有待发送的数据帧缓存在各个出端口队列中,再通过对应的端口向外传输出端口队列中的数据帧。
目前网络设备可以将数据帧分为多个优先级,例如8个优先级,或者16个优先级,本申请实施例对此不做限定。本申请以下实施例中,均以网络设备将数据帧分为8个优先级,包括优先级0~7,为例进行说明。其中,优先级数值越大,表示优先级越高。网络设备中可以包括8个出端口队列,每个出端口队列用于缓存一个优先级的数据帧。在一些场景下,出端口队列也可称为服务类别队列(class of service queue,COSQ)或优先级队列。在一些场景下,出端口队列与优先级队列可以有多种映射关系,本申请中以出端口队列的优先级与其所缓存的数据帧的优先级一一对应为例。
网络设备在转发数据帧时,根据优先级由高至低的顺序依次转发出端口队列中的数据帧。示例地,假设网络设备中包括3个缓存有数据帧的出端口队列,分别包括优先级为2的第一出端口队列、优先级为5的第二出端口队列和优先级为6的第三出端口队列,第一出端口队列中缓存有优先级为2的数据帧,第二出端口队列中缓存有优先级为5的数据帧,第三出端口队列中缓存有优先级为6的数据帧,则网络设备在转发数据帧时,先传输第三出端口 队列中的数据帧,再传输第二出端口队列中的数据帧,最后传输第一出端口队列中的数据帧。
进一步地,当网络设备在传输第二出端口队列中优先级为5的第一数据帧的过程中,如果第三出端口队列接收到待传输的第二数据帧时,按照传统的帧抢占机制:
若第二出端口队列的帧类型被设置为可抢占帧,即优先级为5的第一数据帧的帧类型为可抢占帧,且第三出端口队列的帧类型被设置为快速帧,即优先级为6的第二数据帧的帧类型为快速帧,则网络设备暂停传输第二出端口队列中的第一数据帧,并开始传输第三出端口队列中的第二数据帧,在第三出端口队列中的第二数据帧传输结束后,网络设备再继续传输第二出端口队列中的第一数据帧,即优先级为6的第二数据帧可以打断优先级为5的第一数据帧的传输并进行抢占传输。
若第二出端口队列的帧类型和第三出端口队列的帧类型相同,例如,均为快速帧,或均为可抢占帧,则网络设备在第二出端口队列中的第一数据帧传输结束后,再传输第三出端口队列中的第二数据帧。
传统的帧抢占机制中,出端口队列中存储的数据帧的帧类型会设置为该出端口队列所设置的帧类型。其中,数据帧的帧类型可以采用数据帧中特定字段的值来标记。例如,数据帧中包括可重组帧开始符(start MAC-merge-packet delimiter,SMD)字段,数据帧的帧类型可通过SMD字段的值表示。
由于传统的帧类型划分机制中,数据帧的帧类型是预先固定设置的,例如优先级为0~3的数据帧的帧类型均设置为可抢占帧,优先级为4~7的数据帧的帧类型均设置为快速帧。因此会出现帧类型相同的高优先级数据帧无法打断低优先级数据帧,进行抢占传输的现象,导致传统实现中的数据传输灵活性较低。在本申请实施例提供的数据传输方法中,通过对数据帧的帧类型进行动态调整,使当前传输的数据帧和待传输的数据帧中较高优先级的数据帧的帧类型为快速帧,较低优先级的数据帧的帧类型为可抢占帧,与传统方式对数据帧的帧类型进行固定划分方式相比,可以灵活调整数据帧的帧类型,实现高优先级的数据帧对低优先级的数据帧的灵活抢占,从而可以实现数据帧的多级抢占传输,提高了数据传输的灵活性。
图1是本申请实施例提供的一种数据传输方法的流程图。如图1所示,该方法包括:
步骤101、若在传输第一数据帧的过程中有待传输的第二数据帧,网络设备确定第二数据帧的帧类型为快速帧,该第二数据帧的优先级高于第一数据帧的优先级。
由于网络设备按照优先级由高至低的顺序依次传输数据帧,网络设备在传输第一数据帧的过程中,网络设备中优先级低于或等于第一数据帧的优先级的数据帧不会对第一数据帧进行抢占传输,即不会对第一数据帧的传输造成影响。因此网络设备在传输第一数据帧的过程中,只需判断网络设备中是否有优先级比第一数据帧的优先级高的第二数据帧。若在传输第一数据帧的过程中有待传输的第二数据帧,且该第二数据帧的优先级高于第一数据帧的优先级,表示该第二数据帧需要对第一数据帧进行抢占传输,则网络设备可以将第二数据帧的帧类型确定为快速帧。
网络设备中待传输的第二数据帧可以是从其他设备(例如发送端)接收到的,也可以是 该网络设备自己生成的。
可选地,在传输第一数据帧之前,网络设备还会根据第一数据帧的优先级,将第一数据帧缓存至对应的出端口队列中,例如第一出端口队列。在步骤101之前,网络设备还会根据待传输的第二数据帧中的优先级,将第二数据帧缓存至对应的出端口队列中,例如第二出端口队列。
步骤102、若第一数据帧的帧类型为快速帧,网络设备将第一数据帧的帧类型调整为可抢占帧。
网络设备可以根据第一数据帧中SMD字段的值确定第一数据帧的帧类型。若第一数据帧的帧类型为快速帧,则网络设备将该第一数据帧的帧类型调整为可抢占帧,使得优先级更高的第二数据帧可以对优先级较低的第一数据帧进行抢占传输,保证高优先级的数据帧的低时延传输。若第一数据帧的帧类型为可抢占帧,则无需执行步骤102,网络设备可直接执行后续步骤103。
步骤103、网络设备暂停传输第一数据帧,并开始传输第二数据帧。
由于第一数据帧的帧类型为可抢占帧,第二数据帧的帧类型为快速帧,基于帧抢占机制,第二数据帧可以对第一数据帧进行抢占传输,即网络设备可以暂停传输第一数据帧,并优先传输第二数据帧。
步骤104、在第二数据帧传输结束后,网络设备继续传输第一数据帧。
可选地,网络设备上电后传输的第一个数据帧的帧类型为快速帧。或者可替换的,网络设备上电后,判断待传输的第一个数据帧的优先级是否为网络设备支持的最低优先级,若该第一个数据帧的优先级不为网络设备支持的最低优先级,则确定该第一个数据帧的帧类型为快速帧,若该第一个数据帧的优先级为网络设备支持的最低优先级,则确定该第一个数据帧的帧类型为可抢占帧。由于最低优先级的数据帧无需对其它数据帧进行抢占传输,因此在本申请实施例中,网络设备可以将优先级为最低优先级的数据帧的帧类型均确定为可抢占帧。第一数据帧可以是网络设备上电后传输的第一个数据帧,也可以是后续传输的数据帧,本申请实施例对此不做限定。
本申请实施例中,优先级相同的数据帧之间不会抢占传输。
本申请实施例中,当网络设备在传输第一数据帧的过程中获取到优先级更高的第二数据帧时,确定该第二数据帧的帧类型为快速帧。例如网络设备在传输优先级为0的数据帧的过程中有待传输的优先级为1的数据帧时,可以确定该优先级为1的数据帧的帧类型为快速帧;又例如网络设备在传输优先级为6的数据帧的过程中有待传输的优先级为7的数据帧时,可以确定该优先级为7的数据帧的帧类型为快速帧,与目前的帧类型划分机制相比,提高了确定数据帧的帧类型的灵活性。
具体地,步骤102的第一种可能的实现,包括:若第一数据帧的帧类型为快速帧,且网络设备中存在被第一数据帧抢占传输的第三数据帧,该第三数据帧的帧类型标记为第一可抢 占帧标记,则网络设备将第一数据帧的帧类型标记调整为第二可抢占帧标记,第二可抢占帧标记与第一可抢占帧标记不同。
可选地,若网络设备中有8个出端口队列(优先级队列),分别对应优先级0~7,则网络设备在传输数据帧的过程中至多存在7个被抢占传输的数据帧。例如,网络设备在传输优先级为0的数据帧的过程中有待传输的优先级为1的数据帧,优先级为1的数据帧对优先级为0的数据帧进行抢占传输;网络设备在传输优先级为1的数据帧的过程中有待传输的优先级为2的数据帧,优先级为2的数据帧对优先级为1的数据帧进行抢占传输,依次类推,高优先级的数据帧依次对低优先级的数据帧的进行抢占传输,则网络设备中最多存在7个被抢占传输的数据帧。本申请实施例中,可以采用不同的可抢占帧标记,例如,可抢占帧标记1,可抢占帧标记2,……,可抢占帧标记7,来区分帧类型为可抢占帧的不同数据帧。
图2是IEEE 802.3br中定义的一种数据帧的帧结构示意图。如图2所示,该数据帧包括前导码(preamble)、SMD字段、负载字段和循环冗余校验(cyclic redundancy check,CRC)字段。在如图2所示的数据帧中,前导码的长度为7个八位字节(7octets),SMD字段的长度为1个八位字节(1octet),负载字段的长度大于或等于60个八位字节(60octets),CRC字段的长度为4个八位字节(4octets)。
图3是IEEE 802.3br中定义的另一种数据帧的帧结构示意图。如图3所示,该数据帧包括前导码、SMD字段、继续传输(FRAG_COUNT)字段、负载字段和CRC字段。在如图3所示的数据帧中,前导码的长度为6个八位字节(6octets),FRAG_COUNT字段的长度为1个八位字节(1octet),SMD字段的长度为1个八位字节(1octet),负载字段的长度大于或等于60个八位字节(60octets),CRC字段的长度为4个八位字节(4octets)。
在IEEE 802.3br定义的标准中,快速帧、完整的可抢占帧或被抢占传输的可抢占帧的第一个数据片段(以下简称为“可抢占帧首片”)的帧结构如图2所示;被抢占传输的可抢占帧中除第一个数据片段以外的其它数据片段(以下简称为“可抢占帧后续片”)的帧结构如图3所示,FRAG_COUNT字段用于指示该数据片段与前一数据片段属于同一数据帧。其中,被抢占传输的数据帧的每个数据片段可看作一个数据子帧。接收端基于数据帧中SMD字段的值确定数据帧的帧类型为快速帧或可抢占帧,并根据数据帧中是否存在FRAG_COUNT字段判断该数据帧与在前传输的数据帧是否属于同一数据帧。
在IEEE 802.3br定义的标准中,快速帧标记为SMD-E,可抢占帧的第一个数据片段的可抢占帧标记(以下简称为“首片可抢占帧标记”)包括SMD-S0、SMD-S1、SMD-S2和SMD-S3,可抢占帧中除第一个数据片段以外的可抢占帧标记(以下简称为“后续可抢占帧标记”)包括SMD-C0、SMD-C1、SMD-C2和SMD-C3。IEEE 802.3br标准中,帧类型标记SMD-E,SMD-S0至SMD-S3,以及SMD-C0至SMD-C3分别用不同的数值标识,例如,帧类型标记SMD-E对应的数值为0xD5,其他帧类型标记的数值可参见标准,在此不再一一列举。
在步骤102的第一种可能的实现中,快速帧的帧结构沿用IEEE 802.3br中定义的如图2所示的帧结构,但是需要对快速帧标记进行扩展,扩展后的快速帧标记的总数量与网络设备中优先级队列的数量相同。
以网络设备中包括8个优先级队列(出端口队列)为例,根据本申请实施例提供的帧抢占机制,网络设备在传输数据帧的过程中至多存在7个被抢占传输的数据帧,即网络设备在传输数据帧的过程中可能存在7个数据帧的帧类型由快速帧被调整为可抢占帧。因此本申请实施例在IEEE 802.3br标准已定义的快速帧标记SMD-E的基础上对快速帧标记进行扩展,将已定义的快速帧标记SMD-E作为SMD-E0,并扩展新的快速帧标记SMD-E1至SMD-E7,使得扩展后的快速帧标记包括SMD-E0至SMD-E7共8个。本申请实施例中,当数据帧的帧类型为快速帧时,可根据数据帧的优先级确定该数据帧的快速帧标记,使优先级与快速帧标记一一对应。例如,若优先级为7的数据帧的帧类型为快速帧,则该优先级为7的数据帧的快速帧标记为SMD-E7;若优先级为6的数据帧的帧类型为快速帧,则该优先级为6的数据帧的快速帧标记为SMD-E6,依次类推。当然,也可以优先级为7的数据帧的快速帧标记为SMD-E0,优先级为6的数据帧的快速帧标记为SMD-E1,依次类推。
进一步地,本申请实施例提供了两种方式来区分可抢占帧后续片属于哪个数据帧。
方式一:可抢占帧后续片的帧结构沿用IEEE 802.3br中定义的如图3所示的帧结构,并对后续可抢占帧标记进行扩展,扩展后的后续可抢占帧标记的总数量是网络设备中优先级队列的数量的四倍。可抢占帧后续片中的FRAG-COUNT字段沿用IEEE 802.3br中的定义,可以不做扩展。FRAG-COUNT字段按照4个后续片为一个循环,循环使用。即,一个数据帧的第一个可抢占帧后续片的FRAG-COUNT字段为FRAG-COUNT0,值为0xE6,该数据帧的第二个可抢占帧后续片的FRAG-COUNT字段为FRAG-COUNT1,值为0x4C,该数据帧的第三个可抢占帧后续片的FRAG-COUNT字段为FRAG-COUNT2,值为0x7F,该数据帧的第四个可抢占帧后续片的FRAG-COUNT字段为FRAG-COUNT0,值为0xB3,该数据帧的第五个可抢占帧后续片的FRAG-COUNT字段为FRAG-COUNT0,值为0xE6,……。
同样以网络设备中包括8个优先级队列为例,本申请实施例可以将IEEE 802.3br中定义的后续可抢占帧标记SMD-C0至SMD-C3扩展为SMD-C0至SMD-C31,后续可抢占帧标记SMD-C0至SMD-C31的值互不相同。其中,每四个后续可抢占帧标记为一组,例如,SMD-C0至SMD-C3为一组,SMD-C4至SMD-C7为一组,SMD-C24至SMD-C27,每一组后续可抢占帧标记与一个快速帧标记对应,例如SMD-E0对应SMD-C0至SMDC3,SMD-E1对应SMD-C4至SMDC7,依次类推,SMD-E7对应SMD-C28至SMD-C31。当然,也可以按照其他方式将SMD-C0至SMD-C31分组,本申请对此不做限定。举例来说,若帧类型标记为快速帧标记SMD-E0的数据帧被调整为可抢占帧,该数据帧的可抢占帧后续片的帧类型标记可采用后续可抢占帧标记SMD-C0至SMD-C3,对应的FRAG-COUNT字段沿用IEEE 802.3br中的定义,包括FRAG-COUNT0(值为0xE6)至FRAG-COUNT3(值为0xB3);若帧类型标记为快速帧标记SMD-E1的数据帧被调整为可抢占帧,该数据帧的可抢占帧后续片的帧类型标记可采用后续可抢占帧标记SMD-C4至SMD-C7,对应的FRAG-COUNT字段沿用IEEE 802.3br中的定义,也是FRAG-COUNT0(值为0xE6)至FRAG-COUNT3(值为0xB3),以下相同,不再赘述;依次类推,若帧类型标记为快速帧标记SMD-E6的数据帧被调整为可抢占帧,该数据帧的可抢占帧后续片的帧类型标记可采用后续可抢占帧标记SMD-C24至SMD-C27。帧类型标记为快速帧标记SMD-E7的数据帧被调整为可抢占帧,其可抢占帧后续片的帧类型标记可采用后续可抢占帧标记SMD-C28至SMD-C31。当然,也可以帧类型标记为快速帧标记SMD-E7的数据帧被调整为可抢占帧,该数据帧的可抢占帧后续片的帧类型标记采用后续可抢占帧标记SMD-C0至SMD-C3,对应的FRAG-COUNT字段沿用IEEE 802.3br 中的定义,也是FRAG-COUNT0(值为0xE6)至FRAG-COUNT3(值为0xB3),以下相同,不再赘述;帧类型标记为快速帧标记SMD-E6的数据帧被调整为可抢占帧,该数据帧的可抢占帧后续片的帧类型标记采用后续可抢占帧标记SMD-C4至SMD-C7;依次类推,帧类型标记为快速帧标记SMD-E0的数据帧被调整为可抢占帧,该数据帧的可抢占帧后续片的帧类型标记采用后续可抢占帧标记SMD-C28至SMD-C31。
接收端在接收到某个数据帧后,可以基于帧结构判断该数据帧是否为被抢占传输的某个数据帧中的数据片段,若该数据帧为被抢占传输的某个数据帧中的数据片段,接收端可以基于数据帧中的SMD字段的值确定该数据片段与在前接收到的哪个或哪些数据片段属于同一数据帧。
方式二:定义一种新的可抢占帧后续片的帧结构,例如,图4所示的帧结构。图4所示的可抢占帧后续片的帧结构,在IEEE 802.3br定义的可抢占帧后续片的帧结构基础上增加了指示字段,该指示字段用于指示该数据片段与在前传输的哪个或哪些数据片段属于同一数据帧。如图4所示,可抢占帧后续片中包括前导码、SMD字段、FRAG_COUNT字段、指示字段、负载字段和CRC字段。指示字段的值可以与目标数据片段中SMD字段的值相同,目标数据片段为与该可抢占帧后续片属于同一数据帧的第一个数据片段。举例来说,被抢占传输的第一数据帧的第一个数据片段中SMD字段的值为0xD5,则该第一数据帧的第二个数据片段及以后的数据片段中指示字段的值均为0xD5。此种可选的实现中,如图4所示的可抢占帧后续片的SMD字段的值的设置方式可沿用IEEE 802.3br中定义的SMD-C0至SMD-C3,本申请实施例在此不做赘述。
步骤102的第二种可能的实现,包括:若第一数据帧的帧类型为快速帧,且网络设备中不存在被第一数据帧抢占传输的第三数据帧,网络设备将第一数据帧的帧类型调整为可抢占帧。
若第一数据帧的帧类型为快速帧,且网络设备中存在被第一数据帧抢占传输的第三数据帧,则网络设备不对第一数据帧的帧类型进行调整。不对第一数据帧的帧类型进行调整,也即,继续传输第一数据帧,第二数据帧不能对第一数据帧抢占传输。这种实现方式可以兼容现有传输方式,保证网络设备中仅有一个被抢占传输的可抢占帧。
在步骤102的第二种可能的实现中,可以沿用IEEE 802.3br中的定义的帧结构和帧类型标记,而无需扩展。也即,可抢占帧首片的帧结构如图2所示,可抢占帧后续片的帧结构如图3所示。网络设备可通过检测网络设备中待传输的数据帧的帧结构,确定网络设备中是否存在被第一数据帧抢占传输的第三数据帧。
示例地,图5是本申请实施例提供的一种数据帧的抢占传输示意图。如图5所示,网络设备在传输第一数据帧的过程中,获取到优先级高于第一数据帧的优先级的第二数据帧,则网络设备暂停传输第一数据帧,并开始传输第二数据帧;在第二数据帧传输结束后,网络设备继续传输第一数据帧。
可选地,若网络设备中存在被第一数据帧抢占传输的第三数据帧,参考步骤102,数据帧的抢占传输方式包括两种可能的实现。
图6和图7是采用步骤102中第一种可能的实现进行抢占传输的示意图。如图6和图7所示,网络设备在传输第三数据帧的过程中,获取到优先级高于第三数据帧的优先级的第一数据帧,网络设备暂停传输第三数据帧,并开始传输第一数据帧;网络设备在传输第一数据帧的过程中,又获取到优先级高于第一数据帧的优先级的第二数据帧,则网络设备暂停传输第一数据帧,并开始传输第二数据帧;在第二数据帧传输结束后,网络设备继续传输第一数据帧;在第一数据帧传输结束后,网络设备继续传输第三数据帧。其中,图6示出了采用方式一的数据帧抢占传输。图7示出了采用方式二的数据帧抢占传输。图5至图7中的箭头指向均表示数据帧的传输方向。
图6和图7中,第一数据帧的第一个数据片段,第二数据帧,以及第三数据帧的第一个数据片段的帧结构均如图2所示。为了便于示意,图6和图7中仅示出了每个数据帧的部分帧结构。示例地,假设第三数据帧的优先级为3,第一数据帧的优先级为5,第二数据帧的优先级为6,第三数据帧的初始帧类型为快速帧。参见图6和图7,第三数据帧的第一个数据片段中SMD字段的值为SMD-E3对应的值(采用SMD-E3表示),第一数据帧的第一个数据片段中SMD字段的值为SMD-E5对应的值,第二数据帧中SMD字段的值为SMD-E6对应的值。
图6采用扩展后续可抢占帧标记的方式来区分可抢占帧后续片属于哪个数据帧。图6中第一数据帧的第二个数据片段以及第三数据帧的第二个数据片段的帧结构均如图3所示。参见图6,第一数据帧的第二个数据片段中SMD字段的值为SMD-C20对应的值,第三数据帧的第二个数据片段中SMD字段的值为SMD-C12对应的值。其中,FRAG_COUNT字段的值采用IEEE802.3br定义的标准中的设置方式进行设置,本申请实施例在此不做赘述。根据可抢占帧标记与快速帧标记的对应关系,可以知道后续可抢占帧标记SMD-C20与快速帧标记SMD-E5对应,后续可抢占帧标记SMD-C12与快速帧标记SMD-E3对应,因此根据后续可抢占帧标记就可以知道可抢占帧后续片属于哪个数据帧。接收端会将SMD字段的值为SMD-E5的数据片段与SMD字段的值为SMD-C20(可能还有SMD-C21等)的数据片段组合得到第一数据帧。接收端会将SMD字段的值为SMD-E3的数据片段与SMD字段的值为SMD-C12(可能还有SMD-C13等)的数据片段组合得到第三数据帧。
图7采用在可抢占帧后续片的帧结构中增加指示字段的方式来区分可抢占帧后续片属于哪个数据帧。图7中第一数据帧的第二个数据片段以及第三数据帧的第二个数据片段的帧结构均如图4所示。参见图7,第一数据帧的第二个数据片段中SMD字段的值为SMD-C0对应的值,指示字段的值为SMD-E5对应的值(与第一数据帧中第一个数据片段的SMD字段的值相同);第三数据帧的第二个数据片段中SMD字段的值为SMD-C0对应的值,指示字段的值为SMD-E3对应的值(与第三数据帧中第一个数据片段的SMD字段的值相同)。其中,FRAG_COUNT字段的值采用IEEE 802.3br定义的标准中的设置方式进行设置,本申请实施例在此不做赘述。可以理解,根据指示字段的值直接就能知道可抢占帧后续片属于哪个数据帧。接收端会将SMD字段的值为SMD-E5的数据片段与指示字段的值为SMD-E5的所有数据片段组合得到第三数据帧。接收端会将SMD字段的值为SMD-E3的数据片段与指示字段的值为SMD-E3的所有数据片段组合得到第三数据帧。
若数据帧的抢占传输方式采用步骤102中第二种可能的实现,网络设备在传输第三数据帧的过程中,获取到优先级高于第三数据帧的优先级的第一数据帧,网络设备暂停传输第三 数据帧,并开始传输第一数据帧;网络设备在传输第一数据帧的过程中,又获取到优先级高于第一数据帧的优先级的第二数据帧,由于网络设备中已存在被第一数据帧抢占传输的第三数据帧,因此第一数据帧无法被抢占传输,则网络设备继续传输第一数据帧;在第一数据帧传输结束后,网络设备传输第二数据帧;在第二数据帧传输结束后,网络设备继续传输第三数据帧。
可选地,在第二数据帧传输结束后,若网络设备中有待传输的第四数据帧,且第四数据帧的优先级高于第一数据帧的优先级,则网络设备确定第四数据帧的帧类型为快速帧,并传输第四数据帧;在第四数据帧传输结束后,网络设备继续传输第一数据帧。该第四数据帧的优先级低于或等于第二数据帧的优先级。
综上所述,本申请实施例提供的数据传输方法,网络设备在第一数据帧的传输过程中有优先级高于第一数据帧的优先级的第二数据帧时,将第二数据帧的帧类型确定为快速帧,若第一数据帧的帧类型为快速帧,网络设备将第一数据帧的帧类型调整为可抢占帧。本申请实施例通过对当前传输的数据帧的帧类型进行动态调整,使网络设备中高优先级的数据帧的帧类型为快速帧,低优先级的数据帧的帧类型为可抢占帧,与传统方式对数据帧的帧类型进行固定划分方式相比,可以灵活调整数据帧的帧类型,实现多级抢占,从而实现了高优先级的数据帧对低优先级的数据帧的灵活抢占,提高了数据传输的灵活性。
图8是本申请实施例提供的另一种数据传输方法的流程图。如图8所示,该方法包括:
步骤801、若在传输第一数据帧的过程中有待传输的第二数据帧,该第一数据帧的帧类型与第二数据帧的帧类型相同,且第二数据帧的优先级高于第一数据帧的优先级,则网络设备确定第一数据帧的帧类型为可抢占帧,第二数据帧的帧类型为快速帧。
其中,对第一数据帧的相关解释可参考上述步骤101,本申请实施例在此不做赘述。
本申请实施例中的出端口队列可以设置有队列标识,该队列标识用于指示出端口队列的队列类型,队列类型包括快速队列或可抢占队列。例如,优先级为0~3的出端口队列的队列标识为可抢占标识,表示优先级为0~3的出端口队列为可抢占队列;等优先级为4~7的出端口队列的队列标识为快速标识,表示优先级为4~7的出端口队列为快速队列。快速队列中的数据帧的帧类型为快速帧,可抢占队列中的数据帧的帧类型为可抢占帧。可抢占标识和快速标识可以是数字或字符等。例如,可抢占标识为1,快速标识为0。又例如,可抢占标识为P,快速标识为E。
网络设备在传输数据帧前,会根据数据帧的优先级,将待传输的数据帧缓存至对应的出端口队列中,由于每个出端口队列中的数据帧的帧类型是确定的,因此网络设备在传输第一数据帧的过程中,可以由控制数据帧传输的模块或芯片主动检测比第一数据帧的优先级高、且与第一数据帧所在的出端口队列的队列标识相同的出端口队列中,是否有待传输的第二数据帧。示例地,第一数据帧的帧类型为快速帧且优先级为6,则网络设备在传输第一数据帧的过程中,检测优先级为7的快速队列中是否有待传输的第二数据帧。又示例地,第一数据帧的帧类型为可抢占帧且优先级为1,则网络设备在第一数据帧的过程中,检测优先级为2和优先级为3的可抢占队列中是否有待传输的第二数据帧。
当然,也可以由出端口队列向网络设备中控制数据帧传输的模块或芯片发送指示,该指示中包括该出端口队列的帧类型和优先级,通知该控制数据帧传输的模块或芯片有待传输的第二数据帧,该第二数据帧的帧类型与该在传输的第一数据帧的帧类型相同,且该第二数据帧的优先级高于第一数据帧的优先级。
网络设备确定第一数据帧的帧类型为可抢占帧,第二数据帧的帧类型为快速帧,包括:若第一数据帧和第二数据帧的帧类型均为快速帧,网络设备将第一数据帧的帧类型调整为可抢占帧,并不对第二数据帧的帧类型执行任何操作。
可选地,网络设备将第一数据帧的帧类型调整为可抢占帧,包括:若第一数据帧的帧类型为快速帧,且网络设备中存在被第一数据帧抢占传输的第三数据帧,该第三数据帧的帧类型标记为第一可抢占帧标记,则网络设备将第一数据帧的帧类型标记调整为第二可抢占帧标记,第二可抢占帧标记与第一可抢占帧标记不同。此过程可参考上述步骤102的第一种可能的实现方式中的详细描述,在此不做赘述。
或者,网络设备将第一数据帧的帧类型调整为可抢占帧,包括:若第一数据帧的帧类型为快速帧,且网络设备中不存在被第一数据帧抢占传输的第三数据帧,网络设备将第一数据帧的帧类型调整为可抢占帧。若第一数据帧的帧类型为快速帧,且网络设备中存在被第一数据帧抢占传输的第三数据帧,则网络设备不对第一数据帧的帧类型进行调整。此过程的解释可参考上述步骤102的第二种可能的实现方式中的详细描述,在此不做赘述。
网络设备确定第一数据帧的帧类型为可抢占帧,第二数据帧的帧类型为快速帧,还包括:若第一数据帧和第二数据帧的帧类型均为可抢占帧,网络设备将第二数据帧的帧类型调整为快速帧,不对第一数据帧的帧类型执行任何操作。
步骤802、网络设备暂停传输第一数据帧,并开始传输第二数据帧。
此步骤的具体细节可参考上述步骤103中的相关描述,在此不做赘述。
步骤803、在第二数据帧传输结束后,网络设备继续传输第一数据帧。
此步骤的具体细节可参考上述步骤104中的相关描述,在此不做赘述。
综上所述,本申请实施例提供的数据传输方法,若网络设备在第一数据帧的传输过程中有待传输的与第一数据帧的帧类型相同、且优先级高于第一数据帧的优先级的第二数据帧,网络设备确定第一数据帧的帧类型为可抢占帧,第二数据帧的帧类型为快速帧。本申请实施例通过对当前传输的数据帧的帧类型或出端口队列中的数据帧的帧类型进行动态调整,使网络设备中高优先级的数据帧的帧类型为快速帧,低优先级的数据帧的帧类型为可抢占帧,实现了帧类型相同的数据帧之间高优先级的数据帧对低优先级的数据帧的灵活抢占,提高了数据传输的灵活性。
本申请实施例中,如图1所示的数据传输方法以及如图8所示的数据传输方法是基于同一发明构思提出的。上述每种数据传输方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻 易想到变化的方法,都应涵盖在本申请的保护范围之内。
图9是本申请实施例提供的一种数据传输装置的结构示意图。如图9所示,装置90包括:
确定模块901,用于若在传输第一数据帧的过程中有待传输的第二数据帧,确定第二数据帧的帧类型为快速帧,第二数据帧的优先级高于第一数据帧的优先级。
调整模块902,用于若第一数据帧的帧类型为快速帧,将第一数据帧的帧类型调整为可抢占帧。
传输模块903,用于暂停传输第一数据帧,并开始传输第二数据帧。
可选地,调整模块,用于:若第一数据帧的帧类型为快速帧,且存在被第一数据帧抢占传输的第三数据帧,第三数据帧的帧类型标记为第一可抢占帧标记,则将第一数据帧的帧类型标记调整为第二可抢占帧标记,第二可抢占帧标记与第一可抢占帧标记不同。具体的细节可参考图1所示的数据传输方法中的详细描述,此处不再赘述。
可选地,调整模块,用于:若第一数据帧的帧类型为快速帧,且不存在被第一数据帧抢占传输的第三数据帧,将第一数据帧的帧类型调整为可抢占帧。
可选地,传输模块,还用于在第二数据帧传输结束后,继续传输第一数据帧。可选地,传输模块,具体用于:在第二数据帧传输结束后,若有待传输的第四数据帧,且第四数据帧的优先级高于第一数据帧的优先级,则确定第四数据帧的帧类型为快速帧,并传输第四数据帧;在第四数据帧传输结束后,继续传输第一数据帧。
可选地,装置90还包括缓存模块,用于在传输第一数据帧之前,根据第一数据帧的优先级,将第一数据帧缓存至对应的出端口队列中,例如第一出端口队列。还用于根据待传输的第二数据帧中的优先级,将第二数据帧缓存至对应的出端口队列中,例如第二出端口队列。
可选的,装置90还包括使能去使能控制模块,用于控制装置90是否使能本申请实施例提供的数据传输方法。当使能时,装置90执行如图1所示的数据传输方法。当去使能时,装置110执行传统的帧抢占机制。
此处未尽之细节可参考图1所示的数据传输方法中的详细描述。
综上所述,本申请实施例提供的数据传输装置,网络设备通过确定模块在第一数据帧的传输过程中有优先级高于第一数据帧的优先级的第二数据帧时,将第二数据帧的帧类型确定为快速帧,若第一数据帧的帧类型为快速帧,网络设备通过调整模块将第一数据帧的帧类型调整为可抢占帧。本申请实施例通过对当前传输的数据帧的帧类型进行动态调整,使网络设备中高优先级的数据帧的帧类型为快速帧,低优先级的数据帧的帧类型为可抢占帧,与传统方式对数据帧的帧类型进行固定划分方式相比,可以灵活调整数据组很的帧类型,实现多级抢占,从而实现了高优先级的数据帧对低优先级的数据帧的灵活抢占,提高了数据传输的灵活性。
图10是本申请实施例提供的另一种数据传输装置的结构示意图。如图10所示,装置100包括:
确定模块1001,用于若在传输第一数据帧的过程中有待传输的第二数据帧,第一数据帧和第二数据帧的帧类型相同,且第二数据帧的优先级高于第一数据帧的优先级,则确定该第一数据帧的帧类型为可抢占帧,该第二数据帧的帧类型为快速帧。
传输模块1002,用于暂停传输第一数据帧,并开始传输第二数据帧。
可选地,确定模块,用于:若第一数据帧和第二数据帧的帧类型均为快速帧,将第一数据帧的帧类型调整为可抢占帧;若第一数据帧和第二数据帧的帧类型均为可抢占帧,将第二数据帧的帧类型调整为快速帧。
可选地,确定模块,用于:若第一数据帧和第二数据帧的帧类型均为快速帧,且存在被第一数据帧抢占传输的第三数据帧,第三数据帧的帧类型标记为第一可抢占帧标记,则将第一数据帧的帧类型标记调整为第二可抢占帧标记,第二可抢占帧标记与第一可抢占帧标记不同。可抢占帧标记的具体实现细节可参考图1所示的数据传输方法中的详细描述,此处不再赘述。
可选地,确定模块,用于:若第一数据帧和第二数据帧的帧类型均为快速帧,且不存在被第一数据帧抢占传输的第三数据帧时,则将第一数据帧的帧类型调整为可抢占帧。
可选地,传输模块,还用于在第二数据帧传输结束后,继续传输第一数据帧。
可选地,传输模块,具体用于:
在第二数据帧传输结束后,若有待传输的第四数据帧,且第四数据帧的优先级高于第一数据帧的优先级,传输第四数据帧;在第四数据帧传输结束后,继续传输第一数据帧。
可选地,装置100还包括缓存模块,用于在传输第一数据帧之前,根据第一数据帧的优先级,将第一数据帧缓存至对应的出端口队列中,例如第一出端口队列。还用于根据待传输的第二数据帧中的优先级,将第二数据帧缓存至对应的出端口队列中,例如第二出端口队列。
可选的,装置100还包括使能去使能控制模块,用于控制装置100是否使能本申请实施例提供的数据传输方法。当使能时,装置100执行如图8所示的数据传输方法。当去使能时,装置100执行传统的帧抢占机制。
此处未尽之细节可参考图1和图8所示的数据传输方法中的详细描述。
综上所述,本申请实施例提供的数据传输装置,若网络设备在第一数据帧的传输过程中有待传输的与第一数据帧的帧类型相同、且优先级高于第一数据帧的优先级的第二数据帧,网络设备通过确定模块确定第一数据帧的帧类型为可抢占帧,第二数据帧的帧类型为快速帧。本申请实施例通过对当前传输的数据帧的帧类型或出端口队列中的数据帧的帧类型进行动态调整,使网络设备中高优先级的数据帧的帧类型为快速帧,低优先级的数据帧的帧类型为可抢占帧,实现了高优先级的数据帧对低优先级的数据帧的灵活抢占,提高了数据传输的灵活 性。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是本申请实施例提供的一种数据传输装置的框图。该数据传输装置可以是网络设备,例如,交换机或路由器等。如图11所示,该装置110包括:处理芯片1101。参见图11,装置110还可以包括存储器1102、通信总线1103和通信接口1104。处理芯片1101、存储器1102和通信接口1104通过通信总线1103相互连接。
该处理芯片1101包括可编程逻辑电路和/或程序指令,该处理芯片1101运行可编程逻辑电路和/或程序指令时,实现如图1或如图8所示的数据传输方法。
图12是本申请实施例提供的处理芯片1101的结构示意图。如图12所示,该处理芯片1101包括处理单元1101A和调度单元1101B。
处理单元1101A可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP),或者CPU和NP的组合。
可选地,存储器1102用于存储计算机程序,该计算机程序中包括程序指令。处理单元1101A调用该存储器1102中存储的计算机程序,运行该计算机程序中的程序指令以根据待传输的数据帧中的优先级将待传输的数据帧缓存至对应的出端口队列中。本申请中,出端口队列中待传输的数据帧可以理解为未做MAC封装的报文。
调度单元1101B可以是专用集成电路(Application Specific Integrated Circuits,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。调度单元1101B运行处理芯片中的可编程逻辑电路,对出端口队列中待传输的数据帧进行调度,用于实现图1或图8中所述的数据传输方法。具体地,调度单元用于按照图1或图8中所述的高优先级的数据帧对低优先级的数据帧进行抢占传输的方法,调度出端口队列中的数据帧,并调整或确定数据帧的帧类型;然后在进行MAC封装时在SMD字段中设置与帧类型对应的值;最后携带帧类型(SMD字段的值)的数据帧经过物理层(PHY)后到达通信接口1104,从通信接口1104传输给接收端。接收端根据数据帧中的SMD字段的值就可以判断收到的数据帧是快速帧,还是被抢占传输的可抢占帧。
请继续参见图12,处理芯片1101中还包括存储单元1101C,存储单元1101C中包括为出端口队列设置的存储空间,用于缓存待传输的数据帧。可选地,存储单元1101C也可用于存储计算机程序指令,处理单元1101A调用该存储单元1101C中存储的计算机程序指令,以根据待传输的数据帧中的优先级将待传输的数据帧缓存至对应的出端口队列中。
可选地,存储器1102也可用于缓存待传输的数据帧。
通信接口1104包括有线通信接口。其中,有线通信接口包括以太网接口。以太网接口 可以是光接口,电接口或其组合。
进一步地,图13是本申请实施例提供的一种调度单元1101B的结构示意图。如图13所示,调度单元1101B包括数据出口调度逻辑1101B-1和MAC封装逻辑1101B-2。
数据出口调度逻辑1101B-1用于:对出端口队列中的待传输的数据帧进行调度,并向MAC封装逻辑提供待传输的数据帧对应的帧类型指示,该帧类型指示用于指示待传输的数据帧的帧类型。MAC封装逻辑1101B-2用于:根据数据出口调度逻辑1101B-1提供的待传输的数据帧,及该待传输的数据帧对应的帧类型指示,对该待传输的数据帧进行MAC封装。
一种可能的实现中,数据出口调度逻辑1101B-1在给MAC封装逻辑1101B-2提供待传输的数据帧时,带外并行向MAC封装逻辑1101B-2提供与该数据帧对应的帧类型指示。其中,帧类型指示包括:包开始标识(start of packet,SOP),包结束标识(end of packet,EOP),MAC分片开始标识(start of MAC-merge,SOM)和MAC分片结束标识(end of MAC-merge,EOM)。其中,SOP为1表示报文头,EOP为1表示报文尾,SOP和EOP同时为0表示报文中间片段。SOM为1表示可抢占帧后续片的首个,EOM为1表示可抢占帧后续片的最后一个,SOM和EOM同时为0表示可抢占帧后续片的中间片。举例来说,数据出口调度逻辑1101B-1将帧类型为快速帧的第一数据帧提供给MAC封装逻辑1101B-2时,带外并行向MAC封装逻辑1101B-2发送SOP值为1、EOP为0的指示,接下来发送的是SOP值为0、EOP为0,然后发送SOP值为0、EOP值为1的指示;这样,该第一数据帧是一次传输完的,没有被抢占传输,MAC封装逻辑1101B-2给第一数据帧封装的SMD值为SMD-E0。再举例来说,数据出口调度逻辑1101B-1将帧类型为可抢占帧的第一数据帧提供给MAC封装逻辑1101B-2时,带外并行向MAC封装逻辑1101B-2发送SOP值为1、EOP为0的指示,MAC封装逻辑1101B-2给第一数据帧封装的SMD值为SMD-S0。然后,数据出口调度逻辑1101B-1调度第二数据帧对第一数据帧的抢占传输,因此将第二数据帧提供给MAC封装逻辑1101B-2的同时,带外并行向MAC封装逻辑1101B-2发送SOP值为1、EOP为0的指示,MAC封装逻辑1101B-2给第二数据帧封装的SMD值为SMD-E1。然后,数据出口调度逻辑1101B-1调度第三数据帧对第二数据帧的抢占传输,因此将第三数据帧提供给MAC封装逻辑1101B-2的同时,带外并行向MAC封装逻辑1101B-2发送SOP值为1、EOP为0的指示,MAC封装逻辑1101B-2给第三数据帧封装的SMD值为SMD-E2;接下来,数据出口调度逻辑1101B-1继续传输第三数据帧,并发送SOP值为0、EOP为0的指示,然后发送SOP值为0、EOP值为1的指示,MAC封装逻辑1101B-2给第三数据帧的后续片段均封装SMD-E2。接下来,数据出口调度逻辑1101B-1继续传输第二数据帧,并发送SOP值为0、EOP为0、SOM为1、EOM为0的指示,MAC封装逻辑1101B-2给第二数据帧的可抢占帧后续片封装SMD-C4;然后发送SOP值为0、EOP为0,SOM位0,EOM为0的指示,MAC封装逻辑1101B-2给第二数据帧的可抢占帧后续片封装SMD-C5;然后发送SOP值为0、EOP为1、SOM为0、EOM为1的指示,MAC封装逻辑1101B-2给第二数据帧的可抢占帧后续片封装SMD-C6。接下来,数据出口调度逻辑1101B-1继续传输第一数据帧,并发送SOP值为0、EOP为0、SOM为1、EOM为0的指示,MAC封装逻辑1101B-2给第一数据帧的可抢占帧后续片封装SMD-C0;然后发送SOP值为0、EOP为0、SOM为0、EOM为0的指示,MAC封装逻辑1101B-2给第一数据帧的可抢占帧后续片封装SMD-C1;然后发送SOP值为0、EOP为1、SOM为0、EOM为1的指示,MAC封装逻辑1101B-2给第一数据帧的可抢占帧后续片封装SMD-C2。MAC封装逻辑1101B-2发现前一个SOP值为1的指示之后没有收到EOP值为1的指示,反而是又收到了一 个SOP值为1的指示,就可以知道发生了抢占传输。并且MAC封装逻辑1101B-2每收到一个SOP值为1的数据帧,就从SMD-S0或SMD-E0、SMD-E1、SMD-E2、……、SMD-E7中依次选择一个。MAC封装逻辑1101B-2接收到第一个SOP值为1的数据帧,根据该数据帧的帧类型,给该数据帧封装SMD-S0或SMD-E0。
另一种可能的实现中,数据出口调度逻辑1101B-1向MAC封装逻辑1101B-2提供的数据帧中携带帧类型指示。快速帧的帧类型指示包括:SOP和EOP。同样,SOP为1表示报文头,EOP为1表示报文尾SOP和EOP同时为0表示报文中间片段。可抢占帧的帧类型指示包括:SOP、EOP、SOM和EOM,SOM为1表示可抢占帧后续片的首个,EOM为1表示可抢占帧后续片的最后一个,SOM和EOM同时为0表示可抢占帧后续片的中间片。进一步地,帧类型指示中还可以包括优先级信息,使得MAC封装逻辑1101B-2能够区分各个中间后续片。MAC封装逻辑1101B-2可以根据数据帧中携带的帧类型指示在MAC封装头中设置SMD字段的值,得到对应帧类型的数据帧。
通信接口1104可以为多个,通信接口1104用于与其它设备进行通信。例如在本申请实施例中,通信接口1104可以用于接收数据帧和/或发送数据帧。
可选地,所述处理芯片1101中还包括寄存器,所述寄存器中包括使能去使能标志位。当所述使能去使能标志位置为第一值(例如1)时,表示所述装置110使能本申请实施例提供的数据传输方法。当所述使能去使能标志位置为第二值(例如0)时,表示所述装置110去使能本申请实施例提供的数据传输方法,此时,所述装置110执行传统的帧抢占机制。
当所述装置110中设置了使能去使能标志位时,所述处理芯片1101中包括用于实现如图1或图8所示的数据传输方法的可编程逻辑电路和/或程序指令,还包括用于实现传统帧抢占机制的可编程逻辑电路和/或程序指令。
通信接口1104还可以包括无线通信接口,无线通信接口可以为无线局域网(wireless local area network,WLAN)接口,蜂窝网络通信接口或其组合等。
可选地,请继续参见图11,所述装置110中还可以包括处理器1105,用于实现本申请提供的数据传输方法以外的其他业务或功能。该处理器可以为单核或多核。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质上存储有指令,当所述指令被处理器执行时,实现如图1或图8所示的数据传输方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本申请实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”是指一个或多个,术语“多个”指两个或两个以上,除非另有明确的限定。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (26)

  1. 一种数据传输方法,其特征在于,所述方法包括:
    若在传输第一数据帧的过程中有待传输的第二数据帧,确定所述第二数据帧的帧类型为快速帧,所述第二数据帧的优先级高于所述第一数据帧的优先级;
    若所述第一数据帧的帧类型为快速帧,将所述第一数据帧的帧类型调整为可抢占帧;
    暂停传输所述第一数据帧,并开始传输所述第二数据帧。
  2. 根据权利要求1所述的方法,其特征在于,若所述第一数据帧的帧类型为快速帧,将所述第一数据帧的帧类型调整为可抢占帧,包括:
    若所述第一数据帧的帧类型为快速帧,且存在被所述第一数据帧抢占传输的第三数据帧,所述第三数据帧的帧类型标记为第一可抢占帧标记,则将所述第一数据帧的帧类型标记调整为第二可抢占帧标记,所述第二可抢占帧标记与所述第一可抢占帧标记不同。
  3. 根据权利要求1所述的方法,其特征在于,若所述第一数据帧的帧类型为快速帧,将所述第一数据帧的帧类型调整为可抢占帧,包括:
    若所述第一数据帧的帧类型为快速帧,且不存在被所述第一数据帧抢占传输的第三数据帧,将所述第一数据帧的帧类型调整为可抢占帧。
  4. 根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
    在所述第二数据帧传输结束后,继续传输所述第一数据帧。
  5. 根据权利要求4所述的方法,其特征在于,所述在所述第二数据帧传输结束后,继续传输所述第一数据帧,包括:
    在所述第二数据帧传输结束后,若有待传输的第四数据帧,且所述第四数据帧的优先级高于所述第一数据帧的优先级,则确定所述第四数据帧的帧类型为快速帧,并传输所述第四数据帧;
    在所述第四数据帧传输结束后,继续传输所述第一数据帧。
  6. 一种数据传输方法,其特征在于,所述方法包括:
    若在传输第一数据帧的过程中有待传输的第二数据帧,所述第一数据帧和所述第二数据帧的帧类型相同,且所述第二数据帧的优先级高于所述第一数据帧的优先级,则确定所述第一数据帧的帧类型为可抢占帧,所述第二数据帧的帧类型为快速帧;
    暂停传输所述第一数据帧,并开始传输所述第二数据帧。
  7. 根据权利要求6所述的方法,其特征在于,所述确定所述第一数据帧的帧类型为可 抢占帧,所述第二数据帧的帧类型为快速帧,包括:
    若所述第一数据帧和所述第二数据帧的帧类型均为快速帧,将所述第一数据帧的帧类型调整为可抢占帧;
    若所述第一数据帧和所述第二数据帧的帧类型均为可抢占帧,将所述第二数据帧的帧类型调整为快速帧。
  8. 根据权利要求7所述的方法,其特征在于,若所述第一数据帧和所述第二数据帧的帧类型均为快速帧,将所述第一数据帧的帧类型调整为可抢占帧,包括:
    若所述第一数据帧和所述第二数据帧的帧类型均为快速帧,且存在被所述第一数据帧抢占传输的第三数据帧,所述第三数据帧的帧类型标记为第一可抢占帧标记,则将所述第一数据帧的帧类型标记调整为第二可抢占帧标记,所述第二可抢占帧标记与所述第一可抢占帧标记不同。
  9. 根据权利要求7所述的方法,其特征在于,若所述第一数据帧和所述第二数据帧的帧类型均为快速帧,将所述第一数据帧的帧类型调整为可抢占帧,包括:
    若所述第一数据帧和所述第二数据帧的帧类型均为快速帧,且不存在被所述第一数据帧抢占传输的第三数据帧时,则将所述第一数据帧的帧类型调整为可抢占帧。
  10. 根据权利要求6至9任一所述的方法,其特征在于,所述方法还包括:
    在所述第二数据帧传输结束后,继续传输所述第一数据帧。
  11. 根据权利要求10所述的方法,其特征在于,所述在所述第二数据帧传输结束后,继续传输所述第一数据帧,包括:
    在所述第二数据帧传输结束后,若有待传输的第四数据帧,且所述第四数据帧的优先级高于所述第一数据帧的优先级,传输所述第四数据帧;
    在所述第四数据帧传输结束后,继续传输所述第一数据帧。
  12. 一种数据传输装置,其特征在于,所述装置包括:
    确定模块,用于若在传输第一数据帧的过程中有待传输的第二数据帧,确定所述第二数据帧的帧类型为快速帧,所述第二数据帧的优先级高于所述第一数据帧的优先级;
    调整模块,用于若所述第一数据帧的帧类型为快速帧,将所述第一数据帧的帧类型调整为可抢占帧;
    传输模块,用于暂停传输所述第一数据帧,并开始传输所述第二数据帧。
  13. 根据权利要求12所述的装置,其特征在于,所述调整模块,用于:
    若所述第一数据帧的帧类型为快速帧,且存在被所述第一数据帧抢占传输的第三数据帧,所述第三数据帧的帧类型标记为第一可抢占帧标记,则将所述第一数据帧的帧类型标记调整为第二可抢占帧标记,所述第二可抢占帧标记与所述第一可抢占帧标记不同。
  14. 根据权利要求12所述的装置,其特征在于,所述调整模块,用于:
    若所述第一数据帧的帧类型为快速帧,且不存在被所述第一数据帧抢占传输的第三数据帧,将所述第一数据帧的帧类型调整为可抢占帧。
  15. 根据权利要求12至14任一所述的装置,其特征在于,
    所述传输模块,还用于在所述第二数据帧传输结束后,继续传输所述第一数据帧。
  16. 根据权利要求15所述的装置,其特征在于,所述传输模块,用于:
    在所述第二数据帧传输结束后,若有待传输的第四数据帧,且所述第四数据帧的优先级高于所述第一数据帧的优先级,则确定所述第四数据帧的帧类型为快速帧,并传输所述第四数据帧;
    在所述第四数据帧传输结束后,继续传输所述第一数据帧。
  17. 一种数据传输装置,其特征在于,所述装置包括:
    确定模块,用于若在传输第一数据帧的过程中有待传输的第二数据帧,所述第一数据帧和所述第二数据帧的帧类型相同,且所述第二数据帧的优先级高于所述第一数据帧的优先级,则确定所述第一数据帧的帧类型为可抢占帧,所述第二数据帧的帧类型为快速帧;
    传输模块,用于暂停传输所述第一数据帧,并开始传输所述第二数据帧。
  18. 根据权利要求17所述的装置,其特征在于,所述确定模块,用于:
    若所述第一数据帧和所述第二数据帧的帧类型均为快速帧,将所述第一数据帧的帧类型调整为可抢占帧;
    若所述第一数据帧和所述第二数据帧的帧类型均为可抢占帧,将所述第二数据帧的帧类型调整为快速帧。
  19. 根据权利要求18所述的装置,其特征在于,所述确定模块,用于:
    若所述第一数据帧和所述第二数据帧的帧类型均为快速帧,且存在被所述第一数据帧抢占传输的第三数据帧,所述第三数据帧的帧类型标记为第一可抢占帧标记,则将所述第一数据帧的帧类型标记调整为第二可抢占帧标记,所述第二可抢占帧标记与所述第一可抢占帧标记不同。
  20. 根据权利要求18所述的装置,其特征在于,所述确定模块,用于:
    若所述第一数据帧和所述第二数据帧的帧类型均为快速帧,且不存在被所述第一数据帧抢占传输的第三数据帧时,则将所述第一数据帧的帧类型调整为可抢占帧。
  21. 根据权利要求17至20任一所述的装置,其特征在于,
    所述传输模块,还用于在所述第二数据帧传输结束后,继续传输所述第一数据帧。
  22. 根据权利要求21所述的装置,其特征在于,所述传输模块,用于:
    在所述第二数据帧传输结束后,若有待传输的第四数据帧,且所述第四数据帧的优先级高于所述第一数据帧的优先级,传输所述第四数据帧;
    在所述第四数据帧传输结束后,继续传输所述第一数据帧。
  23. 一种处理芯片,其特征在于,所述处理芯片包括可编程逻辑电路和/或程序指令,所述处理芯片运行所述可编程逻辑电路和/或程序指令,以实现如权利要求1至11任一所述的数据传输方法。
  24. 根据权利要求23所述的处理芯片,其特征在于,所述处理芯片包括处理单元和调度单元;
    所述处理单元用于根据待传输的数据帧的优先级,将所述待传输的数据帧缓存至对应的出端口队列中;
    所述调度单元用于对所述出端口队列中待传输的数据帧进行调度,以实现如权利要求1至11任一所述的数据传输方法。
  25. 根据权利要求24所述的处理芯片,其特征在于,所述调度单元包括数据出口调度逻辑和媒体访问控制MAC封装逻辑;
    所述数据出口调度逻辑用于对所述出端口队列中待传输的数据帧进行调度,并向所述MAC封装逻辑提供所述待传输的数据帧对应的帧类型指示,所述帧类型指示用于指示所述待传输的数据帧的帧类型;
    所述MAC封装逻辑用于根据所述待传输的数据帧对应的帧类型指示,对所述待传输的数据帧进行MAC封装。
  26. 一种数据传输装置,其特征在于,包括:通信接口和如权利要求23至25任一所述的处理芯片。
PCT/CN2020/104811 2019-07-26 2020-07-27 数据传输方法及装置 WO2021018087A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022505259A JP7394960B2 (ja) 2019-07-26 2020-07-27 データ送信方法及び装置
EP20846611.0A EP3993293A4 (en) 2019-07-26 2020-07-27 DATA TRANSMISSION METHOD AND DEVICE
US17/583,685 US12003319B2 (en) 2019-07-26 2022-01-25 Data transmission method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910680722.9 2019-07-26
CN201910680722.9A CN112311496A (zh) 2019-07-26 2019-07-26 数据传输方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/583,685 Continuation US12003319B2 (en) 2019-07-26 2022-01-25 Data transmission method and apparatus

Publications (1)

Publication Number Publication Date
WO2021018087A1 true WO2021018087A1 (zh) 2021-02-04

Family

ID=74229357

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/104811 WO2021018087A1 (zh) 2019-07-26 2020-07-27 数据传输方法及装置

Country Status (5)

Country Link
US (1) US12003319B2 (zh)
EP (1) EP3993293A4 (zh)
JP (1) JP7394960B2 (zh)
CN (1) CN112311496A (zh)
WO (1) WO2021018087A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115499380A (zh) * 2022-08-16 2022-12-20 优跑汽车技术(上海)有限公司 车载以太网的tsn混合调度方法、设备及存储介质
EP4113952A1 (en) * 2021-06-28 2023-01-04 Abb Schweiz Ag Improved congestion handling in time sensitive networks through coordination between network segments
EP4113950A1 (en) * 2021-06-28 2023-01-04 Abb Schweiz Ag Variable preemption in time sensitive networks using priority regeneration

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112311496A (zh) * 2019-07-26 2021-02-02 华为技术有限公司 数据传输方法及装置
EP4280488A4 (en) * 2021-02-10 2024-02-14 Huawei Tech Co Ltd INFORMATION TRANSMISSION METHOD AND DEVICE
KR102649136B1 (ko) * 2021-03-18 2024-03-19 한국전자통신연구원 프레임 프리엠션 제공 방법 및 장치
CN114500692A (zh) * 2022-02-11 2022-05-13 重庆邮电大学 一种时间敏感网络帧抢占优化方法
CN114448574A (zh) * 2022-03-03 2022-05-06 湖南军安信达科技有限公司 一种mac帧数据传输处理设备及其数据传输处理方法
CN115378874B (zh) * 2022-10-20 2023-01-24 北京智芯微电子科技有限公司 数据发送、接收方法、装置、电子设备、芯片及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180103094A1 (en) * 2016-10-12 2018-04-12 Cisco Technology, Inc. Deterministic stream synchronization
CN109120591A (zh) * 2018-07-05 2019-01-01 湖南铁路科技职业技术学院 列车以太网数据处理方法及系统
CN109962863A (zh) * 2017-12-22 2019-07-02 马涅蒂-马瑞利公司 基于以太网交换机的网络中管理通信量的方法,车辆,通信接口和相应的计算机程序产品

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3169511B2 (ja) * 1994-03-10 2001-05-28 三菱電機株式会社 メモリ装置及びメモリ管理方法
FI20050561A0 (fi) * 2005-05-26 2005-05-26 Nokia Corp Pakettidatan käsittely viestintäjärjestelmässä
US8391354B2 (en) 2007-05-14 2013-03-05 Broadcom Corporation Method and system for transforming uncompressed video traffic to network-aware ethernet traffic with A/V bridging capabilities and A/V bridging extensions
US8977737B2 (en) 2007-12-24 2015-03-10 Alcatel Lucent Detecting legacy bridges in an audio video bridging network
KR101188210B1 (ko) * 2010-08-03 2012-10-05 인하대학교 산학협력단 선점형 우선순위 기반의 이더넷 데이타 스케줄링 방법 및 이를 이용한 시스템
US10225196B2 (en) 2013-02-15 2019-03-05 Nxp Usa, Inc. Apparatus, system and method for controlling packet data flow
WO2015162734A1 (ja) * 2014-04-23 2015-10-29 三菱電機株式会社 中継装置およびデータ転送方法
JP2016103700A (ja) * 2014-11-27 2016-06-02 三菱電機株式会社 スイッチ装置
WO2016132402A1 (ja) * 2015-02-20 2016-08-25 三菱電機株式会社 通信フレーム転送装置および通信システム
CN107258076B (zh) * 2015-02-26 2020-12-25 西门子公司 通信网络中的数据传输
US10218602B2 (en) 2015-04-15 2019-02-26 Cisco Technology, Inc. Establishing deterministic multicast paths in a network
JP2018055284A (ja) * 2016-09-27 2018-04-05 富士通株式会社 通信装置、及び通信装置の送信方法
US10728134B2 (en) * 2018-11-14 2020-07-28 Keysight Technologies, Inc. Methods, systems, and computer readable media for measuring delivery latency in a frame-preemption-capable network
CN112311496A (zh) * 2019-07-26 2021-02-02 华为技术有限公司 数据传输方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180103094A1 (en) * 2016-10-12 2018-04-12 Cisco Technology, Inc. Deterministic stream synchronization
CN109962863A (zh) * 2017-12-22 2019-07-02 马涅蒂-马瑞利公司 基于以太网交换机的网络中管理通信量的方法,车辆,通信接口和相应的计算机程序产品
CN109120591A (zh) * 2018-07-05 2019-01-01 湖南铁路科技职业技术学院 列车以太网数据处理方法及系统

Non-Patent Citations (1)

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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4113952A1 (en) * 2021-06-28 2023-01-04 Abb Schweiz Ag Improved congestion handling in time sensitive networks through coordination between network segments
EP4113950A1 (en) * 2021-06-28 2023-01-04 Abb Schweiz Ag Variable preemption in time sensitive networks using priority regeneration
WO2023274782A1 (en) * 2021-06-28 2023-01-05 Abb Schweiz Ag Improved congestion handling in time sensitive networks through coordination between network segments
CN115499380A (zh) * 2022-08-16 2022-12-20 优跑汽车技术(上海)有限公司 车载以太网的tsn混合调度方法、设备及存储介质
CN115499380B (zh) * 2022-08-16 2024-03-29 悠跑科技(合肥)有限公司 车载以太网的tsn混合调度方法、设备及存储介质

Also Published As

Publication number Publication date
JP2022543206A (ja) 2022-10-11
US12003319B2 (en) 2024-06-04
CN112311496A (zh) 2021-02-02
JP7394960B2 (ja) 2023-12-08
EP3993293A1 (en) 2022-05-04
US20220149979A1 (en) 2022-05-12
EP3993293A4 (en) 2022-08-03

Similar Documents

Publication Publication Date Title
WO2021018087A1 (zh) 数据传输方法及装置
CN106134138B (zh) 一种拥塞控制的方法、设备和系统
US11218572B2 (en) Packet processing based on latency sensitivity
US8139593B2 (en) Memory management for high speed media access control
US7558269B2 (en) Method for transmitting high-priority packets in an IP transmission network
US10270696B2 (en) Transmission of data packets of different priority levels using pre-emption
US7602809B2 (en) Reducing transmission time for data packets controlled by a link layer protocol comprising a fragmenting/defragmenting capability
US20090104916A1 (en) Method, apparatus and system for signalling of buffer status information
EP2048831A1 (en) Method and systems for QoS-aware flow control in communication networks, corresponding network and computer program product
CN111385216B (zh) 基于pfc帧的拥塞控制方法、装置、系统及存储介质
WO2018161672A1 (zh) 一种报文处理方法、装置及系统
WO2010099718A1 (zh) 一种数据传输控制方法、装置及系统
US8908510B2 (en) Communication link with intra-packet flow control
US20100040060A1 (en) Fast emulation of mac table flushing for elan unicasts
US11785635B2 (en) Communication system enabled to minimize negative communication effects
CN114221912B (zh) 一种针对非周期时间触发业务流的时间敏感网络接入方法
EP3459216B1 (en) System and method for mtu size reduction in a packet network
CN114208131A (zh) 流量均衡方法、网络设备及电子设备
JP2005236447A (ja) 輻輳制御方式および輻輳制御装置
CN116668376B (zh) 一种以太网控制器
RU2772112C1 (ru) Способ и устройство для контроля перегрузки сети на базе кадра pfc, система и носитель данных

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022505259

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020846611

Country of ref document: EP

Effective date: 20220126