2021年5月6日 星期四

port 0的用途是什麼?

端口0在網絡編程中具有特殊的意義,特別是在Unix OS中,在套接字編程中,該端口用於請求系統分配的動態端口。端口0是通配符端口,它告訴系統找到合適的端口號。


與大多數端口號不同,端口0是TCP / IP網絡中的保留端口,這意味著它不應在TCP或UDP消息中使用。 TCP和UDP中的網絡端口的範圍是從零到65535。介於零和1023之間的端口號定義為非臨時端口,系統端口或眾所周知的端口。 Internet號碼分配機構(IANA)維護了這些端口號在Internet上的預期用途的正式列表,並且不使用系統端口0。


網絡編程中TCP / UDP端口0的工作方式

配置新的網絡套接字連接需要在源側和目標側都分配一個端口號。始發者(源)發送的TCP或UDP消息包含兩個端口號,以便消息接收者(目的地)可以將響應消息發佈到正確的協議端點。


IANA已為基本Internet應用程序(例如Web服務器)(端口80)預先分配了指定的系統端口,但是許多TCP和UDP網絡應用程序沒有自己的系統端口,並且每次運行時都必須從其設備的操作系統中獲得一個。


為了分配其源端口號,應用程序調用諸如bind()之類的TCP / IP網絡函數來請求一個。如果他們希望請求一個特定的數字,則應用程序可以提供一個固定的(硬編碼)數字給bind(),但是這樣的請求可能會失敗,因為系統上正在運行的另一個應用程序當前正在使用它。


或者,它可以將端口0提供給bind()作為其連接參數。這將觸發操作系統自動搜索並返回TCP / IP動態端口號範圍內的合適可用端口。


該應用程序沒有被授予端口0,而是被授予了其他一些動態端口。此編程約定的優點是效率。應用程序依賴操作系統,而不是每個應用程序都實施並運行代碼以嘗試多個端口,直到它們獲得有效的端口為止。


Unix,Windows和其他操作系統在端口0的處理方面有所不同,但適用相同的常規約定。


端口0和網絡安全

跨Internet發送到偵聽端口0的主機的網絡流量可能是由網絡攻擊者生成的,也可能是由於編程錯誤的應用程序意外生成的。主機響應端口0流量而生成的響應消息可幫助攻擊者了解這些設備的行為和潛在的網絡漏洞。


許多Internet服務提供商(ISP)阻止端口0上的流量(傳入和傳出消息),以防止這些攻擊。


REF

https://www.lifewire.com/port-0-in-tcp-and-udp-818145

TCP/UDP埠列表

[網路管理]常用 port 說明

沒有留言:

張貼留言