1k likes | 1.11k Views
Introduction to Networking 網路概論. 請老師填入姓名主講. 教科書: 觀念圖解網路概論. 博碩文化出版發行. 第二章 網路模型與網路設備. 課前指引
E N D
Introduction to Networking 網路概論 請老師填入姓名主講 教科書: 觀念圖解網路概論 博碩文化出版發行
第二章 網路模型與網路設備 課前指引 『國際標準組織於1978年提出的『開發式系統互聯參考模型』(Open System Interconnection Reference Model, 簡稱OSI 七層模型),就是一種參考的標準模型,方便後續發展網路能依據其規範。1970年代,美國國防部的DARPA(Defense Advanced Research Projects Agency)也訂定一套電腦網路規格TCP/IP。TCP/IP模型有時也常被稱為『網際網路參考模型』(Internet Reference Model)、DoD模型(Department of Defense Four-Layer Model)或是ARPANET參考模型。這兩個標準與模型之間的功能是可以互相對應。 本章所要介紹的,會從分層的基本概念,引出OSI的七層模型,以及TCP/IP之間的對應關係。更重要的是,網路上的一些基本設備,以及每一種設備的使用時機,和其功能。
章節大綱 2-1 分層(Layering)概念介紹 2-4 網路相關設備 2-2ISO OSI七層的網路模型 2-5 摘要整理 2-3 ISO OSI七層模型與TCP/IP協定組 備註:可依進度點選小節
何謂分層? • 何謂『分層』(Layering)呢? • 就是依據某種不同功能將其獨立成不同層(Layer),再依據功能的相依性,分為上、下層關係,中間透過『介面』(Interface)來傳遞或處理層與層(between layers)之間的訊息,如圖2-1所示 • 分層的好處在於功能分工,也因為每一層之間的關係獨立,只要透過相同介面(Interface),每一層皆可抽換成其他同等功能的層,這樣可以增加其彈性 圖2-1 分層概念
以兩家公司之功能不分層為例 • 以一家公司的組織架構為例來說明 • 倘若有兩家皆是由一人所組成的公司,彼此進行交易 • 公司負責人不僅要從最基本的送貨工作,以至於公司的產品製作、行銷、業務、會計以及總務…等等,皆由該負責人一肩擔起 • 此人必須又了解所有不同工作的專業領域,如同圖2-2所示 圖2-2 一人公司的交易概念
公司分層後的概念 • 若是將概念分為兩個層次 • 公司實際送貨或傳遞資訊的工作,交由最基層的員工來負責 • 需專業的工作則交由公司負責人來處理 • 公司負責人便可以不用了解太多基層的詳細情形,只管理產品傳送或資訊是否正確送達對方,如此一來逐漸達到分工合作的目的,如圖2-3所示 • 若是最下層稱之為第一層,上層則稱之為第二層,在層與層之間的溝通,則稱之為『對等交談』(Peer-to-Peer),所使用的語言,則稱之為『協定』(Protocol),猶如兩家公司負責人所用的語言一般,總不能一人講中文,另一個講的是英文,這就會造成溝通上的問題,因此對等的層與層之間必須使用相通的語言,便稱之為『協定』 圖2-3 公司分層後的概念
多功的公司 • 當這家公司逐漸成長之後,業務量增加,勢必會造成公司負責人繁重的工作項目,包括產品製作、行銷、業務、會計以及總務…等等 • 但是忙於產品製作,便無法同時顧及其他工作項目,為求達到此公司能同時多工同時處理,提高公司效率,可以再於組織中增加一層,由此層來統籌不同工作項目,如圖2-4所示 • 如此一來便能讓公司負責人,更專心於公司整體策略和方向,較為專業的不同部份就能分工於各部門處理 圖2-4 公司分層與部門分工概念
分層的好處與重要性 • 功能分層之後,只是針對職務的功能區分,而不是依據實體的人而分工,所以在每一個職務或稱為層,有任何人離職,只要再重新應徵具有同等能力的人才遞補即可,這樣就可以保有一家公司組織的彈性 • 由以上簡單案例指出,公司的分工與合作的重要性,在於分工之後,每個員工可以僅就於自己的專業領域,而非找一個全能全才的員工,這是不符合實際狀況 • 在電腦網路的世界更是如此,由於資訊領域先非常廣泛,且技術是日新月異,僅就培訓一個專業人才可能要花上十年時間,更何況要培養出一位全能全才的人才,更是困難 • 也說明出,分層概念對於任何工作或專案處理的重要性
ISO OSI七層模型 • 本段將進入網路世界的網路模型,也就是『國際標準組織』(International Standard Organization, 簡稱ISO) 於1978年提出的『開發式系統互聯參考模型』(Open System Interconnection Reference Model, 簡稱OSI 七層模型) • ISO OSI的七層模型,從下至上包括以下七層,亦可參考圖2-5 • 第一層:實體層(Physical Layer) • 第二層:資料鏈結層(Data Link Layer) • 第三層:網路層(Network Layer) • 第四層:傳輸層(Transport Layer) • 第五層:會議層(Session Layer) • 第六層:表現層(Presentation Layer) • 第七層:應用層(Application Layer) 圖2-5 ISO OSI七層網路模型
ISO所制定的OSI七層模型,僅能稱之為一種網路的規範,並非是一種真實的網路協定ISO所制定的OSI七層模型,僅能稱之為一種網路的規範,並非是一種真實的網路協定 • 所有網路在實作時,皆應該遵循這樣的模型來開發,才不會因為不同廠商所開發出來的產品,彼此無法相容和通訊 • 以下將針對每一層所負責的功能,以及在整體網路中,所扮演的角色,分別加以說明
第一層:實體層 • 『實體層』(Physical Layer)在ISO OSI七層模型,屬於第一層 • 也就是在電腦網路模型中的最底層 • 此部份必須探討的議題,包括人們眼睛看得到、手摸得到的一些實體,包括將電腦連接在一起的『介質』(media) • 還有人們眼睛看不到、手摸不到的一些傳遞的『訊號』(Signal),這些訊號是透過前述的介質傳遞 • 因此可以將實體層的功能整理成以下兩個主要功能 • 傳送訊號的介質規格 • 訊號的編碼與轉換
傳送訊號的介質規格 • 不同網路拓樸所延伸出來不同的網路技術,也會因為網路技術的不同,所採用的傳輸介質也會所不同 • 因此在實體層必須針對每一種實體網路的不同,制訂出不同介質的基本標準 • 包括有線的線材、線頭、無線的電波、紅外線,還有網路相關設備的規格
訊號的編碼與轉換 • 由於網路的形成,並不是限制在一個小型的網路,而是會將不同的網路串連在一起,逐漸擴展成一個大型網路 • 而且每一個網路有可能採取不同的傳輸介質,不同的傳輸介質就會使用不同的訊號(Signal)來傳輸 • 無論中間的節點是使用何種訊號,至少電腦是使用數位訊號,中間可能會經過類比訊號、無線電波或是光學脈衝,這些都是屬於實體層的基本功能
第二層:資料鏈結層 • 『資料鏈結層』(Data Link Layer)在ISO OSI七層模型,屬於第二層 • 這一層的功能,與第一層的實體層關係較為密不可分 • 因為使用不同的實體層,對於介質存取控制(Media Access Control, MAC)的方式也會有所不同 • 例如訊息透過介質傳輸,如何避免訊息碰撞而造成訊號錯亂,所以會直接影響到資料鏈結層的不同 • 在TCP/IP協定中,亦可將第一層與第二層視為同一層
介質存取控制方法 • 只要採用不同的傳輸介質,所使用的傳輸『訊號』(Signal)也會有所不同 • 利用FDDI網路採用的光纖介質,考慮的是光學脈衝,如何不讓傳入與傳出的訊號彼此干擾 • Token Ring網路則是透過Token的取得,才能權傳送訊息的方式,避免產生訊號碰撞 • 乙太網路則是採用『載波感應多重存取/碰撞偵測』(Carrier Sense Multiple Access/Collision Detection, CSMA/CD) • 這些都是因為底層『實體層』採用不同技術,會直接影響『資料鏈結層』的主要原因
定址 • 只要是彼此僅利用『實體層』與『資料鏈結層』做通訊,必定是位於區域網路內的電腦或網路設備;否則,必定要越過第三層網路層尋找目的 • 因此,只要是僅藉由『實體層』與『資料鏈結層』連接的設備,可以認為是直接相連(Directed Connection),或是點對點(Point-to-Point)相連方式 • 點對點連接方式的資料傳輸,主要是透過廣播方式來找到目的地,而每一個網路設備也必須具備一個獨一無二的位址 • 此處定址的位址,稱之為『實體位址』(Physical Address),或是『MAC位址』(Media Access Control Address)
Windows作業系統下查看MAC位址 • 在Windows的作業系統下,可以執行以下命令查看網路介面卡的MAC Address,並可參考圖2-6所示,可以看到網路介面卡『區域連線1』的MAC Address為00-0C-29-EA-AD-C3 C:/>ipconfig/all 圖2-6 Windows下網路介面卡的MAC Address
Linux作業系統下查看MAC位址 • 在Linux的作業系統下,亦可使用以下的命令來查看個別網路介面卡的MAC Address,並可參考圖2-7所示,可以看到網路介面卡『eth0』的MAC Address為00:0c:29:db:46:30 • Linux的指令大、小寫是有區分的,以下必須使用小寫 # ifconfig 圖2-7 Linux下網路介面卡的MAC Address
MAC位址的組成 • MAC位址是由共48個位元(6個位元組)所組成,並以十六進位制來表示,是由網路卡製造商在製作過程,直接燒在網路卡晶片中,廣播位址為FF:FF:FF:FF:FF:FF • 前3個位元組是由IEEE等各組織分配給網路設備廠商的代碼,後24位元則是由該廠商自訂的流水號 • 例如前述的例子,網路卡之實體位址為00:0c:29:db:46:30,其中的00:0c:29代表就是VMware公司所申請的代碼 • 廠商代碼的查詢可以至IEEE的網站查詢,網址為如下: • http://standards.ieee.org/regauth/oui/index.shtml
IEEE Standards Association • 只要連線到該網站,並於網頁中找得『Search the public OUI listing . . .』 • 如圖2-8虛線框中所示,並輸入所要查詢的網路卡前3位元組,即可以查得相關的註冊資料 圖2-8 IEEE Registration Authority
查詢網路卡製造商 • 例如圖2-9是輸入00-0C-29(或是直接輸入000C29 也可以)所查詢出來的結果,結果顯示出,該代號是由VMware Inc.所申請使用 圖2-9 查詢00-0C-29代碼的註冊廠商
第三層:網路層 • 『網路層』(Network Layer) 在ISO OSI七層模型,屬於第三層 • 在ISO的模型中,網路層算是一個非常重要的部份,猶如載運貨物的火車頭一般,載運上層傳送下來的資料,會在此火車頭貼上『來源位址』與『目的位址』,讓此火車頭知道前往的目的地,也讓對方回應時,知道原來的來源位址,這也就是所謂的『定址』(Addressing)的功能 • 並且在傳送的過程中,並非兩部電腦直接連接在一起,其間會經過數個不同的『節點』(node),這些節點如何幫這個載運貨物的火車頭找到下一站目的,最後到達真正的目的地,這也就是所謂的『路由』(Routing) • 簡而言之,網路層的主要功能是『定址』與『路由』兩個項目,以下個別敘述如下
定址(Addressing) • 在實際社會中,每一間房子都必須有一個獨一無二的地址 • 每一個人都必須有一個獨一無二的身份證字號 • 每一部車子都必須有獨一無二的車牌號碼 • 在網路世界中的每一個設備,必須具備一個獨一無二的位址 • 當通訊的雙方進行通訊時,必須在傳送的資料上加入 • 自己的位址(亦就是『來源位址』) • 以及通訊對方的位址(亦就是『目的位址』) • 這樣不但可以找到對方所在,也方便對方在接受到資料之後,可以知道回應至何處
路由(Routing) • 所謂的『路由』(Routing)就是尋找到達目的地的路徑,進而探討如何找到對的路徑和最佳路徑 • 以圖2-10而言,從X到Y,其間有五個不同的節點 • 當資料從X出發,第一站會到達A,此時的節點A會有三種不同的路徑可以選擇 • 如果A選擇下一站到D,將無法順利將資料送達Y,除非再送回A,重新找出一條路徑,這樣將會非常沒有效率 • 所以『網路層』所負責的路由工作是非常重要的,必須能找出正確的路徑,如圖2-10下方的表格所示,共有四條正確能到達的路徑,但又如何能從這幾條路徑中,找出一條最佳路徑呢?這也將會是『網路層』另一項重要工作。只是何謂最佳路徑呢? • 見下頁圖…
最短路徑與最佳路徑 • 序號1與序號4所經過的節點數目雖然最少,兩者皆為三個,也只能算是最短路徑,而序號1才是最佳路徑 圖2-10 網路層路由的可能路徑
第四層:傳輸層 • 『傳輸層』(Transport Layer)在ISO OSI七層模型,屬於第四層 • 傳輸層的基本功能可以包括以下三項 • 編定序號(Sequence Number) • 流量控制(Flow Control) • 可靠性與效率性(Reliability & Efficiency)
編定序號(Sequence Number) • 由於網路通訊過程當中,有可能一次傳送大量資料,但是網路是屬於所有網路上所有電腦所共用,一旦有大量資料湧入,勢必會影響整體傳輸品質,為求公平性,資料在傳輸前會被切割成較小的傳輸單位,再透過網路層的功能,傳送到目的地 • 但是網路層對於上層的資料,僅是盡力而為(best effort)將資料送達對方,並不保證每次傳送路徑都一樣,更不保證傳送順序會與到達順序是一樣的 • 所以編定序號的目的是先將每一個傳輸單位編號,再於資料到達目的後,依據每一個序號的順序重新組合
流量控制(Flow Control) • 『傳輸層』也稱為『主機對主機』(Host-to-Host)的一種溝通,當兩邊的主機處理能力不一致時,有可能一邊傳送端的處理速度快,另一邊的接受端處理速度慢,當大量資料湧入接受端,接受端電腦又沒有能力即時處理所有的資料 • 此時,接受端只能將後續無法即時處理的資料丟棄(discard),可能造成的就是資料不完整,亦或是要求對方,再針對被丟棄的部份重送一次,這卻造成了網路額外的負擔 • 最好的方式是,是由傳送與接受雙方,事先進行協商傳送的速度,也就是所謂的『流量控制』(Flow Control),傳輸過程也可以隨時調整,避免不必要的資料被丟棄的情形發生
可靠性與效率性 • 『可靠性』(Reliability)與『效率性』(Efficiency)兩者是互相抵觸的 • 在傳輸層可以負責對資料完整性的驗證,只要資料的完整性有問題,亦或是傳輸過程有些資料被丟棄,傳輸層可以依據前述的編定序號『確認』(Acknowledgement)是否正確收到資料,否則就要求對方『重送』(Re-Transmission),來達到可靠性 • 反之,有些情形是不需要資料的完整性,例如網路電話,所要求的應該是傳輸的效率,而不是可靠性,所以一般傳輸層會提供兩種不同的功能來迎合不同需求 • 例如常見的TCP即是一種可靠性的傳輸協定,相對地,卻是較無效率的(詳見第十章);UDP則是講究效率性,所以採用不可靠性的傳輸協定(詳見第九章)
第五層:會議層 • 『會議層』(Session Layer)在ISO OSI七層模型,屬於第五層 • 這層的主要功能是負責兩部電腦之間的連線,包括建立連線與結束連線的工作 • 以及採用哪一種資料傳輸的模式,包括『單工』(Simplex)、『半雙工』(Half-Duplex)或『全雙工』(Full-Duplex)模式
傳輸模式 • 『單工』模式 • 就是只能單方面傳輸,例如廣播電台與收音機之間的傳輸,就是屬於單方面傳輸 • 『半雙工』模式 • 就是允許資料雙向皆可傳輸,但是在同一時間,只允許其中一方的資料可以傳輸;換言之,無法在同一時間,做雙向資料同時進行傳輸。例如無線對講機,在同一時間僅能一邊講話,另一邊只能收話 • 『全雙工』模式 • 允許雙向可以同時進行資料傳輸,例如平時所使用的電話,允許雙方同時進行交談
第六層:表現層 • 『表現層』(Presentation Layer)在ISO OSI七層模型,屬於第六層 • 顧名思義,就是將對方所傳送過來的訊息,轉換成使用者能看的型態 • 反之,就是將使用者所要傳送出去的資訊,經過轉換再傳送出去 • 轉換的功能,主要包括對資訊的編碼與轉碼,壓縮與解壓縮以及加密與解密,分別說明如下 • 續…
編碼與轉碼 • 一般我們在電腦螢幕上所看到的英文字,大部份都是採用『美國資訊交換標準碼』(American Standard Code for Information Interchange, 簡稱ASCII),可是在早期也有人使用EBCDIC碼(Extended Binary Coded Decimal Interchange Code)來展現英文字母 • 倘若透過網路通訊的雙方所使用的內碼不同,例如一端使用ASCII碼來進行展現文字,此時將英文字『R』傳送給另一端使用EBCDIC碼的使用者,對方所看到的英文字,卻會變成『a』 • 原因是『R』的ASCII之 十六進位的內碼為『0x52』,網路傳輸會先將英文字轉換為八位元的0x52,再傳送至對方,對方收到後直接採用0x52的內碼,再進行EBCDIC表的對應,對應出來的卻會是『a』,如圖2-11 • 因為兩邊所採用的對照表不同的關係,所以在表現層就必須提供不同編碼的對照表,才能將傳送過去的資料,正確無誤地表現出來 圖2-11 不同內碼對照表所造成的錯誤
壓縮與解壓縮 • 透過網路傳送資料,若是資料量太過於龐大,將會耗費太多時間,也會影響其他使用者的傳輸效益 • 因此在於表現層提供對資料壓縮的功能,抵達目的地之後,再由相同的表現層來進行資料的解壓縮動作,節省傳輸所耗費的時間,並提高效率或品質 • 就像是很多的網路電話,為了讓彼此通話的順暢,就必須將聲音進行壓縮,再解壓縮的動作,避免因為網路品質不良,所造成的通訊不順暢
加密與解密(Encrypt & Decrypt) • 透過網路傳輸的資訊,極有可能具有機密性的商業資料,或是個人的隱私性資料,這都與網路安全的議題相關 • 這類具有機密性的資料,除了儘可能不要透過網路來傳送之外,網路也必須提供使用者一個安全無慮的網路傳輸環境 • 所以在表現層也提供一個可對資料或資訊,進行加密(Encrypt)與解密(Decrypt)的功能,縱使資料在傳送過程被有心人士進行攔截或窺視,也無法被得知資料的內容
第七層:應用層 • 『應用層』(Application Layer)在ISO OSI七層模型,屬於第七層 • 最接近一般使用者能了解的部份 • 舉凡上網所使用的瀏覽器(Explorer),例如微軟公司發展的IE瀏覽器,或是由Google團隊所發展的Google瀏覽器 • 或是常被採用的收發信軟體,例如微軟開發的Outlook • 或是前一章所提到,用來傳送檔案的FileZilla軟體 • 這些能直接協助使用者操作的軟體,都是屬於應用層的範圍
分層與功能分工 • 由於電腦網路的分層,所以也造就很多程式設計師,只要將開發的專業技術著重於使用者的需求以及程式的開發能力,可以不用太過於了解較底層的相關技術 • 例如開發網頁資料庫系統的開發人員,只要了解網頁程式,例如PHP、JSP或是ASP.NET相關技術以及資料庫的相關技術即可
並非所有程式都是應用層 • 千萬別誤以為所有的『程式』(Program)都是屬於『應用層』,這樣的觀念是錯誤的 • 所謂分層的概念,是依據該程式所負責的功能而定 • 例如負責路由的程式,由於它的功能和責任是負責將所收到的訊息,找到最佳的路徑,再轉送出去,所以是屬於『網路層』,而不是屬於『應用層』
不同兩端、相同層之資料傳輸單位 • 由於兩端之間的通訊是對等關係(Peer-to-Peer) • 也就是透過同層之間的訊息交換,來達成同一層之間的通訊 • 所以每一層之間必須有一定的溝通方式,稱之為『協定』(Protocol),交換的訊息也會有一定的單位和格式 • 如圖2-12所示,彼此之間的 • 應用層是透過『資料』或『訊息』(data/message)交換 • 傳輸層的資料單位則稱為『區段』(segment) • 網路層稱為『封包』或『資料包』(packet/datagram) • 資料鏈結層稱為『訊框』(frame) • 實體層則稱為『位元』(bit) • 有時為了方便稱呼,往往會將傳輸層以下統稱為『封包』 圖2-12 層與層之間訊息傳送的單位
上、下層關係(介面) • 除了上述在不同端相同一層之間的關係之外,另一項是上、下層關係 • 上、下層之間稱為『介面』(interface) • 由上而下稱之為『封裝』(Encapsulation),由下而上稱之為『解封裝』(Decapsulation),個別說明如下:
由上而下 • 由於網路通訊協定採用分層關係,由上層的資料往下傳遞,將會對此資料進行『封裝』動作 • 所謂的『封裝』是指對上層傳遞下來的資料內容原封不動,會加上這一層的資訊於資料的最前端,額外加上去的資料稱之為『表頭』(header),不同層會有不同的表頭,但不論是哪一層加上表頭的動作,都稱之為『封裝』 • 而上層的資料內容對下層而言,是一個不需要了解的內容,此內容稱之為『資料』(data),或『承載資料』(payload) 圖2-13 封裝示意圖
由下而上 • 當接收端收到資料時,會由第一層逐層傳遞至最上層的應用層,每一層將會對此資料進行『解封裝』動作 • 所謂的『解封裝』是指對下層傳遞上來的資料去除該資料最前端的『表頭』(header),不同層會有不同的表頭,但不論是哪一層去除表頭的動作,都稱之為『解封裝』
『封裝』與『解封裝』 • 參考圖2-14所示,由左邊的A傳送一個資料『D』給右邊的B,在左邊的A透過最上層資料往下逐層封裝,將上層所傳遞下來的整個當成資料,再加上表頭,最後由最下層的實體層傳送出去 • 右邊B的實體層收到訊息後,逐層往上送給最上層的應用程式,並逐層將表頭去除,最後只留下真正的資料給B的應用程式 • 彷彿A直接將資料『D』給B的感覺 圖2-14 『封裝』與『解封裝』
又為何要如此麻煩地『封裝』再『解封裝』呢?又為何要如此麻煩地『封裝』再『解封裝』呢? • 其實『封裝』的目的是額外加入本層的相關資訊,並置於上層傳下來資料的最前方,所以稱為『表頭』 (header) • 表頭內的資訊,是為了讓不同的兩端,屬於同一層之間做為資訊交換之用途 • 所以在目的端的同一層處理表頭內的資訊之後,便要將該額外被加入的表頭資訊去除,也就是『解封裝』的目的
在相同的一個設備,會進行資料的『解封裝』再進行『重新封裝』的動作,通常這樣的設備會位於網路節點中的中介節點,例如網路設備其中一種-『路由器』(Router)在相同的一個設備,會進行資料的『解封裝』再進行『重新封裝』的動作,通常這樣的設備會位於網路節點中的中介節點,例如網路設備其中一種-『路由器』(Router) • 『解封裝』再進行『重新封裝』的目的為何? • 簡單言之,可以做資訊的轉換,將會於後續介紹路由器時再說明
TCP/IP協定組(Suite) • TCP/IP協定組(Suite)是1970年代,由美國國防部的DARPA(Defense Advanced Research Projects Agency)所訂定的一套電腦網路規格 • TCP/IP模型有時也常被稱為『網際網路參考模型』(Internet Reference Model)、DoD模型(Department of Defense Four-Layer Model)或是ARPANET參考模型 • TCP/IP協定組(Suite)主要分為以下四層,分別由下而上 • 第一層:鏈結層(Link Layer) • 第二層:網際網路層(Internet Layer) • 第三層:傳輸層(Transport Layer) • 第四層:應用層(Application Layer)
TCP/IP與ISO OSI七層 • TCP/IP協定組的功能,亦可相對應於ISO OSI七層模型,如圖2-15所示 • TCP/IP『鏈結層』包括OSI模型的『實體層』與『資料鏈結層』兩層 • TCP/IP『網際網路層』相對應於OSI模型的『網路層』 • TCP/IP『傳輸層』相對應於OSI模型的『傳輸層』 • TCP/IP『應用層』包括OSI模型的『會議層』、『表現層』與『應用層』 圖2-15 ISO OSI七層模型與TCP/IP協定組的對應