1. 程式人生 > >OSI、TCP、IP、UDP 這些都是啥??

OSI、TCP、IP、UDP 這些都是啥??

一個大大的問號首先丟擲,計算機之間是如何進行通訊的?

計算機網路是通過傳輸介質、通訊設施和網路通訊協議,把分散在不同地點的計算機裝置互連起來,實現資源共享和資料傳輸的系統。

網路協議就是資料按照一定的規則進行傳輸,為了統一網路傳輸的標準,國際標準化組織定義了 OSI 模型(開放系統互連參考模型)。

通常 OSI 參考模型第一層到第三層稱為底層(lower layer),又叫介質層(media layer),底層負責資料在網路中的傳送,網路互連裝置往往位於下三層,以硬體和軟體的方式來實現。OSI 參考模型的第五層到第七層稱為高層(upper layer),又叫主機層(host layer),高層用於保障資料的正確傳輸,以軟體方式來實現。

由於 OSI 模型和協議比較複雜,所以並沒有得到廣泛的應用。故而在實際應用中一般採用 TCP/IP 協議棧。

TCP/IP 模型各個層次分別對應於不同的協議。TCP/IP 協議棧是資料通訊協議的集合 ,包含許多協議。其協議棧名字來源於其中最主要的兩個協議 TCP(傳輸控制協議)和 IP(網際協議)。TCP/IP 協議棧負責確保網路裝置之間能夠通訊。它是一組規則,規定了資訊如何在網路中傳輸。

下面主要介紹一下 TCP / UDP 這兩個協議。

TCP(傳輸控制協議)是一種面向連線的保證可靠傳輸的協議。通過 TCP 協議傳輸,得到的是一個順序的無差錯的資料流。傳送方和接收方的成對的兩個 socket 之間必須建立連線,以便在 TCP 協議的基礎上進行通訊,當一個 socket(通常都是server socket)等待建立連線時,另一個 socket 可以要求進行連線,一旦這兩個 socket 連線起來,它們就可以進行雙向資料傳輸,雙方都可以進行傳送或接收操作。

UDP(使用者資料報協議)是一種面向無連線的協議,每個資料報都是一個獨立的資訊,包括完整的源地址或目的地址,它在網路上以任何可能的路徑傳往目的地,因此能否到達目的地,到達目的地的時間以及內容的正確性都是不能被保證的。

TCP 的特點

TCP 是面向連線的協議,通過三次握手建立連線,通訊完成時要拆除連線,由於 TCP 是面向連線協議,所以只能用於點對點的通訊。而且建立連線也需要消耗時間和開銷。

TCP 傳輸資料無大小限制,進行大資料傳輸。

TCP 是一個可靠的協議,它能保證接收方能夠完整正確地接收到傳送方傳送的全部資料。

UDP 的特點

UDP 是面向無連線的通訊協議,UDP 資料包括目的埠號和源埠號資訊,由於通訊不需要連線,所以可以實現廣播發送。

UDP 傳輸資料時有大小限制,每個被傳輸的資料報必須限定在 64KB 之內。

UDP 是一個不可靠的協議,傳送方所傳送的資料報並不一定以相同的次序到達接收方。

TCP 的應用

TCP 在網路通訊上有極強的生命力,例如遠端連線(Telnet)和檔案傳輸(FTP)都需要不定長度的資料被可靠地傳輸。但是可靠的傳輸是要付出代價的,對資料內容正確性的檢驗必然佔用計算機的處理時間和網路的頻寬,因此 TCP 傳輸的效率不如 UDP 高。

UDP 的應用

UDP 操作簡單,而且僅需要較少的監護,因此通常用於區域網高可靠性的分散系統中 client/server 應用程式。例如視訊會議系統,並不要求音訊視訊資料絕對的正確,只要保證連貫性就可以了,這種情況下顯然使用 UDP 會更合理一些。例如,QQ 聊天,也不要求雙方一直線上才能通訊。

PS. 歡迎關注我的個人公眾號:【yujikui1115】 我們一起奮鬥。