TCP/ IP 通訊協定

為什麼要有通訊協定

不同機器之間,若要能夠溝通的話,需要大家都使用相同的語言。所有人都遵守通訊協定,就不會出現語言隔閡。

什麼是 TCP/ IP 通訊協定

要實現「不同機器之間能夠溝通」,從硬體到軟體,有許多工作要完成。為了讓這份工作比較容易進行,所以將工作拆分成好幾個部分,各自獨立完成;以後若要維護的話,哪個部分有問題,只要維修那個部分就好,不必把所有部分都拿出來檢查,降低維修難度。

至於工作到底要怎麼拆分,不同的模型有不同的建議。OSI(Open System Interconnection)模型切成七層工作,DoD(Department of Defense Model)模型則是切成四層,每一層都有不同的通訊協定。雖然目前實作上通常不是採用 OSI 模型,但為了方便理解「不同機器之間能夠溝通」的機制,通常會用 OSI 模型講解,也會試著將 DoD 模型對應到 OSI 模型。

DoD 模型中有許多通訊協定,不過以 TCP、IP 這兩個通訊協定最具有代表性,所以 DoD 模型又稱為 TCP/ IP 模型。TCP 協定對應到 OSI 模型中的傳送層,IP 協定則是對應到網路層。

TCP、IP 通訊協定負責什麼工作

TCP 協定

發送端的 TCP,和接收端的 TCP,會先進行三向交握,確認彼此能夠順利傳輸資料,才正式開始傳輸資料。

我們可以把要傳輸的資料想像成要郵寄的包裹,郵寄時,包裹會有尺寸或重量的限制,同樣地,傳輸的資料也會有大小的限制。如果資料太大了,TCP 會拆分成小包裹,並且幫每個小包裹編號(以便接收端最後能把小包裹還原成大包裹),並注意是否每一個小包裹都成功送達,若沒有成功送達,TCP 會再補上缺少的小包裹。如果資料太小了,TCP 會幫包裹灌水,以符合大小的下限。

IP 協定

IP 位址就像收件地址,以便確認要將包裹送去哪個主機。IP 位址目前有兩種版本,IPv4 用 32 位元儲存地址,IPv6 用 128 位元儲存地址。所以 IPv6 有比較多的地址可以分配給不同的主機。

IPv4

以 IPv4 而言,位址可以切成兩個部分,第一部分代表 Net ID,第二部分代表 Host ID。相同的 Net ID,代表主機位在相同的 IP 網段,相同 IP 網段的主機之間可以用廣播的方式傳遞資料,而不必透過路由。可以從 Net ID 看出這個 IP 位址屬於哪個等級。在相同 IP 網段內,不可以有相同的 Host ID。

參考資料


最後更新日期: 2021 年 5 月 20 日

Comments

Popular posts from this blog

shop_platform - 建立多對多關聯:Association Object

[計算機概論] SR Flip-Flop

git 指令