it-swarm.com.de

Können TCP und UDP-Sockets denselben Port verwenden?

Gibt es ein Problem mit der Verwendung von UDP und TCP auf demselben Server?

Zweitens kann ich die gleiche Portnummer verwenden?

87
user800799

Ja, Sie können dieselbe Portnummer für TCP und UDP verwenden. Viele Protokolle tun dies bereits, z. B. arbeitet DNS unter udp/53 nd tcp/53.

Technisch gesehen sind die Port-Pools für jedes Protokoll völlig unabhängig, aber für Protokolle höherer Ebenen, die entweder TCP oder UDP) verwenden können, wird standardmäßig derselbe Port verwendet Nummer.

Beachten Sie beim Schreiben Ihres Servers, dass die Reihenfolge der Ereignisse für einen TCP Socket viel schwieriger ist als für einen UDP-Socket, da neben den normalen socket und bind Aufrufen müssen Sie auch listen und accept.

Außerdem gibt dieser accept - Aufruf einen neuen Socket zurück und es ist dass Socket, den Sie dann auch nach Empfangsereignissen abfragen müssen. Ihr Server sollte bereit sein, weiterhin accept Verbindungen auf dem ursprünglichen Socket herzustellen, während gleichzeitig mehrere Clients bedient werden, von denen jeder Empfangsereignisse auf ihren eigenen Sockets auslöst.

94
Alnitak

Erstens ist es kein Problem, sowohl tcp als auch udp auf dem Server zu verwenden.

Zweitens können UDP - und TCP - Anforderungen auf demselben Port vorliegen, da jede Anforderung durch ein Fünffach identifiziert wird, das aus Quell - IP, Ziel - IP, Quell - Port, Ziel - Port und PROTOKOLL (als Protokoll) besteht sei TCP oder UDP).

6
aMooly