--- title: 'OSI七層架構 和 TCP/IP通訊協定 的比較' disqus: hackmd --- OSI七層架構 和 TCP/IP通訊協定 的比較 === ## 目錄 [TOC] # OSI七層模型 ## OSI簡介 開放式系統互聯模型(Open System Interconnection Model), 簡稱為OSI模型。 1. 由國際標準化組織 **ISO** 所提出的概念模型 2. 整體資料流程分為 **7** 個分層 3. 越高層越偏向軟體,低層則偏向硬體 4. 每個中間層為其上一層提供功能,自身功能則由其下一層提供 ![Picture2-3](https://hackmd.io/_uploads/SJsUKM_0a.png) ## 各分層定義 ___ ### 第**七**層 **應用層** #### 主功能:處理應用程式 提供使用者網路應用服務, 專指為應用軟體而設計的介面, 以設定與另一應用軟體之間的通訊。 #### 常見的通訊協議 1. DHCP(Dynamic Host Configuration Protocol) 2. FTP(File Transfer Protocol) 3. HTTP(HyperText Transfer Protocol) 4. POP3(Post Office Protocol-Version 3) > 第七層的應用軟體(網路瀏覽器、電子郵件、線上遊戲、即時通訊等)透過單一或多種通訊協定傳達資料,依據不同的網路服務方式,這些協定能定義各自的功能及使用規範等細部規則,像是網路瀏覽器藉由HTTP的溝通,即可呈現出完整的網頁。 > 這些和使用者最貼近且直接的應用軟體就屬於第七層應用層的規範。 ### 第**六**層 **表達層/展示層** #### 主功能:轉檔編碼 資料透過網路傳輸時, 需要將內容予以加密或解密,而這個過程就屬於展示層 #### 常見編碼 ASCII、JPGE、MIDI…… ### 第**五**層 **會議層/會話層** #### 主功能 :數據傳輸中設定和維護電腦網路中兩台電腦間的通訊連接 此層級負責建立網路連線使得電腦間得以傳輸資料, 等到資料傳輸結束時,連線將會中斷 #### 常見應用: NetBIOS names,是一種用來識別電腦資源的依據, 讓在不同電腦上運行的不同程式,可以在區域網路中, 互相連線,以及分享資料。 Windows系統中的網路上的芳鄰, 或是「檔案及列印分享」,通常會看到群組及電腦名稱, 這些就是NetBIOS names定義的。 ### 第**四**層 **傳輸層** #### 主要功能:將傳輸表頭併入資料形成封包,負責整體電腦整體的資料傳輸及控制 傳輸層可以將一個較大的資料切割成多個8位元組表示的資料流來傳輸, 替模型頂端的第五、六、七等三個通訊層提供流量管制及錯誤控制。 傳輸控制協定(Transmission Control Protocol,簡稱TCP) 則是最長見具有傳輸層功能的協定。 #### TCP 將資料流分割成適當長度的報文段(受該電腦連接的網路資料鏈路層的最大傳輸單元限制)。 TCP為了保證不發生丟包, 因此會給每個封包序號,同時序號也保證了傳送到接收端實體的包的按序接收。 然後接收端實體對已成功收到的包發回一個相應的確認資訊(ACK), 如果傳送端實體在合理的往返時延(RTT)內未收到確認, 那麼對應的封包就被假設為已遺失並進行重傳。 ### 第**三**層 **網路層/IP層** #### 主功能 : 提供路由及定址功能,將網路表頭加至數據包,形成封包,以便在網路間傳遞。 主要的通訊協定是網際網路協定(Internet Protocol,IP)目的主要是為這筆資料定下傳送目的地的位址 資料在傳輸時,該協定將IP位址加入傳輸資料內,並把資料組成封包(Packet)。 在網路上傳輸時,封包裡面的IP位址會告訴網路設備這筆資料的來源及目的地。 由於網路層主要以IP運作為主,故又稱為「IP層」。 #### 常見設備 ##### 企業機房 路由器 Layer3 交換器 ##### 其它 IP分享器 俗稱小烏龜的ADSL用戶終端設備 #### 其他協定 IPX X.25 ### 第**二**層 **資料連結層** #### 主要功能:負責網路尋址、錯誤偵測和改錯,為網路之間建立邏輯連結。 資料連結層將實體層的數位訊號封裝成一組符合邏輯傳輸資料,這組訊號稱為資料訊框(Data Frame)。 訊框內包含媒體存取控制(Media Access Control,MAC)位址、 邏輯鏈路控制(Logical Link Control, LLC) 兩部分。 而資料在傳輸時,這兩項資訊可讓對方主機辨識資料來源。 #### 子層1:邏輯鏈路控制 LLC 主要工作: 控制訊號的交換 資料的流量 解釋上層通訊軟體傳來的命令並產生回應 克服資料在傳送的過程中所可能發生的種種問題(資料發生錯誤、重覆資料...) #### 子層2:媒介存取控制 MAC 主要工作: 資料幀的封裝/卸裝 定址和識別 接收與傳送 差錯控制 鏈路的管理 位址格式: 由48個位元(6個位元組)構成。 以16進位的方式來表示 MAC子層的存在消除了不同物理鏈路種類的差異性 >MAC和IP一樣,都是提供「定址」的方式,好讓各個設備了解網路資料應該要往什麼地方發送。MAC的位址都是唯一的,所有的網路卡都有一個MAC位址,而這個位址不會與世界上其他的網路卡的MAC位址相同 >MAC主要負責控制與連線物理層的物理介質。在傳送資料的時候,MAC協議可以事先判斷是否可以傳送資料,如果可以傳送將給資料加上一些控制資訊,最終將資料以及控制資訊以規定的格式傳送到物理層;在接收資料的時候,MAC協議首先判斷輸入的資訊並是否發生傳輸錯誤,如果沒有錯誤,則去掉控制資訊傳送至LLC層。 ### 第**一**層 **實體層** #### 主要功能:區域網路上傳送資料框,負責管理電腦通訊裝置和網路媒體之間的互通。 硬體: 針腳、線纜、電壓值、集線器、中繼器、網卡、主機介面卡...等 # TCP/IP 通訊協定 ___ ## TCP/IP 簡介 總共歸類到4個抽象的層中。 每一抽象層建立在低一層提供的服務上,並且為高一層提供服務。 1. 網路存取層 2. 網路互連層 3. 傳輸層 4. 應用層 ___ **整體流程:** 1. 資料從應用層透過TCP或UDP埠到達傳輸層,並決定使用TCP或UDP協定來存取網路。 2. 到網際網路層後,IP協定會提供如何將資料導引到正確的邏輯IP位址的資訊。 3. 進入網路存取層後,會透過上層的ARP及RARP協定來轉換IP位址和實際位址 4. 將資料格式化成能在傳輸線上傳輸的格式而送出。 5. 最後資料離開了原始端電腦傳向目的端,而該電腦收到後,則進行相反之步驟。 ___ ##  **TCP/IP** 分層 ### 第**四**層 **應用層** #### 主要功能:利用基礎網路交換應用程式專用的資料的協定,協同所有應用程式工作。 TCP/IP最頂層,其中的應用軟體並沒有明確規範的工作類別 像是偵測網路資訊的工具或是提供一些網路的服務: FTP、DNS...等等。 處理過程: 資料從網路相關的程式以這種應用內部使用的格式進行傳送,然後編碼成標準協定的格式, 一旦從應用程式來的資料編碼成一個標準的應用層協定,它將傳送到傳輸層。 一些特定的程式也被視爲在此層運行,直接提供服務給使用者應用。 #### 程式和對應的協定: HTTP(全球資訊網服務) FTP(檔案傳輸) SMTP(電子郵件) SSH(安全遠端登入) DNS(名稱⇔IP位址尋找)...等等其他協定。 ### 第**三**層 **傳輸層** #### 主要功能:傳輸層是一個提供應用程式和網路之間的介面。 > 只有IP位址的話,若有不同的應用軟體要同時進形網路傳輸,所有資料就會從同一個出口一起出去而產生混亂的碰撞情形,因此有了連接埠的產生,可以讓一台電腦同時擁有好幾個對外連接的出口,這也使得網路傳輸有了多工的能力。 ##### 協定: TCP: 可提供一種可靠的位元組流保證資料完整、無失真並且按順序到達。 傳輸資料被分成好幾個封包傳送時, 當目的端電腦接收到每一個封包, 就會傳回一個確認值 對資料的掌控上及偵錯方面,就遠勝於UDP,但速度則不如UDP。 ### UDP: 不檢查封包是否已經到達目的地,並且不保證它們按順序到達。 只負則送出及接收, 不會收到一個封包就回傳一個確認的訊息, 檢查則是靠著總和檢測值來判定。 典型性應用: 串流媒體(音訊和視訊等)這樣按時到達比可靠性更重要的應用 ### 第二層 網路互連層 #### 主要功能:將資料從源網路傳輸到目的網路,並選擇路徑 ##### IP協定: IP協定: 紀錄著三個IP的位址 分別為目的IP位址 子網路遮罩位址(用來判定來源IP和目的IP是否在同一網域的一個判斷位址) 閘接器(路由器)位址(若要送到不同網域時,用以決定封包的傳輸途徑)   >運作: 先用子網路遮罩計算兩位址是否在同一網域,再決定其傳送途徑。 ##### 其他協定: ARP協定: 此協定的功用是轉換實體位址和IP位址 而RARP則是其反協定。 ICMP協定: 控制一些網路傳輸上的狀況的協定 (如遇到狀況時的回傳訊息,就是透過ICMP協定的運作。) ### 第**一**層 **網路存取層** #### 主要功能:規定資料的傳輸方式,讓網路傳輸有規範及效率 ##### 運作: 實際上並不是網際網路協定組中的一部分, 它是封包從一個裝置的網路層傳輸到另外一個裝置的網路層的方法。 添加報頭準備傳送、 將資料轉換成一稱為訊框(Frame)的格式,並將其轉為可用電子流或類比脈衝表現的樣式。 通過實體媒介實際傳送資料達成鏈路功能。 但也可能是一個虛擬專有網路(VPN)或者隧道, 在這裡從網路層來的包使用隧道協定和其他(或者同樣的)協定組傳送而不是傳送到實體的介面上。 VPN和通道通常預先建好,它們有一些直接傳送到實體介面所沒有的特點(加密經過它的資料)。 另一端,鏈路層將完成資料框接收、去除報頭並且將接收到的包傳到網路層。 ##### 常見實體網路架構: 乙太 FDDI Apple Talk Token Ring   等等… ___ # OSI七層架構 和 TCP/IP通訊協定 比較 ## 共通性: 同許多其他協定一樣網路傳輸協定也可以看作一個多層組合,每層解決資料傳輸中的一組問題並且向使用這些低層服務的高層提供定義好的服務。高層邏輯上與使用者更為接近,所處理資料更為抽象,它們依賴於低層將資料轉換成最終能夠進行實體控制的形式。 兩者都基於獨立的協議棧的概念,強調網路技術獨立性(Network Technology Independence)和端對端確認(End-to-End Acknowledgement)。 且層的功能大體相同,兩個模型能夠在相應的層找到相應的對應功能。 ___ ## 定義上差別: >OSI七層是以:“通訊協議的必要功能是什麼?”這個問題未中心,再進行模型化。 >TCP/IP是以:“為了將協議實際安裝到計算機中如何進行程式設計最好?”為中心進行模型化。 >結果:TCP/IP的實用性強。 ___ ## 缺點比較: ### OSI 七層架構 缺點: 1. OSI模型的服務定義和協議相對TCP/IP複雜許多。 在七層結構中: 會話層和表示層: 雖然在定義上有一定意義存在, 不過論實際應用的話,並不一定能有實質上的使用價值。 它的存在價值只能說是為了OSI架構而被定義出來的。 資料鏈路層和網路層: 涵蓋功能煩雜,從而分成幾個不通功能的子層。 這使得整體結構臃腫。因此在最初應用時不僅大又笨拙且緩慢。 3. 某些功能重複出現: 定址、 流量控制、 出錯控制...等等 這些功能在各層重複出現。導致效率降低,系統功能下降。 5. 某些特性無法找到與之對應的特定層。 虛擬終端處理原先在表示層,後來被放到應用層 資料安全、加密問題和網路管理無法決定放在哪一層,從而被擱置。 ### TCP/IP模型的缺陷: 1. 沒有明顯的區分服務、介面和協議的概念 3. TCP/IP模型並不是完全通用的,只適合描述TCP/IP模型的協議疊。 5. 主機網路層在分層協議中不像是通常意義上的層, 它比較像一個介面,處於網路層和資料鏈路層的中間。 7. TCP/IP模型不區分物理層和資料鏈路層。 ___ ## 結構比較 ### OSI的上三層 相當於 TCP/IP中的應用層 OSI模型的最上面三層(應用層、表現層和會議層)在TCP/IP組中被整合在一個應用層。 由於TCP/IP有一個相對較弱的會議層,由TCP和RTP下的打開和關閉連接組成,並且在TCP和UDP下的各種應用提供不同的埠號,這些功能能夠由單個的應用程式增加。與此相似的是,IP是按照將它下面的網路當作一個黑盒子的思想設計的,這樣在討論TCP/IP的時候就可以把它當作一個獨立的層。 ### 定義上的衝突 IP能夠承載多種不同的高層協定的資料;這些協定使用一個唯一的IP協定號進行標識。 一些IP承載的協定,如ICMP(用來傳送關於IP傳送的診斷資訊)和IGMP(用來管理多播資料), 它們位於IP層之上但是完成網路層的功能,這表明網際網路和OSI模型之間的不相容性。 所有的路由協定,如BGP、OSPF、和RIP實際上也是網路層的一部分,儘管它們似乎應該屬於更高的協定疊。 ___ # 結論 **OSI參考模型與TCP/IP參考模型都不完美。** * OSI: 由於在ISO制定OSI參考模型過程中總是著眼於通訊模型所必需的功能,理想化得等待政府行為來統 一各種網路協議,在制定過程中忽略了網際網路協議的重要性。 因此當考慮到這一點時,由於功能複雜難以實現等原因,失去了市場。 * TCP/IP: 在現存的協議基礎上,考慮到“將協議實際安裝到計算機中如何進行程式設計最好”實際應用的問題, 使得在實現上比較容易,得到了廣大使用者得支援,也得到了大廠商的支援, 所以TCP/IP參考模型相較被廣大發展,且使用度較高。