A 0-s port különleges jelentőséggel bír a hálózati programozásban, különösen a Unix OS-ben, amikor a socket programozásról van szó, ahol a portot a rendszer által lefogl alt, dinamikus portok kérésére használják. A 0-s port helyettesítő karakteres port, amely arra utasítja a rendszert, hogy találjon megfelelő portszámot.
A legtöbb portszámmal ellentétben a 0-s port egy lefogl alt port a TCP/IP-hálózatokban, ami azt jelenti, hogy nem szabad TCP- vagy UDP-üzenetekben használni. A TCP és UDP hálózati portjai nullától 65535-ig terjednek. A nulla és 1023 közötti tartományban lévő portszámok nem efemer portok, rendszerportok vagy jól ismert portok. Az Internet Assigned Numbers Authority (IANA) hivatalos listát vezet ezeknek a portszámoknak az interneten való felhasználásáról, és a rendszer 0-s portja nem használható.
Hogyan működik a TCP/UDP 0 port a hálózati programozásban
Új hálózati socket kapcsolat konfigurálásához egy portszámot kell kijelölni mind a forrás, mind a cél oldalon. A kezdeményező (forrás) által küldött TCP- vagy UDP-üzenetek mindkét portszámot tartalmazzák, így az üzenet címzettje (célállomása) válaszüzeneteket küldhet a megfelelő protokollvégpontnak.
Az IANA előre kiosztott rendszerportokat az alapvető internetes alkalmazásokhoz, például a webszerverekhez (80-as port), de sok TCP és UDP hálózati alkalmazásnak nincs saját rendszerportja, és minden futáskor be kell szereznie egyet az eszköz operációs rendszerétől..
A forrásport számának hozzárendeléséhez az alkalmazások meghívják a TCP/IP hálózati funkciókat, például a bind()-t, hogy kérjenek egyet. Az alkalmazás megadhat egy rögzített (kemény kódolt) számot a bind()-hez, ha egy adott számot szeretne kérni, de egy ilyen kérés meghiúsulhat, mert előfordulhat, hogy egy másik, a rendszeren futó alkalmazás használja azt.
Alternatív megoldásként megadhatja a 0-s to bind() portot csatlakozási paraméterként. Ez arra készteti az operációs rendszert, hogy automatikusan megkeressen és visszaadjon egy megfelelő elérhető portot a TCP/IP dinamikus portszámtartományában.
Az alkalmazás nem kap 0-s portot, hanem valamilyen más dinamikus portot. Ennek a programozási konvenciónak az előnye a hatékonyság. Ahelyett, hogy minden egyes alkalmazás kódot implementálna és futtatna több portot, amíg meg nem szerez egy érvényes portot, az alkalmazások az operációs rendszerre támaszkodnak.
A Unix, a Windows és más operációs rendszerek eltérő módon kezelik a 0-s portot, de ugyanaz az általános konvenció érvényes.
Port 0 és hálózati biztonság
Az interneten keresztül a 0-s porton figyelő gazdagépeknek küldött hálózati forgalmat hálózati támadók vagy véletlenül nem megfelelően programozott alkalmazások generálhatják. A gazdagépek a 0-s port forgalmára válaszul generált válaszüzenetek segítenek a támadóknak megismerni ezen eszközök viselkedését és lehetséges hálózati sebezhetőségeit.
Sok internetszolgáltató (ISP) blokkolja a forgalmat a 0-s porton, a bejövő és a kimenő üzeneteket is, hogy megvédje magát ezektől a visszaélésektől.
GYIK
Mik azok a portszámok?
A TCP/IP hálózati kapcsolatokhoz használt portszámok címinformációként működnek, azonosítva az üzenet küldőit és fogadóit. A portszámok lehetővé teszik, hogy ugyanazon a hálózaton különböző alkalmazások egyidejűleg megosszák az erőforrásokat.
Hogyan találhatom meg a portszámokat?
Egy adott IP-cím portszámának megkereséséhez lépjen a parancssorba, írja be a netstat -a, majd nyomja meg az Enter billentyűt. Megjelenik az aktív TCP-kapcsolatok listája, valamint az IP-címek és a portszámok kettősponttal elválasztva.
Csatlakozhatok a 0-s porthoz?
Nem. Hivatalosan a 0-s port nem létezik, és nem lehet hozzá csatlakozni, mivel az érvénytelen portszám. Azonban ugyanúgy küldhet internetcsomagot a 0-s portra és onnan, mint egy másik portszámmal.