计算机网络本质:实现多台计算机之间的数据交换、资源共享。 两台设备想要通信,不能直接裸传二进制,必须遵守一套统一的规则,这套规则就叫协议。 学习思路:先搞懂分层模型,再逐层学习协议,最后把「浏览器访问网页全过程」完整串起来。 分层思想:把复杂网络拆成多层,每层只负责自己的工作,上层只调用下层提供的能力,不用关心下层内部怎么实现;下层不需要理解上层业务。

2.2.1 网络七层模型(OSI七层)与TCP/IP五层模型

OSI七层是理论参考模型;TCP/IP五层模型是现实互联网实际使用的模型,学习以五层为主。

OSI七层(理论)

从上到下:

  1. 应用层
  2. 表示层
  3. 会话层
  4. 传输层
  5. 网络层
  6. 数据链路层
  7. 物理层

TCP/IP五层模型(工业实际使用,重点记忆)

层级 名称 核心作用 典型协议/设备
第5层 应用层 给应用程序提供网络服务,业务数据 HTTP/HTTPS、DNS、FTP、SSH、DHCP
第4层 传输层 端到端传输,两台主机的进程之间通信 TCP、UDP;端口
第3层 网络层 跨网段寻址,路由选择,把数据包送到目标主机 IP、ARP、ICMP;路由器
第2层 数据链路层 同一个局域网内部传输,帧封装,差错检测 以太网协议、MAC地址;交换机
第1层 物理层 传输比特流0/1,电信号、光信号 网线、光纤、网卡、集线器

✅数据封装与解封装(必考)

  1. 封装(发送数据):从上到下,每一层加上自己的头部(部分层有尾部) 应用层数据 → 传输层加TCP/UDP头部 → 网络层加IP头部 → 数据链路层加帧头帧尾 → 物理层变成01比特流通过网线发出。
  2. 解封装(接收数据):从下到上,一层层剥掉头部,交给上层 收到比特流 → 二层剥帧头 → 三层剥IP头 → 四层剥TCP头 → 应用层拿到原始业务数据。

简单比喻:寄快递

  • 应用层:信件内容(真正要传递的数据)
  • 传输层:写好收件人、寄件人端口(哪个程序收)
  • 网络层:写收件人地址IP(哪台电脑)
  • 数据链路层:写局域网内MAC地址(同一小区交给哪一户)
  • 物理层:快递箱子、运输货车(网线光纤)

2.2.2 逐层详细讲解

第1层:物理层

不处理数据含义,只负责传输二进制比特流(0和1)。

  • 介质:双绞线网线、光纤、无线电波(WIFI)
  • 设备:网卡、光模块、集线器 只负责传递电/光信号,没有IP、MAC概念。网线断了,物理层直接不通。

第2层:数据链路层(局域网)

工作在同一个局域网内(同一个交换机下面的设备)。

  1. MAC地址(物理地址):网卡出厂固化的48位硬件地址,唯一标识一块网卡。格式:XX:XX:XX:XX:XX:XX

MAC只在同一个局域网生效,跨路由器之后MAC地址会发生变化。

  1. 以太网帧:二层的数据单元叫,包含源MAC、目的MAC、数据、校验FCS。
  2. 设备:交换机。交换机根据MAC地址转发数据,只在局域网内部转发,不会跨网段。
  3. ARP协议(重点)

作用:已知对方的IP地址,获取对方的MAC地址。 场景:同一局域网,我知道隔壁电脑IP,但是不知道它的网卡MAC,发送ARP广播询问,目标主机回复自己MAC。 ARP缓存:本机保存一张IP→MAC映射表。
注意:ARP只属于局域网,不能跨路由器。

第3层:网络层(跨网段,路由器工作层)

负责把数据包从源主机,送到不同网段的目标主机,实现跨局域网通信。

  1. IP地址:给网络上每一台主机分配逻辑地址,用来在互联网定位主机。 分为 IPv4、IPv6。
  • IPv4:32位,点分十进制,例:192.168.1.1;总地址有限。
  • IPv6:128位,冒分十六进制,解决IP地址枯竭。
  1. 子网掩码:用来区分IP地址中,哪一部分是网络号,哪一部分是主机号。判断两台机器是否处在同一个局域网

例:192.168.1.10/24,子网掩码255.255.255.0,前24bit是网络位。

  1. 网关:本网段出口,访问外网的数据包全部发给网关(一般是路由器LAN口IP)。

没有配置网关,本机只能和局域网内部通信,无法访问互联网。

  1. ICMP协议:互联网控制报文协议。ping命令底层就是ICMP,测试网络连通性、延迟。注意:很多服务器防火墙会拦截ICMP,ping不通不代表业务不通。
  2. 路由器:网络层设备。根据IP地址做路由转发,隔离广播,连接多个不同网段。

关键点:数据包经过路由器,源/目的IP不变;二层MAC地址会不断改写

第4层:传输层(端口 + TCP/UDP,重中之重)

网络层只能找到是哪一台主机(IP);传输层找到主机上哪一个进程。 核心标识:端口号。 端口取值0‑65535。

  • 0‑1023:知名端口,系统服务占用
    • HTTP:80;HTTPS:443;SSH:22;DNS:53
  • 1024‑65535:动态端口,客户端程序临时使用。

举例:一台服务器同时跑网站(80端口)、ssh远程(22端口)。IP定位服务器;端口区分不同服务进程。
传输层两大核心协议 TCP、UDP,必须吃透两者区别。

UDP 用户数据报协议

  • 无连接:通信前不需要建立连接,直接发包。
  • 不可靠:不确认对方有没有收到,丢包不会重传。
  • 开销小,速度快。 适用场景:对实时性要求高,可以容忍少量丢包。

    视频通话、直播、DNS查询。

TCP 传输控制协议(可靠传输)

面向连接,通信前必须建立连接;通信结束断开连接;保证数据可靠有序到达,不丢包、不乱序。 实现可靠的机制:确认应答、超时重传、滑动窗口、拥塞控制。

TCP三次握手(建立连接)

客户端 ↔ 服务端,建立可靠连接。

  1. 客户端发送SYN报文,请求建立连接
  2. 服务端回复SYN+ACK:同意连接,并确认收到客户端请求
  3. 客户端回复ACK,确认收到服务端;连接建立,可以传输业务数据。

通俗: 客户端:“能跟你通话吗?” 服务端:“可以,我收到你的请求了。” 客户端:“收到你的回复,我们开始说话。”

TCP四次挥手(断开连接)

TCP是全双工,双方都可以单独关闭自己方向的数据发送,所以需要四次。

  1. 客户端发送FIN:我这边不再发送数据
  2. 服务端回复ACK:收到关闭请求
  3. 服务端处理完剩余数据,发送FIN:我这边也发送完毕
  4. 客户端回复ACK确认,连接正式释放。

考点:为什么握手3次,挥手需要4次? 建立连接时服务端可以把SYN和ACK合并成一个报文;关闭连接时,收到FIN之后服务端可能还有残留数据要发送,ACK和FIN不能合并,所以需要四次。
滑动窗口:流量控制,防止发送方发太快把接收方缓冲区打爆。 拥塞控制:防止网络链路过载,动态调整发送速度。

第5层:应用层(给应用软件使用)

应用层协议,直接被程序调用。

  1. HTTP / HTTPS
  • HTTP:超文本传输协议,网页传输,明文传输,默认端口80。
  • HTTPS = HTTP + TLS/SSL加密;数据加密传输,防窃听篡改;端口443。

    请求方法:GET、POST、PUT、DELETE;状态码:200成功,404找不到,500服务器错误。

  1. DNS 域名解析协议(端口53,UDP优先) 把域名(www.baidu.com)翻译成IP地址。人记域名,网络只识别IP。

浏览器输入域名,第一步先做DNS解析拿到IP,才去访问服务器。

  1. SSH:远程登录Linux服务器,端口22,加密。
  2. FTP:文件传输协议。

完整案例:浏览器输入网址 https://www.baidu.com,按下回车,发生了什么?(必掌握,面试高频)

完整串联五层模型,按顺序:

  1. 应用层DNS解析:本机查询DNS服务器,把域名www.baidu.com解析得到服务器IP。
  2. 传输层TCP建立连接:客户端向服务器443端口发起TCP三次握手,建立TCP连接。
  3. TLS握手:HTTPS做加密协商,建立加密通道。
  4. 应用层发送HTTP请求:浏览器发出HTTP GET请求报文。
  5. 网络层IP路由:数据包带上本机IP、目标服务器IP,经过网关、多个路由器,跨互联网路由转发。
  6. 数据链路层+物理层:每经过一段链路,封装二层MAC帧,通过网线/光纤传输比特流。
  7. 服务器收到数据包,逐层解封装,拿到HTTP请求;服务器构造响应数据,原路返回。
  8. 浏览器收到响应,解析HTML、渲染页面展示。
  9. 数据传输完成,TCP四次挥手断开连接。

注意:数据包在互联网传输,每经过一台路由器,二层MAC地址不断改写,但是源IP、目的IP全程不变。

2.2.3 常用网络排查工具(实操)

  1. ping ip/域名:基于ICMP,测试连通性、延迟。
  2. tracert(Windows) / traceroute(Linux):路由追踪,查看数据包经过哪些路由器,定位在哪一跳丢包。
  3. nslookup / dig:DNS解析测试。
  4. telnet ip 端口:测试TCP端口通不通(老旧工具)。
  5. curl:模拟发送HTTP请求,调试网页接口。
  6. Wireshark抓包工具:抓取网卡上真实数据包,可以观察五层封装后的报文。

2.2.4 高频易混淆概念梳理

  1. IP负责找主机;端口负责找主机上的进程。
  2. MAC地址:局域网内部;IP地址:跨网络全局寻址。
  3. TCP可靠,但开销大;UDP不可靠,速度快。
  4. 网关是去往外网的出口;DNS做域名‑IP翻译。
  5. 三次握手建连接,四次挥手断连接。

本阶段实操任务

  1. 画一张TCP/IP五层模型图,标注每层作用、协议、设备。
  2. 默写浏览器访问网页完整流程。
  3. 实操命令:ping、tracert、nslookup、curl,观察输出。
  4. 使用Wireshark简单抓包,看懂IP头部、TCP头部关键字段。

✅必须掌握

  1. TCP/IP五层模型,封装和解封装流程。
  2. MAC、IP、子网掩码、网关、ARP作用。
  3. TCP与UDP对比;三次握手、四次挥手原理。
  4. DNS、HTTP、HTTPS基础;端口概念。
  5. 浏览器访问网站完整全过程。

❌初学者暂时不用深挖

TLS完整握手细节、各种高级拥塞算法、BGP路由协议。先理解整体数据流。
如果你需要,我可以生成本章配套练习题(选择、简答)。