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

2021-09-11 09:39:41 字數 2510 閱讀 4414

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

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

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

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

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

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

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

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

tcp功能

將資料進行分段打包傳輸

對每個資料報編號控制順序

運輸中丟失、重發和丟棄處理

流量控制避免擁塞

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

層與層之間的合作和分工

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

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

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四層的關係

osi引入了服務、介面、協議、分層的概念,tcp/ip借鑑了osi的這些概念建立tcp/ip模型。

osi先有模型,後有協議,先有標準,後進行實踐;而tcp/ip則相反,先有協議和應用再提出了模型,且是參照的osi模型。

osi是一種理論下的模型,而tcp/ip已被廣泛使用,成為網路互聯事實上的標準。

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

網路模型 OSI七層協議和TCP IP四層協議

網路模型不是一開始就有的,在網路剛發展時,網路協議是由各網際網路公司自己定義的,比如那時的巨頭網路公司 ibm 微軟 蘋果 思科等等,他們每家公司都有自己的網路協議,各家的協議也是不能互通的,那時候大家覺得這是可以的,但對消費者來說這實際上是技術壟斷,因為你買了蘋果的裝置就不能用微軟的裝置,因為他們...

OSI七層協議

應用層 表示層會話層 傳輸層網路層 資料鏈路層 物理層直接為應用程序提供服務,如電子郵件 web瀏覽器 虛擬終端等。協議 dhcp dns ftp gopher http imap4 irc nntp xmpp pop3 sip smtp snmp ssh telnet rpc rtcp rtp r...

osi七層協議

網際網路的本本質就是一系列的網路協議 也有稱為tcp ip五層或四層協議 五層是將會話層和表示層,應用層同歸到應用層 每一層都有不同的裝置進行工作 每一層都有著不同的協議 使用者感知到的是最上一層的應用層,對於每一層來說,上層都是依賴於下層 物理層 基於電器之間的電訊號,高電壓為1,低電壓為0 資料...