[Netzwerkprogrammierung·Datenverbindungsschicht] MAC-Frame/Ethernet-Protokoll/ARP-Protokoll/RARP-Protokoll


 Studenten, die zum Erlernen von Linux Cloud-Server und andere Cloud-Produkte benötigen, können zu / --> Tencent Cloud <-- / --> Alibaba Cloud <-- / --> Huawei Cloud <-- / wechseln offizielle Website, leichte Cloud-Server sind Die Kosten betragen bis zu 112 Yuan/Jahr, und neue Benutzer können bei ihrer ersten Bestellung von extrem niedrigen Rabatten profitieren.


Inhaltsverzeichnis

1. MAC-Frame

1. Der Unterschied zwischen IP-Adresse und MAC-Adresse

2. MAC-Frame-Protokoll

3. Der Einfluss von MTU auf das IP-Protokoll

4. Der Einfluss von MTU auf das UDP-Protokoll

5. Der Einfluss von MTU auf das TCP-Protokoll

2. Ethernet-Protokoll

1. So entpacken und trennen Sie MAC-Frames im Ethernet

1.1 Auspacken

1,2 Punkte für

2. MAC-Adresse

3. Prinzip der Weiterleitung im LAN

3. ARP-Protokoll

1. Einführung in das ARP-Protokoll

2. Format des ARP-Protokolls 

3. ARP-Anfrage und -Antwort 

4. ARP-Spoofing

4. RARP-Protokoll

5. Einige wichtige Technologien oder Protokolle

1. DNS (Anwendungsschichtprotokoll, unter Verwendung des UDP-Protokolls)

2. ICMP (Internet Layer Protocol)

3. Proxyserver


Router leiten IP-Pakete untereinander weiter, während MAC-Frames über das Netzwerkkabel laufen. Das Wesentliche der netzwerkübergreifenden Übertragung ist das Ergebnis der Weiterleitung durch unzählige lokale Netzwerke (Subnetze). Um Daten im selben LAN weiterzuleiten, müssen Sie sich dann auf das Ethernet-Protokoll der Datenverbindungsschicht verlassen.

1. MAC-Frame

1. Der Unterschied zwischen IP-Adresse und MAC-Adresse

Die IP-Adresse beschreibt den gesamten Start- und Endpunkt der Straße;

Die MAC-Adresse beschreibt den Start- und Endpunkt jedes Intervalls auf der Straße;

2. MAC-Frame-Protokoll

Das MAC-Frame-Protokoll der Datenverbindungsschicht legt fest, dass ihre Nutzlast 1500 Byte (MTU (maximale Übertragungseinheit, die geändert werden kann)) nicht überschreiten darf. Diese 1500-Byte-Grenze umfasst den Header der oberen Schicht + Nutzlast.

Die Größe des Datenpakets kann nur durch die Transportschicht gesteuert werden, überschreitet jedoch manchmal immer noch 1500 Byte, was nur durch Fragmentierung und Assemblierung des IP-Protokolls gelöst werden kann. Die sendende IP-Schicht ist fragmentiert, und jedes Fragment hat eine IP-Header. Die End-IP-Schicht wird zusammengestellt (Byte-Überschreitung des Limits ist keine Mainstream-Situation). TCP- und MAC-Frames kümmern sich nicht um die IP-Fragmentierung und die Zusammenstellung von Datenpaketen. Dies ist lediglich das Verhalten der IP-Schicht selbst.

Router sind auch Hosts und haben ihre eigenen maximalen MTU-Grenzwerte. Wenn die MTU eines Routers 500 Byte beträgt, er aber eine 1500-Byte-Nachricht von einem Host im LAN empfängt, teilt der Router die Nachricht erneut auf. Alles zusammengebaut!

3. Der Einfluss von MTU auf das IP-Protokoll

Aufgrund der Beschränkung der MTU der Datenverbindungsschicht müssen größere IP-Datenpakete in Unterpakete unterteilt werden:

1. Teilen Sie das größere IP-Paket in mehrere kleine Pakete auf und kennzeichnen Sie jedes kleine Paket.

2. Die 16-Bit-Kennung (ID) des IP-Protokoll-Headers jedes kleinen Pakets ist gleich;

3. Im 3-Bit-Flag-Feld des IP-Protokoll-Headers jedes kleinen Pakets ist das zweite Bit 0, was angibt, dass Fragmentierung zulässig ist, und das dritte Bit gibt die Endmarkierung an (ob es sich um das letzte kleine Paket handelt, falls ja). , es wird auf 1 gesetzt, andernfalls wird es auf 1 gesetzt) ​​ist 0);

4. Wenn diese kleinen Pakete am anderen Ende ankommen, werden sie der Reihe nach neu geordnet, zusammengesetzt und zur Transportschicht zurückgeführt.

5. Sobald eines dieser kleinen Pakete verloren geht, schlägt die Neuzusammenstellung auf der Empfängerseite fehl, aber die IP-Schicht ist nicht für die erneute Übertragung der Daten verantwortlich. Wenn es sich bei der Transportschicht um TCP handelt, kommt es zu einer Zeitüberschreitung und eine erneute Übertragung, während UDP dies tut Paketverlust anzeigen.

4. Der Einfluss von MTU auf das UDP-Protokoll

1. Sobald die von UDP übertragenen Daten 1472 (1500 - 20 (IP-Header) - 8 (UDP-Header)) überschreiten, werden sie auf der Netzwerkebene in mehrere IP-Datagramme aufgeteilt.

2. Wenn eines dieser mehreren IP-Datagramme verloren geht, schlägt die Neuzusammensetzung der Netzwerkschicht auf der Empfängerseite fehl. Dies bedeutet, dass die Wahrscheinlichkeit, dass die gesamten Daten verloren gehen, sehr hoch ist, wenn das UDP-Datagramm auf der Netzwerkebene fragmentiert ist erhöht sich.

5. Der Einfluss von MTU auf das TCP-Protokoll

1. Ein TCP-Datagramm kann nicht unendlich groß sein und unterliegt dennoch der MTU. Die maximale Nachrichtenlänge eines einzelnen TCP-Datagramms wird als MSS (Max Segment Size) bezeichnet.

2. Während des Aufbaus einer TCP-Verbindung führen die kommunizierenden Parteien eine MSS-Aushandlung durch.

Im Idealfall entspricht der MSS-Wert genau der maximalen Länge, bei der IP nicht fragmentiert wird (diese Länge unterliegt weiterhin der MTU der Datenverbindungsschicht).

3. Beim Senden von SYN schreiben beide Parteien den MSS-Wert, den sie unterstützen können, in den TCP-Header.

4. Nachdem beide Parteien den MSS-Wert der anderen Partei kennengelernt haben, wählen sie den kleineren als endgültigen MSS.

5. Der Wert von MSS befindet sich in der 40-Byte- Variablenlängenoption des TCP-Headers (Art=2).

2. Ethernet-Protokoll

1. So entpacken und trennen Sie MAC-Frames im Ethernet

1.1 Auspacken

Verwenden Sie eine Strategie mit fester Länge. Wie in der Abbildung gezeigt, beträgt der Header 6 + 6 + 2 = 14 Bytes und das CRC-Prüfbit 4 Bytes. Drücken Sie beim Entpacken einfach den Kopf zusammen und entfernen Sie den Schwanz, um die Bytes zu fixieren, und der Rest ist die Nutzlast.

1,2 Punkte für

Wie in der Abbildung gezeigt, verfügt der Header des MAC-Frames des Ethernet-Protokolls über ein Typfeld. Dieses Feld enthält, an welches Protokoll in der Netzwerkschicht diese Nachricht übermittelt werden soll. Unter diesen stellt 0800 die obere Schicht dar, das IP-Protokoll; 0806 stellt die obere Schicht dar, das ARP-Protokoll; 8035 stellt die obere Schicht dar, das RARP-Protokoll usw.

2. MAC-Adresse

Die MAC-Adresse hat insgesamt 48 Bit. Jede Netzwerkkarte auf der Welt hat eine eindeutige MAC-Adresse. (Eigentlich muss die MAC-Adresse nur im LAN eindeutig sein)

Verwenden Sie den Befehl ifconfig, um die MAC-Adresse der Maschine anzuzeigen:

3. Prinzip der Weiterleitung im LAN

1. Ein Host im LAN sendet einen MAC-Frame, und alle Hosts im LAN können den MAC-Frame empfangen. Da das Ziel-MAC-Adressfeld im MAC-Frame vorhanden ist, kann die Datenverbindungsschicht des Hosts außer der IP das empfangen Frame. Nach dem Eintreffen wird der MAC-Frame verworfen und nicht nach oben übermittelt. Nur der Host mit der Ziel-MAC-Adresse empfängt und übermittelt den MAC-Frame nach oben.

2. Im LAN verfügt die Netzwerkkarte über einen „Promiscuous-Modus“ (standardmäßig nicht aktiviert). Dieser Modus gibt keine Datenrahmen auf. Alle aus dem LAN erhaltenen Datenrahmen werden nach oben geliefert, unabhängig davon, ob die Ziel-MAC-Adresse vorhanden ist meins. Dies ist auch das Prinzip des LAN-Paketerfassungstools.

3. Wenn in einem lokalen Netzwerk mehrere Hosts gleichzeitig Daten übertragen, stören sich die analogen Signale auf dem Bus gegenseitig und verursachen Kollisionen. Daher kann gleichzeitig nur ein Host im LAN Nachrichten senden. Um zu steuern, dass nur ein Host im lokalen Netzwerk gleichzeitig Nachrichten senden kann, gibt es verschiedene Standards zur Steuerung. Zum Beispiel:

Token-Ring: Im Token-Ring-Netzwerk wird ein Token im Ring zirkuliert. Nur der Knoten, der das Token besitzt, kann Daten senden, andere Knoten lauschen auf den Link, um Daten zu empfangen. Wenn ein Knoten Daten senden muss, hängt er die Daten an den Token an und gibt den Token weiter. Jeder Knoten prüft beim Empfang des Tokens, ob weitere Daten vorliegen. Ist dies der Fall, extrahiert der Knoten die Daten und verarbeitet sie.

Ethernet: Ethernet verwendet ein Protokoll namens CSMA/CD (Carrier Sense Multiple Access with Collision Detection), um die Datenübertragung zu verwalten und zu planen. Bei CSMA/CD überwacht jeder Knoten den Kanal im Netzwerk, um zu erkennen, ob andere Knoten Daten senden. Wenn festgestellt wird, dass der Kanal inaktiv ist, kann der Knoten mit dem Senden von Daten beginnen. Andernfalls wartet der Knoten eine zufällige Zeitspanne, bevor er erneut versucht, Daten zu senden.

Bestimmte Methoden können verwendet werden, um kontinuierlich Junk-Daten im LAN zu senden (der Host, der die Junk-Daten sendet, nimmt nicht am Kollisionserkennungs- und Kollisionsvermeidungsalgorithmus teil und sendet daher weiter). Im schlimmsten Fall werden die Daten anderer Hosts im LAN gesendet stecken bleiben oder im schlimmsten Fall das LAN lahmlegen.

4. Je größer das LAN ist, desto wahrscheinlicher ist es, dass die Hosts im LAN kollidieren. Ein Switch kann in einem LAN verwendet werden. Erstens kann der Switch das LAN in Regionen segmentieren. Beispielsweise werden die zwischen den Hosts A und D in der Abbildung weitergeleiteten Daten vom Switch nicht an die andere Seite weitergeleitet. Zweitens kann der Switch lokale Kollisionen erkennen. Wenn eine Kollision auftritt auf einer Seite des Schalters, dann werden die Kollisionsdaten nicht weitergeleitet und die Kollision hat keinen Einfluss auf die Datenweiterleitung auf der anderen Seite.

5. Bezüglich der Datenlänge jedes MAC gilt: Je länger die Daten, desto wahrscheinlicher ist eine Kollision. Aus diesem Grund begrenzt das MAC-Frame-Protokoll die Nutzlast auf maximal 1500 Byte.

3. ARP-Protokoll

Der Quellhost kennt nur die Ziel-IP, nicht jedoch die MAC-Adresse des Zielhosts. Wenn die Nachricht die Ziel-IP-Adresse erreicht, muss sie den entsprechenden Host finden, um die Nachricht zu senden. Bei der LAN-Kommunikation muss die MAC-Adresse des Zielhosts bekannt sein, um Daten in MAC-Frames zu kapseln.

Zu diesem Zeitpunkt kennt der Router mit der Ziel-IP nur die Ziel-IP der Nachricht durch die Nachricht. Wenn Sie die MAC-Adresse des Hosts kennen möchten, der dieser IP entspricht, muss der Router das ARP-Protokoll verwenden, um die Zuordnung zu finden Beziehung zwischen den IP- und MAC-Adressen.

1. Einführung in das ARP-Protokoll

Das ARP-Protokoll ist ein Protokoll zwischen der Datenverbindungsschicht und der Netzwerkschicht.

1. Während der Netzwerkkommunikation kennt das Anwendungsprogramm des Quellhosts die IP-Adresse und Portnummer des Zielhosts, jedoch nicht die MAC-Adresse des Zielhosts.

2. Das ARP-Protokoll stellt eine Zuordnungsbeziehung zwischen der IP-Adresse und der MAC-Adresse des Hosts her.

1. Der Quellhost sendet eine ARP-Anfrage mit der Frage „Wie lautet die Hardwareadresse des Hosts mit der IP-Adresse 192.168.0.1“ und sendet die Anfrage an das lokale Netzwerksegment (die Hardwareadresse im Header des Ethernet-Frames lautet). ausgefüllt FF:FF:FF:FF :FF:FF bedeutet Broadcast);

2. Der Zielhost empfängt die Broadcast-ARP-Anfrage und stellt fest, dass die IP-Adresse mit dem lokalen Host übereinstimmt. Anschließend sendet er ein ARP-Antwortpaket an den Quellhost und trägt seine eigene Hardwareadresse in das Antwortpaket ein.

3. Jeder Host verwaltet eine ARP-Cache-Tabelle, die mit dem Befehl arp -a angezeigt werden kann . Die Einträge in der Cache-Tabelle haben eine Ablaufzeit (normalerweise 20 Minuten). Wird ein Eintrag nicht innerhalb von 20 Minuten erneut verwendet, wird der Eintrag ungültig und beim nächsten Mal muss eine ARP-Anfrage gesendet werden, um die MAC-Adresse des Zielhosts zu erhalten.

4. Wenn ARP eine Antwort erhält, hat die neueste Antwort Vorrang.

2. Format des ARP-Protokolls 

1. Beachten Sie, dass die Quell-MAC-Adresse und die Ziel-MAC-Adresse jeweils einmal im Ethernet-Header und in der ARP-Anfrage erscheinen. Dies ist redundant, wenn die Verbindungsschicht Ethernet ist, kann aber zutreffen, wenn es sich bei der Verbindungsschicht um andere Netzwerktypen handelt. notwendig.

2. Der Hardwaretyp bezieht sich auf den Link-Layer-Netzwerktyp, 1 ist Ethernet;

3. Der Protokolltyp bezieht sich auf den zu konvertierenden Adresstyp. 0x0800 ist die IP-Adresse.

4. Die Hardware-Adresslänge beträgt 6 Byte für Ethernet-Adressen;

5. Die Länge der Protokolladresse beträgt 4 Byte für die IP-Adresse;

6. Ein OP-Feld von 1 zeigt eine ARP-Anfrage an und ein OP-Feld von 2 zeigt eine ARP-Antwort an.

7. Hosts im LAN können über das ARP-Protokoll die MAC-Adressen aller Hosts im aktuellen LAN erhalten.

3. ARP-Anfrage und -Antwort 

1. Alle F bedeuten, dass das Feld nicht gesetzt ist. Beispielsweise ist die Ziel-Ethernet-Adresse für ARP-Anfragen nicht bekannt. Wenn die ARP-Anfrage gesendet wird (das Ethernet-Ziel ist alles F), können andere Hosts im LAN den MAC-Frame empfangen und ihn bis zum ARP-Protokoll übermitteln .

2. Wenn diese Hosts MAC-Frames vom Typ ARP empfangen, verwenden sie das OP-Feld, um zu unterscheiden, ob es sich bei der ARP-Nachricht um eine Antwort oder eine Anfrage handelt.

3. Wenn der angeforderte Host eine ARP-Antwort sendet, können andere Hosts auf der Datenverbindungsschicht anhand des Ethernet-Zieladressfelds unterscheiden, ob der MAC-Frame für mich bestimmt ist.

4. ARP-Spoofing

Die unterste Schicht kann die Nachricht durch ARP-Spoofing stehlen. Nachdem die Nachricht über das HTTPS-Protokoll verschlüsselt wurde, kann sie ohne den geheimen Schlüssel nicht entschlüsselt werden, selbst wenn der Mittelsmann die Nachricht erhält.

Das Stehlen von Nachrichten ist nur ein Aspekt. ARP-Spoofing kann auch verwendet werden, um kontinuierlich ARP-Antworten an einen bestimmten Host (oder an alle Hosts im LAN) zu senden. Der Inhalt der Antwort ist die IP des Routers + eine gekritzelte MAC-Adresse. Dann eine bestimmte Der Host empfängt diese Antwort. Er geht fälschlicherweise davon aus, dass die MAC-Adresse des Routers die MAC-Adresse ist, die Sie eingegeben haben. Solange Ihre ARP-Antworten andauern, kann dieser Host nicht auf das Internet zugreifen.

4. RARP-Protokoll

Es ist nur die MAC-Adresse eines bestimmten Hosts bekannt, seine IP-Adresse jedoch nicht. Senden Sie eine RARP-Anfrage an alle Hosts im LAN. Der Host mit der angegebenen MAC-Adresse übermittelt den Anforderungsdatenrahmen an das RARP-Protokoll. Wenn der Host, der die MAC nicht angibt, den Datenrahmen erhält und feststellt, dass die MAC-Adresse dies nicht tut übereinstimmen, befindet sich der MAC-Frame in den Daten. Die Verbindungsschicht wird verworfen.

5. Einige wichtige Technologien oder Protokolle

1. DNS (Anwendungsschichtprotokoll, unter Verwendung des UDP-Protokolls)

Der gesamte Netzwerkprotokollstapel verwendet IP anstelle des Domänennamens. Die von uns besuchte Baidu-URL ist der Domänenname. Dies liegt daran, dass IP nicht speicher- und nutzungsfreundlich ist, während Domänennamen und URLs intuitiver sind. DNS ist ein System, das Domänennamen IPs zuordnet.

Zum Beispiel der Domainname von Baidu:

www.baidu.com

Verwenden Sie .connection zwischen Domänennamen

com: Domänenname der ersten Ebene. Zeigt an, dass es sich um einen Unternehmensdomänennamen handelt. Auf derselben Ebene befinden sich außerdem „net“ (Netzwerkanbieter), „org“ (gemeinnützige Organisation) usw.

Baidu: Domainname der zweiten Ebene, Firmenname.

www: ist nur eine häufige Verwendung. In der Vergangenheit wurden Domänennamen häufig in einem Format ähnlich wie ftp.xxx.xxx/www.xxx.xxx benannt, um die vom Host unterstützten Protokolle anzugeben. Sie können es bei der Eingabe des Domainnamens im Browser weglassen.

Derzeit verbleibt die Hosts-Datei weiterhin auf dem Computer und der Inhalt der Hosts-Datei wird während des Domänennamenauflösungsprozesses weiterhin zuerst durchsucht.

Prozess der Domänennamenauflösung: Einzelheiten finden Sie unter „Illustriertes TCP/IP“.

2. ICMP (Internet Layer Protocol)

Ein neu aufgebautes Netzwerk muss oft zunächst einen einfachen Test durchführen, um zu überprüfen, ob das Netzwerk reibungslos funktioniert. Das IP-Protokoll bietet jedoch keine zuverlässige Übertragung. Wenn ein Paket verloren geht, kann das IP-Protokoll der Transportschicht nicht mitteilen, ob das Paket verloren gegangen ist oder nicht verloren und der Grund für den Paketverlust. Grund.

1. Bestätigen Sie, ob das IP-Paket die Zieladresse erfolgreich erreicht.

2. Benachrichtigen Sie den Grund, warum das IP-Paket während des Sendevorgangs verworfen wurde.

3. ICMP basiert ebenfalls auf dem IP-Protokoll, ist jedoch keine Funktion der Transportschicht und wird daher immer noch einem Protokoll der Netzwerkschicht zugeschrieben.

4. ICMP kann nur mit IPv4 verwendet werden. Wenn es sich um IPv6 handelt, muss ICMPv6 verwendet werden.

Die unterste Ebene des Ping-Befehls wird über ICMP implementiert: 

1. Was hier gepingt wird, ist der Domänenname, nicht die URL! Ein Domänenname kann über DNS in eine IP-Adresse aufgelöst werden;

2. Der Ping-Befehl kann nicht nur die Konnektivität des Netzwerks überprüfen, sondern auch die Antwortzeit und TTL (Time To Live, Lebenszyklus im IP-Paket) zählen.

3. Der Ping-Befehl sendet zunächst eine ICMP-Echo-Anfrage an den Peer.

4. Nachdem der Peer es empfangen hat, sendet er eine ICMP-Echo-Antwort zurück.

Der Ping-Befehl achtet nicht auf den Port, da der Ping-Befehl auf ICMP basiert und sich auf der Netzwerkschicht befindet und die Portnummer der Inhalt der Transportschicht ist. Bei ICMP werden Informationen wie Portnummern überhaupt nicht berücksichtigt.

Der Traceroute-Befehl ist ebenfalls auf Basis des ICMP-Protokolls implementiert und kann den Host des ausführbaren Programms ausdrucken und angeben, wie viele Router es passiert hat, bevor es den Zielhost erreicht:

3. Proxyserver

Forward-Proxy: Der Client möchte den Zielserver anfordern, und der Proxyserver leitet die Anforderung des Clients an den Zielserver weiter, um Ressourcen anzufordern, und sendet sie an den Client, der als Forward-Proxy bezeichnet wird. (Kundenanfragen sammeln und Anfragen verwalten)

Reverse-Proxy (als Eingangsmaschine des Computerraums): Der Client möchte eine bestimmte Ressource vom Server anfordern, und der Proxyserver gibt das Ergebnis vom Intranet-Servercluster an den Client zurück. Der Client weiß nicht, wer das Ziel ist Server der Anfrage ist.

Lastausgleichsstrategie: Der Client sendet möglicherweise eine große Datenmenge, und der Reverse-Proxy-Server muss die Daten angemessen auf den Servercluster verteilen.

Als Reverse-Proxy-Server ist eine hohe Konfiguration erforderlich. Der Softwaredienst kann Nginx sein (Webserver, der keine Geschäftsverarbeitung durchführt, sondern nur Weiterleitungsverarbeitung). Wenn der Servercluster im Reverse-Proxy-Server die Anforderung verarbeitet hat, können Sie ihn verwenden Der Proxyserver sendet die Ergebnisse zurück an den Client oder direkt an den Client.

Der Unterschied zwischen NAT und Proxyserver:

1. Auf Anwendungsebene gehört NAT-Ausrüstung zu den grundlegenden Netzwerkgeräten und löst das Problem unzureichender IP. Proxyserver sind näher an bestimmten Anwendungen, z. B. der Umgehung der Firewall durch Proxyserver. Darüber hinaus verwenden Beschleuniger wie Xunyou auch Proxyserver.

2. Aus Sicht der zugrunde liegenden Implementierung arbeitet NAT auf der Netzwerkebene und ersetzt direkt IP-Adressen. Proxyserver arbeiten häufig auf der Anwendungsebene;

3. In Bezug auf den Einsatzbereich wird NAT im Allgemeinen am Ausgang des LANs eingesetzt. Der Proxyserver kann im LAN, im WAN oder netzwerkübergreifend erfolgen.

4. Aus Sicht des Bereitstellungsorts ist NAT im Allgemeinen in Hardwaregeräte wie Firewalls und Router integriert, während der Proxyserver ein Softwareprogramm ist, das auf dem Server bereitgestellt werden muss.

Supongo que te gusta

Origin blog.csdn.net/gfdxx/article/details/132698099
Recomendado
Clasificación