🌐 網路協定與基礎知識完整指南

📋 目錄

🚀 基礎概念

HTTP vs HTTPS

HTTP: HyperText Transfer Protocol 超文本傳輸協定
HTTPS: HyperText Transfer Protocol Secure 超文本傳輸安全協定 (SSL/TLS 加密)
網址組成: 通訊協定://主機名稱(Hostname)/路徑

Client vs Server

類型 功能 舉例
Client(客戶端) 主動發出請求的一方 瀏覽器、手機APP
Server(伺服器) 等待並回應請求的一方 Web Server、資料庫伺服器

常見伺服器類型

類型 功能 預設埠口 常用軟體
Web Server 提供網站內容 80 (HTTP), 443 (HTTPS) Apache, Nginx, IIS
DNS Server 域名解析 53 BIND, Unbound
Mail Server 電子郵件服務 25 (SMTP), 143 (IMAP) Postfix, Dovecot
SSH Server 遠端登入 22 OpenSSH
DHCP Server 自動分配IP 67/68 ISC DHCP, dnsmasq

📚 OSI 七層模型 vs TCP/IP 四層模型

OSI: Open Systems Interconnection(開放式系統互連)
由國際標準化組織(ISO)提出,目的是標準化網路協定設計。

為什麼要有分層模型?

因為要有標準 → 有了標準大家生產依照標準 → 國際通用網路
第7層 - 應用層 (Application) | HTTP, FTP, SMTP
第6層 - 表示層 (Presentation) | 加密, 壓縮, 格式轉換
第5層 - 會話層 (Session) | 建立/管理連線
第4層 - 傳輸層 (Transport) | TCP, UDP
第3層 - 網路層 (Network) | IP, ICMP, 路由
第2層 - 資料鏈結層 (Data Link) | MAC, Ethernet
第1層 - 實體層 (Physical) | 網路線, 電壓, Wi-Fi

OSI vs TCP/IP 對照

OSI 七層 TCP/IP 四層 功能說明 協定範例
應用層 + 表示層 + 會話層 應用層 使用者介面與應用程式 HTTP, FTP, SMTP
傳輸層 傳輸層 可靠傳輸與錯誤控制 TCP, UDP
網路層 網路層 路由與封包傳送 IP, ICMP
資料鏈結層 + 實體層 網路介面層 實體傳輸 Ethernet, Wi-Fi

🔗 TCP/IP 協定族

TCP vs UDP

特性 TCP UDP
連線方式 需要建立連線 無連線
可靠性 保證送達、順序正確 不保證送達
速度 較慢(有確認機制) 較快(無確認機制)
適用場景 網頁、檔案傳輸 即時通訊、線上遊戲

TCP 三次握手

1. Client → Server
SYN=1, Seq=x
2. Server → Client
SYN+ACK, Ack=x+1
3. Client → Server
ACK=1, Ack=y+1
白話解釋:
1. 我要跟你聊天
2. 好,我也想跟你聊天
3. 那我們開始吧

TCP 四次揮手

1. Client → Server
FIN=1
2. Server → Client
ACK=1
3. Server → Client
FIN=1
4. Client → Server
ACK=1

IP 協定

IP (Internet Protocol) 是網路層的核心協定,負責:
  • 地址指定:封包要去哪裡
  • 路由尋找:幫封包找路
  • 封包切割:資料太大時分割傳送
版本 IPv4 IPv6
地址長度 32位元 (192.168.1.1) 128位元 (2001:db8::1)
地址數量 約42億個 幾乎無限
使用狀況 主流使用中 越來越普及

🌐 HTTP/HTTPS 協定

Referer Header

當你從 A 網頁點擊連結到 B 網頁時,瀏覽器會在請求中自動附帶 Referer,內容是 A 的網址。
GET /page2.html HTTP/1.1 Host: another-site.com Referer: https://example.com/page1.html User-Agent: Mozilla/5.0 ...

Referer 的用途

用途 說明
追蹤來源 廣告、網站分析工具了解使用者來源
安全檢查 防止 CSRF 攻擊
記錄分析 網站後台分析流量來源
注意: Referer 可以被偽造或關閉!不能完全信任此欄位。

Webhook vs 一般 POST

Webhook: 事件驅動的 HTTP 回調機制,系統主動通知其他系統。
特點 一般POST請求 Webhook
觸發方式 客戶端主動發起 服務端事件觸發
請求方向 客戶端 → 服務端 服務端 → 客戶端
時機 隨時可發送 特定事件發生時
頻率 按需發送 事件驅動,無法預測

SNI (Server Name Indication)

SNI 是 HTTPS 連線時,瀏覽器告訴伺服器「我要連的是哪個網域名稱」的機制。
為什麼需要 SNI?因為多個網站可能共用一個 IP,伺服器需要知道要提供哪個網站的憑證。

📍 網路位址系統

IP 位址與子網路遮罩

IPv4 位址: 192.168.0.11
子網路遮罩: 255.255.255.0
預設閘道: 192.168.0.1
子網路遮罩 網路/主機劃分 可容納主機數
255.255.255.0 前3組是網路,最後1組是主機 254台
255.255.0.0 前2組是網路,後2組是主機 65,534台
255.0.0.0 前1組是網路,後3組是主機 16,777,214台

MAC 位址與 ARP 協定

ARP: Address Resolution Protocol(位址解析協定)
用途:將 IP 位址轉換成 MAC 位址

ARP 運作流程

1. 查詢 ARP 快取
2. 發送 ARP 請求
(廣播)
3. 目標回應
ARP 回覆
4. 記錄到快取
安全風險: ARP 可能遭受 ARP Spoofing/Poisoning 攻擊

localhost vs 127.0.0.1

項目 localhost 127.0.0.1
類型 主機名稱 IP 位址
需要DNS解析?
可能被修改? 可以(修改hosts檔案) 固定

IPv4 vs IPv6 的 Loopback

IPv4: 127.0.0.1
IPv6: ::1
這兩者不是轉換關係,而是各自協定中的 loopback 保留位址。

🔍 DNS 系統

DNS 解析流程

1. 瀏覽器快取
2. 作業系統快取
3. 路由器 DNS Relay
4. 外部 DNS Server

DNS 快取位置

快取位置 查詢順序 速度 範例
瀏覽器 第1層 最快 Chrome, Firefox 內建
作業系統 第2層 Windows DNS Resolver
路由器 第3層 中等 家用 Router DNS Relay
ISP/公共DNS 第4層 較慢 Google DNS (8.8.8.8)

ISP (Internet Service Provider)

網際網路服務提供者,讓你可以上網的公司。
台灣常見ISP: 中華電信、遠傳電信、台灣大哥大等

DNS 相關指令

# 查看 Windows DNS 快取 ipconfig /displaydns # 清除 Windows DNS 快取 ipconfig /flushdns # Chrome 的 DNS 快取 chrome://net-internals/#dns

📧 電子郵件協定

為什麼需要專用的 SMTP?

Email 不是一般資料,而是有特殊需求的通訊方式:
  • 有收件人/寄件人
  • 有主旨、信體、附件
  • 需要驗證來源(防詐)
  • 需要跨網域傳遞

Email 相關 RFC 標準

RFC 編號 標準名稱 功能
RFC 5321 SMTP 協定 郵件傳送
RFC 5322 Email 訊息格式 主旨、收件人、信體格式
RFC 2045-2049 MIME 附件、內容編碼
RFC 7208/6376/7489 SPF/DKIM/DMARC 寄件驗證、防詐

🔧 網路工具與指令

Ping 指令

Ping 是使用 ICMP 協定來測試網路連通性的工具。
ICMP: Internet Control Message Protocol(網際網路控制訊息協定)
用於網路狀況檢查,不是用來傳資料的。

為什麼 ICMP 沒有 Port?

層級 協定範例 是否有Port 處理方式
應用層 (Layer 7) HTTP, SMTP ✅ 有 應用程式處理
傳輸層 (Layer 4) TCP, UDP ✅ 有 根據Port分配
網路層 (Layer 3) IP, ICMP ❌ 沒有 作業系統核心處理
資料鏈結層 (Layer 2) Ethernet ❌ 沒有 硬體/驅動處理

Telnet vs SSH

特性 Telnet SSH
預設埠口 23 22
加密 ❌ 明文傳輸 ✅ 加密傳輸
安全性 不安全 安全
使用建議 已不建議使用 建議使用

curl vs Telnet

功能 curl telnet
用途 發送 HTTP/HTTPS 請求 建立 TCP 連線
支援協定 HTTP, FTP, SMTP 等多種 單純 TCP
自動化程度 自動送完整請求 需手動輸入
HTTPS支援 ✅ 完整支援 ❌ 不支援
# curl 範例 curl https://example.com curl -X POST -d 'name=John' https://api.example.com curl -H "User-Agent: Custom" https://example.com # 特殊用法:指定 SNI curl https://142.250.204.46 --resolve www.youtube.com:443:142.250.204.46

🔒 網路安全

本機傳輸安全性

Loopback 介面: 電腦內部的虛擬網路介面,讓電腦自己和自己通訊。
即使是本機傳輸,HTTP 依然是明文!只有 HTTPS 才會加密。
傳輸方式 是否加密 安全性 說明
http://localhost ❌ 明文 即使在本機也是明文
https://localhost ✅ 加密 需要 SSL 憑證

常見網路攻擊

攻擊類型 攻擊方式 防護方法
ARP Spoofing 偽造 MAC 位址 使用靜態 ARP 表
CSRF 跨站請求偽造 檢查 Referer、使用 CSRF Token
中間人攻擊 攔截通訊 使用 HTTPS、驗證憑證
重要提醒: Referer 可以被偽造,不能完全依賴它來做安全檢查!

HTTPS 憑證驗證

HTTPS 透過憑證 + 網域名稱來保證安全。直接輸入 IP 會造成憑證不匹配的問題。
為什麼直接輸入 IP 會不安全?因為憑證是針對網域名稱發放的,不是針對 IP。

🔍 故障排除與實用技巧

網路連線檢查步驟

1. ping localhost
(檢查本機)
2. ping 預設閘道
(檢查路由器)
3. ping 8.8.8.8
(檢查對外連線)
4. ping google.com
(檢查 DNS)

常用網路指令

# Windows 網路檢查指令 ipconfig /all # 查看網路設定 ipconfig /release # 釋放 IP ipconfig /renew # 更新 IP ipconfig /flushdns # 清除 DNS 快取 nslookup google.com # DNS 查詢 netstat -an # 查看網路連線 tracert google.com # 追蹤路由 # Linux/macOS 網路指令 ifconfig # 查看網路介面 ping -c 4 google.com # ping 4 次 dig google.com # DNS 查詢 netstat -tulpn # 查看埠口使用狀況 traceroute google.com # 追蹤路由

URI vs URL

URI: 統一識別碼(代號)- 用來識別資源
URL: 統一位置碼(地址)- 用來定位資源
概念 URI URL
功能 識別「我是誰」 定位「我在哪裡」
範例 mailto:user@example.com https://www.google.com
可否直接訪問 不一定 可以
關係 URL 是 URI 的一種 是 URI 的子集

TCP 資料分段與重組

HTTP 本身不負責分段,分段是 TCP 的工作。TCP 會自動將大資料分成符合 MTU 的片段傳送。

TCP 分段機制

挑戰 TCP 解決方式
封包順序錯亂 依照 Sequence Number 重排
封包丟失 超時重傳機制 (RTO)
封包重複 依序號去重,忽略重複資料
網路延遲 緩衝區等待,完整後才交給應用層

網路架構組件

設備 運作層級 功能 決策依據
Hub(集線器) 實體層 廣播所有資料 無智能
Switch(交換器) 資料鏈結層 學習 MAC 位址表 MAC 位址
Router(路由器) 網路層 跨網段路由 IP 位址

手機熱點原理

手機開熱點時同時扮演:
  • Wi-Fi 基地台 (Access Point)
  • DHCP Server(分配 IP)
  • NAT Router(位址轉換)
  • 網路閘道(上網出口)

學習建議

資安學習重點:
學資安,Python 要強!Python 是資安人員的瑞士刀,適用於滲透測試、分析、寫 PoC 等各種場景。
Kali Linux 預設帳號密碼: kali / kali

🎓 學習完成!

此指南涵蓋了網路協定的核心概念,從基礎到進階應用。
建議收藏此頁面,隨時回來複習重要概念!

記住: 理論與實作並重,多動手實驗才能真正掌握網路知識!