Data packet for bidirectional transmission of data packets during data transmission between a first and a second communication appliance, and method for transmitting such a data packet
09762353 · 2017-09-12
Assignee
Inventors
Cpc classification
H04L1/008
ELECTRICITY
H04L5/14
ELECTRICITY
International classification
H04L1/00
ELECTRICITY
H04L5/14
ELECTRICITY
Abstract
A data packet for bidirectional transmission of data packets in the case of data transmission between a first and a second communication device and a method for transmitting such a data packet is provided. A data packet that is transmitted from a first to a second communication device to contain a piece of acknowledgement information for all data packets that have already been received from the first communication device previously during this data transmission.
Claims
1. A method for bi-directionally transmitting a data packet during data transmission between a first communication appliance and a second communication appliance comprising the steps of: forming the data packet to be transmitted from the first communication appliance to the second communication appliance, wherein the data packet contains packet data and a piece of acknowledgement information indicating an acknowledgement status of each data packet of a set of data packets already previously received by the first communication appliance during data packet transmission, transmitting the data packet formed from the first communication appliance to the second communication appliance, and re-transmitting an unacknowledged data packet using a different physical communication link than a physical communication link used for initially sending the unacknowledged data packet from the first communication appliance to the second communication appliance; wherein, when each data packet in the set of data packets from the data transmission have been received by the first communication appliance and the second communication appliance using a plurality of physical communication links, further transmitting a final data packet from the first communication appliance to the second communication appliance using all of said plurality of physical communication links concluding or terminating the data transmission.
2. The method for transmitting the data packet as claimed in claim 1, wherein the data packet being formed during the data transmission is a plurality of data packets and transmitting the plurality of data packets between the first communication appliance and the second communication appliance.
3. The method for transmitting the data packet as claimed in claim 1, wherein the piece of acknowledgement information is a bit string having a number of bits corresponding to a number of data packets in the set of data packets, wherein each bit of the number of bits represents a specific data packet and a binary digit of 0 for a bit in the bit string indicates the unacknowledged data packet.
4. The method for transmitting a data packet as claimed in claim 1, wherein the unacknowledged data packet is resent only after transmitting, for the first time, each data packet in the set of data packets from the data transmission.
5. The method for transmitting a data packet as claimed in claim 1, wherein a communication mechanism between the first communication appliance and second communication appliance is based on a subordinate communication service-providing interchange of each data packet in the set of data packets, having a fixed length, in accordance with a layer 2 of an OSI reference model.
Description
BRIEF DESCRIPTION
(1) Some of the embodiments will be described in detail, with reference to the following figures, wherein like designations denote like members, wherein:
(2)
(3)
(4)
(5)
DETAILED DESCRIPTION
(6) Exemplary embodiment: bidirectional communication method 60 in the case of a master/reserve configuration 61 for a redundant master/reserve system 3, 4 in an automation system 62
(7)
(8) As
(9) The two redundant communication links 7, 8 are used to interchange data—in the form of data packets 1—between the master 3 and the reserve 4 bidirectionally.
(10) In such an automation system 62 with the redundant master/reserve configuration 61, the (current) master system 3 is typically the active communication partner and the (current) reserve system 4 is typically the initially passive communication partner, with data being interchanged between the master 3 and the reserve 4 typically once per automation cycle, subsequently just transfer 2.
(11) In this case, there are usually substantially more data transmitted from the master 3 to the reserve 4 than in the opposite direction.
(12) Redundant systems with time-critical tasks, such as the master/reserve system 3, 4 of the automation system 62 in the present case, require an efficient and deterministic communication mechanism 60 for the bidirectional interchange 2 of data between master 3 and reserve 4.
(13)
(14) The communication mechanism 60 is based on a subordinate communication service that provides the transparent interchange of data packets having a fixed length, typically for communication in accordance with layer 2 (data link layer) of the OSI layers or OSI reference model.
(15) Said subordinate communication service, or just the subordinate communication for short, provides a logical connection to data packets, including elementary error recognition or an elementary error correction mechanism (e.g. cyclic redundancy check CRC), and undertakes physical addressing of the data packets 1.
(16) All tasks beyond these, such as acknowledgement, packet repetition, error recognition, redundancy management, etc., are undertaken by the communication mechanism 60.
(17) An essential aspect of the communication mechanism 60 is that no separate acknowledgement messages—between the communication subscribers 3, 4—are required for the communication. Each data packet 1 transferred between the communication subscribers 3, 4 or the master 3 and the reserve 4 contains the acknowledgement status 5, 45 or the acknowledgement information 5, 45 about all data packets 1 already received by the respective communication subscriber 3, 4 (cf.
(18) The size of an individual message/data packet 1 is obtained from the subordinate communication service 9.
(19) In each data packet 1, an area, an acknowledgement area 40, is reserved that can later be used to store the acknowledgement status 5, 45 or the acknowledgement information 5, 45 of the associated data packet 1—using all data packets 1 already received by the respective communication subscriber 3, 4. One bit 46 per data packet 1 is sufficient for this.
(20)
(21) As illustrated by
(22) (1) Protocol Header PrK 20
(23) The protocol header 20 contains specific information based on the subordinate communication service 21, in this case Ethernet, for example, and is transparent for the communication protocol described.
(24) (2) Packet Header PaK 30
(25) As
(26) (3) Acknowledgement Area QuB 40
(27) As
(28) The maximum length 43 is obtained from the maximum number of data packets; the used length 44 is obtained from the actual number of packets in the current transfer/user packet. Acknowledgement information/acknowledgement status PaQu 5, 45. The acknowledgement status 5, 45 is formed by a bit string 47, the number of bits in which corresponds to the maximum number of data packets. Each bit 46 in the bit string 47 represents a specific data packet 1 (specific packet acknowledgement), with the implicit bit index 48 corresponding to the associated data packet number (cf.
(29) (4) Useful Data Area NDB 50
(30) The useful data area 50 can, in principle, be structured without restriction.
(31) It is merely necessary to ensure that the sending communication subscriber 3, 4 (transmission end) splits the data to be transmitted into the data packets 1 and the receiving communication subscriber 3, 4 (receiver end) correctly associates the transmitted data packets 1 and the information therein again.
(32) Typically, this involves linearly addressed data, such as byte arrays, for example.
(33) As
(34) The data packet structure (cf.
(35) Thus, for a packet length of 16 000 bytes, when Ethernet is used as subordinate communication service 9, the transmission of 1 MB of data requires, per direction, less than 30 bytes for the entire data protocol management, including the packet acknowledgements or the acknowledgement information 5, 45 and redundancy information, per packet (<0.2%).
(36) From the number of packets and the transmission speed per data packet 1 or number of packets per unit time in the subordinate communication service 9, it is possible to ascertain the typical transfer time for the transfer 2 (user packet).
(37)
(38) The bit string 47 shown comprises a succession of 100 bits 46, which means that it is possible to acknowledge a maximum of 100 individual specific data packets 1. The implicit bit index 48 of the bit string 47 corresponds to the associated data packet number of the data packet 1 to be acknowledged.
(39) The binary digit “0” of a bit 46 thus represents “not received”/“not acknowledged”; the binary digit “1” of a bit 46 represents “received”/“acknowledged”.
(40) The acknowledgement information 5, 45 illustrated in
(41)
(42) (1) Initialization and Connection Setup Between the Master System 3 and the Reserve System 4 in the Case of the Redundant Master/Reserve Configuration 61 for a Transfer 2 110
(43) During initialization of the connection 110 between the master 3 and the reserve 4, the maximum permissible size of the user data per transfer 2, for example in this case an automation cycle, is initially prescribed or stipulated or determined.
(44) From this, the respective number of required message/data packets 1—for a respective transmission direction 7, 8 (from the master 3 to the reserve 4 or vice-versa)—is ascertained that are required in order to hold the respective useful data that need to be transmitted in the respective transmission direction 7, 8 (from the master 3 to the reserve 4 or vice-versa).
(45) During connection setup 110 between the master 3 and the reserve system 4, it is then stipulated which of the two communication subscribers 3, 4 acts in an active or initially passive manner.
(46) Usually, the master system 3 will act in an active manner and a reserve system 4 will act in a passive manner.
(47) Both the active 3 and the passive 4 communication subscriber prescribes a time limit for the transfer 2. Should the transfer 2 not have been carried out completely within this period of time, the logical connection is denoted as “failed” and an appropriate error message is returned.
(48) (2) Initiation/Beginning of the Bidirectional Data Transmission 2 of Data Packets 1 by the Active Subscriber 3 with Formation 121 and Sending 122 of Data Packets 1 120
(49) The active subscriber 3, in this case the master 3, for example, is responsible for the initiation 120 of the data transmission 2 or of the transfer 2, while the initially passive subscriber 4, in this case then the reserve 4, waits until a first data packet 1 arrives 4 from the active communication subscriber 3 or the master.
(50) From this instant onward, both communication subscribers 3, 4, i.e. master 3 and reserve 4, send and receive data packets 1 (cf.
(51) (3) Simultaneous Data Interchange 2 of Data Packets 1 Between the Active and the Passive Subscriber 3, 4 with Formation 121 and Sending 122 of Data Packets 1 (Initial Sending) 130
(52) In each data packet 1 to be formed 121 and to be sent 122 (cf.
(53) Each data packet 1 that is sent therefore contains the complete acknowledgement status 5, 45 (cf.
(54) As soon as the initially passive communication subscriber 4, i.e. in this case the reserve 4, has received a first data packet 1 from the master 3 (cf. (2) initiation/beginning of the bidirectional data transmission 2 120), the reserve 4 also begins to transmit 2 its data that are intended for the active communication subscriber 3, i.e. the master 3.
(55) The active communication subscriber 3 or the master 4 sends its data packets 1—in the case of the two redundant communication links 7, 8 (cf.
(56) The passive communication subscriber 4 returns its data packets 1 using that communication link 7, 8 that it most recently used to receive data packets 1.
(57) In addition, the active communication subscriber 3 is informed by means of the packet reception counters PaZ1 41, PaZ2 42 (cf.
(58) If the active communication subscriber 3 establishes—during the transfer 2—that no further data packets 1 have been received via one of the two redundant communication links 7, 8 (“faulty” communication link) (i.e. in this case the associated reception counter PaZ1 41, PaZ2 42 would no longer be increased), the other communication link 7, 8 is marked as what is known as the “preferred connection”. Progressively more data packets 1 are then sent using said marked “preferred connection”—and correspondingly fewer data packets 1 using the other communication link. In graphic terms, the data transfer 2 shifts from the “faulty” communication link to the “preferred connection”.
(59) Should data packets 1 continue to be received only via the “preferred connection”, the other communication link (“faulty” communication link) is ultimately marked as “failed” (“failed” communication link) and data packets 1 are exclusively transferred via the active communication link, i.e. the “preferred connection”. Otherwise, both communication links 7, 8 are used on equal terms again.
(60) As soon as one of the communication subscribers 3, 4, i.e. the master 3 or the reserve 4, recognizes from the acknowledgement information/status 5, 45 or from the “acknowledgement bits” 47 (cf.
(61) In order to ensure or increase the currentness of the transmitted data, the two communication subscribers 3, 4 each use what are known as “reference buffers” 22. Said “reference buffers” 22 ensure that data or the data packets 1 are “packed” 121 only when there is a respective data packet 1 pending transmission 122.
(62) Thus, such a “reference buffer” 22—in this case particularly on the passive communication subscriber 4—can increase the currentness of the data sent from the passive 4 to the active 3 communication subscriber. The reason is that since the passive communication subscriber 4 initially waits until a first data packet 1 arrives from the active communication subscriber 3, certain data, e.g. a local system status, may already be outdated when the passive communication subscriber 4 begins its transmission process 122.
(63) For this reason, instead of packing 121 the useful or user data 55 into data packets 1 completely before the actual transfer 2, the “reference buffer” 22 is specified for a data packet 1. In this case, the useful or user data 55 are then copied 121 into the associated data packets 1 not upon the actual transfer call 110 but rather only when the initially passive communication subscriber 4 has received the first data packet 1 from the active communication subscriber 3.
(64) (4) Automatic Repeat Sending of Unacknowledged Data Packets 1 with Formation 121 and Sending 122 of Data Packets 1 140
(65) Once all data packets 1 have been sent (off) 122, all as yet unacknowledged data packets 1 are resent, the communication mechanism 60 continuing to be used without alteration.
(66) If both redundant communication links 7, 8 are available, the repeat sending 140 of unacknowledged data packets 1 always involves the respective other—in comparison with the initial sending 130 of said data packet 1—communication link 7, 8 being chosen for the “repeat data packet transfer” 140.
(67) If the unacknowledged data packet 13 (index number 13, cf.
(68) As a result, the communication mechanism 60 ensures that, particularly when the number of data packets is small, the failure of one communication link 7, 8 does not result in a delay in the data transmission 2 or the transfers 2.
(69) This automatic “repeat data packet transfer” 140 for unacknowledged data packets 1 implicitly results in communication faults or data packet losses being corrected if this is possible within the permissible time limit.
(70) Since no separate acknowledgement messages are necessary or used in the case of the communication mechanism 60 either, there is also no need for special handling in the case of or for the loss of an acknowledgement message.
(71) Fast “repeat data packet transfer” 140 of unacknowledged data packets 1 reduces the transfer time, particularly if a communication link 7, 8 fails during the transmission 2, but on the other hand increases the average number of packets transmitted.
(72) For overall optimization of the bidirectional data transmission 2, sometimes unnecessary repetition of a few data packets is ultimately tolerated in the “both connections OK” case in order to avoid time delays in the “one connection failed” case.
(73) For this purpose, the transfer times and data packet repetitions are measured and logged with different configurations in the specific system configuration 61 for the automation system 62.
(74) (5) Sending of a Final Data Packet 23 and Conclusion/Termination of the Transfer 2 150
(75) If the active communication subscriber 3 recognizes both that it has received—and acknowledged—all data packets 1 from the passive communication subscriber 4 and that its own data packets 1 have been completely acknowledged by the passive communication subscriber 4, it sends what is known as a “final” data packet 23 in order to communicate 150 the successful conclusion of the current transfer 2 (from the point of view of the user) to the passive communication subscriber 4.
(76) However, the passive communication subscriber 4 terminates 150 the (current) transfer 2 with a successful status when all data packets 1 have, from its point of view, been sent and received successfully even when the “final” packet 23 from the active communication subscriber 3 has not been received by it after a prescribed period of time.
(77) The “final” data packet 23 is always sent using both redundant communication links 7, 8 in order to reactivate a communication link 7, 8 that has been recognized as failed for further transfers 2.
(78) This communication mechanism 60 therefore allows implicit error recognition in the case of redundant communication links 7, 8 with simultaneous optimization of the transfer 2 taking account of the currently available communication links 7, 8.
(79) The total transfer time for the transfer 2—optimized by this communication mechanism 60—is no longer obtained for the communication mechanism 60 by adding two separate transfers between the master 3 and the reserve 4 (with one transfer per direction). It is essentially determined by the larger volume of data that is to be transmitted in one of the two directions between the master 3 and the reserve 4.
(80) The optimum number of data packets 1 per unit time or the waiting time after a prescribed number of sent data packets 1 is dependent on the subordinate communication mechanism and can be configured or else adaptively customized on the basis of specific measurements.
(81) Thus, as described, the communication mechanism 60 described advantageously results in short transfer times for the bidirectional data interchange by virtue of the simultaneous transfer of useful data and acknowledgement data in both communication directions, in optimized and efficient data interchange on account of separate acknowledgement messages not being necessary and parallel data transfer, in implicit redundancy handling in the case of communication links that are available multiple times, without additional expenditure on top, in optimum use of the available communication bandwidth for the useful data, in a high level of currentness for the transfer data and in simple implementation on account of the standard data packet structure.
(82) Although the present invention has been disclosed in the form of preferred embodiments and variations thereon, it will be understood that numerous additional modifications and variations could be made thereto without departing from the scope of the invention.
(83) For the sake of clarity, it is to be understood that the use of “a” or “an” throughout this application does not exclude a plurality, and “comprising” does not exclude other steps or elements.