通訊埠
技術細節(jié)
傳輸層協(xié)議,如傳輸控制協(xié)議(TCP)與用戶數據報文協(xié)議(UDP),在數據包表頭中,定義了來源端口號與目的端口號。一個通信端口號使用16位無符號整數(unsigned integer)來表示,其范圍介于0與65535之間。在TCP協(xié)議中,端口號0是被保留的,不可使用。在UDP協(xié)議中,來源端口號是可以選擇要不要填上,如果設為0,則代表沒有來源端口號。
在操作系統(tǒng)中,一個進程,可以通過internet socket,將它的輸入與輸出,與一個特定的傳輸協(xié)議,一個通信端口,與IP地址,關系起來。這個關系動作,稱為綁定(binding),在這之后,就可以通過網絡提交與接收數據。
在操作系統(tǒng)上運行的網絡軟件,可以通過操作系統(tǒng),利用各個不同的通信端口,將數據發(fā)送到網絡上;操作系統(tǒng)也可以根據數據包的IP地址以及端口號,將這些數據包轉送到匹配的進程去。
雖然使用同樣傳輸協(xié)議,但是特定的IP地址以及通信端口的組合,只會被綁定到單一的特定進程上。當使用同樣協(xié)議的多個程序,嘗試著綁定在同一個IP地址下的相同通信端口,就會產生一個常見的應用程序錯誤,這個錯誤有時候被稱為通信端口沖突(port conflicts)。
用途
端口號有兩種用途:
標識服務器上提供特定網絡服務的進程??蛻魴C可以按照服務器IP與端口號與相應的服務器進程創(chuàng)建網絡連接,獲得相應的網絡服務。例如,通常使用80端口號提供http服務,使用23端口號telnet服務。服務器的這種功能叫做listening。客戶機通常使用動態(tài)指定的端口號與服務器創(chuàng)建連接。
由本機地址、本機端口號、目標機地址、目標機端口號、通信協(xié)議組成的五元組,用于唯一確定正在使用的網絡連結。因此,對于不同的協(xié)議、不同的目標機地址,本機的不同地址(如果本機使用多個網卡)等多種情形,同一個端口號可以復用。因此對于1對1通信,且本機與目標機之間只能創(chuàng)建一個通信連接,則不需要使用端口號。
網絡防火墻或者網關還可提供端口轉發(fā)(port forwarding),即NAT。
免責聲明:以上內容版權歸原作者所有,如有侵犯您的原創(chuàng)版權請告知,我們將盡快刪除相關內容。感謝每一位辛勤著寫的作者,感謝每一位的分享。
- 有價值
- 一般般
- 沒價值
{{item.userName}} 舉報
{{item.time}} {{item.replyListShow ? '收起' : '展開'}}評論 {{curReplyId == item.id ? '取消回復' : '回復'}}
{{_reply.userName}} 舉報
{{_reply.time}}