TCPUDP 協議,和 HTTP、FTP、SMTP,區別及應用場景

OSI 模型主要作為一個通用模型來做理論分析,而TCP/IP 協議模型是網際網路的實際通訊協議,兩者一般做對映分析,以下不做嚴格區分和宣告(好吧,比較懶);

OSI 整個模型層次大致可以分為3個主要層面來看

|…………。主機…………。。。| 作業系統和軟體等 應用、表示、會話

|…………。網路…………。。。| 網際網路絡和相關協議 傳輸、網路 (TCP/IP)

|…………。介質…………。。。| 物理介質相關 資料鏈路、物理

下圖模型為OSI

TCP/UDP 協議,和 HTTP、FTP、SMTP,區別及應用場景

1,主機需要網路傳輸資料,

網路本質上是一種服務,主機和網路之間靠傳輸層介面

,就好比你要叫快遞送東西;

2,網路可以提供兩種服務:

1)可靠,面向連線;(TCP) 就像靠譜的快遞,每一步都有反饋和監控,當然價格也是呵呵。。。

2)不可靠,盡力而為的傳輸 (UDP) 就像某些不靠譜的快遞或者聽都沒聽過的XX快遞,價格低,但是能不能到就靠運氣了。

3,兩種服務無所謂好壞,TCP 的可靠是需要消耗很多資源的,效率低 (大塊,重要的檔案等)

UDP 不保證可靠性,但是效率高(影片,語音,不重要的小檔案等)

4,而其他的“

HTTP、FTP、SMTP 等所謂的“Application-layer Protocol”協議

”指的是在TCP/IP 通訊協議框架下具體實現特定功能的應用(HTTP 用來實現超文字傳輸,FTP檔案傳輸,SMTP處理郵件等等),兩者的關係,咳咳,關係通俗的說:

TCP和UDP以及IP 協議是網際網路絡通訊的基礎,就像《憲法》,而應用協議就像具體的《刑法》、《民法》、《婚姻法》、《未成年人保護法》......等等,在某個領域的特定應用和具體實現,但是最基本的一條:違憲無效。

下圖模型為TCP/IP棧

TCP/UDP 協議,和 HTTP、FTP、SMTP,區別及應用場景

二、TCP與HTTP的區別

二、TCP與HTTP的區別

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

術語TCP/IP代表傳輸控制協議/網際協議,指的是一系列協議。“IP”代表網際協議,TCP和UDP使用該協議從一個網路傳送資料包到另一個網路。把

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

,它允許其它協議在上面行駛並找到到其它電腦的出口。

IP想像成一種高速公路

,檔案傳輸協議FTP這樣的協議等。

你應該能理解,TCP和UDP是FTP,HTTP和SMTP之類使用的傳輸層協議。雖然TCP和UDP都是用來傳輸其他協議的,它們卻有一個顯著的不同:TCP提供有保證的資料傳輸,而UDP不提供。這意味著TCP有一個特殊的機制來確保資料安全的不出錯的從一個端點傳到另一個端點,而UDP不提供任何這樣的保證。

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

下面的圖表試圖顯示不同的TCP/IP和其他的協議在最初OSI模型中的位置:

TCP和UDP是高速公路上的“卡車”,它們攜帶的貨物就是像HTTP

三、TCP,UDP,HTTP應用場景

TCP:傳輸控制協議,面向連線的的協議,穩定可靠。當客戶和伺服器彼此交換資料前,必須先在雙方之間建立一個TCP連線,之後才能傳輸資料。

UDP:廣播式資料傳輸,UDP不提供可靠性,它只是把應用程式傳給IP層的資料報傳送出去,但是並不能保證它們能到達目的地。由於UDP在傳輸資料報前不用在客戶和伺服器之間建立一個連線,且沒有超時重發等機制,故而傳輸速度很快。

優點:1。傳輸資料為位元組級,傳輸資料可自定義,資料量小。相應的移動端開發,手機費用低

2。傳輸資料時間短,效能高

3。適合C/S之間資訊實時互動

4。可以加密,資料安全性高

缺點:1。需要對傳輸的資料進行解析,轉化為應用級的資料

2。對開發人員的開發水平要求高

3。相對於Http協議傳輸,增加了開發量

Http請求主要有http協議,基於http協議的soap協議,常見的http資料請求方式有get和post,web服務

優點:1。基於應用級的介面使用方便

2。要求的開發水平不高,容錯性強

缺點:1。傳輸速度慢,資料包大。

2。如實現實時互動,伺服器效能壓力大

3。資料傳輸安全性差