K čemu slouží port 0?

Obsah:

K čemu slouží port 0?
K čemu slouží port 0?
Anonim

Port 0 má zvláštní význam v síťovém programování, zejména v operačním systému Unix, pokud jde o programování soketů, kde se port používá k vyžádání systémově přidělených dynamických portů. Port 0 je zástupný port, který říká systému, aby našel vhodné číslo portu.

Na rozdíl od většiny čísel portů je port 0 rezervovaným portem v sítích TCP/IP, což znamená, že by neměl být používán ve zprávách TCP nebo UDP. Síťové porty v TCP a UDP se pohybují od čísla nula do 65535. Čísla portů v rozsahu od nuly do 1023 jsou definována jako neefemérní porty, systémové porty nebo známé porty. Internet Assigned Numbers Authority (IANA) vede oficiální seznam zamýšleného použití těchto čísel portů na internetu a systémový port 0 se nemá používat.

Jak funguje TCP/UDP port 0 v síťovém programování

Image
Image

Konfigurace nového připojení k síťové zásuvce vyžaduje přidělení jednoho čísla portu na zdrojové i cílové straně. Zprávy TCP nebo UDP odeslané původcem (zdrojem) obsahují obě čísla portů, takže příjemce zprávy (cíl) může odesílat zprávy s odpovědí na správný koncový bod protokolu.

IANA předem přidělila určené systémové porty pro základní internetové aplikace, jako jsou webové servery (port 80), ale mnoho síťových aplikací TCP a UDP nemá svůj vlastní systémový port a musí jej získat z operačního systému svého zařízení při každém spuštění.

Aplikace za účelem přidělení čísla zdrojového portu volají síťové funkce TCP/IP, jako je bind(), aby si jeden vyžádaly. Aplikace může pro bind() poskytnout pevné (pevně zakódované) číslo, pokud upřednostňuje požadavek na konkrétní číslo, ale takový požadavek může selhat, protože jej může aktuálně používat jiná aplikace spuštěná v systému.

Alternativně může poskytnout port 0 pro bind() jako parametr připojení. To spustí operační systém, aby automaticky vyhledal a vrátil vhodný dostupný port v rozsahu dynamických čísel portů TCP/IP.

Aplikaci není přidělen port 0, ale jiný dynamický port. Výhodou této programovací konvence je efektivita. Místo toho, aby každá aplikace implementovala a spouštěla kód pro zkoušení více portů, dokud nezíská platný jeden, spoléhají aplikace na operační systém.

Unix, Windows a další operační systémy se liší v zacházení s portem 0, ale platí stejná obecná konvence.

Port 0 a zabezpečení sítě

Síťový provoz odeslaný přes internet hostitelům naslouchajícím na portu 0 může být generován síťovými útočníky nebo náhodně nesprávně naprogramovanými aplikacemi. Zprávy s odpovědí, které hostitelé generují v reakci na provoz na portu 0, pomáhají útočníkům zjistit chování a potenciální zranitelnosti sítě těchto zařízení.

Mnoho poskytovatelů internetových služeb (ISP) blokuje provoz na portu 0, příchozí i odchozí zprávy, aby se ochránili před těmito zneužitím.

FAQ

    Co jsou čísla portů?

    Čísla portů používaná pro síťová připojení TCP/IP fungují jako informace o adrese, identifikující odesílatele a příjemce zprávy. Čísla portů umožňují různým aplikacím ve stejné síti sdílet zdroje současně.

    Jak najdu čísla portů?

    Chcete-li najít číslo portu konkrétní IP adresy, přejděte do příkazového řádku, zadejte netstat -a a stiskněte Enter. Zobrazí se seznam aktivních připojení TCP spolu s IP adresami a čísly portů oddělených dvojtečkou.

    Mohu se připojit k portu 0?

    Ne. Port 0 oficiálně neexistuje a nemůžete se k němu připojit, protože se jedná o neplatné číslo portu. Internetový paket však můžete odeslat na az portu 0 stejně jako s jiným číslem portu.

Doporučuje: