Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Überblick über die Transportschicht: die Beziehung zwischen Ports und Prozessen

Überblick über die Transportschicht: die Beziehung zwischen Ports und Prozessen

齐天大圣
齐天大圣Original
2020-12-18 20:00:333209Durchsuche

Interprozesskommunikation

Die Transportschicht wird auch Transportschicht genannt und ist eine spezielle Schicht. Einerseits gehört es zur höchsten Ebene des Kommunikationsteils, andererseits ist es die unterste Ebene der Benutzerfunktionen. Die Transportschicht wird für die Kommunikation zwischen Prozessen auf verschiedenen Hosts verwendet. Bei Routern, die Pakete weiterleiten, hat sie nur die Funktionen der unteren drei Schichten und verwendet nicht die Transportschicht und höher.

Prozess, also ein laufendes Programm. Wenn unter Linux ein Programm ausgeführt wird, weist das Betriebssystem dem Prozess eine Prozessnummer zu. Mit dem Befehl ps aux können Sie alle Prozesse anzeigen.

# ps aux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  51744  2808 ?        Ss   Jul31  16:06 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
……

Port

Die Transportschicht von TCP/IP verwendet eine 16-Bit-Portnummer, um einen Port zu markieren, sodass ein Host 65535 Ports haben kann. Diejenigen, die Web-Öffnungen durchgeführt haben, müssen einige häufig verwendete Portnummern kennen, z. B. 80 des Webservers, 3306 des MySQL-Dienstes und andere Ports. Die Prozesse zwischen den beiden Hosts kommunizieren über ihre jeweiligen Portnummern, daher muss der Prozess auch die Funktion haben, den Port abzuhören. Unter Linux lautet der Befehl zum Anzeigen des überwachten Ports netstat -tlunp

# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2449/nginx: worker  
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      1010/pure-ftpd (SER 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1819/sshd           
……

Ports verfügen auch über die Funktionen Multiplexing und Demultiplexing. Multiplexing bedeutet, dass mehrere Anwendungsprozesse des Hosts beim Demultiplexen dieselbe Portnummer für die Kommunikation verwenden können Die von der IP-Schicht erhaltenen Datagramme können über Portnummern an verschiedene Anwendungsprozesse übermittelt werden.

TCP und UDP

Die Transportschicht verfügt nur über zwei Protokolle: Transmission Control Protocol TCP und User Datagram Protocol UDP. Diese beiden Protokolle haben ihre eigenen Eigenschaften und einige Anwendungsszenarien.

TCP ist ein verbindungsorientiertes Protokoll. Vor der Datenübertragung muss eine Verbindung hergestellt werden. TCP ist ein relativ komplexes Protokoll, bei dem viele Faktoren zu berücksichtigen sind. Es kann eine zuverlässige End-to-End-Übertragung ermöglichen, unterstützt jedoch keine Eins-zu-Viele- und Viele-zu-Viele-Kommunikation. Zu den häufig verwendeten TCP-Protokollen gehören das HTTP-Protokoll, das FTP-Protokoll, das Telnet-Protokoll usw.

UDP ist für Pakete gedacht. Es ist relativ einfach und nutzt eher die bestmögliche als die zuverlässige Übertragung. Es kann eine Eins-zu-Eins-, Eins-zu-Viele- und Viele-zu-Viele-Kommunikation durchführen. Zu den gängigen Protokollen, die das UDP-Protokoll verwenden, gehören DHCP-, DNS- und RIP-Protokolle.

Um ihre Eigenschaften zu veranschaulichen, gibt es ein Beispiel: TCP ist wie ein Telefonanruf, vor dem Anruf muss eine Verbindung hergestellt werden. UDP ist wie das Senden einer Textnachricht. Sie müssen den Status des Hosts der anderen Partei nicht kennen, bevor Sie die Textnachricht senden.

Das obige ist der detaillierte Inhalt vonÜberblick über die Transportschicht: die Beziehung zwischen Ports und Prozessen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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