詳談OSI七層網絡協議和TCP/IP協議

OSI七層模型的簡單介紹

OSI是Open System Interconnection的縮寫,意爲開放式系統互聯。是設計和描述計算機網絡通訊的基本框架。OSI模型把網絡通訊的工做分爲7層程序員

應用層(Application): 提供網絡與用戶應用軟件之間的接口服務安全

表示層(Presentation) :提供格式化的表示和轉換數據服務,如加密和壓縮網絡

會話層(Session) :提供包括訪問驗證和會話管理在內的創建和維護應用之間通訊的機制框架

傳輸層(Transimission) : 提供創建、維護和取消傳輸鏈接功能,負責可靠地傳輸數據(PC)加密

網絡層(Network) :處理網絡間路由,確保數據及時傳送(路由器)計算機網絡

數據鏈路層(DataLink) :負責無錯傳輸數據,確認幀、發錯重傳等(交換機)設計

物理層(Physics) : 提供機械、電氣、功能和過程特性(網卡、網線、雙絞線、同軸電纜、中繼器)3d

TCP/IP協議簡單介紹

TCP(Transmission Control Protocol 傳輸控制協議)是一種面向鏈接的、可靠的、基於字節流的傳輸層通訊協議,是互聯網的基礎,也是每一個程序員必備的基本功。TCP/IP參考模型分爲四層,從上到下分別是:應用層、傳輸層、網絡互連層、網絡接口層。cdn

TCP功能blog

將數據進行分段打包傳輸
對每一個數據包編號控制順序
運輸中丟失、重發和丟棄處理
流量控制避免擁塞

TCP/IP參考模型的層次結構

數據從源主機傳輸到目標主機要進行數據封裝和數據拆包的過程。數據封裝的傳輸過程當中,在每一層要加入首部信息,有時還要增長尾部信息。數據單元在傳輸層被稱爲段(segment),在網絡層被稱爲包(package),在鏈路層被稱爲幀(frame)。


層與層之間的合做和分工

數據從發送源傳輸到接收端要進行數據封裝和數據拆包的過程。數據封裝的傳輸過程當中,在每一層要加入首部信息,有時還要增長尾部信息。數據單元在傳輸層被稱爲段(segment),在網絡層被稱爲包(package),在鏈路層被稱爲幀(frame)。數據->傳輸層(包)->網絡層(段Segment)->數據鏈路層(幀)

數據封裝完畢傳輸到接收方後,將數據要進行解封裝。解封裝是把增長的首部信息拆掉,最後把數據傳給接收端。以下圖



TCP協議的三次握手和四次分手

TCP是面向鏈接的協議,它在源點和終點之間創建虛擬鏈接,而不是物理鏈接

在數據通訊以前,發送端與接收端要先創建鏈接,等數據發送結束後,雙方再斷開鏈接

TCP鏈接的每一方都是由一個IP地址和一個端口組成


ACK: 此標誌表示應答域有效,就是說前面所說的TCP應答號將會包含在TCP數據包中。有兩個取值: 0和1,爲1的時候表示應答域有效,反之爲0。

FIN: 表示發送端已經達到數據末尾,也就是說雙方的數據傳送完成,沒有數據能夠傳送了,發送FIN標誌位的TCP數據包後,鏈接將被斷開。這個標誌的數據包也常常被用於進行端口掃描。

三次握手

第一次握手主機A經過一個標識爲SYN標識位的數據段發送給主機B請求鏈接,經過該數據段告訴主機B但願創建鏈接,須要B應答,並告訴主機B傳輸的起始序列號
第二次握手是主機B用一個確認應答ACK和同步序列號SYNC標誌位的數據段來響應主機A,一是發送ACK告訴主機A收到了數據段,二是通知主機A從哪一個序列號作標記。
第三次握手是主機A確認收到了主機B的數據段並能夠開始傳輸實際數據。

爲何要三次握手?

爲了防止已失效的鏈接請求報文段忽然又傳送到了服務端,於是產生錯誤。

好比:一我的和另外一我的說話,其中一我的說你能聽到嗎,另外一人不回答,兩我的交流失敗,或者 一我的說中文,另我的說英文,兩我的交流仍是失敗,爲了保證客戶端可以接收到服務端的信息並能作出正確的應答,因此才三次握手。

四次斷開

主機A發送FIN控制位發出斷開鏈接的請求
主機B進行響應,確認收到斷開鏈接請求
主機B提出反方向的關閉要求
主機A確認收到的主機B的關閉鏈接請求

爲何四次斷開

四次斷開和上面的例子同樣,若是沒有溝通很差,就會致使連接失敗,不安全。

TCP是全雙工模式,這就意味着,當主機1發出FIN報文段時,只是表示主機1已經沒有數據要發送了,主機1告訴主機2,它的數據已經所有發送完畢了;可是,這個時候主機1仍是能夠接受來自主機2的數據;當主機2返回ACK報文段時,表示它已經知道主機1沒有數據發送了,可是主機2仍是能夠發送數據到主機1的;當主機2也發送了FIN報文段時,這個時候就表示主機2也沒有數據要發送了,就會告訴主機1,我也沒有數據要發送了,以後彼此就會愉快的中斷此次TCP鏈接。

OSI七層和TCP/IP四層的關係


  1. OSI引入了服務、接口、協議、分層的概念,TCP/IP借鑑了OSI的這些概念創建TCP/IP模型。
  2. OSI先有模型,後有協議,先有標準,後進行實踐;而TCP/IP則相反,先有協議和應用再提出了模型,且是參照的OSI模型。
  3. OSI是一種理論下的模型,而TCP/IP已被普遍使用,成爲網絡互聯事實上的標準。


OSI和TCP/IP模型就簡單介紹完了,若是有理解錯誤的地方,歡迎指正!

相關文章
相關標籤/搜索