1) Schichtenmodelle und Protokolle 1.1 Das OSI Schichtenmodell OSI Open Systems Interconnection Das OSI Modell wurde in den 80er Jahren von der ISO (International Standards Organization) entwickelt Beispiel: Verbindung über Telefon Menschen Telefon Vermittlung Virtuelle Verbindung Menschen Telefon Vermittlung Kabel Von einem rein technischen Blickwinkel sprechen wir nicht mit dem anderen Menschen, sondern mit dem Telefon, das wiederum mit der Vermittlungseinrichtung der Post kommuniziert. In der Vermittlung werden die elektrischen Impulse mittels Kabel zur anderen Vermittlung transportiert, weiter zum Telefon, wo diese elektrischen Signale wieder in akustische Signale umgewandelt werden. Sprechen die Kommunikationspartner nicht dieselbe Sprache, muss eine Schicht hinzugefügt werden: Engländer Dolmetsch Telefon Vermittlung Österreicher Dolmetsch Telefon Vermittlung Kabel Das OSI Modell besteht aus 7 Schichten: OSI Schicht TCP/IP Schicht Protokollbeispiel Einheiten Hardware 7 Anwendung (Application) Anwendung HTTP, FTP, HTTPS, SMTP Daten Layer 4-7 Switch 4 Transport (Transport) Transport TCP, UDP Segmente 3 Vermittlung (Network) Internet IP, Routing Protokolle (IGMP) Pakete (datagram) Router, Layer 3 Switch Ethernet, Token Ring Frames Switch, WLAN Access Point Bits Hub, Repeater, Kabel, usw. 6 Darstellung (Presentation) 5 Sitzung (Session) 2 Sicherung (Data Link) 1 BitübertragungPhys ical Layer Network Einer von vielen Merksprüchen: All People Seem To Need Data Processing Jede Schicht Realisiert spezifische Aufgaben Stellt der darüberliegenden Schicht ihre Dienste zur Verfügung Nutzt die Dienste der darunterliegenden Schicht Seite 1/29 Nur für schulinternen Gebrauch © WR 19/09/16 Durch dieses Modell werden die Aufgaben jeder Schicht klar definiert; Wird etwa ein Programm, das für eine Schicht geschrieben wurde, verändert, bleibt die Programme jeder anderen Schicht davon unberührt. Jede Schicht fügt beim Sender ein spezifische Information dazu, sodass das zu versendende Datenpaket in Schicht 1 am größten ist, beim Empfänger werden die Daten in jeder Schicht von den Protokollinformation befreit (entkapselt) Bildquelle: http://www2.themanualpage.org/networks/images/osi_com.gif Die 7 Schichten lassen sich in 2 Gruppen teilen, die anwendungsorientierte (Schicht 5-7) und die transportorientierte Schicht (1 bis 4.) Vom Standpunkt der Netzwerktechnik sind die transportorientierten Schichten interessant. Schicht 1 – Bitübertragungsschicht Physical Layer Die Bitübertragungsschicht ist die unterste Schicht. Diese Schicht stellt mechanische, elektrische und weitere funktionale Hilfsmittel zur Verfügung, um physikalische Verbindungen zu aktivieren bzw. deaktivieren, sie aufrechtzuerhalten und Bits darüber zu übertragen. Das können zum Beispiel elektrische Signale, optische Signale (Lichtleiter, Laser), elektromagnetische Wellen (drahtlose Netze) oder Schall sein. Die Aufgabe der Schicht 1 besteht also in der Übertragung der Signale; eine Absicherung findet nicht statt, sondern wird an Schicht 2 übertragen. Es muss festgelegt werden, welches Übertragungsmedium verwendet wird, welches Codierungsverfahren angewandt wird, welche Schnittstellen verwendet werden, wie die Pinbelegung ist, welche Leitungen für den Datentransfer und für die Steuersignale reserviert werden. Kabel, Modem, Hub, Repeater, Stecker usw sind die entsprechende Hardware für diese Schicht. Schicht 2 Data Link Layer Die Aufgaben der Schicht 2 sind die Absicherung der einzelnen Datenbits durch eine entsprechende Fehlererkennung, Empfangsbestätigung, Flusskontrolle (Verschiedene Geschwindigkeiten von Sender und Empfänger) sowie die Ermöglichung einer Adressierung in einem LAN. In Schicht 2 findet das framing, die Datenkapselung, statt. Es findet eine Fehlererkennung statt, jedoch keine Fehlerkorrektur. Ein Korrektursystem, das in Schicht 4 implementiert ist, ist auch nicht immer angebracht, wie etwa bei der Direktübertragung von Ton oder Bild. Seite 2/29 Nur für schulinternen Gebrauch © WR 19/09/16 Im Schicht 2 Header sind die sogenannten MAC (Media Access Control) Adressen der NICs enthalten, die eine eindeutige Adressierung des Empfängers erlauben. Unterschiede von Layer1 und Layer2: Layer 1 kann keine Hosts adressieren Layer 1 kann nicht mit oberen Layer kommunizieren Layer 2 kann mit dem LLC (Logical Link Control) mit Layer 3 kommunizieren Layer 1 beschreibt einen Bitstrom Layer 2 organisiert und gruppiert die Daten in frames Layer 2 verwendet eine flache Adressierung (keine Subnetze oder hierarchische Adressierung) Layer 1 kann nicht entscheiden,welcher Host im Netz senden soll um Kollísionen zu vermeiden, Layer 2 benutzt dazu die MAC Adresse Die ersten 2 OSI Layers entsprechen der LAN Spezifikation Data Link Layer LLC MAC Ethernet IEEE 802.3 IEEE 802.2 10 BASE T FDDI Physical Layer IEEE: IEEE 802.5 (Token Ring) Institute of Electrical and Electronical Engineers Die LLC ist für den gesicherten Informationsaustausch zuständig und ist hardwareunabhängig,, dass LLC Protokoll kommuniziert mit Schicht 3 und dem MAC Protokoll. Die Flusskontrolle, also die Kommunikation zwischen Kommunikationspartnern mit unterschiedlicher Übertragungsgeschwindigkeit, findet hier statt. Die MAC Ebene beschreibt die Art und Weise, wie im Netz auf das Übertragungsmedium zugegriffen wird. Der Standard IEEE 802.2 entspricht dem LLC. Der Standard IEEE 802.5 beschreibt die Übertragung in der Token Ring Topologie, 802.11 beschreibt die drahtlosen Netzwerke. Beispiel eines Frame Formats im Ethernet Standard Preamble Ziel Quelle 8 6 6 Die Zahlen geben Bytes an Preamble Zieladresse: Quelladresse Frame Type: Type 2 Daten 46-1500 CRC 4 Zum Synchronisieren für den Empfänger MAC Adresse MAC Adresse 0000-05DC reserviert für IEEE LLC 0800 Internet IP Version 4 8008 AT&T Corporation 8137 Novell IPX 80D5 IBM SNA Die Zieldresse nur aus 1 bestehend ist für den broadcast reserviert. Steht im frame type 8137, so folgen die Daten dem IPX Protokoll. Die MAC Adresse ist eine 48 Bit Adresse der Netzwerkkarte, die weltweit eindeutig ist, Die ersten 24 Bits sind vom Hersteller, die zweiten 24 Bits geben die Kartennummer des Herstellers an. Beispiel: 00 A4 31 12 DF A6 (Hexadezimal) --------------------------------------arp ist das Address Resolution Protocol auf der Ebene 2, das eine Liste der Hosts im Netz auflöst und auch auf jedem PC zwischenspeichert: arp -a Seite 3/29 gibt eine Liste aller im Cache befindlichen PC‘s an Nur für schulinternen Gebrauch © WR 19/09/16 Nach einem Broadcast ping, ping -b 172.16.23.255, sieht man, dass alle PC‘s im Netz nun im Cache des ARP gespeichert sind. --------------------------------------Packets, frames, Übertragungsfehler und ihre Behebung Daten werden zum Versenden aus folgenden Gründen in Pakete zusammengefasst: Fehler können leichter korrigiert werden Hardware kann den Benutzern gleichmäßig zur Verfügung gestellt werden Minimierung der Wartezeiten Paket ist ein allgemeiner Begriff eines kleinen Datenblocks; zusammen mit der spezifischen Hardware oder Software wird von einem frame (Rahmen) gesprochen. Beispiel eines frames: RS232 Standard; spezifiziert die ASCII Codierung, aber nicht wie die Kontaktaufnahme stattfinden soll. Byte Stuffing: Übertragung von Binärdateien Reine Textdateien können problemlos übertragen werden, da die Steuerinformationen im Bereich der nichtdruckbaren Zeichen unter dem ASCII Code 32 sich befinden. Wenn jedoch Binärdateien übertragen werden sollen, können auch im zu übertragenden Datenpaket Steuerinformationen enthalten sein. Das Byte stuffing ist ein Verfahren, das es möglich macht, auch Binärdateien zu übertragen. SOH Daten SOH EOT EOT Start of Header End of Text Wenn nun SOH, EOT in den Daten enthalten sein können, wird das Verfahren des Byte stuffings angewendet: Soh Eot Esc esc x esc y esc z esc Soh Soh Esc z eot Esc x Esc y eot Erkennung der Übertragungsfehler a) Hinzufügen eines Paritybits, even oder odd Parity, Sender und Empfänger haben die gleiche Parität eingestellt Funktioniert nicht, wenn mehrere Bits verändert werden. Beispiel Gerade Parität: Sender Byte Parity Bit 01010101 0 11100000 1 11100001 0 Empfänger Byte Parity Bit 01010101 0 11100100 1 11111001 0 Fehler wird erkannt Fehler wird nicht erkannt Werden jedoch 2 Bits in einem Byte verändert, wird der Fehler nicht erkannt. Außerdem ist die Redundanz sehr hoch, es werden 12,5 % für die Fehlerüberprüfung verwendet. Seite 4/29 Nur für schulinternen Gebrauch © WR 19/09/16 b) Checksummen Sender 0001 0010 0011 0001 Checksum 1 2 3 1 Empfänger 0001 1 0010 2 0011 3 0010 2 7 Checksum 8 Fehler wird erkannt Auch hier werden natürlich nicht alle Fehler bemerkt c) Cyclic Redundancy Check (CRC) Kann mathematisch durch ein Polynom dargestellt werden X ... Daten P(x) = X16 + X12 +X5 +1 Die letzten 16 oder 32Bit von P(x) werden an die Daten hinzugefügt und als CRC bezeichnet Data CRC Der CRC ist das heutige Standardverfahren im Internet. Schicht 3: Network Layer Schicht 3 ermöglicht den Datenaustausch zwischen mehreren LAN‘s. Die Aufgabe von Layer 3 liegt in der Wegwahl. Das Datenpaket der 3. Schicht wird datagram genannt (frame ... 2.Schicht, Segment ... 4.Schicht). Mit Hilfe einer logischen Netzwerkadresse kann die physikalische Adresse des PC bestimmt werden. Source Netz Knoten Schicht 3 Header Destination Netz Schicht 4 Daten Schicht 4 Daten Schicht 4 Daten Knoten Im Netzwerk gibt es 2 Adressen, die MAC Adresse (Layer 2) und die IP Adresse (Layer 3) Die Adresszuweisung kann statisch erfolgen (die Adresse des PC wird mit der Hand eingetragen) oder dynamisch. Bei der dynamischen Adressierung wird das DHCP (Dynamic Host Configuration Protocol) verwendet, das dem PC eine Adresse zuweist: wenn ein PC bootet, kontaktiert er den Server (mit seiner MACAdresse) worauf der Server dem PC eine IP - Adresse zuweist; die Tabelle von MAC Adresse und IP- Adresse werden am Server gespeichert. Eine andere Art der dynamischen Adressierung ist das ARP oder RARP (Reverse Address Resolution Protocol): ARP: Der PC will an einen anderen PC senden, hat seine IP Adresse, aber nicht seine MAC Adresse: er sendet daher einen ARP Request: „Wer hat die IP Adresse 172.16.23.12 ?“. Der PC mit dieser Adresse sendet darauf seine MAC Adresse, die der Empfänger in den ARP Cache abspeichert. RARP: Hier hat der PC seine eigene MAC-Adresse, aber nicht seine IP-Adresse. Anwendungsbeispiel für Schicht 3: Routing von einem logischen Netz zum anderen. Schicht 4: Transport Layer Schicht 4 Header Schicht 5 Daten Das Datenpaket heißt Segment. Die OSI Schichten 1-3 arbeiten in der Regel verbindungslos. In der Schicht 4 kann nun eine Verbindung zwischen Hosts bereitgestellt werden. Aus der Sicht des Benutzers existiert diese Verbindung immer, real existiert sie nur in dem Zeitraum, in dem Daten versendet werden. Verzögert sich der Verbindungsaufbau, werden die anstehenden Daten zwischengespeichert. Seite 5/29 Nur für schulinternen Gebrauch © WR 19/09/16 Schicht 4 ist für die korrekte Reihenfolge versendeter Segmente verantwortlich, überprüft also etwaigen Datenverlust und fordert fehlende Daten wieder an. Schicht 5 Session Layer (Kommunikationsschicht) Zu den Aufgaben der Schicht gehören Auf und Abbau einer Verbindung und die Dialogsteuerung. Remote login mit telnet oder ssh verwenden z.B. diese Schicht bei der Authentifizierung mit Passwort. Schicht 6 Presentation Layer (Darstellungsschicht) Sorgt für eine einheitliche Darstellung der Daten. Datenverschlüsselung und Datenkompression gehören in diese Schicht. 2 verschiedene PC‘s haben unter Umständen verschiedene interne Darstellungen von Buchstaben, Integer oder floating point Zahlen. Diese Schicht stellt also sicher, dass die Daten, die PC1 aussendet, auch von PC2 gelesen werden können. Schicht 7 Application Layer (Anwendungsschicht) Ein Schicht 7 Protokoll gibt an, wie eine Anwendung das Netzwerk verwendet. Wie etwa eine Textverarbeitung einen File auf einen Server abspeichert. Diese Schicht ist dem Benutzer am nächsten. (NFS, Dateidienste, Druckerdienste, alle Anwendungsprogramme) Seite 6/29 Nur für schulinternen Gebrauch © WR 19/09/16 1.2 Die TCP/IP Protokollfamilie Das OSI Schichtenmodell wurde in den 80-er Jahren eingeführt, in denen das Internet noch nicht aktuell war. TCP/IP ist auf UNIX Rechnern die Grundausstattung, das Protokoll wurde in den 70-er Jahren in den USA vom Department of defense (Dod) entwickelt und wird auch als dod 4 Schichtenmodell oder als Internet Layering Modell bezeichnet. Obwohl das OSI Modell als theoretische Grundlage des Netzwerkverkehrs gilt hat sich in der Paxis das TCP/IP Schichtenmodell durchgesetzt. Das TCP/IP Schichtenmodell: Application Transport Internet Network Interface Schicht 1: Hardwareschicht und Organisation von Daten in frames, ähnlich Schicht 1 und 2 im OSI Modell Schicht 2:Spezifiziert Datenformat, die übers Internet versendet werden. Forwarding, routing. Schicht 3: Sichert verlässlichen Datenverkehr Schicht 4: Layer 5, 6 und 7 des OSI Modells Bildquelle: www.netzmafia.de OSI Modell Application Internet Modell Application Presentation Nicht spezifiziert Session Nicht spezifiziert Transport Transport Network Internet Datalink Physical Layer 1 Network Interface Seite 7/29 Nur für schulinternen Gebrauch telnet FTP TCP Protokolle SMTP http UDP IP Ethernet Token Ring Physical Layer © WR PP 19/09/16 Eine Anordnung der Protokolle in einem Graphen: FTP HTTP SMTP DNS ping TCP DNS TFTP UDP ICMP IP Ethernet ATM WLAN Abkürzungen und Beschreibung: FTP HTTP SMTP POP3 IMAP DNS TFTP TCP UDP IP RIP ICMP DHCP File Transfer Protocol, zum effizienten Filetransfer Hypertext Transfer Protocol, wird zum surfen mit Browsern verwendet Sendmail Transfer Protocol, zum Senden von E-Mail Post office Protocol 3, zum Empfangen von E-Mail Internet Message Application Protocol, ein verbesserter Nachfolger von POP3 Domain Name Service,Auflösung von www-namen in IP Adressen : www.bulme.at = 193.171.122.180 Trivial File Transfer Protocol, ein einfaches FTP ohne zusätzliche Befehle Transport Control Protocol, sichert verlässlichen Transfer User Datagram Protocol,wie TCP, aber es findet keine Kontrolle über Datenverlust statt, bei Audio- oder Videoübertragungen Internet Protocol, Das Internet Protokoll Routing Information Protocol, Routinginformationen innerhalb eines Netzverbundes werden ausgetauscht Înternet Control Message Protocol, gibt Statusmeldungen an andere Protokolle oder Anwendungen weiter. Beispiel ist der Befehl ping Dynamic Host Control Protocol, zur Zuweisung von dynamisch vergebenen IP Adressen innerhalb eines Netzes 1.3 Das Internet Protokoll Version 4 Eine IP - Adresse besteht aus einem Netzteil und einem Hostteil und umfasst 32 Bit. Ein Host ist ein PC, Workstation oder Mainframe, der eine Internetadresse besitzt. IP - Adresse Netzwerkanteil Hostanteil Der Netzwerkanteil gibt die Netznummer an, der Hostanteil beschreibt die Adresse des Hosts innerhalb des Netzes. Geschrieben werden die IP- Nummern in 4 Zahlen von 0 bis 255. die sogenannte dotted decimal notation. Beispiel: 10000001 00001001 00110000 00000011 129 9 48 3 ist die IP-Nummer 129.9.48.3. Seite 8/29 Nur für schulinternen Gebrauch © WR 19/09/16 Die Netze werden in mehrere Klassen eingeteilt: Klasse A: Der Netzteil besteht aus den ersten 8 Bits, wobei das erste Bit 0 ist, der Hostanteil besteht aus 24 Bits. 0 xxxxxxx Hostanteil Das erste Byte gibt die Netznummer an, also gibt es 128 Netznummern, jedes dieser Netze kann 2 24 = 16 Millionen Hosts besitzen. Die erste Zahl dieser Ip Adressen liegt zwischen 1 und 127 Klasse B: 1 0 14 Bit beliebig Hostanteil Der Netzteil besteht aus 16 Bits, wobei die ersten Bits 1 und 0 sind, der Hostanteil ist 16 Bits Die ersten 2 Bytes geben die Netznummer an, die letzten 2 Bytes geben die Anzahl der Hosts pro Netz an (216 = 65536) Die Anzhal der Netze beträgt 64 x 256 = 16384 Die erste Zahl der IP Adressen liegt also zwischen 10 000000 128 10 111111 191 Klasse C: 1 1 0 und 21 Bit beliebig Hostanteil Der Netzteil besteht aus 24 Bit, wobei die ersten 3 Bits 110 darstellen, der Hostanteil ist bei 8 Bits Die ersten 3 Bytes geben die Netznummer an, pro Netz gibt es also 256 Adressen und 221 = 2 097 152 Netze dieser Klasse, wobei die erste Zahl dieser Adressen zwischen 192 und 223 liegt. Klasse D: 1 1 224 –239 1 Klasse E: 1 1 0 Multicast Adresse 240 – 255 1 die erste Zahl 1 die erste Zahl Reserved for future use Adressklasse Klasse A Klasse B Klasse C Klasse D Klasse E Anzahl der Netze 128 16384 2097152 Anzahl der Hosts 16777214 65534 255 1. Byte der IP Adresse 1-126 128-191 192-223 224-239 240-255 Folgende Adressen werden im Internet nicht geroutet, dh. von den Routern nicht weitergesendet, sondern werden für den internen Gebrauch, also für das Intranet verwendet. Diese Adressen werden auch als private Adressen oder Intranetadressen bezeichnet; für die Klassen A,B und C wurde je ein Bereich für die Intranetadressen reserviert. Klasse A: Klasse B: Klasse C: 10.0.0.0 172.16.0.0 192.168.0.0 bis bis bis 10.255.255.255 172.31.255.255 192.168.255.255 Damit kann jede Organisation ein auf TCP/IP basierendes Intranet aufbauen, das eine Verbindung zum Internet besitzt, das jedoch durch die internen Adressen von diesem geschützt ist. Dabei unterscheidet man zwischen Network Address Translating (NAT) und Masquerading. Das NAT übersetzt jede einzelne interne Adresse in je eine externe Adresse, der Router benötigt dazu nur eine Zuordnungstabelle. Die internen Rechner benötigen, um mit dem Internet zu kommunizieren, keine externe Adresse. Seite 9/29 Nur für schulinternen Gebrauch © WR 19/09/16 NAT: Bild: http://www.netzmafia.de/skripten/netze/netz8.html Beim Maskieren einer Adresse werden alle internen Adressen mit einer externen Adresse versehen. Im Internet ist nun für alle internen Adressen nur die eine externe Adresse sichtbar. Es werden zwar Internetadressen für andere Zwecke gespart, jedoch können die internen Rechner ohne Proxy nicht mehr von außem angesprochen werden. Masqerading: Bild: http://www.netzmafia.de/skripten/netze/netz8.html Die Länge des Netzanteils der IP Adresse wird mit einem Schrägstrich an die IP Adresse angehängt oder extra als Netzmaske geschrieben: Seite 10/29 Nur für schulinternen Gebrauch © WR 19/09/16 Beispiel: Die IP Adresse 172.16.25.34/24 hat einen Netzanteil von 24 Bit. Damit verbleiben für den Hostanteil 8 Bit, also können 2 hoch 8 =256 Adressen in diesem Netz vergeben werden. Die Netzmaske von 24 Bit wird in der dotted decimal notation geschrieben: 11111111 11111111 11111111 00000000 255 255 255 0 Netzmaske: 255.255.255.0 Die Angaben 1) 172.16.25.34/24 2) 172.16.25.34, Netzmaske 255.255.255.0 sind gleichbedeutend. Spezielle Adressen: Für jedes Netz werden spezielle Adressen benötigt: Für den Host 172.16.25.34/24 sind folgende Adressen reserviert: 172.16.25.0 Netzwerkadresse (die erste Adresse des Netzes) 172.16.25.255 Broadcastadresse (die letzte Adresse des Netzes) 127.0.0.1 Loopbackadresse zum Testen 255.255.255.0 Netzmaske (24 Bits werden mit 1 gesetzt) 2 Hosts befinden sich im selben Netz, wenn ihr Netznummer gleich ist. Wenn sich 2 Hosts im selben Netz befinden, können sie über einen Hub oder Switch (oder auch mit einer direkten Verbindung oder WLAN) kommunizieren. Sie benötigen dazu keinen Router. Die Netznummer (auch Netz ID genannt) wird mit Hilfe der AND Funktion berechnet: IP Adresse AND Netzmaske Bsp: Berechne die Netzadresse für den Host 172.16.25.34/24 IP-Adresse: 172 16 25 34 10101100 00010000 00011001 00100010 Netzmaske: 255 255 255 0 11111111 11111111 11111111 00000000 -------------------------------------------------------------------------------AND liefert 10101100 00010000 00011001 00000000 die Netznummer 172 16 25 0 Da die Netznummer die niedrigste Adresse im Netz ist, 2 hoch 8 = 256 Adressen im Netz sind, kann die Broadcastadresse mit 172.16.25.255 sofort angegeben werden. Jeder PC besitzt neben seiner IP Adresse noch diese Broadcastadresse (Rundrufadresse), die für alle PC's im Netz gleich ist. Ein Datenpaket, das an die Broadcastadresse verschickt wird, erhält somit jeder PC. Subnetting Da die öffentlichen, also nicht privaten Adressen, nicht verschwendet werden sollen, kleine Firmen jedoch nur wenige IP Adressen benötigen, werden sogenannte Subnetze oder Teilnetze vergeben. Beispiel: Der PC mit der IP Adresse 172.16.25.150/28 soll ins Netz gestellt werden. Wie lautet die Broadcastadresse, die Netzadresse und die Netzmaske ? 28 Bits sind für das Netz reserviert also 4 Bits für die einzelnen PC’s sim Netz, 24=16 PC’s Die Netzmaske besteht aus 28 Bit, die auf 1 gesetzt sind und 4 Bit sind Null. Netzmaske: Netzmaske: 11111111 255 11111111 255 11111111 255 11110000 240 Die Netznummer lässt sich durch ein logisches UND von IP Adresse und Netzmaske berechnen: IP-Adresse 172.16..25.150 ist binär 10101100 00010000 00011001 10010110 Netzmaske 255.255.255.240 ist binär 11111111 11111111 11111111 11110000 Netznummer 172.16.25.144 10101100 00010000 00011001 10010000 Beispiel 2: Befinden sich die 2 PC's im selben Netz? PC 1: 192.168.100.12 Netzmaske 255.255.254.0 PC 2: 192.168.101.254 Netzmaske: 255.255.254.0 Seite 11/29 Nur für schulinternen Gebrauch © WR 19/09/16 Das Internet Protokoll ist der wesentliche Bestandteil des Internets: Die Funktionen umfassen: ● Definieren des Datagrams, die grundlegende Übertragungseinheit des Internets ● Definiert das Adressschema des Internets ● Transportiert die Daten von Schicht 2, der Netzwerkschicht, zu Schicht 4, der TCP Transportschicht ● Routet datagrams zu remote hosts ● Führt Fragmentierung und und Zusammensetzen der Datagramme durch IP ist ein verbindungsloses Protokoll, eh: es tauscht keine Kontrollinformation mit dem Kommunikationspartner aus (Handshake) Ein verbindungsorientiertes Protokoll tauscht Kontrollinformation aus um zu überprüfen, ob die der Kommunikationspartner auch bereit ist, die Daten zu empfangen. IP ist ein unverläßliches Protokoll, weil es keine Fehlerbehandlung inkludiert – diese passiert in Schicht 4. Ein IP Datagramm muss wegen der heterogenen Netze im Internet u.U in mehrere Fragmente geteilt werden; jeder Router hat eine MTU size, eine Maximum Transmission Unit, die in der Regel bei 1500 Bytes liegt. Form eines IP datagrams: 0 4 8 Headerlänge Type of Service Identifizierung Time to live Protocol 16 Version Flags 31 Total Length Fragmentation offset Header Checksum Source Address Destination Address Options Daten Version: Headerlänge: Type of service: Gesamtlänge: Identifizierung: Flags: Fragmentation offset: Time to live: Protocol: Header Checksum: Padding Version des Protokolls, zur Zeit Ipv4, wird in Zukunft von Ipv6 abgelöst weil Zeile 6 optional Ist eine Routerinformation: Verzögerung, Durchsatz und Zuverlässigkeit des Datenpaketes werden beschrieben, Hier kann zB. in einer Firewall der Durchsatz eines Datenpaketes bestimmt werden, also die Geschwindigkeit der Datenübertragung beeinflusst werden. Gesamtlänge Für den Fall eines Verlust des datagrams; jedes datagram hat eine eindeutige Identifizierung, um die Daten wieder in der richtigen Reihenfolge zusammensetzen zu können. zB: Ist das datagram fragmentiert ? Wenn ein datagramm in mehrere Fragmente zerteilt ist, gibt das die Fragmentnummer bekannt Eine Zahl zwischen 1 und 255; jeder router vermindert diese Zahl um 1, wenn 0 erreicht wird, wird das Paket weggeworfen. Info für die darüberliegende Schicht: welches Transportprotokoll wird verwendet 16 Bit für die CRC Prüfsumme Options sind optional, padding füllt nur das Wort auf 32 Bits auf. Seite 12/29 Nur für schulinternen Gebrauch © WR 19/09/16 Beispiel: Weg eines Datagramms vom ET Raum bis ins Internet 172.16.23.10 172.16.23.253 172.16.90.23 172.16.90.253 172.16.50.253 193.171.122.191 193.170.238.26 NIC Der PC im ET Raum NIC 1 routed Netz 17.16.23.0 NIC 2 gateway 172.16.90.253 Router in ET Router im NCC NIC 1 routed Netz 90 (Intranet) NIC 2 routed Netz 50 (intranet) NIC 3 routed Netz 193.171.122.0 NIC 4 gateway (routed alles andere) Internet Das Datenpaket wird über die einzige NIC des PC an den Server gesandt, das gateway des PC ist die Adresse 172.16.23.253. Der Server sendet jedes Paket mit der Netznummer 172.16.23.xxx wieder an das eigene Netz, alle anderen Pakete sendet er über die NIC 2 an das gateway 172.16.90.253, also an den Router im NCC. Das gateay des Servers in der ET ist 172.16.90.253. Der Router sieht anhand seiner Routingtabelle, dass das Paket an NIC 4 gesendet werden muss, wenn die Zieladresse außerhalb der Schule liegt. Ein wichtiger Begriff beim Routing ist der des gateways: Wenn beim Router die angegebene Zieladresse nicht in der Routingtabelle aufscheint, wird das Paket an das gateway weitergegeben. Seite 13/29 Nur für schulinternen Gebrauch © WR 19/09/16 Beispiel: Weg zu www.styria.com von einem Chello- anschluss in Graz . Der Weg eines Datagrams kann mit dem Befehl tracert www.styria.com verfolgt werden. (traceroute www.styria.com in Linux) Route-Verfolgung zu www.styria.com [195.12.206.6] über maximal 30 Abschnitte: 1 2 3 4 5 6 7 8 9 10 11 2 6 7 257 14 12 10 33 36 20 25 ms ms ms ms ms ms ms ms ms ms ms 2 6 8 13 10 11 16 27 23 26 31 ms ms ms ms ms ms ms ms ms ms ms 2 7 6 228 23 13 12 22 28 33 64 ms ms ms ms ms ms ms ms ms ms ms graz-access1.chello.at [10.34.7.1] rt146.chello.at [212.17.99.146] vienna-bgp1-fe-4-0-0.chello.com [212.17.99.5] tk-uni-eb3-pos-9-0-0.chello.com [212.17.99.41] cvix1.apa.net [193.203.0.5] mvn-apa-vix-34.apa.net [194.158.155.197] cwien4.apa.net [194.158.136.251] mvn-klagenfurt-wien.apa.net [194.158.155.122] cisco-kleine_klag1.apa.net [194.158.154.102] 195.12.203.249 www.styria.com [195.12.206.6] Route-Verfolgung beendet. Das derzeit gültige Internetprotokoll ipv4 wird in Zukunft durch das Protokoll ipv6 abgelöst werden: Gründe für die Erneuerung sind: Der Adressraum der IP Nummern wird bald zu klein Audio und Video Übertragungen werden besonders berücksichtigt Konferenzschaltungen übers Internet werden eingeplant ( Die Übertragung von Daten an Gruppen von Personen wird erleichtert) Die Sicherheitsmechanismen in IPv4 sind mangelhaft Seite 14/29 Nur für schulinternen Gebrauch © WR 19/09/16 1.4 Das TCP Protokoll Das TCP Protokoll hat folgende wesentliche Eigenschaften: Verbindungsorientiert Verläßlich TCP errichtet eine verbindungsorientierte logische point to point Kommunikation zwischen den kommunizierenden hosts mittels eines Handshakes: Host A beginnt die Kommunikation, indem es Host B eine Segment schickt, in dem das SYN bit gesetzt ist. Das SYN Bit (Synchronize Sequence Numbers) weist B darauf hin, dass Host A eine Verbindung beginnen will, wobei Host A dem Host B mit der sequence number auch mitteilt, mit welcher Sequenznummer er die Übertragung starten will. Die Sequenznummern gewährleisten die richtige Reihenfolge der einzelnen Segmente. Host B sendet nun an Host A ein Segment, in dem sein SYN Bit gesetzt ist, er also seine Sequenznummer mitteilt, und auch das ACK Bit (positiv acknowledgment). Daraufhin sendet A eine Bestätigung und gleichzeitig die Daten. Modell eines 3-way handshakes Host A Host B SYN SYN, ACK ACK, data Das TCP Segmentformat: Source Port Headerlength Reserved Destination Port Sequence number Acknowledgment number U A P R S F R C S S Y I G K H T N N Checksum Window Urgent Pointer Padding Options Data Source Port und Destination port benötigen 16 Bits Die Sequence number bezieht sich auf die ausgehenden Daten, (wieviele Bytes verschickt wurden), die acknowledgment number bezieht sich auf die eingehenden Daten (wieviele Bytes bereits empfangen wurden) Headerlength: Reserved: URG ACK PSH RST SYN FIN Seite 15/29 4 bits 6 bits Urgent Pointer Field significant Acknowledgment field Push function Reset the connection Synchronize sequence numbers No more data from sender Nur für schulinternen Gebrauch © WR 19/09/16 Im Window - Feld stehen die Anzahl der Bytes, die der Empfänger bereit ist zu empfangen. Bei einer window Zahl von 6000 kann der Sender also 6000 Bytes schicken. Checksum: 16 Bits Urgent Pointer: Nur relevant, wenn das URG Bit gesetzt ist: Zeigt auf den Beginn von urgent data (der dringend benötigten Daten) Optionen (ein Vielfaches von 8 Bit) können hinzugefügt werden Padding: Zum Auffüllen auf 32 Bit Das Internet Control Message Protocol (ICMP) Als Bestandteil der TCP/IP Protokollfamilie wird ICMP als Fehlerbehandlungsprotokoll verwendet. Sobald ein Fehler auftritt, wird ICMP aufgerufen, um den Fehler mit den entsprechenden Informationen anzuzeigen.. Beispiele dafür sind: Flow control: Wenn die datagrams zu schnell ankommen (buffer overflow), sendet der Zielhost eine ICMP Source Quench message zurück. Dadurch wird die Übertragung zeitweilig gestoppt. Detecting unreachable destinations: Falls eine Zieladresse (oder aber auch eine Zielanwendung) nicht erreichbar ist, wird eine entsprechende Meldung gesendet Redirecting routes: Ein gateway kann einem host eine ICMP Redirect Message senden, um ihm mitzuteilen, dass ein anderes gateway eine bessere Route zum Ziel bietet Checking remote hosts: Um festzustellen, ob ein anderer Host erreichbar ist, wird eine ICMP echo message gesendet. Wenn ein host eine echo message erhält, wird das Datenpaket zum Sender zurückgeschickt. (Der befehl „ping zieladresse“ (Windows und Linux) benutzt diese echo message) Ein Beispiel für das icmp Protokoll: [harald@georg harald]$ ping www.netscape.com PING www-mv.netscape.com (205.188.247.66): 56 data bytes 64 bytes from 205.188.247.66: icmp_seq=0 ttl=37 time=115.4 ms 64 bytes from 205.188.247.66: icmp_seq=1 ttl=37 time=114.7 ms 64 bytes from 205.188.247.66: icmp_seq=2 ttl=37 time=173.0 ms 64 bytes from 205.188.247.66: icmp_seq=3 ttl=37 time=114.7 ms 64 bytes from 205.188.247.66: icmp_seq=9 ttl=37 time=115.1 ms 64 bytes from 205.188.247.66: icmp_seq=11 ttl=37 time=114.6 ms 64 bytes from 205.188.247.66: icmp_seq=12 ttl=37 time=115.8 ms 64 bytes from 205.188.247.66: icmp_seq=13 ttl=37 time=115.3 ms 64 bytes from 205.188.247.66: icmp_seq=14 ttl=37 time=117.9 ms 64 bytes from 205.188.247.66: icmp_seq=19 ttl=37 time=114.4 ms 64 bytes from 205.188.247.66: icmp_seq=20 ttl=37 time=114.1 ms Pakete gingen verloren !!! Seite 16/29 © WR Nur für schulinternen Gebrauch Pakete gingen verloren !!! 19/09/16 Analyse des Netzwerktraffics mit tcpdump: Mit dem Befehl tcpdump können die Datenpakete mit ihren Headern angezeigt werden. Alle Netzwerkanalysetools wie zB. wireshark verwenden dieses Tool und bereiten die Ergebnisse in einer grafischen Form auf. Die wichtigsten Optionen von tcpdump sind: -i eth0 -n -nn -X -XX -v, -vv, -vvv -c 5 -S -e -q -s hört auf das Interface eth0 Hostnamen werden nicht aufgelöst Hostnamen und Portnummern werden nicht aufgelöst zeigt die Pakete in Hexadezimaldarstellung und in ASCII zeigt zusätzlich zu -X auch den Ethernet Header Verboselevels listet 5 Datenpakete listet absolute Sequenznumbers zeige auch den Ethernet Header zeige weniger Infos snaplength: Anzahl der Bytes, die gezeigt werden (default ist 96) Beispiel: Der Befehl tcpdump -c 1 -nnvvXXSs 2000 -i virbr0 lieferte folgende Ausgabe: tcpdump: listening on virbr0, link­type EN10MB (Ethernet), capture size 2000 bytes 13:10:07.677974 IP (tos 0x0, ttl 64, id 573, offset 0, flags [DF], proto: TCP (6), length: 60) 192.168.0.2.39868 > 174.129.29.218.80: S, cksum 0x7362 (correct), 148981455:148981455(0) win 5840 <mss 1460,sackOK,timestamp 1656050 0,nop,wscale 7> 0x0000: 001c 10a2 c18a 001d 6023 5c8b 0800 4500 Interpret: Quell­Macadresse Ziel Macadresse ethernet die 0x0010: 003c 023d 4000 4006 ab79 c0a8 0002 ae81 ersten 12 Bytes des IP headers 192.168.0.2 174.129. 0x0020: 1dda 9bbc 0050 08e1 46cf 0000 0000 a002 29.218 39868 80 148981455 ACK Nr Bits Port1 Port2 (Sequenznr) 0x0030: 16d0 7362 0000 0204 05b4 0402 080a 0019 5840 checksum URGP options header Schicht 5 0x0040: 44f2 0000 0000 0103 0307 Dieses Beispiel wurde beim Surfen mitgeschrieben: Die Quell IP-Adresse 192.168.0.2 mit der MAC Adresse 00:1c:10:a2:c1:8a surft zur Zieladresse 174.129.29.81 mit der MAC Adresse 00:1d:60:23:5c:8b. Die Quellportnummer ist 39868, die Zielportnummer ist 80. Gelb unterlegt ist der Header von Schicht2, hellblau der Header von Schicht 3, braun zuletzt der TCP Header, gefolgt vom Header von Schicht 5. Seite 17/29 Nur für schulinternen Gebrauch © WR 19/09/16 Weitere Beispiele: tcpdump host www.bulme.at Loggt jedes Datenpaket mit, das als Quell- oder Zieladresse www.bulme.at hat tcpdump port 21 Loggt nur Port 21 mit tcpdump net 192.168.0.0/24 and dst net 10.10.10.0/24 or port 21 Und/Oder Verknüpfungen sind auch möglich Es ist auch möglich, einzelne Bits eines Headers anzusprechen: Hier wird das 14.Byte (es wird mit Null zu zählen begonnen) angesprochen und dort überprüft ob das SYN Bit gesetzt ist tcpdump 'tcp[13] & 2!=0' Das ACK Bit des TCP Headers ist im 14. Byte das 5.Bit von rechts also 2 4=16 tcpdump 'tcp[13] & 16!=0' Seite 18/29 Nur für schulinternen Gebrauch © WR 19/09/16 2) Einige Anwendungsprotokolle 2.1 DNS Domain Name System Das Domain Name Service ist der grundlegende Dienst des Internets, denn ohne eine Namensauflösung (Umsetzung des Namens in eine IP Adresse) wären Surfen und Mailen nicht möglich. Für einen Domain müssen aus Gründen der Ausfallssicherheit immer 2 Hosts das Nameservice bereitstellen. DNS ist ein streng hierarchischer Dienst. Es gibt über die Welt verteilte Rootserver, die die Informationen über die Top Level Domains (TLD) wie zB. .at oder .com besitzen. Für jeden Top Level Domain gibt es mehrere Server, die die Informationen der Sub Level Domains (SLD) wie bulme.at oder linux.at beinhalten. Erst der Nameserver für einen Domain wie zB. bulme.at enthält die Informationen über die jeweiligen Hosts. Quelle:http://blog.icann.org/2007/11/there-are-not-13-root-servers/ Die Namensauflösung www.bulme.at. geschieht also von rechts nach links: Zuerst wird der Rootserver (durch den Punkt am Ende des Namens bezeichnet) befragt, der die Anfrage an den zuständigen Nameserver für at weiterleitet, der wiederum eine Weiterleitung an den Nameserver der Bulme veranlasst; erst hier passiert die tatsächliche Auflösung des Hostnamens in eine IP Adresse. Seite 19/29 Nur für schulinternen Gebrauch © WR 19/09/16 Hierarchische Auflösung des Hostnamens www.bulme.at . Rootserver at com de TLD SLD bulme linux Host proxy www Das Domain Name System ist für die Umsetzung des Hostnamens in eine IP-Adresse (und umgekehrt) zuständig. Das DNS verwendet die Transportprotokolle TCP und UDP sowie den Anwendungsport 53. Ein DNS Computername besteht aus 2 Teilen, dem Hostnamen und Domainnamen.hostname.domainname Im obigen Beispiel ist www der Hostname, bulme.at der Domainname. Außerdem ist es möglich, innerhalb eines domains Subdomains einzuführen, um eine hierarchische Organisation der Hosts zu erreichen. Bsp: www.edv.bulme.at 193.171.122.181 www ist der hostname, edv der subdomain, bulme.at der Domainname, at der sogenannte Top level domain. Der Verwalter eines Domains ist auch für die Bereitstellung der Nameserver zuständig. Wegen der Wichtigkeit des Namesevice müssen pro Domain mindestens, 2 Nameserver bereitgestellt werden, um einen Ausfall eines Servers überbrücken zu können. Jede Änderung eines Eintrags erfolgt im sogenannten Master oder Primary Name Server, der dann die Informationen selbständig an den secondary nameserver weitergibt. Die Domainnamen sind hierarchisch aufgebaut und die Auflösung des Hostnamens beginnt von links anch rechts; Zuerst werden die zentralen Rootserver befragt, die die Informationen über die nameserver der top level domains besitzen, dann der entsprechende top level domain nameserver, dann der nameserver des gesuchten domains. gov net country-code Root server edu bulme www com mil Org Die einzelnen domains sowie die Countrycodes liegen unterhalb des Wurzelverzeichnisses root und gehören zu den top level domains. Es gibt weltweit 14 Root Server , die die zentralen Informationen des DNS speichern; sie werden Seite 20/29 Nur für schulinternen Gebrauch © WR 19/09/16 mit einem Punkt am Ende des Namens angegeben. Jeder Browser fügt jedoch selbständig diesen Punkt hinzu, sodass er nicht angegeben werden muss. gov net edu com mil Government Institutions Networking Support Centers Educational Institutions Commercial Organisation Military Groups Die weltweiten Toplevel Domainnamen werden von der Organisation Inter-NIC vergeben (www.internic.at), in Österreich können diese bei www.nic.at oder bei einem Provider bestellt werden. 1997 wurden weitere Top Level Domains eingeführt (store, firm, web, arts, rec, info, nom), die sich jedoch bis heute noch nicht durchsetzen konnten. Der Befehl nslookup wird verwendet, um für eine gegebene Adresse den Namen zu finden: Bsp: nslookup www.bulme.at oder nslookup 193.171.122.190 -----------------Auflösung des Namens www.linux.at dig +trace www.linux.at. ; <<>> DiG 9.3.1 <<>> +trace www.linux.at. ;; global options: printcmd . 381582 IN NS G.ROOT-SERVERS.NET. . 381582 IN NS H.ROOT-SERVERS.NET. . 381582 IN NS I.ROOT-SERVERS.NET. . 381582 IN NS J.ROOT-SERVERS.NET. . 381582 IN NS K.ROOT-SERVERS.NET. . 381582 IN NS L.ROOT-SERVERS.NET. . 381582 IN NS M.ROOT-SERVERS.NET. . 381582 IN NS A.ROOT-SERVERS.NET. . 381582 IN NS B.ROOT-SERVERS.NET. . 381582 IN NS C.ROOT-SERVERS.NET. . 381582 IN NS D.ROOT-SERVERS.NET. . 381582 IN NS E.ROOT-SERVERS.NET. . 381582 IN NS F.ROOT-SERVERS.NET. ;; Received 228 bytes from 195.34.133.17#53(195.34.133.17) in 37 ms ----------------------------- at. 172800 IN NS SSS-NL.NIC.at. at. 172800 IN NS SSS-US2.NIC.at. at. 172800 IN NS NS1.UNIVIE.AC.at. at. 172800 IN NS NS2.UNIVIE.AC.at. at. 172800 IN NS NS9.UNIVIE.AC.at. at. 172800 IN NS NS-DE.NIC.at. at. 172800 IN NS NS-UK.NIC.at. at. 172800 IN NS NS-US1.NIC.at. at. 172800 IN NS SSS-JP.NIC.at. ;; Received 423 bytes from 192.112.36.4#53(G.ROOT-SERVERS.NET) in 151 ms linux.at. 10800 IN NS lipo.at0.net. linux.at. 10800 IN NS vishna.hjp.at. linux.at. 10800 IN NS arachne.luga.at. linux.at. 10800 IN NS ns1.wsr.ac.at. ;; Received 181 bytes from 193.0.0.231#53(SSS-NL.NIC.at) in 38 ms www.linux.at. 86400 IN A 143.130.20.3 linux.at. 604800 IN NS ns.luga.at. linux.at. 604800 IN NS ns1.hjp.at. linux.at. 604800 IN NS ns1.wsr.ac.at. linux.at. 604800 IN NS tmpdns.lipo.at0.net. ;; Received 180 bytes from 213.235.202.142#53(lipo.at0.net) in 164 ms -------------------------------------------------------------------------------- Seite 21/29 Nur für schulinternen Gebrauch © WR 19/09/16 2.2 SMTP und POP3 Simple Mail Transfer Protocol und Post Office Protocol 3 Bildquelle: http://www.elektronik-kompendium.de SMTP ist für das Senden einer E-Mail in einem TCP/IP Netzwerk zuständig, es verwendet die Portnummer 25. Das Protokoll POP3 holt die Mail vom Server ab und verwendet dern Port 110. In Linux kann eine Mail kann auch auf der Konsole versendet werden, im folgenden Beispiel befindet sich die Mail in einem File namens textfile, das Subject lautet Testmail. mail –s „Testmail“ [email protected] < textfile Eine andere, vom Betriebssystem unabhängige Möglichkeit zur direkten Kontaktaufnahme mit dem Mailserver: (Fett: vom Benutzer eingegeben) harald:[root]# telnet www.kbg.at 25 Trying 192.168.0.1... Connected to www.kbg.at. Escape character is '^]'. 220 harald.kbg.at ESMTP Sendmail 8.12.8/8.12.5; Tue, 21 Oct 2003 12:05:54 +0200 maifrom: [email protected] 500 5.5.1 Command unrecognized: "maifrom: [email protected]" mail from: [email protected] 250 2.1.0 [email protected]... Sender ok rcpt to: [email protected] 550 5.1.1 [email protected]... User unknown rcpt to:[email protected] 250 2.1.5 [email protected]... Recipient ok data 354 Enter mail, end with "." on a line by itself Hallo Armin ! Das ist eine testmail .... . 250 2.0.0 h9LA5siZ008717 Message accepted for delivery quit 221 2.0.0 harald.kbg.at closing connection Connection closed by foreign host. harald:[root]# Bemerkenswert ist, dass zum Versenden einer E-Mail kein gültiger Absender notwendig ist und eine eventuelle Angabe der E-Mailadresse auch nicht auf ihre Richtigkeit überprüft wird. Diese Schwäche des Protokolls führte in den vergangenen Jahren zu einen enormen Anstieg von Spammails. Seite 22/29 Nur für schulinternen Gebrauch © WR 19/09/16 Ein Beispiel des POP3 Protokolls, fett vom Benutzer eingegeben: harald:[root]# telnet www.kbg.at 110 # Verbindung zum Mailserver Trying 192.168.0.1... Connected to www.kbg.at. Escape character is '^]'. +OK POP3 harald.kbg.at v2001.78rh server ready user armin # Benutzer anmelden +OK User name accepted, password please pass armin # Passwort eingeben +OK Mailbox open, 2 messages list # Anzahl der Mails +OK Mailbox scan listing follows 1 711 # Mail 1 hat 711 Bytes 2 641 # Mail 2 hat 641 Bytes . retr 1 # Retrieve Mail 1 +OK 711 octets Return-Path: <[email protected]> Received: from harald (harald.kbg.at [192.168.0.1]) by harald.kbg.at (8.12.5/8.12.5) with ESMTP id h0RF0mtJ001881 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NO) for <[email protected]>; Mon, 27 Jan 2003 16:00:48 +0100 Content-Type: text/plain; charset="us-ascii" From: Harald Wolfger <[email protected]> Reply-To: [email protected] To: [email protected] Subject: (no subject) Date: Mon, 27 Jan 2003 16:00:48 +0100 User-Agent: KMail/1.4.3 MIME-Version: 1.0 Message-Id: <[email protected]> Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by harald.kbg.at id h0RF0mtJ001881 Status: RO Hallo Armin ! Das ist eine testmail .... . quit +OK Sayonara Connection closed by foreign host. 2.3 Protokollnummern, Ports and Sockets: Wenn die Daten die einzelnen Schichten des Internet Modells durchwandern, muss auch sichergestellt sein, welches Transport Protokoll und welche Anwendung die Daten erhalten. Das IP verwendet Protokollnummern um das Transportprotokoll (TCP, UDP, ICMP) zu identifizieren. Das Transportprotokoll verwendet Portnummern um die Anwendung zu identifizieren. Einige Beispiele von Protokollnummern: (auf Linux unter /etc/protocols) ICMP 1 TCP 6 UDP 17 Auf Grund dieser Protokollnummern weiß die IP Schicht, welchem Transportprotokoll sie die Daten übergeben muss. Nachdem die Daten dem Transportprotokoll übergeben wurden, reicht dieses nun die Daten an die korrekte Anwendung weiter. Dazu wird die portnummer verwendet: Seite 23/29 Nur für schulinternen Gebrauch © WR 19/09/16 Einige Beispiele von bekannten (und standardisierten) Portnummern: (Linux: /etc/services) ftp 20 und 21 ssh 22 telnet 23 smtp 25 http 80 pop3 110 Neben den fix vergebenen Portnummern gibt es auch noch die dynamisch vergebenen Portnummern. Diese werden notwendig, wenn mehrere Benutzer die gleiche Applikation, wie zB. telnet, benutzen wollen. Der destination port bleibt immer 23, jedoch der source port der verschiedenen Benutzer wird dynamisch vergeben: Source 1 Source 2 Source 3 Sourceport 3144 3419 3678 Destinationport 23 23 23 Die Kombination einer IP – Adresse und einer Portnummer wird als Socket bezeichnet. Hat nun die Quelle im obigen Beispiel die Adresse 193.171.122.180 und das Ziel die Adresse 127.29.23.1, so ist die Kombination 193.171.122.180.3144 die durch den Befehl identifiziert. 127.29.23.1.23 telnet 127.29.23.1 auf dem Host 193.171.122.180 eingegeben wurde, im Internet eindeutig 2.4 Einige weitere Transportprotokolle NetBIOS...Network Basic Input Output System Ist ein Protokoll von IBM; es benutzt NetBEUI als Transportprotokoll und erstreckt sich dabei von der OSI Schicht 3 bis zur OSI Schicht 5. Es wurde ursprünglich zur Kommunikation zwischen einem mainframe und einem Terminal entwickelt. NetBEUI... NetBIOS Extended User Interface Ist ein Protokoll von IBM. Wird heute die PC-Server von IBM und bei Microsoft Netzwerksystemen (W9x, Windows NT usw) eingesetzt IPX/SPX...Internetwork Packet Exchange/Sequenced Packet Exchange Von Novell entwickeltes Protokoll: verantwortlich für die Abbildung der IPX Adresse auf die MAC Adresse und für das routing in den Netzen. Appletalk Nur für den Einsatz von Netzwerken bei Apple PC‘s SNA... System Network Architecture Von IBM für den Token Ring entwickelt, deckt alle 7 Schichten des OSI Modells ab. Seite 24/29 Nur für schulinternen Gebrauch © WR 19/09/16 2.5 Internet Protokoll Version 6 Der Adressraum von IPv6 von 128 Bit ermöglicht 2 128 ~ 3,4·1038 mögliche Adressen. Damit sind nun ausreichend viele Adressen erhältlich. Bekanntlich ist der Adressraum von IPv4 bereits ausgeschöpft, die letzten IPv4 Adressen wurden 2011 vergeben. IPv6 ermöglicht eine automatische Konfiguration der Netzwerkadresse durch das ND (Neighbour Discovery) Protokoll, es ist also weder eine manuelle Konfiguration und auch kein DHCP Server notwendig. Die Adresse wird durch eine Kommunikation mit den nächsten benachbarten Routern bestimmt. Einer Netzwerkschnittstelle können mehrere Adressen zugewiesen werden; als ein Mitglied mehrerer Netze ist es leichter auf diese zuzugreifen. Ein Laptop kann somit problemlos von einem Firmenstandort zum anderen mitgenommen werden und kann noch immer unter derselben Adresse erreicht werden. Die Mobilität wird vereinfacht. Ein wesentlicher Nachteil von IPv4 war die Sicherheit. Die Sicherheitsmechanismen von IPv4 wurden alle nachträglich hinzugefügt und sind mangelhaft. In IPv6 wurde bei der Konzeption bereits die Sicherheit mit IPSec besonders berücksichtigt. Es ist möglich im Internet über einen sicheren Tunnel zu kommunizieren. IPv6 Adressen sind mit IPv4 Adressen abwärtskompatibel, sodass beide Protokolle auf einem Host laufen können. IPv4 Adressen können leicht in IPv6 Adressen umgewandelt werden. In IPv4 konnten viele Dienste ihre Pakete nur über Broadcast oder Unicast versenden. In IPv6 ist das Multicasting deutlich erleichtert worden, es können z.B.: alle Router oder auch alle Nameserver angesprochen werden. Durch die neue geographische Anordnung und Zuweisung der IPv6 Adressen und durch die Anpassung der Headerdaten des IP Paketes wird ein schnelleres Routing ermöglicht. Unicast: Broadcast: Multicast: Anycast: Versenden eines Paketes an einen bestimmtenn Host Versenden eines Paketes an alle Hosts des Netzes Versenden eines Paketes an eine ausgewählte Gruppe von Hosts Mehrere Hosts besitzen dieselbe Adresse, das Paket wird von den Routern an denjenigen Host gesendet, der dem Absender am nächsten ist. Dieses System wird vor allem bei den Nameservern verwendet Die Adressierung in IPv6: Ipv6 Adressen werden hexadezimal angeschrieben, 128 Bit werden in 8 Blöcke zu je 16 Bit aufgeteilt; je 8 Bit entsprechen einer hexadezimalen Zahl: 23a1:3628:cd73:ad82:8333:acf5:1201:a2ff Führende Nullen brauchen nicht geschrieben zu werden, die Adresse 00a1:0028:cd73:ad82:0000:acf5:1201:a2ff kann abgekürzt werden in a1:28:cd73:ad82:0:acf5:1201:a2ff Mehrere Blöcke mit Nullen können weiter abgekürzt werden: 0a1:0028:cd73:0000:0000:0000:1201:a2ff wird zu a1:28:cd73::1201:a2ff Seite 25/29 Nur für schulinternen Gebrauch © WR 19/09/16 Einteilung einer Adresse: Die 128 Bit der IPv6 Adresse werden in 3 Teile geteilt: Das Standort Präfix. Die Teilnetz-ID. Die Schnittstellen-ID (Interface identifier) 48 Bit 16 Bit 64 Bit Beispiel: 2001:0da8:1c4d:0d14:4000:0400:232f:1a2b 2001:0da8:1c4d ist das Standortpräfix, das vom Provider oder von der RIR zugewiesen wurde, das die öffentliche Topologie beschreibt 0d14 ist die Teilnetz-ID, das der Administrator des Netzes dem eigenen Standort zugewiesen hat, die Standorttopologie. 4000:0400:232f:1a2b Ist die Schnittstellen-ID, die automatisch aus der MAC Adresse generiert wird Es gibt unterschiedliche Präfixe, so kann auch ein Teilnetzpräfix angeben werden, das 64 Bit umfasst: 2001:0da8:1c4d:0d14 /64 Die Netzmaske wird wie bei IPv4 mit einem Schrägstrich angegeben, zB: fe80::21d:60ff:fe23:5c8b:c1ab:7ab0/64 Auch hier wird die IP Adresse mit der Netzmaske geundet um die Netzadresse zu ermitteln. Beispiel: Hat z.B. ein Netzwerkgerät die IPv6-Adresse 20a3:01b8:84a3:0813:1119:2a2e:4370:7127/64, so lautet das Präfix 20a3:01b8:84a3:0813::/64 und der Interface Identifier 1119:2a2e:4370:7127. Adressarten in IPv6 Link­lokale (verbindungslokale) Unicast­Adresse Die Link-lokale Unicast-Adresse kann nur auf dem lokalen Netzwerklink verwendet werden. Link-lokale Adressen sind außerhalb des Unternehmens ungültig und werden nicht erkannt. Diese Adressen werden für ND (Neighbour Discovery) Protokoll verwendet, mit dem man eine gültige IPv6 Adresse erhält. Ein Link-lokaler Präfix hat das folgende Format: fe80::Schnittstellen-ID/10 Seite 26/29 Nur für schulinternen Gebrauch © WR 19/09/16 fe80 Hexadezimale Darstellung des binären 10-Bit-Präfixes 1111111010. Dieses Präfix identifiziert den Typ der IPv6Adresse als Link-lokal. Schnittstellen-ID Hexadezimale Adresse der Schnittstelle, die in der Regel von der 48-Bit-MAC-Adresse abgeleitet wird. Das folgende Beispiel zeigt das Format einer Link-lokalen Adresse. fe80::5652:ff:fe4c:1634/64 Private Adressen (ULA ... Unique Local Addresses) werden im Internet nicht geroutet und haben ein Präfix von fc00::/7 Dieses Netz wird aufgeteilt in zwei /8 Netze, also fc00::/8 und fd00::/8. Auf das Präfix (also fc oder fd) folgen 40 Bit Site ID, wobei beim Präfix „fd“ diese 40 Bit zufällig generiert werden, während beim Präfix fc die Adresse zugewiesen wird, was aber noch nicht implementiert wurde. Nach den 40 Bit der Site ID folgen 16 Bit der Netz ID, diese geben das Subnetz an. Eine Beispiel-ULA wäre fd12:3456:7890:abcd::1. Hierbei ist fd der Präfix für lokal generierte ULAs, 12:3456:7890 ein einmalig zufällig erzeugter 40-Bit-Wert und abcd eine willkürlich gewählte Subnet-ID. Wenn Site ID's eindeutig gewählt werden, kann es bei VPN Verbindungen keine Probleme geben, da die verschiedenen privaten Netze auch verschiedene Adressen besitzen. Bei Ipv4 kann es passieren, dass Adresskollisionen auftreten, wenn ein privates Netz zu einem zweiten privaten Netz getunnelt wird. Für die Generierung der 64 Bit lange Adresse innerhalb des Netzes, die auch interface identifier genannt wird, verwendet man die MAC Adresse, aus der das EUI-64-Token (Extended Unique Identifier) erzeugt wird. Diese IPv6 Adresse ist weltweit eindeutig. Im Internet kann man sich ULA's erzeugen lassen: Quelle: http://www.sixxs.net/tools/grh/ula/ Seite 27/29 Nur für schulinternen Gebrauch © WR 19/09/16 Wie man sieht werden Bytes 4,5 und 6 der MAC Adresse unverändert gelassen, vorher werden 2 Bytes ff und fe eingefügt. Die Bytes 2 bis 3 der MAC Adresse werden wieder unverändert übernommen, beim ersten Byte wird jedoch das 7. Bit auf 1 gesetzt. Globale eindeutige Adressen haben dieses Bit auf Null gesetzt, während lokal generierte Adressen dieses Bit auf 1 gesetzt haben. Multicast Adressen ff00::/8 stehen für Multicast-Adressen. Eine IPv6 Multicastadresse besitzt einen Präfix von FF00::/8 (1111 1111). Das zweite Halbbyte der Adresse FF00::/16 definiert die Lebenszeit und den Geltungsbereich (scope). Dabei besitzt eine permanente Adresse einen Wert von 0 und eine temporäre Adresse einen Wert von 1. Der Gültigkeitsbereich einer Multicastadresse variiert von node, link, site, organization bis zu global und wird mit dem Parametern 1, 2, 5, 8 bzw. E angezeigt. Global Unicast Adressen 2000::/3 (also alle Adressen von 2000:… bis 3fff:…) sind von der IANA vergebenen globalen Unicast-Adressen, also routbare und weltweit einzigartige Adressen. Sie entsprechen den öffentlichen IPv4 Adressen. Umrechnung von IPv4 in IPv6 Adressen: (siehe zB: http://www.subnetonline.com/pages/subnet-calculators/ipv4-to-ipv6-converter.php) Hier wurde die Adresse 193.171.122.180 in eine Ipv6-Adresse umgerechnet. 2002 ist das 6to4 Präfix, das anzeigt, dass hier eine IPv4 Adresse in IPv6 umgewandelt wurde. Die localhost Adresse 127.0.0.1 in IPv4, lautet in Ipv6 nun 0000:0000:0000:0000:0000:0000:0000:0001 oder, abgekürzt ::1 Seite 28/29 Nur für schulinternen Gebrauch © WR 19/09/16 Der IPv6 Header: Die Version ist nun IPv6. Die Priorität gibt an, ob ein Paket bevorzugt behandelt werden soll. So können Datenpakete für eine Real Time Anwendung wie eine Liveübertragung gegenüber einem Mailversand bevorzugt werden. Wenn ein Router nun ausgelastet ist können die Emaildaten verworfen werden und können später nachgereicht werden. Mit dem 4 Bit großen Priorityfeld können 16 Prioritäten vergeben werden. Das Flow Label erspart es dem Router aufwändige Berechnungen für den gleichen Datenstrom für alle Datenpakete durchführen zu müssen; die Berechnungen werden nur für das erste Datenpaket ausgeführt und deren Ergebnisse auf die weiteren Pakte dieses Datenstroms angewendet. Payload length: Länge des Datenpaketes Next Header: Ist ein Link auf den eventuell nächsten Header Hop Limit: Wie bei IPV4, jeder Router erhöht die Anzahl der Hops bis die maximale Anzahl erreicht ist, danach wird das Paket weggeworfen. Quell- und Zieladresse enthalten nun 128 Bit. Ein Host kann in IPv6 mehrere IP Adressen besitzen, neben der Localhost Adresse eine Multicastadresse, eine verbindungslokale Adresse, eine standortlokale Adresse und eine globale Adresse. Quellen: Seite 29/29 http://de.wikipedia.org http://tldp.org/HOWTO/Linux+IPv6HOWTO http://en.wikipedia.org/wiki/IPv6_address http://docs.oracle.com/cd/E19957­01/820­2980/ipv6­overview­10/index.html Nur für schulinternen Gebrauch © WR 19/09/16