Transmission Control Protocol (TCP)



Ähnliche Dokumente
1. Netzwerkprogrammierung für mobile Geräte

1. Netzwerkprogrammierung für mobile Geräte

Java und Netzwerkkommunikation

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

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester Timer. Sockets.

Networking. Motivation Grundlagen von Sockets Klasse Socket Klasse ServerSocket Exceptions Klasse URL

TCP SYN Flood - Attack. Beschreibung Auswirkungen Zuordnung zu Gefährdungskategorie und Attacken-Art Gegenmaßnahmen Quellen

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

Schritt 2: Konto erstellen

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze

4. Thread- und Netzwerk- Programmierung

Gefahren aus dem Internet 1 Grundwissen April 2010

Einrichtung eines -konto mit Outlook Express

IMAP und POP. Internet Protokolle WS 12/13 Niklas Teich Seite 1

Verteilte Systeme - Java Networking (Sockets) -

Anwendungsprotokolle: HTTP, POP, SMTP

TCP/UDP. Transport Layer

Teil 1: Ein einfacher Chat

Programmiermethodik. Übung 13

Installationshilfe DSL unter MAC OS X

POP3 über Outlook einrichten

Man liest sich: POP3/IMAP

Referat: Netzwerkprogrammierung in Java

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

Schritt 1: Auswahl Schritt 3 Extras > Konten Schritt 2: Konto erstellen Konto hinzufügen klicken

Uni-Firewall. Absicherung des Überganges vom Hochschulnetz zum Internet am Wingate (Helmut Celina)

Socket-Programmierung unter Java

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

FileMaker Go 13 ohne Connects

.lowfidelity KONFIGURATION Anleitung

Techniken der Projektentwicklung

-konfiguration THE BAT! homepageheute.de ein Produkt der medialand GmbH, Schornsheimer Chaussee 9, Wörrstadt, Deutschland

Microsoft Outlook 2007

Kurzanleitung zum Einrichten von konten für Outlook Express 6

Netzwerkprogrammierung

Um DynDNS zu konfigurieren, muss ausschließlich folgendes Menü konfiguriert werden:

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können.

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Übersicht. Was ist FTP? Übertragungsmodi. Sicherheit. Öffentliche FTP-Server. FTP-Software

Rechnernetze. 6. Übung

STARFACE SugarCRM Connector

Internet und WWW Übungen

Voraussetzungen für die Nutzung der Format Rechenzentrumslösung (Hosting)

Einrichtung eines -konto mit Thunderbird

TCP und UDP Sockets in Java

Verteilte Systeme - 1. Übung

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

Kapitel 4: Design von Client/Server-Software. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes

Wie macht man einen Web- oder FTP-Server im lokalen Netzwerk für das Internet sichtbar?

Kontrollfragen: Internet

Electronic Systems GmbH & Co. KG

15 Transportschicht (Schicht 4)

Anleitung Grundsetup C3 Mail & SMS Gateway V

Benutzerhinweise IGW/920-SK/92: Einsatz als VPN-Client

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

POP -Konto auf iphone mit ios 6 einrichten

Apple Mail: SSL - Einstellung überprüfen

IAC-BOX Netzwerkintegration. IAC-BOX Netzwerkintegration IACBOX.COM. Version Deutsch

ITF2XML. Transferservice. Version 1.1. Tel.: 044 / Fax: 044 / CH-8005 Zürich

Einrichtung Ihres 3 accounts unter MAC OS X

TCP/IP-Protokollfamilie

2 Verbindungslose Kommunikation mit UDP

Electronic Systems GmbH & Co. KG

Einrichtungsanleitung Router MX200

Das Handbuch zu KNetAttach. Orville Bennett Übersetzung: Thomas Bögel

Adressumleitung beim Surfen. Allgemeines

Outlook einrichten über POP3

Socket-Programmierung unter Java

FAQ IMAP (Internet Message Access Protocol)

Netzwerk. Um den Hostnamen angezeigt zu bekommen $ hostname $ hostname -f Um den Hostnamen zu ändern $ hostname <neuerhostname>

Kontoeinrichtung

Betriebskonzept Einrichtung

KN Das Internet

Einrichtung von Mozilla Thunderbird

Kurzanleitung zur Softwareverteilung von BitDefender Produkten...2

Scan to FTP (File Transfer Protocol)

Dealer Management Systeme. Bedienungsanleitung. Freicon Software Logistik (FSL) für Updates

Kommunikations-Parameter

Anleitungen zum Publizieren Ihrer Homepage

Einrichtung Secure-FTP

Lokale Installation von DotNetNuke 4 ohne IIS

Dieses HowTo darf nicht vervielfältigt oder veröffentlich werden ohne Einverständnis des Erstellers. Alle Angaben ohne Gewähr.

BytStorMail SAAS als Relay

Client-Server-Prinzip

THUNDERBIRD. Vorbereitende Einstellungen auf signaturportal.de für die Nutzung von Thunderbird

Einrichten eines Microsoft Exchange-Account auf einem Android-System


Virtual Private Network

ITF2XML. Transferservice. Version 1.0. infogrips GmbH, Zürich client10.doc, Revision 1.1. Tel.: 01 / Fax: 01 /

3 Netzdienste im Internet. vs3 1

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

FL1 Hosting Technische Informationen

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester Sockets.

Transkript:

Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 56

Zuverlässigkeit gesendete Daten kommen vollständig an korrekte Reihenfolge der Daten keine Duplikate bei den Daten Selbständige Behandlung der Probleme innnerhalb von TCP, Nutzer sehen Byte-Stream Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 57

Client/Server Anbieter eines Dienstes: Server Server ist erreichbar an fester Host/Port-Kombination Nachfrager eines Dienstes: Client Client muss eine Verbindung beim Server anfordern. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 58

Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 59

Aufbau eines TCP-Pakets Der TCP-Kopfteil enthält: Portnummer des Senders (2 Bytes) Portnummer des Empfängers (2 Bytes) weitere Felder, z. B. Sequenznummer und Prüfsumme (16 Bytes) optionale Felder variabler Länge Darauf folgen die Nutzdaten des TCP-Pakets. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 60

Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 61

Verbindungsaufbau Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 62

Verbindungsabbau Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 63

Zustände einer TCP-Verbindung Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 64

TCP-Anwendungen File Transfer Protocol (FTP) Telnet Simple Mail Transfer Protocol (SMTP) Post Office Protocol (POP) Hypertext Transfer Protocol (HTTP) Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 65

TCP-Sockets Unterscheidung zwischen Client- und Server-Socket: Server-Socket Warten auf eintreffende Verbindungsanforderungen, accept() liefert Client-Socket, kann mehrere Clients bedienen Client-Socket Automatische Kontaktaufnaheme mit dem Server bei Erzeugung des Sockets Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 66

Client-Sockets in Java Klasse java.net.socket Socket versucht bei Erzeugung einen Server (Host/Port) zu kontaktieren: Socket(InetAddress address, int port) throws java.net.ioexception Erzeugt einen Client-Socket und versucht eine Verbindung zu der IP- Adresse und dem Port aufzubauen. Socket(String host, int port) throws java.net.unknownhostexception Erzeugt einen Client-Socket und versucht eine Verbindung zum Host und dem Port aufzubauen. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 67

void close() throws IOException Schließt den Socket. boolean isclosed() Liefert true falls der Socket geschlossen ist. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 68

Timeout für Client void setsotimeout(int timeout) throws SocketException Setzt einen Timeout in Millisekunden für den Eingabestrom des Sockets. Ein Aufruf von read() blockiert dann höchstens timeout Millisekunden. java.net.sockettimeoutexception Mit timeout == 0 wird der Timeout deaktiviert. void getsotimeout() Liefert den aktuellen Wert für timeout. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 69

I/O mit Client-Sockets Ein Client-Socket verfügt über einen Eingabe- und einen Ausgabe- Stream: InputStream getinputstream() throws IOException Liefert einen Eingabestrom für den Socket. OutputStream getoutputstream() throws IOException Liefert einen Ausgabestrom für den Socket. Wird einer der beiden Streams mit der Methode close() geschlossen, so wird auch der zugehörige Socket geschlossen. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 70

Selektives Schließen von Socket-Streams Mit den folgenden Methoden ist ein selektives Schließen der Streams möglich: void shutdowninput() throws IOException Setzt den Eingabestrom für den Socket auf EOF. void shutdownoutput() throws IOException Deaktiviert den Ausgabestrom für den Socket. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 71

Server-Sockets in Java Klasse java.net.serversocket ServerSocket(int port) throws IOException Erzeugt einen ServerSocket und bindet ihn an den angegebenen Port des lokalen Rechners. void close() throws IOException Schließt den Server-Socket. boolean isclosed() Liefert true falls der Server-Socket geschlossen ist. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 72

Socket accept() throws IOException Nimmt einen Verbindungswusch an und erzeugt einen neuen Client- Socket für die Verbindung. Die Kommunikation mit dem Client kann dann über den Client-Socket abgewickelt werden. accept() blockiert, bis ein Verbindungswunsch eines Clients vorliegt. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 73

Timeout für Server void setsotimeout(int timeout) throws SocketException Setzt einen Timeout in Millisekunden. Ein Aufruf von accept() blockiert dann höchstens timeout Millisekunden. java.net.sockettimeoutexception Mit timeout == 0 wird der Timeout deaktiviert. void getsotimeout() Liefert den aktuellen timeout. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 74

Backlog Die Verbindungswünsche der Clients, für die mittels accept() noch kein Client-Socket erzeugt wurde, werden in einer Warteschlange, dem Backlog, verwaltet. java.net.connectexception beim Client, falls Backlog voll. Standardgröße (maximale Länge) des Backlogs: 50 ServerSocket(int port, int backlog) throws IOException Hiermit kann bei Erzeugung des Sockets die maximale Länge des Backlogs vorgegeben werden. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 75

Gesamtablauf Client-Server-Kommunikation 1. Der Server erzeugt einen ServerSocket, der an einen vordefinierten Port gebunden ist. 2. Der Server ruft die Methode accept() auf und wartet auf Verbindungswünsche. Der Aufruf von accept() blockiert. 3. Der Client erzeugt einen Socket mit der IP-Adresse (oder Hostnamen) und der Portnummer des Servers. 4. Beim Server wird accept() beendet und liefert als Resultat einen Socket, der eine Verbindung zum Client darstellt. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 76

5. Client und Server erzeugen mit den Methoden getinputstream() und getoutputstream() Stream-Objekte für die Kommunikation. 6. Nun können Daten mit gewöhnlichen Lese- und Schreiboperation zwischen den Prozessen ausgetauscht werden. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 77

Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 78

Weitere Socket-Methoden InetAddress getlocaladdress() Liefert die lokale IP-Adresse, an die der Socket gebunden ist. int getlocalport() Liefert die lokale Portnummer, an die der Socket gebunden ist. InetAddress getinetaddress() Liefert die entfernte IP-Adresse, mit der der Socket verbunden ist. int getport() Liefert die entfernte Portnummer, mit der der Socket verbunden ist. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 09/10 79