TCP、HTTP/HTTPS、FTP 解析 + 面试回答参考

发布于:2025-08-11 ⋅ 阅读:(12) ⋅ 点赞:(0)

TCP、HTTP/HTTPS、FTP 解析 + 面试回答参考

在后端开发、网络编程以及运维面试中,TCP 协议、HTTP/HTTPS、FTP 是高频考点。本文将从原理、流程、面试常问问题出发,帮你一次性搞懂这些核心知识点。


一、TCP 三次握手

1. 作用

建立可靠连接,确保双方收发数据的能力正常。

2. 流程

  1. 第一次握手(客户端 → 服务端)

    • 发送 SYN=1seq=x
    • 表示“我想建立连接,我的初始序列号是 x”。
  2. 第二次握手(服务端 → 客户端)

    • 发送 SYN=1ACK=1ack=x+1seq=y
    • 表示“我同意建立连接,我的初始序列号是 y,并确认你的序列号”。
  3. 第三次握手(客户端 → 服务端)

    • 发送 ACK=1ack=y+1
    • 表示“我确认你的序列号,连接建立成功”。

3. 为什么不是两次?

因为两次握手无法确保双方的收发能力都正常,可能出现“半连接”问题。


面试回答参考:

TCP 采用三次握手建立连接。第一次握手客户端发送 SYN 请求,第二次握手服务端返回 SYN+ACK 确认,第三次握手客户端发送 ACK 确认,至此连接建立。三次握手的目的是防止已失效的连接请求报文突然又传到服务器,引起资源浪费,同时确保双方的收发能力正常。


二、TCP 四次挥手

1. 作用

安全释放 TCP 连接,确保数据传输完整。

2. 流程

  1. 第一次挥手(主动方 → 被动方)

    • 发送 FIN=1,表示“我没有数据发了,但还可以接收数据”。
  2. 第二次挥手(被动方 → 主动方)

    • 发送 ACK=1,确认收到对方的 FIN
  3. 第三次挥手(被动方 → 主动方)

    • 数据发送完毕后,发送 FIN=1,表示“我也没有数据发了”。
  4. 第四次挥手(主动方 → 被动方)

    • 发送 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 握手流程

  1. 客户端请求 HTTPS 连接。
  2. 服务端发送数字证书(含公钥)。
  3. 客户端验证证书,生成随机对称密钥,用公钥加密发送给服务端。
  4. 后续通信使用对称加密,提高效率。

4. 区别对比

对比项 HTTP HTTPS
端口 80 443
加密 SSL/TLS
安全性
性能 略低(加密开销)
证书 不需要 需要 CA 证书

面试回答参考:

HTTP 是明文传输,默认端口 80;HTTPS 在 HTTP 基础上通过 SSL/TLS 加密数据,默认端口 443,能防止中间人攻击和数据窃听。虽然加密会带来一定性能开销,但能保证数据的机密性、完整性和身份验证。


四、FTP 协议

1. 作用

文件传输协议(File Transfer Protocol),在客户端与服务器之间传输文件。

2. 端口

  • 控制连接(命令端口):21
  • 数据传输端口:20(主动模式)或随机高位端口(被动模式)

3. 模式

  1. 主动模式 (Active Mode)

    • 客户端告诉服务器“我在 X 端口等你”,服务器主动连接客户端传输数据。
    • 缺点:可能被客户端防火墙拦截。
  2. 被动模式 (Passive Mode)

    • 服务器告诉客户端“我在 Y 端口等你”,客户端主动连接服务器。
    • 常用于穿防火墙场景。

4. 缺点与改进

  • FTP 明文传输用户名、密码、文件内容
  • 可用 FTPS / SFTP 实现加密传输

面试回答参考:

FTP 用于文件传输,默认命令端口 21,数据端口 20(主动模式)或随机端口(被动模式)。主动模式下由服务器连接客户端,可能被防火墙阻止;被动模式下由客户端连接服务器,穿防火墙效果更好。FTP 传输是明文的,安全性低,可以使用 FTPS 或 SFTP 提升安全性。


五、总结

  • TCP 三次握手:确保双方收发能力正常
  • TCP 四次挥手:双方独立关闭连接
  • HTTP vs HTTPS:加密、端口、性能、安全性
  • FTP:文件传输、主动与被动模式、安全性提升方案

网站公告

今日签到

点亮在社区的每一天
去签到