網絡基礎 : OSI參考模型
Overview
OSI規範的作用之一就是幫助在不同的主機之間傳輸數據。
OSI模型包含7層,它們分為兩組。
上面3層指定了終端中的應用程序如何彼此通信以及如何與用戶交流;
下面4層指定了如何進行端到端的數據傳輸。
上三層對聯網和網絡地址一無所知,那是下面4層的職責。
下面4層定義了數據是如何通過物理電纜、交換機和路由器進行傳輸的,它們還定義了如何重建從發送方主機到目標主機的應用程序的數據流。
下面的網絡設備都運行在OSI模型的全部7層上:
NMS(Network Management Station, 網絡管理工作站);
Web 和應用程序服務器;
網關(非默認網關);
網絡主機
各層功能示例:
應用層
OSI模型的應用層是用戶與計算機交流的場所。僅當需要訪問網絡時,這一層才會發揮作用。比如IE,當訪問本地的html文件時,是不需要訪問應用層的。只有試圖通過http獲取html文檔,或使用FTP來下載文件時IE才會去訪問應用層。實際上,應用層讓應用程序能夠將信息沿協議棧向下傳輸,從而充當了應用程序和下一層之間的接口。換句話說,IE並不位於應用層中,而是在需要處理遠程資源時才與應用層協議交互。
應用層還負責確定目標通信方的可用性,並判斷是否有足夠的資源進行想要的通信。
這些任務很重要,因為計算機應用程序需要的不僅僅是桌面資源。通常,它們將結合使用多個網絡應用程序的通信組件,這樣的典型事例包括文件傳輸、電子郵件、遠程訪問、網絡管理活動以及信息查找。
應用層是實際應用程序之間的接口,這很重要。比如MS Word等應用程序並不位於應用層中,而是與應用層協議交互。
表示層
表示層因其用途而得名,它向應用層提供數據,並負責數據轉換和代碼格式。
(數據傳輸過程中使用的是傳輸格式,到達計算機後被轉換為應用程序能夠識別的格式)
從本質上說,該層是一個轉換器,提供編碼和轉換功能。一種成功的數據傳輸方法,是將數據轉換為標準格式再進行傳輸。計算機被配置成能夠接受這種通用格式的數據,然後將其轉換為本機格式以便讀取(例如,從EDCDIC轉換為ASCII)。通過提供轉換服務,表示層能夠確保從一個系統的應用層傳輸而來的數據可以被另一個系統的應用層讀取。
OSI制定了相關的協議標準,這些標準定義了如何格式化標準數據。諸如數據壓縮、解壓縮、加密和解密等任務都與表示層有關。有些表示層標準還涉及多媒體操作。
會話層
會話層負責在表示層實體之間建立、管理、終止會話,還對設備或節點之間的對話進行控制。它協調和組織系統之間的通信,為此提供了3種不同的模式:單工、半雙工和全雙工。總之,會話層的基本功能是將不同應用程序的數據分離。
傳輸層
傳輸層將數據進行分段並重組為數據流。位於傳輸層的服務將來自上層應用的數據進行分段和重組,並將它們合並到同一個數據流中。它們提供了端到端的數據傳輸服務,並可以在互聯網絡上的發送主機和目標主機之間建立邏輯連接。
如果您熟悉 TCP和UDP,就知道它們都運行在傳輸層。TCP是一種可靠的服務,而UPD是不可靠的。這意味著應用程序開發人員有更多的選擇,因為使用TCP/UDP協議時,他們可以在這兩種協議之間做出選擇。
傳輸層負責提供如下機制:對上層應用程序進行多路復用、建立會話以及拆除虛電路。它還提供透明的數據傳輸,從而對高層隱藏網絡的差異。
面向連接(可靠)的傳輸層協議
流量控制
數據完整性由傳輸層確保,這是通過流量控制以及允許應用程序請求在系統之間進行可靠的數據傳輸實現的。流量控制可以避免數據發送方導致的數據接收方緩沖區溢出問題。可靠的數據傳輸在系統之間使用面向連接的通信會話,而涉及的協議可以實現下面的目標:
收到數據後,向發送方進行確認;
重傳所有未得到確認的數據段;
數據段到底目的地後,按正確的順序排列它們;
確保數據流量不超過處理能力,以避免擁塞、過載和數據丟失。
(流量控制旨在提供一種機制,讓接收方能夠控制發送方發送的數據量。)
面向連接的通信
在可靠的傳輸操作中,要傳輸數據的設備建立一個到遠程設備的面向連接的通信會話。傳輸設備首先與其對等系統建立面向連接的會話,這稱為呼叫建立或三次握手,然後傳輸數據。傳輸完畢後,將進行呼叫終止,以拆除虛電路。
上圖描述了發送系統和接收系統之間進行的典型的可靠會話。由圖可知,兩臺主機的應用程序都首先要通知各自的操作系統去建立一條連接。兩個操作系統通過網絡發送消息,確認傳輸得到了批準其雙方已經準備就緒。這種必不可少的同步完成後,便建立了連接,接下來就可以傳輸數據了。
建立連接期間,兩臺主機定期地檢查對方,通過協議軟件進行通信,確保一切進展順利且正確地收到了數據。對三次握手的總結如下:
第一個是 “連接協定”數據段,用於請求同步。
接下來的數據段確認請求,並在主機之間確定連接參數。這些數據段也請求同步接收方的排序,以建立雙向連接。
最後一個數據段也是用來進行確認的,它通知目標主機連接協定已被接受且連接已建立。此時就可以開始傳輸數據了。
在面向連接的可靠數據傳輸中,數據報到達接收主機的順序與發送順序完全相同;如果順序被打亂,傳輸將失敗。如果在傳輸過程中,有任何數據段丟失、重復或受損,傳輸也將失敗。
如果傳輸服務具有以下特征,就表明它是面向連接(可靠)的:
建立虛電路(三次握手);
使用排序技術;
使用確認;
使用流量控制。
窗口技術
在理想情況下,數據傳輸快捷而高效。但是,如果傳輸方每發送完一個數據段後都必須等待確認,傳輸速度將變得緩慢。從發送方傳輸數據段到處理完畢來自接收方的確認之間有一段時間,發送方可以利用這段時間傳輸更多的數據。在收到確認之前,傳輸方可以發送的數據段數量(以字節為單位)稱為窗口。
窗口用於控制未確認的數據段數量。
窗口的大小控制了一方傳輸給另一方的信息量。當然,窗口的大小是可調的,如果未收到所有應確認的字節,接收方將縮小窗口以改善通信會話。
確認
可靠的數據傳輸依靠功能完整的數據鏈路,從而確保機器之間發送的數據流的完整性。它確保數據不會重復或丟失,這是通過肯定確認和重傳實現的,這種方法要求接收方在收到數據後向發送方發送一條確認消息。發送方記錄每個以字節為單位度量的數據段,將其發送後等待確認,而暫不發送下一段數據。發送數據段後,發送方啟動定時器,如果定時器到期後仍未收到接收方的確認,就重傳該數據段。
網絡層
網絡層管理設備編址、跟蹤設備在網絡中的位置並確定最佳的數據傳輸路徑,這意味著網絡層必須在位於不同網絡中的設備之間傳輸數據流。路由器位於網絡層,在互聯網絡中提供路由選擇服務。
路由的具體過程為:在其接口上收到分組後,路由器首先檢查分組的目標IP地址。如果分組的目的地不是當前路由器,路由器將在路由選擇表中查找目標網絡地址。選擇出站接口後,路由器將分組發送到該接口,或者將分組封裝成幀後在本地網絡中傳輸。如果在路由選擇表中找不到目標網絡對應的條目,路由器將丟棄分組。
在網絡層使用的分組有兩種:數據和路由更新。
數據分組:用於在互聯網絡中傳輸用戶數據。用於支持用戶數據的協議稱為路由協議。
路由更新分組:包含與有關互聯網絡中所有路由器連接的網絡的更新信息,用於將這些信息告知鄰接路由器。發送路由更新分組的協議稱為路由選擇協議,一些常見的路由選擇協議包括 RIP、RIPv2、EIGRP和OSPF。路由更新分組用於幫助每臺路由器建立和維護路由選擇表。
下圖是一個路由選擇表:
路由器使用的路由選擇表包含如下信息:
網絡地址: 隨協議而異的網絡地址。對於每種路由協議,路由器都必須為其維護一個路由選擇表,因為每種路由協議都以不同的編址方案(如 IP、 IPv6 和 IPX)跟蹤網絡。
接口:前往特定網絡時,將為分組選擇的出站接口。
度量值:到遠程網絡的距離。不同的路由選擇協議使用不同的方式計算這種距離。有些路由選擇協議(具體地說是 RIP)使用跳數(分組前往遠程網絡時穿越的路由器數量),而有些路由選擇協議使用帶寬、線路延遲甚至滴嗒數。
下圖說明了路由器在互聯網絡中扮演的角色。
對於路由器,您必須牢記如下要點:
默認情況下,路由器不轉發任何廣播分組和組播分組;
路由器根據網絡層報頭中的邏輯地址確定將分組轉發到下一跳路由器;
路由器可以使用管理員創建的訪問控制列表控制可進出接口的分組類型,以提高安全性。
必要時,路由器可以在同一個接口提供第2層橋接功能和路由功能。
第3層設備(這裏指的是路由器)在虛擬LAN(VLAN)之間提供連接。
路由器可以為特定類型的網絡數據流提供QoS(Quality of Service,服務質量)。
數據鏈路層
數據鏈路層提供數據的物理傳輸,並處理錯誤通知、網絡拓撲和流量控制。這意味著數據鏈路層將使用硬件地址確保報文被傳輸到LAN中的正確設備,還將把來自網絡層的報文轉換為比特,供物理層傳輸。
數據鏈路層將報文封裝成數據幀,並添加定制的報頭,其中包含目標硬件地址和源的硬件地址。這些添加的信息位於原始報文周圍,形成“小容器”。
下圖顯示了數據鏈路層以及以太網和IEEE規範:
路由器運行在網絡層,根本不關心主機位於什麽地方,而只關心網絡(包括遠程網絡)位於什麽地方以及前往這些網絡(包括遠程網絡)的最佳路徑!路由器只關心網絡,這是好事!對本地網絡中每臺設備進行唯一標識的工作由數據鏈路層負責。
數據鏈路層使用硬件地址,讓主機能夠給本地網絡中的其他主機發送分組以及穿越路由器發送分組。每當在路由器之間傳輸分組時,分組都將被使用數據鏈路層控制信息封裝成幀,但接收路由器會將這些信息剝離,只保留完整的原始分組。在每一跳都將重復這種將分組封裝成幀的過程,知道分組最終到達正確的接收主機。在整個傳輸過程中,分組本身從未被修改過,而只是被必要的控制信息封裝,以便能夠通過不同的介質進行傳輸,這一點至關重要。
IEEE以太網數據鏈路層包含兩個子層:
介質訪問控制(MAC)子層(802.3)
它定義了如何通過介質傳輸分組。它采用“先到先服務”的訪問方式,帶寬由大家共享,因此稱為竟用介質訪問(contention media access)。這個子層定義了物理地址和邏輯拓撲。什麽是邏輯拓撲呢?它指的是信號在物理拓撲中的測試路徑。在這個子層,還可以使用線路控制、錯誤通知(不糾錯)、順序傳遞幀以及可選的流量控制。
邏輯鏈路控制(LLC)子層(802.2)
它負責識別網絡層協議並對其進行封裝。LLC報頭告訴數據鏈路層收到幀後如何對分組進行處理。其工作原理類似於:收到幀後,主機查看LLC報頭以確定要將分組交給誰--如網絡層的IP協議。LLC還可以提供流量控制以及控制比特排序。
交換機和網橋都工作在數據鏈路層,它們根據硬件(MAC)地址過濾網絡。下面我們將進行詳細的介紹。
工作在數據鏈路層的交換機和網橋
第2層交換被認為是基於硬件的橋接,因為它使用稱為ASIC(Application-specific Integrated Circuit,專用集成電路)的特殊硬件。因此不僅速度高,而且延遲非常低(延遲指的是從幀進入端口到離開端口之間的時間)。
網橋和交換機讀取通過網絡傳輸的每個幀,然後這些第二層設備將源硬件地址加入過濾表中,以跟蹤幀是從哪個端口收到的。這些記錄在網橋或交換機過濾表中的信息將幫助確定發送設備的位置。
雖然第二層設備和第三層設備都需要了解網絡,但它們關心的重點截然不同。第三層設備(路由器)需要確定網絡的位置,而第二層設備(交換機和網橋)需要確定設備的位置。因此,網絡之於路由器猶如設備之於交換機和網橋,而提供了互聯網絡地圖的路由選擇表之於路由器猶如提供了設備地圖的過濾表之於交換機和網橋。
建立過濾表後,第二層設備將只把幀轉發到目標硬件地址所屬的網段:如果目標設備與發送設備位於同一個網段,第二層設備將禁止幀進入其他網段;如果目標設備位於另一個網段,幀將只傳輸到該網段。這稱為透明橋接。
交換機接口收到幀後,如果在過濾表中找不到其目標硬件地址,交換機將把幀轉發到所有網段。如果有未知設備對這種轉發操作作出應答,交換機將更新其過濾表中有個該設備位置的信息。然而,如果幀的目標地址為廣播地址,交換機將默認把所有廣播轉發給與之相連的所有網段。
接收廣播的所有設備都位於同一個廣播域中,這就是:第二層設備傳播第二層廣播風暴,這會極大的降低網絡性能。要阻止廣播風暴在互聯網絡中傳播,唯一的辦法是使用第三層設備--路由器。
在互聯網絡中,使用交換機而不是集線器的最大好處是,每個交換機端口都屬於不同的沖突域,而集線器形成一個大型的沖突域。然而,即便使用了交換機,默認仍不能分割廣播域。交換機和網橋都沒有這樣的功能,相反它們轉發所有的廣播。
相對於以集線器為中心的實現來說,LAN交換的另一個優點是,與交換機相連的每個網段中的每臺設備都能同時傳輸(至少在每個交換機端口只連接一臺主機,而沒有連接集線器的情況下是這樣的)。在使用集線器時,每個網段不能有多臺設備同時通信。
物理層
物理層有兩項功能:發送和接收比特。比特的取值只能為0或1。物理層直接與各種通信介質交流。不同類型的介質以不同方式表示比特值,有些使用音調,有些使用狀態切換--從高電平變成低電平以及從低電平變成高電平。對於每種類型的介質,都需要特定的協議,這些協議描述了正確的比特模式、如何將數據編碼成介質信號以及物理介質連接頭的各種特征。
物理層定義了要在終端系統之間激活、維護和斷開物理鏈路,而需要滿足的電氣、機械、規程和功能需求,還讓你能夠確定DIE(Data Terminal Equipment,數據終端設備)和DCE(Data Communication Equipment,數據通信設備)之間的接口。DCE通常位於服務提供商處,而DTE是與之相連的設備。通常情況下,DTE通過調制解調器或CSU/DSU(Channel Service Unit/Data Service Unit,信道服務單元/數據服務單元)使用可用的服務。
OSI以標準的形式定義了物理層接頭盒各種物理拓撲,讓不同的系統能夠彼此通信。
工作在物理層的集線器
集線器實際上是一種多端口轉發器。轉發器接收數字信號,進行放大或重建,然後通過所有活動端口將其轉發出去,而不查看信號表示的數據。這意味著與集線器相連的所有設備都屬於同一個沖突域,也屬於同一個廣播域。
與轉發器一樣,集線器也不查看進入的數據流,而只是將其轉發到物理介質的其他部分。與集線器相連的所有設備都必須偵聽,看看是否有其他設備在傳輸數據。使用集線器組建的是星型物理網絡,其中集線器位於網絡中央,電纜從集線器出發向各個方向延伸。
網絡基礎 : OSI參考模型