IP和端口間的聯繫

TCP/IP協議中的端口指的是什麼呢?
如果把IP地址比作一間房子 ,端口就是出入這間房子的門。真正的房子只有幾個門,但是一個IP地址的端口可以有65536個之多!端口是通過端口號來標記的,端口號只有整數,範圍是從0 到65535。

端口有什麼用呢?
我們知道,一臺擁有IP地址的主機可以提供許多服務,比如Web服務、FTP服務、SMTP服務等,這些服務完全可以通過1個IP地址來實現。那麼,主機是怎樣區分不同的網絡服務呢?顯然不能只靠IP地址,因爲IP地址與網絡服務的關係是一對多的關係。實際上是通過“IP地址+端口號”來區分不同的服務的

在Internet上,各主機間通過TCP/IP協議發送和接收數據包,各個數據包根據其目的主機的ip地址來進行互聯網絡中的路由選擇,把數據包順利的傳送到目的主機。
大多數操作系統都支持多程序(進程)同時運行,那麼目的主機應該把接收到的數據包傳送給衆多同時運行的進程中的哪一個呢?
顯然這個問題有待解決,端口機制便由此被引入進來。
本地操作系統會給那些有需求的進程分配協議端口(protocol port,即我們常說的端口),每個協議端口由一個正整數標識,如:80,139,445,等等。當目的主機接收到數據包後,將根據報文首部的目的端口號,把數據發送到相應端口,而與此端口相對應的那個進程將會領取數據並等待下一組數據的到來。

  端口可分爲3大類:

  1) 公認端口(Well Known Ports):從0到1023,它們緊密綁定於一些服務。通常這些端口的通訊明確表明了某種服 務的協議。例如:80端口實際上總是HTTP通訊。
  2) 註冊端口(Registered Ports):從1024到49151。它們鬆散地綁定於一些服務。也就是說有許多服務綁定於這些端口,這些端口同樣用於許多其它目的。例如:許多系統處理動態端口從1024左右開始。
  3) 動態和/或私有端口(Dynamic and/or Private Ports):從49152到65535。理論上,不應爲服務分配這些端口。實際上,機器通常從1024起分配動態端口。但也有例外:SUN的RPC端口從32768開始。


進程ID是由操作系統內核進行分配和管理的,而端口號是由通訊協議內核分配並進行管理的。至於端口號和進程ID的對應關係則是由通訊協議在分配端口時記錄進程ID,並維持一張對應表進行管理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章