1. Netzwerkprogrammierung für mobile Geräte

Größe: px
Ab Seite anzeigen:

Download "1. Netzwerkprogrammierung für mobile Geräte"

Transkript

1 1. Netzwerkprogrammierung für mobile Geräte Lernziele 1. Netzwerkprogrammierung für mobile Geräte Themen/Lernziele: Konzepte der verbindungslosen Kommunikation beherrschen Client/Server-Anwendungen auf der Basis von TCP realisieren können Beschränkungen für mobile Geräte im Bereich der Datenkommunikation kennen Protokolle der Anwendungsschicht mit Hilfe von Android nutzen können Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 11

2 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol User Datagram Protocol verbindungsloses Protokoll, nicht zuverlässig einfach paketorientiert, Pakete heißen Datagramme gehört zur Transportschicht, OSI-Layer 4 Spezifiziert in RFC 768 Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 12

3 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Nicht-Zuverlässigkeit Datagramme können verloren gehen Können in anderer Reihenfolge eintreffen Sender und Empfänger werden über den Verlust von Datagrammen nicht informiert Fehlerhafte Daten werden nicht nochmals übertragen Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 13

4 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Aufbau eines UDP-Datagramms Kopfteil besteht aus vier 16 Bit Feldern: Portnummer des Senders Portnummer des Empfängers Gesamtlänge des UDP-Datagramms Prüfsumme Darauf folgen die Nutzdaten des Datagramms. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 14

5 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Maximallänge: Bytes, abzüglich IP-Header (20 Bytes) und UDP- Header (8 Bytes), max Bytes Nutzdaten Problem: Fragmentierung der Pakete, idealerweise Fragmentierung vermeiden, anhängig von der Maximum Transmission Unit (MTU) Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 15

6 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol UDP-Anwendungen Vorteil gegenüber TCP: Geringerer Protokoll-Overhead, kein Verbindungsaufbau notwendig. Domain Name System (DNS) Simple Network Management Protocol (SNMP) Trivial File Transfer Protocol (TFTP) Dynamic Host Configuration Protocol (DHCP) Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 16

7 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Sockets Ein Socket ist ein Endpunkt einer Kommunikationsverbindung zwischen Prozessen in einem Netzwerk. Ein Stream-Socket dient zur Übertragung von Zeichenströmen, typischerweise TCP-basiert. Mit einem Datagramm-Socket werden Datagramme übertragen, typischerweise UDP-basiert. Kommunikation ist bidirektional, d.h. über den Socket können Daten versendet und empfangen werden. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 17

8 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Datagramm-Sockets in Java Klasse java.net.datagramsocket Socket wird durch Konstruktor an eine Portnummer des lokalen Rechners gebunden: DatagramSocket() throws SocketException Erzeugt einen Datagramm-Socket und bindet ihn an einen verfügbaren Port des lokalen Rechners. DatagramSocket(int port) throws SocketException Erzeugt einen Datagramm-Socket und bindet ihn an die Portnummer port des lokalen Rechners. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 18

9 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol SocketException ist Unterklasse von IOException. Methoden für DatagramSocket: InetAddress getlocaladdress() Liefert die IP-Adresse, an die der Datagramm-Socket gebunden ist. int getlocalport() Liefert die Portnummer, an die der Datagramm-Socket gebunden ist. void close() Schließt den Socket. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 19

10 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Datagramme in Java Klasse java.net.datagrampacket Konstruktoren: DatagramPacket(byte[] buf, int length, InetAddress address, int port) Zum Senden von Daten. Empfänger wird durch address und port angegeben, buf enthält die zu sendenden Daten, length gibt die Anzahl der zu sendenden Bytes an. DatagramPacket(byte[] buf, int length) Zum Empfangen von Daten. length legt fest, wie viele Bytes maximal empfangen werden. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 20

11 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Ein zum Empfangen von Daten erzeugtes Paket kann mit Hilfe der Methoden setaddress() und setport() auch nachträglich noch zum Senden verwendet werden. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 21

12 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Datagramme senden und empfangen (1) Methoden der Klasse DatagramSocket: void send(datagrampacket packet) throws IOException Sendet ein Datagramm von diesem Socket aus. void receive(datagrampacket packet) throws IOException Empfängt ein Datagramm, Methode ist blockierend. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 22

13 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Datagramme senden und empfangen (2) Methoden der Klasse DatagramPacket: byte[] getdata() Liefert eine Referenz auf den Inhalt des Datenpuffers. int getlength() Liefert die Anzahl der Bytes, die empfangen wurden. InetAddress getaddress() Liefert die IP-Adresse des Senders. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 23

14 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol int getport() Liefert die Portnummer des Senders. void setdata(byte[] buf) Setzt den Datenpuffer des Datagramms. void setlength(int length) Bestimmt die zu sendende Anzahl an Bytes bzw. die maximale Anzahl an Bytes, die empfangen werden können (Pufferlänge). void setaddress(inetaddress address) Legt die IP-Adresse des Empfängers fest. void setport() Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 24

15 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Legt die Portnummer für den Empfänger fest. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 25

16 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol UDP in Android API identisch zu J2SE Leider unterschiedliches Verhalten bei der Pufferlänge: Bei Android keine Unterscheidung zwischen Pufferlänge und Anzahl empfangener Bytes Kurze empfangene Datagramme reduzieren die gesetzte Pufferlänge! Lösung: Vor jedem Receive die Pufferlänge mittels setlength() wieder auf die tatsächliche Länge des Puffers setzen. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 26

17 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Beispiel 1.1. Echo-Server (J2SE) und mobiler Echo-Client (Android) Echo-Client sendet zufälligen String an Echo-Server, Echo-Server liefert diesen String zurück. Man beachte: Antwort Datagramm des Echo-Servers passiert ungehindert die Firewall. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 27

18 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Definition von Timeouts Ein Aufruf von receive() blockiert normalerweise, bis ein Datagramm empfangen wurde. Methoden für Timeouts: void setsotimeout(int timeout) Setzt den Timeout, receive() blockiert höchstens timeout Millisekunden und löst dann java.net.sockettimeoutexception aus. timeout == 0 schaltet Timeouts ab. int getsotimeout() liefert den aktuellen Timeout-Wert. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 28

19 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Einschränkung der Verbindungen Methoden der Klasse DatagramSocket, mit denen der Empfang auf eine bestimmte Absenderadresse und der Versand auf eine bestimmte Empfängeradresse eingeschränkt werden kann. void connect(inetaddress address, int port) Datagramme können nur von dieser IP-Adresse/Port empfangen bzw. an diese gesendet werden. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 29

20 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol void disconnect() Hebt die durch connect() definierten Restriktionen auf. Abfragen der definierten Restriktionen mit InetAddress getinetaddress() bzw. int getport() Man beachte: Dies sind Methoden der Klasse DatagramSocket Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 30

21 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Network Address Translation (1) Mobile Geräte befinden sich typischerweise in einem lokalen Netz: GPRS/UMTS/HSPA: nicht öffentliche IP-Adresse des Mobilfunkanbieters WLAN: nicht öffentliche IP-Adresse der Institution Für die Kommunikation mit Internet-Servern muss eine Abbildung der nicht öffentlichen Adressen auf eine öffentliche Adresse stattfinden. Network Address Translation (NAT) Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 31

22 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Network Address Translation (2) Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 32

23 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Network Address Translation (2) NAT: Verfahren, die automatisiert Adressinformationen in Datenpaketen durch andere ersetzen, um verschiedene Netze zu verbinden. Kommen typischerweise in Routern zum Einsatz. NAT-Typen: Source-NAT Destination-NAT Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 33

24 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Source-NAT (1) Beim Source-NAT wird die Adresse des Computers umgeschrieben, der die Verbindung aufbaut. Motivation: z.b. Knappheit öffentlicher IPv4-Adressen Viele nicht öffentliche IP-Adressen teilen sich eine öffentliche IP-Adresse. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 34

25 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Source-NAT (2) Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 35

26 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Destination-NAT (1) Beim Destination-NAT wird die Adresse des angesprochenen Computers verändert. Z. B. Zugriff auf einen Server (HTTP, SSH), der nicht im nicht öffentlichen Netz liegt. Weiterleitung der ankommenden Verbindungen an öffentlicher Adresse des Routers zu Rechner im lokalen Netz. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 36

27 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Destination-NAT (2) Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 37

28 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Klassen von NATs Full Cone NAT Statische Umsetzung intern zu extern, Pakete können von externen Rechnern an interne Rechner über die externe Adresse des NATs geschickt werden. Restricted Cone NAT Wie Full Cone NAT, ein externer Rechner kann aber nur dann einem internen Rechner ein Paket schicken, wenn vorher der interne dem externen ein Paket geschickt hat. Keine Berücksichtigung von Ports. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 38

29 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Port Restricted Cone NAT Wie Full Cone NAT, zusätzlich wird im Mapping aber der Port berücksichtigt Symmetric NAT Für jedes Ziel bei der Kommunikation ein eigenes Mapping, externe Rechner/Port müssen Paket erhalten haben, damit sie ein Paket an den internen Rechner schicken können. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 39

30 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Problem: Offenhalten von Ports im Router/Firewall (1) Im Echo-Beispiel durchdrang das Antwort-Datagramm die Firewall des mobilen Clients. Grund: Router hält bei ausgehenden Datenpaketen Port für eine gewisse Zeit für Antwort-Pakete offen. Router merkt sich dabei die Zuordnung öffentliche IP-Adresse/Port zu privater IP-Adresse/Port Stichwort: Connection Tracking, siehe Homepage Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 40

31 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Problem: Offenhalten von Ports im Router/Firewall (2) Was aber tun, wenn Datagramme unregelmäßig über einen Server verteilt werden sollen? Router/Firewall lässt Pakete nicht durch! Typische Lösung: Keep-Alive Datagramme Keep-Alive Datagramme: Der mobile Client sendet in kurzen Abständen eine leere (oder minimale) Nachricht an den Server. Konsequenz: Port bleibt offen für Pakete vom Server Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 41

32 1. Netzwerkprogrammierung für mobile Geräte User Datagram Protocol Server kann jederzeit Datagramme an den Client senden, die von der Firewall durchgelassen werden. Bei VoIP: STUN-Protokoll, in Verbindung mit erkennen der NAT-Klasse Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 42

33 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 43

34 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 44

35 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 45

36 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 46

37 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 47

38 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 48

39 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol Verbindungsaufbau Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 49

40 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol Verbindungsabbau Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 50

41 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol Zustände einer TCP-Verbindung Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 51

42 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 52

43 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 53

44 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 54

45 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 55

46 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 56

47 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 57

48 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 58

49 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 59

50 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 60

51 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 61

52 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 62

53 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 63

54 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 64

55 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 65

56 1. Netzwerkprogrammierung für mobile Geräte Transmission Control Protocol 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 10/11 66

57 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol Hypertext Transfer Protocol (HTTP) Übertragung von Web-Seiten gehört zur Anwendungsschicht, OSI-Layer 5 bis 7 Request/Reply-Protokoll, zustandslos benutzt TCP für den Transport spezifiziert in RFC 1945 (HTTP) 1.0 und RFC 2616 (HTTP 1.1) Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 67

58 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol Zustandslosigkeit Mehrere Anfragen stellen voneinander unabhängige Transaktionen dar. Ergebnisse von Anfragen sind unhängig von vorangegangenen Anfragen. Zustand muss auf Anwendungsebene implementiert werden: Session-ID, Cookie Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 68

59 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol Nachrichtenaustausch Zwei Arten von Nachrichten: Request von Client an Server Reply als Antwort von Server an Client Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 69

60 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol Aufbau einer Nachricht Nachrichtenkopf (Message Head) Metainformationen über den nachfolgenden Nachrichtenrumpf, z.b. Codierung, MIME-Type, etc. Nachrichtenrumpf (Message Body, Nutzdaten, evtl. optional) Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 70

61 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol Request Header Nachrichtenkopf einer Anfrage: GET /~pbecke2m/mobis2/ HTTP/1.1[CRLF] Host: www2.inf.fh-bonn-rhein-sieg.de[crlf] Connection: close[crlf] User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; de-de) AppleWebKit Accept-Encoding: gzip[crlf] Accept-Charset: ISO ,UTF-8;q=0.7,*;q=0.7[CRLF] Cache-Control: no[crlf] Accept-Language: de,en;q=0.7,en-us;q=0.3[crlf] Referer: [CRLF] Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 71

62 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol Reply Header Nachrichtenkopf der Antwort: HTTP/ OK Date: Tue, 27 Oct :48:13 GMT Server: Apache/2.2.3 (Debian) mod_auth_kerb/ Last-Modified: Tue, 27 Oct :11:33 GMT ETag: "1f1424c-2002-e710bf40" Accept-Ranges: bytes Content-Length: 8194 Connection: close Content-Type: text/html; charset=latin-1 Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 72

63 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol HTTP-Request-Methoden Die wichtigsten Methoden: GET: Inhalte vom Server anfordern (einfach) POST: Inhalte vom Server anfordern, zusätzlicher Datenblock bei der Anfrage (für komplexe Anfragen) HEAD: wie GET, POST, aber nur Header als Antwort PUT: Hochladen von Dateien DELETE: Löschen von Ressourcen Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 73

64 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol HTTP-Statuscodes 1XX Informationen 2XX erfolgreiche Operation 3XX Umleitung 4XX Client-Fehler 5XX Server-Fehler Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 74

65 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol HTTP-Authentifizierung Basic Authentication Server fordert eine Authentifizierung: WWW-Authenticate: Basic realm="realmname" Browser sendet Authorization-Header Benutzername:Passwort in Base64- Codierung an den Server: Authorization: Basic d2lratpwzwrpyq== Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 75

66 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol Digest Access Authentication Server sendet im Authenticate-Header eine zufällige Zeichenfolge, Browser berechnet Hashcode aus Benutzername, Passwort, Zeichenfolge, HTTP-Methode und URI, sendet Benutzername, Zeichenfolge und Hashcode im Authorization-Header, Server vergleicht. Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 76

67 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol Zugriff auf Dokumente mit HTTP (1) Klasse java.net.url: public URL(String spec) Konstruktor: Erzeugt ein URL-Objekt, das spec referenziert. Prinzipiell nicht nur für HTTP geeignet. public URLConnection openconnection () Liefert ein URLConnection-Objekt, mit dem eine Verbindung zu der referenzierten Ressource aufgebaut werden kann. Im Falle einer URL mit Schema http ist dies ein Objekt der Klasse HttpURLConnection (Unterklasse von URLConnection). Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 77

68 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol Zugriff auf Dokumente mit HTTP (2) Klasse java.net.httpurlconnection Kein öffentlicher Konstruktor! public void setrequestmethod (String method) "GET", "POST" etc. als method public void setdooutput (boolean newvalue) Ausgabe für URLConnection erlauben, geerbt von Klasse URLConnection public void setdoinput (boolean newvalue) Eingabe für URLConnection erlauben, geerbt von Klasse URLConnection Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 78

69 1. Netzwerkprogrammierung für mobile Geräte Hypertext Transfer Protocol public abstract void connect () Verbindungsaufbau, geerbt von Klasse URLConnection public OutputStream getoutputstream () Erzeugt einen Stream, um Daten an die Ressource zu schicken (POST) public int getresponsecode () Ermittelt den Reply-Code public InputStream getinputstream () Erzeugt einen Stream für die Antwort vom Server. public int getcontentlength () Länge der Antwort (Body) Mobile Informationssysteme II Hochschule Bonn-Rhein-Sieg, WS 10/11 79

1. Netzwerkprogrammierung für mobile Geräte

1. Netzwerkprogrammierung für mobile Geräte 1. Netzwerkprogrammierung für mobile Geräte Lernziele 1. Netzwerkprogrammierung für mobile Geräte Themen/Lernziele: Konzepte der verbindungslosen Kommunikation beherrschen Client/Server-Anwendungen auf

Mehr

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

Mehr

2 Verbindungslose Kommunikation mit UDP

2 Verbindungslose Kommunikation mit UDP 2 Verbindungslose Kommunikation mit UDP Das User Datagram Protocol (UDP) stellt grundlegende Funktionen zur Verfügung, um mit geringem Aufwand Daten zwischen kommunizierenden Prozessen austauschen zu können.

Mehr

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze Vorlesung 16 Netzwerkprogrammierung 1 Netzwerkprogrammierung Mit Java-Programmen ist es möglich, Verbindungen über Netze aufzubauen Die Basisfunktionalität zur Netzwerkprogrammierung stellt das Paket java.net

Mehr

TCP und UDP Sockets in Java

TCP und UDP Sockets in Java TCP und UDP Sockets in Java Grundlegende Mechanismen Server reserviert Port: Klient: - Server: bind Server nimmt Verbindungswünsche an Klient: - Server: listen Klient möchte sich verbinden Klient: connect;

Mehr

Netzwerkprogrammierung & Threads

Netzwerkprogrammierung & Threads & Threads Praktikum aus Softwareentwicklung 2 Netzwerp. - 1 & Threads URL, URLConnection, UDP, TCP Threads Parallele Programme, Synchronisation, Netzwerp. - 2 Grundlagen (1/2) Kommunikation zwischen verteilten

Mehr

TCP/UDP. Transport Layer

TCP/UDP. Transport Layer TCP/UDP Transport Layer Lernziele 1. Wozu dient die Transportschicht? 2. Was passiert in der Transportschicht? 3. Was sind die wichtigsten Protkolle der Transportschicht? 4. Wofür wird TCP eingesetzt?

Mehr

Rechnernetze Übung 12

Rechnernetze Übung 12 Rechnernetze Übung 12 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juli 2011 Sie kennen sicherlich sogenannte Web-Mailer, also WWW-Oberflächen über die Sie Emails lesen und vielleicht

Mehr

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

ARCHITEKTUR VON INFORMATIONSSYSTEMEN ARCHITEKTUR VON INFORMATIONSSYSTEMEN File Transfer Protocol Einleitung Das World Wide Web war ja ursprünglich als verteiltes Dokumentenverwaltungssystem für die akademische Welt gedacht. Das Protokoll

Mehr

Techniken der Projektentwicklung

Techniken der Projektentwicklung Themen Threading Netzwerk Techniken der Projektentwicklung Threading & Netzwerkprogrammierung Ingo Lütkebohle Termin 13 Ingo Lütkebohle Techniken der Projektentwicklung 1 Themen heute Themen Threading

Mehr

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

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Netzwerkprogrammierung PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Steffen Helke, Marcus Mews Technische Universität Berlin Fachgebiet Softwaretechnik 17. Juni 2013 Übersicht Grundlagen

Mehr

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

Networking. Motivation Grundlagen von Sockets Klasse Socket Klasse ServerSocket Exceptions Klasse URL Networking Motivation Grundlagen von Sockets Klasse Socket Klasse ServerSocket Exceptions Klasse URL Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Netzwerkprogrammierung in Java Programme schreiben,

Mehr

Rechnernetze II WS 2012/2013. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404

Rechnernetze II WS 2012/2013. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Rechnernetze II WS 2012/2013 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 5. Mai 2014 Betriebssysteme / verteilte Systeme Rechnernetze

Mehr

UDP-, MTU- und IP- Fragmentierung

UDP-, MTU- und IP- Fragmentierung UDP-, MTU- und IP- Fragmentierung Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de Universität Bielefeld Technische Fakultät Stand der Veranstaltung 13. April 2005 Unix-Umgebung 20. April 2005 Unix-Umgebung

Mehr

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

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

Mehr

Anwendungsprotokolle: HTTP, POP, SMTP

Anwendungsprotokolle: HTTP, POP, SMTP Anwendungsprotokolle: HTTP, POP, SMTP TCP? UDP? Socket? eingesetzt, um Webseiten zu übertragen Zustandslos Nutzt TCP Client schickt Anfrage ( HTTP-Request ) an Server, Server schickt daraufhin Antwort

Mehr

Internetprotokoll TCP / IP

Internetprotokoll TCP / IP Internetprotokoll TCP / IP Inhaltsverzeichnis TCP / IP - ALLGEMEIN... 2 TRANSPORTPROTOKOLLE IM VERGLEICH... 2 TCP / IP EIGENSCHAFTEN... 2 DARPA MODELL... 3 DIE AUFGABEN DER EINZELNEN DIENSTE / PROTOKOLLE...

Mehr

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

Computeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet Computeranwendung in der Chemie Informatik für Chemiker(innen) 5. Internet Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL5 Folie 1 Dr. Jens Döbler Internet Grundlagen Zusammenschluß

Mehr

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht Themen Anwendungsschicht DNS HTTP Anwendungsschicht OSI-Schicht 7, TCP/IP-Schicht 4 Dienste für den Nutzer/Anwender Unabhängig von den niederen Schichten Verschiedene Dienste bzw. Services DNS HTTP FTP,

Mehr

Domain Name Service (DNS)

Domain Name Service (DNS) Domain Name Service (DNS) Aufgabe: den numerischen IP-Adressen werden symbolische Namen zugeordnet Beispiel: 194.94.127.196 = www.w-hs.de Spezielle Server (Name-Server, DNS) für Listen mit IP-Adressen

Mehr

Referat: Netzwerkprogrammierung in Java

Referat: Netzwerkprogrammierung in Java 1.)ISO/OSI und Internet Referenzmodell Referat: Netzwerkprogrammierung in Java ISO/OSI 7 Schichtenmodell (1-Bitübertragung, 2-Sicherung, 3-Netzwerk, 4-Transport, 5-Sitzung, 6- Darstellung, 7-Anwendung)

Mehr

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

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) 1 FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) In dieser Kurseinheit geht es um verteilte Anwendungen, bei denen wir sowohl ein Client- als auch ein

Mehr

4. Thread- und Netzwerk- Programmierung

4. Thread- und Netzwerk- Programmierung 4. Thread- und Netzwerk- Programmierung 4.1 Ziel dieses Kapitels 4.2 Prozeß versus Thread 4.3 Thread-Programmierung 4.4 TCP/IP Grundlagen 4.5 TCP Programmierung 3. TCP/IP und Threads 3-1 4.1 Ziel dieses

Mehr

Advanced Network Programming

Advanced Network Programming 1 Advanced Network Programming Inhalt Netzwerkkommunikation Protokolle Verbindungsaufbau, -kontrolle, Datentransfer Socketprogrammierung TPC und UDP Client- und Serversockets verbindungsorientierte Server

Mehr

Client/Server-Systeme

Client/Server-Systeme Frühjahrsemester 2011 CS104 Programmieren II / CS108 Programmier-Projekt Java-Projekt Kapitel 3: /Server-Architekturen H. Schuldt /Server-Systeme Ein zweischichtiges /Server-System ist die einfachste Variante

Mehr

Netzwerkprogrammierung

Netzwerkprogrammierung Netzwerkprogrammierung 1 Netzwerkverbindungen Das Entwurfsziel von Java war: Einfache Verbindung zwischen Rechnern und SetBox-Systemen. Das Standardpaket java.net hilft bei allen Netzwerkverbindungen.

Mehr

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

Kapitel 4: Design von Client/Server-Software. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes Kapitel 4: Design von Client/Server-Software Definition: Client und Server Client Ein Client ist ein Dienstnutzer, der von einem Server aktiv einen Dienst anfordert und anschließend darauf wartet, dass

Mehr

TCP/IP-Protokollfamilie

TCP/IP-Protokollfamilie TCP/IP-Protokollfamilie Internet-Protokolle Mit den Internet-Protokollen kann man via LAN- oder WAN kommunizieren. Die bekanntesten Internet-Protokolle sind das Transmission Control Protokoll (TCP) und

Mehr

Client/Server-Systeme

Client/Server-Systeme Frühjahrsemester 2013 CS108 Programmier-Projekt Kapitel 3: /Server-Architekturen H. Schuldt /Server-Systeme Ein zweischichtiges /Server-System ist die einfachste Variante eines verteilten Systems (also

Mehr

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

Chapter 11 TCP. CCNA 1 version 3.0 Wolfgang Riggert,, FH Flensburg auf der Grundlage von Chapter 11 TCP CCNA 1 version 3.0 Wolfgang Riggert,, FH Flensburg auf der Grundlage von Rick Graziani Cabrillo College Vorbemerkung Die englische Originalversion finden Sie unter : http://www.cabrillo.cc.ca.us/~rgraziani/

Mehr

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

2.3 Applikationen. Protokolle: TCP/IP. Telnet, FTP, Rlogin. Carsten Köhn 2.3 Applikationen Telnet, FTP, Rlogin Carsten Köhn Protokolle: TCP/IP Application umfasst Dienste, die als Prozesse des Betriebssystems ausgeführt werden SMTP, FTP, HTTP, MIME Transport regelt die Kommunikation

Mehr

15 Transportschicht (Schicht 4)

15 Transportschicht (Schicht 4) Netzwerktechnik Aachen, den 16.06.03 Stephan Zielinski Dipl.Ing Elektrotechnik Horbacher Str. 116c 52072 Aachen Tel.: 0241 / 174173 zielinski@fh-aachen.de zielinski.isdrin.de 15 Transportschicht (Schicht

Mehr

TCP/IP Protokollstapel

TCP/IP Protokollstapel TCP/IP Protokollstapel IP: Hauptaufgabe ist das Routing (Weglenkung) und Adressierung IP ist ein ungesichertes, verbindungsloses Protokoll Arbeitet auf Schicht 3 UDP: User Datagram Protocol UDP ist ein

Mehr

Internet - Grundzüge der Funktionsweise. Kira Duwe

Internet - Grundzüge der Funktionsweise. Kira Duwe Internet - Grundzüge der Funktionsweise Kira Duwe Gliederung Historische Entwicklung Funktionsweise: -Anwendungen -Rechnernetze -Netzwerkschichten -Datenkapselung -RFC -Verschiedene Protokolle (Ethernet,

Mehr

Jan Distel. Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java

Jan Distel. Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java Jan Distel Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java Jan Distel - Diplomarbeitskolloquium 02.07.2010 1. Allgemeines 2. Datagram-Sockets 3. Sockets 4. Server-Sockets 5. Socket-Channels

Mehr

7 TCP/IP-Dienste konfigurieren

7 TCP/IP-Dienste konfigurieren 7 TCP/IP-Dienste konfigurieren In diesem Kapitel lernen Sie die Begriffe Ports,Sockets und Connections kennen (LPI 1: 109.1). den Zusammenhang der Ports von TCP/IP-Diensten mit der Datei /etc/services

Mehr

Informatik B. Vorlesung 17 Netzwerkprogrammierung. Dr. Ralf Kunze

Informatik B. Vorlesung 17 Netzwerkprogrammierung. Dr. Ralf Kunze Vorlesung 17 Netzwerkprogrammierung 1 Rückblick URL-Objekt Socket Verbindung zu einem Server aufbauen Webserver aus Clientsicht 2 Serverimplementation Server bauen keine eigene Verbindung auf, sondern

Mehr

DV-Praktikum. Probleme mit der Hausaufgabe?

DV-Praktikum. Probleme mit der Hausaufgabe? DV-Praktikum Probleme mit der Hausaufgabe? Internet Was ist das Internet? Internet Was ist das Internet? Das Internet ist eine Infrastruktur; ein globales Netzwerk von Netzwerken und Einzelrechnern, in

Mehr

Gefahren aus dem Internet 1 Grundwissen April 2010

Gefahren aus dem Internet 1 Grundwissen April 2010 1 Grundwissen Voraussetzungen Sie haben das Internet bereits zuhause oder an der Schule genutzt. Sie wissen, was ein Provider ist. Sie wissen, was eine URL ist. Lernziele Sie wissen, was es braucht, damit

Mehr

Client Server -Anwendungen mit UML und Java

Client Server -Anwendungen mit UML und Java 3. Informatiktag NRW Client-Server mit UML und Java - 1/40 29.3.2004 Client Server -Anwendungen mit UML und Java 3. Informatiktag NRW 29.3.04 Barbara Leipholz-Schumacher Euregio-Kolleg, Würselen 3. Informatiktag

Mehr

Router 1 Router 2 Router 3

Router 1 Router 2 Router 3 Network Layer Netz 1 Netz 2 Netz 3 Router 1 Router 2 Router 3 Router 1 Router 2 Router 3 Netz 1, Router 1, 1 Netz 1, Router 1, 2 Netz 1, Router 2, 3 Netz 2, Router 2, 2 Netz 2, Router 2, 1 Netz 2, Router

Mehr

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

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. Übung 7 1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. 2.) Charakterisieren Sie kurz das User Datagram Protokoll (UDP) aus der Internetprotokollfamilie

Mehr

Modul 123. E-Mail und FTP. Unit 6. E-Mail (pop / smtp), FTP (activ/passive Mode) FTP-Server mit Microsofts IIS

Modul 123. E-Mail und FTP. Unit 6. E-Mail (pop / smtp), FTP (activ/passive Mode) FTP-Server mit Microsofts IIS Modul 123 Unit 6 (V1.1) E-Mail und FTP Zielsetzung: E-Mail (pop / smtp), FTP (activ/passive Mode) FTP-Server mit Microsofts IIS Technische Berufschule Zürich IT Seite 1 Grundlagen : Das Store-and-Forward

Mehr

Vorlesung SS 2001: Sicherheit in offenen Netzen

Vorlesung SS 2001: Sicherheit in offenen Netzen Vorlesung SS 2001: Sicherheit in offenen Netzen 2.2 Transmission Control Protocol - TCP 2.3 User Datagram Protocol - UDP Prof. Dr. Christoph Meinel Informatik, Universität Trier & Institut für Telematik,

Mehr

1. Mit dem Socket zum Server

1. Mit dem Socket zum Server 1. Mit dem Socket zum Server Die URL-Verbindungen sind schon High-level-Verbindungen und wir müssen uns nicht erst um Übertragungsprotokolle wie HTTP oder noch tiefer TCP/IP kümmern. Aber alle höheren

Mehr

Mobilkommunikation. REST-basierte Dienste für verteilte, mobile Anwendungen. A. Gillert, A. Grebe, M. Hüffmeyer, C. Vogt

Mobilkommunikation. REST-basierte Dienste für verteilte, mobile Anwendungen. A. Gillert, A. Grebe, M. Hüffmeyer, C. Vogt Mobilkommunikation REST-basierte Dienste für verteilte, mobile Anwendungen A. Gillert, A. Grebe, M. Hüffmeyer, C. Vogt Fachhochschule Köln, Institut für Nachrichtentechnik Fachhochschule Köln Anton Gillert,

Mehr

7 Transportprotokolle

7 Transportprotokolle 7 Transportprotokolle 7.1 Transmission Control Protocol (TCP) 7.2 User Datagram Protocol (UDP) 7.3 Ports 7.1 TCP (1) IP-Pakete (Datagramme) von A nach B transportieren reicht nicht interaktive Verbindungen

Mehr

Rechnernetze I. Rechnernetze I. 9 Anwendungsprotokolle SS 2014

Rechnernetze I. Rechnernetze I. 9 Anwendungsprotokolle SS 2014 Rechnernetze I SS 2014 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 10. August 2015 Betriebssysteme / verteilte Systeme Rechnernetze I (1/13) i Rechnernetze

Mehr

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

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Timer Sockets SMTP-Client 2 / 26 Timer Mit einem Timer können bestimmte Aktionen periodisch wiederkehrend durchgeführt

Mehr

Bemerkung: Jede Ressource sollte über einen. Ressource A. Ressource. eindeutigen Namen verfügen. Ressource F. Ressource. Ressource E.

Bemerkung: Jede Ressource sollte über einen. Ressource A. Ressource. eindeutigen Namen verfügen. Ressource F. Ressource. Ressource E. 10 Hypertext Transfer Protocol 10.1 Hypermedia 10.2 Universal Resource Identifier 10.3 Nachrichten 10.4 Proxy 10.5 Cache 10.6 Authentifizierung 10.7 S Hypermedia: A D C B E F Bemerkung: Jede sollte über

Mehr

Teil 1: Ein einfacher Chat

Teil 1: Ein einfacher Chat Teil 1: Ein einfacher Chat Verteilte Systeme / Chat Der Weg ist das Ziel Im Laufe dieses Projektes werden Sie schrittweise ein Chat-Programm entwickeln. Dabei werden Sie einiges über den Aufbau des Internets

Mehr

Was ist ein Netzwerk? Informatik B - Objektorientierte Programmierung in Java. Vorlesung 22: Netzwerkprogrammierung/ Kommunikation 1.

Was ist ein Netzwerk? Informatik B - Objektorientierte Programmierung in Java. Vorlesung 22: Netzwerkprogrammierung/ Kommunikation 1. Universität Osnabrück 1 Was ist ein Netzwerk? 3 - Objektorientierte Programmierung in Java Vorlesung 22: Netzwerkprogrammierung/ Kommunikation 1 SS 2004 Prof. Dr. F.M. Thiesing, FH Dortmund Verbindung

Mehr

Basisinformationstechnologie I

Basisinformationstechnologie I Basisinformationstechnologie I Sommersemester 2013 24. April 2013 Rechnerkommunikation II Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // jan.wieners@uni-koeln.de

Mehr

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

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Network Address Translation (NAT) Prof. B. Plattner

Network Address Translation (NAT) Prof. B. Plattner Network Address Translation (NAT) Prof. B. Plattner Warum eine Übersetzung von Adressen? Adressknappheit im Internet Lösungen langfristig: IPv6 mit 128-bit Adressen einsetzen kurzfristig (und implementiert):

Mehr

Beispiel einer Anwendung: HTTP

Beispiel einer Anwendung: HTTP Beispiel einer Anwendung: HTTP» HTTP: Hypertext Transfer Protocol The Hypertext Transfer Protocol (HTTP) is an application-level protocol with the lightness and speed necessary for distributed, collaborative,

Mehr

KN 20.04.2015. Das Internet

KN 20.04.2015. Das Internet Das Internet Internet = Weltweiter Verbund von Rechnernetzen Das " Netz der Netze " Prinzipien des Internet: Jeder Rechner kann Information bereitstellen. Client / Server Architektur: Server bietet Dienste

Mehr

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen 2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen Dienste des Internets Das Internet bietet als riesiges Rechnernetz viele Nutzungsmöglichkeiten, wie etwa das World

Mehr

Kapitel 6 Internet 1

Kapitel 6 Internet 1 Kapitel 6 Internet 1 Kapitel 6 Internet 1. Geschichte des Internets 2. Datenübertragung mit TCP/IP 3. Internetadressen 4. Dynamische Zuteilung von Internetadressen 5. Domain-Namen 6. Internetdienste 2

Mehr

9RUOHVXQJDo 13.00-14.00 Uhr Hörsaal 2 EG 0006 3UDNWLNXP Do 14.00-16.00 Uhr PC-Labor U1075

9RUOHVXQJDo 13.00-14.00 Uhr Hörsaal 2 EG 0006 3UDNWLNXP Do 14.00-16.00 Uhr PC-Labor U1075 Praxis der Internet-Programmierung mit Java, Apache und XML (JAX) Institut für Informatik Martin.Guggisberg@unibas.ch KWWSMD[QDQRZRUOGRUJ -$9$ ;0/ $3$&+( Organisatorisches =HLWHQ" 9RUOHVXQJDo 13.00-14.00

Mehr

y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier

y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier +\SHUWH[W7UDQVIHU3URWRFRO +773 (ULN:LOGH 7,.² (7+= ULFK 6RPPHUVHPHVWHU hehuvlfkw y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier y Universal Resource Identifier

Mehr

Netzwerke für den Einsatz mit dem BIM-Server

Netzwerke für den Einsatz mit dem BIM-Server Netzwerke für den Einsatz mit dem BIM-Server Kurzerklärungen...2 LAN - Local Area Network (Lokales Netzwerk)...4 LAN-Beispiele...4 Beispiel 1: LAN mit zwei Computern ohne weitere Netzwerkgeräte...4 Beispiel

Mehr

Protokolle. Konrad Rosenbaum, 2006/7 protected under the GNU GPL & FDL

Protokolle. Konrad Rosenbaum, 2006/7 protected under the GNU GPL & FDL TCP/IP: Standard Protokolle Konrad Rosenbaum, 2006/7 DNS - Domain Name System hierarchische, global verteilte Datenbank löst Namen in IP-Adressen auf Host hat einen primären Nameserver, der Fragen selbst

Mehr

Client-Server mit Socket und API von Berkeley

Client-Server mit Socket und API von Berkeley Client-Server mit Socket und API von Berkeley L A TEX Projektbereich Deutsche Sprache Klasse 3F Schuljahr 2015/2016 Copyleft 3F Inhaltsverzeichnis 1 NETZWERKPROTOKOLLE 3 1.1 TCP/IP..................................................

Mehr

Verteilte Systeme - 1. Übung

Verteilte Systeme - 1. Übung Verteilte Systeme - 1. Übung Dr. Jens Brandt Sommersemester 2011 1. Rechnerverbünde Kommunikationsverbund: Beispiele: E-Mail (SMTP, POP/IMAP), Instant Messaging (XMPP, IRC, ICQ,...), Newsgroups (NNTP)

Mehr

Proseminar: Website-Management-Systeme

Proseminar: Website-Management-Systeme Proseminar: Website-Management-Systeme Thema: Web: Apache/Roxen von Oliver Roeschke email: o_roesch@informatik.uni-kl.de Gliederung: 1.) kurze Einleitung 2.) Begriffsklärung 3.) Was ist ein Web? 4.) das

Mehr

Rechnernetze I. Rechnernetze I. 11 Anwendungsprotokolle SS 2012

Rechnernetze I. Rechnernetze I. 11 Anwendungsprotokolle SS 2012 Rechnernetze I SS 2012 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 23. März 2012 Betriebssysteme / verteilte Systeme Rechnernetze I (1/12) i Rechnernetze

Mehr

Internet Basics oder Wie funktioniert das Internet? Stefan Sporrer

Internet Basics oder Wie funktioniert das Internet? Stefan Sporrer Internet Basics oder Wie funktioniert das Internet? Stefan Sporrer Geschichte des Internets Geschichte des Internet 1967-1969: Entwicklung der Vernetzung von Computern (Advanced Research Projekt Agency

Mehr

Rechnernetze I SS 2014. Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404. Stand: 9.

Rechnernetze I SS 2014. Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404. Stand: 9. echnernetze I SS 2014 oland Wismüller Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 9. Mai 2014 oland Wismüller Betriebssysteme / verteilte Systeme

Mehr

Internet Security 2009W Protokoll WLAN Relay

Internet Security 2009W Protokoll WLAN Relay Internet Security 2009W Protokoll WLAN Relay Manuel Mausz, Matr. Nr. 0728348 manuel-tu@mausz.at Aldin Rizvanovic, Matr. Nr. 0756024 e0756024@student.tuwien.ac.at Wien, am 23. Dezember 2009 1 Inhaltsverzeichnis

Mehr

Web Grundlagen zum Spidering

Web Grundlagen zum Spidering May 22, 2009 Outline Adressierung 1 Adressierung 2 3 4 Uniform Resource Locator URL Jede Seite im Internet wird eindeutig über eine URL identiziert, z.b. http://www.christianherta.de/informationretrieval/index.html

Mehr

Programmierkurs Kapitel 3

Programmierkurs Kapitel 3 Kapitel 3 Dipl.-Wirt.-Inf. Stefan Fleischer Dipl.-Wirt.-Inf. Ulrich Wolffgang Komponente: Downloader Interface für Downloader entwickeln import java.io.ioexception; import java.net.url; public interface

Mehr

Netzwerk Linux-Kurs der Unix-AG

Netzwerk Linux-Kurs der Unix-AG Netzwerk Linux-Kurs der Unix-AG Andreas Teuchert 18./19. Juli 2012 Netzwerk-Protokolle legen fest, wie Daten zur Übertragung verpackt werden unterteilt in verschiedene Schichten: Anwendungsschicht (HTTP,

Mehr

Internet und WWW Übungen

Internet und WWW Übungen Internet und WWW Übungen 6 Rechnernetze und Datenübertragung [WEB6] Rolf Dornberger 1 06-11-07 6 Rechnernetze und Datenübertragung Aufgaben: 1. Begriffe 2. IP-Adressen 3. Rechnernetze und Datenübertragung

Mehr

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

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung String Operationen i = 25 text1 = "Ich bin " text2 = " Jahre alt" print (text1 + str(i) + text2) print ("ich bin", i, "Jahre alt") print ("ich bin %s Jahre alt" % i) >>> Ich bin 25

Mehr

Informationstechnik für Ingenieure

Informationstechnik für Ingenieure Informationstechnik für Ingenieure Computernetze und Internet Teil 2: Anwendungsschicht Wintersemester 2004/2005 Prof. Dr. Thomas Wieland Übersicht Teil 2 2.1 Internet-Anwendungen 2.2 Protokolle der Anwendungsschicht

Mehr

Der TCP/IP- Administrator

Der TCP/IP- Administrator Detlef Knapp Praxishandbuch Der TCP/IP- Administrator Aufbau, Betrieb und Troubleshooting von TCP/l P-Netzen w _ Postfach rosnacn 12 n Ü 09 ua Fon 0 82 33/23-94 92 J^^INTEREST 86438 Kissing Fax 0 82 33/23-74

Mehr

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

Network Address Translation (NAT) Warum eine Übersetzung von Adressen? Network Address Translation () Prof. B. Plattner Warum eine Übersetzung von Adressen? Adressknappheit im Internet Lösungen langfristig: IPv6 mit 128-bit Adressen einsetzen kurzfristig (und implementiert):

Mehr

Internetanwendungstechnik (Übung)

Internetanwendungstechnik (Übung) Internetanwendungstechnik (Übung) IPv6 Stefan Bissell, Gero Mühl Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Kommunikations- und Betriebssysteme (KBS) Einsteinufer 17, Sekr.

Mehr

Man liest sich: POP3/IMAP

Man liest sich: POP3/IMAP Man liest sich: POP3/IMAP Gliederung 1. Einführung 1.1 Allgemeiner Nachrichtenfluss beim Versenden von E-Mails 1.2 Client und Server 1.2.1 Client 1.2.2 Server 2. POP3 2.1 Definition 2.2 Geschichte und

Mehr

Rechnernetze I. Rechnernetze I. 9 Anwendungsprotokolle SS 2014

Rechnernetze I. Rechnernetze I. 9 Anwendungsprotokolle SS 2014 echnernetze I SS 2014 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 9. Mai 2014 Betriebssysteme / verteilte Systeme echnernetze I (1/10) i echnernetze

Mehr

Wie organisiert ihr Euer menschliches «Netzwerk» für folgende Aufgaben? an alle an ein bestimmtes an ein bestimmtes an alle an ein bestimmtes

Wie organisiert ihr Euer menschliches «Netzwerk» für folgende Aufgaben? an alle an ein bestimmtes an ein bestimmtes an alle an ein bestimmtes Computernetzwerke Praxis - Welche Geräte braucht man für ein Computernetzwerk und wie funktionieren sie? - Protokolle? - Wie baue/organisiere ich ein eigenes Netzwerk? - Hacking und rechtliche Aspekte.

Mehr

NAT und Firewalls. Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de. Universität Bielefeld Technische Fakultät

NAT und Firewalls. Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de. Universität Bielefeld Technische Fakultät NAT und Firewalls Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de Universität Bielefeld Technische Fakultät Stand der Veranstaltung 13. April 2005 Unix-Umgebung 20. April 2005 Unix-Umgebung 27. April 2005

Mehr

Ausgewählte Implementierungsprobleme

Ausgewählte Implementierungsprobleme Ausgewählte Implementierungsprobleme Rebecca Tiarks 19. Januar 2009 1 / 55 Inhaltsverzeichnis 1 2 2 / 55 Adressierung in IP-Netzen IP-Adresse 32 Bit lang zur besseren Lesbarkeit schreibt man die Bytes

Mehr

TCP. Transmission Control Protocol

TCP. Transmission Control Protocol TCP Transmission Control Protocol Wiederholung TCP-Ports Segmentierung TCP Header Verbindungsaufbau-/abbau, 3 - WayHandShake Timeout & Retransmission MTU maximum transfer Unit TCP Sicher Verbunden? Individuelle

Mehr

Einführung. Internet vs. WWW

Einführung. Internet vs. WWW Einführung Bernhard Plattner 1-1 Internet vs. WWW "the Internet is the entirety of all computers which are interconnected (using various physical networking technologies) and employ the Internet protocol

Mehr

Betriebskonzept E-Mail Einrichtung

Betriebskonzept E-Mail Einrichtung Betriebskonzept E-Mail Einrichtung www.bolken.ch Klassifizierung öffentlich - wird an die E-Mail Benutzer abgegeben Versionenkontrolle Version Status Verantwortlich Datum 4.0 Genehmigt Gemeinderat 25.03.2015

Mehr

Client-Server-Prinzip

Client-Server-Prinzip Client-Server-Prinzip Kommunikation im Internet erfolgt nach dem Client-Server-Prinzip: Client sendet eine Anfrage (fordert eine Dienstleistung an) Server sendet die Antwort (bietet eine Dienstleistung

Mehr

Grundlagen TCP/IP. C3D2 Chaostreff Dresden. Sven Klemm sven@elektro-klemm.de

Grundlagen TCP/IP. C3D2 Chaostreff Dresden. Sven Klemm sven@elektro-klemm.de Grundlagen TCP/IP C3D2 Chaostreff Dresden Sven Klemm sven@elektro-klemm.de Gliederung TCP/IP Schichtenmodell / Kapselung ARP Spoofing Relaying IP ICMP Redirection UDP TCP Schichtenmodell Protokolle der

Mehr

Theoretische Aspekte

Theoretische Aspekte Webserver mit Win32 API Datum: 04.02.03 Autor: Michael Hielscher Homepage: www.genesis-x7.de Theoretische Aspekte Aufbau eines Webservers Als erstes sollte man im Abschnitt Multithreaded SocketServer nachlesen

Mehr

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

VS3 Slide 1. Verteilte Systeme. Vorlesung 3 vom 22.04.2004 Dr. Sebastian Iwanowski FH Wedel VS3 Slide 1 Verteilte Systeme Vorlesung 3 vom 22.04.2004 Dr. Sebastian Iwanowski FH Wedel Inhaltsverzeichnis für die Vorlesung Zur Motivation: 4 Beispiele aus der Praxis Allgemeine Anforderungen an Verteilte

Mehr

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

Damit zwischen den verschiedenen Rechnern überhaupt ein Austausch möglich ist, muss man sich über das was und wie verständigen. Webanwendungen Protokolle Damit zwischen den verschiedenen Rechnern überhaupt ein Austausch möglich ist, muss man sich über das was und wie verständigen. So wurde eine Sammlung von Vereinbarungen zusammengestellt,

Mehr

CS1024 Internetbasierte Systeme

CS1024 Internetbasierte Systeme CS1024 Internetbasierte Systeme Bachelor of Science (Informatik) Einleitung Internet und Netzwerk-Programmierung Th Letschert IBS Einleitung Seite 2 Th Letschert IBS Dozent Dr. Th. Letschert Lernziele

Mehr

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

Breitband ISDN Lokale Netze Internet WS 2009/10. Martin Werner, November 09 1 Telekommunikationsnetze 2 Breitband ISDN Lokale Netze Internet Martin Werner WS 2009/10 Martin Werner, November 09 1 Breitband-ISDN Ziele Flexibler Netzzugang Dynamische Bitratenzuteilung Effiziente Vermittlung

Mehr

Scaling IP Addresses. CCNA 4 version 3.0 Wolfgang Riggert,, FH Flensburg

Scaling IP Addresses. CCNA 4 version 3.0 Wolfgang Riggert,, FH Flensburg Scaling IP Addresses CCNA 4 version 3.0 Wolfgang Riggert,, FH Flensburg auf der Grundlage von Rick Graziani, Cabrillo College Vorbemerkung Die englische Originalversion finden Sie unter : http://www.cabrillo.cc.ca.us/~rgraziani/

Mehr

Kontrollfragen: Internet

Kontrollfragen: Internet Kontrollfragen: Internet 1. Zählen Sie mindestens 5 Internet-Dienste auf. 2. Was ist eine virtuelle Verbindung? Vergleichen Sie eine virtuelle TCP/IP-Verbindung mit der Leitungsvermittlung (analoge Telefonverbindung).

Mehr

Transportschicht (Schicht 4) des Internet

Transportschicht (Schicht 4) des Internet Transportschicht (Schicht 4) des Internet Es gibt zwei Transportprotokolle: TCP = Transmission Control Protocol UDP = User Datagram Protocol a) TCP: baut virtuelle Verbindung auf (verbindungsorientiert)

Mehr

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

DNÜ-Tutorium HS Niederrhein, WS 2014/2015. Probeklausur Probeklausur Aufgabe 1 (Allgemeine Verständnisfragen): 1. Wie nennt man die Gruppe von Dokumenten, in welchen technische und organisatorische Aspekte (bzw. Standards) rund um das Internet und TCP/IP spezifiziert

Mehr

Lösungen zu 978-3-8045-5387-3 Informations- und Telekommunikationstechnik Arbeitsheft, 3. Auflage

Lösungen zu 978-3-8045-5387-3 Informations- und Telekommunikationstechnik Arbeitsheft, 3. Auflage Lösungen zu ---- Informations- und Telekommunikationstechnik Arbeitsheft,. Auflage. HANDLUNGSSCHRITT a) Aufgabe Die TCP/IP-Protokollfamilie verwendet logischen Adressen für die Rechner (IP-Adressen), die

Mehr

Internetzugang Modul 129 Netzwerk Grundlagen

Internetzugang Modul 129 Netzwerk Grundlagen Netzwerk Grundlagen Technische Berufsschule Zürich IT Seite 1 TCP-IP-Stack Aus M117 bekannt! ISO-OSI-Referenzmodell International Standard Organization Open Systems Interconnection 4 FTP, POP, HTTP, SMTP,

Mehr