Posted on

網路概念模型介紹

網際網路協議模型(網路模型)和開放系統互連(OSI)模型都是描述電腦網路通訊的框架。它們將通訊過程分解為不同的層級,每個層級都有特定的功能和協議。

OSI 七層模型介紹

  1. 實體層(Physical Layer):這一層負責管理電腦通信設備和網路媒介之間的互動。它處理的是二進制位元組在通訊媒介(如電纜、無線電波)上的傳輸。
  2. 資料連接層(Data Link Layer):主要負責將網路層(第三層)傳來的數據封裝成幀(Frame),在兩個網絡節點之間傳輸這些幀,並處理錯誤的檢測和修正。以下是一些在資料連接層工作的知名協議:
    • 乙太網路(Ethernet):這可能是最廣泛使用的網路技術之一。乙太網路使用 MAC 地址來識別網絡中的節點,並提供在本地網絡範圍內傳輸數據的方法。
    • 點對點協議(Point-to-Point Protocol,PPP):被認為是在第二層的資料連接層運作,是因為它的主要功能和職責都集中在這個層次。資料連接層的主要責任包括組織原始位元組成有意義的資料幀(Data Frames)、在通信實體間建立和終止連接,以及進行錯誤檢測和修正。
      PPP協定主要用於在兩個直接連接的網路節點之間建立網路層(第三層)連接,例如兩個通過撥號網絡、數據機或專用線路直接連接的系統。PPP定義了如何建立、配置和測試在直接連接的節點之間的網路層連接的方法,也包括如何將網路層封包封裝成幀、如何進行錯誤檢測,以及在出現問題時如何終止連接。這些功能都屬於OSI模型中的資料連接層。
      因此,即使PPP提供了對上層網路協定(例如IP)的支援,並能夠將網路層的數據封裝為幀並在點對點的連接中傳輸,但由於它的核心功能主要在於建立、管理和終止連接,進行錯誤檢測和修正,以及將數據封裝為幀,因此我們說PPP是在資料連接層運作的。
    • 無線局域網(Wi-Fi):無線局域網也是在資料連接層工作,它為無線網絡提供了傳輸數據的方法。
    • 媒體存取控制(Media Access Control,MAC):用於控制多個裝置如何在共享媒體(例如乙太網)上存取數據。這裏的”碰撞”是指在半雙工通信系統中,如果兩個或多個設備同時嘗試發送數據,則可能會互相干擾,導致數據損壞。MAC協議(例如CSMA/CD在乙太網中的使用)協助協調這些設備的傳輸,以最小化碰撞的可能性。
    • 邏輯鏈路控制(Logical Link Control,LLC):這種協議為網絡應用程序提供了一個統一的接口,使得它們可以無需關心下層的具體硬體細節(如乙太網路、無線局域網等)。
  3. 網路層(Network Layer):這一層負責將網路地址(如 IP 地址)分配給裝置,並決定數據的路徑。這一層的協議決定如何將資料從來源位置轉移到目的地。
    IPv4和IPv6協議都是在OSI模型的第三層,也就是網路層(Network Layer)運作的。在這一層中,數據包的路由和傳輸,以及網路的連接管理等操作都會被處理。包括IP在內的網路層協議會對數據包進行封裝並確定其在網路中的路徑,也就是它們需要經過哪些路由器才能到達目標。IPv4和IPv6主要的差異在於地址的長度和格式,其中IPv6提供的地址空間遠大於IPv4,因此能夠對更多的設備進行唯一地址的分配。
  4. 傳輸層(Transport Layer):這一層提供了端到端(source-to-destination)的通訊服務。TCP 和 UDP 都是這一層的協議,它們負責將資料切割為小的數據包,並確保所有的數據包都可以在目的地正確無誤地重組。
  5. 會議層(Session Layer):這一層負責在數據傳輸過程中建立、管理和終止會話。
    在HTTP/1.1及其更高版本中,的確是由應用層(即HTTP協議)來管理和控制會話的建立和中止的。
    這是因為OSI模型是在很多現代協議(如HTTP)之前設計的,當時的網路環境和今天相比有很大的不同。另外,OSI模型是一種理想化的框架,並不是所有實際的網路協議都會或應該完全符合這個模型。實際上,很多現代的網路協議都會按照他們的具體需求和設計目標來實現必要的功能,而不一定會遵循OSI模型的所有規定。
    因此,雖然理解OSI模型可以幫助我們更好地理解網路通信的一般原理,但在研究具體的網路協議時,我們也需要考慮到這些協議可能會有自己特定的設計和行為方式,這些可能會與OSI模型的某些預期行為有所不同。
  6. 表示層(Presentation Layer):這一層對資料進行編碼和轉換,以確保數據能夠由接收端的系統理解。它也可以實現數據的壓縮和加密。數據的編碼和轉換主要涉及以下操作:
    • 字符編碼轉換:例如從ASCII轉換為UTF-8,或者從一種語言編碼(如拉丁文)轉換為另一種語言編碼(如Unicode)。
    • 數據格式轉換:例如將XML轉換為JSON,或者將CSV轉換為EXCEL。在此過程中,數據的結構和語義保持不變,但格式和表示方式可能會變化。
    • 數據壓縮和解壓縮:例如使用ZIP、RAR、GZIP等壓縮算法進行壓縮和解壓縮,以減少數據的體積,提高傳輸效率。
    • 數據加密和解密:例如使用AES、RSA等加密算法對數據進行加密,確保數據在網路傳輸中的安全性。
  7. 應用層(Application Layer):這是最接近用戶的一層,負責處理特定的應用程式細節。包括 HTTP、SMTP、FTP、DNS 等協議。

OSI實際的應用場景

實際的網路協議和應用中,一個應用功能可能會跨越多個層次進行這些操作。例如,一個Web應用可能會在應用層處理字符編碼和數據格式轉換,並在傳輸層或網路層實現數據加密。這就是為什麼我們說OSI模型的層次劃分並不是絕對的。

儘管OSI模型的層次劃分在實際應用中可能並不絕對,但它仍然是理解和描述網路系統的一種重要工具。OSI(Open Systems Interconnection)模型的主要目的是為了提供一種通用的、理論性的框架,讓我們能夠更好地理解和描述網路系統中不同部分的工作原理和它們之間的交互。雖然在實際的網路協議和應用中,不一定嚴格遵循OSI模型的層次劃分,但OSI模型仍然提供了一種有用的工具來理解複雜的網路系統

在OSI模型中,第1層(實體層)到第3層(網路層)主要處理硬體與網路傳輸相關的問題,包括數據的實際傳輸、網路交換、路由等等,這些層通常由硬體設備(如網路卡、交換機、路由器等)和相關的驅動程式來實現。

另一方面,第4層(傳輸層)到第7層(應用層)主要關心如何在這個傳輸網路上建立有效的通訊,這包括了確保數據可靠地從源點到達目的地(如TCP協議的工作)、提供給應用程式使用的通訊服務(如HTTP協議的工作)、資料的格式轉換和加密等等,這些層的實現主要在軟體中完成。

因此,一些具有豐富功能的軟體或應用程式,可能會跨越OSI模型中的多層來提供服務。例如,一個網頁伺服器可能需要處理從TCP連接的管理(傳輸層)到HTTP請求的解析(應用層),甚至可能包括加密(表示層)。同時,由於這些層都在軟體中實現,開發者有更大的靈活性來實現跨層的功能。

但是,硬體層(1-3層)的功能則較固定,因為它們直接與網路傳輸的物理現象打交道,如電信號的傳輸、數據包的路由等,這些通常不會在應用程式中進行操作或修改,而是由硬體設備和驅動程式來管理。

網際網路協議模型

網際網路協議模型(Internet Protocol Suite)通常被稱為TCP/IP模型,它是一個分層的網路架構,包括四個層次。這四個層次分別是:

  1. 應用層(Application Layer):這一層處理與應用程序的通信和數據傳輸,例如HTTP、FTP、SMTP等。
  2. 傳輸層(Transport Layer):這一層主要負責端對端的通信,例如TCP和UDP。
  3. 網際網路層(Internet Layer):這一層主要負責封包的路由和傳遞,例如IP協議。
  4. 網路存取層(Network Access Layer):這一層處理與實體網路的通信,包括數據鏈路層和物理層的功能,例如以太網和Wi-Fi。

這個模型與OSI模型有些相似,但更簡單,並且更直接反映了實際的網際網路協議的設計和實現。

兩個概念的模型的層級比較

  • 應用層(Application Layer):對應於OSI模型的第4層(傳輸層)到第7層(應用層)。
  • 傳輸層(Transport Layer):對應於OSI模型的第4層(傳輸層)。
  • 網際網路層(Internet Layer):對應於OSI模型的第3層(網路層)。
  • 網路存取層(Network Access Layer):對應於OSI模型的第1層(物理層)和第2層(資料連接層)。

這些對應關係是大致的,因為兩個模型在設計和目的上有一些差異。TCP/IP模型更侧重於實際的網際網路協議結構,而OSI模型則是一個理想化的、更通用的網路架構參考模型。

封包傳送流程

以一個用戶從他的電腦訪問某個網站為例,以敘事的方式描繪整個過程。

  1. 應用層開始動作:用戶打開瀏覽器,輸入想訪問的網站的URL。瀏覽器解析URL並創建一個HTTP請求。
  2. 傳輸層協同作戰:操作系統的TCP協議堆棧接收到HTTP請求後,將其分割成合適大小的段,每一個段包含了目的地的IP地址和端口號。
  3. 網際網路層導航:這些段被打包成數據包,並由IP協議處理。IP協議會查找目的地的路由,並將數據包指向該方向。
  4. 資料連接層的傳輸:數據包到達資料連接層,被封裝成幀,包括MAC地址等信息,通過網絡介面卡(NIC)發送出去。
  5. 穿越本地網絡:封包穿越用戶的本地網絡,可能經過交換機和路由器等設備。
  6. 經過互聯網:封包繼續通過各種路由器和交換機,穿越互聯網,可能經歷多次轉發和路由選擇。
  7. 到達目的地伺服器:最終,封包到達目標伺服器的網絡,經過其防火牆、負載平衡器等,到達伺服器的NIC。
  8. 數據包的解封裝:封包在目標伺服器的OS中被解封裝,首先在資料連接層解讀MAC地址,然後在網際網路層解析IP,再到傳輸層解析TCP信息,最終到達應用層。
  9. 伺服器處理請求:伺服器的網絡應用(例如Web伺服器軟件)處理HTTP請求,讀取相應的網頁內容。
  10. 回應的路程:伺服器創建HTTP回應,並且沿著相同的路徑,但方向相反,將數據回傳到用戶的電腦。
  11. 在用戶端解析回應:用戶的操作系統和瀏覽器解析回應,渲染網頁,最終展示給用戶。