IT 基礎知識 ch01 網路基礎:一個封包的旅程
下一章→
CH 01 新手先修

網路基礎:一個封包的旅程

IP 位址公有/私有 IPPortTCP/UDPNATLatency vs Throughput

這一章是整個 AWS 筆記的網路地基。你在瀏覽器按下 Enter 的那一刻,資料被切成一個個「封包」寄往世界另一端——本章跟著這個封包走一趟,把 IP、Port、TCP/UDP、NAT 這些 AWS 筆記「直接拿來用」的詞一次補齊。讀完後再回去看 EC2(ch02)、負載平衡(ch03)、VPC(ch06)會順很多。

你在瀏覽器輸入網址按下 Enter,資料並不是「一整包」送出去的——它會被切成很多個封包(packet),像一箱貨拆成好幾個包裹分批寄送。既然是寄包裹,每個包裹上就必須寫「收件地址」和「寄件地址」,這個地址就是 IP 位址。

  • IPv4:最常見的格式,4 組 0~255 的數字,例如 192.168.1.10。總共只有約 43 億個(32 bit),早就不夠全世界用了。
  • IPv6:為了解決 IPv4 耗盡而生的新格式(128 bit,冒號分隔的十六進位,如 2001:db8::1),數量多到幾乎用不完。考題看到「IPv4 位址不足」的解法之一就是啟用 IPv6。
  • 一台機器可以有多個 IP:IP 其實是綁在「網卡」上,一台機器插幾張網卡就能有幾個 IP。AWS 的 ENI(Elastic Network Interface)就是「虛擬網卡」,可以從一台 EC2 拔下來裝到另一台上,IP 跟著網卡走。
💡 AWS 對應:EC2 的私有 IP 就掛在它的 ENI 上;一台 EC2 掛幾張 ENI,就有幾個 IP。之後在 ch02 看到 ENI 就是這個東西。
  • 公有 IP(Public IP):全世界唯一、登記在冊,任何人從網際網路都能直接找到你。像「登記在政府的正式門牌地址」。數量有限,要跟供應商租。
  • 私有 IP(Private IP):只在「自家內網」有效的地址,像「公司內部的分機號碼」——每家公司都可以有分機 1001,彼此不衝突,但你沒辦法從外面直接撥某家公司的分機。
  • RFC 1918 保留網段:國際規範劃了三段位址「永遠只給內網用」,網際網路上不會有人使用:
    ・10.0.0.0/8(空間最大,企業與雲端最愛)
    ・172.16.0.0/12(172.16.x.x ~ 172.31.x.x)
    ・192.168.0.0/16(家用路由器最常見)
  • 這就是為什麼 AWS 的 VPC 教學幾乎都用 10.0.0.0/16——VPC 是你的私有網路,理當從私有網段挑一塊來用,而 10.x 空間最大最好切。
  • AWS 的三種 IP:
    ・私有 IP:每台 EC2 一定有,VPC 內互相溝通用。
    ・公有 IP:Public Subnet 的 EC2 可以配一個,但停機再開會換一個新的。
    ・Elastic IP:固定不變的公有 IP,租下來就是你的,適合「對外 IP 不能變」的場景。
⭐ 考試技巧:看到 10.x.x.x、172.16~31.x.x、192.168.x.x 就是私有 IP——它自己出不了網,一定要靠 NAT 或 Internet Gateway 幫忙(見下方 NAT 卡)。

IP 只能幫封包找到「那台機器」,但一台機器上往往同時跑很多服務——網頁伺服器、資料庫、SSH 遠端登入。封包到門口之後要進哪個房間?靠 Port(埠號)。

  • 類比:IP 是大樓地址,Port 是房號。寄給 10.0.1.5:443 的意思是「10.0.1.5 這棟樓的 443 號房」。
  • Port 是 0~65535 的數字,知名服務有約定俗成的固定房號:
    ・22 = SSH(遠端登入 Linux)
    ・80 = HTTP(未加密網頁)
    ・443 = HTTPS(加密網頁)
    ・3306 = MySQL、5432 = PostgreSQL、53 = DNS
  • 「開放某個 Port」的意思是:防火牆規則允許外面的人連到那個房號。反過來說,沒開的房號就算服務在跑,外面也敲不到門。
💡 讀懂這張卡就讀懂 Security Group:SG 的每條規則就是「協定 + Port + 來源」三件事。例如「允許 TCP 443 來自 0.0.0.0/0」白話是「任何人都可以走 HTTPS 進來」;「允許 TCP 22 來自公司 IP」是「只有公司網路能 SSH 進來」。

封包在網路上旅行時可能會遺失、也可能亂序抵達。TCP 和 UDP 是兩種不同的「寄送策略」,差別在願不願意為可靠性付出速度代價。

  • TCP(掛號信):
    ・寄之前先跟對方「握手」確認在家(建立連線,俗稱三次握手)。
    ・每個封包都要對方「簽收」(ACK),沒簽收就重寄。
    ・亂序抵達會自動排回正確順序。
    ・可靠,但多了來回確認的成本。網頁、API、資料庫連線全都用 TCP——資料少一個 byte 都不行。
  • UDP(明信片):
    ・不握手、不簽收、丟了就丟了,寄了就不管。
    ・快、延遲低,適合「掉一點沒關係、即時性優先」:視訊通話、線上遊戲、直播,以及 DNS 查詢(掉了再問一次就好)。
⭐ 判斷口訣:要「一個都不能少」→ TCP;要「快、即時、掉一點沒差」→ UDP。
💡 AWS 對應:NLB(Network Load Balancer)工作在 Layer 4,處理 TCP/UDP 流量;ALB 工作在 Layer 7 只懂 HTTP。考題看到「UDP 流量」或「數百萬請求、超低延遲」→ 選 NLB(詳見 AWS ch03)。

問題來了:私有 IP 在網際網路上沒人認得(大家都可以用 10.0.1.5,回信要寄給誰?),那 Private Subnet 裡的機器要怎麼下載系統更新?答案是 NAT(Network Address Translation,網路位址轉換)。

  • 運作原理:內網機器要出門時,NAT 設備把封包上的「寄件人」從私有 IP 改寫成 NAT 自己的公有 IP,並在小本子記下「這筆對話是 10.0.1.5 發起的」;回信回來時查小本子,轉交回正確的內網機器。
  • 類比:全家共用一支市內電話。每個人(私有 IP)都能打出去,接電話的人只看得到「這通來自王家」(公有 IP);回撥進來時由接線的媽媽(NAT)依通話紀錄轉交。
  • 關鍵特性——單向性:內部可以主動打出去,外部卻無法主動打進來——因為小本子只記「由內部發起」的對話,陌生來電查無紀錄就掛掉。所以 NAT 天生自帶一層保護。
  • 你家的 WiFi 路由器每天都在做這件事:全家手機電腦都是 192.168.x.x,共用一個電信公司給的公有 IP 上網。
💡 AWS 對應:NAT Gateway 就是 AWS 代管的 NAT 設備。AWS ch06 的經典考點「Private Subnet 的 EC2 要下載更新、但不允許外部連入 → 在 Public Subnet 放 NAT Gateway」,原理就是這張卡。

AWS 筆記裡「低延遲」「高吞吐」出現的頻率極高,但這兩個詞常被混用。用高速公路類比一次分清楚:

  • Latency(延遲):一個封包從出發到抵達要多久,單位是毫秒(ms)。像「從家裡開到公司要幾分鐘」——主要取決於距離和路上的關卡數。
  • Throughput(吞吐量):單位時間內能通過多少資料量(如 Mbps、MB/s)。像「這條路一小時能通過幾台車」——取決於車道數(頻寬,bandwidth)。
  • 兩者是獨立的:衛星網路頻寬可以很大(一次載很多)但延遲很高(訊號要上太空繞一圈);市區騎樓小路延遲低但一次過不了幾台車。
  • 降低延遲的兩招:① 縮短距離——把內容搬到離使用者近的地方(這就是 CDN 的原理,見基礎篇 ch02);② 走專用道路——不跟別人擠公共網路(這就是 AWS Direct Connect 專線的賣點)。
⭐ 考題翻譯機:「全球使用者抱怨載入慢」→ 延遲問題 → CloudFront/Global Accelerator;「要搬大量資料、速度取決於頻寬」→ 吞吐問題。EBS 也分 IOPS(每秒讀寫「次數」)和 Throughput(每秒讀寫「MB 數」)兩種指標,資料庫重 IOPS、大檔案串流重 Throughput。
TCP vs UDP
特性TCPUDP
類比掛號信(要簽收)明信片(寄了就不管)
建立連線先三次握手確認對方在家不握手,直接送
可靠性掉包重傳、自動排序掉了就掉了
速度/延遲多了確認成本,稍慢快、延遲低
典型用途網頁、API、資料庫視訊通話、遊戲、DNS 查詢
AWS 對應ALB(L7 HTTP)底層也是 TCP需要 UDP → 只能選 NLB(L4)
公有 IP vs 私有 IP vs Elastic IP
特性公有 IP私有 IPElastic IP
誰找得到全網際網路只有同一個內網(VPC 內)全網際網路
唯一性全球唯一各家內網可重複(10.x/172.16-31.x/192.168.x)全球唯一且綁定你的帳號
EC2 停機再開會換一個新的不變不變
典型用途Public Subnet 的 EC2 臨時對外VPC 內部溝通(一定有)對外 IP 不能變的服務(如 DNS 直指 IP)
常用 Port 速查(看懂 SG 規則必備)
Port服務白話哪裡會遇到
22SSH遠端登入 Linux 主機SG 開 22 給跳板機/自家 IP
80HTTP未加密網頁ALB Listener、常設定轉導到 443
443HTTPS加密網頁(TLS)對外服務幾乎都開這個
3306MySQLMySQL/Aurora 資料庫連線RDS 的 SG 只對 App 層開 3306
5432PostgreSQLPostgreSQL 資料庫連線RDS for PostgreSQL
53DNS網域名稱查詢(多走 UDP)Route 53 的 53 就是這個 Port

練習題 點選選項查看解析

0 / 8
01 / 8
下列哪一個是私有 IP 位址(無法直接從網際網路連到)?
A 8.8.8.8
B 10.0.1.5
C 52.95.110.1
D 203.0.113.7
解析
RFC 1918 保留了三段私有網段:10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。10.0.1.5 落在 10.0.0.0/8 內,是私有 IP,只在內網(如 VPC)有效。8.8.8.8 是 Google 的公共 DNS,52.95.x.x 是 AWS 的公有位址段,203.0.113.x 雖是文件範例用段但不屬於私有網段。
02 / 8
一台伺服器同時提供 HTTPS 網頁(443)和 MySQL 資料庫(3306)服務。客戶端的封包到達這台機器後,是靠什麼決定要交給哪個服務處理?
A IP 位址
B MAC 位址
C Port(埠號)
D DNS 紀錄
解析
IP 只能把封包送到「那台機器」(大樓地址),同一台機器上的多個服務靠 Port(房號)區分:連 443 的交給網頁伺服器、連 3306 的交給 MySQL。這也是為什麼防火牆規則(如 Security Group)都是以「協定 + Port + 來源」為單位設定。
03 / 8
你要架設一個即時語音通話服務,需求是「延遲越低越好,偶爾掉一兩個封包造成細微雜音可以接受」。應該選哪種傳輸協定?
A TCP,因為它可靠
B UDP,因為它不需握手與重傳,延遲最低
C HTTP,因為它是網頁標準
D 一定要 TCP,因為 UDP 無法傳語音
解析
UDP 是「明信片」:不握手、不等簽收、掉了不重傳,因此延遲最低——即時語音掉一個封包只是瞬間雜音,但若用 TCP 等重傳反而會卡頓。反之,網頁與資料庫「一個 byte 都不能少」才需要 TCP。AWS 對應:需要 UDP 的負載平衡只能選 NLB(Layer 4)。
04 / 8
Private Subnet 的 EC2 透過 NAT Gateway 成功下載了系統更新。此時網際網路上的攻擊者能不能透過同一個 NAT Gateway 主動連入這台 EC2?
A 能,因為 NAT 已經打通了雙向通道
B 不能,NAT 只轉發「由內部發起」的連線,外部主動連入查無對應紀錄會被丟棄
C 能,只要攻擊者知道 EC2 的私有 IP
D 不能,因為 NAT Gateway 會加密所有流量
解析
NAT 的轉換表只記錄「由內部發起」的對話(像通話紀錄),回應封包比對得到紀錄才會轉交回內網;外部主動發起的連線查無紀錄,直接丟棄。這個單向性就是 NAT 自帶的保護,也是「Private Subnet 可出網下載、但外部無法連入」這個經典架構的原理。NAT 不做加密,選項 4 錯誤。
05 / 8
你的應用程式對外服務的 IP 位址被客戶寫死在防火牆白名單中,絕對不能變。但 EC2 的公有 IP 在停機再啟動後會更換。該怎麼辦?
A 改用私有 IP 對外服務
B 每次重開機後通知所有客戶更新白名單
C 使用 Elastic IP:固定不變的公有 IP,綁定帳號直到你主動釋放
D 改用 IPv6 就不會變了
解析
Elastic IP 是「租下來就是你的」固定公有 IP,可以綁到 EC2(或 ENI)上,停機再開也不變,換機器時還能把它搬過去。一般公有 IP 是動態借用的,停機再開就換新;私有 IP 無法從網際網路連入,不能對外服務。
06 / 8
你的網站伺服器在美國,台灣使用者抱怨「網頁要等很久才開始載入」。從網路特性來看,這主要是什麼問題?最直接的解法方向是?
A 吞吐量問題,加大伺服器頻寬
B 延遲問題,把內容快取到離使用者近的節點(CDN,如 CloudFront)
C Port 問題,改用 80 傳輸比較快
D IP 問題,改用公有 IP
解析
「等很久才開始載入」是延遲(latency)問題——封包要橫跨太平洋來回,距離決定了時間下限,加大頻寬(吞吐量)也無法縮短距離。解法是縮短距離:CDN(CloudFront)把內容複製到全球邊緣節點,使用者就近取得。分清楚:載入「開始得慢」看延遲,「傳輸大檔案慢」看吞吐/頻寬。
07 / 8
Security Group 中有一條規則:「允許 TCP、Port 22、來源 203.0.113.0/24」。這條規則的白話意思是?
A 允許任何人用 SSH 連入這台機器
B 允許 203.0.113.0~203.0.113.255 這個網段的來源用 SSH 連入
C 允許這台機器對 203.0.113.0/24 發起 SSH 連線
D 封鎖 203.0.113.0/24 的 SSH 連線
解析
拆解三要素:協定 TCP + Port 22(SSH 的固定房號)+ 來源 203.0.113.0/24(/24 表示前 24 bit 固定,即 203.0.113.0~255 共 256 個位址)。合起來就是「只允許這個網段的人 SSH 進來」。注意這是 Inbound(連入)規則,不是機器對外發起;SG 也只有 Allow 沒有 Deny(想封鎖特定 IP 要用 NACL,見 AWS ch06)。
08 / 8
為什麼建立 VPC 時,CIDR 都建議從 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 這三段裡挑,而不是隨便選一段?
A 因為這三段的網速比較快
B 因為這三段是 RFC 1918 保留的私有網段,保證不會與網際網路上的真實位址衝突
C 因為 AWS 只支援這三段
D 因為這三段免費,其他要收費
解析
如果 VPC 用了別人的公有網段(例如拿 Google 的 8.8.8.0/24 來用),VPC 內的機器想連真正的 8.8.8.8 時,路由會以為目的地在自己內網,永遠出不去。RFC 1918 三段保證網際網路上沒人用,所以怎麼用都不會撞。AWS 技術上允許你設定其他網段,但強烈不建議——這是網路規範問題,跟速度或費用無關。

點擊卡片翻面查看答案,共 10 張。

QUESTION
IP 和 Port 的一句話類比?
點擊翻面
ANSWER
IP = 大樓地址(找到那台機器)
Port = 房號(找到機器上的哪個服務)
寫法:10.0.1.5:443 = 那棟樓的 443 號房
點擊翻回
QUESTION
RFC 1918 三段私有網段?
點擊翻面
ANSWER
10.0.0.0/8(空間最大,雲端最愛)
172.16.0.0/12(172.16~31.x.x)
192.168.0.0/16(家用路由器)
→ 看到就知道:私有 IP,自己出不了網
點擊翻回
QUESTION
常考 Port:22 / 80 / 443 / 3306 / 53 各是什麼?
點擊翻面
ANSWER
22 = SSH(遠端登入)
80 = HTTP(未加密網頁)
443 = HTTPS(加密網頁)
3306 = MySQL
53 = DNS(多走 UDP)
點擊翻回
QUESTION
TCP vs UDP 的類比與判斷口訣?
點擊翻面
ANSWER
TCP = 掛號信:握手+簽收+重傳,可靠但慢
UDP = 明信片:寄了就不管,快但可能掉
口訣:一個都不能少→TCP;快與即時優先→UDP
點擊翻回
QUESTION
NAT 在做什麼?為什麼外部連不進來?
點擊翻面
ANSWER
出門時把「寄件人」從私有 IP 改寫成公有 IP,並記錄對話
回應比對紀錄才轉交回內網
外部主動連入查無紀錄→丟棄(單向性=天然保護)
點擊翻回
QUESTION
Latency 和 Throughput 差在哪?
點擊翻面
ANSWER
Latency(延遲)= 一個封包要走多久(ms),取決於距離
Throughput(吞吐)= 單位時間能載多少資料,取決於頻寬
兩者獨立:衛星網路吞吐大但延遲高
點擊翻回
QUESTION
AWS 三種 IP:私有 / 公有 / Elastic 的差別?
點擊翻面
ANSWER
私有 IP:每台 EC2 必有,VPC 內溝通
公有 IP:對外用,但停機再開會換
Elastic IP:固定不變的公有 IP,綁帳號,可搬移
點擊翻回
QUESTION
ENI 是什麼?
點擊翻面
ANSWER
Elastic Network Interface = 虛擬網卡
IP 綁在網卡上,網卡可以從一台 EC2 拔下來裝到另一台
一台 EC2 掛幾張 ENI 就有幾個 IP
點擊翻回
QUESTION
「需要 UDP」的負載平衡器該選誰?為什麼?
點擊翻面
ANSWER
NLB(Network Load Balancer)
它工作在 Layer 4(TCP/UDP 層)
ALB 在 Layer 7 只懂 HTTP,處理不了 UDP
點擊翻回
QUESTION
降低延遲的兩個經典方向?對應哪些 AWS 服務?
點擊翻面
ANSWER
① 縮短距離:內容放到離使用者近的節點 → CloudFront(CDN)
② 走專用道路:不擠公共網路 → Direct Connect 專線
(Global Accelerator = 讓流量早點上 AWS 骨幹)
點擊翻回