Method for establishing a stream, method for providing stream identification information, domain name system (DNS) server, device computer program and computer-readable medium
11533344 · 2022-12-20
Assignee
Inventors
- Thomas FISCHER (Erlangen, DE)
- Stephan Höme (Schwabach, DE)
- Konstantin Jung (Feucht, DE)
- Harald Albrecht (Nuremberg, DE)
Cpc classification
H04L65/65
ELECTRICITY
H04L67/12
ELECTRICITY
International classification
H04L65/65
ELECTRICITY
Abstract
A method for establishing a stream in a Time-Sensitive Networking (TSN) network, wherein a request message is sent by a stream subscriber to a Domain Name System (DNS) server, upon which entries are stored that each comprise a stream identifier of a first type assigned to a stream, and a stream identifier of a second type that is different from the first type and is assigned to the respective stream, and the specification of a predefined type exclusively used for, or forms these types of entries, where the request message comprises a stream identifier of the first type and the predefined type known to the at least one stream subscriber, where the stream subscriber receives a response message from the DNS server, which contains a stream identifier of the second type belonging to the stream, and where the stream subscriber logs on to the stream using the stream identifier obtained.
Claims
1. A method for establishing a stream in a Time-Sensitive Networking (TSN) network, the method comprising: sending, by at least one stream subscriber seeking to at least one of (i) send data via the stream to at least one further stream subscriber and (ii) receive data via the stream from at least one further stream subscriber, a request message to a Domain Name System (DNS) server upon which entries are deposited which each comprise a TSN stream identifier of a first type assigned to a stream and a TSN stream identifier of a second type comprising a multicast media access control (MAC) address, which is different than said TSN stream identifier of the first type, assigned to a respective stream and an indication of a stipulated type which is used exclusively for these types of entries, and the request message comprising at least one TSN stream identifier of the first type, which is known to the at least one stream subscriber, and the stipulated type; receiving from the DNS server, by the at least one stream subscriber, a response message which contains the TSN stream identifier of the second type comprising the multicast MAC address associated with the stream; and utilizing the received TSN stream identifier of the second type comprising the multicast MAC address associated with the stream by at least one stream subscriber to register on the stream.
2. The method as claimed in claim 1, wherein at least one of (i) the TSN stream identifier of the first type is a stream name utilized by the at least one stream subscriber to identify the stream and (ii) the TSN stream identifier of the second type comprising the multicast MAC address is a stream ID utilized by the network to identify the stream.
3. The method as claimed in claim 1, wherein a size of the TSN stream identifier of the first type indicated in bits exceeds a size of the stream identifier of the second type comprising the multicast MAC address indicated in bits.
4. The method as claimed in claim 2, wherein a size of the TSN stream identifier of the first type indicated in bits exceeds a size of the TSN stream identifier of the second type comprising the multicast MAC address indicated in bits.
5. The method as claimed in claim 1, wherein at least one of (i) the request message is sent as a DNS query and (ii) the response message is sent as a DNS query.
6. The method as claimed in claim 1, wherein entries stored on the DNS server comprise resource records distinguished by a stipulated type.
7. The method as claimed in claim 1, wherein at least one further stream subscriber sends to the DNS server at least one update message comprising an entry for the DNS server which contains at least one TSN stream identifier of the first type and at least one TSN stream identifier of the second type comprising the multicast MAC address for the stream and an indication of the stipulated type.
8. The method as claimed in claim 1, wherein a central location sends to the DNS server at least one update message comprising an entry for the DNS server which contains at least one TSN stream identifier of the first type and at least one TSN stream identifier of the second type comprising the multicast MAC address for the stream and an indication of a stipulated type.
9. The method as claimed in claim 7, wherein the entry from the update message comprises not only the TSN stream identifiers of the two types and the indication of the stipulated type but also at least one of (i) a class, a Time-To-Live (TTL) indication and a resource data (RDATA) area having a preferred size of 64 bits.
10. The method as claimed in claim 8, wherein the entry from the update message comprises not only the TSN stream identifiers of the two types and the indication of the stipulated type but also at least one of (i) a class, a Time-to-Live (TTL) indication and a resource data (RDATA) area having a preferred size of 64 bits.
11. The method as claimed in claim 7, wherein the entry from the update message is configured such that the TSN stream identifier of the first type is at a beginning each time and is followed by a type, a class, a Time-to-Live (TTL) indication and a resource data (RDATA) area.
12. The method as claimed in claim 8, wherein the entry from the update message is configured such that the TSN stream identifier of the first type is at a beginning each time and is followed by a type, a class, a Time-to-Live (TTL) indication and a resource data (RDATA) area.
13. The method as claimed in claim 10, wherein the entry from the update message is configured such that the TSN stream identifier of the first type is at a beginning each time and is followed by the type, the class, the TTL indication and the RDATA area.
14. The method as claimed in one of claim 7, wherein the TSN stream identifier of the second type comprising the multicast MAC address is indicated in a resource data (RDATA) area of the entry.
15. The method as claimed in claim 7, wherein the update message is sent to the DNS server in the form of a DNS update.
16. The method as claimed in claim 1, wherein the at least one stream subscriber comprises a subscriber of a distributed application.
17. The method as claimed in claim 1, wherein the TSN network comprises at least one node, and the TSN stream identifier of the second type comprising the multicast MAC address is stored in the at least one node of the TSN network.
18. A method for providing stream identifier information, the method comprising: providing at least one stream identifier file on a Domain Name System (DNS) server; wherein the stream identifier file includes entries each comprising a in a Time Sensitive Networking (TSN) stream identifier of a first type assigned to a stream and a TSN stream identifier of a second type comprising a multicast media access control (MAC) address, which is different than said TSN stream identifier of the first type, assigned to the respective stream and the indication of a stipulated type which is utilized exclusively for these types of entries.
19. A Domain Name System (DNS) server for providing a stream identifier file, comprising: a processor; and memory; wherein the stream identifier file comprises entries that each comprise a in a Time Sensitive Networking (TSN) stream identifier of a first type assigned to a stream and a TSN stream identifier of a second type comprising a multicast media access control (MAC) address, which is different than said TSN stream identifier of the first type, assigned to the respective stream and the indication of a stipulated type that is used exclusively for these types of entries.
20. A device comprising: a processor; and memory; wherein the device is configured to: send a request message to a Domain Name System (DNS) server upon which entries are deposited which each comprise a Time Sensitive Networking (TSN) stream identifier of a first type assigned to a stream and a TSN stream identifier of a second type comprising a multicast media access control (MAC) address, which is different than said TSN stream identifier of the first type, assigned to the respective stream and the indication of a stipulated type which is utilized exclusively for these types of entries, and the request message comprising at least one TSN stream identifier of the first type, which is known to the device, and the stipulated type; receive from the DNS server a response message which contains a TSN stream identifier of the second type comprising the multicast MAC address associated with the stream; and utilize the received TSN stream identifier of the second type comprising the multicast MAC address to connect to an associated stream.
21. The device as claimed in claim 20, wherein at least one of (i) the TSN stream identifier of the first type comprises a stream name utilized by the device to identify the stream and (ii) the TSN stream identifier of the second type comprising the multicast MAC address further comprises a stream ID utilized by a TSN network to identify the stream.
22. The device as claimed in claim 20, wherein the device is further configured to at least one of (i) send the request message as a DNS query and (ii) receive a response message as a DNS query.
23. The device as claimed in claim 21, wherein the device is further configured to at least one of (i) send the request message as a DNS query and (ii) receive a response message as a DNS query.
24. The device as claimed in claim 20, wherein the device is further configured to send to the DNS server update messages which include an entry for the DNS server that contains at least one stream identifier of the first type and at least one stream identifier of the second type for a stream and an indication of the stipulated type.
25. A non-transitory computer-readable medium encoded with program instructions which, when executed by a processor on at least one computer, prompt the at least one computer to establish a stream in a Time-Sensitive Networking (TSN) network, the program instructions comprising: program code for sending, by at least one stream subscriber seeking to at least one of (i) send data via the stream to at least one further stream subscriber and (ii) receive data via the stream from at least one further stream subscriber, a request message to a Domain Name System (DNS) server upon which entries are deposited which each comprise a TSN stream identifier of a first type assigned to a stream and a TSN stream identifier of a second type comprising a multicast media access control (MAC) address, which is different than said TSN stream identifier of the first type, assigned to a respective stream and an indication of a stipulated type which is used exclusively for these types of entries, and the request message comprising at least one TSN stream identifier of the first type, which is known to the at least one stream subscriber, and the stipulated type; program code for receiving from the DNS server, by the at least one TSN stream subscriber, a response message which contains the TSN stream identifier of the second type comprising the multicast MAC address associated with the stream; and program code for utilizing the received TSN stream identifier of the second type comprising the multicast MAC address by at least one stream subscriber to register on the stream.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Further features and advantages of the present invention will become clear from the description below of embodiments according to the invention with reference to the accompanying drawings, in which:
(2)
(3)
(4)
(5)
DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS
(6)
(7) The network comprises a multiplicity of subscribers connected via multiple network nodes in the form of TSN-compatible switches, which are not shown in highly simplified
(8) During operation of the automation installation, the PLC 1 cyclically conveys control values to the I/O device 2 in a sufficiently known manner and the actuator cyclically affects a technical process, which is not depicted further, in accordance with the control values.
(9) The data transmission between the PLC 1 and the I/O device 2 needs to occur in real time. Specifically, it is necessary to ensure that the data leaving the PLC 1 arrive at the I/O device 2 without losses in each case after a stipulated time. This is possible as a result of the establishment of a TSN stream, i.e., a protected communication connection between the two subscribers 1, 2.
(10) The PLC 1 sending the data is a talker (sender) and the I/O device 2 is a listener (receiver).
(11) The control process, which requires a data interchange between the PLC 1 and the I/O device 2 in real time with guaranteed quality of service (QoS), can also be deemed a distributed TSN application, with part of the application running on the PLC 1 and part on the I/O device 2. In
(12) Applications identify individual streams to time-sensitive networks (TSN), more precisely to the “TSN control plane”, via associated stream identifiers, in particular what are known as stream IDs. From the point of view of TSN, these are bit strings having a length of 64 bits without an internal structure.
(13) So that two or more stream subscribers 1, 2 can connect to a common stream using the same stream ID, the subscribers 1, 2 need to know the stream's associated identifier for the control plane, i.e., the stream ID.
(14) In the TSN architecture, the stream IDs for stream identification are deliberately chosen to be comparatively short at just 64 bits. This is attributable to the fact that, for technical reasons, all stream IDs of all streams established in a network need to be known in all involved nodes, such as switches, in each case. If longer stream IDs were used, the memory budget in the nodes would quickly be exhausted or exceeded.
(15) The short length means that stream IDs have to date been subject to “shortage management”, which always necessitates a close comparison of the occupancy. This can be prevented via manual management of the stream IDs, by creating an Excel table. This is associated with not inconsiderable complexity, however. Automated management is in particular also desirable to be able to add new TSN applications 3, 4 in a network simply via “plug and play” without the need for renewed overall planning of the stream IDs.
(16) This is made possible in the present case by an embodiment of the method in accordance with the invention for establishing a stream.
(17) Specifically, two different types of stream identifiers are used to identify the streams, i.e., a stream identifier of a first type, which in the present case is a stream name used by the two stream subscribers 1, 2 to identify the stream, specifically an owner name in accordance with RFC 1034 assigned to the stream, which can be distinguished by a size of up to 2040 bits, for example. The stream owner name is known to each of the two stream subscribers 1, 2. In
(18) Additionally, a stream identifier of the second type is used, which is the stream ID having a length of 64 bits, in accordance with IEEE standard 802.1Qat, which is used in the control plane of the TSN network to identify streams.
(19) Splitting the identifiers in two on the application and control planes affords the great advantage that firstly the control plane can continue to use stream identifiers of comparatively short length that require storage in all of the nodes involved, and this ensures that the memory budget is not exceeded. The control plane of TSN can thus continue to work with short and hence memory-optimized stream IDs that are automatically replicated by TSN in all involved TSN switches.
(20) Secondly, long stream names can be used by the application, i.e., in the TSN application plane. These require storage only in the individual devices 1, 2, but not in all of the nodes involved. The required memory space for handling a few, therefore longer, identifiers is therefore available in the devices 1, 2. This allows the name space to be deliberately only “thinly occupied” and collisions to be elegantly avoided. This principle is known from the domain name system (DNS) (see in particular RFC 1034 and 1035), for example.
(21) The longer stream identifiers of a first type for the applications and the shorter stream identifiers of a second type for TSN are assigned in accordance with the present invention by accessing a name service server 6. In the presently described exemplary embodiment, this is a DNS server 6, which is depicted in
(22) So that assignment using the DNS server 6 is possible, the DNS server 6 stores stream identifier information in addition to the information required for the conventional name service. The stream identifier information additionally available on the DNS server 6 is indicated in
(23) In the presently described exemplary embodiment, the DNS server 6 specifically stores a stream identifier file comprising the additional information. The stream identifier file may be provided, for example, as a zone file in particular in accordance with RFC 1034 and 1035 or as a file created based on such a file, or else may have a different format.
(24) The stream identifier file comprises entries in the form of resource records (RR) that each link a stream identifier of a first type assigned to a stream, in the present case the stream owner name, and a stream identifier of a second type, which is different than said stream identifier of a first type, assigned to the respective stream, in the present case the stream ID used in the TSN control plane, and that each comprise the indication of a stipulated type “TSN” that is used on the name service server 6 exclusively for this type of entries.
(25) The resource records (RR) of the new type “TSN” are established as follows: 1. owner: domain name, see RFC 1034 2. type (16-bit): “TSN”—the precise value is expediently assigned by the IANA in the course of a standardization by the IETF 3. class (16-bit): “IN”, see RFC 1034. 4. TTL (32-bit): as defined in RFC 1034. 5. RDATA: 64-bit TSN stream ID (stream identifier) in what is known as network order, that is to say with the most significant octet first, the most significant bit being counted as bit 0(!) according to IETF convention.
(26) It should be noted that the new fields compared to the resource records (RR) previously known from the prior art are highlighted in bold in this list. Previously known resource records are obtained from RFC 1025, for example.
(27) An example of a resource record in this form would be: rocket-launcher.coyote.acme.corp. TSN IN deadbeefcafebabe
with the stream owner name “rocket-launcher.coyote.acme.corp”, chosen only by way of illustration, in the form of a fully qualified domain name (FQDM) and a 64-bit stream ID, likewise chosen purely by way of illustration as “deadbeefcafebabe”, in hexadecimal notation in the RDATA area of the resource record.
(28) It should be noted that the above-described example does not show a value for the TTL (“Time to Live”). This can be 600, for example, corresponding to a TTL of 10 minutes, or else may be different. This value is significant only for DNS caching, but not TSN.
(29) The manner in which the stream identifier information was provided in the DNS will be discussed in more detail later on.
(30) In order to discover the stream ID associated with the stream, both the PLC 1 and the I/O device 2 send a request message 8 to the DNS server 6. This is done specifically in the form of a DNS query. In
(31) The request messages 8 each comprise the stream identifier of the first type, which is known to the PLC 1 and the I/O device 2, in the form of the stream owner name 5 and the stipulated type “TSN”.
(32) For the stream name indicated above by way of illustration the request would be
(33) DNS QUERY:
(34) rocket-launcher.coyote.acme.corp. TSN IN
(35) It should be noted that in the present case the PLC 1 and the I/O device 2 know the same stream owner name 5 as stream identifier of a first type. This is not necessarily the case, however. Instead, different subscribers may also know different stream identifiers of a first type for a stream. Multiple resource records then exist for a stream ID as stream identifier of a second type, specifically one RR for each stream identifier of a first type.
(36) In response to the DNS query, both the PLC 1 and the I/O device each receive from the DNS server 6 a response message, in the present case likewise in the form of a DNS query. The response message is shown in
(37) In the presently described exemplary embodiment, the PLC 1 and the I/O device 2 each comprise a stream ID module 10 configured to handle the sending of request messages 8 and the receiving of response messages 9, i.e., the DNS queries. The stream ID module 10 is appropriately configured for this purpose. The stream ID module 10 may be purely software-implemented, for example, where the software can then run in particular on general hardware of the devices 1, 2 that is present anyway, or else may be purely hardware-implemented, in particular by hardware specifically intended for the module 10, or else may comprise a combination of software and hardware, in particular hardware specifically intended for the module 10.
(38) The response message 9 received from the DNS server 6 comprises the stream ID associated with the stream. This is taken from the response message 9 by the stream ID module 10 and it is subsequently possible for the PLC 1 and the I/O device 2 to register on the stream using the associated stream ID, and data can be transmitted from the PLC 1 to the I/O device 2 via the stream in real time. The registration on the stream can also be handled via the stream ID module 10, which is then appropriately configured.
(39) It should be noted that, for example, the reservation of resources at the nodes involved and the subsequent transmission or forwarding of data packets can occur exactly in the manner sufficiently well-known from the prior art, which is why these aspects are not discussed more thoroughly.
(40) In the present case, the stream identifier information in the form of the standardized zone file in particular in accordance with RFC 1034 and RFC 1035 was delivered by an engineering tool that was used to set up the network in which the devices 1, 2 depicted in
(41) This is depicted purely schematically in
(42) By way of example, it is also possible for a direct transfer of DNS data to be effected using the DNS UPDATE operation, in particular in accordance with RFC 2136 “Dynamic Updates in the Domain Name System (DNS UPDATE)”.
(43) As an alternative or in addition to an engineering tool being used, a file containing stream identifier information can also be provided by a central online tool and subsequently transmitted to the name service server 6, in particular via a DNS UPDATE operation in accordance with RFC 2136.
(44)
(45) As an alternative to the stream identifier information being conveyed to the DNS server 6 from a central location, the information may also have been conveyed, or can be continually conveyed, to the server 6 locally, by network subscribers that are stream subscribers, likewise via DNS updates. By way of example, it may be that in this manner the identifiers associated with the stream are or have been communicated at least to the respective stream initiator, i.e., to the subscriber announcing or initiating the stream in the network, not via the DNS server 6 but rather in another way.
(46) The stream initiator can then convey to the name service server at least one update message that comprises an entry for the name service server that contains at least one stream identifier of a second type, in particular stream ID, and one or more stream identifier(s) of a first type, in particular domain or owner name.
(47) This can be effected in particular via a DNS update, for example, in accordance with RFC 2136. If each stream initiator conveys the data to a name service server in this way, the data can be retrieved by other subscribers.
(48) The process of DNS UPDATES by a stream initiator is indicated purely schematically in
(49) The DNS UPDATE performed by the PLC 1 that is the stream initiator is depicted by a block element provided with the reference sign 13 beside an arrow pointing from the PLC 1 to the DNS server 6. The DNS UPDATE for the (local) provision of TSN or stream information in the name service is handled by the stream ID module 10 of the PLC 1, which is appropriately configured. The PLC 1 already knows the stream ID. As a result, the PLC 1 no longer requires a DNS query for querying it, as in the scenario shown in
(50) The I/O device 2 performs a DNS query, however, precisely as in the scenario shown in
(51) It should be noted that a stream can be initiated either by a talker or by a listener in principle, i.e., the stream initiator may be provided by a talker or listener. In situations with multiple listeners receiving data from precisely one talker or with multiple talkers sending data to precisely one listener, the “single” subscriber, i.e., one talker that has multiple listeners, or one listener for which there are multiple talkers, will be the stream initiator in each case.
(52) Regardless of how the information about the stream identifiers was provided in the DNS server 6, it holds that the use of the new TYPE of entries that was introduced specifically for this purpose, in particular resource records, means that a particularly simple update is possible (in particular in comparison with stream identifier information being stored in resource records of TXT type).
(53) The conditional update of the TSN information is simplified because the condition now relates to the TSN information specifically enough instead of to TXT RRs far too unspecifically. Moreover, no further TSN-specific subdomains are absolutely necessary.
(54) An update can have the following appearance, for example:
(55) DNS UPDATE:
(56) ZONE:
(57) coyote.acme.corp. SOA IN
(58) PREREQUISITES:
(59) (Empty RDATA area signals that there is not yet a requirement or intention for an RRset to exist for TSN).
(60) rocket-launcher.coyote.acme.corp. TSN IN (empty)
(61) UPDATES:
(62) rocket-launcher.coyote.acme.corp. TSN IN deadbeefcafebabe
(63) ADDITIONALS:
(64) An entry from an update message can accordingly comprise not only the stream identifiers of the two types and the indication of the stipulated type but also a class and/or a TTL indication and/or an RDATA area having a size of preferably 64 bits. It may be established, for example, such that the stream identifier of the first type is at the beginning each time and this is followed by the type, the class, the TTL indication and the RDATA area with the stream ID. An example of this is provided by “rocket-launcher.coyote.acme.corp. TSN IN deadbeefcafebabe”.
(65) If the DNS UPDATE is successful, then there is a guarantee that no other information was inadvertently affected and that no other DNS client has itself inadvertently damaged these new data. (Repeated) follow-up for control purposes is unnecessary.
(66) If this DNS UPDATE fails then a single subsequent DNS QUERY can be used to read and immediately use the TSN stream ID already deposited earlier:
(67) DNS QUERY:
(68) rocket-launcher.coyote.acme.corp. TSN IN
(69) The response TSN RR(s) contain(s) the stream ID(s) sought.
(70) The approach in accordance with the disclosed embodiments of the invention additionally makes it possible, in the course of establishment of an application, for only one or more stream identifiers of a first type to be accessed at first and for the link to a stream identifier of the second type to be made practically only “at the last minute” by using the name service server. This allows the (planning) processes for the stream identifiers of a first and a second type to be decoupled from one another in terms of organization and time. Identifiers of a first type can therefore be already pre-specified before the final identifiers of a second type that are to be used in the TSN control plane are specified.
(71)
(72) Next, a response message 9, which contains a stream identifier of the second type associated with the stream, is received by the at least one stream subscriber 1, 2 from the DNS server 6, as indicated in step 420.
(73) Next, the received stream identifier is utilized by at least one stream subscriber 1, 2 to register on the stream, as indicated in step 430.
(74) Although the invention has been illustrated and described more thoroughly in detail by the preferred exemplary embodiment, the invention is not limited by the disclosed examples, and other variations can be derived therefrom by a person skilled in the art without departing from the scope of protection of the invention.
(75) By way of example, it should be understood that even though
(76) It is also therefore possible for more than one stream to be established in a network by performing the method in accordance with the disclosed embodiments of invention.
(77) Thus, while there have been shown, described and pointed out fundamental novel features of the invention as applied to a preferred embodiment thereof, it will be understood that various omissions and substitutions and changes in the form and details of the methods described and the devices illustrated, and in their operation, may be made by those skilled in the art without departing from the spirit of the invention. For example, it is expressly intended that all combinations of those elements and/or method steps which perform substantially the same function in substantially the same way to achieve the same results are within the scope of the invention. Moreover, it should be recognized that structures and/or elements and/or method steps shown and/or described in connection with any disclosed form or embodiment of the invention may be incorporated in any other disclosed or described or suggested form or embodiment as a general matter of design choice. It is the intention, therefore, to be limited only as indicated by the scope of the claims appended hereto.