🌐 網路協定與基礎知識完整指南
🚀 基礎概念
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 |
寄件驗證、防詐 |
🔒 網路安全
本機傳輸安全性
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
🎓 學習完成!
此指南涵蓋了網路協定的核心概念,從基礎到進階應用。
建議收藏此頁面,隨時回來複習重要概念!
記住: 理論與實作並重,多動手實驗才能真正掌握網路知識!