| |||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||
我們在前面的“網路概論”裡面已經略略提到過OSI的七層協定了。不過﹐類似的﹐TCP/IP和Microsoft網路也有其對應的協定層﹐我們可以從下面列表中看看它們的比較﹕
我們對這些協定層的名字都知道了﹐但它們之間的關係和定義又如何呢﹖下面讓我們以OSI的七個協定層逐一來探討一下﹕ 實體層 這層實際是定義了應用在網路傳輸中的各種設備規格﹐以及如何將硬體所攜載的信號轉換成電腦可以理解的信號(0和1)﹐這通常都是設備上面之韌體(Firmware)的功能。這些規格一般是由硬體的生產廠商制定的﹐比如﹕數據線的接腳、電壓、波長、相位、等等。 我們在“網路概論”裡面討論的網線、網路卡、電話線﹐等等﹐都是屬于實體層的範疇﹐也就是用來連接兩台電腦的可以攜帶數據的媒體﹕可以是銅線、也可以是無線電波、也可以是光學纖維。而我們常見的實體層會是用來連接辦公室網路的Ethernet和Token Ring線路﹐或者是連接modem的電話線。而機器上的網路卡﹐或是連接modem的通訊口﹐都會將物理媒體上面的電子脈沖轉換成電腦所能讀得懂的1和0。 資料連接層 由於數據在實體層是以bit為單位來傳輸的﹐資料連接層則使用數據框包(frame)的概念來在電腦之間傳輸數據﹐它負責安排框包的界定﹐也同時處理重複框包和框包的確認。所以資料連接層要制定不同網路形態的資料框包格式﹐確保數據能夠在不同的網路實體(比如﹕同軸電纜、雙絞線、光纖、電話數據線、等等)上進行資料傳送。我們通常用來撥接上網的PPP協定就是在這層裡面定義的了﹐且一般給Mainframe使用的xDLC協定也屬于這裡的範圍。 資料連接層通常會管轄以下的功能﹕
在IEEE802標準裡面﹐還將資料連接層再劃分為兩層﹕Media Access Control和Logical Link Control﹐請參閱下表﹕
我們在“網路概論”裡面介紹的bridge可以說是工作於資料連接層的。 網路層 網路層的主要功能是讓封包(packet)在不同的網路之間成功地進行傳遞。它規定了網路的定址方式﹐及處理資料在不同網路之間的傳遞方式、處理子網路之間的傳遞、決定路由路徑、網路環境、資料處理順序、等等工作。 發送端電腦在封包被傳送出去之前﹐都會先為其建立header﹐作為在網路或子網間進行路由的依據。網路層在辨認和處理資料的時候﹐會忽略由高層協定制定的定義﹐只負責為數據在一個或多個網路間建立、維護、和終止連接。 網路層通常都有如下的這些功能﹕
我們在“網路概論”裡面介紹的router就是工作於網路層的。 傳送層 我們在前面“網路概論”裡面已經知道OSI的最底三層屬於網路功能﹐而上面四層則屬于使用者功能。也就是說﹐從傳送層起﹐協定所負責的可以說是純“資料處理”的功能。 由於大多數網路﹐如Ethernet和Token Ring等﹐由於物理上面的限制﹐一次所通過的數據流通常只有數千byte而已﹐然而許多需要在網路中傳輸的資料都會超過這個數值。傳送層的主要功能是確保電腦資料正確的傳送到目的地。它的工作就是“打包”﹐也就是將電腦資料變成封包的形態﹐再賦以一定的檢測手段﹐將資料正確的傳到目的電腦﹐然後再將封包重組回資料。封包如果殘缺則進行重發﹐也能夠將重複的封包剔除。 傳送層可以等資料收集到足夠大的數量的時候才發送出去,並非應用程式每次產生一個數據就進行一次傳送,也就能減少了不必要的傳輸次數﹐以保證高效率的傳輸﹔反之,當應用程式產生大資料量數據時,則將之分拆成較小的封包再進行傳輸。 傳送層的主要功能有﹕
會談層 這層所負責的是建立和管理電腦與電腦之間的溝通模式﹐也就是在資料真正進行傳輸之前設定並建立好連線。這裡定義了連線的請求和結束、傳送和接收狀態的設定、等等動作。 當節點 A 要建立和節點 B 的連線的時候﹐ 會先發出“請求連線”訊息(SYN), 若對方接受連線,則回應“確認請求”訊息(SYN/ACK) ,接著節點 A 再回應一個“確認連線”信息(ACK)﹐然後就可開始傳送資 料了。在結束連線的時候﹐節點 A 也會先發出“終止連線”的信息﹐如果得到節點B的“確認終止”的回應﹐那麼連線就可以結束了﹕ ![]() 這就是著名的“三向握手 (Three-Way Handshack)”連線形式了。請您一定要記住這個連線動作﹐以後在您的 TCP/IP 管理中﹐尤其是安全設定上面﹐尤為重要。 會談層的功能主要有這些﹕
會談層為不同的程式以及與之對應的位於另一台電腦的程式﹐提供了可靠的溝通渠道。在某些溝通渠道中使用的是half-duplex(半雙工﹐即單向)的模式﹐有些則使用full-duplex(全雙工﹐即雙向)的模式﹐為程式之間協定好共同認可的模式﹐並進行同步和管理等責任﹐都是會談層所肩負起的。 表現層 如果您想將您的PC通過網路連接mainframe電腦﹐那您就必須使用合適的mainframe文字串﹐通常會是EBCDIS(External Binary Coded Decimal for Interchange Code)﹐然而您的PC使用的卻是ASCII碼﹐這兩種編碼格式是截然不同的。表現層則是主要負責在不同機器之間進行編碼轉換。當應用程式產生資料要進行傳送的時候﹐表現層會將之換成網路的標準編碼格式再交由下層協定處理﹔然後當資料抵達目的地﹐表現層也會將網路的編碼換成對方應用程式所需的格式。 表現層的主要功能如下﹕
應用層 剛才談到的表現層是負責將傳入來的資料種類轉換成PC的資料種類﹐不過﹐應用層則只轉換應用程式相關的檔案格式。例如﹕您的網路流覽器或許只能看得懂BMP的圖像格式﹐那麼當接收到JPEG或GIF圖像的時候﹐應用層就可以將他們轉換成BMP的格式﹐以讓您的流覽器能看到圖像。 表現層的轉換與應用層的轉換之間﹐最大的分別是﹕表現層是針對特定的主機的CPU類型﹐而應用層則針對特定應用程式。 應用層所定義的還有一些應用程式功能﹐例如FTP﹐HTTP﹐TELNET等﹐主要負責客戶端和伺服端的連接。相信您對這些程式或多或少接觸過﹐比如您要從網上下載資料﹐可以通過FTP客戶程式﹐也可以通過流覽器將資料拿到。但在您的機器和在網路上面的伺服器﹐都必須使用相同的應用程式功能才可以做到﹐這在TCP/IP的網路環境裡面﹐通常都會是以不同的port的號碼來讓不同的程式進行溝通。Port號碼可以隨你喜歡來定﹐只要你知道號碼是多少就可以用相對的程式來進行交談了﹐不過﹐為了不至於太混亂﹐讓大家有規可尋﹐TCP/IP也指定了一些常用的port來給常用的程式使用﹐例如﹐HTTP使用80、FTP使用21、TELNET使用23、諸如此類... 不過﹐需要知道的是﹕管理 port 連接的功能卻應該是傳送層的事情。
© 2000 Netman 網中人Last Updated: March 28, 2000 |