DATA TRANSMISSION IN A COMMUNICATIONS NETWORK
20180041432 · 2018-02-08
Assignee
Inventors
Cpc classification
H04L12/2859
ELECTRICITY
International classification
Abstract
In a method for data transmission in a communications network, data frames containing metadata and payloads are transmitted via point-to-point connections between a respective transmitter and a receiver according to a communications protocol. For each point-to-point connection, a transmission list of the data frames to be transmitted from the transmitter to the receiver is kept. In addition, a priority set of at least three interrupt priorities of pairs with differing significance is provided, and the communications protocol permits each data frame of a transmission list to be assigned an interrupt priority and to interrupt a current transmission of a data frame of the transmission list in order to transfer a data frame that is contained in the transmission list and that has been assigned a higher interrupt priority than the currently transferred data frame.
Claims
1.-12. (canceled)
13. A method for transmitting data in a communication network, said method comprising: transmitting data frames including metadata and useful data via point-to-point connections between a respective transmitter and a receiver according to a communication protocol; transmitting a transmission list of data frames from the transmitter to the receiver is managed for each point-to-point connection; prescribing a priority set of at least three interrupt priorities having significances differing in pairs, the communication protocol allowing each data frame on the transmission list to be allocated an interrupt priority; and interrupting transmission of a data frame on the transmission list having a priority that is to be interrupted in order to transmit a data frame that is on the transmission list and has been a allocated higher interrupt priority on the transmission list than the data frame transmission that is being interrupted.
14. The method of claim 13, wherein the communication network has a point-to-point connection between the transmitter and the receiver, further comprising providing agreement between the transmitter and a receiver of the point-to-point connection on how many different interrupt priorities available for the transmission list of the point-to-point connection.
15. The method of claim 13, further comprising: splitting useful data in a data frame included on the transmission list having an allocated interrupt priority that is lower than the highest interrupt priority available in the priority set into data frame fragments before transmitting the data frame; successively transmitting data frame fragments of the data frame; and ascertaining whether the transmission of the data frame is to be interrupted by checking a respective data frame fragment before sending said data frame fragment of the data frame, and whether the transmission list includes a data frame having a higher allocated interrupt priority than the allocated interrupt priority the data frame of this data frame fragment.
16. The method of claim 15, wherein each data frame fragment of the data frame has a frame length of at least 64 bytes.
17. The method of claim 13, further comprising interrupting the transmission of a data frame if, during the transmission of said data frame, a data frame having a higher allocated interrupt priority than the data frame the data frame being transmitted is incorporated into the transmission list.
18. The method of claim 17, wherein the data frame has a minimum residual number of bytes, and further comprising interrupting the transmission of a data frame on the transmission list only if the number of useful data bytes as yet untransmitted exceeds the prescribed minimum residual number of bytes in the data frame.
19. The method of claim 17, further comprising incorporating a data frame fragment in the transmission list that includes as yet untransmitted useful data of a data frame in the transmission list in response to an interruption in the transmission of a data frame.
20. The method of claim 18, further comprising incorporating a data frame fragment in the transmission list that includes as yet untransmitted useful data of a data frame in the transmission list in response to an interruption in the transmission of a data frame.
21. The method of claim 13, wherein the metadata of each data frame having an allocated interrupt priority that is lower than the highest interrupt priority in the priority set, includes the interrupt priority allocated to the data frame and a frame number allocated to the data frame that characterizes the data frame.
22. The method of claim 15, wherein the metadata of each data frame fragment of a data frame includes the interrupt priority allocated to the data frame, a frame number allocated to the data frame, and the number of useful data bytes of the data frame not yet sent.
23. The method of claim 16, wherein the metadata of each data frame fragment of a data frame includes the interrupt priority allocated to the data frame, a frame number allocated to the data frame, and the number of useful data bytes of the data frame not yet sent.
24. The method of claim 19, wherein the metadata of each data frame fragment of a data frame includes the interrupt priority allocated to the data frame, a frame number allocated to the data frame, and the number of useful data bytes of the data frame not yet sent.
25. The method of claim 21, wherein a multicast address is reserved for the data frame fragments of a respective data frame, the data frame the data frame, and the metadata of each data frame fragment that follows a first data frame fragment, and further comprising including the multicast address in the data frame fragments of a respective data frame as a destination address.
26. The method of claim 22, wherein a receiver receives a data frame split into data frame fragments, and further comprising: using the metadata of the data frame fragments received by the receiver to ascertain whether it has received all data frame fragments of the data frame by ascertaining the total number of useful data bytes in all data frame fragments it received having metadata including the same frame number; comparing said total number of useful data bytes in the data frame with the total number of received useful data bytes of said data frame; and compiling the received data frame fragments having metadata including the same frame number to form a data frame after all data frame fragments of the data frame have been received.
27. The method of claim 23, wherein a receiver receives a data frame split into data frame fragments, and further comprising: using a data frame split into data frame fragments uses the metadata of the data frame fragments received by the receiver to ascertain whether it has received all data frame fragments of the data frame by ascertaining the total number of useful data bytes in all data frame fragments it received having metadata including the same frame number; comparing said total number of useful data bytes in the data frame with the total number of received useful data bytes of said data frame, and in that the receiver, and compiling the received data frame fragments having metadata including the same frame number to form a data frame after all data frame fragments of the data frame have been received.
28. The method of claim 24, wherein a receiver receives a data frame split into data frame fragments, and further comprising: using the metadata of the data frame fragments received by the receiver to ascertain whether it has received all data frame fragments of the data frame by ascertaining the total number of useful data bytes in all data frame fragments it received having metadata including the same frame number; comparing said total number of useful data bytes in the data frame with the total number of received useful data bytes of said data frame, and in that the receiver; and compiling the received data frame fragments having metadata including the same frame number to form a data frame after all data frame fragments of the data frame have been received.
29. The method of claim 25, wherein a receiver receives a data frame split into data frame fragments, and further comprising: using the metadata of the data frame fragments received by the receiver to ascertain whether it has received all data frame fragments of the data frame by ascertaining the total number of useful data bytes in all data frame fragments it received having metadata including the same frame number; comparing said total number of useful data bytes in the data frame with the total number of received useful data bytes of said data frame, and in that the receiver; and compiling the received data frame fragments having metadata including the same frame number to form a data frame after all data frame fragments of the data frame have been received.
30. The method of claim 22, wherein a receiver of a data frame split into data frame fragments uses the metadata of the data frame fragments received by the receiver to ascertain whether it has received all data frame fragments of the data frame by ascertaining the total number of useful data bytes in all data frame fragments it received having metadata including the same frame number, comparing said total number of useful data bytes in the data frame with the total number of received useful data bytes of said data frame, and in that the receiver, and compiling the received data frame fragments having metadata including the same frame number to form a data frame after all data frame fragments of the data frame have been received.
31. The method of claim 25, wherein a receiver receives a data frame split into data frame fragments, and further comprising: using the metadata of the data frame fragments received by the receiver to ascertain whether it has received all data frame fragments of the data frame by ascertaining the total number of useful data bytes in all data frame fragments it received having metadata including the same frame number, comparing said total number of useful data bytes in the data frame with the total number of received useful data bytes of said data frame, and in that the receiver, and compiling the received data frame fragments having metadata including the same frame number to form a data frame after all data frame fragments of the data frame have been received.
32. The method of claim 13, wherein the communication network is an Ethernet network.
Description
[0026] The properties, features and advantages of this invention that are described above and the way in which they are achieved will become clearer and more distinctly comprehensible in conjunction with the description below of exemplary embodiments that are explained in more detail in conjunction with the drawings, in which:
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036] Mutually corresponding parts are provided with the same reference symbols in all figures.
[0037]
[0038] The transmission of a non-express frame on the transmission list is interrupted according to the communication protocol if, during the transmission, a data frame is incorporated into the transmission list that has a higher allocated interrupt priority than the presently transmitted non-express frame, provided that an as yet untransmitted number of useful data bytes of the non-express frame exceeds a minimum residual number of bytes, which is prescribed as 44 bytes, for example.
[0039] To this end, a first interrupt variant provides for the useful data of each non-express frame that is included in a transmission list and that includes more useful data bytes than a prescribed minimum number of bytes, for example more than 88 bytes, to be split, before the transmission of the non-express frame, over data frame fragments that are transmitted in succession. Before the sending of a data frame fragment of the non-express frame, a respective check is performed to determine whether the transmission list includes a data frame that has a higher allocated interrupt priority than the non-express frame of this data frame fragment. Should the transmission list include such a data frame, the transmission of the data frame fragment is deferred and this data frame starts to be transmitted (in this regard see
[0040] Alternatively, a second interrupt variant provides for the non-express frames on the transmission list to be split into data frame fragments not before they are actually transmitted but rather only if, during the transmission of a non-express frame, a data frame that has a higher allocated interrupt priority than the presently transmitted non-express frame is incorporated into the transmission list, provided that the as yet untransmitted number of useful data bytes of the non-express frame exceeds the minimum residual number of bytes. In this case, the transmission of the non-express frame is interrupted, a data frame fragment that includes the as yet untransmitted useful data of the non-express frame is formed and incorporated into the transmission list, and the transmission of the data frame having the higher interrupt priority is started.
[0041] By contrast, express frames are always transmitted without an interrupt.
[0042] In
[0043] First of all, a first data frame fragment NEF2 Frag_1 of the first non-express frame is transmitted. The transmission of the first non-express frame is interrupted to transmit the second non-express frame. Therefore, a first data frame fragment NEF1 Frag_1 of the second non-express frame is subsequently transmitted. The transmission of the second non-express frame is subsequently interrupted to transmit the first express frame EF_1. After the transmission of the first express frame EF_1, the transmission of the second non-express frame that was interrupted thereby is continued by virtue of a second data frame fragment NEF1 Frag_2 of the second non-express frame being transmitted. The transmission of the second non-express frame is then interrupted again to transmit the second express frame EF_2. After the transmission of the second express frame EF_2, the transmission of the second non-express frame that was interrupted thereby is continued by virtue of the third and last data frame fragment NEF1 Frag_3 of the second non-express frame being transmitted. Subsequently, the interrupted transmission of the first non-express frame is continued by virtue of a second data frame fragment NEF2 Frag_2 of the first non-express frame being transmitted. The transmission of the first non-express frame is then interrupted again to transmit the third non-express frame NEF1. The third non-express frame NEF1 is not split into data frame fragments and transmitted without interruption, for example because, in the event of the use of the first interrupt variant, it does not include more useful data bytes than the prescribed minimum number of bytes or because, in the event of the use of the second interrupt variant, no express frame is incorporated into the transmission list during the transmission of the third non-express frame NEF1. After the transmission of the third non-express frame NEF1, the transmission of the first non-express frame is continued and is completed by the transmission of the third and last data frame fragment NEF2 Frag_3 of the first non-express frame.
[0044] The communication protocol differs from known Ethernet protocols in that it allows multi-level preemption of the transmission of data frames. This multi-level preemption is understood to mean the above-described interruption of the transmission of a non-express frame for the purpose of transmitting an express frame or a non-express frame that has a higher allocated interrupt priority than the presently transmitted non-express frame. In
[0045]
[0046] According to
[0047]
[0048]
[0049]
[0050] A first data field D1 that comprises eight bits and a second data field D2 that comprises three bits include a number of as yet unsent useful data bytes of the non-express frame NEF1, NEF2. The total number eleven of the bits of these data fields D1, D2 in this exemplary embodiment matches the maximum number 1500 of useful data bytes that are usually provided for an Ethernet frame. On the basis of the number of as yet unsent useful data bytes that is included in the data fields D1, D2 and the number of already received useful data bytes of a non-express frame NEF1, NEF2, the receiver can identify whether it has already received all useful data P of the non-express frame NEF1, NEF2.
[0051] A third data field D3 that comprises three bits includes a frame number that is allocated to the non-express frame NEF1, NEF2 and on the basis of which different non-express frames NEF1, NEF2 on the same transmission list are distinguished. The preemption tag IET-Tag depicted in
[0052] Further fourth data fields D4 that respectively comprise one bit include the interrupt priority allocated to the non-express frame NEF1, NEF2. In this case, the number of fourth data fields D4 needed therefor is dependent on the number of interrupt priorities included in the priority set.
[0053]
[0054]
[0055]
[0056] According to
[0057] The EtherType supplementary entry IET_EtherType and the preemption tag IET_Tag are used merely to realize the transmission interrupts with multi-level preemption and are removed again after the reception of non-express frames, so that these frames, after their reception, can be processed in their original form by higher layers of the 051 model (=Open Systems Interconnection model).
[0058]
[0059] S1: A data frame that is subsequently referred to as the data frame under consideration and has a highest interrupt priority among all data frames presently included in the transmission list and not processed is taken from the transmission list.
[0060] S2: A check is performed to determine whether the data frame under consideration is a non-express frame, for example by checking whether it has an EtherType supplementary entry IET_EtherType. If this is not the case, the data frame under consideration is an express frame and S3 is carried out; otherwise, the data frame under consideration is a non-express frame and S4 is carried out.
[0061] S3: The data frame under consideration, which in this case is an express frame, is sent (see
[0062] S4: A check is performed, for example by means of an LLDP, to determine whether both the transmitter and the receiver support multi-level preemption. If this is not the case, S5 is carried out; otherwise, S6.1 is carried out.
[0063] S5: The data frame under consideration, which in this case is a non-express frame, is sent without interruption (see
[0064] S6.X for X=1, 2, 3, 4: A check is performed to determine whether the transmission list includes a data frame fragment Frag2, Frag3 yet to be sent having the interrupt priority X. If this is the case, S7.X is carried out; otherwise, S8.X is carried out.
[0065] S7.X for X=1, 2, 3, 4: The data frame fragment Frag2, Frag3 yet to be sent ascertained in S6.X, having the interrupt priority X, is sent. Subsequently, S1 is carried out.
[0066] S8.X for X=1, 2, 3, 4: A check is performed to determine whether the transmission list includes a non-express frame having the interrupt priority X. If this is not the case, then the method step S6.X+1 is carried out in the cases X=1, 2, 3 and method step S1 is carried out in the case X=4; otherwise, S9.X is carried out.
[0067] S9.X for X=1, 2, 3, 4: A non-express frame ascertained in S8.X, having the interrupt priority X, is split into data frame fragments Frag1, Frag2, Frag3 as described above if need be, i.e. if this non-express frame contains more useful data bytes than the prescribed minimum number of bytes. If the non-express frame is split into data frame fragments Frag1 Frag2, Frag3, the first data frame fragment Frag1 is sent (see
[0068]
[0069] S1: A data frame that is subsequently referred to as the data frame under consideration and has a highest interrupt priority among all data frames presently included in the transmission list and not processed is taken from the transmission list.
[0070] S10: A check is performed, for example by means of an LLDP, to determine whether both the transmitter and the receiver support multi-level preemption. If this is not the case, S11 is carried out; otherwise, S12 is carried out.
[0071] S11: The data frame under consideration is sent. Subsequently, S1 is carried out.
[0072] S12: A check is performed to determine whether the data frame under consideration is a non-express frame, for example by checking whether it has an EtherType supplementary entry IET_EtherType. If this is not the case, the data frame under consideration is an express frame and S13 is carried out; otherwise, the data frame under consideration is a non-express frame and S16.1 is carried out.
[0073] S13: A check is performed to determine whether a non-express frame is presently being sent. If this is not the case, S14 is carried out; otherwise, S15 is carried out.
[0074] S14: The data frame under consideration, which in this case is an express frame, is transmitted completely. Subsequently, S1 is carried out.
[0075] S15: If the as yet untransmitted number of useful data bytes of the presently sent non-express frame exceeds the minimum residual number of bytes, the transmission of the presently sent non-express frame is interrupted and a data frame fragment that includes the as yet untransmitted useful data of the non-express frame is formed and incorporated into the transmission list. Otherwise, the transmission of the presently sent non-express frame is completed. In any case, S14 is subsequently performed.
[0076] S16.X for X=1, 2, 3, 4: A check is performed to determine whether a non-express frame having the interrupt priority X is currently being sent. If this is the case, S1 is carried out; otherwise, method step S17.X is carried out in the cases X=1, 2, 3 and method step S19 is carried out in the case X=4.
[0077] S17.X for X=1, 2, 3: A check is performed to determine whether the data frame under consideration has the interrupt priority X. If this is not the case, S16.X+1 is carried out; otherwise, S18 is carried out.
[0078] S18: A check is performed to determine whether a non-express frame is currently being sent. If this is not the case, S19 is carried out; otherwise, S20 is carried out.
[0079] S19: The data frame under consideration starts to be transmitted. Subsequently, S1 is carried out.
[0080] S20: If the as yet untransmitted number of useful data bytes of the presently sent non-express frame exceeds the minimum residual number of bytes, the transmission of the presently sent non-express frame is interrupted and a data frame fragment that includes the as yet untransmitted useful data of the non-express frame is formed and incorporated into the transmission list. Otherwise, the transmission of the presently sent non-express frame is completed. In any case, S19 is subsequently performed.
[0081] Although the invention has been illustrated and described in more detail by preferred exemplary embodiments, the invention is not limited by the examples disclosed and other variations can be derived therefrom by a person skilled in the art without departing from the scope of protection of the invention.
LIST OF REFERENCE SYMBOLS
[0082] 1 Transmission module [0083] 3 Preemption module [0084] 5 Receiver module [0085] 7 Defragmentation module [0086] D1 to D4 Data field [0087] DA Receiver address [0088] DA_Peer Multicast address [0089] EF, EF_1, EF_2 Express frame [0090] EtherType EtherType entry [0091] FCS Checksum [0092] Frag1, Frag2, Frag3 Data frame fragment [0093] IET-EtherType EtherType supplementary entry [0094] IET_Tag Preemption tag [0095] NEF1, NEF2 Non-express frame [0096] NEF1 Frag_1, NEF1 Frag_2, NEF1 Frag_3 Data frame fragment [0097] NEF2 Frag_1, NEF2 Frag_2, NEF2 Frag_3 Data frame fragment [0098] P Useful data [0099] P1, P2, P3 Useful data component [0100] S1 to S20 Method step [0101] SA Transmitter address [0102] SA_IF MAC port address [0103] VLAN VLAN tag