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>&#160;</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">&Uuml;bersicht</a>
<a href="Chancen.htm">Weiter</a>
<a href="PersKomm.htm">Zur&uuml;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

Documentos relacionados