Do czego służy port 0?

Spisu treści:

Do czego służy port 0?
Do czego służy port 0?
Anonim

Port 0 ma szczególne znaczenie w programowaniu sieciowym, szczególnie w systemie operacyjnym Unix, 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 informuje system, aby znalazł odpowiedni numer portu.

W przeciwieństwie do większości numerów portów, port 0 jest portem zarezerwowanym w sieci TCP/IP, co oznacza, że nie powinien być używany w wiadomościach TCP lub UDP. 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, systemowe lub dobrze znane. Internet Assigned Numbers Authority (IANA) prowadzi oficjalną listę zamierzonego użycia tych numerów portów w Internecie, a port systemowy 0 nie może być używany.

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

Image
Image

Konfigurowanie 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 serwery WWW (port 80), ale wiele aplikacji sieciowych TCP i UDP nie ma własnego portu systemowego i musi go uzyskać z systemu operacyjnego urządzenia przy każdym uruchomieniu.

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ć stały (zakodowany na stałe) numer do bind(), jeśli woli zażądać określonego numeru, ale takie żądanie może się nie powieść, ponieważ inna aplikacja uruchomiona w systemie może z niego korzystać.

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

Aplikacji nie przyznano 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.

Unix, Windows i inne systemy operacyjne różnią się pod względem 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ń.

Wielu dostawców usług internetowych (ISP) blokuje ruch na porcie 0, zarówno wiadomości przychodzące, jak i wychodzące, aby chronić się przed tymi atakami.

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ń, wpisz netstat -a, a następnie naciśnij Enter. 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.

Zalecana: