10. Paketvermittlung nach X.25 - Institut für Verteilte Systeme
Transcrição
10. Paketvermittlung nach X.25 - Institut für Verteilte Systeme
10. Paketvermittlung nach X.25 • Standard-Empfehlung der ITU für Paketvermittlungsnetze. • ITU = Internationale Telekommunikations Union in Genf ( ehemals CCITT, Comitée Consultatif ... ). • International verfügbar: - in 120 Ländern, 210 verschiedene PSPDNs, in Deutschland DATEX-P Dienst, in Frankreich TRANSPAC ... • Abkürzung PSPDN: = "Packet Switched Public Data Networks", ≠ CSPDN = "Circuit Switched Public Data N.". ≠ FPLMTS = "Future Public Land-based Mobile Telecommunication System" ! • Virtuelle Verbindungen (VC): - permanente virtuelle Verbindungen, - gewählte virtuelle Verbindungen. • Auch für private Netze anwendbar: - z.B. mit deutscher Variante DIN ISO 802.8. • Internet vs. X.25: 190 IP-Protokoll anstelle von X.25 Paketen, X.25 z.T. als Zubringer oder Trägersystem, reichhaltiges Angebot von Diensten, öffentliches Finanzierungsmodell ... Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 10.1. Definition in drei Ebenen • X.25 definiert eine Schnittstelle zum Netz. • Wie das Netz implementiert, ist bleibt offen. • X.25 Schichtung: 4 3 2 1 - Non X.25 Protokolle auf Schicht 4 .. 7, Netzwerkschicht (Packet Level Protocol), Sicherungsschicht (Frame Level Protocol), Physikalische Schicht: Schicht 3 Schicht 2 Kopf A C Daten (TPDU) I FCS Schicht 1 191 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 10.2. Physikalische Schicht: • Meist Standleitung zum ersten Vermittlungs– rechner des "X.25 Providers". • Synchrone Modemstrecke nach X.21: - ähnlich Datex-L, normalerweise X.21 Stecker, evtl. modifizierter V.24 Stecker, jedoch keine Wähleinrichtung. • ISDN als Zubringer zum X.25 Netz (X.31): - So-Schnittstelle anstelle der Modemstrecke, Zugang über D-Kanal mit 16 KBit/sec, Zugang über B-Kanal mit 64 KBit/sec, Wählfunktion für B-Kanal. 10.3. Sicherungsschicht: • Punkt-zu-Punkt Zugang ans Netz: - Fehlerbehandlung auf der Zubringerleitung, - Lokale Flußkontrolle. • Rahmenbildung mit HDLC Protokoll: - Asynchronous balanced Mode, gen. LAPB. - Ausnahmsweise „ARM“, genannt LAP. 192 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 10.4. Netzwerkschicht 10.4.1. Logische Kanäle • Verbindungsaufnahme durch das Netz hindurch mit entfernten Teilnehmern. • Viele logische Kanäle über einen Draht: - Einsparen von Leitungen zum (Host)-Computer, - aufbauen von sogen. virtuellen Verbindungen. - maximal 4095 virtuelle Verbindungen. • Einführung einer neuen, von der HDLCAdresse unabhängigen Adressierung: - Teilnehmernummer beim Verbindungsaufbau, - Kanalnummern virtuelle Verbindungen: 0 1 Permanente virtuelle Verbindungen ankommende vermittelte virtuelle Verbindungen ankommende und abgehende vermittelte virtuelle Verbindungen abgehende vermittelte virtuelle Verbindungen Ungenutzte Kanalnummern 4095 193 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 10.4.2. Call-Request Paket • Adresse: - Das Call-Request Paket trägt die eventuell weltweite Adresse des Kommunikationspartners und die logische Kanalnummer, über welche die Verbindung laufen soll, - Nur zu Beginn ist eine Adresse mit maximal 15 Dezimalstellen erforderlich, - Adresse von Sender und Empfänger. • Adressformat nach X.121: - Länge der gerufenen Nummer (4 Bit), - Länge der rufenden Nummer (4 Bit), - Gerufene Nummer (bis 14 BCD Ziffern): -- Land (3 Ziffern), Paketnetz (1 Ziffer), -- Vorwahl + Teilnehmernummer. - Rufende Nummer (bis 14 BCD Ziffern): -- Land (3 Ziffern), Paketnetz (1 Ziffer), -- Vorwahl + Teilnehmernummer. • Kanalnummer: - Für den anschließenden Datenverkehr genügt dann eine 12-Bit Kanalnummer, - Die lokalen Kanalnummern der Kommunikationspartner sind üblicherweise verschieden, - Man vergleiche Unterkapitel "Virtual Channel Switching". • national unterschiedliches „Facilities Field”: – Geschlossene Benützergruppe, Fenstergröße, 194 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende – Gebührenübernahme, Durchsatzklassen … • Unter Umständen bis 32 Byte Benützerdaten: - gewünschter Dienst, - Messdaten, - Paßwort ... 10.4.3. Virtuelle Verbindung aufbauen: • X.25 Terminologie: - call request, incoming call (call indication), call accepted (call response), connected (call confirmation). Anrufende DEE CALL_Request, Kanalnum.=X, Ziel#, Quell# CALL_Connected Kanalnum.=X, Ziel#, Quell# 195 X.25 Paketvermittlungsnetz Angerufene DEE INCOMING_CALL, Kanalnum.=Y, Ziel#, Quell# CALL_Accepted, Kanalnum.=Y Ziel#, Quell# Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 10.4.4. Clear Request Packet • Logische Kanalnummer. • Pakettyp '00010011' (siehe Paketformat). • Grund der Auslösung: - normale Auslösung, - Merkmal nicht unterstützt, - Protokollfehler, Überlastung ... • Weitere Leistungsmerkmale: - Verbindungsweiterleitung, Einzelpaket ... 10.4.5. Virtuelle Verbindung auslösen: • Keine End-to-End Auslösebestätigung. Auslösende DEE X.25 Paketvermittlungsnetz Ausgelöste DEE CLEAR_Request, Kanalnum.=X CLEAR_Indication, Kanalnum.=Y CLEAR_Confirm Kanalnum.=X CLEAR_Confirm, Kanalnum.=Y 196 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 10.5. Paketformat 10.5.1. Steuerpaket: Sicherungsebene 0 0 01 Logischer Kanal Pakettyp / Befehl 1 Zusätzliche Felder: - Teilnehmer # - Fehlercode ... 10.5.2. Datenpaket: Sicherungsebene Q D Mod Logischer Kanal Bestätigung M Sequenz# 0 Transport-Daten / T-SDU 197 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende • Die Kennung "Datenpaket" braucht nur 1 Bit. • Ähnlichkeit des Typfeldes mit dem HDLCKontrollfeld, hier aber für logischen Kanal. • Datenfeld z.B. maximal 256 Bytes. • Keine Prüfsumme, da schon von HDLCSchicht abgedeckt. • Qualifier Bit wird den höheren Protokollschichten zur Verfügung gestellt, z.B. für deren Kontrollmeldungen. • Modulus Feld zur Bezeichnung der Sequenznummern Modulo 8 (= 01) oder Modulo 128 (= 10). Das Pakettypfeld wird im zweiten Fall verlängert. • Flußkontrolle mit Sequenznummern, RNR und RR Paketen pro logischen Kanal. Nicht zu verwechseln mit HDLC-RNR. 198 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 10.5.3. Semantik der Bestätigung • Bestätigung mit lokaler Signifikanz: Sender X.25 Paketvermittlungsnetz Empfänger Daten, D=0 Bestätigung Daten, D=0 Bestätigung • Ende-zu-Ende Signifikanz Sender X.25 Paketvermittlungsnetz Empfänger Daten, D=1 Daten, D=1 Bestätigung Bestätigung • Dies garantiert aber noch nicht, daß das Datenpaket auch auf Disk abgelegt wurde … 199 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 10.6. Weitere Pakettypen • Reset und Restart : - bei Protokollfehlern, - bei Verstopfung des Netzes, - beim Wiederanlaufen von Netzknoten. • Restart für den ganzen Anschluß. • Reset für einzelne logische Kanäle. • End-to End Flusskontrolle mit RR und RNR. • Interrupt Paket: - Unterbrechung in einem logischen Kanal, - z.B. Verwerfen des Ausgabedatenstromes, - z.B. Abbrechen der aktuellen Transaktion, - geordnetes Wiederaufsetzen des Datenstromes, ... 200 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 10.7. X.25 Zugang über PAD 10.7.1. Aufgabe des PAD • PAD = Packet Assembly/Disassembly. • Grundsätzlich ist der Zugang zu einem X.25 Netz paketorientiert. Herkömmliche Terminale und Modems arbeiten jedoch oft noch zeichenorientiert. • Zeichenorientierter Zugang über PAD: PAD X.25 X.28 Host X.3 X.29 Paketvermittlungsnetz 10.7.2. PAD-Protokolle: X.28: Protokoll und Befehle vom Terminal an den PAD. X.29: Protokoll und Befehle vom Host an den PAD (evtl. Q-Bit gesetzt). X.3: Satz von Parametern für die Verbindung. Im PAD untergebracht. 201 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 10.7.3. PAD-Parameter • Paketabschlusskriterien: - maximale Paketlänge, - Paketabschlußzeichen, - Idle-Timer. • Steuerzeichen: - Zeichenkombination für PAD-Recall. Füllzeichen beim Zeilenrücklauf, Tabulatornachbildung, Flußkontrollzeichen, Breaksymbol, • Eintreten in den Befehlsmodus (PAD-recall): - Dialog mit PAD und nicht mit Anwendung, Auslösen und Aufbau der Verbindung. Ändern aller PAD-Parameter, Unterbrechungsanforderung ... • Byteformat: - Einstellen der Datenrate, - Anzahl Datenbits, - Byteparität … • Automatische Datenratenerkennung. 202 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 11. Transportebene 11.1. Aufgaben im OSI Referenzmodell 11.1.1. Paketisierungsfunktion: • Die Netzwerkschicht kann nur Pakete bis zu einer vorgebenen Länge entgegennehmen: - MTU = Maximum Transfer Unit, - erleichtert die Pufferverwaltung im Netz, - keine Monopolisierung langsamer Leitungen. • Pakete ~ Segmente ~ Fragmente. • Lange Nachrichten in Segmente aufspalten. • Segmente beim Empfänger reassemblieren. E4 T_Data.req N_Data.req 203 E3 ... E4 N_Data.ind T_Data.ind Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 11.1.2. Dienstequalität / QoS • Die Transportschicht garantiert, daß die angebotene Kommunikation die geforderte Qualität hat. • Dienstequalität muss ausgehandelt werden. • Durchsatz: - Maximaler Durchsatz, Mittlerer Durchsatz, Übertragungsverzögerung, Varianz der Verzögerung. • Zuverlässigkeit: - Restfehlerrate, Verbindungsaufbau innert vorgegebener Zeit, Verbindungsabbau innert vorgegebener Zeit, Wahrscheinlichkeit eines Verbindungsabbaus durch das Netz. • Schutz: - kein Schutz, gegen Manipulation, Schutz gegen Mithören, gegen Manipulation und Mithören. • Kosten ! 204 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 11.2. ISO Transportprotokoll • ISO hat nicht nur die 7 Schichten definiert, sondern auch eine konkrete Protokollfamilie. • Insbesondere fünf verbindungsorientierte Transportprotokolle: • ISO TP-0 (einfache Klasse): - keine Fehlerbehebung, - zuverlässiges Netz vorausgesetzt, - eine Transportverb. auf eine Netzwerkverb. • ISO TP-1 (Einfache Fehlerbehebungsklasse): - Fehlerbehebung nur in Zusammenarbeit mit Netzwerkschicht. • ISO TP-2 (Multiplexklasse): - mehrere Transportverb. auf eine Netzwerkverb, - zuverlässiges Netz vorausgesetzt. - keine eigene Fehlerbehebung. • ISO TP-3 (Fehlerbehebungs und Multiplex): - alle Eigenschaften der Klassen 1 und 2. • ISO TP-4 (Fehlererkennung und -behebungsklasse): - alle Eigenschaften der Klassen 1 und 2, + eigene Fehlerbehebung. 205 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12. Kommunikation im Internet 12.1. Internet-Protokollhierarchie • Historisch gewachsen in der Unix-Kultur. • Vier Schichten anstelle von 7 in OSI. • Die oberste Schicht umfasst: - OSI Application Layer, - OSI Presentation Layer, - OSI Session Layer. • 4 Internet Schichten: OSI Anwendungsnahe Protokolle FTP, HTTP, ... End-zu-End Übertragung 206 TCP / UDP Routenwahl, Internet-Layer IP NetzwerkKartentreiber LLC Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.1.1. Protokollfamilie • UDP: - Verbindungsaufbau entfällt, - keine Ablieferungsgarantie, - keine Sequenzgarantie. • TCP: - Verbindungsaufbauphase, - Sichere Ablieferung, - Fluss-Steuerung ... FTP SMTP Http rlogin Telnet TFTP UDP TCP ICMP ARP NFS IP RARP LLC Ethernet, Token Ring, ... • Java-Klassen stützen sich übrigens ausschliesslich auf IP. 207 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.1.2. TCP/IP Paketformat: • TCP / IP Kommunikation über ein Ethernet: - LLC Schicht, - IP Schicht (enthält Position im 8 Bytestrom), - TCP Schicht (enthält Position im Bytestrom), Empfänger ( Ethernet-Adresse ) Empfänger ( Fortsetzung ) Sender ( Ethernet-Adresse ) Sender ( Fortsetzung ) Längen oder Typfeld Zeux Version IHL Diensttyp Paketlänge Kennung Flags Fragmentoffset T-Live Protokoll Header-Prüfsumme Absender ( IP-Adresse ) Empfänger ( IP-Adresse ) Optionen / Füllbytes Absenderport Empfängerport TCP-Stream Byteposition TCP - Bestätigung (Ack) D-off Reserviert Mtyp Kreditfenster Prüfsumme Dringlichkeitsanzeiger Optionen / Füllbytes Daten von der höheren Ebene ( FTP, HTTP, NNTP, SMTP ... ) Prüfsumme ( CRC-32 ) 208 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.1.3. UDP/IP Paketformat: • Einfacher als TCP, oft für Medienströme. • Streamposition aus TCP entfällt. • verbindungslose Komm. über ein Ethernet: - LLC Schicht, - IP Schicht (enthält Position im 64 Bytestrom), - UDP Schicht: Empfänger ( Ethernet-Adresse ) Empfänger ( Fortsetzung ) Sender ( Ethernet-Adresse ) Sender ( Fortsetzung ) Längen oder Typfeld Zeux Version IHL Diensttyp Paketlänge Kennung Flags Fragmentoffset T-Live Protokoll Header-Prüfsumme Absender ( IP-Adresse ) Empfänger ( IP-Adresse ) Optionen / Füllbytes Absenderport Empfängerport Prüfsumme Meldungslänge Daten von der höheren Ebene ( TFTP, Telnet, ... ) Prüfsumme ( CRC-32 ) 209 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.2. Adressierung 12.2.1. URL: Universal Resource Locator: • Symbolische Namen für Protokoll, Port und Rechner (& Datei / Verzeichnis ): - ftp://enterpr.informatik.uni-ulm.de:21/Pub - telnet://voyager:80/index.html • bezeichnet ein Objekt im Netz: - einen Benutzer, - eine Resource, - einen Rechner, - einen Prozess, - eine Datei . . . • Numerisch als IP-Adresse, z.B. 134.60.77.73: - 134.60 für das Netz der Universität Ulm, - 77 für das Subnetz "Verteilte Systeme", - 73 für den Rechner "Enterprise". • Evtl. mit Port & Dateinamen: - 134.60.77.74 : 80/index.html - Port 80 für Web-Service. • Default Ports für verschiedene Protokolle: - http: 80, - ftp: 23 ... • Evtl. mit Telnet an irgendeinem Port testen. • Relative URLs für Elemente von Web-Seiten. 210 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.2.2. DNS - Domain Name Service • Gestattet die Umwandlung eines symbolischen Namens in ein IP-Adresse: severin.rz.uni-ulm.de => 134.60.1.111 • URL-Extensions ursprünglich als Länderkennung, heute überregional: - de, com, edu, org, fr, uk, jp, dk, ch, it ... • Namensraum wird in Domains eingeteilt, die eine Hierarchie auffalten. • Manuelle Verwaltung des Namensraumes: - durch eine lokale Datei "LMHOSTS", durch Anfragen bei Name Servern (DNS), rekursive Anfragen in einer NS-Hierarchie, Caching von alten Anfragen im Server. • Domain Präfix für abgekürzte Namen: - severin ( .rz.uni-ulm.de), - happy ( .informatik.uni-ulm.de), - werden normalerweise manuell eingetragen und durch einen Administrator vergeben. • Automatische Vergabe von IP-Adressen und Konfigurierung durch DHCP-Server (Dynamic Host Configuration Program). 211 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.2.3. IP-Adressen: • Geographisch benachbarte Rechner tragen ähnliche Adressen. Damit wird die Weglenkung für die Datenpakete erleichtert. • Class A Adressen: 1 – 126 Host Address Part • Class B Adressen: 128.1 – 191.254 Host Address Part • Class C Adressen: 192.0.1 – 223.255.254 Host • Class D Adressen: 1110 Multicast - Kennung • Class E Adressen: 1111 Broadcast im Segment • Substruktur bei Class B & C Adressen. • Die Substruktur entspricht nicht immer den physikalischen Netzsegmenten. 212 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.2.4. Subnetzadressmaske: 255. 255. 255. 240 1111 1111 1111 1111 1111 1111 1111 0000 • Bestimmt, wann ein Router für die Weiterleitung von Paketen angesprochen wird. • Es wird ein Subnetz mit maximal 16 Stationen gebildet (z.B. 89.9.1.80 bis ...95). • Die Kommunikation zwischen 80..95 läuft direkt auf dem lokalen Netz. • Pakete zu anderen Stationen laufen über einen Router (fälschlich "Gateway"): 99 80 213 81 82 95 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.3. Winsock Sockets • Kommunikationsendpunkte. • Werden an einen Port gebunden, der für eine bestimmten Dienst steht. • API-Methoden (z.B. WinSock): socket: erzeugt neuen Komm.-Endpunkt. bind: Port-Nummer im Socket eintragen. listen: Server Status etablieren (Q-Len). accept: wartet auf einen "Anrufer" (Client) connect: verbindet mit fremden Port. shutDown: Deaktivieren. recv: empfangen aus Verbindung. send: senden in Verbindung. recvFrom: verbindungslos empfangen. sendTo: 214 verbindungslos senden. Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.3.1. Winsock verbindungslos: Server: socket() Client: socket() bind() block until request connect() bind() sendTo() recvFrom() sendTo() recvFrom() 215 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.3.2. Winsock verbindungsorientiert: socket() Server: bind() listen() Client: socket() accept() block until request connect() connect() send() recv() send() 216 recv() Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.4. DatagramSocket in Java: • • • • Behandelt Pakete einzeln, nicht als Stream. Hat lokale IP-Adresse & einen Port. Keine Sequenzgarantie. Keine Quittung. 12.4.1. Datagramme austauschen: • Empfängerklasse empfängt 5 Pakete. • Senderklasse sendet 10 Pakete. • Programmausgabe: main end sent 1 1 Send time is >02/03/98 20:25:57 2 Send time is >02/03/98 20:26:19 sent 2 sent 3 3 Send time is >02/03/98 20:26:20 sent 4 4 Send time is >02/03/98 20:26:21 sent 5 5 Send time is >02/03/98 20:26:22 empfaenger end sent 6 sent 7 sent 8 sent 9 sent 10 sender end 217 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.4.2. Programm "Datagram": • Etwas gezwungene Ausnahmebehandlung. • Steuerung mit Wartezeiten. • DatagramPacket: - mit Zieladresse (IP-Addresse & Port), - mit byte[] Paketpuffer ... • Manipulation der empfangenen Bytes: - kein Typecast für generische Paketinhalte, - String.getBytes(..) erzeugt Byte-Array, - Bytes umwandeln in 16-Bit Unicode ... import java.io.*; import java.net.*; import java.awt.*; import java.util.*; public class SocketThread extends Thread{ String msg; int packCount=0; DatagramSocket sock; DatagramPacket pack; byte[] buff=new byte[99]; InetAddress ipAddr; static final int myPort=4711; static final String ipName=new String("127.0.0.1"); public static void main(String[]s){ Epfngr epf=new Epfngr(); Sender snd=new Sender(); epf.start(); snd.start(); System.out.println("main end"); } } 218 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende class Sender extends SocketThread{ public void run(){ while (packCount++ <10){ try { sleep(999);} catch ( InterruptedException ix){} sendOne( packCount ); }; sock.close(); System.out.println("sender end"); } void sendOne(int outPacks){ int len; Date now= new Date(); msg=outPacks+" Send time is>"+ now.toLocaleString(); len=msg.length(); msg.getBytes(0,len,buff,0); try{sock=new DatagramSocket(myPort+outPacks+1); ipAddr=InetAddress.getByName(ipName); pack=new DatagramPacket(buff,len,ipAddr,myPort); sock.send(pack); System.out.println("sent "+outPacks); } catch (IOException ex) {} } } class Epfngr extends SocketThread{ public void run(){ try {sock=new DatagramSocket(myPort); pack=new DatagramPacket(buff,99); while ( packCount++ <5 ) { sock.receive(pack); msg= new String(buff,0); System.out.println(msg.trim()); } }; catch (IOException ex) {}; sock.close(); System.out.println("empfaenger end"); } } 219 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.5. ServerSocket in Java • Realisiert einen Server. • ServerSocket horcht auf einem best. Port. • Thread blockiert in sock.accept() bis sich ein Klient anmeldet. • Erst dann entsteht eine Connection zwischen zwei Ports. • Evtl. multithreaded für mehrere Klienten. • Der Server kann nun sein eigenes Protokoll abwickeln. • Meist sind vorgefertigte Protokollhandler nur für Klienten vorhanden (siehe sun.net...): - smtp: java.sun.net.smtp.smtpClient.class - nntp: java.sun.net.nntp.nntpClient.class - ftp: java.sun.net.ftp.ftpClient.class ... 220 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.5.1. Programm ServerDemo import java.io.*; import java.net.*; public class ServerDemo { public static void main(String[] s){ String msg; Socket conn; PrintStream out; ServerSocket sock; DataInputStream in; try{sock = new ServerSocket(8189); conn = sock.accept(); in = new DataInputStream(conn.getInputStream() ); out = new PrintStream(conn.getOutputStream() ); out.println("Hello, enter bye to exit.\r"); do{ msg= in.readLine(); out.println("echo: "+msg+"\r"); if (msg==null) break; if (msg.trim().equals("bye") ) break; } while(true); conn.close(); } catch (IOException ioX){ System.out.println(ioX); }; } } 221 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.5.2. Protokollstammbaum in Java • Zu finden unter java.sun.net. ... • Nicht in MS-java++ . NetworkClient TransferProtocolClient SmtpClient NntpClient FtpClient HttpClient IftpClient • Weitere Protokolle & Server von Netscape. • Handler für Dateiformate (MIME). • Ausschliesslich TCP/IP gestützt. • Insgesamt unübersichtlich. 222 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.6. WWW-Szenarium: • Zugriff über das Netz auf HTML-Seiten. • Darstellung der Seiten in einem Browser. • Hypertext-Links zur Navigation. Lokale Maschine (IP = 127.0.0.1) The Web Java Browser/Viewer http-Protokoll (port = 80) Web Service • World-Wide-Web Dienst: - 223 WWW-Prozess normalerweise über Port 80, Übertragung als formatierter ASCII-Text, Zusätzlich Bilder, Ton und Applets, LocalHost = 127.0.0.1 ... Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.6.1. Typische HTML-Seite: • Formatierung mit Tags: <xx> ... </xx> ... <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> <title>Die Technik dahinter</title> <meta name="GENERATOR" content="MSFrontPg1.1"> </head> <body> <p> </p> <h1 align=center>Die Technik hinter der Vernetzung </h1> <hr> <ul> <li><font size=6>PC Technik</font></li> <li><a href="file://c|/pswitchg.gif"> <font size=6>Paketvermittlung</font></a></li> <li><font size=6>Weltweite Vernetzung</font></li> <li><font size=6>ISDN und schnelle Netze</font></li> <li><font size=6>mit geringen Kosten</font></li> </ul> <hr> <h1> <a href="vortrag.htm">Übersicht</a> <a href="Chancen.htm">Weiter</a> <a href="PersKomm.htm">Zurück</a> </h1> </body> </html> 224 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.6.2. Beispielprogramm "URLStream": • Liest vom Port 80 eines Servers eine Seite. • Keine Formatierung, da hier kein Browser. • http, ftp, telnet, gopher, echo, news, ... import java.io.*; import java.net.*; public class URLStream{ public static void main(String[]s){ URL url; String zeile; URLConnection urlStream; InputStream iStream; DataInputStream diStream; try{ url=new URL("http://127.0.0.1/Technik.htm"); // http://www-vs.informatik.uni-ulm.de/index.html urlStream=url.openConnection(); iStream=urlStream.getInputStream(); diStream=new DataInputStream(iStream); while (true) { zeile=diStream.readLine(); if (zeile==null) break; System.out.println(zeile); } } catch(IOException iX) { System.out.println(iX.toString()); };}} 225 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.7. Internet Managementprotokolle ARP: Adress resolution protocol RARP: Reverse address resolution protocol DNS: Domain Name Service ICMP: Internet control message protocol IGMP: Internet group management protocol SNMP: RIP: FTP: Simple network management protcol Routing information protocol 12.8. Anwendungsprotokolle File transfer protocol SMTP: Simple mail transfer protocol NFS: Network file system NNTP: News network transfer protocol Telnet: Virtuelles Netzwerk Terminal. rLogin: Remote Login auf fremder Station HTTP: Hyper-text transfer protocol Archie: Datenbanksystem über FTP-Server Gopher: Allg. verteiltes Informationsystem 226 Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.9. Wellknown Ports • Einige der 65535 Ports sind zugeordnet: Port # 21 23 25 53 67 68 69 79 80 88 109 110 111 161 513 520 227 Protokoll FTP Telnet SMTP DNS Bootstrap Service Bootstrap Klient Trivial FTP Finger HTTP Kerberos Authentifizierung POP2 POP3 Sun RPC SNMP rLogin RIP Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.10. Neues IP Protokoll (IPv6) 12.10.1. Neuerungen • Auf Grund des gewaltigen Internet-Wachstums sind die Adressen knapp geworden. • Ende Jahr 2000 ca. 200 Millionen Benutzer. • Wegen der Subnetzorganisation können nicht alle 232 Adressen vergeben werden. • IPv4 ist das aktuelle Internetprotokoll: - weitgehend statische Adressenzuweisung, - ungenügender Adressbereich (32 Bit), - keine Durchsatzgarantien ... • IPv6 (Version 6) ist die nächste Version mit wesentlichen funktionalen Neuerungen: - 128 Bit Adressen, autom. Adresszuweisung, Vereinfachung des Paketkopfes, fakultative Paketkopferweiterungen. • Migration von IPv4 nach IPv6: - IPv4-Rechner in IPv6-Adressraum "mappen", - IPv6-Rechner aus IPv4 Netz heraus ansprechen. • erweitertes Dienstangebot: 228 Unterstützung mobiler Systeme, Autorisierung und Verschlüsselung, Synchronisierung von Datenströmen (MM), Durchsatzgarantien & Dienstqualiät möglich ... Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende 12.10.2. IPv6 Paketformat: Standardkopf 0 4 Optionale Erweiterungen 12 Vers. Verkehrsklasse Daten 24 16 32 Flussmarkierung (Flowlabel) Länge der Nutzlast (Payload) Nächster Kopf Teilstrecken 128 Bit Senderadresse 128 Bit Empfängeradresse • Standard Paketkopf evtl. mit Erweiterungen: - Versionsnummer - IPv4 oder IPv6. Verkehrsklasse z.B. als Dienstqualität. Flowlabel z.B. als Weg/Röhre durch das Netz. Nutzlast maximal 65535 Bytes, keine Fragm. Übergabe an folgenden Protokollhandler. maximal zulässige Teilstrecken, Hop Limit, • Verschiedene Adressenformate: 229 Unicast-, Multicast-, Anycast-Adressen, Aggregatable Global Unicast Address, Link-local Address (in Subnetz), Site-local Address. Rechnernetze, Winter 2002/2003 © P. Schulthess, M. Wende