Rechnernetze BA Dresden :: 3MI11-1 :: Jan/Feb 2013 Vorlesung 2.3: Die OSI-Schicht 4 Josef Spillner <[email protected]> OSI-Schicht 4: Transport Aufgaben der Transportschicht ● ● ● ● Zuverlässige Ende-zu-Ende-Verbindung Unabhängigkeit von Unzuverlässigkeiten auf der Vermittlungsschicht, z.B. plötzliche Routenänderungen Fehlerbehandlung und Flusskontrolle auf der Ende-zu-Ende-Verbindung Aushandlung von DienstgüteEigenschaften Datentransport im Internet Fokus auf Zuverlässigkeit ● Transmission Control Protocol (TCP) Fokus auf Durchsatz und Latenz ● User Datagram Protocol (UDP) Differenzierte Schwerpunktsetzung ● Internet Stream Protocol (ST) ● Stream Control Transmission P. (SCTP) ● Reliable Data Protocol (RDP), u.a. Spezialprotokolle nicht für Datentransport Portnummern für Dienste Einige Protokolle definieren: 1 Host ≙ n Ports Anwendungsdienste können > 1 Port belegen Portangabe in TCP, UDP: n = 16 Bit = 65536 Transportprotokollangabe in IP: 8 Bit = 256 Standardisierung: UNIX: IANA protocol-numbers /etc/protocols \drivers\etc\protocol IANA service-names/port-numbers /etc/services Windows: \drivers\etc\services UDP User Datagram Protocol [RFC 768] Lightweight UDP [RFC 3828] ● teilweise beschädigte Daten werden zugestellt anstatt verworfen TCP Transmission Control Protocol [RFC 793 + Ergänzungen] SCTP Stream Control Transmission Protocol [RFC 4960] (Chunks) Anwendungen ● zuverlässige, geordnete Einzelnachrichten ST & RDP Internet Stream Protocol [RFC 1819] ● experimentell, aktuelle Version ST2+ ● Ende-zu-Ende-Echtzeitgarantien ● nicht vollständig in IP integrierbar Reliable Data Protocol [RFC 908] ● experimentell ● zuverlässig, aber nicht sequenzgetreu ● einfacher als TCP Übungsaufgaben Welche fünf grundlegenden Systemschnittstellen sind für TCP definiert? Welche hingegen für UDP? Wie läuft der dreistufige TCP-„Handschlag“ zwischen Client und Server ab? Welche Ports sind für RDP zulässig? Was drücken B/E-Bits in SCTP-Chunks aus? Übungsaufgaben 2 Wie ist „Transport Layer Security“ (TLS) in die OSI-Schichten bzw. in die Transportprotokolle einzuordnen? Werkzeugunterstützung OSI 4 Verbindungen bzw. belegte Ports anzeigen ● netstat (aus dem Paket net-tools) Beispiel: Übersicht über Serveranwendungen % netstat -ltp Aktive Internetverbindungen (Nur Server) Proto RcvQ SndQ LA FA State PID/Program name tcp *:* LISTEN 2293/apache2 0 0 localhost:http # “Protokolle”: tcp, tcp6, udp, udp6, raw, unix, ... Werkzeugunterstützung OSI 4 Verbindungen aufbauen ● netcat (auf Client und Server) Beispiel: Client-Server-Verbindung H1% netcat -l -p 5000 H2% netcat localhost 5000 > Hallo, Welt. # Parameter: -u # Parameter: -U <socketdatei> Werkzeugunterstützung OSI 4 Verbindungen weiterleiten ● ● socat morebalance (Web: morebalance.coolprojects.org) Beispiel: transparente Komprimierung | 10000:local use localhost as 10001:compress | 10001:compress use localhost as 10002 % ./morebalance * Cluster: localhost [port 10000 (local)] [-> port 10001 (compress)] Werkzeugunterstützung OSI 4 Verbindungen analysieren ● iptraf, tcpdump, ngrep (textorientiert) ● etherape, wireshark (grafisch) Beispiel: Netzwerkverkehr über WLANSchnittstelle überwachen % ngrep -d wlan0 -W byline % tcpdump -i wlan0 Zusammenfassung VL 2.3 Aufgaben der Transportschicht Datentransport im Internet Internettransportprotokolle Werkzeugunterstützung Quellen + Literatur [Pa12] J. Pattloch, Topologie des X-Win, Online-Publikation zum DFNWissenschaftsnetz [OE13] The Organisation for Economic Co-operation and Development (OECD): Internetgrafik, OECD-Webseite [He11] Mathias Helminger, Interactive visualization of global routing dynamics, Bachelorarbeit TU München [Gü13] D. Gütter, Rechnernetzpraxis, Vorlesung TUD