HTTP、Socket、TCP、UDP的區別和聯繫

TCP/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸,而HTTP是應用層協議,主要解決如何包裝數據。
一、TCP與UDP的不同

1. 是否需要建立連接。
UDP在傳送數據之前不需要先建立連接;TCP則提供面向連接的服務;
2. 是否需要給出確認
對方的傳輸層在收到UDP報文後,不需要給出任何確認,而 TCP需要給出確認報文,要提供可靠的、面向連接的傳輸服務。
3.雖然UDP不提供可靠交付,但在某些情況下UDP是一種最有效的工作方式;【UDP取代TCP】http://www.daiqiyang.com

和IP層的聯繫: IP層只負責把數據送到節點,而不能區分上面的不同應用,所以TCP和UDP協議在其基礎上加入了端口的信息,每個端口標識的是一個節點上的一個應用。 除了增加端口信息,UDP協議基本就沒有對IP層的數據進行任何的處理了。而TCP協議還加入了更加複雜的傳輸控制,比如滑動的數據發送窗口,以及接收確認和重發機制,以達到數據的可靠傳送。不管應用層看到的是怎樣一個穩定的TCP數據流,下面傳送的都是一個個的IP數據包,需要由TCP協議來進行數據重組。

二、TCP與UDP的適用場景。

1. TCP用於在傳輸層有必要實現可靠傳輸的情況。
2. UDP主要用於那些對高速傳輸和實時性有較高要求的通信或廣播通信。
舉一個通過 IP 電話進行通話的例子。如果使用 TCP,數據在傳送途中如果丟失就會被重發,這樣就會導致無法流暢地傳輸通話人的聲音。而採用UDP,它不會進行重發處理,從而也就不會有聲音大幅度延遲到達的問題,即使有部分數據丟失,也只是會影響某一小部分的通話。http://www.daiqiyang.com
三、HTTP協議和Socket協議

HTTP(超文本傳輸協議)是利用TCP在兩臺電腦(通常是Web服務器和客戶端)之間傳輸信息的協議。客戶端使用Web瀏覽器發起HTTP請求給Web服務器,Web服務器發送被請求的信息給客戶端。

HTTP是短連接:客戶端發送請求都需要服務器端回送響應.請求結束後,主動釋放鏈接,因此爲短連接。通常的做法是,不需要任何數據,也要保持每隔一段時間向服務器發送”保持連接”的請求。這樣可以保證客戶端在服務器端是”上線”狀態。

HTTP連接使用的是”請求-響應”方式,不僅在請求時建立連接,而且客戶端向服務器端請求後,服務器才返回數據。

Socket協議:網絡上的兩個程序通過一個雙向的通信連接實現數據的交換,這個連接的一端稱爲一個socket。http://www.daiqiyang.com

建立網絡通信連接至少要一對端口號(socket)。socket本質是編程接口(API),對TCP/IP的封裝,TCP/IP也要提供可供程序員做網絡開發所用的接口,這就是Socket編程接口;HTTP是轎車,提供了封裝或者顯示數據的具體形式;Socket是發動機,提供了網絡通信的能力。
————————————————
版權聲明:本文爲CSDN博主「十步殺一人_千里不留行」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/m0_37609579/article/details/103192012

發佈了10 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章