TCP IP Http Socket的關係區別理解

2021-10-24 17:05:02 字數 1256 閱讀 6677

tpc/ip協議是傳輸層協議,主要解決資料如何在網路中傳輸,而http是應用層協議,主要解決如何包裝資料。

關於tcp/ip和http協議的關係,網路有一段比較容易理解的介紹:「我們在傳輸資料時,可以只使用(傳輸層)tcp/ip協議,但是那樣的話,如果沒有應用層,便無法識別資料內容,如果想要使傳輸的資料有意義,則必須使用到應用層協議,應用層協議有很多,比如http、ftp、telnet等,也可以自己定義應用層協議。web使用http協議作應用層協議,以封裝http 文字資訊,然後使用tcp/ip做傳輸層協議將它發到網路上。」

術語tcp/ip代表傳輸控制協議/網際協議,指的是一系列協議。「ip」代表網際協議,tcp和udp使用該協議從乙個網路傳送資料報到另乙個網路。把ip想像成一種高速公路,它允許其它協議在上面行駛並找到到其它電腦的出口。tcp和udp是高速公路上的「卡車」,它們攜帶的貨物就是像http,檔案傳輸協議ftp這樣的協議等。

要具體實現,同時還要提供對外的操作介面。這個就像作業系統會提供標準的程式設計介面,比如win32程式設計介面一樣,tcp/ip也要提供可供程式設計師做網路開發所用的介面,這就是socket程式設計介面。」

接上述的那個例子:http是轎車,提供了封裝或者顯示資料的具體形式;socket是發動機,提供了網路通訊的能力。

實際上,傳輸層的tcp是基於網路層的ip協議的,而應用層的http協議又是基於傳輸層的tcp協議的,而socket本身不算是協議,就像上面所說,它只是提供了乙個針對tcp或者udp程式設計的介面。

利用socket建立網路連線的步驟

建立socket連線至少需要一對套接字,其中乙個執行於客戶端,稱為clientsocket ,另乙個執行於伺服器端,稱為serversocket 。

套接字之間的連線過程分為三個步驟:伺服器監聽,客戶端請求,連線確認。

(1)伺服器監聽:伺服器端套接字並不定位具體的客戶端套接字,而是處於等待連線的狀態,實時監控網路狀態,等待客戶端的連線請求。

(2)客戶端請求:指客戶端的套接字提出連線請求,要連線的目標是伺服器端的套接字。為此,客戶端的套接字必須首先描述它要連線的伺服器的套接字,指出伺服器端套接字的位址和埠號,然後就向伺服器端套接字提出連線請求。

(3)連線確認:當伺服器端套接字監聽到或者說接收到客戶端套接字的連線請求時,就響應客戶端套接字的請求,建立乙個新的執行緒,把伺服器端套接字的描述發給客戶端,一旦客戶端確認了此描述,雙方就正式建立連線。而伺服器端套接字繼續處於監聽狀態,繼續接收其他客戶端套接字的連線請求。

TCP IP Http Socket解析比較

網路由下往上分為物理層 資料鏈路層 網路層 傳輸層 會話層 表示層和應用層。通過初步的了解,我知道ip協議對應於網路層,tcp協議對應於傳輸層,而http協議對應於應用層,三者從本質上來說沒有可比性,socket則是對tcp ip協議的封裝和應用 程式設計師層面上 也可以說,tpc ip協議是傳輸層...

TCP,IP,HTTP,SOCKET區別和聯絡

網路由下往上分為 對應 物理層 資料鏈路層 網路層 ip協議 傳輸層 tcp協議 會話層 表示層和應用層 http協議 socket則是對tcp ip協議的封裝和應用 程式設計師層面上 也可以說,tpc ip協議是傳輸層協議,主要解決資料 如何在網路中傳輸,而http是應用層協議,主要解決如何包裝資...

TCP,IP,HTTP,SOCKET區別和聯絡

網路由下往上分為 對應 物理層 資料鏈路層 網路層 ip協議 傳輸層 tcp協議 會話層 表示層和應用層 http協議 socket則是對tcp ip協議的封裝和應用 程式設計師層面上 也可以說,tpc ip協議是傳輸層協議,主要解決資料 如何在網路中傳輸,而http是應用層協議,主要解決如何包裝資...