Heim > Betrieb und Instandhaltung > Betrieb und Wartung von Linux > So realisieren Sie eine Eins-zu-eins-Kommunikation im LAN

So realisieren Sie eine Eins-zu-eins-Kommunikation im LAN

齐天大圣
Freigeben: 2020-12-09 14:03:37
Original
3057 Leute haben es durchsucht

Wir wissen, dass LAN Broadcast-Kanäle zur Übertragung verwendet und Broadcast-Kanäle eine Eins-zu-Viele-Kommunikation erreichen können. In Wirklichkeit ist jedoch nicht immer eine Eins-zu-Viele-Kommunikation erforderlich. Wie führt man also eine Eins-zu-Eins-Kommunikation zwischen zwei Hosts durch? Dieses Problem ist nicht so einfach. Wir müssen viele Aspekte berücksichtigen:

  • Wie überträgt der Host die generierten Informationen an den Kanal?

  • Wie kann dann die Kollision zwischen Informationen kontrolliert werden, ohne dass sie auftritt?

  • So senden Sie eine Nachricht an einen bestimmten Host

Die Rolle des Netzwerkadapters (Netzwerkkarte)

Der Netzwerkadapter ist auch das, was wir normalerweise als Netzwerkkarte bezeichnen. Wenn der Host mit dem externen LAN kommuniziert, erfolgt die Anpassung über die Netzwerkkarte. Da der Host und die Netzwerkkarte eine parallele Übertragung verwenden, während die Netzwerkkarte und das LAN-Heim eine serielle Übertragung verwenden, muss sich die Netzwerkkarte zwischen beiden anpassen.

Schreiben Sie im ROM (Nur-Lese-Speicher) der Netzwerkkarte die Hardware-Adresse des Computers ein, bei der es sich um die MAC-Adresse handelt. Diese MAC-Adresse ist sehr wichtig, sie ist der Schlüssel zur Eins-zu-eins-Kommunikation. Wir werden später darüber sprechen.

CSMA/CD-Protokoll

Da das LAN einen gemeinsam genutzten Kanal verwendet, müssen wir die ersten und letzten Probleme des Hosts kontrollieren, da es sich um einen gemeinsam genutzten Kanal handelt. Denn wenn mehrere Hosts gleichzeitig Informationen senden, kommt es zu Verwirrung. Es gibt ein bekanntes LAN-Protokoll CSMA/CD (Carrier Sense Multiple Access/Collision Detection), das dieses Problem löst.

Das Protokoll ist sehr leicht zu verstehen. Lassen Sie uns ein Beispiel zur Veranschaulichung verwenden: An einem Veranstaltungsort nehmen einige Personen an einer Besprechung teil. Bei der Sitzung gibt es keinen Moderator und jeder kann sich frei äußern. Sie können jedoch erst dann sprechen, wenn andere zu Ende gesprochen haben und es am Veranstaltungsort ruhig ist. Wenn mehrere Personen gleichzeitig sprechen, müssen alle, die gleichzeitig sprechen, zu Ende sprechen und dann eine beliebige Zeitspanne warten, bevor sie erneut sprechen, wenn es am Veranstaltungsort ruhig ist. Es ist leicht zu verstehen, warum es hier eine zufällige Zeit ist. Wenn es eine feste Zeit ist, werden Menschen, die gleichzeitig sprechen, nach einer Weile immer noch zur gleichen Zeit sprechen.

Erzielen Sie eine Eins-zu-Eins-Kommunikation über die MAC-Adresse.

Nachdem wir das obige Problem gelöst haben, schauen wir uns an, wie eine Eins-zu-Eins-Kommunikation zwischen Hosts durchgeführt wird. Wie oben erwähnt, gibt es eine MAC-Adresse auf der Netzwerkkarte. Die folgende ist eine MAC-Adresse: A0-A4-C2-4B-9F-56. Sie besteht aus 48 Bits (6 Bytes). Die MAC-Adresse ist weltweit eindeutig, sodass eine Eins-zu-Eins-Kommunikation zwischen Hosts über sie erfolgen kann.

Die Grundeinheit der Kommunikation im lokalen Netzwerk ist der Datenrahmen. Wenn Host A im LAN mit einem anderen Host B im selben LAN kommunizieren möchte, muss die Zieladresse (MAC-Adresse von B) in den Header des von A gesendeten Datenrahmens geschrieben werden, und dann wird der Datenrahmen an den gesendet Wenn die Netzwerkkarten anderer Hosts diesen Datenrahmen akzeptieren, prüfen alle Hosts, ob seine Zieladresse mit seiner eigenen MAC-Adresse übereinstimmt, und verwerfen ihn, wenn er inkonsistent ist. Auf diese Weise realisiert ein LAN mit Broadcast-Eigenschaften eine Eins-zu-eins-Kommunikation.

Das obige ist der detaillierte Inhalt vonSo realisieren Sie eine Eins-zu-eins-Kommunikation im LAN. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage