一個大大的問號首先拋出,計算機之間是如何進行通信的?

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

網路協議就是數據按照一定的規則進行傳輸,為了統一網路傳輸的標準,國際標準化組織定義了 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】 我們一起奮鬥。

推薦閱讀:

相關文章