2012-11-25 8 views
15

Ich weiß, dass Sie nicht zwei verschiedene Prozesse verwenden können, die den gleichen Port verwenden, aber was passiert, wenn man tcp und die andere UDP verwendet? Können Sie zwei verschiedene Prozesse haben, von denen jeder einen Socket an den gleichen Port bindet, aber ein anderes Protokoll?TCP und UDP gleiche Ports, anderer Prozess

+1

Sie können nicht zwei verschiedene Sockets verwenden, die den gleichen Endpunkt verwenden, der auch die Adresse enthält, sodass zwei verschiedene Prozesse dasselbe Protokoll und denselben Port verwenden können, solange (z. B.) '127.0.0.1' verwendet wird ein (sagen wir) '192.168.0.1'. – Neil

Antwort

9

TCP-Ports und UDP-Ports stehen überhaupt nicht miteinander in Beziehung.

+9

Um die Frage direkt zu beantworten, ja, können Sie zwei verschiedene Prozesse haben, die an den gleichen Socket und an denselben Port binden, aber einen mit UDP und einen mit TCP. Die UDP- und TCP-Port-Namespaces sind völlig unabhängig, obwohl sie im gleichen numerischen Bereich liegen. –

21

Das 5-Tupel (Protokoll, Quell-IP, Quellport, Ziel-IP, Zielport) muss eindeutig sein. Das bedeutet, dass Sie nicht nur TCP und UDP verwenden können, die dieselbe Portnummer verwenden, sondern auch ausgehende Verbindungen mit demselben Protokoll und derselben lokalen Portnummer, jedoch mit unterschiedlichen Zielen.

Beim Abhören müssen Sockets normalerweise in ihrem Protokoll eindeutig sein, d. H. Sie können/sollten nicht einen anderen TCP-Socket mit derselben Portnummer öffnen.

0

Ja. Zwei Sockets können denselben Port aber unterschiedliches Protokoll binden.

Es ist nicht der gleiche Port, hat zufällig die gleiche Nummer.