OSI起源
1969年12月,美國國防部高級計畫研究署的分組交換網ARPANET投入運行,從此計算機網路發展進入新紀元。ARPANET當時僅有4個結點,分別在美國國防部、原子能委員會、麻省理工學院和加利福尼亞。這4台計算機之間進行數據通信僅有傳送數據的通路是不夠的,還必須遵守一些事先約定好的規則,由這些規則明確所交換數據的格式及有關同步問題。
ARPANET的實踐經驗表明對於非常複雜的計算機網路而言,其結構最好是採用層次型的。根據這一特點,國際標準化組織ISO推出了開放系統互聯參考模型(Open System Interconnect Reference Model,ISO-OSI RM)。該模型定義了不同計算機互聯的標準,是設計和描述計算機網路通信的基本框架。開放系統互聯參考模型的系統結構共分7層。在該模型中層與層之間進行對等通信,且這種通信只是邏輯上的,真正的通信都是在最底層-物理層實現的,每一層要完成相應的功能,下一層為上一層提供服務,從而把複雜的通信過程分成了多個獨立的、比較容易解決的子問題。
OSI在一開始是由ISO來制定,但後來的許多標準都是ISO與CCITT聯合制定的。
OSI/RM
OSI/RM(Open System Interconnection Reference Model)即開放系統互聯基本參考模型。開放,是指非壟斷的。系統是指現實的系統中與互聯有關的各部分。
世界上第一個網路體系結構由IBM公司提出(1974年,SNA),以後其他公司也相繼提出自己的網路體系結構如:Digital公司的DNA,美國國防部的TCP/IP等,多種網路體系結構並存,其結果是若採用IBM的結構,只能選用IBM的產品,只能與同種結構的網路互聯。
為了促進計算機網路的發展,國際標準化組織ISO於1977年成立了一個委員會,在現有網路的基礎上,提出了不基於具體機型、作業系統或公司的網路體系結構,稱為開放系統互聯模型。
設計目的
OSI模型的設計目的是成為一個所有銷售商都能實現的開放網路模型,來克服使用眾多私有網路模型所帶來的困難和低效性。OSI是在一個備受尊敬的國際標準團體的參與下完成的,這個組織就是ISO(國際標準化組織)。什麼是OSI,OSI是Open System Interconnection 的縮寫,意為開放式系統互聯參考模型。在OSI出現之前,計算機網路中存在眾多的體系結構,其中以IBM公司的SNA(Systems Network Architecture,系統網路體系結構)和DEC公司的DNA(Digital Network Architecture,數字網路體系結構)最為著名。為了解決不同體系結構的網路的互聯問題,國際標準化組織ISO(注意不要與OSI搞混)於1981年制定了開放系統互連參考模型(Open System Interconnection Reference Model,OSI/RM)。這個模型把網路通信的工作分為7層,它們由低到高分別是物理層(Physical Layer),數據鏈路層(Data Link Layer),網路層(Network Layer),傳輸層(Transport Layer),會話層(Session Layer),表示層(Presentation Layer)和套用層(Application Layer)。第一層到第三層屬於OSI參考模型的低三層,負責創建網路通信連線的鏈路;第五層到第七層為OSI參考模型的高三層,具體負責端到端的數據通信;第四層負責高低層的連線。每層完成一定的功能,每層都直接為其上層提供服務,並且所有層次都互相支持,而網路通信則可以自上而下(在傳送端)或者自下而上(在接收端)雙向進行。當然並不是每一通信都需要經過OSI的全部七層,有的甚至只需要雙方對應的某一層即可。物理接口之間的轉接,以及中繼器與中繼器之間的連線就只需在物理層中進行即可;而路由器與路由器之間的連線則只需經過網路層以下的三層即可。總的來說,雙方的通信是在對等層次上進行的,不能在不對稱層次上進行通信。
OSI 標準制定過程中採用的方法是將整個龐大而複雜的問題劃分為若干個容易處理的小問題,這就是分層的體系結構辦法。在OSI中,採用了三級抽象,即體系結構,服務定義,協定規格說明。
為方便記憶可以將七層從高到低視為:All People Seem To Need Data Processing。每一個大寫字母與七層名稱頭一個字母相對應。
分層原則
網路中各結點都有相同的層次
不同結點相同層次具有相同的功能
同一結點相鄰層間通過接口通信
每一層可以使用下層提供的服務,並向上層提供服務
不同結點的同等層間通過協定來實現對等層間的通信
OSI/RM分層
對等層實體間通信時信息的流動過程
對等層通信的實質:
對等層實體之間虛擬通信;下層向上層提供服務;實際通信在最底層完成;傳送方數據由最高層逐漸向下層傳遞,到接收方數據由最低層逐漸向高層傳遞。
協定數據單元PDU
OSI參考模型中,對等層協定之間交換的信息單元統稱為協定數據單元(PDU,Protocol Data Unit)。
而傳輸層及以下各層的PDU另外還有各自特定的名稱:
傳輸層——數據段(Segment)
網路層——分組(數據包)(Packet)
數據鏈路層——數據幀(Frame)
物理層——比特(Bit)
七層結構
具體7層 | 數據格式 | 功能與連線方式 | 典型設備 |
套用層 Application | 數據ATPU | 網路服務與使用者應用程式間的一個接口 | 終端設備(PC、手機、平板等) |
表示層 Presentation | 數據PTPU | 數據表示、數據安全、數據壓縮 | 終端設備(PC、手機、平板等) |
會話層 Session | 數據DTPU | 會話層連線到傳輸層的映射;會話連線的流量控制;數據傳輸;會話連線恢復與釋放;會話連線管理、差錯控制 | 終端設備(PC、手機、平板等) |
傳輸層 Transport | 數據組織成數據段Segment | 用一個定址機制來標識一個特定的應用程式(連線埠號) | 終端設備(PC、手機、平板等) |
網路層 Network | 分割和重新組合數據包Packet | 基於網路層地址(IP位址)進行不同網路系統間的路徑選擇 | 網關、路由器 |
數據鏈路層 Data Link | 將比特信息封裝成數據幀Frame | 在物理層上建立、撤銷、標識邏輯連結和鏈路復用 以及差錯校驗等功能。通過使用接收系統的硬體地址或物理地址來定址 | 網橋、交換機 |
物理層Physical | 傳輸比特(bit)流 | 建立、維護和取消物理連線 | 光纖、同軸電纜、 雙絞線、網卡、中繼器、集線器 |
1.物理層(Physical Layer)
物理層是OSI分層結構體系中最重要、最基礎的一層,它建立在傳輸媒介基礎上,起建立、維護和取消物理連線作用,實現設備之間的物理接口。物理層只接收和傳送一串比特(bit)流,不考慮信息的意義和信息結構。
物理層包括對連線到網路上的設備描述其各種機械的、電氣的、功能的規定。具體地講,機械特性規定了網路連線時所需接外掛程式的規格尺寸、引腳數量和排列情況等;電氣特性規定了在物理連線上傳輸bit流時線路上信號電平的大小、阻抗匹配、傳輸速率距離限制等;功能特性是指對各個信號先分配確切的信號含義,即定義了DTE(數據終端設備)和DCE(數據通信設備)之間各個線路的功能;過程特性定義了利用信號線進行bit流傳輸的一組操作規程,是指在物理連線的建立、維護、交換信息時,DTE和DCE雙方在各電路上的動作系列。物理層的數據單位是位。
屬於物理層定義的典型規範代表包括:EIA/TIARS-232、EIA/TIARS-449、V.35、RJ-45等。
物理層的主要功能:
·為數據端設備提供傳送數據的通路,數據通路可以是一個物理媒體,也可以是多個物理媒體連線而成。一次完整的數據傳輸,包括激活物理連線,傳送數據,終止物理連線。所謂激活,就是不管有多少物理媒體參與,都要在通信的兩個數據終端設備間連線起來,形成一條通路。
·傳輸數據。物理層要形成適合數據傳輸需要的實體,為數據傳送服務:
一、保證數據按位傳輸的正確性;
二、向數據鏈路層提供一個透明的位傳輸;
三、提供足夠的頻寬(頻寬是指每秒鐘內能通過的比特(BIT)數),以減少信道上的擁塞。傳輸數據的方式能滿足點到點,一點到多點,串列或並行,半雙工或全雙工,同步或異步傳輸的需要。
完成物理層的一些管理工作,如在數據終端設備、數據通信和交換設備等設備之間完成對數據鏈路的建立、保持和拆除操作。
物理層的典型設備:光纖、同軸電纜、雙絞線、中繼器和集線器
2. 數據鏈路層(Data Link Layer)
在物理層提供比特流服務的基礎上,將比特信息封裝成數據幀Frame,起到在物理層上建立、撤銷、標識邏輯連結和鏈路復用以及差錯校驗等功能。通過使用接收系統的硬體地址或物理地址來定址。建立相鄰結點之間的數據鏈路,通過差錯控制提供數據幀(Frame)在信道上無差錯的傳輸,同時為其上面的網路層提供有效的服務。
數據鏈路層在不可靠的物理介質上提供可靠的傳輸。該層的作用包括:物理地址定址、數據的成幀、流量控制、數據的檢錯、重發等。
在這一層,數據的單位稱為幀(frame)。
數據鏈路層協定的代表包括:SDLC、HDLC、PPP、STP、幀中繼等。
鏈路層的主要功能:
·鏈路層的功能是實現系統實體間二進制信息塊的正確傳輸
·為網路層提供可靠無錯誤的數據信息
·在數據鏈路中解決信息模式、操作模式、差錯控制、流量控制、信息交換過程和通信控制規程的問題
鏈路層是為網路層提供數據傳送服務的,這種服務要依靠本層具備的功能來實現。鏈路層應具備如下功能:
·鏈路連線的建立,拆除,分離。
·幀定界和幀同步。鏈路層的數據傳輸單元是幀,協定不同,幀的長短和界面也有差別,但無論如何必須對幀進行定界。
·順序控制,指對幀的收發順序的控制。
·差錯檢測和恢復。還有鏈路標識,流量控制等等。差錯檢測多用方陣碼校驗和循環碼校驗來檢測信道上數據的誤碼,而幀丟失等用序號檢測。各種錯誤的恢復則常靠反饋重發技術來完成。
數據鏈路層的典型設備:二層交換機、網橋、網卡
3.網路層(Network Layer)
網路層也稱通信子網層,是高層協定之間的界面層,用於控制通信子網的操作,是通信子網與資源子網的接口。在計算機網路中進行通信的兩個計算機之間可能會經過很多個數據鏈路,也可能還要經過很多通信子網。網路層的任務就是選擇合適的網間路由和交換結點,確保數據及時傳送。網路層將解封裝數據鏈路層收到的幀,提取數據包,包中封裝有網路層包頭,其中含有邏輯地址信息源站點和目的站點地址的網路地址。
如果你在談論一個IP位址,那么你是在處理第3層的問題,這是“數據包”問題,而不是第2層的“幀”。IP是第3層問題的一部分,此外還有一些路由協定和地址解析協定(ARP)。有關路由的一切事情都在第3層處理。地址解析和路由是3層的重要目的。網路層還可以實現擁塞控制、網際互連、信息包順序控制及網路記賬等功能。
在網路層交換的數據單元的單位是分割和重新組合數據包(packet)。
網路層協定的代表包括:IP、IPX、OSPF等。
網路層主要功能是基於網路層地址(IP位址)進行不同網路系統間的路徑選擇。
網路層為建立網路連線和為上層提供服務,應具備以下主要功能:
·路由選擇和中繼;
·激活,終止網路連線;
·在一條數據鏈路上復用多條網路連線,多採取分時復用技術;
·差錯檢測與恢復;
·排序,流量控制;
·服務選擇;
·網路管理;
·網路層標準簡介。
網路層典型設備:網關、路由器
4.傳輸層(Transport Layer)
傳輸層建立在網路層和會話層之間,實質上它是網路體系結構中高低層之間銜接的一個接口層。用一個定址機制來標識一個特定的應用程式(連線埠號)。傳輸層不僅是一個單獨的結構層,它還是整個分層體系協定的核心,沒有傳輸層整個分層協定就沒有意義。
傳輸層的數據單元是由數據組織成的數據段(segment)這個層負責獲取全部信息,因此,它必須跟蹤數據單元碎片、亂序到達的數據包和其它在傳輸過程中可能發生的危險。
傳輸層獲得下層提供的服務包括:
·傳送和接收正確的數據塊分組序列,並用其構成傳輸層數據;
·獲得網路層地址,包括虛擬信道和邏輯信道。
傳輸層向上層提供的服務包括:
·無差錯的有序的報文收發;
·提供傳輸連線;
·進行流量控制。
傳輸層為上層提供端到端(最終用戶到最終用戶)的透明的、可靠的數據傳輸服務,所謂透明的傳輸是指在通信過程中傳輸層對上層禁止了通信傳輸系統的具體細節。
傳輸層協定的代表包括:TCP、UDP、SPX等。
傳輸層的主要功能是從會話層接收數據,根據需要把數據切成較小的數據片,並把數據傳送給網路層,確保數據片正確到達網路層,從而實現兩層數據的透明傳送。
傳輸層是兩台計算機經過網路進行數據通信時,第一個端到端的層次,具有緩衝作用。當網路層服務質量不能滿足要求時,它將服務加以提高,以滿足高層的要求;當網路層服務質量較好時,它只用很少的工作。傳輸層還可進行復用,即在一個網路連線上創建多個邏輯連線。
傳輸層也稱為運輸層。傳輸層只存在於端開放系統中,是介於低三層通信子網系統和高三層之間的一層,但是很重要的一層。因為它是源端到目的端對數據傳送進行控制從低到高的最後一層。
有一個既存事實,即世界上各種通信子網在性能上存在著很大差異。例如電話交換網、分組交換網、公用數據交換網、區域網路等通信子網都可互連,但它們提供的吞吐量、傳輸速率、數據延遲通信費用各不相同。對於 會話層來說,卻要求有一性能恆定的界面。傳輸層就承擔了這一功能。它採用分流/合流、復用/介復用技術來調節上述通信子網的差異,使會話層感受不到。
此外傳輸層還要具備差錯恢復、流量控制等功能,以此對會話層禁止通信子網在這些方面的細節與差異。傳輸層面對的數據對象已不是網路地址和主機地址,而是和會話層的界面連線埠。上述功能的最終目的是為會話提供可靠的、無誤的數據傳輸。傳輸層的服務一般要經歷傳輸連線建立階段、數據傳送階段、傳輸連線釋放階段3個階段才算完成一個完整的服務過程。而在數據傳送階段又分為一般數據傳送和加速數據傳送兩種。傳輸層服務分成5種類型。基本可以滿足對傳送質量、傳送速度、傳送費用的各種不同需要。
5.會話層(Session Layer)
這一層也可以稱為會晤層或對話層,在會話層及以上的高層次中,數據傳送的單位不再另外命名,統稱為報文。會話層不參與具體的傳輸,它提供包括訪問驗證和會話管理在內的建立和維護套用之間通信的機制。如伺服器驗證用戶登錄便是由會話層完成的。
會話層提供的服務可使套用建立和維持會話,並能使會話獲得同步。會話層使用校驗點可使通信會話在通信失效時從校驗點繼續恢復通信。這種能力對於傳送大的檔案極為重要。會話層、表示層、套用層構成開放系統的高3層,面對套用進程提供分布處理,對話管理,信息表示,恢復最後的差錯等。會話層同樣要擔負套用進程服務要求,而運輸層不能完成的那部分工作,給運輸層功能差距以彌補。主要的功能是對話管理,數據流同步和重新同步。要完成這些功能,需要由大量的服務單元功能組合,已經制定的功能單元已有幾十種。
會話層的主要功能:
·會話層連線到傳輸層的映射;
·會話連線的流量控制;
·數據傳輸;
·會話連線恢復與釋放;
·會話連線管理、差錯控制。
為會話實體間建立連線、為給兩個對等會話服務用戶建立一個會話連線,應該做如下幾項工作:
·將會話地址映射為運輸地址;
·選擇需要的運輸服務質量參數(QOS);
·對會話參數進行協商;
·識別各個會話連線;
·傳送有限的透明用戶數據;
·數據傳輸階段。
這個階段是在兩個會話用戶之間實現有組織的,同步的數據傳輸。用戶數據單元為SSDU,而協定數據單元為SPDU。會話用戶之間的數據傳送過程是將SSDU轉變成SPDU進行的。
連線釋放
連線釋放是通過"有序釋放"、"廢棄"、"有限量透明用戶數據傳送"等功能單元來釋放會話連線的。會話層標準為了使會話連線建立階段能進行功能協商,也為了便於其它國際標準參考和引用,定義了12種功能單元。各個系統可根據自身情況和需要,以核心功能服務單元為基礎,選配其他功能單元組成合理的會話服務子集。會話層的主要標準有"DIS8236:會話服務定義"和"DIS8237:會話協定規範"。
6.表示層(Presentation Layer)
表示層向上對套用層提供服務,向下接收來自會話層的服務。表示層是為在套用過程之間傳送的信息提供表示方法的服務,它關心的只是發出信息的語法與語義。表示層要完成某些特定的功能,主要有不同數據編碼格式的轉換,提供數據壓縮、解壓縮服務,對數據進行加密、解密。例如圖像格式的顯示,就是由位於表示層的協定來支持。
表示層為套用層提供服務包括語法選擇、語法轉換等。語法選擇是提供一種初始語法和以後修改這種選擇的手段。語法轉換涉及代碼轉換和字元集的轉換、數據格式的修改以及對數據結構操作的適配。
7.套用層(Application Layer)
網路套用層是通信用戶之間的視窗,為用戶提供網路管理、檔案傳輸、事務處理等服務。其中包含了若干個獨立的、用戶通用的服務協定模組。網路套用層是OSI的最高層,為網路用戶之間的通信提供專用的程式。套用層的內容主要取決於用戶的各自需要,這一層設計的主要問題是分布資料庫、分布計算技術、網路作業系統和分布作業系統、遠程檔案傳輸、電子郵件、終端電話及遠程作業登錄與控制等。至2011年套用層在國際上沒有完整的標準,是一個範圍很廣的研究領域。在OSI的7個層次中,套用層是最複雜的,所包含的套用層協定也最多,有些還在研究和開發之中。
套用層為作業系統或網路應用程式提供訪問網路服務的接口。
套用層協定的代表包括:Telnet、FTP、HTTP、SNMP、DNS等。
總結
通過 OSI 層,信息可以從一台計算機的軟體應用程式傳輸到另一台的應用程式上。例如,計算機 A 上的應用程式要將信息傳送到計算機 B 的應用程式,則計算機 A 中的應用程式需要將信息先傳送到其套用層(第七層),然後此層將信息傳送到表示層(第六層),表示層將數據轉送到會話層(第五層),如此繼續,直至物理層(第一層)。在物理層,數據被放置在物理網路媒介中並被傳送至計算機 B 。計算機 B 的物理層接收來自物理媒介的數據,然後將信息向上傳送至數據鏈路層(第二層),數據鏈路層再轉送給網路層,依次繼續直到信息到達計算機 B 的套用層。最後,計算機 B 的套用層再將信息傳送給應用程式接收端,從而完成通信過程。
OSI 的七層運用各種各樣的控制信息來和其他計算機系統的對應層進行通信。這些控制信息包含特殊的請求和說明,它們在對應的 OSI 層間進行交換。每一層數據的頭和尾是兩個攜帶控制信息的基本形式。
對於從上一層傳送下來的數據,附加在前面的控制信息稱為頭,附加在後面的控制信息稱為尾。然而,在對來自上一層數據增加協定頭和協定尾,對一個 OSI 層來說並不是必需的。
當數據在各層間傳送時,每一層都可以在數據上增加頭和尾,而這些數據已經包含了上一層增加的頭和尾。協定頭包含了有關層與層間的通信信息。頭、尾以及數據是相關聯的概念,它們取決於分析信息單元的協定層。例如,傳輸層頭包含了只有傳輸層可以看到的信息,傳輸層下面的其他層只將此頭作為數據的一部分傳遞。對於網路層,一個信息單元由第三層的頭和數據組成。對於數據鏈路層,經網路層向下傳遞的所有信息即第三層頭和數據都被看作是數據。換句話說,在給定的某一 OSI 層,信息單元的數據部分包含來自於所有上層的頭和尾以及數據,這稱之為封裝。
例如,如果計算機 A 要將應用程式中的某數據傳送至計算機 B ,數據首先傳送至套用層。 計算機 A 的套用層通過在數據上添加協定頭來和計算機 B 的套用層通信。所形成的信息單元包含協定頭、數據、可能還有協定尾,被傳送至表示層,表示層再添加為計算機 B 的表示層所理解的控制信息的協定頭。信息單元的大小隨著每一層協定頭和協定尾的添加而增加,這些協定頭和協定尾包含了計算機 B 的對應層要使用的控制信息。在物理層,整個信息單元通過網路介質傳輸。
計算機 B 中的物理層收到信息單元並將其傳送至數據鏈路層;然後 B 中的數據鏈路層讀取計算機 A 的數據鏈路層添加的協定頭中的控制信息;然後去除協定頭和協定尾,剩餘部分被傳送至網路層。每一層執行相同的動作:從對應層讀取協定頭和協定尾,並去除,再將剩餘信息傳送至上一層。套用層執行完這些動作後,數據就被傳送至計算機 B 中的應用程式,這些數據和計算機 A 的應用程式所傳送的完全相同 。
一個 OSI 層與另一層之間的通信是利用第二層提供的服務完成的。相鄰層提供的服務幫助一 OSI 層與另一計算機系統的對應層進行通信。一個 OSI 模型的特定層通常是與另外三個 OSI 層聯繫:與之直接相鄰的上一層和下一層,還有目標聯網計算機系統的對應層。例如,計算機 A 的數據鏈路層應與其網路層,物理層以及計算機 B 的數據鏈路層進行通信。
分層優點
(1)人們可以很容易的討論和學習協定的規範細節。
(2)層間的標準接口方便了工程模組化。
(3)創建了一個更好的互連環境。
(4)降低了複雜度,使程式更容易修改,產品開發的速度更快。
(5)每層利用緊鄰的下層服務,更容易記住各層的功能。
OSI是一個定義良好的協定規範集,並有許多可選部分完成類似的任務。
它定義了開放系統的層次結構、層次之間的相互關係以及各層所包括的可能的任務。是作為一個框架來協調和組織各層所提供的服務。
OSI參考模型並沒有提供一個可以實現的方法,而是描述了一些概念,用來協調進程間通信標準的制定。即OSI參考模型並不是一個標準,而是一個在制定標準時所使用的概念性框架。
比較TCP/IP
TCP/IP模型實際上是OSI模型的一個濃縮版本,它只有四個層次:
1.套用層,對應著OSI的套用層、表示層、會話層
2.傳輸層,對應著OSI的傳輸層
3.網路層,對應著OSI的網路層
4.網路接口層,對應著OSI的數據鏈路層和物理層
OSI模型的網路層同時支持面向連線和無連線的通信,但是傳輸層只支持面向連線的通信;TCP/IP模型的網路層只提供無連線的服務,但是傳輸層上同時提供兩種通信模式。