Das Netzwerk Teil 1 Ethernet, IP, TCP

Hier gibts Programmvorstellungen und Anleitungen dafür
Auch Howto's
Keine Hilfestellung
Antworten
Benutzeravatar
Juhu
Beiträge: 122
Registriert: So 24. Jul 2022, 18:10
Ubuntu Version: 22.04
Wohnort: Mödling

Das Netzwerk Teil 1 Ethernet, IP, TCP

Beitrag von Juhu »

Ich möchte einmal ein bisschen über TCP/IP nachdenken und auch mal die eine oder andere Information los werden.
Eigentlich benutzen wir heute einen Browser, einen Mailclient oder eine Telefonverbindung und denken gar nicht darüber nach was passiert da eigentlich.
Die wenigsten wissen, dass sich Fernsehen, Telefon und Daten sich auf den gleichen Kabeln abspielen. Und wenn man darüber nachdenkt, kommt man sehr schnell darauf, dass da mehr ist als nur ein elektrische Impuls wie bei einer Klingel.

Jeder kennt das Morsealphabet. Punkt, Punkt, Strich oder 001 oder Strom ein, Strom ein, Strom aus und schon haben wir die einfachste Form einer Übertragung. Jetzt brauchen wir noch die Bedeutung von "punkt punkt strich". Die Bedeutung von ...---... kennt wohl auch jeder. Und wie wird ein solches SOS-Signal übermittelt. Natürlich mit einer Taschenlampe, Spiegel, Rauch, Klopfen.
Diese Medien sind die unterste Schicht, dem physikalischen Layer.

Wenn ich jemand bestimmten Adressieren will, dann muss ich ihm das auch mitteilen . Nach dem Motto "Gustav 1 an Gustav 2" oder ich sende es an alle (Broadcast). Und dann will ich im auch noch sagen, was ich von ihm will "wir mach heut a Razzia".

In der EDV haben wir dafür ein OSI 7 Schichten Model bzw. ein TCP 4 Schichtenmodell eingeführt.
Jede Schicht setzt auf die darunter liegende auf. ist aber von ihr unabhängig.
Z.B. Eine Übertragung mittels Modem ist für die nächste Schicht genauso gut, wie mittels Ethernet.
...---... kann ich mit der Flaschenpost schicken aber auch mit der Taschenlampe. Es bleibt ein Notsignal und die Empfänger sind ALLE (Broadcast). Bei einem Brief, Telegramm habe ich schon einen Absender und einen Empfänger.

Ein Kuvert wird in Griechenland genauso ankommen wie in Österreich, denn ich schreibe die PLZ, Name, Strasse darauf. Egal, ob der Brief mittels Flugpost oder reitenden Booten übermittelt wurde.

https://de.wikipedia.org/wiki/OSI-Modell liefert eine gute Übersicht über die 7 Schichten.

So wir kennen jetzt die Schichten, schauen wir uns an was bei einer Übertragung passiert.
Klein Juhu schreibt eine HTML Seite "<HTML><BODY>Hallo ihr</BODY></HTML>"

Eine HTML-seite vom Server, wird z.B. ergänzt um die Sprache, Zeichensatz, Verschlüsselung. HTTP-Header. Die Präsentation steht im HTML-Header (z.B. das CSS-Script. ) Programmtechnisch kommt jetzt der TCP Header dazu und im nächsten Schritt der IP Header. So jetzt hätten wir unser Paket fertig. Wir suchen uns jetzt die Leitung aus, fügen noch eine Prüfsumme dazu und ab geht es.

Der Empfänger macht das ganze in der umgekehrten Richtung. Die einzelnen Schichten werden, wie bei einer Zwiebel herausgeschält. Stimmt z.B. auf der untersten Schicht die Prüfsumme nicht, dann wird eine Wiederholung der Übertragung angefordert.

Lassen wir den Physikalischen Träger wie unser GSM, Ethernet oder wiFi außen vor. Darüber werden wir uns gesondert unterhalten. TCP/IP funktioniert über Glasfaser mit GigaBit Geschwindigkeit als auch über Langwelle mit 100 Zeichen pro Sekunde. und das weltweit. Wenn ich jetzt 2 unterschiedliche Medien habe wie WiFi und Kabel dann brauche ich einen Übersetzer zwischen den beiden Medien. üblicherweise ist das unser Router. Und wie wir jetzt schon vermuten, entfernt der Router die alte Schicht 1 und ersetzt sie durch eine Neue. Der Rest bleibt und so wird unsere HTML-Seite vom Kabel auf das WLAN gesendet.
Vorstellen kann man es sich, wie wenn wir unser HTML-Seite auf einem Stück Papier schreiben, es in ein Kuvert stecken. Und das Kuvert im Postsack transportiert wird.
Die TCP-Schicht 4 (Anwendungsschicht) ist jetzt unser Blatt Papier.
TCP-Schicht 3 (Transportschicht) der Empfänger, also der Browser bzw. der Briefträger und da sagen wir bei der Überreichung Danke in der Sprache des gegenüber (UDP, TCP, ICMP u.v.m)
TCP-Schicht 2 (Internet Schicht) also die IP-Adresse. oder das Haus/Stockwerk in dem wir sitzen.
TCP-Schicht 1 (physikalischer Layer) also das Post-Moped ;-)

Wie kommen jetzt unsere Daten von A nach B? Heute wollen wir uns nur mit dem Ethernet ausseinander setzen. Für alle, die mehr wissen wollen hier einige Begriffe für die Suchengine deines Vertrauens: V24. Datex-P, Datex-L, HDLC, LLC2, FDDI, IEEE 802.11, 10Base2 10Base5, TokenRing, TokenBus dazu kommen noch die diverse Funkverfahren.

Ethernet ist der gebräuchliche Name um Daten auf einem 4 Draht-Kabel zu übertragen. 2 Drähte in Sende-Richtung, 2 Drähte in Empfangsrichtung (vollduplex).
Die Qualität des Kabel wird über die Bezeichnung CAT angegeben CAT4 bzw CAT6 sind heute die wichtigsten Kabelbezeichnungen für Geschwindigkeiten bis zu 1 GBit pro Sekunde.
Solltet ihr einmal eine Leitungsaufzeichnung sehen, dann bekommt ihr folgenden Aufbau zu Gesicht:

Präambel+SFD 101010.. 8Byte
Zieladresse 6 Byte Die Adresse in diesem Netzwerk z.b. 3010b33e9cfc
Quelladresse 6 Byte Der Absender im gleichen Format
Typ 0800 die Kennung für IP.
Ethernet-Daten Hier finden wir die Informationen der nächsten schicht.
FCS Prüfsumme 4 Byte lang
Ein Frame ist mindest 64 Byte lang und maximal 1500.
Es sei noch verraten das es um die 40 unterschiedliche Protokolle auf dem Ethernet Kabel geben kann. Und das auf Schicht 1 :-)

https://de.wikipedia.org/wiki/Ethernet

Wichtig für Euch ist: Die Ziel und Quelladressen sind weltweit eindeutig. Aber keine Sorge sie sind nur in eurem Netz sichtbar. Sobald ein Router ins Spiel kommt, werden Quell uns Ziel ausgetauscht. Die ersten 3 Byte geben dem Hersteller an. Mein Beispiel liefert einen Hersteller aus Taiwan
https://www.dein-ip-check.de/tools/macf ... Afc&page=1

TCP-Schicht 2 -- Der Inhalt der Ethernetdaten.

Das Geniale ist IP (Internet Protokoll). Genau dieses Protokoll regelt den Verbindungsaufbau zwischen 2 Stationen. Das wir heute Router, Switch, Hub, LoadBalancer und ähnliches in unsere Netze integriert haben ist nebensächlich.
In einem Netz brauche ich keines dieser Dinge. Mein Netz würde auch mit einer 2-Draht Leitung funktionieren. Genauso gut wie über Langwellenfunk oder mittels 50 ohm Kabel.

Übrigend das TCP/IP wurde in den 60er Jahren erfunden Ziel des Protokoll war es eine Kommunikationinfrastruktur aufrecht zu erhalten, auch wenn 90% der Verbindungen in Falle eines Atomangriffes ausfallen. Das Verteitigungministerium der USA (DoD) hat sich dazu das Netzwerk 10.0.0.0 reserviert. Später zog sich das DoD aus dem Internet zurück und gab das APA-Netz auf und diese Adressen frei.

Hier haben wir unsere IP-Adresse mit der wir kommunizieren. In jedem Datenpaket, das wir auf die Reise schicken ist die IP-Adresse und der Port inkludiert sowohl vom Absender als auch vom Ziel. Ein Paket würde in etwa so aussehen:
Abs 10.1.1.1 Port 56872 sendet an 192.168.3.77 Port 80.
Hier kommen neue Begriffe ins Spiel: der Port und das Netzwerk.

Beim Netzwerk gibt es mehrere Klassen von Netzwerken. (A, B, C). Von den 4 Bytes der Netzwerkadresse werden eine bestimmete Anzahl von Addressen zu einen Netzwerk zusammengefasst.
Die Netzwerk-Ranges sind :
Class A 0.0.0.0 – 127.255.255.255 8 Bit Anzahl Rechner: 16.777.214
class B 128.0.0.0 – 191.255.255.255 16 Bit anzahl Rechner: 65.534
class C 192.0.0.0 – 223.255.255.255 24 Bit Anzahl Rechner: 254

Das heißt: in einem Class A Netz kann ich bis zu 16 Mio Rechner haben und alle wissen von einander bescheit und können auch direkt miteinander kommunizieren. No Router ist notwendig. Wahrscheinlich werde ich keinen nennenswerten Dursatz mehr haben und vorher eine Segmentierung machen müssen. Aber Class B sind durchaus schon möglich.

An und für sich sollte jede Adresse eindeutig sein und von der IANA vergeben werden. Nur gibt es mittlerweile mehr Rechner als Adressen. Daher hat man sich entschlossen private Adressräume zu schaffen. Die nicht weitergeroutet werden. Dazu zählen...
127.0.0.0 - 127.255.255.255 für den "lokal Host" und nur für den eigenen Rechner.
10.0.0.0 - 10.255.255.255 für ein eigenes Class A Netz
172.16.0.0–172.31.255.255 für ein eigenes Class B Netz
192.168.0.0–192.168.255.255 für ein Class C Netz

Dein Netz zu Hause wird wahrscheinlich in einem der letztgenannten Netze sein.

Um mit der großen weiten Welt zu kommunizieren brauchen wir jetzt ein Service das deine private IP-Adresse in eine öffentlich übersetzt. Dieses Service nennt man NAT (network address translation) und ist zu 99,99% in deinem Router integriert. Aber hops wie findet jetzt dein Rechner überhaupt zu Google.

Habe ich schon erwähnt dass du beim DHCP (das ist ein Service der Anwendungschicht) einen "Default-Router" bekommst. Die Logik ist einfach: Wenn etwas nicht in deinem Netz ist , geht an den Default-Router. Auch der Router hat einen Default-Router und der ebenfalls. Und irgendeiner weiß dann wo der Server mit der Ziel-Ip-Adresse steht.
Neben den dynamischen Routen gibt es auch statische über die man Netze miteinander verbinden kann. Aber das ist eine andere Geschichte.

https://de.wikipedia.org/wiki/IP-Paket zeigt uns den Aufbau des IP-Protokolls
An dieser Stelle müssen wir jetzt unterscheiden zwischen IP v4 und IP v6. Die IP-Adressen von Version sind vor ein paar Jahren ausgegangen Schön langsam erfolgt ein Wechsel auf IPv6. Wie lange dieser noch dauern wird, traut sich niemand sagen.

Die wichtigsten Unterschiede zwischen v4 und v6 sind die IP-Adress-Länge von 32Bit (4 Bytes) auf 128Bit (16 Bytes). und die Quality of Service.

In der TCP-Schicht 3 (Transport Schicht) stehen uns mehrere Protokolle zur Verfügung..
Die wichtigsten wären:
TCP Dieses Protoll ist verbindungsorentiert. Das heißt es gibt einen Aufbau und einen Abbau
die Gegenstelle weiss immer über den Partner Bescheid, Jedes Packet wird vom Empfänger quittiert. Es gibt klare Regeln innerhalb welcher Zeit die Quittungen eintreffen. Wann eine Verbindung abgebaut wird. etc.
https://de.wikipedia.org/wiki/Transmiss ... l_Protocol

UDP Verbindungslos. Ich schicke ein paar Bytes, nimmt er sie ist es gut nimmer er sie nicht auch gut. VIDEO, Konferenzen, Filme und Telefonie sind solche Anwendungen wo man einen Ruckler oder einen Aussetzer in Kauf nehmen kann.
https://de.wikipedia.org/wiki/User_Datagram_Protocol

ICMP - Internet Control Message Protocol
Damit werden Nachrichten zwischen Knoten losgeschickt. Gehen sie verloren bekommt das niemand mit. ggf. kann eine neue Route so mitgeteilt werden oder einfach nur ein PING genauer ein echo-Kommand.
https://de.wikipedia.org/wiki/Internet_ ... e_Protocol

So und somit wären wir auf der Scicht 4 angelangt. Der Anwendungsebene.
Hier wäre unser HTML-Seite. und das http- Protokoll angesiedelt.
https://de.wikipedia.org/wiki/Hypertext ... r_Protocol

Ich will nur eines exemplarisch aufzeigen. Man könnte annehmen, dass es für jeden Port mindestens ein solches Protokoll gibt. Sie gehen sicher in die 10.000.
Damit siehst du welches Problem es gibt, Das Aufzählen ist schon unmöglich. Dazu kommt das einige Protokolle sowohl als TCP als auch auf UDP laufen. Ein Apache-Webserver kann auf UDP Port 80 senden als auch auf TCP Port 80 senden.

Und somit möchte ich auf John Postl hinweisen. John hat die RFC's (Request for Comments)
https://de.wikipedia.org/wiki/Request_for_Comments ins Leben gerufen. Als er starb, gibt es einen RFC mit seinem Nachruf.
Hier noch die gesamten https://www.rfc-editor.org/retrieve/bulk/ RFC-Werke für einen dunklen Winterabend. ;-)
Viel Spass dabei


meine Antwort = 21 anstatt 10 10 10
------------------------------------------------
Benutzeravatar
Juhu
Beiträge: 122
Registriert: So 24. Jul 2022, 18:10
Ubuntu Version: 22.04
Wohnort: Mödling

Re: Das Netzwerk Teil 1 Ethernet, IP, TCP Korrektur Jon Postl

Beitrag von Juhu »

Hier hat der Tippteufel zugeschlagen. Bei Jon Postl ist ein h zuviel
Der volle Name lautet eigentlich Jonathan Bruce Postel.
Unter Jon Postl findet man dann so einiges :D
meine Antwort = 21 anstatt 10 10 10
------------------------------------------------
Antworten