淺談OSI七層


引:

計算機網絡是個非常復雜的系統,例如,要想實現最簡單的網絡連接的兩台計算機之間互相傳送文件,首先就必須要有傳送數據的通路,但這遠遠不夠,還必須要經過一系列復雜的過程,其中就有一下幾點:

 

發起通信的計算機必須將數據通信的通路激活;要告訴網絡如何識別接收數據的計算機;發起通信的計算機必須查明對方計算機是否已開機,並且與網絡連接正常;發起通信的計算機中的應用程序必須搞清楚在對方計算機的文件管理程序是否已做好接收和存儲文件的准備工作;若計算機的文件格式不兼容,則其中的一台計算機必須完成文件格式的轉換功能;對出現的各種差錯和意外事故,應當有可靠地措施保證對方計算機最終能收到正確的文件......

 

以上幾點只是復雜過程中的一部分,還有很多很多,說這些只是想說明相互通信的兩個計算機系統必須高度協調工作才行,而這種“協調”是相當復雜的。為了設計這樣復雜的計算機網絡,早在最初ARPANTE設計時就提出了分層的方法。在1974年,IBM公司就宣布了系統網絡體系結構SNA,而現今的IBM大型機構建的專用網絡仍在使用SNA。其他公司也研發出了自己公司的具有不同名稱的體系結構。如此多的結構又優點也有缺點,不同體系之間的計算機無法實現互聯互通,於是乎,ISO於1977年推出了開放系統互連基本參考模型,也就是我們常說的OSI七層模型。但理想與現實的差距就在於,你可以達到全球所有計算機的互聯互通,但是由於因特網早於OSI七層模型全球商用標准普及之前就已覆蓋全世界,因此最終出現了TCP/IP協議,四層模型不僅可以完全普及化,同時也利於商業市場化,從商業層面而言,四層模型才是成功的。 

 

        為了使不同計算機廠家生產的技術機能夠相互通信,以便在更大的范圍內建立技術機網絡,國際化標准組織(ISO)在1978年提出了“開放系統互聯參考模型”,即著名的OSI/RM模型。它將計算機網絡系結構的通信協議化為七層,自下而上依次為:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。

分層的好處:1、通過每一層實現一種相對獨立的功能來簡化問題;2、每一層的設計是獨立的,它不必關心下一層是如何實現的,只需知道下一層為我提供的服務,和我必須為上一層提供哪些服務;3當由於技術的變化使某層的實現需要變化時,不影響其他的層次。

                                                 

 

TCP/IP四層模型

TCP/IP是一個四層的體系結構,主要包括:應用層、運輸層、網際層和網絡接口層。從實質上講,只有上邊三層,網絡接口層沒有什么具體的內容。

 

 

                                                                                                              

 

 

 

 

五層體系結構

五層體系結構包括:應用層、運輸層、網絡層、數據鏈路層和物理層。 
五層協議只是OSI和TCP/IP的綜合,實際應用還是TCP/IP的四層結構。為了方便可以把下兩層稱為網絡接口層。

 

 

 

每一層的協議
物理層:RJ45、CLOCK、IEEE802.3(中繼器、集線器),ISO2110,光導纖維,雙絞線

數據鏈路層:wi-fi, ATM, DTM,令牌環,以太網,PPPoE ,PPP、FR、HDLC、VLAN、MAC(網橋、交換機)

網絡層:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP(交換機)

傳輸層:TCP(T/TCP · Fast Open) UDP DCCP SCTP RSVP PPTP TLS/SSL

會話層:NFS、SQL、NETBIOS、RPC

表示層:JPEG、MPEG、ASII

應用層:DHCP(v6) DNS FTP Gopher HTTP(SPDY、HTTP/2) IMAP4 IRC NNTP XMPP POP3 SIP SMTP SNMP SSH TELNET RPC RTCP RTP RTSP SDP SOAP GTP STUN NTP SSDP 

      

物理層:

          提供為建立、維護、和拆除物理鏈路所需要的機械的、電氣的、功能的和規程的特性;有關的物理鏈路上傳輸非結構的位流以及故障檢測指示。

物理層實現在物理媒體上透明地傳送原始比特流。定義了激活、維護、和關閉終端用戶之間機械的、電氣的、過程的和功能的特性

數據終端設備DTE(用於處理用戶數據的設備。如計算機路由器)

數據通信設備DCE(用於把DTE發出的數字信號轉換成適用於傳輸介質上傳輸的形式。)

機械特性(物理連接器的尺寸、形狀、規格)

電氣特性(信號電平,脈沖寬度,頻率,數據傳送速率,最大傳送距離等)

功能特性(接口引腳的功能作用)

規格特性(信號時序,應答關系,操作過程)

物理層的任務就是透明地傳輸比特流

實現最終信號的傳輸是通過物理層實現的。通過物理介質傳輸比特流。規定了電平、速度和電纜針腳。常用設備有集線器、中繼器、調制解調器、網線、雙絞線、同軸電纜。這些都是物理層的傳輸介質。

比特流(由1、0轉化為電流強弱來進行傳輸,到達目的地后再轉化為1、0,也就是數模轉換與模數轉換)。這一層的數據叫做比特。

例:快遞寄送過程中的交通工具,就相當於我們的物理層,例如:汽車,火車,飛機,船。

 

 

 

 

數據鏈路層:

         在網絡層實體間提供數據發送和接收的功能和過程;提供數據鏈路的流控。

 定義:將比特組合成字節,再將字節合成幀,使用鏈路層地址(以太網使用MAC地址)來訪問介質,並進行差錯檢測。

數據鏈路層又分為2個子層:邏輯鏈路控制子層(LLC)和媒體訪問控制子層(MAC)。

MAC子層處理CSMA/CD算法、數據出錯效驗、成幀等;LLC子層定義了一些字段使上次協議能共享數據鏈路層。在實際使用中,LLC子層並非必需的。

數據鏈路層是在物理線路上提供可靠的數據傳輸,使之對網絡層呈現為一條無錯的線路,同時將比特流轉變為邏輯傳輸線路。

例:數據鏈路層的功能相當於快遞准備發送前,需要裝箱分類檢查,去往相同目的地的放在一塊,檢查是否有違禁品。而且因為一卡車只能裝2T的東西,所以要分開裝載。

 

                                  

 

 

網絡層:

控制分組傳送系統的操作、路由選擇、擁護控制、網絡互連等功能,它的作用是將具體的物理傳送對高層透明。

網絡層通過IP地址來建立兩個節點之間的連接,為源端的運輸層送來的分組,選擇合適的路由和交換節點,正確無誤地按照地址傳送給目的端的運輸層。就是最通常說的IP層。這一層就是我們常說的IP協議層。IP協議是Internet的基礎

網絡層的功能和服務(1、最佳路由選擇和數據包中轉2、流量控制和擁塞控制3、差錯檢測與恢復4、流量統計和記賬)

例:網絡層就相當於快遞公司龐大的快遞網絡,全國不同的集散中心。比如說,從四川發往北京的順豐快遞,首先要到順豐的成都集散中心,從成都集散中心再寄到北京順豐集散中心。每個集散中心,就相當於網絡中的一個IP節點。

 

 

 

 

傳輸層:

    提供建立、維護、和拆除傳送連接的功能;選擇網絡層提供最合適的服務;在系統之間提供可靠的透明的數據傳送,提供端到端的錯誤恢復和流量控制。

 傳輸層建立了主機端到端的連接,傳輸層的作用是為上層協議提供端到端的可靠和透明的數據傳輸服務,包括處理差錯控制和流量控制等問題。該層向高層屏蔽了下層數據通信的細節,使高層 用戶看到的只是在兩個傳輸實體間的一條主線到主機的、可由用戶控制和設定的、可靠的數據線路。

 

TCP(傳輸控制協議):面向連接、可靠傳輸、流控及窗口機制;    屬於面向連接的網絡協議

 

            使用TCP的應用:web、電子郵件、文件傳輸程序

 

 

 

        如何實現TCP的面向連接、可靠傳輸、流控及窗口機制?

 

            ---使用TCP的三次握手

 

 

 

        UDP(用戶數據報協議):無連接、不可靠傳輸、盡可能快的傳輸;屬於無連接的網絡協議

 

            使用UDP的應用:域名系統(DNS)、視頻流、IP語音(VoIP)

 

 

 TCP的三次握手:

 

        1、client向server發送SYN請求包

 

        2、server收到client請求報文后,向client發送一個ACK確認報文的同時,會向client發送一個SYN請求包

 

        3、client在收到server的SYN后,向server發送一個ACK確認報文

 

 

 

TCP的四次揮手:

 

        1、client向server發送一個FIN拒絕包

 

        2、server收到clinet的拒絕包之后,向client回復ACK確認包,確認關閉通信

 

        3、server在發送完FIN的ACK的確認包后(此時是clnet單方面的通信關閉),向client發送一個FIN拒絕包

 

        4、client在收到server的FIN拒絕包后,向server發送一個ACK確認包,確認關閉通信

 

        5、server在收到client的ACK確認包,確認關閉通信 

SYN是什么?ACK是什么?FIN是什么?SEQ是什么?

        SYN(連接請求報文--SYNchronization):在連接建立時用來同步序號。當SYN=1而ACK=0時,表面這個是一個連接請求報文。對方若同意建立連接,則應在響應報文中使                                                                                                                                                                                                                                                                                                                                                                                                                                       SYN=1和ACK=1,因此,SYN置1就表示這是一個連接請求或者連接接受報文

        ACK(請求確認報文):已成功接受序列號到ACK-1的數據,期望接收的下一個字節的數據為ACK

        FIN(服務拒絕報文-finis):即完結、終結的意思,用來釋放一個連接。當FIN=1時,表明此報文段的發送方的數據已經發送完畢,並要求釋放連接

        SEQ:發送的這個包中的第一個字節(如果由payload的話)的序號

 

    三次握手的詳細過程:

        第一次握手:由client發送請求連接,SYN=1 ACK=0,TCP規定SYN=1時不能攜帶數據,但要消耗一個序號,因此聲明自己的序號是SEQ=X

        第二次握手:server進行回復確認,SYN=1 ACK=1 SEQ=Y,ACK=X+1

        第三次握手:client再進行一次確認,但是不用SYN,則ACK=1,SEQ=X+1,ACK=Y+1

        4、三次握手完成,連接建立(三次握手、兩次確認)

 

    四次揮手的詳細過程:

        由於TCP連接時全雙工,因此,每個方向必須要單獨進行關閉,這一原則是當一方完成數據發送任務后,發送一個FIN來終止這一方向的連接,收到FIN只是意味着這一方向上沒有數據流動了,也不會再收到數據,但是在這個TCP連接上仍能發送數據,直到另一方向也發送了FIN。首先進行關閉的一方將執行主動關閉,而另一方則執行被動關閉

        

        第一次揮手:client發送一個FIN,用來關閉clinet到server的數據傳輸,client進入FIN_WAIT_1狀態

        第二次揮手:server收到FIN后,發送一個ACK給client,確認序號為收到序號的+1(與SYN相同,一個FIN占用一個序號),server進入CLOSE_WAIT狀態

        第三次揮手:server發送一個FIN,用來關閉server到client的數據傳輸,seerver進入LAST_ACK狀態

        第四次揮手:client收到FIN后,client進入TIME_WAIT狀態,接着發送一個ACK給server,確認序號為收到序號+1,server進入CLOSED狀態,完成四次揮手

 

    為什么建立連接是三次握手,而關閉連接卻是四次揮手呢?

        這是因為服務端在LISTEN狀態下,收到建立連接請求的SYN報文后,把ACK和SYN放在一個報文里發送給客戶端。而關閉連接時,當收到對方的FIN報文時,僅僅表示對方不再發送數據了,但是還能接收數據,己方也未必全部數據都發送給對方了,所以己方可以立即CLOSE,也可以發送一些數據給對方后,再發送FIN報文給對方來表示同意現在關閉連接,因此,己方ACK和FIN一般都會分開發送。

 

    TCP頭部最小多少字節,最大多少字節?

        TCP頭部最少20字節,最大60字節

TCP頭部

 

源端口(Source port):16bit 目的端口(Destination port):16bit

序列號(Sequence number):32bit

--------------------- 確認號(Acknowledgement number):32bit -------------------------

----------------------------------------------------------------------------------------

數據偏倚 保留(reserved):6bit URG ACK PSH RST SYN FIN 窗口(window):16bit

校驗和(checksum):16bit 緊急指針(urgent):16bit

----------------------------------- 任選項----------------------------------------- --填充--

--- ---

-----------------------------------------信息數據區 ---------------------------------------------

** control bits:URG、ACK、PSH、RST、SYN、FIN**

 

URG(緊急位):設置為1時,首部中的緊急指針有效;為0時,緊急指針沒有意義。

PSH(推位):當設置為1時,要求把數據盡快的交給應用層,不做處理

RST(復位):能把建立好的鏈接或者正在建立的連接打斷(中斷TCP連接,不需要ACK確認)

SYN(連接請求報文):請求建立連接

ACK (連接確認報文):確認一個連接的建立

FIN(連接結束報文):請求結束連接

 

通常的數據中都會帶有PSH但URG只在緊急數據的時設置,也稱“帶外數據”,解釋如下:

 

緊急數據:URG標志設置為1時,緊急指針才有效,緊急方式是向對方發送緊急數據的一種方式,表示數據要優先處理。他是一個正的偏移量,與TCP收不中序號字段的值相加表示緊急數據后面的字節,即緊急指針是指向緊急數據最后一個字節的下一個字節。這是協議編寫上的錯誤,RFC1122中對此給出了更正說明,緊急指針是數據最后一個字節,不是最后字節的下一位置,TCP首部中只有緊急指針指出緊急數據的位置,他所指的字節為緊急數據,但沒有辦法指定緊急數據的長度。

 

URG=1,表示緊急指針指向包內數據段的某個字節(數據從第一字節到指針所指向字節就是緊急數據)不進入緩沖區(一般不都是待發送的數據要先進入發送緩存嗎?就直接交個上層進程,余下的數據都是要進入接收緩沖的;一般來說TCP是要等到整個緩存都填滿了后在向上交付,但是如果PSH=1的話,就不用等到整個緩存都填滿,直接交付,但是這里的交付仍然是從緩沖區交付的,URG是不要經過緩沖區的

 

TCP連接中出現RST的情況:

    1、端口未打開/不存在:

        服務器程序端口未打開而客戶端來連接。這種情況是最為常見和好理解的一種。去Telnet一個未打開TCP的端口可能會出現這種錯誤。這個和操作系統的實現有關。在某些情況下,操作系統也會完全不理會這些發到未打開端口請求

        其實客戶端向服務器的某個端口發起連接,如果端口被處於TIME_WAIT狀態狀態的連接占用時,客戶端也會收到RST

    2、請求超時

    3、提前關閉

        關於TCP,我想我們在教科書里都讀到過一句話,“TCP是一種可靠的連接”。而這可靠有這樣一種含義,那就是操作系統接收到來自TCP連接中的每一個字節,我都會讓應用程序接收到。如果應用程序不接收怎么辦?那么就RST

    4、異常中止連接

        一方直接發送RST報文,表示異常中止連接。一但發送方發送復位報文字段,發送端所有排隊等待發送的數據都被丟棄。應用程序可以通過socket選項SO_LINGER來發送RST復位報文

    5、處理半打開狀態

        一方關閉了連接,另一方卻沒有收到結束報文(如網絡故障),此時另一方還維持着原來的連接。而一方即使重啟,也沒有該連接的任何信息。這種狀態叫做半打開狀態。而此時另一方往處於半打開狀態的連接寫數據,則對方回應RST復位報文

 

checksum(數據校驗):檢測數據在傳輸的過程中是否出錯,如果處出錯則立馬校驗一下

Urgent(緊急指針):和URG相關聯

 

滑動窗口具有流控功能(window):

    窗口大小:決定了在收到確認之前可以發送的字節數

    確認號:是期望接收到的下一個TCP segment的序列號

    滑動窗口越大,可發送/接收的報文就越大

UDP頭部

 

源端口(Source prot):16bit 目的端口(Destination prot):16bit

長度(Length):16bit 校驗(Checksum):16bit

DATE DATE

總共有多少個端口?端口范圍是多少?

    端口號只有16位,而端口號為2^16=65536 個,而端口范圍是0-65535

 

在傳輸的過程中,端口是如何進行選擇的?

    傳輸層在做數據分割的時候,有源端口,也有目的端口,發起訪問的時候,源端口是隨機的,目的端口是固定的 

 

例:傳輸層相當於快遞公司中的負責快遞郵件收發的人,公司自己的投遞員,他們負責將上一層的要寄出的資料投遞到快遞公司或郵局。

 

 

 

 

   

會話層:

       提供兩進程之間建立、維護和結束會話連接的功能;提供交互會話的管理功能,如三種數據流方向的控制,即一路交互、兩路交替和兩路同時會話模式。

會話層還利用在數據中插入校驗點來實現數據的同步。負責建立、管理和終止表示層實體之間的通信會話。該層的通信由不同設備中的應用程序之間的服務請求和響應組成。

例:會話層的同事拿到表示層的同事轉換后資料,(會話層的同事類似公司的外聯部),會話層的同事那里可能會掌握本公司與其他好多公司的聯系方式,這里公司就是實際傳遞過程中的實體。當接收到表示層數據后,會話層將建立並記錄本次會話,他首先要找到公司B的地址信息,然后將整份資料放進信封,並寫上地址和聯系方式。准備將資料寄出。等到確認公司B接收到此份報價表后,此次會話就算結束了,外聯部的同事就會終止此次會話。

 

 

 

 

 

表示層:

       表示應用進程協商數據表示;完成數據轉換、格式化和文本壓縮。

 表示層提供各種用於應用層數據的編碼和轉換功能,確保一個系統的應用層發送的數據能被另一個系統的應用層識別。如果必要,該層可提供一種標准表示形式,用於將計算機內部的多種數據格式轉換成通信中采用的標准表示形式。數據壓縮和加密也是表示層可提供的轉換功能之一。

例:由於公司A和公司B是不同國家的公司,他們之間的商定統一用英文作為交流語言,所以此時表示層(公司的文秘),就是將應用層的傳遞信息轉翻譯成英文。同時為了防止其他公司看到,公司A的人也會對這份報價單做一些加密的處理。這就是表示的作用,將應用層的數據轉換翻譯等。

                                                      

 

應用層:

        提供OSI用戶服務,例如事物處理程序、文件傳送協議和網絡管理等。

應用層也是OSI參考模型中最靠近用戶的一層,是為計算機用戶提供應用端口,也為用戶直接提供各種網絡服務。我們常見應用層的網絡服務協議有:HTTP、HTTPS、FTP、POP3、SMTP等。

 

協議:

 

        HTTP(80):超文本傳輸協議,提供瀏覽網頁服務

 

        Telnet(23):遠程登錄協議,提供遠程管理服務

 

        FTP(20、21):文件傳輸協議,提供互聯網文件資源共享服務

 

        SMTP(25):簡單郵件傳輸協議,提供互聯網電子郵件服務

 

        POP3(110):郵局協議,提供互聯網電子郵件服務

 

        TFTP(UDP:69):簡單文件傳輸協議,提供簡單的文件傳輸服務 

 

例:實際公司A的老板就是我們講述的用戶,而他要發送的商品報價單,就是應用層提供的一種網絡服務,當然,老板也可以選擇其他服務,比如說,發一份商品合同,發一份詢價單,等等。

 

                                                                

 

 

 

對等通信:為了使數據分組從源傳送到目的地,源端OSI模型的每一層都必須與目的端的對等層進行通信,這種通信方式稱為對等層通信。在每一層通信過程中,使用本層自己協議進行通信。

 

 

                                                           

 

廣域網在OSI模型中的運作

WAN在OSI模型中。

WAN操作主要集中在物理層(OSI層1)和數據鏈接層(OSI層2)。WAN訪問標准通常描述物理層的交付方式和數據鏈接層的要求。數據鏈接層的要求包括物理位置、流量控制和包裝。

WAN訪問標准由許多公認的組織定義和管理:

1.電信行業協會(TIA)

2.電子工業聯盟(EIA)

3.國際標准化組織(ISO)

4.電子工程師學習(IEEE)

第一層協議描述了如何為通信服務提供商提供電氣、機械、操作和功能連接服務。

第二層協議定義了如何將數據封裝到遠程位置和傳輸結果幀的機制。使用了各種技術,如點對點協議、幀中繼和異步傳輸模式。這些協議中的一些協議使用相同的基本框架或高級數據鏈控制的子集。

大部分WAN鏈接都是點對點的。所以一般不使用第二層幀中的地址字段。

通用WAN術語。

WAN和LAN的主要區別在於,公司或組織必須訂閱外部WAN服務提供商才能使用WAN運營商的網絡服務。WAN使用運營商服務提供的數據鏈接訪問互聯網,並連接組織的不同位置。這些數據鏈接也連接到其他組織、外部服務和遠程用戶。

WAN的物理層描述了公司網絡和服務提供商網絡之間的物理連接。圖1-13描述了通常用於描述WAN連接的術語:

1.客戶駐地設備(CPE):

CPE由企業邊緣的設備和內部布線構成,連接到運營商的鏈接。訂戶(即客戶)擁有CPE或向服務提供商租賃CPE。在這種情況下,訂戶是安排服務提供商提供WAN服務的公司。

2.數據通信設備(DCE):這是EIA術語。ITU也稱為數據電路終端設備。DCE由將數據放入本地電路的設備構成。DCE主要提供連接到WAN雲的通信鏈接的接口。

3.數據終端設備(DTE):這些客戶設備通過WAN傳輸來自客戶網絡或主機的數據。DTE通過DCE連接到本地電路。

四、分界點:這一點建在建築物或綜合建築物上,以便將客戶設備與服務提供商設備分開。從物理上講,分界點是電纜接線盒,它把CPE接線盒連接到本地環路上。通常放在技術人員容易訪問的地方。邊界點是連接責任由用戶改為服務提供商的場所。當出現問題時,有必要確定用戶或服務提供商是否負責故障排除或維護。

5.本地環路:該環路是將CPE連接到服務提供商CO的實際銅纜或光纜。局部環路有時也叫最后一英里。

6.中心局(CO):CO是將CPE連接到供應商網絡的當地服務供應商設施和建築物。

7.收費網絡:該網絡由WAN供應商網絡中的長途全數字光纖通信線路、開關、路由器等設備組成。 

 
 

 

 

 

 

 

                                                                                                                                                                                        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM