1. 程式人生 > >TCP、UDP、HTTP的區別

TCP、UDP、HTTP的區別

.TCP/IP代表傳輸控制協議/網際協議,指的是一系列協組。

  可分為四個層次:資料鏈路層、網路層、傳輸層和應用層。

在網路層:有IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議。
在傳輸層:中有TCP協議與UDP協議。
在應用層:有FTP、HTTP、TELNET、SMTP、DNS等協議。

  TCP和UDP使用IP協議從一個網路傳送資料包到另一個網路。把IP想像成一種高速公路,它允許其它協議在上面行駛並找到到其它電腦的出口。TCP和UDP是高速公路上的“卡車”,它們攜帶的貨物就是像HTTP,檔案傳輸協議FTP這樣的協議等。        TCP和UDP是FTP,HTTP和SMTP之類使用的傳輸層協議。雖然TCP和UDP都是用來傳輸其他協議的,它們卻有一個顯著的不同:TCP提供有保證的資料傳輸,而UDP不提供。這意味著TCP有一個特殊的機制來確保資料安全的不出錯的從一個端點傳到另一個端點,而UDP不提供任何這樣的保證。

TCP三次握手機制 第一次:客戶端傳送一個SYN包到服務端,並進入SYN_SEND狀態,等待服務端的響應。 第二次:服務端收到SYN包,並確認,同時自己也傳送一個SYN包,即SYN+ACK包,此時服務端進入SYN_RECV狀態。 第三次:客戶端收到服務端的SYN+ACK包,向服務端傳送一個確認ACK包,進入ESTABLISHED狀態,完成連線。 --------------------- 本文來自 wzuden 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/wzuden/article/details/70197651?utm_source=copy

UDP

UDP也是傳輸層的一個協議。但是與TCP不同的是,UDP不是面向連線的,並不保證傳輸的可靠性,沒有TCP的建立連線的三次握手機制,對於傳輸效率上面有了提升。

HTTP

HTTP是在應用層的一個協議,本身就是一個協議,是從Web伺服器傳輸超文字到本地瀏覽器的傳輸協議。  HTTP協議基於請求\響應模型的,並且是基於TCP協議的。

HTTP協議是建立在請求/響應模型上的。首先由客戶建立一條與伺服器的TCP連結,併發送一個請求到伺服器,請求中包含請求方法、URL、協議版本以及
相關的MIME樣式的訊息。伺服器響應一個狀態行,包含訊息的協議版本、一個成功和失敗碼以及相關的MIME式樣的訊息。
    HTTP/1.0為每一次HTTP的請求/響應建立一條新的TCP連結,因此一個包含HTML內容和圖片的頁面將需要建立多次的短期的TCP連結。一次TCP連結的建立
將需要3次握手。
    另外,為了獲得適當的傳輸速度,則需要TCP花費額外的迴路連結時間(RTT)。每一次連結的建立需要這種經常性的開銷,而其並不帶有實際有用的資料
,只是保證連結的可靠性,因此HTTP/1.1提出了可持續連結的實現方法。HTTP/1.1將只建立一次TCP的連結而重複地使用它傳輸一系列的請求/響應訊息,
因此減少了連結建立的次數和經常性的連結開銷。

三.SOCKET:TCP/IP網路的API。

  Socket是應用層與TCP/IP協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協議族隱藏在Socket介面後面,對使用者來說,一組簡單的介面就是全部,讓Socket去組織資料,以符合指定的協議。

  Socket 介面是TCP/IP網路的API,Socket介面定義了許多函式或例程,用以開發TCP/IP網路上的應用程式。

    這是為了實現以上的通訊過程而建立成來的通訊管道,其真實的代表是客戶端和伺服器端的一個通訊程序,雙方程序通過socket進行通訊,而通訊的規則
採用指定的協議。socket只是一種連線模式,不是協議,tcp,udp,簡單的說(雖然不準確)是兩個最基本的協議,很多其它協議都是基於這兩個協議如,http
就是基於tcp的,用socket可以建立tcp連線,也可以建立udp連線,這意味著,用socket可以建立任何協議的連線,因為其它協議都是基於此的。

綜上所述:需要IP協議來連線網路;TCP是一種允許我們安全傳輸資料的機制,使用TCP協議來傳輸資料的HTTP是Web伺服器和客戶端使用的特殊協議。HTTP基於TCP協議,但是卻可以使用socket去建立一個TCP連線。

  如圖:

                

TCP、UDP、HTTP、SOCKET之間的區別

TCP和UDP:傳輸層協議;

HTTP:應用層協議;

SOCKET:TCP/IP網路的API。

TCP/IP代表傳輸控制協議/網際協議,指的是一系列協議。

TCP和UDP使用IP協議從一個網路傳送資料包到另一個網路。把IP想像成一種高速公路,它允許其它協議在上面行駛並找到到其它電腦的出口。

TCP和UDP是高速公路上的“卡車”,它們攜帶的貨物就是像HTTP,檔案傳輸協議FTP這樣的協議等。

TCP和UDP是FTP、HTTP和SMTP之類使用的傳輸層協議。

雖然TCP和UDP都是用來傳輸其他協議的,它們卻有一個顯著的不同:TCP提供有保證的資料傳輸,而UDP不提供。

這意味著TCP有一個特殊的機制來確保資料安全的不出錯的從一個端點傳到另一個端點,而UDP不提供任何這樣的保證。

HTTP(超文字傳輸協議)是利用TCP在兩臺電腦(通常是Web伺服器和客戶端)之間傳輸資訊的協議。

客戶端使用Web瀏覽器發起HTTP請求給Web伺服器,Web伺服器傳送被請求的資訊給客戶端。

記住,需要IP協議來連線網路;TCP是一種允許我們安全傳輸資料的機制,使用TCP協議來傳輸資料的HTTP是Web伺服器和客戶端使用的特殊協議。

Socket 介面是TCP/IP網路的API,Socket介面定義了許多函式或例程,用以開發TCP/IP網路上的應用程式。