Grundlagen von TCP/IP Falko Dreßler, Regionales Rechenzentrum [email protected] Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 1 Überblick • • • • Historie Architektur von TCP/IP Link Layer IP (Internet Protocol) – – – – • • • • IP-Adressen Subnetze ARP (Address Resolution Protocol) ICMP (Internet Control Message Protocol) TCP (Transmission Control Protocol) UDP (User Datagram Protocol) DNS (Domain Name Service) Routing – Grundlagen • WiN- und REVUE-Netz Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 2 Historie • Situation der 70er Jahre – Proprietäre Protokolle (z.B. DECNET, SNA) • Ziele – Offene Kommunikationsplattform – Zuverlässige Datenkommunikation • Entwicklung – – – – – – Entwickelt von Universität Stanford und Bolt, Beranek und Newman Unterstützt durch DARPA (Advanced Research Project Agency) Erster Einsatz im ARPANET 1982: Einsatz in 4.2BSD UNIX 1983: Alle rechner im ARPANET müssen Internet Protokolle verwenden Heute: ca. 2,5 Mio Endgeräte via Internet miteinander verbunden Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 3 Historie 2 • Mittel der Standardisierung – IAB: Internet Activities Board - plant und koordiniert die Entwicklung des Internet und der InternetProtokolle – IETF: Internet Engeneering Task Force - besteht aus Arbeitsgruppen, in denen die weitere Entwicklung der Internetprotokolle geplant wird. Teil des IAB. – RFC: Internet Request for Comments - die InternetStandards und Entwürfe. Weniger formal als ISOStandards. Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 4 Architektur von TCP/IP • TCP/IP-Schichtenmodell ist älter und einfacher als das ISO-OSI-Referenzmodell: Application Transport Network Link Grundlagen von TCP/IP 1999-11-17 telnet, ftp, http TCP, UDP IP, ICMP, IPv6 Ethernet Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 5 Architektur von TCP/IP 2 • Aufgaben der Schichten – Link Layer: realisiert die physikalische Datenübertragung incl. „Verpackung“ der Daten, Zugriff auf das Netzwerk – Network Layer: Adressierung und Wegbestimmung der Pakete, Fragmentierung – Transport Layer: Datenfluß zwischen Endsystemen, evtl. Übertragungssicherung, Flußsteuerung – Application Layer: Abwicklung der speziellen Anwendung Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 6 Beispiel für die beteiligten Protokolle bei einer ftp-Sitzung Rechner A Rechner B Application Anwendungsprotokoll ftp Transport Transportschichtprotokoll TCP Router Network IP-Protokoll Link IP-Protokoll Netzwerk 1 Grundlagen von TCP/IP 1999-11-17 Network Interface IP-Protokoll IP-Protokoll IP Ethernet-Treiber Netzwerk 2 (Ethernet) Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 7 TCP/IP Protokollsammlung • TCP/IP wird durch mehrere Teilprotokolle realisiert. Man spricht deshalb von einer Protokollsammlung oder einer Protocol-Suite. AnwenderProzeß AnwenderProzeß Application TCP UDP Transport ICMP IP ARP RARP Hardware-Schnittstelle Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] Network Link 8 Link Layer • IP ist auf einer Vielzahl von Medien (mittels RFC) definiert: – Ethernet – FDDI (Fiber Distributed Data Interface) – Asynchron • SLIP (Serial Line IP) • PPP (Point-to-Point Protocol) – Token Ring – ATM (Asynchronous Transfer Mode) • Classical IP over ATM Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 9 IP (Internet Protocol) • • • • • Aufbau von IP-Paketen IP-Adressen Subnetze ARP ICMP Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 10 Aufbau von IP-Paketen HLEN Service Type Total Length FGS Fragment Offset Identification Header Checksum Time To Live Protocol Source IP Address Destination IP Address IP Options (so vorhanden) Padding Data VERS Bedeutung der Felder: • VERS: Versionsnummer (z.Zt. 4) • HLEN: Länge des Paket-Headers in 32 Bit-Worten • Total Length: Länge des ges. Paketes in Bytes (max. 65535) • Identification: eindeutige Kennung eines Paketes • FGS: (Flags) legen fest, ob ein Paket fragmentiert werden darf, etc. • Fragment Offset: Offset des akt. Fragments in Vielfachen von 8 Bytes • Time To Live (TTL): maximale Lebensdauer eines Paketes; wird von jedem Router um 1 erniedrigt; wenn TTL=0, wird das Paket verworfen und eine Fehlermeldung (ICMP) an den Absender geschickt • Protocol: Kennung für das Protokol der übergeordneten Schicht (TCP=6, UDP=17) • Header Checksum: Prrüfsumme für den Paketheader • Source Ip Address: Absenderadresse • Destination IP Address: Zieladresse • IP Options: Optionen • Data: Anwendungsdaten Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 11 Internet Datagram Wichtig: IP ist verbindungslog, d.h. jedes Paket wandert unabhängig von seinem Vorgänger und Nachfolger durch das Netz (Routing). Dabei kann es vorkommen, daß ein Paket in mehrere zerlegt (fragmentiert) und wieder zusammengesetzt werden muß. Weiterhin kann sich die Reihenfolge der Pakete ändern. Rechner B Fragm. 2 Rechner A Paket 1 Fragm. 2 Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 12 IP-Adressen • Ziel: Jede Rechnerschnittstelle muß eindeutig identifizierbar sein. • IP-Adressen sind 4 Byte lang und werden in einen Netzwerk- und einen Rechneranteil gegliedert. • Unterschiedliche Netzklassen: Class A 0 7 Bit Netzid Class B 10 Class C 110 Class D 1110 Class E 11110 24 Bit Hostid 14 Bit Netzid 16 Bit Hostid 21 Bit Netzid 8 Bit Hostid 28 Bit Multicast Groupid Reserviert für spätere Verwendung • Die Universität hat zwei Klasse-B-Netze (131.188.0.0 für die Wissenschaft und 141.67.0.0 für die Medizin sowie mehrere Klasse-CNetze. Für die Wähleingänge wird das nicht nach außen routbare Netz 10.10.0.0 verwendet. Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 13 Subnetze • Ziel: Strukturierung des Adreßraums • Der Adreßraum einer Organisation wird durch eine sogenannte Subnetzmaske aufgeteilt. Die Subnetzmaske legt fest, welche Bits als Netzadresse verwendet werden. Beispiel 1 Beispiel 2 131 188 3 2 Rechner-IP-Adresse 131 188 29 129 255 255 255 0 Subnetzmaske 255 255 255 224 Netzwerk: 131.188.3.0 Rechner: 2 Broadcast: 131.188.3.255 Netzwerk: 131.188.29.128 Rechner: 1 Broadcast: 131.188.29.159 • Alle Bits auf 0 im Hostid-Teil einer IP-Adresse bestimmen die Netzadresse und alle Bits auf 1 im Hostid-Teil ergeben die BroadcastAdresse. Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 14 ARP (Address Resolution Protocol) • • • „The Address Resolution Protocol, ARP, allows a host to find the physical address of a target host on same physical network, given only the target‘s IP address.“ Ziel: Zu einer gegebenen logischen (IP-) Adresse die zugehörige Hardware-Adresse (z.B. MAC-Adresse) ermitteln. Der Ausgangsrechner schickt einen Broadcast mit der gesuchten IP-Adresse los. Der Zielrechner antwortet mit seiner Hardware-Adresse. Wichtig: ARP baut nicht auf IP auf! Zielrechner IP: 131.188.3.150 MAC: 8:0:20:97:1f:60 1. Wer ist 131.188.3.150 ? Ausgangsrechner Zielrechner IP: 131.188.3.150 MAC: 8:0:20:97:1f:60 2. Ich bin 131.188.3.150 mit 8:0:20:97:1f:60 ! Ausgangsrechner Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 15 ICMP (Internet Control Message Protocol) • • • „The Internet Control Message Protocol, ICMP, allows gateways to send error or control messages to other gateways or hosts.“ ICMP-Pakete sind normale IP-Pakete, bei denen das Protokoll-Feld auf 1 gesetzt ist. ICMP-Pakete enthalten ein Typ-Feld und ein Code-Feld, das die Fehlermeldung genauer spezifiziert. Type Field 0 3 4 5 8 11 12 13 14 17 18 Grundlagen von TCP/IP 1999-11-17 Beschreibung Echo Reply Destination Unreachable Source Quench Redirect Echo Request Time Exceeded Parameter Problem Timestamp Request Timestamp Reply Address Mask Request Address Mask Reply Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 16 ICMP 2 • Code Values für „Destination Unrechable“ Code Value 0 1 2 3 4 5 6 7 8 9 10 11 12 Grundlagen von TCP/IP 1999-11-17 Beschreibung Network unreachable Host unreachable Protocol unreachable Port unrechable Fragmentation needed, DF set Source route failed Destination network unknown Destination host unknown Source host isolated Communication with destination network prohibited Communication with destination host prohibited Network unreachable for type of service Host unreachable for type of service Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 17 TCP (Transmission Control Protocol) • • • • • • Erstes Transportprotokoll auf IP Definiert Ende-zu-Ende-Verbindung Bietet gesichtere Übertragung Flußkontrolle mittels Van-Jacobson-Algorithmus Dominiert im Weitverkehrsbereich Stellt eine Datenstromschnittstelle zur Verfügung, die mittels Prozeduren von Applikationen genutzt werden kann Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 18 TCP 2 • Socket-Konzept: Ein Socket dient zur eindeutigen Identifikation eines Dienstes auf einem Rechner • Ein Prozeß (eine Anwendung) wird auf einem Rechner durch eine eindeutige Portnummer identifiziert • Formal: Eine Association (eine TCP-Verbindung) wird durch ein 5-Tupel charakterisiert: {Protokoll; lokale Adresse; lokaler Prozeß; remote Adresse; remote Prozeß} • Beispiel: {tcp; 131.188.3.150; 1022; 131.188.3.40; 22} lisa$ netstat -an | grep 131.188.3.40 131.188.3.150.1022 131.188.3.40.22 17520 131.188.3.150.1011 131.188.3.40.22 17520 Grundlagen von TCP/IP 1999-11-17 0 0 33580 33580 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 0 0 ESTABLISHED ESTABLISHED 19 Beispiele für TCP-Anwendungen • telnet: Ermöglicht den Zugriff auf entfernte Rechner. Eigener Rechner verhält sich wie ein angeschlossenes Terminal. Port 23. • ftp (File Transfer Protocol): Datenübertragung von/zu einem entfernten Rechner. Es werden zwei Verbindungen (für Kommandos und Datenübertragung) aufgebaut. Port 20 (Daten) und 21 (Kommandos). • smtp (Simple Mail Transfer Protocol): Elektronische Post. Port 25. • http (Hypertext Transfer Protocol): Übertragung von WWW-Daten. Port 80. Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 20 Aufbau eines TCP-Pakets Source Port HLEN Reserved Checksum Destination Port Sequence Number Acknowledge Number Code Bits Options Window Urgent Pointer Padding Data • • • • • • Source Port / Destination Port: Prozeßidentifikation auf Quell- und Zielrechner. Sequence Number / Acknowledge Number: dienen der Flußkontrolle HLEN: Länge des Headers in 32 Bit-Worten Window: aktuelle Fenstergröße bei der Datenübertragung Checksum: Prüfsumme (beinhaltet auch einen Teil des IP-Headers) Urgent Pointer: dient zur übertragung von beschleunigten Daten Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 21 TCP - Geschichte einer Verbindung Rechner 1 Rechner 2 Verbindungsaufbau Send SYN seq=x Receive SYN segment Send SYN seq=y, ACK x+1 Receive SYN + ACK segment Send ACK y+1 Receive ACK segment Datenübertragung Send Packet x+1 Receive Packet x+1 Send ACK x+2 Receive ACK x+2 Verbindungsabbau Send FIN seq=x‘ Receive FIN segment Send ACK x‘+1 Receive ACK segment Inform Application Send FIN ACK x‘+1 Receive FIN + ACK segment Send ACK y‘+1 Receive ACK segment Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 22 TCP Zustandsautomat • Zustandsautomaten dienen zur Protkollspezifikation • Die Beschriftungen an den Übergängen bezeichnen das empfangene / gesendete Paket begin closed passive open close active open/syn syn/syn+ack send/syn listen reset syn/syn+ack SYN RECVD SYN SEND ack close/ timeout/ reset fin/ack established CLOSE WAIT close/fin close/fin FIN WAIT-1 close/fin fin/ack closing ack fin/ack ack ack FIN WAIT-2 Grundlagen von TCP/IP 1999-11-17 fin/ack ack TIMED WAIT LAST ACK timeout nach 2 „segment lifetimes“ Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 23 UDP (User Datagram Protocol) • • • • • • • Ungesichertes Transportprotokoll Effizienter als TCP im LAN-Bereich Einsatz für Multimedia-Anwendungen Basis für Client-Server-Lösungen Keine Flußkontrolle Anwendung muß Datenverluste selber behandeln Beispiele: NFS (Network File System), NIS (Network Information System), SNMP (Simple Network Management Protocol) Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 24 DNS (Domain Name Service) • Problem: IP-Adressen sind schwer zu merken • Idee: Einführung symbolischer Namen – Erfordern Umsetzungstabellen – Einführung von Nameservern, die alle Adressen einer Domain auflösen können 1. Welche Adresse hat cssun ? Client 2. cssun hat die 131.188.3.9 ! 3. Hallo 131.188.3.9 ! Nameserver cssun • Neben den primary-Nameservern gibt es noch secondary-Nameserver (Ausfallsicherheit!) • Die Nameserver aller Domains arbeiten weltweit zusammen, um global Adressen aufzulösen. Koordinierung über die root-Nameserver. • Für die Kommunikation auf physikalischer Ebene benötigt man Hardwareadressen. Die Umsetzung erfolgt über ARP. Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 25 Routing • Was ist Routing? – Router können aufgrund der Ziel-IP-Adresse im ankommenden Paket entscheiden, in welche Richtung das Paket weitervermittelt werden soll. • Warum Routing? – Logische (effiziente) Trennung von Subnetzen – Verhinderung von Broadcast-Stürmen – Optimierung der Netzwerkleistung durch automatische Leitungswahl (redundante Anbindung) • Wie wird geroutet? – Statisches Routing: Routingeinträge werden vom Adminstrator von Hand erstellt und verwaltet – Dynamisches Routing: Die Router tauschen Routinginformationen über Routingprotokolle aus. Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 26 Statisches vs. Dynamisches Routing • Dynamisches Routing kann durch falsche Informationen gestört werden • Dynamisches Routing erzeugt Netzlast • Statisches Routing funktioniert nur bei einfachen Netztopologien • Keine Backup-Pfade bei statischem Routing • Statisches Routing ist arbeitsintensiv bei Änderungen • Näheres in „Routing und Routing-Protokolle im FAU-Netz“ Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 27 IP-Routing-Algorithmus Route_IP_DATAGRAM (datagram, routing_table) extract destination IP address, ID, from datagram compute IP address of destination network, IN if IN matches any directly connected network address send datagram to destination over that network; (this involves resolving ID to a physical address (ARP), encapsulate datagram, and sending the frame) else if ID apears as a host specific route route datagram as specified in the table else if ID apears in routing table route datagram as specified in the table else if default route has been specified route datagram to default gateway else declare a routing error Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 28 Routing Tabelle • Tabelle, in der vermerkt ist, welche Netze oder Rechner wie erreichbar sind. 131.188.71.0 131.188.71.15 Destination Distance Route 131.188.3.0 0 Direct 131.188.10.0 0 Direct 131.188.71.0 2 131.188.10.5 131.188.71.15 1 131.188.3.15 Default 131.188.5.3 131.188.71.1 Rechner 1 Router B 131.188.3.15 131.188.3.1 131.188.3.0 131.188.3.250 Router A 131.188.5.1 131.188.5.0 131.188.5.3 Router C • Kann mittels Konfiguration statisch oder mittels Routingprotokollen (Protokolle zum Austausch von Erreichbarkeitsinformationen) dynamisch aufgebaut werden. Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 29 Routingprotokolle • RIP (Routing Information Protocol) – Alle 30 Sekunden werden Broadcasts zum Austausch der Routinginformation ausgelöst. Jeder Router bzw. jedes Endsystem erhält dadurch Informationen über seine direkten Nachbarn. – Es wird eine Routingtabelle erzeugt, in der die Zieladresse mit einer Metrik versehen ist. Diese Metrik ist beim RIP der „hopcount“, also die Anzahl der Systeme, die ein Paket zu diesem Ziel durchlaufen muß. – Der Vorteil von RIP ist seine Einfachheit und seine weite Verbreitung. – Nachteile sind die langsame Konvergenz und eine Unflexibilität, da nur eine Netzmaske und eine Metrik unterstützt wird. Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 30 Routingprotokolle 2 • OSPF (Open Shortest Path First) – Jeder Knoten kennt den kompletten Aufbau des Netzwerks. Er prüft die Erreichbarkeit aller seiner direkten Nachbarn und sendet diese Informationen an alle Knoten im Netz. Aus den eigenen Informationen und denen von allen anderen Knoten findet er mittels des „Shortest Path First“-Algotithmus den kürzesten Weg. – Die Vorteile von OSPF sind eine schnelle Konvergenz, die Unterstützung verschiedener Metriken (z.B. Geschwindigkeit der Leitung) und Netzmasken, sowie eine einfache Problemverfolgung als bei RIP. – Ein Nachteil ist, daß es noch nicht so verbreitet ist, und daß Implementierungen z.T. noch fehlerhaft sind. Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 31 Deutsches Wissenschaftsnetz (B-WiN) • Verbund der deutschen L&F-Gemeinde, Teil des Internet-Backbone • Organisiert und betrieben vom DFN-Verein (Verein zur Förderung des deutschen Forschungsnetzes e.V.) • Mehr als 400 Anschlüsse (128kBit/s, 2MBit/s, 34MBit/s, 155MBit/s), darunter auch ISPs wie XLink, Eunet, ECRC und Nacamar • Netzprotokolle: ATM (PVC) und IP • Anschluß der FAU: 155MBit/s Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 32 REVUE • REchner Verbund Universität Erlangen • Im Augenblick: – – – – In der Wissenschaft: 180 Netze mit 8164 Hosts In der Medizin: 64 Netze und 3048 Hosts 10 Sondernetze Umstrukturierung des Backbone fast abgeschlossen • Backbone über ATM (622MBit/s und 155MBit/s) • Anschlüsse der Institute via ATM, FastEthernet und GigabitEthernet Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 33 Literatur • Douglas E. Comer: Internetworking with TCP/IP. PrenticeHall International. • Walter Richard Stevens: TCP/IP Illustrated Volume 1, The Protocols. Addison-Wesley. • Walter Richard Stevens: TCP/IP Illustrated Volume 2, The Implementation. Addison-Wesley. • Walter Richard Stevens: TCP/IP Illustrated Volume 3, TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols. Addison-Wesley. Grundlagen von TCP/IP 1999-11-17 Falko Dreßler, Universität Erlangen-Nürnberg, RRZE Email: [email protected] 34