Client/Server-Systeme

Ähnliche Dokumente
Client/Server-Systeme

Verteilte Systeme - 1. Übung

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

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

TCP/IP-Protokollfamilie

Transmission Control Protocol (TCP)

Java und Netzwerkkommunikation

Netzwerk-Programmierung in C

Client-Server mit Socket und API von Berkeley

Die Transportprotokolle UDP und TCP

15 Transportschicht (Schicht 4)

Netzwerke. Netzwerk-Programmierung. Sven Hartmeier.

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

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

Internetprotokoll TCP / IP

Das ISO / OSI -7 Schichten Modell

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

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

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

Netzwerkprogrammierung

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

Tafelübung zu BS 4. Interprozesskommunikation

Alles Text Sockets à la Plan 9

IP Adressen & Subnetzmasken

Rechnernetze II SS Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

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

UDP-, MTU- und IP- Fragmentierung

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

2. Architektur von Kommunikationssystemen

TCP/UDP. Transport Layer

Netzwerkprotokolle. Physikalische Verbindungsebene Datenübertragungsebene

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

Einführung: Grundlegende Design-Prinzipien des Internet B. Plattner, H. Lubich Internet Intro 1

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

7 Transportprotokolle

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

Vorlesung SS 2001: Sicherheit in offenen Netzen

Netzwerke, Kapitel 3.1

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

An Open Interface for Network Programming under Microsoft Windows. DI. Dr. Peter René Dietmüller

Multiuser Client/Server Systeme

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker

SNMP und der MIB- Browser von MG-Soft

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

4. Thread- und Netzwerk- Programmierung

Verteilte Systeme Kapitel 4: Realisierung von Netzwerkdiensten

Programmieren mit sockets

Einführung in TCP/IP. das Internetprotokoll

Mainframe Internet Integration. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013. Java Connection Architecture Teil 1

Computeranwendung in der Chemie Informatik für Chemiker(innen) 4. Netzwerke

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

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

Verteidigung der Diplomarbeit 3D-Netzwerk-Visualisierung

9. Transportprotokolle

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

Vorlesung 11: Netze. Sommersemester Peter B. Ladkin

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze

TCP/IP Protokollstapel

KN Das Internet

Computer and Communication Systems (Lehrstuhl für Technische Informatik) Socket-Programmierung

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern)

Domain Name Service (DNS)

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3

Message Oriented Middleware am Beispiel von XMLBlaster

1. DAS IP INTERNET PROTOCOL Die Protokollschichten des Internet Internetadressen Das Paketformat von IP...

Themen. Vermittlungsschicht. Routing-Algorithmen. IP-Adressierung ARP, RARP, BOOTP, DHCP

21 Netzwerkprogrammierung mit Sockets

TCP/IP Teil 1: Theoretische Grundlagen

TIA Portal V13 Kommunikation mit S7-1500

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

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

Referat: Netzwerkprogrammierung in Java

DNÜ-Tutorium HS Niederrhein, WS 2014/2015. Probeklausur

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

Transportschicht (Schicht 4) des Internet

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

Rechnernetze 1 Vorlesung im SS 07

Programmieren von UNIX-Netzen

Verteilte Systeme - Überblick

IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only

Vorwort Vorwort zur deutschen Übersetzung... 11

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

Modul 117. OSI-Referenzmodell

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

Kontrollfragen: Internet

Internet - Grundzüge der Funktionsweise. Kira Duwe

Kommunikation im Netzwerk

Virtuelle Private Netze

Überblick. Daten- kommunikation

3 Netzdienste im Internet. vs3 1

Transkript:

Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth WS 2004 / 2005 Teil 2 Sockets cs 0200 ww6 wgs 09-96

Literatur Socket-Schnittstelle J. Martin, J. Leben: TCP/IP Netzwerke. Prentice Hall, 1994, Kapitel 18. D. E. Comer, D. L. Stevens: Internetworking with TCP/IP. Prentice Hall, 1991, Band 1, Kapitel 21. D. E. Comer, D. L. Stevens: Internetworking with TCP/IP. Prentice Hall, 1991, Band 3, Kapitel 5. J. Bloomer: Power Programing with RPC. O Reilly&Assiciates, 1992, S. 125. vs1608 ww6 wgs 06-97

Schicht 7 Anwendung Telnet, FTP, SMTP Schicht 6 Darstellung Schicht 5 Sitzung Schicht 4 Transport TCP Transmission Control Protokoll Schicht 3 IP Internet Netwerk Protokoll Schicht 2 Ethernet, Tokenring Sicherung HDLC, ATM Schicht 1 Bitübertragung Kupfer, Glasfaser, drahtlos Einordnung von TCP/IP in das OSI Schichtmodell css0208 ww6 sch 10-96

Schicht 7 SNMP, Telnet, FTP Anwendung vom Benutzer geschriebene Anwendungen Schicht 6 Darstellung XDR, ASN.1, Kompression, Sicherheit, Authentifizierung Schicht 5 Sitzung RPC (Remote Procedure Call) Sockets, DCE, CORBA Schicht 4 Transport TCP Transmission Control Protokoll Schicht 3 IP Internet Protokoll Netwerk Schicht 2 Ethernet, Tokenring Sicherung HDLC, ISDN, ATM Schicht 1 Bitübertragung Kupfer, Glasfaser, drahtlos Einordnung von TCP/IP in das OSI Schichtmodell cs 0207 ww6 wgs 10-96

Sockets: Schnittstelle zu Netzwerkprotokollen Sockets sind eine allgemeine Schnittstelle zu unterschiedlichen Transportprotokollen der Schicht 4 (z.b. NetBIOS, SNA, IPX) und verbergen weitgehend Architektur des verwendeten Transportprotokolls. Sie sind die Defacto Standard Schnittstelle zu den TCP/IP Stacks in allen Betriebssystemen. Bei einem Austausch des Transportprotokolls muß Applikationsprogramm nur geringfügig verändert werden. Ein Socket ist ein Endpunkt einer Kommunikationsverbindung. Die Verbindung ist sowohl lokal als auch entfernt möglich. Bei einer entfernten Verbindung wird über den Socket eine Anwendung mit einem Transportmechanismus (z.b. TCP oder UDP) verbunden. Für TCP- und UDP-Protokolle ist die Socketadresse eindeutig durch die Kombination Internetadresse plus Portnummer definiert. Der Socket Kommunikationsendpunkt besteht aus der IP Adresse (Netzwerk-ID und Rechner-ID) und der Portnummer. Ein Port ist eine eindeutige Zuordnung der TCP oder UDP Pakete zur nächst höheren Schicht 5. Eine TCP/IP Verbindung ist immer eindeutig durch 6 Größen bestimmt: IP Adresse des Senders Port des Senders Protokoll des Senders IP Adresse des Empfängers Port des Empfängers Protokoll des Empfängers Beispiel Socket Telephon Netzwerk-ID Ortsvorwahl Rechner-ID Telephon Nr. Portnummer Nebenstelle cs 0210x ww6 wgs 08-97

21 000 Klienten ISDN Verbindung Sockets CAPI TCP/ IP Oracle ISDN Net Oracle Ticket Service der Deutschen Post cs 0213x ww6 wgs 08-97

Verbindungsloses Protokoll Verbindungsorientiertes Protokoll Sitzung - Session Open Do Work Close Sitzungsstatus speichern cs 0220 ww6 wgs 09-00

Drei Typen von Sockets Stream Sockets (SOCK_STREAM) für zuverlässige verbindungsorientierte Duplex-Verbindungen. Werden im Internet-Bereich durch das TCP Protokoll unterstützt. TCP verwendet die Abstraktion einer "Verbindung", die aus zwei Endpunkten, definiert durch 2 Integer Paare (IP-Adresse/Portnummer) besteht.der Zustand einer Verbindung wird durch den "Transmission Control Block" (TCB, nicht zu verwechseln mit dem "Task Control Block des Betriebssystems) gesteuert. Der TCB wird beim Aufbau einer Verbindung erzeugt, während der Dauer der Verbindung modifiziert, und beim Abbau der Verbindung wieder gelöscht. Datagram Sockets (SOCK_DGRAM) für verbindungslose, nicht-garantierte Nachrichtenübertragung. Werden im Internet-Bereich durch das UDP Protokoll unterstützt. UDP betrachtet einen Port als eine FIFO Warteschlange, in die es IP Datagramme überträgt. Raw Sockets (SOCK_RAW) greifen direkt auf untere Ebenen der Netzwerkarchitektur zu. Sie ermöglichen Eigenentwicklungen von Transportmechanismen. Beispiel: Light Weight Sockets für Switch gekoppelte Parallelrechner. cs 0210 ww6 wgs 05-94

Einfache Client/Server-Transaktion Client Server Warten auf Bereitstellung Verbindung mit des Kommunikadem Server tions-mediums Ankoppeln an das Medium Ankoppeln an das Medium Anfrage absenden Anfrage empfangen Warten auf Antwort Anfrage bearbeiten Antwort empfangen Verbindung lösen Antwort absenden Verbindung lösen sc 0219 wgs 09-00

Client Server socket (..) bind (..) recvfrom (..) socket (..) blockiert sendto (..) blockiert recvfrom (..) sendto (..) close (..) close (..) Verbindungsunabhängiges Socketprotokoll cs 0215x ww6 wgs 10-96

Befehl 1. Socket erzeugen socket (... (Datenstruktur innerhalb des Adressenraums Datenbereich des Betriebssystems) 2. Socket mit einem nach außen bind (... sichtbaren Namen versehen (mit einer TSAP Adresse) * 3. Warteschlange erstellen, um listen (... eingehende Nachrichten zu speichern 4. Auf Nachricht warten. Socket accept (... Deskripter an child process weitergeben 5. Verbindung zwischen connect (... 2 Sockets herstellen 6. Daten senden, emfangen send (... recv (... 7. Beenden close (... Socket Transportdienst Aufrufe * Nachdem dies geschehen ist, kann der Name bekanntgegeben bzw. verteilt werden vs0943 ww6 wgs 10-96

Sequentieller Serverbetrieb Client A Client B Server sock_init() sock_init() sock_init() s=socket() s=socket() s=socket() bind() listen() connect() t=accept() connect() recv(t,...) send(s,...) recv(s,...) send(t,...) soclose(s) soclose(t) t=accept() send(s,...) recv(t,...) recv(s,...) send(t,...) soclose(s) soclose(t) css 0531 ww6 sch 10-96

Paralleler Server sock_init() s=socket() bind() listen() t=accept() DosCreateThread() recv(t,...) DosWaitThread() send(t,...) soclose(t) DosExit() soclose(s) css 0532

Client Server socket bind socket listen connect send recv TCP 3-way handshake accept recv send close close Verbindungsabhängiges Socketprotokoll cs 0212 ww6 wgs 10-96

wgs 05-96 Server Server- Client- Server- Clientadresse adresse adresse adresse Server- Client- Server- Clientport port port Port aktiver aktiver Serversocket x Serversocket y Serveradresse Client Server-? port passiver Server Socket Server- Client- Server- Clientadresse adresse adresse adresse Servert- Client- Server-- Clientport port port Port Clientsocket Clientsocket Client I Client II cs 0214x ww6 wgs 08-97

cs 0216 ww6 wgs 09-00

Resolver Routine für die Umsetzung von Host-Namen und IP- Adressen gethostbyname (... ) gethostbyadress (... ) IP-Adresse eines Host-Namens wird ermittelt Host-Name einer IP-Adresse wird ermittelt gethostbyname (... ) durchsucht Tabelle /etc/hosts nach verschiedenen Kriterien. Liefert Struktur struct hostent {... Umsetzung dieser Information ist Aufgabe der Anwendung cs 0726 ww6 wgs 07-96

cs 0217 ww6 wgs 09-00

statt listen (r_sd, 5) besser if (listen (r_sd, 5) = = -1) { perror ("listen"); exit (1); } vs0909 ww wgs 05-95

Socket Implementierungen Teil des Kernels in BSD Andere UNIX Systeme, MS-DOS, Windows, MAC-OS, OS/2 beinhalten Sockets als Bibliotheken WinSock Multivendor API, normiert die Verwendung von TCP/IP unter Windows css0414 ww6 wgs 12-96

Transport Layer Interface TLI Von AT&T entwickelte Alternative zur Socketschnittstelle Ähnlich der Socketschnittstelle Auch für andere Schicht-4-Protokolle verfügbar Modern, sauber, transparent Sockets werden häufiger verwendet als TLI Nachrichten werden (im Gegensatz zur Socketschnittstelle) unmittelbar in Segmente umgesetzt. css0213 ww6 sch 10-96

Flushed or Blocking cs 0203 ww6 wgs 11-96