Do czego służy port 0?

click fraud protection

Port 0 ma szczególne znaczenie w programowaniu sieci, szczególnie w Uniksa OS, jeśli chodzi o programowanie gniazd gdzie port jest używany do żądania przydzielonych przez system, dynamicznych portów. Port 0 to port wieloznaczny, który mówi systemowi, aby znalazł odpowiedni numer portu.

w przeciwieństwie do większości numery portów, port 0 jest portem zarezerwowanym w TCP/IP sieci, co oznacza, że ​​nie powinien być używany w TCP lub UDP wiadomości. Porty sieciowe w TCP i UDP mają zakres od zera do 65535. Numery portów z zakresu od zera do 1023 są definiowane jako porty nieefemeryczne, porty systemowe lub znane porty. Internet Assigned Numbers Authority (IANA) utrzymuje oficjalna lista planowanego użycia tych numerów portów w Internecie, a port systemowy 0 nie ma być używany.

Jak działa port 0 TCP/UDP w programowaniu sieciowym

Informatyk korzysta z komputera wśród szaf serwerowych.
Jetta Productions / Getty Images

Skonfigurowanie nowego połączenia z gniazdem sieciowym wymaga przydzielenia jednego numeru portu zarówno po stronie źródłowej, jak i docelowej. Komunikaty TCP lub UDP wysyłane przez nadawcę (źródło) zawierają oba numery portów, dzięki czemu odbiorca komunikatu (miejsce docelowe) może wysyłać komunikaty odpowiedzi do właściwego punktu końcowego protokołu.

IANA wstępnie przydzieliła wyznaczone porty systemowe dla podstawowych aplikacji internetowych, takich jak web serwery (port 80), ale wiele aplikacji sieciowych TCP i UDP nie ma własnego portu systemowego i musi go uzyskać z urządzenia system operacyjny za każdym razem, gdy biegną.

Aby przydzielić numer portu źródłowego, aplikacje wywołują funkcje sieciowe TCP/IP, takie jak bind(), aby zażądać jednego. Aplikacja może dostarczyć ustaloną (zakodowaną na stałe) liczbę do bind(), jeśli wolą zażądać konkretnego numer, ale takie żądanie może się nie powieść, ponieważ inna aplikacja uruchomiona w systemie może obecnie być Użyj tego.

Alternatywnie może dostarczyć port 0 do bind() jako parametr połączenia. Powoduje to, że system operacyjny automatycznie wyszuka i zwróci odpowiedni dostępny port w dynamicznym zakresie numerów portów TCP/IP.

Aplikacja nie otrzymuje portu 0, ale innego portu dynamicznego. Zaletą tej konwencji programowania jest wydajność. Zamiast każdej aplikacji implementującej i uruchamiającej kod w celu wypróbowania wielu portów, dopóki nie uzyskają prawidłowego, aplikacje polegają na systemie operacyjnym.

Uniksa, Okna, a inne systemy operacyjne różnią się sposobem obsługi portu 0, ale obowiązuje ta sama ogólna konwencja.

Port 0 i bezpieczeństwo sieci

Ruch sieciowy wysyłany przez Internet do hostów nasłuchujących na porcie 0 może być generowany przez osoby atakujące sieć lub przypadkowo przez nieprawidłowo zaprogramowane aplikacje. Komunikaty odpowiedzi generowane przez hosty w odpowiedzi na ruch na porcie 0 pomagają atakującym poznać zachowanie i potencjalne luki w zabezpieczeniach sieci tych urządzeń.

Wiele dostawcy usług internetowych (ISP) blokują ruch na porcie 0, zarówno wiadomości przychodzące, jak i wychodzące, aby chronić się przed tymi exploitami.

FAQ

  • Jakie są numery portów?

    Numery portów używane do połączeń sieciowych TCP/IP działają jako informacje adresowe, identyfikujące nadawców i odbiorców wiadomości. Numery portów umożliwiają różnym aplikacjom w tej samej sieci współużytkowanie zasobów w tym samym czasie.

  • Jak znaleźć numery portów?

    Aby znaleźć numer portu określonego adresu IP, przejdź do wiersza poleceń, rodzaj netstat -a, następnie wciśnij Wejść. Zobaczysz listę aktywnych połączeń TCP wraz z adresami IP i numerami portów oddzielonymi dwukropkiem.

  • Czy mogę połączyć się z portem 0?

    Nie. Oficjalnie port 0 nie istnieje i nie można się z nim połączyć, ponieważ jest to nieprawidłowy numer portu. Możesz jednak wysłać pakiet internetowy do iz portu 0 tak samo, jak w przypadku innego numeru portu.