---
# System prepended metadata

title: 簡單理解 TCP/IP 模型
tags: [計算機網路, 網路, 網路概論, 電腦雜談, 計算機概論, 電腦, 電腦常識]

---

# 簡單理解 TCP/IP 模型

[TOC]

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

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

## 為什麼要有 TCP/IP 模型？

![OSI Model v.s. TCP/IP Model](https://hackmd.io/_uploads/rkgAGAQW-l.png)

Image Source：[TCP/IP Model - GeeksforGeeks](https://www.geeksforgeeks.org/computer-networks/tcp-ip-model/)

上圖是 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。

2. 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](https://hackmd.io/_uploads/S1p6USVb-g.png)

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）

然後其他三層是沒變的。

### 第二層：資料連結層（Data Link 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](https://hackmd.io/_uploads/Hy9JrLEbZl.png)

Image Source（不知道是哪本書的圖，但我是從方格子上面擷取的）：[網際網路協定堆疊（五層）](https://vocus.cc/article/67d972f9fd89780001ae1a7f)

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

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

## 參考資料

[TCP/IP Model - GeeksforGeeks](https://www.geeksforgeeks.org/computer-networks/tcp-ip-model/)

[Day03 TCP/IP五層結構 | iT 邦幫忙::一起幫忙解決難題，拯救 IT 人的一天](https://ithelp.ithome.com.tw/m/articles/10236217)

[The TCP/IP five layer model | Download Scientific Diagram](https://www.researchgate.net/figure/The-TCP-IP-five-layer-model_fig1_358919795)

[網際網路協定堆疊（五層）](https://vocus.cc/article/67d972f9fd89780001ae1a7f)

[Port 像是分機號碼 - pala.tw](https://pala.tw/what-is-port/)

[深入淺出網路技術：路由器、NAT 與 Port 的詳解](https://vocus.cc/article/67ff30f9fd897800018cca2e)

[常用 TCP Port作用(各種Port介紹)－╭。☆║♡♥㊗-ⓨⓤⓝ-♡♥║☆。╮ ｜痞客邦](https://yun1450.pixnet.net/blog/post/47494172)

[ICMP是什麼？ICMP功能、用途與資安風險完整解析｜Skycloud](https://www.skycloud.com.tw/news/93)

[Ethernet介紹 - 大大通(繁體站)](https://www.skycloud.com.tw/news/93)