什么是端口?端口号分为几种类型?
如果 IP 是用來定位街區的,那么端口就是對應于該街區中每一戶的門牌號。在通訊過程中,數據通過各種通訊協議最終抵達設備(如計算機)后,這里的設備就相當于一個街區,而在設備計算機內部有很多程序在跑,數據進來之后,必須要給它一個對應的門牌號(即端口號),程序才方便進行后續操作。
端口號屬于傳輸協議的一部分,因此我們可以說,數據通過 IP 地址發送對應的數據到指定設備上,而通過端口號把數據發送到指定的服務或程序上。
程序一般不止是監聽指定的端口號,而且也會明確對應的傳輸協議。所以我們在進行數據傳輸的時候,既要指定對應的端口號,也要指定對應的通訊協議,很多人僅僅會說:程序 A 監聽著 33001 端口,這個是不正確的,至少是不完全正確的。相應的,我們應該這樣說:程序 A 使用 TCP 協議,監聽 33001 端口,當然你也可以說:程序 A 使用 UDP 協議,監聽 33001 端口。
指定傳輸協議和端口,顯而易見的好處在于,當我們進行端口轉發或者構建網絡防火墻的時候,我們可以很方便的通過協議和端口進行隔離。以防止不可預見的意外發生。對于計算機來說,通過這種方式可以防止外網各種不必要的數據,進入本地局域網。
你可能會想,這么多端口號,如果大家都用同一個,那不是也有沖突。沒錯,這就需要一個專門的組織來管理它們,IANA( Internet Assigned Numbers Authority 即互聯網號碼分配局 ),它負責管理端口注冊。大多數主流的程序,都有一個明確的已注冊端口,比如常見的 FTP 監聽 20、 21 端口,而 HTTP 服務監聽 80 端口等。如果有一個程序想注冊某個端口,那么 IANA 會先去查一查這個端口是否已被注冊,如果已經被注冊了,它則會拒絕申請。
端口號根據范圍分為三種:
1 . Well-Known Ports(即公認端口號)
它是一些眾人皆知著名的端口號,這些端口號固定分配給一些服務,我們上面提到的 HTTP 服務、 FTP服務等都屬于這一類。知名端口號的范圍是:0-1023。
2 . Registered Ports(即注冊端口)
它是不可以動態調整的端口段,這些端口沒有明確定義服務哪些特定的對象。不同的程序可以根據自己的需要自己定義,注冊端口號的范圍是:1024-49151。
3 . Dynamic, private or ephemeral ports(即動態、私有或臨時端口號)
顧名思義,這些端口號是不可以注冊的,這一段的端口被用作一些私人的或者定制化的服務,當然也可以用來做動態端口服務,這一段的范圍是:49152–65535。
關于一些服務器常用的端口,可以參考這篇常用端口幫助文檔。
總結
以上是生活随笔為你收集整理的什么是端口?端口号分为几种类型?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5G SA与NSA
- 下一篇: 如何给数据添加高斯白噪声?