Max. Nutzdaten je TCP-Telegramm

TCP-Daten werden über das Ethernet übertragen. Die maximale Blockgröße eines Ethernet-Streams beträgt 1500 Byte, in diesem Zusammenhang spricht man auch von MTU (Maximum Transmission Unit). Die MTU ist bei AMK-Steuerungen auf 1500 Byte eingestellt. Die MTU kann bei Geräten von anderen Herstellern kleiner sein.

 

Im TCP-Telegramm wird ein Header von 20 Byte (+12Byte Options) in den Ethernet-Stream übertragen. Da TCP über das Internetprotokoll (IP) läuft, wird vom IP-Telegramm auch ein Header von 20 Byte mit übertragen. Damit ergibt sich:

 

1500 Byte Ethernet-Stream

- 32 Byte TCP-Header(inklusive Options)

- 20 Byte IP-Header

--------------

= 1448 Byte für Nutzdaten (bei AMK-Steuerungen).

 

Bei Verbindungen mit Geräten von anderen Herstellern, gilt dann:

MTU(Gerät) – 52 Byte = maximale Anzahl der Nutzdaten in einem Telegramm

 

Überschreitet die zu sendende Datenmenge die maximale Anzahl der Nutzdaten (MTU – 52) von einem der beiden Kommunikationspartner, so werden die Daten automatisch in 1448 Byte (Bsp. AMK-Steuerung) große Stücke zerlegt (Segmentierung). Das führt dazu, dass auf der Empfängerseite die gesendeten Daten, abhängig von den zeitlichen Abläufen, auch segmentweise empfangen werden können. Im TCP- und IP-Header wird nicht die gesamte Datenlänge eingetragen, dadurch weiß die Empfangsseite nicht, wie viele Daten gesendet werden, bzw. empfangen werden müssen. Sollen Datenblöcke empfangen werden, die größer als MTU – 52 Byte sind, muss beim Empfang die Länge überprüft werden. Dies kann z.B. mit einem vorangestellten Header geschehen, in dem die Menge der zu empfangenen Daten steht. Der Empfänger weiß dann wie viele Daten zu diesem Paket gehören. Er muss den Empfangsvorgang so oft wiederholen, bis alle Daten eingegangen sind.

 

Beispiel:

 

Bei Beendigung des Datenaustauschs muss der Funktionsbaustein ausgeschaltet werden ('boEnable' = FALSE) um die verwendeten Ressourcen freizugeben.