最近又看到這個七層模型了,一直都記不住這個七層模型,就算背住了也很快忘記。主要原因還是因為沒有真實的使用場景,也沒能了解其中的原理。但是這個東西是計算機網絡的基礎,既然碰巧看到就順便整理一下吧。很多知識的梳理都是通過文章來了解貫通的,是以在計算機開發中對于技術的應用對敲代碼;對于抽象的知識多寫文章,自然而然的就懂了。
關于七層模型的介紹
七層模型,也稱為OSI(Open System Interconnection)參考模型,是國際标準化組織(ISO)制定的一個用于計算機或通訊系統間互聯的标準體系。它是一個七層的、抽象的模型體,不僅包括一系列抽象的術語或概念,也包括具體的協定。
ISO 就是 Internationalization Standard Organization(國際标準組織)。
起源
看一下OSI的起源和出現過程還是挺有意思的。
OSI的大部分設計工作實際上隻是Honeywell Information System公司的一個小組完成的,小組的技術負責人是Charlie Bachman。在70年代中期,這個小組主要是為了開發一些原型系統而成立的,主要關注資料庫系統的設計。
70年代中,為了支援資料庫系統的通路,需要一個結構化的分布式通信系統體系結構。于是這個小組研究了現有的一些解決方案,其中包括IBM公司的SNA(System Network Architecture)、ARPANET(Internet的前身)的協定、以及為标準化的資料庫正在研究中的一些表示服務(presentation services)的相關概念,在1977年提出了一個七層的體系結構模型,他們内部稱之為分布式系統體系結構(DSA)。
與此同時,1977年英國标準化協會向國際标準化組織(ISO)提議,為了定義分布處理之間的通信基礎設施,需要一個标準的體系結構。結果,ISO就開放系統互聯(OSI)問題成立了一個專委會(TC 97, Subcomittee 16),指定由美國國家标準協會(ANSI)開發一個标準草案,在專委會第一次正式會議之前送出。Bachman 參加了ANSI早期的會議,并送出了他的七層模型,這個模型就成了送出ISO專委會的唯一的一份草案。
1978年3月,在ISO的OSI專委會在華盛頓召開的會議上,與會專家很快達成了共識,認為這個分層的體系結構能夠滿足開放式系統的大多數需求,而且具有可擴充的能力,能夠滿足新的需求。于是,1978年釋出了這個臨時版本,1979年稍作細化之後,成了最終的版本。是以,OSI模型和1977年DSA模型基本相同。
模型優點
建立七層模型的主要目的是為解決異種網絡互連時所遇到的相容性問題。它的最大優點是将服務、接口和協定這三個概念明确地區分開來:服務說明某一層為上一層提供一些什麼功能,接口說明上一層如何使用下層的服務,而協定涉及如何實作本層的服務;這樣各層之間具有很強的獨立性,互連網絡中各實體采用什麼樣的協定是沒有限制的,隻要向上提供相同的服務并且不改變相鄰層的接口就可以了。網絡七層的劃分也是為了使網絡的不同功能子產品(不同層次)分擔起不同的職責,進而帶來如下好處:
● 減輕問題的複雜程度,一旦網絡發生故障,可迅速定位故障所處層次,便于查找和糾錯;
● 在各層分别定義标準接口,使具備相同對等層的不同網絡裝置能實作互操作,各層之間則相對獨立,一種高層協定可放在多種低層協定上運作;
● 能有效刺激網絡技術革新,因為每次更新都可以在小範圍内進行,不需對整個網絡動大手術;
● 便于研究和教學。
詳細介紹
OSI中的上面4層(應用層、表示層、會話層、傳輸層)為高層,定義了程式的功能;下面3層(網絡層、資料鍊路層、實體層)為低層,主要是處理面向網絡的端到端資料流。
有一張網絡圖,我覺得總結的很好:
應用層(Application Layer)
應用層是最靠近使用者的OSI層。這一層為使用者的應用程式(例如電子郵件、檔案傳輸和終端仿真)提供網絡服務。。
協定有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP等。
應用層也稱為應用實體(AE),它由若幹個特定應用服務元素(SASE)和一個或多個公用應用服務元素(CASE)組成。每個SASE提供特定的應用服務,例如檔案運輸通路和管理(FTAM)、電子文電處理(MHS)、虛拟終端協定(VAP)等。CASE提供一組公用的應用服務,例如聯系控制服務元素(ACSE)、可靠運輸服務元素(RTSE)和遠端操作服務元素(ROSE)等。主要負責對軟體提供接口以使程式能使用網絡服務。術語“應用層”并不是指運作在網絡上的某個特别應用程式 ,應用層提供的服務包括檔案傳輸、檔案管理以及電子郵件的資訊處理。
表示層(Presentation Layer)
資料的表示、安全、壓縮。可確定一個系統的應用層所發送的資訊可以被另一個系統的應用層讀取。
格式有:JPEG、ASCll、DECOIC、加密格式等。
應用程式和網絡之間的翻譯官,在表示層,資料将按照網絡能了解的方案進行格式化;這種格式化也因所使用網絡的類型不同而不同。
表示層管理資料的解密與加密,如系統密碼的處理。例如:在 Internet上查詢你銀行賬戶,使用的即是一種安全連接配接。你的賬戶資料在發送前被加密,在網絡的另一端,表示層将對接收到的資料解密。除此之外,表示層協定還對圖檔和檔案格式資訊進行解碼和編碼。
會話層(Session Layer)
建立、管理、終止會話,對應主機程序,指本地主機與遠端主機正在進行的會話。
通過傳輸層(端口号:傳輸端口與接收端口)建立資料傳輸的通路。主要在你的系統之間發起會話或者接受會話請求(裝置之間需要互相認識可以是IP也可以是MAC或者是主機名)。
負責在網絡中的兩節點之間建立、維持和終止通信。 會話層的功能包括:建立通信連結,保持會話過程通信連結的暢通,同步兩個節點之間的對話,決定通信是否被中斷以及通信中斷時決定從何處重新發送。
你可能常常聽到有人把會話層稱作網絡通信的“交通警察”。當通過撥号向你的 ISP (網際網路服務提供商)請求連接配接到網際網路時,ISP 伺服器上的會話層向你與你的 PC 客戶機上的會話層進行協商連接配接。若你的電話線偶然從牆上插孔脫落時,你終端機上的會話層将檢測到連接配接中斷并重新發起連接配接。會話層通過決定節點通信的優先級和通信時間的長短來設定通信期限。
傳輸層(Transport Layer)
定義傳輸資料的協定端口号,以及流控和差錯校驗。
協定有:TCP UDP等,資料包一旦離開網卡即進入網絡傳輸層。
定義了一些傳輸資料的協定和端口号(WWW端口80等),如:TCP(傳輸控制協定,傳輸效率低,可靠性強,用于傳輸可靠性要求高,資料量大的資料),UDP(使用者資料報協定,與TCP特性恰恰相反,用于傳輸可靠性要求不高,資料量小的資料,如QQ聊天資料就是通過這種方式傳輸的)。 主要是将從下層接收的資料進行分段和傳輸,到達目的位址後再進行重組。常常把這一層資料叫做段。
O S I 模型中最重要的一層。傳輸協定同時進行流量控制或是基于接收方可接收資料的快慢程度規定适當的發送速率。除此之外,傳輸層按照網絡能處理的最大尺寸将較長的資料包進行強制分割。例如,以太網無法接收大于1 5 0 0 位元組的資料包。發送方節點的傳輸層将資料分割成較小的資料片,同時對每一資料片安排一序列号,以便資料到達接收方節點的傳輸層時,能以正确的順序重組。該過程即被稱為排序。工作在傳輸層的一種服務是 T C P / I P 協定套中的T C P (傳輸控制協定),另一項傳輸層服務是I P X / S P X 協定集的S P X (序列包交換)。
網絡層(Network Layer)
進行邏輯位址尋址,實作不同網絡之間的路徑選擇。
協定有:ICMP IGMP IP(IPV4 IPV6) ARP RARP等。
在位于不同地理位置的網絡中的兩個主機系統之間提供連接配接和路徑選擇。Internet的發展使得從世界各站點通路資訊的使用者數大大增加,而網絡層正是管理這種連接配接的層。
O S I 模型的第三層,其主要功能是将網絡位址翻譯成對應的實體位址,并決定如何将資料從發送方路由到接收方。
網絡層通過綜合考慮發送優先權、網絡擁塞程度、服務品質以及可選路由的花費來決定從一個網絡中節點A 到另一個網絡中節點B 的最佳路徑。由于網絡層處理,并智能指導資料傳送,路由器連接配接網絡各段,是以路由器屬于網絡層。在網絡中,“路由”是基于編址方案、使用模式以及可達性來指引資料的發送。
網絡層負責在源機器和目标機器之間建立它們所使用的路由。這一層本身沒有任何錯誤檢測和修正機制,是以,網絡層必須依賴于端端之間的由D L L提供的可靠傳輸服務。
網絡層用于本地L A N網段之上的計算機系統建立通信,它之是以可以這樣做,是因為它有自己的路由位址結構,這種結構與第二層機器位址是分開的、獨立的。這種協定稱為路由或可路由協定。路由協定包括I P、N o v e l l公司的I P X以及A p p l e Ta l k協定。
網絡層是可選的,它隻用于當兩個計算機系統處于不同的由路由器分割開的網段這種情況,或者當通信應用要求某種網絡層或傳輸層提供的服務、特性或者能力時。例如,當兩台主機處于同一個L A N網段的直接相連這種情況,它們之間的通信隻使用L A N的通信機制就可以了(即OSI 參考模型的一二層)。
資料鍊路層(Datalink Layer)
建立邏輯連接配接、進行硬體位址尋址、差錯校驗等功能。(由底層網絡定義協定)
将比特組合成位元組進而組合成幀,用MAC位址通路媒體,錯誤發現但不能糾正。
資料鍊路層協定的代表包括:SDLC、HDLC、PPP、STP、幀中繼等。
定義了如何讓格式化資料以進行傳輸,以及如何讓控制對實體媒體的通路。這一層通常還提供錯誤檢測和糾正,以確定資料的可靠傳輸。
OSI模型的第二層,它控制網絡層與實體層之間的通信。它的主要功能是如何在不可靠的實體線路上進行資料的可靠傳遞。為了保證傳輸,從網絡層接收到的資料被分割成特定的可被實體層傳輸的幀。幀是用來移動資料的結構包,它不僅包括原始資料,還包括發送方和接收方的實體位址以及檢錯和控制資訊。其中的位址确定了幀将發送到何處,而糾錯和控制資訊則確定幀無差錯到達。 如果在傳送資料時,接收點檢測到所傳資料中有差錯,就要通知發送方重發這一幀。
資料鍊路層的功能獨立于網絡和它的節點和所采用的實體層類型,它也不關心是否正在運作 Wo r d 、E x c e l 或使用I n t e r n e t 。有一些連接配接裝置,如交換機,由于它們要對幀解碼并使用幀資訊将資料發送到正确的接收方,是以它們是工作在資料鍊路層的。
資料鍊路層(DataLinkLayer):在實體層提供比特流服務的基礎上,建立相鄰結點之間的資料鍊路,通過差錯控制提供資料幀(Frame)在信道上無差錯的傳輸,并進行各電路上的動作系列。
資料鍊路層在不可靠的實體媒體上提供可靠的傳輸。該層的作用包括:實體位址尋址、資料的成幀、流量控制、資料的檢錯、重發等。
實體層(Physical Layer)
建立、維護、斷開實體連接配接。(由底層網絡定義協定)
主要定義實體裝置标準,如網線的接口類型、光纖的接口類型、各種傳輸媒體的傳輸速率等。它的主要作用是傳輸比特流(就是由1、0轉化為電流強弱來進行傳輸,到達目的地後在轉化為1、0,也就是我們常說的數模轉換與模數轉換)。這一層的資料叫做比特。
O S I 模型的最低層或第一層,該層包括實體連網媒介,如電纜連線連接配接器。實體層的協定産生并檢測電壓以便發送和接收攜帶資料的信号。在你的桌面P C 上插入網絡接口卡,你就建立了計算機連網的基礎。換言之,你提供了一個實體層。盡管實體層不提供糾錯服務,但它能夠設定資料傳輸速率并監測資料出錯率。網絡實體問題,如電線斷開,将影響實體層。 使用者要傳遞資訊就要利用一些實體媒體,如雙絞線、同軸電纜等,但具體的實體媒體并不在OSI的7層之内,有人把實體媒體當做第0層,實體層的任務就是為它的上一層提供一個實體連接配接,以及它們的機械、電氣、功能和過程特性。如規定使用電纜和接頭的類型、傳送信号的電壓等。在這一層,資料還沒有被組織,僅作為原始的位流或電氣電壓處理,機關是bit比特。
補充知識
一個裝置工作在哪一層,關鍵看它工作時利用哪一層的資料頭部資訊。網橋工作時,是以MAC頭部來決定轉發端口的,是以顯然它是資料鍊路層的裝置。
具體說:
實體層:網卡,網線,集線器,中繼器,數據機
資料鍊路層:網橋,交換機
網絡層:路由器
網關工作在第四層傳輸層及其以上。
集線器是實體層裝置,采用廣播的形式來傳輸資訊。
交換機就是用來進行封包交換的機器。多為鍊路層裝置(二層交換機),能夠進行位址學習,采用存儲轉發的形式來交換封包.。
路由器的一個作用是連通不同的網絡,另一個作用是選擇資訊傳送的線路。選擇通暢快捷的近路,能大大提高通信速度,減輕網絡系統通信負荷,節約網絡系統資源,提高網絡系統暢通率。
交換機和路由器的差別
交換機擁有一條很高帶寬的背部總線和内部交換矩陣。交換機的所有的端口都挂接在這條總線上,控制電路收到資料包以後,處理端口會查找記憶體中的位址對照表以确定目的MAC(網卡的硬體位址)的NIC(網卡)挂接在哪個端口上,通過内部交換矩陣迅速将資料包傳送到目的端口,目的MAC若不存在則廣播到所有的端口,接收端口回應後交換機會“學習”新的位址,并把它添加入内部MAC位址表中。
使用交換機也可以把網絡“分段”,通過對照MAC位址表,交換機隻允許必要的網絡流量通過交換機。通過交換機的過濾和轉發,可以有效的隔離廣播風暴,減少誤包和錯包的出現,避免共享沖突。
交換機在同一時刻可進行多個端口對之間的資料傳輸。每一端口都可視為獨立的網段,連接配接在其上的網絡裝置獨自享有全部的帶寬,無須同其他裝置競争使用。當節點A向節點D發送資料時,節點B可同時向節點C發送資料,而且這兩個傳輸都享有網絡的全部帶寬,都有着自己的虛拟連接配接。假使這裡使用的是10Mbps的以太網交換機,那麼該交換機這時的總流通量就等于2×10Mbps=20Mbps,而使用10Mbps的共享式HUB時,一個HUB的總流通量也不會超出10Mbps。
總之,交換機是一種基于MAC位址識别,能完成封裝轉發資料包功能的網絡裝置。交換機可以“學習”MAC位址,并把其存放在内部位址表中,通過在資料幀的始發者和目标接收者之間建立臨時的交換路徑,使資料幀直接由源位址到達目的位址。
從過濾網絡流量的角度來看,路由器的作用與交換機和網橋非常相似。但是與工作在網絡實體層,從實體上劃分網段的交換機不同,路由器使用專門的軟體協定從邏輯上對整個網絡進行劃分。例如,一台支援IP協定的路由器可以把網絡劃分成多個子網段,隻有指向特殊IP位址的網絡流量才可以通過路由器。對于每一個接收到的資料包,路由器都會重新計算其校驗值,并寫入新的實體位址。是以,使用路由器轉發和過濾資料的速度往往要比隻檢視資料包實體位址的交換機慢。但是,對于那些結構複雜的網絡,使用路由器可以提高網絡的整體效率。路由器的另外一個明顯優勢就是可以自動過濾網絡廣播。
集線器與路由器在功能上有什麼不同?
首先說HUB,也就是集線器。它的作用可以簡單的了解為将一些機器連接配接起來組成一個區域網路。而交換機(又名交換式集線器)作用與集線器大體相同。但是兩者在性能上有差別:集線器采用的式共享帶寬的工作方式,而交換機是獨享帶寬。這樣在機器很多或資料量很大時,兩者将會有比較明顯的。而路由器與以上兩者有明顯差別,它的作用在于連接配接不同的網段并且找到網絡中資料傳輸最合适的路徑。路由器是産生于交換機之後,就像交換機産生于集線器之後,是以路由器與交換機也有一定聯系,不是完全獨立的兩種裝置。路由器主要克服了交換機不能路由轉發資料包的不足。
總的來說,路由器與交換機的主要差別展現在以下幾個方面:
(1)工作層次不同
最初的的交換機是工作在資料鍊路層,而路由器一開始就設計工作在網絡層。由于交換機工作在資料鍊路層,是以它的工作原理比較簡單,而路由器工作在網絡層,可以得到更多的協定資訊,路由器可以做出更加智能的轉發決策。
(2)資料轉發所依據的對象不同
交換機是利用實體位址或者說MAC位址來确定轉發資料的目的位址。而路由器則是利用IP位址來确定資料轉發的位址。IP位址是在軟體中實作的,描述的是裝置所在的網絡。MAC位址通常是硬體自帶的,由網卡生産商來配置設定的,而且已經固化到了網卡中去,一般來說是不可更改的。而IP位址則通常由網絡管理者或系統自動配置設定。
(3)傳統的交換機隻能分割沖突域,不能分割廣播域;而路由器可以分割廣播域
由交換機連接配接的網段仍屬于同一個廣播域,廣播資料包會在交換機連接配接的所有網段上傳播,在某些情況下會導緻通信擁擠和安全漏洞。連接配接到路由器上的網段會被配置設定成不同的廣播域,廣播資料不會穿過路由器。雖然第三層以上交換機具有VLAN功能,也可以分割廣播域,但是各子廣播域之間是不能通信交流的,它們之間的交流仍然需要路由器。
(4)路由器提供了防火牆的服務
路由器僅僅轉發特定位址的資料包,不傳送不支援路由協定的資料包傳送和未知目标網絡資料包的傳送,進而可以防止廣播風暴。
資料來源:
百度百科:七層模型
TCP/IP四層模型和OSI七層模型的概念
OSI七層模型詳解