介紹 OSI 模型
我們已經知道 TCP/IP 能夠應用在不同的網路﹐這就必須要有一套大家都遵守的的標准才能保證彼此能夠溝通
OSI 把數據通訊的各種功能分為七個層級﹐各司其職﹐但有相互依存﹑合作
· 網路群組﹕由實體層﹑資料連接層﹑和網路層組成
· 使用者群組﹕由傳送層﹑會談層﹑表現層﹑和應用層組成
您可以從下圖看各個協定層的排列關系﹕
應用層 (Application)
表現層 (Presentation)
會談層 (Session)
傳送層 (Transport)
網路層 (Network)
資料連接層 (Data Link)
實體層 (Physical)
OSI 參考模型
OSI 提供了一個很有用的模式去解釋各個不同層面的網路協定﹐這些協定就像堆積木一樣﹐層層疊上去﹐因此此一架構常被稱為堆疊(stack)﹐或是協定堆疊
下面分別對各個曾經做一個簡單的描述﹕
實體層(Physical Layer)
在這層裡面您必須作出一些機械和電子方面的決定﹐也就是要定義出在終端和網絡之間要使用的設備
例如網線﹑網路卡﹑電話線﹐等等﹐都是屬於實體層的范疇﹐也就是用來連接兩台電腦的可以攜帶數據的媒體﹕可以是銅線﹑也可以是紅外線﹑也可以是光學纖維
資料連接層(Data Link Layer)
在這層指定了要采用的信息單元 (message unit﹐通常在 LAN上面的信息單元被稱為 frame﹐翻譯為
Ethernet 的 Data Link Layer Frame 看起來如下圖﹕
educity
Data Link Layer Frame 結構
數據在實體層是以bit為單位來傳輸的﹐資料連接層要制定不同網路形態的資料框包格式﹐確保數據能夠在不同的網路實體(比如﹕同軸電纜﹑雙絞線﹑光纖﹑電話數據線﹑等等)上進行資料傳送
資料連接層通常會管轄以下的功能﹕
· 網路卡的實體位址(Physical Address)﹐也被稱為MAC(Media Access Control) Address
· 虛擬電路(Virtual Circuit)連接和邏輯連結(Logical Link)的建立和結束
· 控制框包的傳送和錯誤檢測方式
· 框包的傳送及接收順序和傳遞方式
· 判定框包的建立及重組分界
· 檢測框包的確認﹐以及在得不到回應或重復發送的情形下進行修復的程序
· 處理實體層的轉換和管理
· 對接收框包進行檢錯和確認
· 檢查發送框包的實體位址以確保資料能正確的被送抵目的地之網路層
在 IEEE
educity
IEEE
總體來說﹐這層的工作就是保證一個無錯誤的物理上的數據傳輸
網路層(Network Layer)
這層就好比是一個中間人界乎於網絡功能和使用者功能之間
網路層的主要功能是讓封包(packet)在不同的網路之間成功地進行傳遞
發送端電腦在封包被傳送出去之前﹐都會先為其建立 header ﹐作為在網路或子網間進行路由的依據
網路層通常都有如下的這些功能﹕
· 如果封包不是屬於同一個網路的時候﹐會將之交由 router 處理
· 控制數據流量﹐當 router 的緩沖區飽和的時候﹐會通知數據傳輸設備使用其它路徑或暫停發送封包
· 當封包體積超過 router 的 MTU (Maximum Transmission Unit) 數值的時候﹐允許 router 對封包進行重組後再進行傳送
· 負責 MAC 位址和網路位址(如 IP 位址﹑IPX 位址)之間的解釋和轉換
一個有趣的事情是﹐網路層還能將底層協定(網路功能)對上層協定(使用者功能)躲起來
傳送層(Transport Layer)
在這層﹐將會設定如何控制節點之間的資料傳遞﹐還有錯誤檢測和修正的方法
由於大多數網路﹐如 Ethernet 和 Token Ring等﹐由於物理上面的限制﹐一次所通過的數據流通常只有數千 byte 而已(IP 封包最大體積為
傳送層可以等資料收集到足夠大的數量的時候才發送出去
傳送層的主要功能有﹕
· 接管由上層協定傳來的資料﹐並進行
· 利用點對點的方式進行資料傳送和回應的確認
· 在得到接收端之資料緩沖區飽和信息之後﹐暫時停止資料發送
· 能在單一位址上處理不同的程式協定(如ftp﹑http﹑telnet等)﹐並分別進行追蹤及轉換
會談層(Session Layer)
這層定義了如何連接和掛斷連接﹐和在網路上面的數據如何交換
這層所負責的是建立和管理電腦與電腦之間的溝通模式﹐也就是在資料真正進行傳送之前設定並建立好連線
當節點 A 要建立和節點 B 的連線的時候﹐ 會先發出
會談層的功能主要有這些﹕
· 允許程式以電腦名稱注冊成為網路上唯一的位址
· 在電腦之間建立﹑監測﹑和結束虛擬電路(Virtual Circuit)
· 負責電腦之間的信息同步﹐監測資料溝通狀態﹐並對錯誤信息做出處理
會談層為不同的程式以及與之對應的位於另一台電腦的程式﹐提供了可靠的溝通渠道
表現層(Presentation Layer)
在這層﹐定義了數據的語法(syntax)﹑變更﹑和格式
如果您想將您的 PC 通過網路連接 mainframe 電腦﹐那您就必須使用合適的 mainframe 文字串﹐通常會是 EBCDIS(External Binary Coded Decimal for Interchange Code)﹐然而您的 PC 使用的卻是 ASCII 碼(American Standard Code for Information Interchange)﹐這兩種編碼格式是截然不同的
From:http://tw.wingwit.com/Article/Common/201311/4922.html