Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette.

Ähnliche Dokumente
Netzwerke. Netzwerk-Programmierung. Sven Hartmeier.

TCP/UDP. Transport Layer

UDP-, MTU- und IP- Fragmentierung

TCP/IP-Protokollfamilie

Grundkurs Routing im Internet mit Übungen

Programmieren mit sockets

Grundlagen TCP/IP. C3D2 Chaostreff Dresden. Sven Klemm

Internet - Grundzüge der Funktionsweise. Kira Duwe

KN Das Internet

2.3 Applikationen. Protokolle: TCP/IP. Telnet, FTP, Rlogin. Carsten Köhn

Vorwort Vorwort zur deutschen Übersetzung... 11

Breitband ISDN Lokale Netze Internet WS 2009/10. Martin Werner, November 09 1

IP Adressen & Subnetzmasken

Netzwerkprogrammierung

Die Transportprotokolle UDP und TCP

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

TCP. Transmission Control Protocol

Internet Routing am mit Lösungen

Router 1 Router 2 Router 3

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

15 Transportschicht (Schicht 4)

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells.

7 TCP/IP-Dienste konfigurieren

IP-Netzwerke und Protokolle

VS3 Slide 1. Verteilte Systeme. Vorlesung 3 vom Dr. Sebastian Iwanowski FH Wedel

Vorlesung SS 2001: Sicherheit in offenen Netzen

Vorlesung 11: Netze. Sommersemester Peter B. Ladkin

TCP/IP Protokollstapel

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze

7. OSI-Modell als Rollenspiel

Computeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet

Transportschicht (Schicht 4) des Internet

Client-Server-Prinzip

IPv4 - Internetwork Protocol

4. Network Interfaces Welches verwenden? 5. Anwendung : Laden einer einfachen Internetseite 6. Kapselung von Paketen

Anmeldung über Netz Secure Socket Layer Secure Shell SSH 1 SSH 2. Systemverwaltung. Tatjana Heuser. Sep Tatjana Heuser: Systemverwaltung

Lehrveranstaltung Rechnernetze Einschub für das Labor

Transportschicht. Einleitung Transmission Control Protocol, RFC793. Transportschicht

Vorab: Überblick TCP. Grundeigenschaften Punkt-zu-Punkt-Verbindung Streaming-Schnittstelle

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1)

Transmission Control Protocol (TCP)

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

Domain Name Service (DNS)

Netzwerkprotokolle. Physikalische Verbindungsebene Datenübertragungsebene

Rechnernetze und -Organisation Michael Hutter Karl C. Posch.

TCP/IP. Internet-Protokolle im professionellen Einsatz

UNIX-Rechnernetze in Theorie und Praxis

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

TCP/IP Troubleshooting

Einführung in TCP/IP. das Internetprotokoll

Das ISO / OSI -7 Schichten Modell

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

Internetprotokoll TCP / IP

IPv6 Chance und Risiko für den Datenschutz im Internet

Firewall-Versuch mit dem CCNA Standard Lab Bundle

Network Address Translation (NAT) Warum eine Übersetzung von Adressen?

Internetzugang Modul 129 Netzwerk Grundlagen

Network Address Translation (NAT) Prof. B. Plattner

Grundlagen der Rechnernetze. Internetworking

Internet-Protokolle. Seminar im Grundstudium NWI Technische Fakultät. Universität Bielefeld.

Adressauflösung. IP Adresse Physikalische Adresse :FF:AA:36:AB: :48:A4:28:AA:18

Klausur - Computernetzwerke

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Hinweise. Weiterhin wird in dieser Veranstaltung von der IP-Version 4 ausgegangen. ITSec WS Teil 1/Wiederholung

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

Grundlagen des Datenschutzes und der IT-Sicherheit. Lösungen des 6. Übungsblattes Netzwerk-Sicherheit

Telekommunikationsnetze 2

Dirk Becker. OpenVPN. Das Praxisbuch. Galileo Press

Internet und WWW Übungen

TCP/IP Troubleshooting. Jochen Reinwand RRZE-Kolloquium Praxis der Datenkommunikation 5. November 2014

Labor - Rechnernetze. : 4 Protokollanalyzer

LAN Konzept Bruno Santschi. LAN Konzept. Version 1.0 März LAN Konzept.doc Seite 1 von 10 hehe@hehe.ch

Vernetzte Systeme. Übungsstunde Adrian Schüpbach 09. Juni 2006

Praktikum zur Vorlesung Datenkommunikation. Teil I

Prof. Dr. Klaus Lang, Fachhochschule Bingen. rwho rhosts.. NIS YP ... NFS RIP/OSPF/EGP ARP/RARP SLIP/PPP. Modem/V24/ISDN

LAN & Internet. Grundlagen Netzwerke LAN-2. Saarpfalz-Gymnasium. Router. Router LAN-3. Router. Kommunikation in Rechnernetzen

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

2. Architektur von Kommunikationssystemen

Sicherheitsdienste für große Firmen => Teil 2: Firewalls

Netzwerke. NW: Firewall. Vorlesung von Reto Burger. by Reto Burger, dipl. Informatik. Ing. HTL. Netzwerke

Netzwerk Technologien in LabVIEW

TCP/IP Troubleshooting

Inhalt: 1. Layer 1 (Physikalische Schicht) 2. Layer 2 (Sicherungsschicht) 3. Layer 3 (Vermittlungsschicht) 4. Layer 4 (Transportschicht) 5.

Quality of Service. Traffic Shaping. Dienstgüte mit Linux analysieren und verbessern. Traffi c Open Students Lounge

The network is the computer. Computernetzwerk- Grundlagen. Bedeutung der Schichten. 7 Schichten Modell. Sommersemester

Modul 117. OSI-Referenzmodell

KOMMUNIKATIONSNETZE UND - PROTOKOLLE 6. TRANSPORTSCHICHT. KNP: 6. Transport. 1 / v5. prof. dr. Werner Winzerling

Curriculum Telekommunikation für Smart Metering

Kommunikationsnetze 1. TCP/IP-Netze 1.2 TCP. University of Applied Sciences. Kommunikationsnetze. 1. TCP/IP-Netze 1.

7 Transportprotokolle

Grundlagen der Informatik für Ingenieure I

TCP/IP Grundlagen verfasst von wintools4free.dl.am visit:

Im Jahre 1983 wurde TCP/IP das Standardprotokoll im DOD, und ist heute der generische Name für die gesamte Sammlung von Protokollen.

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

Fachbereich Medienproduktion

TIA Portal V13 Kommunikation mit S7-1500

TCP/IP Teil 1: Theoretische Grundlagen

1. Netzwerkprogrammierung für mobile Geräte

Praktikum Rechnernetze Aufgabe 5: Netzmanagement mit Shareund Freeware Software

Client/Server-Systeme

Transkript:

Netzwerk-Programmierung Netzwerke Alexander Sczyrba Michael Beckstette {asczyrba,mbeckste}@techfak.uni-bielefeld.de 1

Übersicht Netzwerk-Protokolle Protkollfamilie TCP/IP Transmission Control Protocol (TCP) erste Schritte mit sockets 2

vernetzte Rechner Problem: versende Daten von Rechner A zu Rechner B A und B sind (indirekt) durch Netzwerk(e) verbunden Möglichkeiten: ein Protokoll für alles Familie von spezialisierten Protokollen, die aufeinander aufbauen 3

Netzwerk-Schichten application telnet, SMTP, HTTP transport TCP, UDP network IP, ICMP link Ethernet, ARP/RARP 4

link layer modelliert physikalische Verbindung Hardware-Adressen Daten in Frames empfindlich gegenüber Störungen Prüfsummen Beispiel: Ethernet, PPP,... 5

network layer modelliert Verknüpfung von mehreren Netzwerken Packets innerhalb von Frames connectionless, unreliable, best effort routing eigener Adressraum Beispiel: Internet Protocol (IP) Domain Name System (DNS) für lesbare Adressen 6

transport layer demultiplexing, Port-Nummern well known ports, /etc/services User Datagram Protocol (UDP): ähnlich zu IP: Datagramme, connectionless, unreliable Transmission Control Protocol (TCP): Datenstrom Verbindung Zuverlässigkeit durch Quitierverfahren flow control, congestion avoidance 7

application layer nutzt transport layer TCP oder UDP hängt von Problemstellung ab Programmierschnittstellen: Berkeley sockets X/Open Transport Interface... 8

encapsulation Ethernet header IP header TCP header application header user data Ethernet trailer 9

Kommunikation zwischen Schichten Rechner 1 Rechner 2 application ftp ftp-protokoll ftp transport TCP TCP-Protokoll TCP network IP IP-Protokoll IP link Ethernet Ethernet-Protokoll Ethernet 10

Routing Rechner 1 Rechner 2 ftp-protokoll application ftp ftp transport TCP TCP-Protokoll TCP Router network IP IP-Protokoll IP IP-Protokoll IP Ethernet-Protokoll link Ethernet Ethernet Token Ring Token Ring-Protokoll Token Ring 11

Transmission Control Protocol Bestätigung von empfangenen Paketen erneuter Versand von verlorenen Paketen sequence numbers data data ACK data ACK ACK data 12

Verbindungsaufbau CLOSED SYN passive open active open SYN + ACK LISTEN ACK SYN RCVD SYN SENT ESTABLISHED 13

Verbindungsabbau FIN ACK FIN CLOSED ACK ESTABLISHED CLOSE WAIT FIN WAIT 1 CLOSING LAST ACK FIN WAIT 2 TIME WAIT 14

TCP verwenden Verbindung durch socket pair identifiziert: (IP-Adresse L, Port L, IP-Adresse R, Port R ) Verbindungsdaten anzeigen: $ netstat -f inet more... teak.tf.1023 eiche.tf.nfsd 24820 0 24820 0 ESTABLISHED teak.tf.32820 teak.tf.ldap 32768 0 32768 0 ESTABLISHED teak.tf.ldap teak.tf.32820 32768 0 32768 0 ESTABLISHED... (TF = TechFak.Uni-Bielefeld.DE) 15

Aufgaben Erzeuge eine telnet-verbindungen zu einem Rechner (z.b. von asien nach australien). Beobachte in zwei verschiedenen xterms (jeweils eines auf dem jeweiligen Rechner) die Ausgabe von netstat. Welche Einträge kommen neu hinzu? Tip: Der service heißt telnet Schließe die telnet-verbindung wieder. Wie verändert sich die Ausgabe von netstat? Es kommt je ein neuer Eintrag hinzu: teak.tf.846 teak.tf.login 32768 0 32768 3 ESTABLISHED teak.tf.login teak.tf.846 32768 2 32768 0 ESTABLISHED Dem rlogin-client wurde eine freie Port-Nummer zugewiesen, in diesem Beispiel 846. Es bleibt ein Eintrag im TIME WAIT-Zustand zurück: teak.tf.login teak.tf.846 32768 0 32768 0 TIME_WAIT Da es sich um die ehemalige Serverseite der Verbindung handelt, kann man erkennen, daß das Beenden der Verbindung vom rlogin-client initiiert wurde, dieser also der erste FIN-Segment verschickt hat. 16

Aufgaben Die Skripte server.pl und client.pl befinden sich im Archiv uebung4.tar.gz. Bei den nachfolgenden Aufgaben brauchst Du drei xterms, um alle Programme starten zu können. Starte den Server. Du mußt dabei eine Portnummer angeben: $ server.pl 54321 Sieh Dir den Zustand des Servers an: $ netstat -a grep 54321 Der Server bindet sich an den angegebenen Port und wartet auf Verbindungen: $ netstat -a grep 54321 *.54321 *.* 0 0 24576 0 LISTEN 17

Aufgaben, cont. Laß den Client Daten vom Server lesen: $ client.pl 54321 Benutze währenddessen netstat, um die Verbindung zu untersuchen. Rufe den Client zwei weitere Male auf. Was ändert sich bei jedem Aufruf? Rufe den Client mit einer festen Portnummer auf: $ client.pl 54321 55443 Wiederhole auch diesen Aufruf zweimal. Es wird eine Verbindung zwischen Client und Server aufgebaut. Der LISTEN-Eintrag bleibt erhalten: *.54321 *.* 0 0 24576 0 LISTEN localhost.56305 localhost.54321 32768 0 32768 0 ESTABLISHED localhost.54321 localhost.56305 32768 0 32768 0 ESTABLISHED Es wird eine neue Verbindung aufgebaut. Dabei verwendet der Client eine neue Port-Nummer. Die alten Verbindungen sind eventuell noch im Zustand TIME WAIT: *.54321 *.* 0 0 24576 0 LISTEN localhost.54321 localhost.56305 32768 0 32768 0 TIME_WAIT localhost.56315 localhost.54321 32768 0 32768 0 ESTABLISHED localhost.54321 localhost.56315 32768 0 32768 0 ESTABLISHED Die Port-Nummer des Clients hat den angegebenen Wert: *.54321 *.* 0 0 24576 0 LISTEN localhost.55443 localhost.54321 32768 0 32768 0 ESTABLISHED localhost.54321 localhost.55443 32768 0 32768 0 ESTABLISHED Nachdem der Client beendet ist, bleibt wieder eine Socket im Zustand TIME WAIT zurück. Diese verschwindet, sobald eine neue Verbindung mit der gleichen Port- Nummer aufgebaut wird. 18

Aufgaben, cont. Starte mehrere Clients gleichzeitig: client.pl 54321 &; client.pl 54321 &; client.pl 54321 Was ist zu beobachten? Starte zwei Clients mit der gleichen Portnummer gleichzeitig: client.pl 54321 55443 &; client.pl 54321 55443 Was passiert? Beende den Server und versuche ihn sofort mit der gleichen Portnummer neu zu starten. Was passiert? Was passiert, wenn Du den Client mit CTRL-C abbrichst, während er Daten vom Server liest? Die drei Clients arbeiten parallel. Es werden gleichzeit drei Verbindungen aufgebaut: *.54321 *.* 0 0 24576 0 LISTEN localhost.56427 localhost.54321 32768 0 32768 0 ESTABLISHED localhost.54321 localhost.56427 32768 0 32768 0 ESTABLISHED localhost.56428 localhost.54321 32768 0 32768 0 ESTABLISHED localhost.54321 localhost.56428 32768 0 32768 0 ESTABLISHED localhost.56429 localhost.54321 32768 0 32768 0 ESTABLISHED localhost.54321 localhost.56429 32768 0 32768 0 ESTABLISHED Ein Client verbindet sich mit dem Server. Der andere wird mit einer Fehlermeldung abgebrochen: can t bind socket: Address already in use at./client.pl line 19. Der Server läßt sich nicht sofort neu starten, es kommt ebenfalls die Fehlermeldung can t bind socket: Address already in use at./server.pl line 16. Erst, wenn keine Socket im TIME WAIT-Zustand mehr vorhanden ist, die den Server- Port verwendet, kann der Server erneut mit der selben Port-Nummer gestartet werden. Der Server wird beendet, in einigen Shells erscheint zusätzlich die Meldung Broken pipe. Sämtliche Verbindungen werden beendet, es bleiben keine Sockets im Zustand TIME WAIT oder einem anderen übrig. 19