一、先搞懂网络分层五层模型方便理解协议位置应用层给程序用HTTP、HTTPS、FTP、DNS、WebSocket传输层端到端数据传输TCP、UDP核心两个网络层跨主机寻址IP 协议、ICMP数据链路层局域网传输以太网、MAC 地址物理层网线、光纤、无线电信号核心关系应用层数据 → 交给传输层 TCP/UDP 封装 → IP 封装路由发送。二、传输层两大核心TCP vs UDP必考1. UDP 用户数据报协议核心特性无连接、不可靠无连接收发双方不用提前建立通道发之前不用握手发完不用断开不可靠不重传、不确认、不分流控、丢包不管面向报文保留每次发送边界一次发多少收多少不会粘包头部极小8 字节开销低速度快支持一对一、一对多广播、组播。适用场景允许少量丢包追求实时直播、视频通话、游戏、DNS 查询、语音通话。优缺点优点延迟极低、轻量、不用维护连接缺点丢包乱序无补救数据完整性无保障。2. TCP 传输控制协议核心特性面向连接、可靠、流式面向连接通信前必须三次握手建立连接结束四次挥手断开可靠传输应答 ACK 确认报文超时重传丢包自动补发序列号排序解决乱序去重重复数据包丢弃流量控制滑动窗口防止发送太快淹没接收方缓冲区拥塞控制控制全网流量避免网络拥堵面向字节流无消息边界会出现粘包问题需要程序手动分割数据仅一对一通信头部 20~60 字节开销更大。适用场景要求数据完整不丢失网页 HTTP、文件下载、数据库连接、SSH 远程登录。3. TCP、UDP 直观对比表格特性UDPTCP连接类型无连接面向连接握手 / 挥手可靠性不可靠丢包不处理可靠重传 / 排序 / 去重数据形式面向报文无粘包字节流存在粘包控制机制无流控、无拥塞控制滑动窗口、拥塞控制延迟低较高握手、重传开销头部开销极小 8 字节20~60 字节通信方式单播 / 广播 / 组播仅一对一单播典型业务直播、游戏、DNS、语音HTTP、文件传输、数据库4. TCP 关键机制详解1三次握手建立连接目标同步双方序列号、确认收发能力、协商窗口大小客户端 → 服务端SYN请求连接服务端 → 客户端SYNACK同意连接 确认收到客户端 SYN客户端 → 服务端ACK确认收到服务端 SYN握手完成连接就绪。2四次挥手断开连接TCP 全双工两边可单独关闭发送通道客户端发 FIN客户端不再发数据服务端回 ACK收到关闭请求服务端还能继续发剩余数据服务端发 FIN服务端数据发完关闭发送通道客户端回 ACK确认断开连接彻底释放3粘包问题TCP 是字节流内核缓冲区合并多条数据一起发送接收端无法区分原始消息边界。解决自定义分包协议长度头分隔、特殊分隔符。4滑动窗口流量控制接收方告诉发送方自己剩余缓冲区大小发送方不能超过窗口大小发送防止溢出。5拥塞控制慢启动、拥塞避免、快重传、快恢复防止大量数据包占满网络。三、应用层协议HTTP / HTTPS1. HTTP 超文本传输协议基础特点基于TCP默认端口 80无状态服务器不记录客户端身份每次请求独立明文传输数据裸奔抓包直接看到账号密码请求 - 响应模型客户端主动发请求服务端回复服务端无法主动推送基于文本可读性强分为请求行、请求头、请求体。HTTP 版本区别HTTP/1.0一次连接一次请求请求完立刻断开频繁握手性能差HTTP/1.1长连接 Keep-Alive一条 TCP 连接连续多次请求管线化头部冗余严重HTTP/2二进制帧、多路复用、头部压缩、服务端推送HTTP/3底层更换为 UDPQUIC 协议解决 TCP 队头阻塞弱网更流畅。无状态解决方案Cookie Session、Token、JWT。2. HTTPS HTTP TLS/SSL底层依然 TCP默认端口 443在 HTTP 和 TCP 中间加一层 TLS 加密通道三大能力加密传输数据对称加密第三方抓包看不懂身份认证CA 证书验证网站真实性防止钓鱼完整性校验防止数据传输中途被篡改通信流程先 TCP 三次握手 → TLS 握手协商加密算法、交换密钥 → 再传输 HTTP 明文数据被加密包裹。3. HTTP 请求常用方法GET获取资源参数放 URL无请求体可缓存POST提交数据登录、表单参数放请求体PUT更新资源DELETE删除资源HEAD只拿响应头不要页面内容4. 状态码分类1xx 信息、2xx 成功200 OK、3xx 重定向、4xx 客户端错误404 找不到、403 禁止、5xx 服务端错误500 服务器异常四、其他常见配套协议补充QUICHTTP3 底层基于 UDP实现可靠传输自带加密0-RTT 握手解决 TCP 队头阻塞移动端、短视频大量使用。WebSocket基于 HTTP 握手随后升级为长连接 TCP 通道双向实时通信服务端可主动推送消息聊天、实时看板。DNS基于 UDP53 端口域名转 IP大型解析会走 TCP。FTP文件传输控制通道 TCP21数据通道 20明文不安全现在多用 SFTP/HTTPS 传文件。五、完整通信流程示例浏览器访问网页 HTTPS浏览器输入网址shturl.cc/lXTXt3sABDNSUDP查询域名对应的服务器 IP客户端与服务器建立 TCP 三次握手TLS 握手协商加密密钥验证网站证书客户端发送加密 HTTP GET 请求服务器返回加密网页 HTML 数据浏览器解密渲染页面通信结束后 TCP 四次挥手断开连接。六、面试高频总结TCP 可靠靠什么序列号、ACK 确认、超时重传、流量 / 拥塞控制、去重排序为什么直播不用 TCPTCP 丢包会重传增加延迟实时画面卡顿UDP 丢几帧肉眼无感知HTTP 和 HTTPS 区别HTTPS 多 TLS 加密防窃听、篡改、钓鱼HTTP 无状态长连接 Keep-Alive 只是 TCP 连接复用不解决状态问题TCP 粘包根源字节流无消息边界UDP 面向报文不存在粘包HTTP3 改用 UDP规避 TCP 单个包阻塞整条连接的队头阻塞问题。