Nr. | OSI Schicht | Einordnung | TCP/IP | Protokolle | Einheiten | Hardware |
7 |
Anwendung (Application) |
Anwendungs- orientiert |
Anwendung |
DHCP DNS FTP HTTP MQTT |
Daten |
Gateway Proxy Layer 4-7 Switch |
6 |
Darstellung (Presentation) |
|||||
5 |
Sitzung (Session) |
|||||
4 |
Transport (Transport) |
Transport- orientiert |
Transport |
TCP UDP |
Segmente (TCP) Datagramme (UDP) |
|
3 |
Vermittlung (Network) |
Internet |
ICMP IGMP IP |
Pakete |
Router Layer-3 Switch |
|
2 |
Sicherung (Data Link) |
Netzzugriff |
IEEE 802.3 Ethernet IEEE 802.11 WLAN MAC |
Frames |
Bridge Access Point Layer-2 Switch |
|
1 |
Bitübertragung (Physical) |
1000BASE-T Token Ring |
Bits, Symbole |
Kabel Repeater Hub |
In dieser Schicht werden die mechanischen, elektrischen und physikalischen Eigenschaften definiert, um Bits über ein Transportmedium übertragen zu können. Durch die Verwendung verschiedener Modulationsverfahren können auch mehrere Bits pro Zustand in Symbolen codiert und übertragen werden.
Diese Schicht übernimmt die Sicherstellung einer zuverlässigen und weitgehend fehlerfreien Übertragung. Meistens ist auch eine Zugriffsregelung auf das Übertragungsmedium (Media Access Control MAC), eine Datenflusskontrolle für die dynamische Steuerung der Geschwindigkeit, das Aufteilen des Datenstromes in Frames und das Hinzufügen von Prüfsummen für eine Fehlererkennung bzw. -korrektur inkludiert. Das wiederholte Senden verworfener Frames wird von höheren Schichten übernommen.
Diese Schicht sorgt für die Vermittlung von Paketen über das gesamte Kommunikationsnetz. Bei der Vermittlung sind die Stauvermeidung (Congestion Avoidance), das Fragmentieren von Datenpaketen (Aufteilen der Pakete, falls die Größe die max. Übertragungseinheit der Netzwerkschnittstelle überschreitet), die Wegesuche (Routing) und das Bereitstellen netzwerkübergreifender Adressen inkludiert.
Die Aufgaben dieser Schicht ist das Segmentieren des Datenstromes (Segmentgröße wird vom Sender und Empfänger ausgehandelt), die Flusssteuerung bzw. Staukontrolle und gegebenenfalls das Sicherstellen einer fehlerfreien Übertragung (TCP mit garantierter Zustellung, UDP ohne). Die Adressierung innerhalb dieser Schicht erfolgt über Port-Nummern.
In dieser Schicht werden die logischen Verbindungen gesteuert und so für eine Prozesskommunikation zwischen zwei Systemen gesorgt. Somit können ausgefallene Transportverbindungen wieder synchronisiert werden, ohne bei der Übertragung von vorne beginnen zu müssen.
Diese Schicht sorgt für das Umsetzen von einer systemabhängigen Darstellung in eine unabhängige Form, sowie für die Datenkompression und Verschlüsselung. Damit wird ein syntaktisch korrekter Datenaustausch zwischen unterschiedlichen Systemen garantiert.
Diese Schicht stellt Funktionen für die Anwendung zur Verfügung und stellt die Verbindung zu den unteren Schichten her. Hier findet die Daten Ein- und Ausgabe für die Anwendung statt. Die Anwendung selbst ist kein Teil dieser Schicht.
4 Blöcke mit jeweils 8 Bit / 1 Dezimalzahl durch „.“ getrennt 192.168.0.10
Netznotation 192.168.0.0/24 entspricht 192.168.0.0 bis 192.168.0.255
Netzwerk Angabe 192.168.0.10/24 beinhaltet IPv4 Adresse 192.168.0.10 und Subnetzmaske 255.255.255.0
Die Subnetzmaske wird verwendet, um zu entscheiden, ob ein Paket an den Provider oder einen anderen Router im eigenen Netz oder überhaupt nicht weitergeleitet wird.
0.0.0.0/8 | Standard Route |
127.0.0.0/8 | Loopback Adressen |
10.0.0.0/8 | Link Local Adressen - Netzklasse A |
172.16.0.0/12 | Link Local Adressen - Netzklasse B |
192.168.0.0/16 | Link Local Adressen - Netzklasse C |
169.254.0.0/16 | Link Local Adressen, falls DHCP fehlgeschlagen ist |
8 Blöcke mit jeweils 16 Bit / 4 Hexadezimalstellen durch „:“ getrennt 2001:0db8:85a3:08d3:0000:ffff:c0a8:000a
Führende Nullen innerhalb eines Blockes dürfen weggelassen werden 2001:db8:85a3:8d3:0:ffff:c0a8:a
Ein oder mehrere Blöcke mit Wert 0 dürfen vereinfacht mit „::“ dargestellt werden, aber maximal einmal 2001:db8:85a3:8d3::ffff:c0a8:a
Für die letzten beiden Blöcke darf die herkömmliche dezimale Notation verwendet werden 2001:db8:85a3:8d3::ffff:192.168.0.10
Netznotation 2001:db8:85a3:8d3::/64 entspricht 2001:0db8:85a3:08d3:0000:0000:0000:0000 bis 2001:0db8:85a3:08d3:ffff:ffff:ffff:ffff
Der Internet Service Provider ISP bekommt mit den ersten 32 Bit ein Netz zugewiesen 2001:db8::/32
Der ISP weist dem Endkunden ein Netz von typ. 2001:db8:85a3::/48 bis 2001:db8:85a3:8d3::/64 zu
::/128 bzw. 0:0:0:0:0:0:0:0/128 | nicht spezifizierte Adresse / Adresse falls noch nicht initialisiert | ||||||||||||||||||||||||||||||||||||
::/0 bzw. 0:0:0:0:0:0:0:0/0 | Standard Route | ||||||||||||||||||||||||||||||||||||
::1/128 bzw. 0:0:0:0:0:0:0:1/128 | Loopback Adresse (entspricht bei IPv4 127.0.0.1/32) | ||||||||||||||||||||||||||||||||||||
fe80::/64 | Link Local (Unicast) Adressen (LLA) lokales Netz mit Hubs/Switches bis zum ersten Router, wird nicht weiter geroutet |
||||||||||||||||||||||||||||||||||||
fc00::/7 | Unique Local (Unicast) Adressen (ULA) fc00::/8 für global zugewiesene / zentral verwaltete Adressen fd00::/8 für lokal zugewiesene / verwaltete Adressen |
||||||||||||||||||||||||||||||||||||
ff00::/8 |
Multicast Adressen
|
||||||||||||||||||||||||||||||||||||
0:0:0:0:0:ffff::/96 | IPv4 mapped IPv6 Adressen – letzten 32 Bit enthalten die IPv4 Adresse | ||||||||||||||||||||||||||||||||||||
2000::/3 | IANA vergebene globale Unicast Adressen (GUA) – routbar, weltweit einzigartig | ||||||||||||||||||||||||||||||||||||
2001::/32 | Adressen für Tunnelmechanismus Teredo | ||||||||||||||||||||||||||||||||||||
2001:db8::/32 | Adressen für Dokumentationszwecken |
Damit man bei Software-Projekten die vergangenen Änderungen und die Übersicht nicht verliert, verwendet man gerne Versionsverwaltungssysteme wie Subversion oder Git. Bei der Verwendung solcher Systeme können sämtliche Änderungen am Source-Code nachverfolgt und auch verglichen werden. Des Weiteren können unterschiedliche Entwicklungspfade (z.B. unterschiedliche Versionen für unterschiedliche Betriebssysteme bzw. Hardware-Systeme) einfach verwaltet werden.
Das wichtigste bei der Verwendung von Subversion oder Git ist, dass beim Einpflegen eines neuen SW-Standes immer auch Kommentare eingetragen werden. Somit kann man Änderungen folgen, ohne gleich den Source Code durchsehen zu müssen. Damit Projekte mit mehreren Entwicklern tatsächlich übersichtlich bleiben, muss man sich zuvor gut überlegen, wie man die Versionsverwaltungs-Funktionen verwendet. D.h. für gewisse Vorgänge (Tagging, Branching, Submodule Handling) sollte es einen bestimmten Prozess geben.
Bei Subversion (SVN) handelt es sich um ein zentrales Versionsverwaltungssystem. Jeder Benutzer arbeitet mit einer lokalen Kopie und muss sich beim Einpflegen von Änderungen mit dem Server verbinden. Ein lokales Einpflegen von Änderungen ist nicht möglich. Solange man offline arbeitet, gibt es keine Möglichkeit, Änderungen mit Kommentaren einzupflegen. Somit fehlt zu dieser Zeit auch die Möglichkeit bereits funktionierenden Code sicher abzulegen und gegebenenfalls wieder zurück zu holen.
|
|
Weitere nützliche Subversion Informationen findet man unter:
Bei Git handelt es sich um ein verteiltes Versionsverwaltungssystem. Die Benutzer arbeiten mit einer kompletten Kopie (Klon) des Repositories, History usw. mit eingeschlossen. Somit können Repository Änderungen auch lokal und offline erfolgen. Diese Möglichkeit erfodert dadurch eine unterschiedliche Arbeitsweise. Anstelle von den Subversion Basis-Kommandos Commit und Update, gibt es Commit (lokal), Push (remote) und Pull (remote).
|
|
Für das Abzweigen innerhalb eines Projektes für zusätzliche Features, Bugfixing, ... gibt es unterschiedliche Ansätze. Ein möglicher Ansatz ist git-flow (siehe Grafik unterhalb). Diese Methode ist aber bereits sehr komplex und erfordert viel Disziplin bei den Software-Entwicklern. Für viele kleine Projekte bzw. kleinere Entwicklungsteams reichen vereinfachte Methoden.
Weitere nützliche Git Informationen findet man unter: