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

yingzai發表於2018-02-23

OSI七層模型的簡單介紹

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

應用層(Application): 提供網路與使用者應用軟體之間的介面服務

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

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

傳輸層(Transimission) : 提供建立、維護和取消傳輸連線功能,負責可靠地傳輸資料(PC)

網路層(Network) :處理網路間路由,確保資料及時傳送(路由器)

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

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

TCP/IP協議簡單介紹

TCP(Transmission Control Protocol 傳輸控制協議)是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議,是網際網路的基礎,也是每個程式設計師必備的基本功。TCP/IP參考模型分為四層,從上到下分別是:應用層、傳輸層、網路互連層、網路介面層。

TCP功能

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

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

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

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


層與層之間的合作和分工

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

資料封裝完畢傳輸到接收方後,將資料要進行解封裝。解封裝是把增加的首部資訊拆掉,最後把資料傳給接收端。如下圖

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

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


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

TCP是面向連線的協議,它在源點和終點之間建立虛擬連線,而不是物理連線

在資料通訊之前,傳送端與接收端要先建立連線,等資料傳送結束後,雙方再斷開連線

TCP連線的每一方都是由一個IP地址和一個埠組成

詳談OSI七層網路協議和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四層的關係

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

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


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


相關文章