Grundzüge der Datenkommunikation Grundlagen von TCP/IP Falko Dressler Regionales Rechenzentrum [email protected] Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, 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) Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, 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 – 1968 Beginn der Entwicklung eines Paket-Vermittlungssystems durch die DARPA (Defense Advanced Research Projects Agency) – gleichzeitig Entwicklungen im „Xerox Palo Alto Research Center“ (PARC) – 1972: ARPANET wird vorgestellt, unterstützt durch die DARPA Erster Einsatz im ARPANET – 1983: Alle Rechner im ARPANET müssen TCP/IP verwenden – 1984: 4.2BSD und UNIX System V mit TCP/IP-Unterstützung – Heute: ca. 20 Mio Endgeräte via Internet miteinander verbunden Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, 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 Internet-Protokolle. Gliedert sich in: • IETF: Internet Engineering Task Force • IRTF: Internet Research Task Force • beide bestehen aus Arbeitsgruppen, in denen die weitere Entwicklung der Internetprotokolle vorangetrieben wird – RFC: Internet Request for Comments - die Internet-Standards Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 4 Architektur von TCP/IP • TCP/IP-Schichtenmodell ist älter und einfacher als das ISO-OSIReferenzmodell: Application Transport Network Link Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 telnet, ftp, http TCP, UDP IP, ICMP, IPv6 Ethernet Falko Dressler, 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 und Flußsteuerung – Application Layer • Abwicklung der speziellen Anwendung Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 6 Beispiel für die beteiligten Protokolle bei einer ftp-Sitzung Rechner A Rechner B Anwendungsprotokoll Application Transportschichtprotokoll Transport Network Link ftp Router IP-Protokoll Link-Protokoll Netzwerk 1 Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Network Link IP-Protokoll Link-Protokoll TCP IP Ethernet Netzwerk 2 (Ethernet) Falko Dressler, 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ß TCP UDP ICMP IP Application Transport ARP Hardware-Schnittstelle Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 RARP Network Link Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 8 Link Layer • IP ist auf einer Vielzahl von Medien (mittels RFC) definiert: – Ethernet (FastEthernet, GigabitEthernet) – 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 • LAN Emulation Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 9 Link Layer 2 Preambel Rahmenbegrenzer Zieladresse Quelladresse Aufbau eines Ethernet V.2 Frames Beispiele für den Typ: Typenfeld Daten IP ARP IPX 0x0800 0x0806 0x8137 Prüfsumme Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 10 IPv4 (Internet Protocol Version 4) • • • • • Aufbau von IP-Paketen IP-Adressen Subnetze ARP ICMP Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 11 Aufbau von IP-Paketen Total Length VERS HLEN Service Type FGS Fragment Offset Identification Header Checksum Time To Live Protocol Source IP Address Destination IP Address IP Options (so vorhanden) Padding Data 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 Protokoll der übergeordneten Schicht (TCP=6, UDP=17) • Header Checksum: Prüfsumme für den Paket-Header • Source IP Address: Absenderadresse • Destination IP Address: Zieladresse • IP Options: Optionen • Data: Anwendungsdaten Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 12 Internet Datagram Wichtig: IP ist verbindungslos, 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 A Fragm. 2 Rechner B Paket 1 Fragm. 1 Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 13 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 Netz-Id Class B 10 Class C 110 Class D 1110 Class E 11110 • 24 Bit Host-Id 14 Bit Netz-Id 16 Bit Host-Id 21 Bit Netz-Id 8 Bit Host-Id 28 Bit Multicast Group-Id 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 KlasseC-Netze. Für die Wähleingänge wird das nicht nach außen routbare Netz 10.10.0.0 verwendet. Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 14 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 254 0 Subnetzmaske 255 255 255 224 Netzwerk: 131.188.2.0 Rechner: 258 Broadcast: 131.188.3.255 • Netzwerk: 131.188.29.128 Rechner: 1 Broadcast: 131.188.29.159 Alle Bits auf 0 im Host-Id-Teil einer IP-Adresse bestimmen die Netzadresse und alle Bits auf 1 im Host-Id-Teil ergeben die Broadcast-Adresse. Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 15 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! 1. Wer ist 131.188.3.150 ? Zielrechner IP: 131.188.3.150 MAC: 8:0:20:97:1f:60 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 Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 16 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 Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 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 Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 17 ICMP 2 • Code Values für „Destination Unreachable“ Code Value 0 1 2 3 4 5 6 7 8 9 10 11 12 Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Beschreibung Network unreachable Host unreachable Protocol unreachable Port Unreachable 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 Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 18 TCP (Transmission Control Protocol) • • • • Erstes Transportprotokoll auf IP Definiert Ende-zu-Ende-Verbindung Bietet gesicherte Übertragung Flußkontrolle mittels Van-JacobsonAlgorithmus • Dominiert im Weitverkehrsbereich • Stellt eine Datenstromschnittstelle zur Verfügung, die mittels Prozeduren von Applikationen genutzt werden kann Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 19 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 Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 0 0 33580 33580 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 0 0 ESTABLISHED ESTABLISHED 20 Beispiele für TCP-Anwendungen • ssh (Secure Shell): Ermöglicht den Zugriff auf entfernte Rechner. Eigener Rechner verhält sich wie ein angeschlossenes Terminal. Port 22. • 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. Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 21 Aufbau eines TCP-Pakets Source Port HLEN • • • • • • Destination Port Sequence Number Acknowledge Number Reserved Code Bits Window Checksum Urgent Pointer Options 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 Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 22 TCP - Geschichte einer Verbindung Rechner 1 Send SYN seq=x Rechner 2 Verbindungsaufbau Receive SYN segment Send SYN seq=y, ACK x+1 Receive SYN + ACK segment Send ACK y+1 Receive ACK segment Send Packet x+1 Datenübertragung Receive Packet x+1 Send ACK x+2 Receive ACK x+2 Send FIN seq=x‘ Verbindungsabbau 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 Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 23 TCP Zustandsautomat • • Zustandsautomaten dienen zur Protokollspezifikation Die Beschriftungen an den Übergängen bezeichnen das empfangene / gesendete Paket begin closed passive open syn/syn+ack close active open/syn send/syn listen reset syn/syn+ack SYN RECVD ack close/fin FIN WAIT-1 FIN WAIT-2 CLOSE WAIT close/fin close/fin fin/ack closing fin/ack ack fin/ack Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 close/ timeout/ reset fin/ack established ack SYN SEND ack TIMED WAIT LAST ACK ack timeout nach 2 „segment lifetimes“ Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 24 UDP (User Datagram Protocol) • • • • ungesichertes Transportprotokoll effizienter als TCP im LAN-Bereich keine Flußkontrolle Anwendung muß Datenverluste selber behandeln • Einsatz für Multimedia-Anwendungen Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 25 Beispiele für UDP-Anwendungen • NFS (Network File System) • NIS (Network Information System) • SNMP (Simple Network Management Protocol) • RTP (Realtime Transport Protocol, für Multimedia over IP Anwendungen) Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 26 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 • Für die Kommunikation auf physikalischer Ebene benötigt man Hardwareadressen. Die Umsetzung erfolgt über ARP. 1. Welche Adresse hat cssun ? Client 2. cssun hat die 131.188.3.9 ! 3. Hallo 131.188.3.9 ! Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Nameserver cssun Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 27 DNS 2 • Aufteilung der „Welt“ in Zonen. • Zonen weiter unterteilt: – Top-level-Zonen: z.B. „de“ für Deutschland oder „uk“ für GB – Second-level-Zonen: z.B. „uni-erlangen.de“ oder „bhn.de“ – weitere Unterteilung möglich • Die Nameserver aller Domains arbeiten weltweit zusammen, um global Adressen aufzulösen. Koordinierung über die root-Nameserver. • Neben den primary-Nameservern (verantwortlich für einzelne Zonen) gibt es noch secondary-Nameserver (Ausfallsicherheit!) Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 28 Routing • Was ist Routing? – Kommunikation der Rechner via IP nur im lokalen Subnetz – Spezialrechner (Router) als Gateways zwischen diesen Subnetzen – Router entscheiden anhand der Ziel-IP-Adresse im ankommenden Paket, wie dieses Paket weitervermittelt werden soll. (1), (2) (3) (5) (4) Host A Router Host B 1. Host A stellt fest, daß Host B nicht im selben Netz 2. Host A ermittelt ‚next-hop‘ über seine Routing-Tabelle 3. Host A schickt Paket an ‚next-hop‘, also an den Router 4. Router stellt fest, daß Host B im selben Netz 5. Router liefert Paket an Host B aus Fall (4) nicht zutreffen würde, würde der Router bei (2) fortfahren Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 29 Routing 2 • 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: Routing-Einträge werden vom Administrator von Hand erstellt und verwaltet – Dynamisches Routing: Die Router tauschen RoutingInformationen über Routingprotokolle aus. Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 30 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 und fehleranfällig Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 31 Literatur • Douglas E. Comer: Internetworking with TCP/IP. Prentice-Hall 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. Grundzüge der Datenkommunikation Grundlagen von TCP/IP 2003-04-30 Falko Dressler, Universität Erlangen-Nürnberg, RRZE EMail: [email protected] 32