TCP HTTP UDP 區別(丟掉的計算機網絡找回來)

TCP   HTTP   UDP: 
這是通信協議,也就是通信時所遵守的規則,只有雙方按照這個規則“說話”,對方纔能理解或爲之服務。 

socket: 
這是爲了實現以上的通信過程而建立成來的通信管道,其真實的代表是客戶端和服務器端的一個通信進程,雙方進程通過socket進行通信,而通信的規則採用指定的協議。

 

socket只是一種連接模式,不是協議
在c程序中,http,udp連接,都是基於socket的

tcp,udp,簡單的說(雖然不準確)是兩個最基本的協議
很多其它協議都是基於這兩個協議
如,http就是基於tcp的,FTP,SMTP,...都 是

用socket可以創建tcp連接,也可以創建udp連接
這意味着,用socket可以創建任何協議的連接,因爲其它協議都是基於此的

先來一個講TCP、UDP和HTTP關係的

1、TCP/IP是個協議組,可分爲三個層次:網絡層、傳輸層和應用層。
在網絡層有IP協議、ICMP協議、ARP協議、RARP協議和BOOTP協議。
在傳輸層中有TCP協議與UDP協議。
在應用層有FTP、HTTP、TELNET、SMTP、DNS等協議。
因此,HTTP本身就是一個協議,是從Web服務器傳輸超文本到本地瀏覽器的傳送協議。

 

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

 

3、結論:雖然HTTP本身是一個協議,但其最終還是基於TCP的。不過,目前,有人正在研究基於TCP+UDP混合的HTTP協議。

Socket是什麼呢?

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章