Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Grundkenntnisse zwei: Netzwerkkommunikationsdatenübertragung

Python-Grundkenntnisse zwei: Netzwerkkommunikationsdatenübertragung

coldplay.xixi
coldplay.xixinach vorne
2021-02-20 09:43:392607Durchsuche

Python Netzwerkkommunikationsdatenübertragung implementieren (Grundkenntnisse (2))

Python-Grundkenntnisse zwei: Netzwerkkommunikationsdatenübertragung

Kostenlose Lernempfehlung: Python-Video-Tutorial

  • Vorwort
  • Grundlagen Wissenslernen
    • 1. OSI-Modell
    • 2. TCP, IP-Protokollfamilie:
    • 3. Codierungsmethode von Strings in Python
  • Fazit

Vorwort

Der zweite Teil ist da! Lassen Sie uns heute einige Grundkenntnisse erlernen. Eine solide Grundlage ist der einzige Weg, tiefgründig zu lernen! ! !

Grundwissen lernen

1. OSI-Modell

Das
  • OSI-Modell unterteilt die Netzwerkkommunikationsarbeit in 7 Schichten, von unten nach oben: physische Schicht, Datenverbindungsschicht, Netzwerkschicht, Transportschicht, Sitzungsschicht, Präsentationsschicht und Anwendungsschicht.
    OSI ist nur ein Modell, das konzeptionell und theoretisch existiert. Sein Nachteil besteht darin, dass es zu viele Schichten hat, was die Komplexität der Netzwerkarbeit erhöht, sodass es nicht in großem Maßstab angewendet wurde. Später hat man OSI vereinfacht und einige Schichten zusammengeführt. Von unten nach oben sind es die Schnittstellenschicht, die Netzwerkschicht und die Anwendungsschicht Modell .
  • Was genau macht dieses Netzwerkmodell? Kurz gesagt handelt es sich um eine Datenkapselung.
  • Prinzip der Datenkapselung: Die von uns normalerweise verwendeten Programme (Software) greifen im Allgemeinen über die Anwendungsschicht auf das Netzwerk zu. Die vom Programm generierten Daten werden Schicht für Schicht bis zur endgültigen Netzwerkschnittstellenschicht übertragen. Es wird über das Netzwerkkabel an das Internet gesendet. Jedes Mal, wenn die Daten eine Schicht nach unten gehen, werden sie durch das Protokoll dieser Schicht gepackt. Wenn sie an das Internet gesendet werden, verfügen sie über vier weitere Verpackungsschichten als die ursprünglichen Daten. Der gesamte Datenkapselungsprozess ähnelt einer russischen Matroschka-Puppe. Wenn ein anderer Computer das Datenpaket empfängt, wird es Schicht für Schicht von der Netzwerkschnittstellenschicht übertragen, bis die endgültige Anwendungsschicht die ursprünglichsten Daten erhält verwenden wird. Der Prozess des Packens der Daten besteht tatsächlich darin, dem Kopf der Daten ein Flag (einen Datenblock) hinzuzufügen, der angibt, dass die Daten diese Ebene durchlaufen haben und ich sie verarbeitet habe. Der Prozess des Entpackens von Daten ist genau das Gegenteil, nämlich das Entfernen der Markierung in der Kopfzeile der Daten und die allmähliche Offenlegung ihrer ursprünglichen Form. (Vergleich zwischen dem siebenschichtigen OSI-Netzwerkmodell und dem vierschichtigen TCP/IP-Netzwerkmodell)
    Python-Grundkenntnisse zwei: Netzwerkkommunikationsdatenübertragung
  • Wenn zwei Computer kommunizieren, müssen sie
  • die folgenden Prinzipien einhalten: (1) Muss sein auf derselben Ebene Bei der Kommunikation können beispielsweise die Anwendungsschicht von Computer A und die Transportschicht von Computer B nicht kommunizieren, da sie sich nicht auf derselben Ebene befinden, und beim Entpacken der Daten treten Probleme auf.
    (2) Die Funktion jeder Schicht muss gleich sein, das heißt, sie muss genau das gleiche Netzwerkmodell haben. Wenn die Netzwerkmodelle alle unterschiedlich sind, wird es ein Chaos geben und niemand wird irgendjemanden kennen.
    Daten können nur Schicht für Schicht übertragen werden, kein Layer-Hopping. (3) Jede Schicht kann die von der unteren Schicht bereitgestellten Dienste nutzen und der oberen Schicht Dienste bereitstellen
    .

2. TCP- und IP-Protokollfamilien: Die häufig verwendete Socket-Programmierung basiert auf den Protokollen TCP und UDP. Ihre hierarchische Beziehung ist in der folgenden Abbildung dargestellt:


Python-Grundkenntnisse zwei: Netzwerkkommunikationsdatenübertragung

Drittens, die Codierungsmethode für Zeichenfolgen in PythonIn Python muss die Codierungsmethode für Zeichenfolgen in die UTF-8-Form konvertiert werden!

  • Für die gleiche Zahl können Sie verschiedene Darstellungsarten wählen. Welche Lösung Sie auch immer wählen, ist eine Kodierungsmethode für Unicode (utf-8 ist eine spezifische Implementierung der Unicode-Kodierungsmethode).
  • Python verwendet intern Unicode zur Darstellung von Zeichenfolgen. Wenn Sie also chinesische Zeichen drucken möchten (Unicode und die UTF-8-Kodierung englischer Buchstaben und Zahlen sind identisch), müssen Sie sicherstellen, dass es sich um die Unicode-Kodierungsmethode handelt. Wenn es sich um die Codierungsmethode „utf-8“ handelt (die Ausgabe besteht aus einer Reihe von Binärcodes, die UTF-8-Codierung eines chinesischen Zeichens beträgt drei Bytes, also drei Segmente der Binärdarstellung, wie unten gezeigt), können Sie diese verwenden .decode („utf-8“) zum Dekodieren. Beim Speichern auf der Festplatte oder beim Senden ins Internet (über Sockets und andere kommunikationsbezogene Angelegenheiten) muss es in UTF-8 konvertiert werden.
    Python-Grundkenntnisse zwei: Netzwerkkommunikationsdatenübertragung
    (Das Ausgabeergebnis der UTF-8-Codierung in Python)
  • Warum verwenden Sie UTF-8 nicht weiterhin intern? Darin liegt ein Manko von UTF-8: Die Berechnung der Stringlänge und das Finden von Teilstrings ist sehr ineffizient. Wenn Sie bei Verwendung von UCS2 wissen möchten, wie lang die Zeichenfolge ist, schauen Sie sich einfach an, wie viele Bytes sie einnimmt, und dividieren Sie sie dann durch 2. Für UTF-8 müssen Sie sie Zeichen für Zeichen zählen. Da wir bei der Suche nach Teilzeichenfolgen nicht wissen, wie viele Bytes das nächste Zeichen belegt, funktionieren diese effizienten Suchalgorithmen nicht.

Fazit

Das nächste Mal werde ich mir ein paar einfache Beispiele einfallen lassen, um allen das Verständnis und die Übung zu erleichtern. Abschließend hoffe ich, dass jeder nach der Lektüre einen kleinen Daumen hoch gibt und etwas Ermutigung gibt. Es ist mehr als zwei Stunden her, seit ich diesen Artikel geschrieben habe. Es handelt sich nicht um einen Akt des Profits, sondern nur um Wissen zu teilen und zu lernen zusammen und gemeinsam wachsen! ! ! (Insgeheim mag ich die Artikel anderer Leute nicht, nachdem ich sie gelesen habe. Das ist keine gute Angewohnheit. Ich werde es sofort ändern, woo woo)

Verwandte kostenlose Lernempfehlungen: Python-Tutorial (Video)

Das obige ist der detaillierte Inhalt vonPython-Grundkenntnisse zwei: Netzwerkkommunikationsdatenübertragung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen