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 z symbolem wieloznacznym, który informuje system o konieczności znalezienia odpowiedniego numeru 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 protokołach TCP i UDP mają zakres od zera do 65535. Numery portów w zakresie od zera do 1023 definiuje się jako porty nieefemeryczne, porty systemowe lub porty dobrze znane. Internet Assigned Numbers Authority (IANA) utrzymuje oficjalne zestawienie zgodnie z przeznaczeniem tych numerów portów w Internecie, a port systemowy 0 nie może być używany.
jak przekonwertować plik audio na tekst
Jak port TCP/UDP 0 działa w programowaniu sieciowym
Jetta Productions / Getty Images
Konfigurowanie nowego połączenia przez gniazdo sieciowe 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 wysłać komunikaty odpowiedzi do prawidłowego punktu końcowego protokołu.
IANA wstępnie przydzieliła wyznaczone porty systemowe dla podstawowych aplikacji internetowych, takich jak serwery internetowe (port 80), ale wiele aplikacji sieciowych TCP i UDP nie ma własnego portu systemowego i musi uzyskać taki od swojego urządzenia system operacyjny za każdym razem, gdy biegną.
League of Legends jak zmienić swoje imię
Aby przydzielić numer portu źródłowego, aplikacje wywołują funkcje sieciowe protokołu TCP/IP, takie jak bind(), aby go zażądać. Aplikacja może dostarczyć stały (zakodowany na stałe) numer do funkcji bind(), jeśli woli zażądać określonego numeru, ale takie żądanie może się nie powieść, ponieważ inna aplikacja działająca w systemie może go aktualnie używać.
Alternatywnie może udostępnić port 0 dla funkcji bind() jako parametr połączenia. To powoduje, ż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 raczej inny port dynamiczny. Zaletą tej konwencji programowania jest wydajność. Zamiast wdrażać i uruchamiać kod każdej aplikacji w celu wypróbowania wielu portów, dopóki nie uzyska prawidłowego, aplikacje polegają na systemie operacyjnym.
Unix, Windows i inne systemy operacyjne różnią się obsługą portu 0, ale obowiązuje ta sama ogólna konwencja.
jak usunąć foldery w niezgodzie
Port 0 i bezpieczeństwo sieci
Ruch sieciowy wysyłany przez Internet do hostów nasłuchujących na porcie 0 może zostać wygenerowany 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 sieciowe 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.
Często zadawane pytania- Co to są numery portów?
Numery portów używane w połączeniach sieciowych TCP/IP pełnią rolę informacji adresowych, identyfikujących nadawców i odbiorców wiadomości. Numery portów umożliwiają różnym aplikacjom w tej samej sieci współdzielenie zasobów w tym samym czasie.
- Jak znaleźć numery portów?
Aby znaleźć numer portu określonego adresu IP, przejdź do wiersza poleceń , typ netstat -a , następnie naciśnij Wchodzić . 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żna jednak wysyłać pakiety internetowe do i z portu 0 w taki sam sposób, jak w przypadku innego numeru portu.