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以標準的形式定義了物理層接頭盒各種物理拓撲,讓不同的系統能夠彼此通訊。
工作在物理層的集線器
集線器實際上是一種多埠轉發器。轉發器接收數字訊號,進行放大或重建,然後透過所有活動埠將其轉發出去,而不檢視訊號表示的資料。這意味著與集線器相連的所有裝置都屬於同一個衝突域,也屬於同一個廣播域。
與轉發器一樣,集線器也不檢視進入的資料流,而只是將其轉發到物理介質的其他部分。與集線器相連的所有裝置都必須偵聽,看看是否有其他裝置在傳輸資料。使用集線器組建的是星型物理網路,其中集線器位於網路中央,電纜從集線器出發向各個方向延伸。