A
Asmodeus
Guest
ich bitte euch um eure unterstützung
Ich Grüße euch. Diese unterlagen sind im Rahmen meiner letzten 65 Stunden entstanden, als ich mich mit diesen Thema TCP/IP auseinander gesetzt habe. Ich bitte euch die Arbeit aufmerksam durchzulesen und mir eventuelle Fehler umgehend zu melden, da ich sonnst Gefahr habe mir dies falsch einzustudieren.
Größte Probleme habe ich im Bereich der Header, weil ich nicht weis ob der TCP/IP Header ein einziger ist oder ob es 2 getrennte sind, nämlich der IP mit dem verkapselten TCP Header.
Auch ein Schwachpunkt ist das fragmentieren. Ich habe angenommen das es so funktioniert wie es in meinem Text steht. Nur da stellt sich mir persönlich die Frage woher eine IP Verbindung wissen kann wie die Paketgrenzen in jedem netz bis zum empfangenden Rechner sind.......
Die Felder die in der Header Erklärung mit ????? definiert sind kann ich nicht zuordnen und bitte um eine kurze Beschreibung was diese bewirken, oder gar dazupassende rfc`s bzw. Links.
Ich danke euch schon in vorhinein und hoffe das ich bald Ihre Antwort erhalte um wieder weiterarbeiten zu können, denn derzeit stecke ich wegen diesen Punkten fest.
IP [ Internet Protokoll ]
Das Internet Protokoll (IP) definiert Transport von Datagrammen und kann diese zu fremden Rechnern routen. Es ist auch in der Lage Pakete zu fragmentieren, falls dies von Nöten ist. IP ist ein Verbindungsloses Protokoll. Es besitzt außer einer Prüfsumme keinerlei Fehlerkorrekturen. Die Adressierung erfolgt mittels einer 32 Bit Internet-Adresse. Das Protokoll kennt 5 Verschiedne Adressklassen. Die Maximalgröße von Paketen ist 64 Kbyte.
Das IP Paket [ IP Header und IP Body ]
Das IP Paket besteht aus 2 Bestandteilen. Der IP Header (Datagramm) und der IP Body. Der IP Header enthällt alle Informationen um das Paket, das sich im IP Body befindet, zu transportieren.
-Versionsnummer derzeit 04 bald 06
IHL = Internet Header Length kann variieren
Type of service ?????
Gesamtlänge des Paketes ...kein Kommentar
Identifikation Zähler um die Teile einer Fragmentkette zu Identifizieren
Flags ?????
TTT = Time to Live ?????
Protokoll 6 = tcp; udp = 17; icmp = 1
Header Prüfsumme ...kein Kommentar
Ursprungs und Zieladresse jeweils 32 bit
Optionen für spezielle Kommentaar die ein z.B.: ein Sourcerouting ermöglichen Padding Füllbits
Adressierung
Beispiel einer IP Adresse 205.188.2.52
IP Adressiert in 32 bit Adressen die in je 4 Byte unterteilt ist. Diese sind im DDS (Doted Dezimal System) angegeben. Das sind wiederum 4 mal 3 Zahlen. Jede dieser Zahlen kann maximal den Wert 255 haben.
Adressklassen
Ist das erste Bit der Adresse 0, dann gehört die Adresse zu der Klasse A:
- Bit 0 bis 7 bestimmen das Netzwerk.
- Bit 8 bis 31 bestimmen den Rechner.
- insg. 126 Netze mit je 16777214 Rechnern möglich.
Sind die ersten beiden Bit der Adresse 10, dann gehört die Adresse zu der Klasse B:
- Bit 0 bis 15 bestimmen das Netzwerk.
- Bit 16 bis 31 bestimmen den Rechner.
- insg. 16382 Netze mit je 65534 Rechnern möglich.
Sind die ersten drei Bit der Adresse 110, dann gehört die Adresse zu der Klasse C:
- Bit 0 bis 23 bestimmen das Netzwerk.
- Bit 24 bis 31 bestimmen den Rechner.
- insg. 2097150 Netze mit je 254 Rechnern möglich.
Adressierungstypen [ Unicast, Multicast, Broadcast ]
Unicast Adresse
Eine Gewöhnliche IP Adresse ist eine Unicast Adresse. Es wird 1 Rechner angesprochen
Multicast Adresse
Über eine Multicast Adresse lassen sich mehrere Rechner ansprechen. Mit diesem Adressierungstyp kann man mehrer Rechner ansprechen, zB.: kann man mittels dieser Adressierung Pakete zu mehreren ausgewählten Rechnern schicken. Eignet sich für eine Memo oder Infonachricht.
Broadcast Adresse
Mit einer Broadcast Adresse lassen sich alle Rechner Innerhalb eines Netzwerkes ansprechen. Dies wird für wichtige Meldungen benutzt wie ?Alle Printserver gehen um 16:15 für 30 Minuten down?
Eine Broadcast Adresse kann auch für einen Rechner benutzt werden der keine eigene Adresse in einem Netzwerk hat bzw. bekommen kann.
Fragmentierung
Wenn ein Paket verschiedne Netze auf einem Weg zu einem anderen Rechner ist, und dabei verschiedene Netzwerke passiert, kann es passieren, das es einige Netzwerke gibt die nur eine bestimmte Paketgröße zulassen. In diesem Fall kann IP ein Paket fragmentieren. Die bedeutet, es wird kleiner gemacht, In diesem Vorgang werden die Header dupliziert und in das Feld Identification werden die Fragmentnummern eingetragen. Der empfangende Rechner ?baut? dann diese Fragmentketten wieder zu einem Paket zusammen
----------------- ENDE IP ? PROTOKOLL --------------------
TCP [ Transmission Control Protokoll ]
Das Transmission Control Protokoll TCP erstellt eine virtuelle full-duplex Verbindungen zu einem anderen Rechner. In dieser Verbindung erfolgen die Daten nicht mehr Blockweise sondern im Form eines Datenstromes. Die Adressierung erfolgt mittels einer 2 Byte (16 bit) langen Portadresse . Die Datenübehrtragung wird mittels, Sequenznummern, Prüfsumme, Quittung mit Zeitüberwachung und Segmentwiederholung gesichert.
Das TCP Paket [ TCP Header und TCP Body ]
Das IP Paket besteht aus 2 Bestandteilen. Der TCP Header (Datagramm) und der TCP Body. Der TCP Header enthält alle Informationen um das Paket, das sich im TCP Body befindet, zu transportieren. Der Header ist ähnlich mit dem des IP Protokolls. Ihm fehlen nur die Felder IP spezifische Felder und andere TCP spezifische Felder sind zusätzlich vorhanden.
Senderportnummer Startpunkt der virtuellen Verbindung
Empfängerportnummer Endpunkt der virtuellen Verbindung
Sequenz- und Quittungsnummer siehe nächste Kapitel
Flags siehe nächste Kapitel
Fenstergrösse. wird für die Sliding Window Funktion benutzt
Adressierung
Man kann die Adressierung mit einer normalen Wohnungsadressierung im realen leben vergleichen. Das TCP ? Protokoll benötigt die Portnummer und diese ist für jeden Dienst vorgegeben. Siehe div. Onlineportlisten.
Internet Socket entspricht der Adresse
Netzwerk-Nummer entspricht dem Ort
Host ? ID entspricht der Hausnummer
Portnummerentspricht der Wohnung
Das Verlässliche TCP
TCP garantiert Eigenschaften und ist darin absolut zuverlässig. Eher würde TCP die Verbindung trennen als gegen einer dieser Eigenschaften zu verstoßen.
Das Ziel erhält die Anwendungsdaten in der Reihenfolge, in der sie abgeschickt wurden.
Das Ziel erhält alle Anwendungsdaten
Das Ziel erhält keine Anwendungsdaten Doppelt
Das TCP ? Protokoll benötigt auf alle fälle die ersten 3 Datenpakete um genau zu sein die ersten 3 Datagramme um eine Verbindung aufbauen zu können.1
Geht ein Packet in im mittleren Teil der Sitzung verloren, sorgt TCP dafür das es erneut gesendet wird bevor es an die Anwendungsschicht weitergegeben wird. Gelingt dies nicht nach mehreren Versuchen seitens TCP bricht dieses auch die Verbindung ab. So ist garantiert das keine Lückenhafter Datenstrom an die Anwendungsschicht ausgehändigt wird. Natürlich sind die oben erwähnten Garantien ein Aufwand, da TCP mehr Zeit benötigt um die Verbindung aufzubauen1 und während der Verbindung auch permanent darauf achten muss das verlorene Pakete erneut gesendet werden, und dies darf wie oben erwähnt ja nicht doppelt der Fall sein.
Nun hätten wir die letzten beiden Garantien kurz angeschnitten und erläutert. Jetzt kommen wir zu der ersten Garantie nämlich Anwendungsdaten in der Reihenfolge wie sie angeschickt wurden. Da TCP selber nicht Daten schicken kann (weil das eine niedere Schicht macht) kann es auch nicht garantieren das eine andere Schicht diese in der vorgesehen TCP Reihenfolge versendet. Darum fügt TCP eine Sogenannte Sequenznummer in den Header ein. Mittels dieser Sequenznummern können die Pakete in der garantiert richtigen Reihenfolge versendet werden2.
TCP ? Flags
SYN synchronize; synchronisieren
ACK acknowlegment; Empfangsbestätigung
PSH push
RST reset
URG urgent ; dingend
FIN finish
Verbindungsaufbau [ mittels ACK und SIN Flag ]
TCP ?Drei Wege - Handshake?
Client zu Server ACK = 0, SYN = 1 1 Weg
Server zu Client ACK = 1, SYN = 1 2 Weg
Client zu Server ACK = 1, SYN = 0 3 Weg
Server zu Client ACK = 1, SYN = 0 und so geht?s weiter??
etc.........
Erst nach dem 3 Flagaustausch von Client & Server kann die TCP Verbindung stehen. Erst dann ist die Verbindung bidirektional (man muss keine neue ? Verbindung zum Server aufbauen um eine Anfrage zu stellen und umgekehrt, der Server keine zum Client) Kurz gesagt eine TCP ? Verbindung kann einfach verhindert werden indem man das erste Packet verwirft oder blockt. Ohne diesem kann keine Verbindung entstehen
TCP ? Sequenznummern
Am beginn jeder Verbindung wählt jede Seite eine Startnummer, diese Nummer wird übermittelt, wenn die SYN Flag gesetzt wird. Da es 2 Pakete gibt in denen die SYN Flag gesetzt ist1 geht diese Nummer an beide Seiten. Dies ist nötig weil beide (Server und Client) eine unterschiedliche Nummer übermitteln. Diese Nummern werden immer nach einem Zufallsystem generiert. Nach dem SYN Flag wird die Nummer immer um die Anzahl der Datenbytes im Paket erhöht. Ein kleines Beispiel zum Verständnis. Ist die erste Sequenznummer 55 und das erste Datenpaket enthält 10 Bytes, dann beträgt die Sequenznummer 65; enthält das nächste Datenpaket 35 Bytes, dann beträgt die Sequenznummer 65 + 35 also 100; usw...... .Aber der ACK ? Flag wird von der Nummer des nächsten erwarteten Datenstücks begleitetet. (Sequenznummer +1 das heißt in dem oberen Beispiel Fall kommen wir dann auf dieses Resultat :
55 + 10 = 65 +1 = 66
66 + 35 = 101 + 1 = 102
Durch dieses System ist es für einen ?Hacker? äußerst schwer solche Pakete abzufangen oder sie zu Manipulieren.
----------------- ENDE TCP ? PROTOKOLL --------------------
Ein grosses Dankeschön an alle die mir Tutorials und Rfc`s zur Verfügung gestellt haben. Wenn ich die Link Liste wiederfinde kommt Sie unter diese Rfc.
Ich Grüße euch. Diese unterlagen sind im Rahmen meiner letzten 65 Stunden entstanden, als ich mich mit diesen Thema TCP/IP auseinander gesetzt habe. Ich bitte euch die Arbeit aufmerksam durchzulesen und mir eventuelle Fehler umgehend zu melden, da ich sonnst Gefahr habe mir dies falsch einzustudieren.
Größte Probleme habe ich im Bereich der Header, weil ich nicht weis ob der TCP/IP Header ein einziger ist oder ob es 2 getrennte sind, nämlich der IP mit dem verkapselten TCP Header.
Auch ein Schwachpunkt ist das fragmentieren. Ich habe angenommen das es so funktioniert wie es in meinem Text steht. Nur da stellt sich mir persönlich die Frage woher eine IP Verbindung wissen kann wie die Paketgrenzen in jedem netz bis zum empfangenden Rechner sind.......
Die Felder die in der Header Erklärung mit ????? definiert sind kann ich nicht zuordnen und bitte um eine kurze Beschreibung was diese bewirken, oder gar dazupassende rfc`s bzw. Links.
Ich danke euch schon in vorhinein und hoffe das ich bald Ihre Antwort erhalte um wieder weiterarbeiten zu können, denn derzeit stecke ich wegen diesen Punkten fest.
IP [ Internet Protokoll ]
Das Internet Protokoll (IP) definiert Transport von Datagrammen und kann diese zu fremden Rechnern routen. Es ist auch in der Lage Pakete zu fragmentieren, falls dies von Nöten ist. IP ist ein Verbindungsloses Protokoll. Es besitzt außer einer Prüfsumme keinerlei Fehlerkorrekturen. Die Adressierung erfolgt mittels einer 32 Bit Internet-Adresse. Das Protokoll kennt 5 Verschiedne Adressklassen. Die Maximalgröße von Paketen ist 64 Kbyte.
Das IP Paket [ IP Header und IP Body ]
Das IP Paket besteht aus 2 Bestandteilen. Der IP Header (Datagramm) und der IP Body. Der IP Header enthällt alle Informationen um das Paket, das sich im IP Body befindet, zu transportieren.
-Versionsnummer derzeit 04 bald 06
IHL = Internet Header Length kann variieren
Type of service ?????
Gesamtlänge des Paketes ...kein Kommentar
Identifikation Zähler um die Teile einer Fragmentkette zu Identifizieren
Flags ?????
TTT = Time to Live ?????
Protokoll 6 = tcp; udp = 17; icmp = 1
Header Prüfsumme ...kein Kommentar
Ursprungs und Zieladresse jeweils 32 bit
Optionen für spezielle Kommentaar die ein z.B.: ein Sourcerouting ermöglichen Padding Füllbits
Adressierung
Beispiel einer IP Adresse 205.188.2.52
IP Adressiert in 32 bit Adressen die in je 4 Byte unterteilt ist. Diese sind im DDS (Doted Dezimal System) angegeben. Das sind wiederum 4 mal 3 Zahlen. Jede dieser Zahlen kann maximal den Wert 255 haben.
Adressklassen
Ist das erste Bit der Adresse 0, dann gehört die Adresse zu der Klasse A:
- Bit 0 bis 7 bestimmen das Netzwerk.
- Bit 8 bis 31 bestimmen den Rechner.
- insg. 126 Netze mit je 16777214 Rechnern möglich.
Sind die ersten beiden Bit der Adresse 10, dann gehört die Adresse zu der Klasse B:
- Bit 0 bis 15 bestimmen das Netzwerk.
- Bit 16 bis 31 bestimmen den Rechner.
- insg. 16382 Netze mit je 65534 Rechnern möglich.
Sind die ersten drei Bit der Adresse 110, dann gehört die Adresse zu der Klasse C:
- Bit 0 bis 23 bestimmen das Netzwerk.
- Bit 24 bis 31 bestimmen den Rechner.
- insg. 2097150 Netze mit je 254 Rechnern möglich.
Adressierungstypen [ Unicast, Multicast, Broadcast ]
Unicast Adresse
Eine Gewöhnliche IP Adresse ist eine Unicast Adresse. Es wird 1 Rechner angesprochen
Multicast Adresse
Über eine Multicast Adresse lassen sich mehrere Rechner ansprechen. Mit diesem Adressierungstyp kann man mehrer Rechner ansprechen, zB.: kann man mittels dieser Adressierung Pakete zu mehreren ausgewählten Rechnern schicken. Eignet sich für eine Memo oder Infonachricht.
Broadcast Adresse
Mit einer Broadcast Adresse lassen sich alle Rechner Innerhalb eines Netzwerkes ansprechen. Dies wird für wichtige Meldungen benutzt wie ?Alle Printserver gehen um 16:15 für 30 Minuten down?
Eine Broadcast Adresse kann auch für einen Rechner benutzt werden der keine eigene Adresse in einem Netzwerk hat bzw. bekommen kann.
Fragmentierung
Wenn ein Paket verschiedne Netze auf einem Weg zu einem anderen Rechner ist, und dabei verschiedene Netzwerke passiert, kann es passieren, das es einige Netzwerke gibt die nur eine bestimmte Paketgröße zulassen. In diesem Fall kann IP ein Paket fragmentieren. Die bedeutet, es wird kleiner gemacht, In diesem Vorgang werden die Header dupliziert und in das Feld Identification werden die Fragmentnummern eingetragen. Der empfangende Rechner ?baut? dann diese Fragmentketten wieder zu einem Paket zusammen
----------------- ENDE IP ? PROTOKOLL --------------------
TCP [ Transmission Control Protokoll ]
Das Transmission Control Protokoll TCP erstellt eine virtuelle full-duplex Verbindungen zu einem anderen Rechner. In dieser Verbindung erfolgen die Daten nicht mehr Blockweise sondern im Form eines Datenstromes. Die Adressierung erfolgt mittels einer 2 Byte (16 bit) langen Portadresse . Die Datenübehrtragung wird mittels, Sequenznummern, Prüfsumme, Quittung mit Zeitüberwachung und Segmentwiederholung gesichert.
Das TCP Paket [ TCP Header und TCP Body ]
Das IP Paket besteht aus 2 Bestandteilen. Der TCP Header (Datagramm) und der TCP Body. Der TCP Header enthält alle Informationen um das Paket, das sich im TCP Body befindet, zu transportieren. Der Header ist ähnlich mit dem des IP Protokolls. Ihm fehlen nur die Felder IP spezifische Felder und andere TCP spezifische Felder sind zusätzlich vorhanden.
Senderportnummer Startpunkt der virtuellen Verbindung
Empfängerportnummer Endpunkt der virtuellen Verbindung
Sequenz- und Quittungsnummer siehe nächste Kapitel
Flags siehe nächste Kapitel
Fenstergrösse. wird für die Sliding Window Funktion benutzt
Adressierung
Man kann die Adressierung mit einer normalen Wohnungsadressierung im realen leben vergleichen. Das TCP ? Protokoll benötigt die Portnummer und diese ist für jeden Dienst vorgegeben. Siehe div. Onlineportlisten.
Internet Socket entspricht der Adresse
Netzwerk-Nummer entspricht dem Ort
Host ? ID entspricht der Hausnummer
Portnummerentspricht der Wohnung
Das Verlässliche TCP
TCP garantiert Eigenschaften und ist darin absolut zuverlässig. Eher würde TCP die Verbindung trennen als gegen einer dieser Eigenschaften zu verstoßen.
Das Ziel erhält die Anwendungsdaten in der Reihenfolge, in der sie abgeschickt wurden.
Das Ziel erhält alle Anwendungsdaten
Das Ziel erhält keine Anwendungsdaten Doppelt
Das TCP ? Protokoll benötigt auf alle fälle die ersten 3 Datenpakete um genau zu sein die ersten 3 Datagramme um eine Verbindung aufbauen zu können.1
Geht ein Packet in im mittleren Teil der Sitzung verloren, sorgt TCP dafür das es erneut gesendet wird bevor es an die Anwendungsschicht weitergegeben wird. Gelingt dies nicht nach mehreren Versuchen seitens TCP bricht dieses auch die Verbindung ab. So ist garantiert das keine Lückenhafter Datenstrom an die Anwendungsschicht ausgehändigt wird. Natürlich sind die oben erwähnten Garantien ein Aufwand, da TCP mehr Zeit benötigt um die Verbindung aufzubauen1 und während der Verbindung auch permanent darauf achten muss das verlorene Pakete erneut gesendet werden, und dies darf wie oben erwähnt ja nicht doppelt der Fall sein.
Nun hätten wir die letzten beiden Garantien kurz angeschnitten und erläutert. Jetzt kommen wir zu der ersten Garantie nämlich Anwendungsdaten in der Reihenfolge wie sie angeschickt wurden. Da TCP selber nicht Daten schicken kann (weil das eine niedere Schicht macht) kann es auch nicht garantieren das eine andere Schicht diese in der vorgesehen TCP Reihenfolge versendet. Darum fügt TCP eine Sogenannte Sequenznummer in den Header ein. Mittels dieser Sequenznummern können die Pakete in der garantiert richtigen Reihenfolge versendet werden2.
TCP ? Flags
SYN synchronize; synchronisieren
ACK acknowlegment; Empfangsbestätigung
PSH push
RST reset
URG urgent ; dingend
FIN finish
Verbindungsaufbau [ mittels ACK und SIN Flag ]
TCP ?Drei Wege - Handshake?
Client zu Server ACK = 0, SYN = 1 1 Weg
Server zu Client ACK = 1, SYN = 1 2 Weg
Client zu Server ACK = 1, SYN = 0 3 Weg
Server zu Client ACK = 1, SYN = 0 und so geht?s weiter??
etc.........
Erst nach dem 3 Flagaustausch von Client & Server kann die TCP Verbindung stehen. Erst dann ist die Verbindung bidirektional (man muss keine neue ? Verbindung zum Server aufbauen um eine Anfrage zu stellen und umgekehrt, der Server keine zum Client) Kurz gesagt eine TCP ? Verbindung kann einfach verhindert werden indem man das erste Packet verwirft oder blockt. Ohne diesem kann keine Verbindung entstehen
TCP ? Sequenznummern
Am beginn jeder Verbindung wählt jede Seite eine Startnummer, diese Nummer wird übermittelt, wenn die SYN Flag gesetzt wird. Da es 2 Pakete gibt in denen die SYN Flag gesetzt ist1 geht diese Nummer an beide Seiten. Dies ist nötig weil beide (Server und Client) eine unterschiedliche Nummer übermitteln. Diese Nummern werden immer nach einem Zufallsystem generiert. Nach dem SYN Flag wird die Nummer immer um die Anzahl der Datenbytes im Paket erhöht. Ein kleines Beispiel zum Verständnis. Ist die erste Sequenznummer 55 und das erste Datenpaket enthält 10 Bytes, dann beträgt die Sequenznummer 65; enthält das nächste Datenpaket 35 Bytes, dann beträgt die Sequenznummer 65 + 35 also 100; usw...... .Aber der ACK ? Flag wird von der Nummer des nächsten erwarteten Datenstücks begleitetet. (Sequenznummer +1 das heißt in dem oberen Beispiel Fall kommen wir dann auf dieses Resultat :
55 + 10 = 65 +1 = 66
66 + 35 = 101 + 1 = 102
Durch dieses System ist es für einen ?Hacker? äußerst schwer solche Pakete abzufangen oder sie zu Manipulieren.
----------------- ENDE TCP ? PROTOKOLL --------------------
Ein grosses Dankeschön an alle die mir Tutorials und Rfc`s zur Verfügung gestellt haben. Wenn ich die Link Liste wiederfinde kommt Sie unter diese Rfc.