Kurs:Wirtschaftsinformatik WS09 Kommunikationsnetze1/Lernskript/kap8

Grundlegende Eigenschaften von IP-Netzen

*; Paketorientiert, asynchrones Zeitmultiplex

*; Datenpakete mit variabler Länge (IP-Pakete): optimiert für Datenverkehr

*; TCP/IP-Protokolle sind sehr robust: jede Infrastruktur kann für IP-Transport verwendet werden

*; Verbindungslose Kommunikation: ideal für burstartige Kommunikation, aber keine garantierte Dienstgüte möglich (IP+- Verfahren soll in Zukunft Abhilfe verschaffen)

*; Hop-by-Hop Routing: Wegewahl in den Knoten (Routern) erfolgt abschnittsweise

*; Keine Reihenfolgesicherung, IP-Pakete können verloren gehen: Mechanismen zur Behebung sol-cher Fehler müssen bei Bedarf in den höheren Protokollschichten (z.B. TCP) realisiert werden

Das Portkonzept

*; Die Dateneinheiten von TCP (Segmente) und UDP (Datagramme) enthalten jeweils zwei Felder (je 16 Bit), die die Quellanwendung und die Zielanwendung der Daten identifizieren. Diese Adressen werden als Ports bezeichnet.

*; Portnummern kleiner 255 sind für öffentliche, standardisierte Anwendungen reserviert

*; Portnummern von 255 bis 1023 werden an Firmen für kommerziell vermarktete Anwendungen vergeben

*; Portnummern über 1023 sind nicht reguliert und können beliebig verwendet werden

UPD und TCP

*; UDP ist ein einfaches, verbindungsloses (datagramm-orientiertes) Protokoll. Es wird bei UDP keine Reihenfolgesicherung, keine Erkennung und Behebung von Verlusten und keine Flusssteue-rung durchgeführt, lediglich eine Erkennung von Übertragungsfehlern wird (als Option) gewähr-leistet. Die von der Anwendung übergebenen Nutzdaten werden in einem Stück zusammen mit dem UDP-Header an die IP-Schicht übergeben und werden deshalb in der Regel in ein IP-Paket eingebettet bzw. bei Bedarf in der IP-Schicht fragmentiert.

*; TCP ist ein hoch funktionales, verbindungsorientiertes Protokoll zur gesicherten Übermittlung von Byteströmen.

Verbindungsauf- und -abbau

Fehlerbehebung Go-Back-N und SACK

*; Im Zustand ESTABLISHED werden Daten ausgetauscht, wobei alle empfangenen Daten bestätigt werden müssen. Der Datenaustausch erfolgt vollduplex. Damit nicht zu viele Bestätigungsmel-dungen geschickt werden, werden die Acknowledgements verzögert gesendet und zwar entwe-der

*; sofort nach Eintreffen von 2 Daten-Paketen oder

*; 200 ms nach dem letzten Paket,

je nachdem, was zuerst zutrifft. Der ursprüngliche TCP-Standard definierte nur eine normale Be-stätigung (mit Go-Back-N Wirkung), die bei Verlust eines Pakets die Neuübertragung aller bis zum letzen in Reihenfolge empfangenen (und bestätigten) Byte erfordert. Natürlich ist dies nicht be-sonders effizient, da schon erhaltene Daten noch einmal übertragen werden.

*; RFC 2018 definiert daher eine Erweiterung der TCP Acknowledgement-Meldungen, das soge-nannte Selective Acknowledgement (SACK). Dieses ermöglicht es, neben der negativen Quittung für ein verlorenes Segment auch gleichzeitig positive Quittungen für bereits erhaltene Segmente zu senden. Die verlorenen Segmente können dadurch selektiv wiederholt werden, was die Effi-zienz des Verfahrens steigert.

Flusssteuerung

*; TCP verfügt sowohl über eine empfängerbasierte als auch über eine senderbasierte Flusssteue-rung.

*; Zur empfängerbasierten Flusssteuerung sendet jede TCP-Instanz im TCP-Header die Fenstergröße mit die angibt, wie viele Bytes die Instanz noch akzeptieren, d.h. zwischenspeichern, kann ohne dass der Prozess, der die Daten verarbeitet, diese abholt. Wird z.B. ein rwnd-Wert von 1024 übertragen, so darf ein Sender, der dieses Segment empfängt, nur noch maximal 1024 Bytes senden, und muss dann auf ein Acknowledgement warten, bevor er weitere Daten senden darf.

*; Die sendebasierten Flusssteuerung soll ein Netzwerk davor schützen, nach dem Verbindungsauf-bau zu schnell überlastet zu werden. Dazu werden zwei Zustände definiert: Slow Start und Con-gestion Avoidance.