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:文件传输、主动与被动模式、安全性提升方案