GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Grundlagen des TCP/IP-Protokolls anhand eines Diagramms erklärt

Haben Sie sich jemals gefragt, wie Ihr Computer mit anderen Computern in Ihrem lokalen LAN oder mit anderen Systemen im Internet kommuniziert?

Das Verständnis der Feinheiten der Interaktion von Computern ist ein wichtiger Teil des Netzwerkens und sowohl für einen Systemadministrator als auch für einen Entwickler von Interesse. In diesem Artikel werden wir den Versuch unternehmen, das Konzept der Kommunikation von der sehr grundlegenden Ebene aus zu diskutieren, die von allen verstanden werden muss.

TCP/IP-PROTOKOLLSUITE

Die Kommunikation zwischen Computern in einem Netzwerk erfolgt über Protokollanzüge. Die am weitesten verbreitete und am weitesten verbreitete Protokollsuite ist die TCP/IP-Protokollsuite. Ein Protokollanzug besteht aus einer mehrschichtigen Architektur, bei der jede Schicht eine bestimmte Funktionalität darstellt, die von einem Protokoll ausgeführt werden kann. Jede Schicht hat normalerweise mehr als eine Protokolloption, um die Verantwortung zu erfüllen, der die Schicht unterliegt. TCP/IP wird normalerweise als 4-Schichten-System betrachtet. Die 4 Schichten sind wie folgt:

  1. Anwendungsschicht
  2. Transportschicht
  3. Netzwerkschicht
  4. Sicherungsschicht

1. Anwendungsschicht

Dies ist die oberste Schicht der TCP/IP-Protokollsuite. Diese Schicht umfasst Anwendungen oder Prozesse, die Transportschichtprotokolle verwenden, um die Daten an Zielcomputer zu liefern.

Auf jeder Schicht gibt es bestimmte Protokolloptionen, um die Aufgabe auszuführen, die dieser bestimmten Schicht zugeordnet ist. Die Anwendungsschicht hat also auch verschiedene Protokolle, die Anwendungen verwenden, um mit der zweiten Schicht, der Transportschicht, zu kommunizieren. Einige der gängigen Protokolle der Anwendungsschicht sind :

  • HTTP (Hypertext-Übertragungsprotokoll)
  • FTP (Dateiübertragungsprotokoll)
  • SMTP (Simple Mail Transfer Protocol)
  • SNMP (Simple Network Management Protocol) usw.

2. Transportschicht

Diese Schicht stellt das Rückgrat für den Datenfluss zwischen zwei Hosts bereit. Diese Schicht erhält Daten von der darüber liegenden Anwendungsschicht. Es gibt viele Protokolle, die auf dieser Schicht arbeiten, aber die beiden am häufigsten verwendeten Protokolle auf der Transportschicht sind TCP und UDP.

TCP wird verwendet, wenn eine zuverlässige Verbindung erforderlich ist, während UDP bei unzuverlässigen Verbindungen verwendet wird.

TCP teilt die Daten (die von der Anwendungsschicht kommen) in Blöcke der richtigen Größe und leitet diese Blöcke dann an das Netzwerk weiter. Es bestätigt empfangene Pakete, wartet auf die Bestätigungen der gesendeten Pakete und legt eine Zeitüberschreitung fest, um die Pakete erneut zu senden, wenn Bestätigungen nicht rechtzeitig empfangen werden. Der Begriff „zuverlässige Verbindung“ wird verwendet, wenn keine Informationen verloren gehen sollen, die über diese Verbindung über das Netzwerk übertragen werden. Daher muss das für diese Art von Verbindung verwendete Protokoll den Mechanismus bereitstellen, um diese gewünschte Eigenschaft zu erreichen. Beispielsweise ist es beim Herunterladen einer Datei nicht erwünscht, Informationen (Bytes) zu verlieren, da dies zu einer Beschädigung des heruntergeladenen Inhalts führen kann.

UDP bietet einen vergleichsweise einfacheren, aber unzuverlässigen Dienst, indem Pakete von einem Host zum anderen gesendet werden. UDP ergreift keine zusätzlichen Maßnahmen, um sicherzustellen, dass die gesendeten Daten vom Zielhost empfangen werden oder nicht. Der Begriff „unzuverlässige Verbindung“ wird verwendet, wenn der Verlust einiger Informationen die Erfüllung der Aufgabe durch diese Verbindung nicht behindert. Beispielsweise ist beim Streamen eines Videos der Verlust einiger Informationsbytes aus irgendeinem Grund akzeptabel, da dies die Benutzererfahrung nicht wesentlich beeinträchtigt.

3. Netzwerkschicht

Diese Schicht wird auch als Internetschicht bezeichnet. Der Hauptzweck dieser Schicht besteht darin, die Bewegung von Daten im Netzwerk zu organisieren oder zu handhaben. Mit Datenbewegung meinen wir im Allgemeinen das Routing von Daten über das Netzwerk. Das Hauptprotokoll, das auf dieser Schicht verwendet wird, ist IP. Während ICMP (verwendet vom beliebten „Ping“-Befehl) und IGMP auch auf dieser Ebene verwendet werden.

4. Sicherungsschicht

Diese Schicht wird auch als Netzwerkschnittstellenschicht bezeichnet. Diese Schicht besteht normalerweise aus Gerätetreibern im Betriebssystem und der an das System angeschlossenen Netzwerkschnittstellenkarte. Sowohl die Gerätetreiber als auch die Netzwerkschnittstellenkarte kümmern sich um die Kommunikationsdetails mit den Medien, die zum Übertragen der Daten über das Netzwerk verwendet werden. In den meisten Fällen liegen diese Medien in Form von Kabeln vor. Einige der bekannten Protokolle, die auf dieser Ebene verwendet werden, sind ARP (Address Resolution Protocol), PPP (Point to Point Protocol) usw.

TCP/IP-KONZEPTBEISPIEL

Beachtenswert ist, dass die Interaktion zwischen zwei Computern über das Netzwerk durch die TCP/IP-Protokollsuite in Form einer Client-Server-Architektur stattfindet.

Der Client fordert einen Dienst an, während der Server die Anfrage für den Client verarbeitet.

Nun, da wir die zugrunde liegenden Schichten besprochen haben, die diesen Datenfluss vom Host zum Ziel über ein Netzwerk unterstützen. Nehmen wir ein sehr einfaches Beispiel, um das Konzept klarer zu machen.

Berücksichtigen Sie den Datenfluss beim Öffnen einer Website.

Wie in der obigen Abbildung zu sehen ist, fließen die Informationen nach unten durch jede Schicht auf dem Host-Computer. Auf der ersten Schicht wird, da das HTTP-Protokoll verwendet wird, eine HTTP-Anforderung gebildet und an die Transportschicht gesendet.

Hier weist das Protokoll TCP den Daten, die von der oberen Schicht kommen, einige weitere Informationen (wie Sequenznummer, Quellportnummer, Zielportnummer usw.) zu, damit die Kommunikation zuverlässig bleibt, d /P>

Auf der nächstniedrigeren Schicht fügt IP seine eigenen Informationen über die Daten hinzu, die von der Transportschicht kommen. Diese Informationen würden bei der Übertragung von Paketen über das Netzwerk helfen. Schließlich stellt die Datenverbindungsschicht sicher, dass die Datenübertragung zu/von den physischen Medien ordnungsgemäß erfolgt. Auch hier kann die auf der Datenverbindungsschicht durchgeführte Kommunikation zuverlässig oder unzuverlässig sein.

Diese Informationen werden über physische Medien (wie Ethernet) übertragen und erreichen die Zielmaschine.

Auf dem Zielcomputer (in unserem Fall der Computer, auf dem die Website gehostet wird) findet nun dieselbe Reihe von Interaktionen statt, jedoch in umgekehrter Reihenfolge.

Das Paket wird zuerst auf der Sicherungsschicht empfangen. Auf dieser Schicht werden die Informationen (die vom Datenverbindungsschichtprotokoll der Hostmaschine gefüllt wurden) gelesen und der Rest der Daten wird an die obere Schicht weitergeleitet.

In ähnlicher Weise werden auf der Netzwerkschicht die vom Netzwerkschichtprotokoll der Hostmaschine festgelegten Informationen gelesen und der Rest der Informationen an die nächsthöhere Schicht weitergegeben. Dasselbe passiert auf der Transportschicht und schließlich wird die von der Host-Anwendung (Ihrem Browser) gesendete HTTP-Anfrage von der Zielanwendung (Website-Server) empfangen.

Man würde sich fragen, was passiert, wenn Informationen, die für jede Schicht spezifisch sind, von den entsprechenden Protokollen auf dem Zielcomputer gelesen werden, oder warum ist dies erforderlich? Nun, lassen Sie uns dies anhand eines Beispiels des TCP-Protokolls verstehen, das auf der Transportschicht vorhanden ist. Auf der Host-Maschine fügt dieses Protokoll Informationen wie die Sequenznummer zu jedem Paket hinzu, das von dieser Schicht gesendet wird.

Wenn das Paket auf der Zielmaschine diese Schicht erreicht, notiert sich das TCP auf dieser Schicht die Sequenznummer des Pakets und sendet eine Bestätigung (die empfangene Sequenznummer + 1).

Wenn nun das Host-TCP die Bestätigung nicht innerhalb einer bestimmten Zeit erhält, sendet es dasselbe Paket erneut. Auf diese Weise stellt TCP sicher, dass kein Paket verloren geht. Wir sehen also, dass das Protokoll auf jeder Ebene die Informationen liest, die von seinem Gegenstück gesetzt wurden, um die Funktionalität der Ebene zu erreichen, die es darstellt.

PORTS, SERVER UND STANDARDS

Auf einer bestimmten Maschine wird eine mit der IP-Adresse der Maschine gekoppelte Portnummer als Socket bezeichnet. Eine Kombination aus IP und Port auf Client und Server wird als Vier-Tupel bezeichnet. Dieses Vierer-Tupel identifiziert eindeutig eine Verbindung. In diesem Abschnitt werden wir besprechen, wie Portnummern gewählt werden.

Sie wissen bereits, dass einige der sehr verbreiteten Dienste wie FTP, Telnet usw. auf bekannten Portnummern laufen. Während der FTP-Server auf Port 21 läuft, läuft der Telent-Server auf Port 23. Wir sehen also, dass einige Standarddienste, die von jeder TCP/IP-Implementierung bereitgestellt werden, einige Standardports haben, auf denen sie laufen. Diese Standardportnummern werden im Allgemeinen zwischen 1 und 1023 gewählt. Die bekannten Ports werden von der Internet Assigned Numbers Authority (IANA) verwaltet.

Während die meisten Standardserver (die durch die Implementierung der TCP/IP-Suite bereitgestellt werden) auf Standardportnummern laufen, benötigen Clients keinen Standardport, um darauf zu laufen.

Client-Portnummern werden als ephemere Ports bezeichnet. Mit kurzlebig meinen wir kurzlebig. Dies liegt daran, dass ein Client eine Verbindung zum Server herstellen, seine Arbeit erledigen und dann die Verbindung trennen kann. Daher haben wir den Begriff „kurzlebig“ verwendet und daher sind für sie keine Standardports erforderlich.

Da Clients außerdem die Portnummern der Server kennen müssen, um sich mit ihnen zu verbinden, laufen die meisten Standardserver auf Standardportnummern.

Die für Clients reservierten Ports reichen im Allgemeinen von 1024 bis 5000. Portnummern über 5000 sind für Server reserviert, die nicht standardmäßig oder bekannt sind.

Wenn wir uns die Datei „/etc/services“ ansehen, finden Sie die meisten Standardserver und den Port, auf dem sie laufen.

$ cat /etc/services
systat		11/tcp		users
daytime		13/udp
netstat		15/tcp
qotd		17/tcp		quote
msp		18/udp
chargen		19/udp		ttytst source
ftp-data	20/tcp
ftp		21/tcp
ssh		22/tcp
ssh		22/udp
telnet		23/tcp
...
...
...

Wie Sie der Datei /etc/services entnehmen können, hat FTP die Portnummer 21, telent die Portnummer 23 usw. Sie können den Befehl „grep“ für diese Datei verwenden, um jeden Server und den zugehörigen Port zu finden.

Soweit die Standards betroffen sind, verwalten die folgenden vier Organisationen/Gruppen die TCP/IP-Protokollsuite. Sowohl die IRTF als auch die IETF fallen unter das IAB.

  1. Die Internetgesellschaft (ISOC)
  2. Das Internet Architecture Board (IAB). Das IAB fällt unter die ISOC.
  3. Die Internet Engineering Task Force (IETF)
  4. Die Internet Research Task Force (IRTF)

Linux
  1. Befehl zum Herunterfahren von Linux mit Beispielen erklärt

  2. 15 häufig verwendete Netzwerkports erklärt

  3. nslookup Linux-Befehl mit Beispielen erklärt

  4. Linux Traceroute-Befehl, erklärt mit Beispielen

  5. IP/Port-Umleitung mit csf

Wait-Befehl in Linux anhand von Beispielen erklärt

Wildcards in Linux erklärt mit 10 Beispielen

Linux-Dateizeitstempel mit Beispielen erklärt

Tr-Befehl in Linux mit Beispielen erklärt

Linux tee-Befehl erklärt (mit Beispielen)

Linux csplit Befehl erklärt (mit Beispielen)