TCP、HTTP/HTTPS、FTP 解析 + 面試回答參考
在后端開發、網絡編程以及運維面試中,TCP 協議、HTTP/HTTPS、FTP 是高頻考點。本文將從原理、流程、面試常問問題出發,幫你一次性搞懂這些核心知識點。
一、TCP 三次握手
1. 作用
建立可靠連接,確保雙方收發數據的能力正常。
2. 流程
-
第一次握手(客戶端 → 服務端)
- 發送
SYN=1
,seq=x
- 表示“我想建立連接,我的初始序列號是 x”。
- 發送
-
第二次握手(服務端 → 客戶端)
- 發送
SYN=1
,ACK=1
,ack=x+1
,seq=y
- 表示“我同意建立連接,我的初始序列號是 y,并確認你的序列號”。
- 發送
-
第三次握手(客戶端 → 服務端)
- 發送
ACK=1
,ack=y+1
- 表示“我確認你的序列號,連接建立成功”。
- 發送
3. 為什么不是兩次?
因為兩次握手無法確保雙方的收發能力都正常,可能出現“半連接”問題。
面試回答參考:
TCP 采用三次握手建立連接。第一次握手客戶端發送 SYN 請求,第二次握手服務端返回 SYN+ACK 確認,第三次握手客戶端發送 ACK 確認,至此連接建立。三次握手的目的是防止已失效的連接請求報文突然又傳到服務器,引起資源浪費,同時確保雙方的收發能力正常。
二、TCP 四次揮手
1. 作用
安全釋放 TCP 連接,確保數據傳輸完整。
2. 流程
-
第一次揮手(主動方 → 被動方)
- 發送
FIN=1
,表示“我沒有數據發了,但還可以接收數據”。
- 發送
-
第二次揮手(被動方 → 主動方)
- 發送
ACK=1
,確認收到對方的FIN
。
- 發送
-
第三次揮手(被動方 → 主動方)
- 數據發送完畢后,發送
FIN=1
,表示“我也沒有數據發了”。
- 數據發送完畢后,發送
-
第四次揮手(主動方 → 被動方)
- 發送
ACK=1
,確認收到對方的FIN
,連接完全關閉。
- 發送
3. 為什么是四次?
因為 TCP 是全雙工的,關閉需要雙方分別發送 FIN
。
面試回答參考:
TCP 斷開連接需要四次揮手。第一次揮手由主動方發送 FIN 請求關閉,第二次由被動方 ACK 確認,第三次被動方發送 FIN 請求關閉,第四次主動方 ACK 確認。四次的原因是 TCP 是全雙工的,雙方需要分別關閉自己的發送通道。
三、HTTP 與 HTTPS
1. HTTP
- 端口:80
- 特點:明文傳輸,無加密;無狀態,需要 Cookie/Session 保存狀態。
2. HTTPS
- 端口:443
- 特點:基于 SSL/TLS 加密的 HTTP;傳輸過程加密(對稱 + 非對稱加密 + 數字證書)。
3. HTTPS 握手流程
- 客戶端請求 HTTPS 連接。
- 服務端發送數字證書(含公鑰)。
- 客戶端驗證證書,生成隨機對稱密鑰,用公鑰加密發送給服務端。
- 后續通信使用對稱加密,提高效率。
4. 區別對比
對比項 | HTTP | HTTPS |
---|---|---|
端口 | 80 | 443 |
加密 | 無 | SSL/TLS |
安全性 | 低 | 高 |
性能 | 高 | 略低(加密開銷) |
證書 | 不需要 | 需要 CA 證書 |
面試回答參考:
HTTP 是明文傳輸,默認端口 80;HTTPS 在 HTTP 基礎上通過 SSL/TLS 加密數據,默認端口 443,能防止中間人攻擊和數據竊聽。雖然加密會帶來一定性能開銷,但能保證數據的機密性、完整性和身份驗證。
四、FTP 協議
1. 作用
文件傳輸協議(File Transfer Protocol),在客戶端與服務器之間傳輸文件。
2. 端口
- 控制連接(命令端口):21
- 數據傳輸端口:20(主動模式)或隨機高位端口(被動模式)
3. 模式
-
主動模式 (Active Mode)
- 客戶端告訴服務器“我在 X 端口等你”,服務器主動連接客戶端傳輸數據。
- 缺點:可能被客戶端防火墻攔截。
-
被動模式 (Passive Mode)
- 服務器告訴客戶端“我在 Y 端口等你”,客戶端主動連接服務器。
- 常用于穿防火墻場景。
4. 缺點與改進
- FTP 明文傳輸用戶名、密碼、文件內容
- 可用 FTPS / SFTP 實現加密傳輸
面試回答參考:
FTP 用于文件傳輸,默認命令端口 21,數據端口 20(主動模式)或隨機端口(被動模式)。主動模式下由服務器連接客戶端,可能被防火墻阻止;被動模式下由客戶端連接服務器,穿防火墻效果更好。FTP 傳輸是明文的,安全性低,可以使用 FTPS 或 SFTP 提升安全性。
五、總結
- TCP 三次握手:確保雙方收發能力正常
- TCP 四次揮手:雙方獨立關閉連接
- HTTP vs HTTPS:加密、端口、性能、安全性
- FTP:文件傳輸、主動與被動模式、安全性提升方案