簡單理解 TCP/IP 模型

Hello Guys, I’m LukeTseng. 本篇將來介紹 TCP/IP 模型,若本篇文章有誤,歡迎各位指正,若你也喜歡這篇文章,不妨按下愛心跟追蹤我的個人頁面吧!

另外本篇文章主要針對上課內容製作筆記,斟酌參考~

為什麼要有 TCP/IP 模型?

OSI Model v.s. TCP/IP Model

Image Source:TCP/IP Model - GeeksforGeeks

上圖是 OSI 模型與 TCP/IP 模型的對應關係,先只看 TCP/IP 就好。

首先要理解為什麼要有 TCP/IP 模型?

可以試想如果全世界不同語言的人要溝通,是不是要亂成一團?每個人只要各講各的就好了,而電腦也是一樣。mac、Windows 電腦、手機等,硬體設備都不同,為了讓這些設備能彼此傳送資料,所以就需要一套通用的溝通規則。

這套規則的標準,就叫做 TCP/IP 模型。其中 TCP 跟 IP 的意思分別是以下這兩個:

  • TCP:Transmission Control Protocol(負責確保資料送達)
  • IP:Internet Protocol(負責地址與路徑)

TCP/IP 是一個分層架構,從上圖也可看得出來。

分層概念

由於網路傳輸很複雜,所以偉大的電腦科學家把他切成 4 層來管理。每一層只專心做自己的事,做完就丟給下一層。

第四層:應用層(Application Layer)

【角色】:接待員、翻譯官。(註:可能或多或少有誤,我盡可能去描述每層的工作像什麼)

【功能】:像是與軟體(如 Google Chrome、Gmail、Line 等)之間的橋樑,連接軟體跟實際發送和接收資料的網路底層。也管理資料格式,以便發送方和接收方都能理解資料,進行加密以保護資料安全,以及進行會話管理以追蹤正在進行的連接。

【常見協議(Protocol)】:

  • HTTP/HTTPS:看網頁用。
  • SMTP/POP3:寄信/收信用。
  • FTP:傳輸檔案用。

第三層:傳輸層(Transport Layer)

【角色】:物流人員。

【功能】:決定資料(封包)怎麼送以及送到電腦裡的哪個程式。這有兩個最重要的協定:

  1. TCP(靠譜、慢):像掛號信,一定要將信送到收件人手上。

TCP 會檢查送信(送封包)的過程中有沒有誤,有的話會重新發送缺失的部分。

用途:網頁、Email。

  1. UDP(不靠譜、快):同樣拿寄信舉例,這就像是平信。

資料寄出去後就完全不管,也不知道這個資料會不會中途掉了(掉封包),或是被別人截走等等。

用途:視訊通話、直播、遊戲。

TCP 跟 UDP 的差別就是,是否提供了可靠性傳輸,TCP 可靠,而 UDP 不可靠。另外還有快與慢的差別,兩者各有優缺。

另外在這邊也有個重要的概念是 Port(通訊埠),是電腦作業系統中用來區分不同網路服務和應用程式的虛擬位置。

就像電話的分機號碼,幫電腦把網路上的資料正確傳送到對應的應用程式,使得同一台電腦可以同時處理多種不同的網路服務。

電腦若同時開著 Line、瀏覽器、Spotify,資料進來時怎麼知道給誰?就是靠 Port。

Port 通常以數字表示,所以也稱為 Port Number。

每個應用程式或服務會使用特定的 Port 號碼,像 HTTP 預設使用 Port 80。而 HTTPS 則使用 Port 443。

當一台電腦收到網路資料時,作業系統會根據 Port Number 將這些資料分配給相應的軟體或服務,確保資料不會混淆。

第二層:網際網路層(Network Layer)

【角色】:導航系統、快遞司機。

【功能】:這層最知名的就是 IP(Internet Protocol)。該層任務是處理地址和路徑,給每個設備一個 IP 位址,並決定走哪條路最快到達目的地。

【常見協議】:

  • IPv4 / IPv6:可想成網路身分證 / 門牌號碼。
  • ICMP(網際網路控制訊息協定:Internet Control Message Protocol):簡單來說就是檢查網路通不通。

ICMP 主要用於網路裝置之間傳送錯誤報告和診斷資訊。他可以幫你判斷資料是否有正確送到目的地,當資料封包在傳輸過程中產生問題的時候,如封包 timeout、無法到達目的地,ICMP 會將錯誤訊息發送回來源裝置,告訴你錯在哪。

而 ICMP 常用的診斷工具就是熟悉的 ping、traceroute。

第一層:網路存取層(Network Access Layer)

(也稱連結層 Link Layer)

【角色】:工人。

【功能】:

  • 資料變成電子訊號(0 和 1),透過網路線、光纖或 Wi-Fi 電波傳出去。
  • 負責將資料從一台裝置的網路層傳送到另一台裝置。
  • 只能在 LAN(區域網路)中傳輸。

【常見技術】:

  • Ethernet(乙太網路):有線網路技術,用光纖、雙絞線當作媒介傳輸。
  • Wi-Fi:無線傳輸,透過無線電波傳輸資料。

Ethernet 網路中的裝置用 MAC 地址作為識別碼,資料在網路上以封包形式傳送,並利用 CSMA/CD 協定來避免資料碰撞,提高傳輸效率。

這層處理資料時會把他封裝成資料幀(Data Frame),並用幀(Frame)當作傳輸的單位。

學術上分五層

TCP/IP five-layer

Image Source:https://www.researchgate.net/figure/The-TCP-IP-five-layer-model_fig1_358919795

學術上的分層將網路存取層(Network Access Layer)細分成兩個層次來看:

  1. 軟體 / 邏輯:資料連接層(Data Link Layer)
  2. 純硬:實體層(Physical Layer)

然後其他三層是沒變的。

【角色】:交通警察、區域物流員。

【功能】:負責同一條實體線路上,相鄰節點之間如何可靠地把網路層交給它的資料搬運過去,並包裝成幀(frame)送到下一個節點。

另外還有三個功能:

  1. 框架化(framing):把來自網路層的 datagram(像 IP 封包的東西)切成一個個可辨識的 frame,並在前後加上必要的控制資訊,讓接收端能知道 frame 的開始與結束。
  2. 糾錯(Correction):利用 header 與尾端的檢查碼來發現傳輸過程中 bit 被干擾的情況,有些資料連結層協定會處理重送,以提高傳輸可靠度。
  3. 流量控制與媒體存取控制(MAC):在多個裝置共用同一媒介(如同條乙太網、同段無線頻道)時,協調誰可以在什麼時候發送,避免互相碰撞或淹沒接收端。

然後有個很重要的設備叫做 Switch(交換器),主要就是在 data link layer 運作。它依 MAC 位址學習各個主機在哪個實體埠,然後只把 frame 轉送到該埠,這樣在同一個 LAN 裡面就能有效減少不必要的廣播與碰撞。

第一層:實體層(Physical Layer)

實體層位於 TCP/IP 模型中的最底層。

【功能】:把電腦裡的數位訊號(0 / 1),轉換成電壓(高低電位)、光(光纖亮滅)或無線電波,然後發射出去。

實體層負責定義硬體的物理特性與電氣規格,確保發送端送出的 1,接收端收到的也是 1,不會因為訊號衰減或干擾變成 0。

而實體層的規範通常包含以下幾個面向:

  1. 硬體介面與接頭規格:定義 RJ-45 網路孔(一般常看到 PC 背板插的網路線)有幾根針腳、光纖接頭的形狀、USB 或天線的接口標準等。
  2. 傳輸媒介:雙絞線(UTP)、同軸電纜、光纖、以及無線傳輸時的空氣(電磁波頻段)等。
  3. 訊號編碼:定義如何將電腦裡的數位資料(0 / 1)轉換成適合在媒介上跑的類比訊號。
  4. 傳輸速率:規範線路上的傳輸速度(如 100 Mbps, 1 Gbps)以及發送端與接收端如何保持時鐘同步,以正確讀取每一個 bit。

資料連結層與實體層的差別

實體層把 bit 送出去後就不管了,而資料連結層則是把這些 bit 整成有意義的 frame,並加上檢查碼確認這串 bit 在傳送過程中是否有誤。

TCP/IP 的運作模式

image

Image Source(不知道是哪本書的圖,但我是從方格子上面擷取的):網際網路協定堆疊(五層)

例如要從 Source 端傳 line 給 Destination 端的電腦,line 是最頂層的 Application 層,一旦按下發送按鈕下去,就會將這個資料往下傳。傳給實體層後,可以看到圖中有一台 Link-layer switch,所以會經過 Data Link Layer -> Physical Layer,在實體層一樣繼續送資料給 Router(路由器)。

因為 Router 主要的功能是在不同的網路之間,根據 IP 位址來選擇最佳路徑並轉發資料。所以經過他的時候會經過 Network 層,最後發送給 Destination 端的電腦。

參考資料

TCP/IP Model - GeeksforGeeks

Day03 TCP/IP五層結構 | iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天

The TCP/IP five layer model | Download Scientific Diagram

網際網路協定堆疊(五層)

Port 像是分機號碼 - pala.tw

深入淺出網路技術:路由器、NAT 與 Port 的詳解

常用 TCP Port作用(各種Port介紹)-╭。☆║♡♥㊗-ⓨⓤⓝ-♡♥║☆。╮ |痞客邦

ICMP是什麼?ICMP功能、用途與資安風險完整解析|Skycloud

Ethernet介紹 - 大大通(繁體站)