OSI七层模型与TCP/IP四层模型
OSI七層模型與TCP/IP四層模型
OSI模型(Open System Interconnection Reference Model,縮寫為OSI),全名“開放式系統互聯通信參考模型”,是一個試圖使各種計算機在全世界范圍內互聯為網絡的標準框架。
tcp、ip分別是傳輸層和網絡層,兩層之上是應用層,兩層試下是鏈路層。
?
TCP/IP
?互聯網的實現,分成好幾層,每一層都有自己的功能,就像建筑物一樣,每一層都靠下一層支持。
?通常人們認為OSI模型最上面三層(應用層、表示層、會話層)在TCP/IP中是一個應用層。
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這
樣的協議等。
你應該能理解,TCP和UDP是FTP,HTTP和SMTP之類使用的傳輸層協議。雖然TCP和UDP都是用來傳輸其他協議的,它們卻有一個顯著的不同:TCP提供
有保證的數據傳輸,而UDP不提供。這意味著TCP有一個特殊的機制來確保數據安全的不出錯的從一個端點傳到另一個端點,而UDP不提供任何這樣的保證。
HTTP(超文本傳輸協議)是利用TCP在兩臺電腦(通常是Web服務器和客戶端)之間傳輸信息的協議。客戶端使用Web瀏覽器發起HTTP請求給Web服務器,Web服務
器發送被請求的信息給客戶端。
?
?HTTP協議是基于請求/響應模式的,因此只要服務端給了響應,本次HTTP連接就結束了,或者更準確的說,是本次HTTP請求就結束了,根本沒有長連接這一說。那么自然也就沒有短連接這一說了。
之所以網絡上說HTTP分為長連接和短連接,其實本質上是說的TCP連接。TCP連接是一個雙向的通道,它是可以保持一段時間不關閉的,因此TCP連接才有真正的長連接和短連接這一說。
?不管怎么說,一定要務必記住,長連接是指的TCP連接,而不是HTTP連接。
解TCP的3次握手和4次揮手
為什么有3次握手
每當建立一個TCP/IP連接的時候都要經歷3次握手,這是為了保證建立一個可靠的連接。
什么是3次握手
上圖中的三次揮手說的是,客戶端向服務器發請求,服務器接收請求,服務器接收請求之后發送一個連接標志,客戶端接收連接標志之后也向服務器發送一個連接標志,至此連接完成。
用打電話類比的話就是:
小明撥打小紅的電話
小紅按下通話鍵并說了聲,喂 (一次握手)
小明聽到小紅的回應,也說了聲,喂 (二次握手)
小紅接收到小明的回應 (三次握手)
4次揮手
為什么有4次揮手呢,4次揮手的作用就是斷開連接,之所以要斷開連接是因為TCP/IP協議是要占用端口的,而計算機的端口是有限的,所以一次傳輸完成之后是要斷開連接的,斷開連接的方式就是4次揮手。
連接是由客戶端發起的,所以斷開連接也要有客戶端發起,因為服務器是被動的。上圖的最后一部分就是4次揮手,還是用小明和小紅打電話來類比。
小明:我這沒事兒了,你還有事兒嗎? (1次揮手)
小紅:我也沒事兒了,你確定沒事兒了嗎? (2次揮手)
小紅:我要掛電話了。 (3次揮手)
小明:好吧,你掛吧。 (4次揮手)
Http 與 Socket 區別
HTTP:超文本傳輸協議,首先它是一個協議,并且是基于TCP/IP協議基礎之上的應用層協議。TCP/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸,HTTP是應用層協議,主要解決如何包裝數據。HTTP協議詳細規定了瀏覽器與服務器之間相互通信的規則,是萬維網交換信息的基礎。HTTP是基于請求-響應形式并且是短連接,并且是無狀態的協議。針對其無狀態特性,在實際應用中又需要有狀態的形式,因此一般會通過session/cookie技術來解決此問題。
Socket:Socket不屬于協議范疇,而是一個調用接口(API),Socket是對TCP/IP協議的封裝,通過調用Socket,才能使用TCP/IP協議。Socket連接是長連接,理論上客戶端和服務器端一旦建立連接將不會主動斷開此連接。Socket連接屬于請求-響應形式,服務端可主動將消息推送給客戶端。
?
?
?
資料
https://www.cnblogs.com/songwenjie/p/8839782.html
https://www.jianshu.com/p/c793a279f698
轉載于:https://www.cnblogs.com/cnki/p/5142044.html
總結
以上是生活随笔為你收集整理的OSI七层模型与TCP/IP四层模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatis(增删改查)
- 下一篇: G面经prepare: Pattern