Rechnernetze & Verteilte Systeme (T) Netzprogrammierung/Sockets (P)

Ähnliche Dokumente
Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht

Netzwerk-Programmierung. Netzwerke.

Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette.

Netzwerke. Netzwerk-Programmierung. Sven Hartmeier.

11. Foliensatz Betriebssysteme und Rechnernetze

TCP/IP-Protokollfamilie

11. Foliensatz Betriebssysteme und Rechnernetze

SCHICHTENMODELLE IM NETZWERK

Netzwerke. Netzwerk - Programmierung. Alexander Sczyrba. Madis Rumming.

Systeme II 5. Die Transportschicht

Das ISO / OSI -7 Schichten Modell

Systeme II. Christian Schindelhauer Sommersemester Vorlesung

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne)

Abschlussklausur. Computernetze. Bewertung: 16. Mai Name: Vorname: Matrikelnummer:

Projekt: Web-Server. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2014

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne)

Mobilkommunikationsnetze - TCP/IP (und andere)-

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

TCP. Transmission Control Protocol

Rechnernetze I. Rechnernetze I. 2 Protokolle und Protokollhierharchie. SoSe 2018

Angewandte IT-Sicherheit Vorlesung im Herbstsemester 2006/2007 Prof. F. Freiling

TCP/IP. Protokolle Lokale Netze und Internet. Michael Kalinka

Themen. Dienste der Transportschicht. 3-Wege-Handshake. TCP-Protokoll-Header. Real-Time-Protocol

TCP-Verbindungen und Datenfluss

Peer-to-Peer- Netzwerke

Rolf Wanka Sommersemester Vorlesung

Rechnernetze Übung 11. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012

Kommunikationsmuster (T) Interprozesskommunikation (T) Kommunikation über Pipes (P) Parserspezifikation und -generierung (P)

Client-Server - Grundlagen

Die Transportprotokolle UDP und TCP

KN Das Internet

Rechnernetze I. Rechnernetze I. 2 Protokolle und Protokollhierharchie SS 2012

Lehrveranstaltung Rechnernetze Einschub für das Labor

Rechnernetze Übung 11

Gebäudeautomatisierung mit Android und dem Raspberry Pi. Sergej Knaub, Thomas Stickel

Internetanwendungstechnik. TCP/IP- und OSI-Referenzmodell. Gero Mühl

Die ITU-T-Empfehlung X.25

Netzwerkarchitekturen. Überblick. Interessante Netzeigenschaften. Verteilte Systeme Prof. Dr. Stefan Fischer. Schichtenmodelle, Protokolle und Dienste

Damit zwischen den verschiedenen Rechnern überhaupt ein Austausch möglich ist, muss man sich über das was und wie verständigen.

Verteilte Systeme Prof. Dr. Stefan Fischer. Überblick. Interessante Netzeigenschaften. TU Braunschweig Institut für Betriebssysteme und Rechnerverbund

Rechnerkommunikation II

Transportschicht. Veranstaltung. Vortragender. Rechnernetze 1. Rüdiger Busch

Grundlagen TCP/IP. C3D2 Chaostreff Dresden. Sven Klemm

7.4 Kommunikation. großzügige Pufferung, sowohl Auftragsbeziehungen als auch Nachrichten- oder Byte-Ströme, sowohl lokal als auch übers Netz

Rechnernetze I SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 23.

Die Transportprotokolle: Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Die Socket-Schnittstelle

Rechnernetze I SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 8.

Transportschicht. Einleitung Transmission Control Protocol, RFC793. Transportschicht

Konsequenz für Forwarding Tabellen

Transportprotokolle. TCP - Transmission Control Protocol

Netzwerkgrundlagen. OSI-Modell. Layer 1 Physikal Layer. Layer 2 Data Link Layer. Layer 3 Network Layer

Peer-to-Peer- Netzwerke

IP Internet Protokoll

Inhaltsverzeichnis. 1 Einleitung... 1

Protokolle und Schichten. Grundlagen der Rechnernetze Einführung 41

Die Transportprotokolle: Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Die Socket-Schnittstelle

Protokollgraph. Host 1. Host 2. Protokoll 2. Protokoll 1. Protokoll 3. Protokoll 4. Grundlagen der Rechnernetze Einführung 46

Inhaltsverzeichnis. Vorspann 15

Das TCP/IP Schichtenmodell

Das ISO/OSI Referenzmodell Internet (TCP/IP) Referenzmodell. Standard Elemente Schichten im ISO/OSI Referenzmodell.

Prof. Dr. Kerstin Uhde Hochleistungsnetze u. Mobilkommunikation. Hochschule Bonn-Rhein-Sieg. Modul 4: IPv4

Institut für Informatik der Ludwig-Maximilians-Universität München Prof. Dr. D. Kranzlmüller, Dr. N. gentschen Felde. Probeklausur

Netzwerkprotokolle. Physikalische Verbindungsebene Datenübertragungsebene

Fachbereich Medienproduktion

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015

Netzwerktechnologien 3 VO

J-1 Überblick. 1 Binden von Sockets. Besprechung 6. Aufgabe (jsh) Domain, z. B. (PF_ = Protocol Family) Byteorder bei Netzwerkkommunikation

Transportprotokolle im TCP/IP- Referenzmodell

Offene Gebäudeautomation Summer School. Kommunikationsprotokolle EMR. Beuth Hochschule für Technik Berlin

Vorlesung: Netzwerke (TK) WS 2011/12 Kapitel 5 Ende-zu-Ende-Protokolle Session 15

Fakultät Informatik Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur. Diplomverteidigung

Universität Innsbruck, Wirtschaftsinformatik Proseminar zur Vorlesung Einführung in die Wirtschaftsinformatik

Transportschicht (Schicht 4) des Internet

Netze. Topologien. Kriterien für Netzwerke. 8. Kapitel Über die Grenze: Rechner in Netzwerken

Rechnernetze I. Rechnernetze I. 2 Protokolle und Protokollhierharchie SS 2014

Gruppen Di-T14 / Mi-T25

Virtuelle Kommunikation. Anwender. Physikalische Kommunikation. "Veredelung" des Dienstes

Internet Modell. Nothing stated. Bildquelle: Andrew S. Tanenbaum, Computer Networks, Fourth Edition, 2003 Grundlagen der Rechnernetze Einführung 50

.NET Networking 1. Proseminar Objektorientiertes Programmieren mit.net und C# Matthias Jaros. Institut für Informatik Software & Systems Engineering

Übungsblatt 10. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Adressierung in der Vermittlungsschicht)

6. Die Transportschicht. 6.1 Architektur der Transportprotokolle im Internet 6.2 UDP (User Datagram Protocol) 6.3 TCP (Transmission Control Protocol)

Der Internet Layer. Internet layer/ip. Internet Protocol (IP) Internet Control Message Protocol (ICMP) Routing Information Protocol (RIP)

Computerforensik. Prof. Dr. Silke Draber Fachhochschule Bonn Rhein Sieg. Vorlesung SS Einführung in TCP/IP

UDP-, MTU- und IP- Fragmentierung

Grundkurs Datenkommunikation

ARP, ICMP, ping. Jörn Stuphorn Bielefeld, den 4. Mai Mai Universität Bielefeld Technische Fakultät

Netzwerke und Ihre Protokolle

Grundkurs Datenkommunlkation

Das Internet-Protocol. Aufteilung von Octets. IP-Adressformat. Class-A Netzwerke. Konventionen für Hostadressen

Teil 4: Datenkommunikation

Teil 4: Datenkommunikation

Inhaltsverzeichnis. Teil I TCP/IP-Grundlagen Einführung... 11

Chapter 11 TCP. CCNA 1 version 3.0 Wolfgang Riggert,, FH Flensburg auf der Grundlage von

Transkript:

Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 07.01. Foliensatz 7 Rechnernetze & Verteilte Systeme (T) Netzprogrammierung/Sockets (P) Thomas Schaaf, Nils gentschen Felde Lehr- und Forschungseinheit für Kommunikationssysteme und Systemprogrammierung

Interprozesskommunikation Überblick: Interprozesskommunikation (stark abstrahiert) -Pipes und FIFOs: P1 Pipe P2 -Signale: P1 PT P2 BS-Kern -Speicherbasierte Kommunikation (Shared Memory-Konzept): Shared Memory-Segment P1 P2 -Netzbasierte Kommunikation (TCP/IP): P1 Netz/Internet Netz/Internet P2 Heute 2

Protokolle Protokoll definiert "Regeln für den Informationsaustausch" Teile einer Protokolldefinition: -Verwendete Codes -Nachrichtenlänge -Nachrichtenformat -Form der Adressierung -Bestätigungen -u.a. 3

Geschichtete Protokolle Geschichtete Protokolle -Grundidee: Verschiedene Protokollebenen (statt ein allumfassendes Protokoll) -Teilprotokolle: Kümmern sich jeweils um einen bestimmten Teil der Kommunikation Bauen aufeinander auf Setzen bestimmte gegenseitige Schnittstellen voraus -Geschichtete Teilprotokolle bilden einen Protokollstapel (Stack) Interoperabilität -Konsortien/Gremien definieren herstellerübergreifende Standards/Normen -Wichtige Gruppe: OSI (Open Systems Interconnection) 4

OSI-Architekturmodell 5

Das OSI-Schichtenmodell (1) OSI 7 6 5 4 3 2 1 Application Layer (Anwendungsschicht) Presentation Layer (Darstellungsschicht) Session Layer (Kommunikationssteuerungsschicht) Transport Layer (Transportschicht) Network Layer (Vermittlungsschicht) Data Link Layer (Sicherungsschicht) Physical Layer (Bitübertragungsschicht) Open System Interconnection (OSI) Basisreferenzmodell der International Standards Organisation (ISO) 7 Schichten (layers) Jede Schicht repräsentiert eine Funktion, kein Protokoll Kommunikation über Protokolle 6

Das OSI-Schichtenmodell (2) 7

OSI- und Internet-Schichtenmodell 7 6 5 4 3 2 1 OSI Application Layer (Anwendungsschicht) Presentation Layer (Darstellungsschicht) Session Layer (Kommunikationssteuerungsschicht) Transport Layer (Transportschicht) Network Layer (Vermittlungsschicht) Data Link Layer (Sicherungsschicht) Physical Layer (Bitübertragungsschicht) Internet Anwendungsschicht Transportschicht Vermittlungsschicht Netzanschlussschicht 8

Ethernet Protokoll des Physical- und Data Link Layers (Schichten 1 und 2) Spezifiziert in RFC 894 Identifikation über eindeutige MAC-Adresse -6 Bytes lang -Ersten 3 Bytes beinhalten Herstellerkennung -Folgenden 3 Bytes sind fortlaufende Nummer -Beispiel: 00:0A:E4: 12:C4:62 (Intel) (Nummer) Spezielle Adressen sind reserviert Bsp.: ff:ff:ff:ff:ff:ff für Broadcast Medienzugang nicht streng geregelt -Jeder darf senden, falls er das Medium als frei betrachtet -Medienzugangsverfahren CSMA/CD (Carrier Sense, Multiple Access, Collision Detection) 9

Der Ethernet-Header 16 Bit 32 Bit Type MAC-Adresse des Ziel-Rechners MAC-Adresse des Quell-Rechners Daten (46 1.500 Bytes) Ethernet-Prüfsumme (CRC) Beispiele für den Type - 0800: Daten - 0806: ARP - 0835: RARP Prüfsumme: CRC-32 als Generatorpolynom 10

Repeater und Switches Repeater -Arbeitet auf Netzanschlussebene -Nimmt Signale auf, gibt sie an alle angeschlossenen Stationen weiter -Verstärkung/Rekonstruktion der Datenimpulse Switch -Ähnlich dem Repeater -Filterung des Datenverkehrs nach MAC-Adresse -Überprüft Pakete auf Korrektheit (CRC-Check) -Vorteil: erhöhte Performanz -Nachteile z.b. bei Fehlersuche 11

OSI- und Internet-Schichtenmodell 7 6 5 4 3 2 1 OSI Application Layer (Anwendungsschicht) Presentation Layer (Darstellungsschicht) Session Layer (Kommunikationssteuerungsschicht) Transport Layer (Transportschicht) Network Layer (Vermittlungsschicht) Data Link Layer (Sicherungsschicht) Physical Layer (Bitübertragungsschicht) Internet Anwendungsschicht Transportschicht Vermittlungsschicht Netzanschlussschicht 12

Das Internet Protocol (IPv4) 32 Bit Adressen (4 Byte) Gängige Schreibweise: Dotted-Decimal Bsp.: 192.168.218.43 IP-Adresse besteht aus 2 Teilen: -Netzadresse -Hostadresse Längen von Netz- und Hostadresse variieren Längen von Netz- und Hostadresse spezifiziert durch Netzmasken -CIDR (Classless Inter-Domain Routing, RFC 1519) -Ebenfalls 32 Bit -Durch AND-Verknüpfung von IP-Adresse mit Netzmaske ergibt sich die Netzadresse -Durch XOR-Verknüpfung der Netzadresse mit der IP-Adresse ergibt sich die Hostadresse 13

Beispiel IP-Adresse: 192.168.218.43 (11000000.10101000.11011010.00101011) Netzmaske: 255.255.255.0 (11111111.11111111.11111111.00000000) 11000000.10101000.11011010.00101011 AND 11111111.11111111.11111111.00000000 ---------------------------------------- 11000000.10101000.11011010.00000000 (192.168.218.0) -> Netzadresse 11000000.10101000.11011010.00000000 XOR 11000000.10101000.11011010.00101011 ---------------------------------------- 00000000.00000000.00000000.00101011 (0.0.0.43) -> Hostadresse 14

IPv4-Netze und reservierte Bereiche Klasse Netzadresse Standard Netzmaske Reservierte Netze A {0 127}.0.0.0 255.0.0.0 bzw. /8 0.0.0.0 10.0.0.0 127.0.0.1 Default-Route privater Adressbereich Loopback-Interface B {128 191}.xxx.0.0 255.255.0.0 bzw. /16 172.{16 31}.0.0 privater Adressbereich C {192 223}.xxx.xxx.0 255.255.255.0 bzw. /24 192.168.xxx.0 privater Adressbereich D, E {224 255}.xxx.xxx.xxx spezielle Multicast-Adressen bzw. reserviert für zukünftige Zwecke 15

Aufbau des IPv4-Headers 4 Bit 4 Bit 8 Bit 16 Bit Version TTL Headerlänge Type of Service Länge des Datagramms in Byte ID Flags Offset des Fragments Protokoll der Transportschicht IP-Adresse des Quell-Rechners Header-Prüfsumme 20 Bytes IP-Adresse des Ziel-Rechners Optionen (falls vorhanden) Daten des IP-Protokolls 16

OSI- und Internet-Schichtenmodell 7 6 5 4 3 2 1 OSI Application Layer (Anwendungsschicht) Presentation Layer (Darstellungsschicht) Session Layer (Kommunikationssteuerungsschicht) Transport Layer (Transportschicht) Network Layer (Vermittlungsschicht) Data Link Layer (Sicherungsschicht) Physical Layer (Bitübertragungsschicht) Internet Anwendungsschicht Transportschicht Vermittlungsschicht Netzanschlussschicht 17

Transmission Control Protocol (TCP) Protokoll des Transport Layers (Schicht 4) Spezifikation - Ursprünglich in RFC 793 - Bugfixes in RFC 1122 - Erweiterungen in RFC 1323 IP Protokoll-Nummer: 6 Zuverlässige Datenübertragung - Positive Acknowledgement with Retransmission (PAR) - Prüfsumme zur Fehlererkennung Reihenfolgesicherung durch Initial Sequence Numbers (ISN) Verbindungsorientiert - 3-Way Handshake - Beidseitiger Verbindungsabbau Fair gegenüber anderen Datenströmen - Sendefenster-Mechanismus - slow start / congestion control - Keine weitere Betrachtung Es existieren diverse Implementierungen mit unterschiedlichen Charakteristika 18

TCP-Ports Bietet Multiplexing-/Demultiplexing-Schnittstelle zur Netzebene Ports charakteristisch für einige Dienste Ursprünglich waren nur Ports <1024 reserviert Einige well known ports : - 20: FTP (data) - 21: FTP (control) - 22: SSH - 23: telnet - 25: SMTP - 53: DNS - 80: HTTP - 110: POP-3-137-139: diverse NETBIOS ports - 445: Microsoft DS Offizielle Liste unter: http://www.iana.org/assignments/port-numbers oder unter Unix: cat /etc/services 19

Aufbau des TCP-Headers 4 Bit 6 Bit 6 Bit 16 Bit Portnummer des Absenders Portnummer des Empfängers Headerlänge reserviert TCP-Prüfsumme Sequenznummer (SYN-ISN) Bestätigungsnunmmer (ACK-ISN) FIN SYN RST PSH ACK URG Optionen (falls vorhanden) Fenstergröße Urgent-Pointer 20 Bytes Daten des TCP-Protokolls 20

TCP-Verbindungsauf- und -abbau Client:1045 Server:23 SYN 1415531521 Segment 1 Segment 2 SYN 1823083521, ACK 1415531522 ACK 1823083522 Segment 3 Datenkommunikation FIN 25431, ACK 52372 Segment 4 Segment 5 ACK 25432 Segment 6 FIN 52372, ACK 25432 ACK 52373 Segment 7 21

User Datagram Protocol (UDP) Protokoll des Transport Layers (Schicht 4 ) Spezifiziert in RFC 768 IP Protokoll-Nummer: 17 Verbindungslos -Kein Verbindungsaufbau -Kein Verbindungsabbau Nachteile: -Nicht reihenfolgegesichert -Keine zwingende Fehlererkennung -Keine Flusskontrolle bzw. Retransmissions Vorteile: -Wenig Overhead -Einfache Schnittstelle zur Netzwerkebene -Multiplexing/Demultiplexing durch Ports 22

Aufbau des UDP-Headers 16 Bit 16 Bit Portnummer des Absenders UDP-Datagramm Länge Portnummer des Empfängers UDP-Prüfsumme 8 Bytes Daten des UDP-Protokolls Länge: Angabe in Bytes inkl. 8-Byte Header Prüfsumme ist optional! 23

Sockets (1) Idee: Informationen zwischen (entfernten) Rechnern/Prozessen austauschen Definition: Ein Socket ist ein Kommunikationsendpunkt auf Softwareebene, der eine spezifische Schnittstelle zwischen einem Anwendungsprogramm und dem Transportmedium darstellt. Socket-Arten -Stream-Socket (SOCK_STREAM): Zuverlässiger, verbindungsorientierter Bytestrom mit Sequencing und Fehlerkorrektur -Datagramm-Socket (SOCK_DGRAM): Unzuverlässige, verbindungslose Paketübertragung ohne Sequencing und ohne Fehlerkorrektur 24

Sockets (2) Socket-Adressierung -Socket-Domäne: vom Socket verwendete Protokollfamilie Nur Sockets der gleichen Domäne können miteinander kommunizieren -Domänen: PF_UNIX, PF_LOCAL: Unix-Adresse Nachteil: keine entfernte Kommunikation PF_INET: IP-Adresse (IPv4: 32 Bits) + Portnummer (16 Bits) PF_INET6: IP-Adresse (IPv6: 128 Bits) + Portnummer (16 Bits) Wir betrachten: Sockets der Internet-Domäne (Internet- Sockets) 25

Netzprogrammierung (1) Die Struktur struct sockaddr_in struct sockaddr_in { short sin_family; unsigned short sin_port; // Portnummer struct in_addr sin_addr; // Struktur für IP-Adresse char sin_zero[8]; // zum Auffüllen der Struktur, // damit alle Socket-Adressen // mind. 16 Bytes groß sind }; struct in_addr { unsigned long saddr; // IP-Adresse }; -wird durch Einbinden von netinet/in.h verfügbar Client/Server-Prinzip -Client und Server sind Rollen -Server: bietet (mindestens) einen Dienst an, wartet passiv auf eine Anfrage -Client: sucht aktiv nach einem Server, dessen Dienst er benötigt 26

Netzprogrammierung (2) Systemaufrufe für Sockets Funktionssignaturen: siehe man-pages 27

Netzprogrammierung (3) Beispiel: Iterativer Socket-Server (socksrv.c) #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> int main() { // 1. Socket anlegen int sock = socket(pf_inet, SOCK_STREAM, 0); // 2. Binden einer Adresse an den Socket struct sockaddr_in server; server.sin_family = PF_INET; server.sin_addr.s_addr = INADDR_ANY; server.sin_port = htons(4711); bind(sock, (struct sockaddr *) &server, sizeof(server)); // 3. Verbindungen akzeptieren listen(sock, 5); // 4. Auf Anfragen warten struct sockaddr_in client; int fd, client_len; client_len = sizeof(client); fd = accept(sock, (struct sockaddr *) &client, &client_len); } return 0; 28

Netzprogrammierung (4) Bemerkungen zum Beispiel -Zwei Filedeskriptoren: sock: Rendezvous-Deskriptor akzeptiert neue Verbindungen, nicht relevant für Ein-/Ausgabe fd: Verbindungsdeskriptor ermöglicht die Kommunikation mit dem Client -Systemfunktion htons(): transformiert die Portnummer in Network-Byte-Order 29

Zusammenfassung Das ISO-OSI-Referenzmodell Der Internet-Protokollstapel Das Verbindungsprotokoll IP Adressen und Ports Die Transportprotokolle TCP und UDP Socket-Arten und Adressierung Systemaufrufe für Sockets 30