Beschreibung
Erhöhung der Echtzeitfähigkeit von Ethernetnetzwerken Die Erfindung betrifft ein Verfahren zum Übertragen zumindest eines Ethernetpaketes zwischen einem Sender und einem Empfänger, eine Vorrichtung zur Durchführung eines erfindungsgemäßen Verfahrens sowie ein Netzwerkgerät mit einer derartigen Vorrichtung .
Ein derartiges Verfahren bzw. derartige Vorrichtungen kommen insbesondere auf dem Gebiet der industriellen Kommunikation, z.B. in Fertigungsanlagen, zum Einsatz, bei der zunehmend ethernet-basierte Kommunikationsprotokolle verwendet werden. Die Umstellung von bisherigen Feldbussen (z.B. Profibus, In- terbus) auf Ethernet als Feldbus wird aber dadurch erschwert, dass ein normkonformes Ethernet nach IEEE802.3 in vielen Fäl¬ len die Anforderungen an die Deterministik und Echtzeitfähigkeit nicht erreicht. Der Grund für das schlechte determinis- tische Verhalten von Ethernet nach IEEE802.3 ist die stark schwankende Paketgröße zwischen 64 Bytes und 1522 Bytes (mit VLAN-Tag, jeweils ohne Präambel und SFD, „Start Frame Delimi- ter") , wobei das Hauptproblem bezüglich der Echtzeitfähigkeit die maximale Paketgröße von ca. 1500 Bytes ist. Wurde der Sendevorgang für ein Paket angestoßen, so kann er nicht mehr unterbrochen werden. Die langen Ethernetpakete blockieren daher einen Übertragungskanal für relativ lange Zeit und verzö¬ gern dadurch auch hochpriore Pakete. So belegt ein Ethernet- paket das Übertragungsmedium bei einer Übertragungsrate von 100 Mbit/s für ca. 125 ys . Kurz danach zum Senden bereite Pa¬ kete, auch mit einer höheren Priorität, werden daher solange verzögert, bis das alte Paket vollständig gesendet wurde.
Das Problem wird dadurch weiter verschärft, dass die Verzöge- rung nicht nur am Netzwerkteilnehmer (Netzwerkgerät, Endge¬ rät) , sondern auch an jedem Netzwerkknoten (z.B. Switch) auftritt. Gerade bei der installationsfreundlichen Linientopolo- gie ergeben sich dadurch hohe maximale Verzögerungszeiten,
bei 100 Geräten in Reihe z.B. 12,5 ms. Die Übertragungsdauer für ein Paket kann dann zwischen 0 und 12,5 ms schwanken, für viele EchtZeitanwendungen zu viel. Bei Anwendungen, bei welchen die Deterministik und Echtzeitfähigkeit von IEEE802.3-basierten industriellen Netzwerkprotokollen (wie Ethernet-IP, PROFINET IRT) nicht ausreicht, wurden ethernet-basierte Netzwerkprotokolle definiert, welche nicht mehr kompatibel zu IEEE802.3 sind und damit auch für die Netzwerkkomponenten (Switches) spezielle Komponenten benötigen. Die dafür notwendigen Geräte sind bei weitem nicht so leistungsfähig und flexibel wie Standardkomponenten gemäß IEEE802.3; außerdem sind diese Komponenten teurer, und es wird meist zusätzlich eine spezielle Netzwerkkonfiguration und Netzwerkprojektierung benötigt. Diese Nachteile behindern die Verbreitung von Ethernet in Anwendungen mit hohen Anforderungen an Deterministik und Echtzeitfähigkeit . Die Deterministik erreichen die echtzeitfähigen Protokolle heute durch eine hochgenaue Zeitsynchronisation aller Teilnehmer. Entwe- der wird durch die Zeitsynchronisation ein Zeitmultiplex realisiert (PROFINET IRT, Zeitphasen für die EchtZeitprotokolle und für die anderen Protokolle) oder es werden Zeitstempel in die Protokolle eingebaut (Ethernet-IP, Ethercat) . Das Ether- net-Protokoll an sich bleibt jedoch unverändert. Diese prop- rietären Varianten von Ethernet (PROFINET IRT, Ethercat, Ethernet Powerlink ...) , die sich damit behelfen, dass der zeitliche Zugang der Netzwerkteilnehmer auf das Übertragungs¬ medium geplant wird, benötigen also eine spezielle Hardware in den Netzwerkknoten und Netzwerkteilnehmern und verwenden ein Protokoll, welches inkompatibel zu IEEE802.3 ist.
Der Erfindung liegt die Aufgabe zugrunde, unter Verwendung von IEEE802.3-konformen Netzwerkkomponenten ein hohes Maß an Echtzeitfähigkeit und Deterministik zu erreichen.
Diese Aufgabe wird bei einem Verfahren der eingangs genannten Art dadurch gelöst, dass das jeweilige Ethernetpaket am Sen-
der in eine Anzahl von Ethernetzellen genannte Ethernetpakete mittels einer Ethernetzellen-Einheit segmentiert wird,
- wobei die MAC-Adressen und ein ggf. vorhandener VLAN-Tag des Ethernetpaketes für die Ethernetzellen übernommen wer- den,
- wobei ein EtherType-Parameter und die Nutzdaten des Ethernetpaketes in die Datenbereiche der Ethernetzellen der Reihe nach eingetragen werden,
- wobei sich die Anzahl von Ethernetzellen aus der Menge der Nutzdaten und der Größe der Datenbereiche ergibt,
- wobei die Ethernetzellen dem jeweiligen Ethernetpaket zu- ordenbar gekennzeichnet werden,
- wobei in jeder Ethernetzelle die Anzahl der in den jewei¬ ligen Datenbereichen mit Nutzdaten belegten Bytes vermerkt wird und
- wobei jede Ethernetzelle durch einen EtherType-Parameter als Ethernetzelle ausgewiesen wird,
und dass das Ethernetpaket am Empfänger aus der Anzahl von Ethernetzellen mittels einer Ethernetzellen-Einheit zusammen- gefügt wird.
Die Aufgabe wird weiter gelöst durch eine derartige Ethernet- zellen-Einheit sowie ein Netzwerkgerät mit den in Anspruch 6 bzw. Anspruch 7 angegebenen Merkmalen.
Durch die Segmentierung der Ethernetpakete in Ethernetzellen¬ natürlich mit einer Länge deutlich kleiner als die maximale Paketgröße - wird der eigentliche Grund des Problems, die langen Ethernetpakete, beseitigt. Diese kurzen Ethernetzellen können jetzt von einem normalen IEEE802.3-konformen Netzwerk verarbeitet werden; aufgrund der jetzt geringen Paketlänge werden hochpriore Echtzeitpakete deutlich kürzer verzögert. Zudem benötigt das Verfahren im Gegensatz zu heutigen ether- net-basierten EchtZeitprotokollen kein spezielles Netzwerkma- nagement, sondern nur eine geringfügige Modifikation der End¬ geräte .
Maßgeblich für den Prozess der Segmentierung und des Zusammenfügens ist eine eindeutige Kennung für die Kommunikations¬ beziehung zwischen dem Sender und dem Empfänger, die in
Ethernet schon durch die Source- und Destination-MAC-Adresse bereitgestellt wird. Um ein Echtzeitverhalten zu erreichen, müssen mindestens zwei Prioritätsklassen bereitgestellt wer¬ den, eine für nieder- und eine für hochpriore Telegramme. Für die Prioritätsklassen werden die Prioritätsbits im VLAN-Tag benutzt ( IEEE802. IQ) . Da das gleichzeitige Senden eines nie- der- und hochprioren Telegramms möglich sein soll, ergeben sich pro realisierter Prioritätsklasse zwei Kommunikationsbe¬ ziehungen zwischen Sender und Empfänger.
Die Ethernetzelle enthält Informationen über die Lage der Zelle im Paket - z.B. erste, letzte oder dazwischen; es gibt aber auch andere Segmentierungsverfahren - so dass die Ethernetzellen-Einheit am Empfänger weiß, wann die Übertragung des Paketes vollständig ist. Zudem ist eine Information über die Anzahl der Bytes im Datenbereich vorhanden, die mit Nutzdaten belegt sind, da dieser (bei der letzten Zelle) nicht voll be¬ legt sein muss und die übrigen Bytes z.B. mit „0" aufgefüllt werden .
Das Verfahren zum Segmentieren und Zusammenfügen ist so kon- struiert, dass die Weiterleitung der Pakete (bzw. der Zellen) über in normales IEEE802.3-konformes Netzwerk möglich ist, so dass für das Netzwerk handelsübliche IEEE802.3-konforme Netz¬ werkkomponenten verwendet werden können. Dies bedeutet für den Anwender deutlich niedrigere Kosten und eine deutlich hö- here mögliche Bandbreite. Aktuelle EchtZeitimplementierungen von Ethernet (PROFINET IRT, Ethercat, Ethernet Powerlink ...) sind zumeist auf eine Bandbreite von 100 Mbit beschränkt, der Ethernetstandard bietet inzwischen aber auch kostengünstig Bandbreiten von 1 Gbit oder 10 Gbit an. Die jetzt mögliche Verwendung von Netzwerkkomponenten mit hoher Bandbreite von 1 Gbit oder gar 10 Gbit ermöglicht eine Echtzeitfähigkeit, wel¬ che besser als die der heutigen speziellen Implementierungen ist .
Das Verfahren ist so konstruiert, dass keine spezielle Echt¬ zeitkonfiguration des Netzwerkes notwendig ist. Für den An¬ wender zeigt sich das Netzwerk als ein IEEE802.3-konformes Standard-Ethernetnetzwerk . Durch diesen IEEE802.3-konformen Aufbau des Netzwerkes sind auch alle anderen Mechanismen und Protokolle von Standard-Ethernet , z.B. Redundanz und Netz¬ werkmanagement, nutzbar. Der Anwender kann Echtzeitkommunika- tion auch applikativ ohne explizites Echtzeitprotokoll nut¬ zen. Er muss nur dafür sorgen, dass seine Echtzeittelegramme mit einer hohen Priorität versendet werden. Dadurch kann er die Beschränkungen der gängigen EchtZeitprotokolle in Hinblick auf die Verbindungsmöglichkeiten (z.B. Master / Slave bei PROFINET) umgehen. In einer vorteilhaften Form der Ausgestaltung wird auch die
FCS des Ethernetpaketes in die Datenbereiche der Ethernetzel- len eingetragen. Auf diese Weise kann die Ethernetzellen- Einheit am Empfänger wieder das originale Paket rekonstruie¬ ren - inklusive „Frame Check Sequence" mit der 4 Byte langen CRC, „Cyclic Redundancy Check". Übertragungsfehler und Seg- mentierungs-/Zusammenfügungsfehler werden durch die veränderte CRC des Originalpaketes offenbart, und es greifen die Ethernet-Standardmechanismen . (Die einzelnen Ethernetzellen weisen natürlich - standard-konform - ebenfalls eine FCS bzw. CRC auf.)
In einer weiteren vorteilhaften Ausführungsform werden die Kennzeichnung für die Zuordnung zum jeweiligen Ethernetpaket sowie die Anzahl der mit Nutzdaten belegten Bytes durch ver- schiedene EtherType-Parameter dargestellt. Auf diese Weise können die Informationen bereitgestellt werden, ohne dass hierfür Speicherplatz im ohnehin kleinen Datenbereich benötigt wird. In einer weiteren vorteilhaften Ausführungsform werden die
Kennzeichnung als für die Zuordnung zum jeweiligen Ethernetpaket sowie die Anzahl der mit Nutzdaten belegten Bytes in einer Variablen im Datenbereich der jeweiligen Ethernetzelle
gespeichert. Bei dieser alternativen Ausgestaltung wird zwar 1 Byte des Datenbereichs mit der Variablen belegt, dafür ge¬ nügt ein EtherType-Parameter zur Kennzeichnung des Ethernet- paketes als Ethernetzelle . Der Parameter kann z.B. als Seg- mentation/Reassembly-Status (SRS) bezeichnet werden und wird beispielsweise im ersten Byte des Datenbereiches der Ether- netzellen abgelegt.
In einer weiteren vorteilhaften Ausführungsform werden die Ethernetpakete in Ethernetzellen mit minimal erlaubter Länge segmentiert. Durch diese Verkürzung auf 64 Bytes (ohne Präam¬ bel und SFD) ergibt sich jetzt nur noch eine Verzögerung von ca. 6 ys bei einer Übertragungsrate von 100 Mbit/s (im Ver¬ gleich zu 125 ys bei einem maximalen Ethernetpaket ) . Selbst bei 100 Teilnehmern in einer Linie ergeben sich so nur noch
0,6 ms (statt 12,5 ms) . Bei höheren Übertragungsraten verringern sich diese Verzögerungszeiten natürlich noch einmal deutlich . In einer vorteilhaften Form der Ausgestaltung ist bei einem erfindungsgemäßen Netzwerkgerät die erfindungsgemäße Ether¬ netzellen-Einheit zwischen PHY-Layer und MAC-Layer angeord¬ net. Der Vorgang der Segmentierung in kurze Ethernetzellen und des Zusammenfügens des ursprünglichen Ethernetpakets pas- siert logisch zwischen dem PHY- und dem MAC-Layer. Der MAC- Layer stellt in Senderichtung für jede Prioritätsklasse einen Sendedatenstrom zur Verfügung. Bei mindestens zwei Prioritätsklassen kann ein hochpriores Datenpaket ein bereits im Senden befindliches niederpriores Datenpaket überholen. In Empfangsrichtung empfängt die Ethernetzellen-Einheit die
Ethernetzellen und merkt sich die schon empfangenen Bestandteile des Datenpaketes (des segmentierten Ethernetpaketes ) in der Speichereinheit („Connection RAM"). Ist ein Datenpaket vollständig empfangen (d.h. alle Ethernetzellen des origina- len Ethernetpaketes) , so wird es an den MAC-Layer weiterge¬ leitet .
Im Folgenden wird die Erfindung anhand des in der Figur dargestellten Ausführungsbeispiels näher beschrieben und erläu¬ tert. Die Figur zeigt: eine schematische Darstellung einer Ethernetzellen-
Einheit in einer Netzwerkschnittstelle.
Die Figur zeigt die Integration einer Ethernetzellen-Einheit 1 in den Datenfluss einer normalen Ethernet-Schnittstelle ei- nes Netzwerkgerätes. Wichtig ist, dass die Ethernetzellen- Einheit 1 nur an den Teilnehmeranschaltungen des Netzwerks notwendig ist, das Netzwerk mit den Switches ist weiterhin vollkommen konform zur IEEE802.3. In Senderichtung stellt der MAC-Layer 6 für jede Prioritätsklasse einen Sendedatenstrom zur Verfügung. Bei mindestens zwei Prioritätsklassen - wie in der Darstellung - kann ein hochpriores Datenpaket ein bereits im Senden befindliches niederpriores Datenpaket überholen; werden keine Prioritäts- klassen implementiert, so muss immer das gerade gesendete Da¬ tenpaket fertig gesendet werden. Die Sendeeinheit 2 der
Ethernetzellen-Einheit 1 zerteilt jetzt die langen Ethernet- pakete in die kurzen Ethernetzellen und sendet jeweils die Ethernetzelle mit der höchsten Priorität.
In Empfangsrichtung empfängt die Empfängereinheit 3 der
Ethernetzellen-Einheit 1 die Ethernetzellen und merkt sich die schon empfangenen Bestandteile des Datenpakets in der Speichereinheit 4 („Connection RAM"). Ist ein Datenpaket vollständig empfangen, so wird es an den MAC-Layer 6 weitergeleitet. Befindet sich im Netzwerk ein „normales" (langes, nicht segmentiertes) Ethernetpaket , so wird es direkt weiter¬ geleitet. Normale Ethernetpakete beeinflussen zwar die Echt¬ zeitfähigkeit des Netzwerks negativ, können aber trotzdem durch das Netzwerk mit Ethernetzellen-Einheiten 1 verarbeitet werden .
Aufgrund der jetzt deutlich kürzeren Pakete im Netzwerk von z.B. der Mindestgröße für Ethernetframes von 64 Bytes (ohne Präambel und SFD) ergibt sich jetzt nur noch eine Verzögerung von ca. 6 ys / Knoten, also selbst bei 100 Teilnehmern in ei- ner Linie nur 600 ys . Bis auf die Ethernetzellen-Einheiten 1 an den Teilnehmeranschaltungen ist die komplette restliche Netzwerkinfrastruktur IEEE802.3-konform. Jetzt ist auch die Prioritätssteuerung im VLAN-Tag wirksam, da die Prioritätsentscheidung nach jedem kurzen Paket getroffen werden kann.
Die Ethernetzelle für sich ist ein vollständig IEEE802.3- konformes Paket mit einem festgelegten EtherType, welcher es als Ethernetzelle kennzeichnet. Die Nutzdaten enthalten den Segmentation/Reassembly-Status (SRS) und einen Teil der seg- mentierten Nutzdaten. Der SRS kann alternativ auch durch verschiedene EtherTypes realisiert werden. Für den Segmentation- und Reassembly-Prozess maßgeblich ist eine eindeutige Kennung für die Kommunikationsbeziehung zwischen dem Sender und dem Empfänger, die in Ethernet schon durch die Source- und Desti- nation-MAC-Adressen bereitgestellt wird. Um ein Echtzeitverhalten zu erreichen, müssen mindestens zwei Prioritätsklassen bereitgestellt werden, eine für nieder- und eine für hochpri- ore Telegramme. Für die Prioritätsklassen werden die Prioritätsbits im VLAN-Tag benutzt ( IEEE802. IQ) . Da das gleichzei- tige Senden eines nieder- und hochprioren Telegramms möglich sein soll, ergeben sich pro realisierte Prioritätsklasse zwei Kommunikationsbeziehungen zwischen Sender und Empfänger.
Ethernettelegramme (-pakete) , die keinen VLAN-Tag aufweisen, werden von der Sendeeinheit 2 der Ethernetzellen-Einheit 1 natürlich auch in Ethernetzellen ohne VLAN-Tag segmentiert.
Ethernetzellen (bzw. -pakete) ohne VLAN-Tag haben im Netzwerk die niedrigste Priorität. Der VLAN-Tag ist für die Segmentie¬ rung unerheblich, er wird nur für die Bevorzugung von Ether- nettelegrammen (-paketen) wie z.B. RT-Telegrammen benötigt.
Nachfolgend wird die Aufteilung eines Ethernet-Datenpakets mit 200 Bytes auf Ethernetzellen mit 64 Bytes erläutert. Die gewählte Segmentierung und der Aufbau des SRS sind nur exem-
plarisch. Das Ethernetpaket mit 200 Bytes Nutzdaten enthält zudem für die MAC-Quell- und Zieladressen je 6 Bytes, für den VLAN-Tag 4 Bytes, für den EtherType-Parameter 2 Bytes und nach den Nutzdaten weitere 4 Bytes für die Frame Check Se- quence, FCS, bzw. die CRC, also insgesamt 222 Bytes. Diese neben den Nutzdaten für die Übertragung notwendigen Bytes sind natürlich auch bei den Ethernetzellen vorhanden, so dass bei einer einheitlichen Länge von 64 Bytes noch 42 Bytes für die Datenbereiche übrig bleiben, von denen 1 Byte von dem SRS belegt wird.
Der SRS enthält jetzt die Information über die Lage der
Ethernetzelle im Paket („First", „Body", „Last") und die An¬ zahl der Bytes, welche im Datenbereich übertragen werden. Dies ist notwendig, da der Datenbereich auch weniger als 41 Bytes enthalten kann und dann die restlichen Bytes mit „0" aufgefüllt werden („Padding"). In sechs Ethernetzellen werden die Nutzdaten, der EtherType-Parameter und die CRC des Originalpaketes verpackt (206 Bytes) . Da die Datenbereiche von fünf Ethernetzellen minimaler Größe nur 205 Bytes aufnehmen können, transportiert die letzte Ethernetzelle daher nur 1 Byte anstatt 41 Bytes wie die vorangegangenen Zellen. Alternativ könnte auch die fünfte Ethernetzelle um ein Byte länger gemacht werden, da es für die erfindungsgemäße Lösung nicht notwendig ist, dass die Ethernetzellen eine einheitliche Län¬ ge mit einer Festanzahl von beispielsweise 64 Bytes haben. Die Zellen könnten z.B. zwischen 64 und 80 Bytes lang sein, womit sich immer noch eine hinreichend geringe Verzögerung für hochpriore Ethernettelegramme ergäbe.
Die Eintragung der zu segmentierenden Daten des Ethernetpake- tes in die Datenbereiche der Ethernetzellen erfolgt sinn¬ vollerweise in der Reihenfolge ihres „Auftretens", d.h. in den 41 Bytes großen Datenbereich der ersten Ethernetzelle werden der EtherType-Parameter (2 Bytes) und noch 39 Bytes
Nutzdaten des Ethernetpaketes eingetragen und in die folgenden drei Ethernetzellen je 41 Bytes Nutzdaten. Die fünfte Ethernetzelle transportiert wahlweise die verbleibenden 38
Bytes Nutzdaten sowie noch 3 Bytes der FCS des Ethernetpake- tes - die minimale Paketgröße wird also beibehalten - oder zusätzlich zu den Nutzdaten die vollen 4 Bytes der FCS - die Paketgröße wird also um 1 Byte auf 65 Bytes vergrößert. Im ersten Fall benötigt man natürlich noch - wie oben schon beschrieben - eine sechste Zelle, die das letzte Byte der FCS transportiert, wobei der restliche Datenbereich mit Nullen aufgefüllt wird. Mit diesem Verfahren kann die Ethernetzel- len-Einheit 1 aus den fünf bzw. sechs Ethernetzellen wieder das originale Paket rekonstruieren. Übertragungsfehler und
Segmentierungs-/Reassemblyfehler werden durch die unveränderte CRC des Originalpakets offenbart und es greifen die Ether- net-Standardmechanismen .
Das originale Ethernetpaket mit den 200 Bytes benötigt zum Senden insgesamt 222 Bytes. Es wird durch die Segmentierung in entweder fünf Ethernetzellen mit jeweils 64 Bytes für die ersten vier Zellen und 65 Bytes für die fünfte Zelle oder in sechs Zellen mit jeweils 64 Bytes aufgeteilt, insgesamt wer¬ den jetzt also 321 Bytes bzw. 384 Bytes gesendet. Die um ca. 50 % höhere Datenmenge stellt aufgrund der hohen zur Verfü¬ gung stehenden Übertragungskapazität von 100 Mbit (oder gar bis zu 10 Gbit) heute kein Problem mehr dar. Die heute auf Zeitmultiplex basierenden echtzeitfähigen Ethernetvarianten erreichen durch die nicht vollständig mögliche Ausnutzung der Zeitschlitze auch nicht die theoretisch mögliche Übertra¬ gungskapazität. Da aktuelle EchtZeitimplementierungen von Ethernet zumeist auf eine Bandbreite von 100 Mbit beschränkt ist, ergibt sich durch die jetzt mögliche Verwendung von Netzwerkkomponenten mit höherer Bandbreite eine Echtzeitfä¬ higkeit, welche oft besser als die der heutigen speziellen Implementierungen ist.
Zusammenfassend betrifft die Erfindung ein Verfahren zum Übertragen zumindest eines Ethernetpaketes zwischen einem
Sender und einem Empfänger, eine Vorrichtung zur Durchführung eines erfindungsgemäßen Verfahrens sowie ein Netzwerkgerät mit einer derartigen Vorrichtung. Um unter Verwendung von
IEEE802.3-konformen Netzwerkkomponenten ein hohes Maß an Echtzeitfähigkeit und Deterministik zu erreichen, wird vorge¬ schlagen, das jeweilige Ethernetpaket am Sender in eine An¬ zahl von Ethernetzellen genannte Ethernetpakete zu segmentie- ren und am Empfänger wieder zusammenzufügen. Durch die Segmentierung der Ethernetpakete in Ethernetzellen - natürlich mit einer Länge deutlich kleiner als die maximale Paketgröße - werden hochpriore Echtzeitpakete deutlich kürzer verzögert als durch lange, unsegmentierte Ethernetpakete.