尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

计算机网络笔记再战——理解几个经典的协议

发布时间:2026/9/18 21:52:55

资讯中心
01
ARTICLE

计算机网络笔记再战——理解几个经典的协议

计算机网络笔记再战——理解几个经典的协议
一、写在前面为什么要再战计算机网络协议很多人在学习计算机网络的路上都会经历这样的过程第一轮学习时被 OSI 七层模型、TCP 三次握手、HTTP 状态码、DNS 解析等概念轰炸得晕头转向感觉知识点多而零散工作一段时间后回头再看又会发现当时很多“背下来”的结论其实并没有真正理解。比如为什么建立连接要三次握手而不是两次为什么挥手要四次HTTPS 到底多做了什么事一次简单的网页请求背后究竟发生了什么这篇文章想做的事情就是把几个最经典、最常被提及的协议放在一起重新梳理一遍。我们不追求面面俱到地罗列所有协议而是聚焦于HTTP、HTTPS、TCP、UDP、IP、ARP、ICMP、DNS、DHCP这几个高频出现的经典协议把它们的工作原理、报文结构、关键机制以及实际应用串成一条线。文章会尽量把抽象的理论讲得直观一些也会给出必要的报文示例和对比表格方便复习和查阅。如果你正在准备面试或者在工作中需要排查网络问题抑或是单纯想把计算机网络这门课的知识体系重新夯实一遍希望这篇笔记能帮到你。阅读建议本文篇幅较长可以先快速浏览目录再根据自身薄弱点选择性精读文末附有经典面试题和易错点汇总适合临考前快速回顾。二、先搭好骨架分层模型与协议栈2.1 OSI 七层模型回顾理解任何网络协议都离不开对分层模型的把握。OSIOpen Systems Interconnection参考模型把网络通信拆分为七层从下到上依次为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每一层只关心自己负责的功能并为上一层提供服务同时调用下一层的服务。这种分层思想的核心价值在于“解耦”某一层的实现可以独立演进只要层间接口保持不变就不会影响其他层。例如底层无论使用光纤、双绞线还是无线通信上层 HTTP 应用的写法并不会因此改变。2.2 TCP/IP 四层模型实际互联网更多使用 TCP/IP 协议族所对应的四层模型它可以看作 OSI 模型的简化版本TCP/IP 四层常见协议对应 OSI 层应用层HTTP、HTTPS、DNS、DHCP、FTP、SMTP应用层、表示层、会话层传输层TCP、UDP传输层网络层IP、ICMP、ARP、路由协议网络层网络接口层以太网、Wi-Fi、PPP数据链路层、物理层我们通常把“数据从应用产生到线缆传输”的过程描述为封装与解封装应用层数据加上传输层头部变成数据段Segment加上网络层头部变成数据包Packet再加上链路层头部和尾部变成数据帧Frame最终以比特流形式发送出去。接收端则逐层解封装恢复出原始的应用数据。有了分层模型这个坐标系接下来就可以逐个剖析各个经典协议了。我们按照“从应用层往下”的顺序先从大家最熟悉的 HTTP 和 HTTPS 开始。三、HTTP万维网的通用语言3.1 HTTP 是什么HTTPHyperText Transfer Protocol超文本传输协议是应用层协议用于在客户端和服务器之间传输超文本资源。浏览器、移动 App、命令行工具等几乎所有需要通过 Web 获取资源的程序都离不开 HTTP。HTTP 的核心特点可以总结为无状态每个请求之间相互独立服务器默认不保存上一次请求的状态。为了在无状态协议之上实现登录、购物车等功能人们引入了 Cookie、Session、Token 等机制。基于请求-响应模型客户端主动发起请求服务器返回响应。可扩展通过方法、状态码、头部字段和 MIME 类型等机制HTTP 支持丰富多样的应用场景。3.2 HTTP 报文结构一条 HTTP 请求报文通常由请求行、请求头和可选的请求体组成。例如GET /index.html HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 Accept: text/html,application/xhtmlxml Connection: keep-alive第一行是请求行包含三个部分请求方法、请求目标路径和协议版本。后面每一行都是“字段名: 字段值”形式的请求头。GET 请求通常没有请求体POST、PUT 等请求则会在空行之后携带请求体。服务器返回的响应报文结构类似HTTP/1.1 200 OK Content-Type: text/html; charsetutf-8 Content-Length: 1024 Set-Cookie: session_idabc123; Path/; HttpOnly html.../html响应第一行是状态行包含协议版本、状态码和状态描述。状态码是 HTTP 中非常重要的概念下面单独展开。3.3 常见方法与状态码HTTP 方法描述了客户端希望对资源执行的操作。最常用的几个方法如下方法含义是否幂等GET获取资源参数通常放在 URL 中是POST提交数据通常用于创建资源或表单提交否PUT整体更新资源通常需要提交完整资源内容是DELETE删除资源是PATCH局部更新资源否HEAD与 GET 类似但只返回响应头不返回响应体是OPTIONS查询服务器支持的请求方法用于跨域预检等场景是“幂等”指的是同一个请求重复执行多次产生的结果与执行一次相同。GET、PUT、DELETE 通常要求幂等而 POST 一般不幂等。理解幂等性对接口设计和故障重试非常重要。状态码由三位数字组成第一位表示类别类别含义常见示例1xx信息响应表示请求已收到继续处理100 Continue、101 Switching Protocols2xx成功200 OK、201 Created、204 No Content3xx重定向需要客户端执行额外操作301 Moved Permanently、302 Found、304 Not Modified4xx客户端错误400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found、429 Too Many Requests5xx服务器错误500 Internal Server Error、502 Bad Gateway、503 Service Unavailable、504 Gateway Timeout其中 301 和 302 的区别、401 和 403 的区别、502 和 504 的区别都是面试中的高频考点。简要概括301 表示资源永久移动到新地址搜索引擎会更新索引302 表示临时跳转通常保留原地址。401 表示“需要认证”即用户没有提供有效凭证403 表示“认证了但没权限访问”。502 表示网关从上游服务器收到无效响应504 表示网关等待上游服务器响应超时。3.4 HTTP 的无状态与连接管理HTTP/1.0 默认每个请求建立一个独立的 TCP 连接请求完成后立即关闭这种方式在页面包含大量图片、脚本等资源时开销巨大。HTTP/1.1 引入了持久连接keep-alive允许在同一个 TCP 连接上串行复用同时支持管线化pipelining。不过管线化在实际中问题较多因为响应必须按顺序返回容易产生队头阻塞因此很多浏览器默认并未启用。为了缓解队头阻塞HTTP/2 引入了多路复用在单个 TCP 连接上同时传输多个请求和响应通过二进制分帧和流标识把不同请求关联起来响应可以交错到达而不必严格按序。HTTP/3 则进一步把传输层从 TCP 换成了基于 UDP 的 QUIC从根本上解决 TCP 层的队头阻塞问题这些内容会在后续章节继续展开。3.5 Cookie 与状态保持由于 HTTP 本身无状态Cookie 成为最经典的状态保持手段。服务器通过Set-Cookie响应头把一段小文本存到浏览器浏览器后续请求会自动通过Cookie请求头带回。Cookie 的典型属性包括Path限定 Cookie 生效的路径。Domain限定 Cookie 生效的域名范围。Expires / Max-Age设置过期时间。HttpOnly禁止 JavaScript 读取降低 XSS 窃取风险。Secure仅在 HTTPS 连接中传输。SameSite控制跨站请求时是否携带 Cookie用于缓解 CSRF。在实际工程中现代应用更倾向于使用 Token如 JWT配合 Authorization 请求头来传递身份信息以减少对 Cookie 的依赖降低 CSRF 风险。但 Cookie 在浏览器会话管理、跟踪和轻量状态保存等方面依然广泛使用。四、HTTPS给 HTTP 穿上安全外衣4.1 为什么需要 HTTPS明文 HTTP 存在三个典型安全风险窃听攻击者可以在网络链路上截获请求和响应内容包括账号密码、个人信息等。篡改中间人可以修改传输中的网页或接口数据插入广告甚至恶意代码。冒充攻击者可以伪造身份诱导用户访问钓鱼网站。HTTPS 就是在 HTTP 与 TCP 之间加入了一层 TLSTransport Layer Security安全传输层协议通过加密、完整性校验和身份认证来应对上述风险。网址通常以https://开头默认使用 443 端口。4.2 对称加密与非对称加密的配合要理解 HTTPS先要区分两类加密方式对称加密加密和解密使用同一个密钥速度快适合加密大量数据。难点在于如何安全地把密钥分发给通信双方。非对称加密使用公钥和私钥公钥加密的内容只有私钥能解开反之亦可。安全性高但计算速度慢适合加密少量数据或进行身份认证。HTTPS 的巧妙之处在于把两者结合起来使用非对称加密来进行密钥协商和身份认证协商出会话密钥后后续批量数据使用对称加密传输。这样既保证了安全性又兼顾了性能。4.3 TLS 握手过程以经典的 TLS 握手为例大致流程如下客户端 服务器 | --------- ClientHello ------------ | | -------- ServerHello ------------- | | -------- Certificate ------------ | | -------- ServerHelloDone -------- | | --------- ClientKeyExchange ------ | | --------- ChangeCipherSpec ------ | | --------- Finished --------------- | | -------- ChangeCipherSpec ------- | | -------- Finished ---------------- | | 后续使用对称密钥加密传输应用数据 |具体步骤可以拆解为ClientHello客户端发送支持的 TLS 版本、加密套件列表和随机数等信息。ServerHello服务器选择一套双方都支持的加密套件并返回自己的随机数。Certificate服务器发送自己的数字证书证书中包含服务器公钥和域名信息。证书校验客户端验证证书的合法性包括证书链、有效期、域名匹配等。密钥交换客户端生成预主密钥pre-master secret用服务器公钥加密后发送给服务器双方根据两个随机数和预主密钥计算出对称会话密钥。Finished 消息双方发送握手完成消息之后开始使用会话密钥进行加密通信。在现代实践中由于安全性和性能的考虑经典 RSA 密钥交换已逐渐被 ECDHE 等具备前向保密特性的密钥交换算法取代。所谓前向保密指的是即使服务器的长期私钥未来泄露历史会话的加密内容也无法被解密。4.4 数字证书与信任链证书解决了“我如何确认对方真的是 example.com”的问题。证书由证书颁发机构CA签名包含域名、公钥、有效期、颁发者等信息。浏览器内置了受信任的根证书列表客户端会沿着“服务器证书—中间证书—根证书”的链路逐级验证。任何一环过期、域名不匹配或签名无效浏览器都会提示安全警告。小提示理解 HTTPS 时建议抓住一条主线非对称加密负责安全地协商对称密钥证书负责证明服务器身份对称加密负责高效传输数据。三者缺一不可。五、TCP可靠传输的基石5.1 TCP 的核心承诺TCPTransmission Control Protocol传输控制协议是面向连接的、可靠的、基于字节流的传输层协议。与 IP 的“尽力而为”不同TCP 向上层应用承诺了可靠性这种可靠性由一套完整的机制共同保证包括序号与确认、重传、校验和、流量控制和拥塞控制。TCP 报文段头部主要字段包括源端口、目的端口、序号Sequence Number、确认号Acknowledgment Number、数据偏移、标志位SYN、ACK、FIN、RST、PSH、URG、窗口大小、校验和、紧急指针以及可选字段。5.2 三次握手建立连接TCP 建立连接需要三次报文交互因此被称为“三次握手”过程如下客户端 服务器 | --------- SYN, seqx ---------- | | ------ SYNACK, seqy, ackx1 | | --------- ACK, seqx1, acky1 | | 连接建立开始传输数据 |第一次握手客户端发送 SYN 报文进入 SYN-SENT 状态。SYN 报文中的序号为客户端初始序号 x。第二次握手服务器收到后为该连接分配资源回复 SYNACK 报文进入 SYN-RCVD 状态。报文序号为服务器初始序号 y确认号为 x1。第三次握手客户端收到后回复 ACK 报文进入 ESTABLISHED 状态服务器收到该 ACK 后也进入 ESTABLISHED 状态连接建立完成。为什么需要三次而不是两次核心原因在于三次握手能确认双方的发送能力和接收能力都正常同时防止历史失效连接请求导致服务器错误建立连接。如果只有两次握手服务器在收到 SYN 后就直接进入已连接状态那么当网络中延迟的旧 SYN 报文到达服务器时服务器会错误地建立连接并分配资源。第三次 ACK 的作用就是让服务器确认客户端的连接意愿是“当前有效”的而非过期报文。5.3 四次挥手释放连接TCP 采用“全双工”通信两个方向的数据流独立因此断开连接需要四个步骤客户端 服务器 | --------- FIN, sequ --------- | | -------- ACK, acku1 ------- | | -------- FIN, seqw --------- | | --------- ACK, ackw1 ------ | | 双方完成连接释放 |主动关闭方发送 FIN 报文表示自己不再发送数据进入 FIN-WAIT-1 状态。被动关闭方回复 ACK进入 CLOSE-WAIT 状态主动关闭方收到后进入 FIN-WAIT-2 状态。被动关闭方处理完剩余数据后发送 FIN 报文进入 LAST-ACK 状态。主动关闭方回复 ACK进入 TIME-WAIT 状态被动关闭方收到 ACK 后关闭连接。之所以挥手需要四次是因为 TCP 连接是全双工的一方发出 FIN 只表示“我这边没有数据要发了”但对方可能还有数据要发送因此需要先回复 ACK等自己也发送完毕后再单独发送 FIN。两个方向的关闭需要分别确认所以最小交互次数是四次。5.4 可靠传输确认、重传与滑动窗口TCP 的可靠性建立在“序号 确认”机制上。发送方为每个字节编号接收方通过 ACK 中的确认号告诉发送方“下一个期望收到的字节序号”。如果发送方在超时时间内没有收到确认就会触发超时重传。为了提高效率TCP 使用滑动窗口进行流量控制接收方在窗口字段中告知发送方自己还能接收多少数据发送方在窗口允许范围内可以连续发送多个报文段而不必每发一个就停下来等待确认。滑动窗口让“确认”和“发送”解耦显著提升吞吐。此外TCP 还支持快速重传当发送方连续收到三个重复 ACK 时不等待超时立即重传对应报文段。与快速重传配合的还有快速恢复等拥塞控制机制。5.5 拥塞控制慢启动、拥塞避免、快重传、快恢复拥塞控制处理的是“网络本身扛不住”的问题。TCP 维护一个拥塞窗口cwnd发送速率受 cwnd 和接收窗口共同约束。经典算法包含几个阶段慢启动初始 cwnd 较小每收到一个 ACK 窗口近似翻倍呈指数增长快速探测网络可用带宽。拥塞避免当 cwnd 达到慢启动阈值后改为线性增长避免过早造成拥塞。快重传收到三个重复 ACK 立即重传丢失报文不等超时。快恢复发生快重传时将阈值减半cwnd 设为阈值直接进入拥塞避免阶段而不是重新从慢启动开始。当发生真正超时说明网络拥塞严重时TCP 会把 cwnd 归 1重新慢启动。这种“加法增大、乘法减小”的策略也就是 AIMDAdditive Increase Multiplicative Decrease是 TCP 拥塞控制的经典思想。5.6 TCP 常见问题与优化TCP 经典问题包括Nagle 算法与延迟确认相互作用导致的延迟、TIME-WAIT 过多导致端口耗尽、队头阻塞等。实际工程中常常通过调整内核参数、使用连接池、开启 TCP Fast Open、采用 HTTP/2 或 HTTP/3 等方式进行优化。理解这些机制有助于在遇到“连接建立慢”“端口不够用”“高并发下响应延迟大”等问题时快速定位。六、UDP简单高效的另一种选择6.1 UDP 的特点UDPUser Datagram Protocol用户数据报协议是传输层的另一个重要协议。它只提供“最小化”的服务加上源端口、目的端口、长度和校验和之后就把数据交给网络层。UDP 不建立连接、不保证可靠、不保证顺序、不进行拥塞控制因此头部开销小、延迟低、实现简单。6.2 TCP 与 UDP 对比对比维度TCPUDP连接方式面向连接需要三次握手无连接可直接发送可靠性可靠有确认、重传机制不可靠不保证送达顺序性保证按序到达不保证顺序数据传输面向字节流面向报文保留报文边界头部开销20 字节起机制复杂仅 8 字节简单高效拥塞控制有无适用场景文件传输、网页、邮件等实时音视频、游戏、DNS、广播6.3 UDP 的典型应用正因为 UDP 不强制可靠和顺序它天然适合对实时性要求高、允许少量丢包的场景比如音视频通话偶尔丢一两个包出现短暂卡顿比排队重传造成严重延迟更可接受。在线游戏位置、操作等实时状态不断更新旧数据过期后重传没有意义。DNS 查询一般只有一两个小报文使用 UDP 低开销高速度。广播与组播一对多通信场景下UDP 比面向连接的 TCP 更自然。值得一提的还有QUIC。HTTP/3 使用的 QUIC 协议基于 UDP 实现但它把可靠性、加密、多路复用等能力放进了应用层。也就是说QUIC 是在“不可靠”的 UDP 之上自行实现了需要的可靠机制从而摆脱 TCP 队头阻塞和历史包袱同时大幅降低连接建立延迟。七、IP互联网的寻址基础7.1 IP 的职责IPInternet Protocol网际协议负责在不同网络之间传输数据报。它是网络层的核心协议主要解决两件事寻址和分片。IP 提供的是无连接、尽力而为的传输服务不保证数据一定送达可靠性交由上层 TCP 等协议处理。7.2 IPv4 地址与子网IPv4 地址长 32 位通常用点分十进制表示例如192.168.1.10。一个 IP 地址由网络号和主机号两部分组成划分方式由子网掩码决定。例如地址192.168.1.10/24前 24 位是网络号后 8 位是主机号。IPv4 地址分为 A、B、C、D、E 五类其中 A、B、C 类用于单播D 类用于组播E 类保留。随着地址耗尽CIDR无类别域间路由和 NAT网络地址转换被广泛应用CIDR 让地址划分更灵活NAT 则通过私有地址复用缓解了公网地址不足的问题。常用的私有地址段包括10.0.0.0/8172.16.0.0/12192.168.0.0/167.3 IPv6 的改进IPv6 将地址长度扩展到 128 位彻底解决了地址枯竭问题。IPv6 地址通常用冒号分隔的十六进制表示例如2001:db8::1。除了地址空间更大IPv6 还简化了头部结构、取消了广播、引入更完善的扩展头机制。IPv4 到 IPv6 的过渡阶段产生了一些兼容技术如双栈、隧道和 NAT64 等。实际网络环境中很多服务同时支持 IPv4 和 IPv6客户端会通过 DNS 返回的 A 记录和 AAAA 记录选择使用哪种协议。7.4 IP 数据报的转发当主机需要向另一台主机发送数据时首先判断目标 IP 是否与自己在同一网络。若同网段直接通过数据链路层送达若不在同一网段则把数据报交给默认网关。网关即路由器根据路由表选择下一跳地址把数据报逐跳转发出去。每一跳路由器都执行“查路由表—选下一跳—转发”的过程直到到达目标网络。路由表是路由器的核心可以手工配置静态路由也可以通过 RIP、OSPF、BGP 等路由协议动态学习。IP 只负责“一跳一跳”地搬运数据报这正是它与 TCP 等端到端协议配合工作的方式。八、ARP局域网内把 IP 变成 MAC8.1 为什么需要 ARP数据帧在局域网内部传输时最终必须携带目标网卡的 MAC 地址这属于数据链路层的范畴。但应用通常只知道目标主机的 IP 地址。Address Resolution Protocol地址解析协议就是把 IP 地址解析为对应 MAC 地址的桥梁。8.2 ARP 工作过程主机 A192.168.1.10想要向主机 B192.168.1.20发送数据 A 先查自己的 ARP 缓存看是否有 192.168.1.20 对应的 MAC 地址。 若没有A 在局域网内广播 ARP 请求 谁的 IP 是 192.168.1.20请告诉我你的 MAC 地址。 局域网内所有主机都会收到该广播但只有 B 会响应。 B 单播回复 ARP 应答包含自己的 MAC 地址。 A 收到后把 IP-MAC 映射写入 ARP 缓存并使用该 MAC 地址封装数据帧。ARP 缓存有一定的生命周期过期后会重新发起解析。默认网关也需要通过 ARP 解析 MAC 地址因此跨网段通信时源主机首先把数据帧发给网关再由网关继续转发。8.3 ARP 欺骗与安全ARP 协议设计上非常信任局域网内的邻居。攻击者可以伪造 ARP 应答把自己的 MAC 地址冒充为网关或其他主机的 MAC 地址从而实现中间人攻击。ARP 欺骗的防护通常依赖交换机的安全特性、静态 ARP 绑定、局域网安全监控等措施。理解 ARP 欺骗也有助于理解网络安全中常见的内网攻击方式。九、ICMP网络诊断的忠实助手9.1 ICMP 的功能ICMPInternet Control Message Protocol互联网控制报文协议用于在 IP 网络中传递错误报告和诊断信息。它通常被看作网络层的辅助协议是 ping 和 traceroute 等工具的底层基础。常见的 ICMP 类型包括回显请求与回显应答类型 8 和类型 0用于 ping 测试连通性。目的不可达类型 3网络、主机、端口不可达等。超时类型 11TTL 减到 0 时产生traceroute 依赖该消息。重定向类型 5提示主机选择更优路由。9.2 ping 与 traceroute 的原理ping向目标发送 ICMP Echo Request目标回复 Echo Reply。通过是否收到应答判断连通性并通过时间戳差值计算往返时延。traceroute利用 IP 头部的 TTL生存时间字段逐步探测路径。先发送 TTL 为 1 的数据包第一跳路由器将 TTL 减为 0 后丢弃并向源主机返回“超时”ICMP 消息源主机由此获知第一跳路由器的地址随后把 TTL 依次加 1直到到达目标主机。通过每一跳的响应就能描绘出数据包经过的路由路径。需要注意的是并非所有网络设备都会返回 ICMP 错误消息有些路径节点被配置为静默丢弃因此 traceroute 的输出中可能出现“超时”或星号。十、DNS互联网的地址簿10.1 为什么需要域名系统人类容易记忆www.example.com这样的域名而计算机通信需要 93.184.216.34 这样的 IP 地址。DNSDomain Name System域名系统就是维护“域名到 IP 地址”映射的分布式数据库把人们友好的名字解析为机器可用的地址。10.2 域名解析的完整过程当浏览器输入一个域名并回车后通常会经历以下解析流程浏览器缓存检查浏览器自身是否缓存了该域名的解析结果有则直接使用。操作系统缓存检查本机 hosts 文件和操作系统 DNS 缓存。本地 DNS 服务器向配置的递归 DNS 服务器发起查询。根域名服务器如果没有缓存递归服务器向根服务器查询根服务器返回顶级域如 .com的权威服务器地址。顶级域名服务器递归服务器继续查询 .com 权威服务器获得 example.com 的权威 DNS 服务器地址。权威域名服务器递归服务器向 example.com 的权威服务器查询 www.example.com获得最终的 A 记录。返回结果并缓存递归服务器把结果返回客户端并依据 TTL 缓存结果。上述过程可以概括为“递归查询 迭代查询”的组合客户端对本地 DNS 服务器进行递归查询本地 DNS 服务器对各级权威服务器进行迭代查询。10.3 常见 DNS 记录类型记录类型含义A将域名解析为 IPv4 地址AAAA将域名解析为 IPv6 地址CNAME域名别名指向另一个域名MX邮件交换记录指定邮件服务器TXT文本记录常用于 SPF、站点验证NS指定域名的权威 DNS 服务器PTR反向解析把 IP 映射为域名10.4 DNS 的安全与隐私传统 DNS 查询多数使用 UDP 明文传输存在被窃听和篡改的风险。于是出现了 DNSSEC对 DNS 响应进行签名验证和 DoHDNS over HTTPS、DoTDNS over TLS等方案。DoH 把 DNS 请求封装在 HTTPS 中既隐藏了查询内容也借助 HTTPS 的加密通道提升隐私性但也带来了一些可观测性和治理上的新问题。十一、DHCP自动分配网络参数11.1 DHCP 解决什么问题每台设备若要正常上网都需要 IP 地址、子网掩码、默认网关和 DNS 服务器等配置。手工配置在大规模网络中几乎不可行。DHCPDynamic Host Configuration Protocol动态主机配置协议可以自动、动态地为设备分配这些网络参数减少管理成本并避免地址冲突。11.2 DHCP 的四个阶段DHCP 基于 UDP客户端使用 68 端口服务器使用 67 端口。首次获取地址的过程通常包含四个阶段简称 DORA阶段名称说明Discover发现客户端广播请求寻找可用的 DHCP 服务器Offer提供服务器单播/广播回应提供可用的 IP 和租约信息Request请求客户端选择某个服务器的配置并广播请求确认Acknowledge确认服务器确认分配客户端获得 IP 和网络参数租约到期前客户端会尝试续租如果续租成功则继续使用失败则释放地址并重新发起申请。DHCP 极大地方便了家庭路由器和企业网络的地址管理。十二、串联实战一次网页请求的完整旅程为了把前面分散的协议串起来我们假设用户在浏览器中输入https://www.example.com并回车看看一次完整的网络请求经历了哪些环节。12.1 从输入 URL 到建立连接DNS 解析浏览器通过 DNS 查询把www.example.com解析为 IP 地址DNS 查询通常基于 UDP必要时回退 TCP。选择协议与端口URL 是 https因此浏览器选择 TCP 连接目标服务器的 443 端口。TCP 三次握手客户端通过 IP 协议把 SYN 报文路由到服务器途中可能经过多个路由器若目标在同一局域网则先通过 ARP 获取下一跳 MAC 地址。TLS 握手TCP 连接建立后客户端与服务器进行 TLS 握手验证证书、协商会话密钥。发送 HTTP 请求在加密通道中发送 HTTP/1.1 或 HTTP/2 请求携带 URL、头部和可能的请求体。12.2 服务器处理与响应服务器接收到请求后由 Web 服务器软件如 Nginx解析请求处理业务逻辑生成响应数据。服务器通过已建立的连接返回 HTTP 响应包括状态码、响应头和响应体。响应数据经过 TLS 加密后由 TCP 拆分成多个报文段传输TCP 负责保证数据完整有序到达。客户端逐层解封浏览器解析 HTML、CSS、JavaScript并发起后续资源请求。12.3 连接复用与关闭现代浏览器和服务器通常使用 keep-alive 长连接多个资源请求复用同一个 TCP 连接。空闲一段时间后连接会被优雅关闭经历四次挥手。若出现异常也可能通过 RST 报文强制重置连接。可以看到DNS 负责找到地址ARP 负责局域网内寻址IP 负责跨网路由TCP 负责可靠传输TLS 负责安全HTTP 负责表达应用语义。每个协议各司其职最终共同完成一次看似简单的网页访问。十三、高频面试题与易错点梳理13.1 经典面试题TCP 三次握手和四次挥手的过程是什么为什么握手三次、挥手四次TCP 如何保证可靠传输滑动窗口、流量控制和拥塞控制分别解决什么问题TCP 与 UDP 的区别是什么分别适合哪些场景HTTP 与 HTTPS 的区别HTTPS 的加密过程和证书作用是什么从输入 URL 到页面展示中间经历了哪些步骤DNS 的解析过程是什么递归查询和迭代查询有何区别HTTP/1.1 的 keep-alive 与 HTTP/2 的多路复用有什么不同HTTP/3 又改了什么GET 和 POST 的区别有哪些从语义、参数位置、幂等性等角度分析。301 与 302、401 与 403、502 与 504 的区别是什么什么是 ARP 欺骗为什么会发生如何缓解13.2 易错点提醒TCP 面向字节流UDP 面向报文TCP 是流式协议不保留应用层消息边界上层需要自行处理粘包/拆包UDP 则保留每条报文的边界。三次握手的序号不是从 0 开始初始序号随机双方通过 SYN 报文交换初始序号。SYN Flood 攻击攻击者大量发送 SYN 报文而不完成三次握手使服务器半连接队列被占满。常见防护包括 SYN Cookie、限制半连接数量等。TCP 的队头阻塞HTTP/2 多路复用虽然解决了应用层的队头阻塞但仍受底层 TCP 队头阻塞影响HTTP/3 改用以 UDP 为基础的 QUIC 才从传输层解决该问题。DNS 默认使用 UDP但并非只能使用 UDP当响应超过 512 字节或需要可靠传输时可以切换 TCP。IP 地址与 MAC 地址的作用不同IP 用于逻辑寻址负责跨网络定位MAC 用于局域网内的物理寻址。两者通过 ARP 协作。十四、总结与延伸学习建议回顾整篇文章我们以分层模型为框架系统梳理了 HTTP、HTTPS、TCP、UDP、IP、ARP、ICMP、DNS、DHCP 等经典协议。它们的关系可以归纳为应用层协议表达业务意图传输层协议决定可靠性与实时性的权衡网络层协议负责跨网络寻址链路层辅助协议完成局域网内的封装与解析而 DNS、DHCP 等支撑协议让整个体系可以自动化运行。理解协议不等于背会概念。更有效的学习方式是抓包观察真实报文、用代码复现关键机制、结合线上故障案例反向推导。比如用 Wireshark 抓取一次 HTTPS 访问对照着看 DNS、TCP、TLS、HTTP 报文或者自己实现一个简易的 TCP 状态机体会连接建立与释放的细节。如果希望继续深入可以沿着以下方向拓展传输层深入 QUIC、TCP BBR 拥塞控制、网络编程中的粘包处理。HTTP 体系HTTP/2 帧格式、HTTP/3 与 QUIC、缓存机制、跨域与安全。网络安全TLS 1.3 的改进、证书体系、常见网络攻击与防御。工程实践性能监控、连接池管理、负载均衡、CDN 与边缘网络。希望这篇笔记能成为你计算机网络知识地图中的一份实用参考。计算机网络的内容庞大但只要抓住“分层协作”这条主线再逐个击破关键协议就能逐步建立清晰而稳固的知识体系。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。