计算机网络本质:实现多台计算机之间的数据交换、资源共享。 两台设备想要通信,不能直接裸传二进制,必须遵守一套统一的规则,这套规则就叫协议。 学习思路:先搞懂分层模型,再逐层学习协议,最后把「浏览器访问网页全过程」完整串起来。 分层思想:把复杂网络拆成多层,每层只负责自己的工作,上层只调用下层提供的能力,不用关心下层内部怎么实现;下层不需要理解上层业务。
2.2.1 网络七层模型(OSI七层)与TCP/IP五层模型
OSI七层是理论参考模型;TCP/IP五层模型是现实互联网实际使用的模型,学习以五层为主。
OSI七层(理论)
从上到下:
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
TCP/IP五层模型(工业实际使用,重点记忆)
| 层级 | 名称 | 核心作用 | 典型协议/设备 |
|---|---|---|---|
| 第5层 | 应用层 | 给应用程序提供网络服务,业务数据 | HTTP/HTTPS、DNS、FTP、SSH、DHCP |
| 第4层 | 传输层 | 端到端传输,两台主机的进程之间通信 | TCP、UDP;端口 |
| 第3层 | 网络层 | 跨网段寻址,路由选择,把数据包送到目标主机 | IP、ARP、ICMP;路由器 |
| 第2层 | 数据链路层 | 同一个局域网内部传输,帧封装,差错检测 | 以太网协议、MAC地址;交换机 |
| 第1层 | 物理层 | 传输比特流0/1,电信号、光信号 | 网线、光纤、网卡、集线器 |
✅数据封装与解封装(必考)
- 封装(发送数据):从上到下,每一层加上自己的头部(部分层有尾部) 应用层数据 → 传输层加TCP/UDP头部 → 网络层加IP头部 → 数据链路层加帧头帧尾 → 物理层变成01比特流通过网线发出。
- 解封装(接收数据):从下到上,一层层剥掉头部,交给上层 收到比特流 → 二层剥帧头 → 三层剥IP头 → 四层剥TCP头 → 应用层拿到原始业务数据。
简单比喻:寄快递
- 应用层:信件内容(真正要传递的数据)
- 传输层:写好收件人、寄件人端口(哪个程序收)
- 网络层:写收件人地址IP(哪台电脑)
- 数据链路层:写局域网内MAC地址(同一小区交给哪一户)
- 物理层:快递箱子、运输货车(网线光纤)
2.2.2 逐层详细讲解
第1层:物理层
不处理数据含义,只负责传输二进制比特流(0和1)。
- 介质:双绞线网线、光纤、无线电波(WIFI)
- 设备:网卡、光模块、集线器 只负责传递电/光信号,没有IP、MAC概念。网线断了,物理层直接不通。
第2层:数据链路层(局域网)
工作在同一个局域网内(同一个交换机下面的设备)。
- MAC地址(物理地址):网卡出厂固化的48位硬件地址,唯一标识一块网卡。格式:
XX:XX:XX:XX:XX:XX。
MAC只在同一个局域网生效,跨路由器之后MAC地址会发生变化。
- 以太网帧:二层的数据单元叫帧,包含源MAC、目的MAC、数据、校验FCS。
- 设备:交换机。交换机根据MAC地址转发数据,只在局域网内部转发,不会跨网段。
- ARP协议(重点)
作用:已知对方的IP地址,获取对方的MAC地址。 场景:同一局域网,我知道隔壁电脑IP,但是不知道它的网卡MAC,发送ARP广播询问,目标主机回复自己MAC。 ARP缓存:本机保存一张IP→MAC映射表。
注意:ARP只属于局域网,不能跨路由器。
第3层:网络层(跨网段,路由器工作层)
负责把数据包从源主机,送到不同网段的目标主机,实现跨局域网通信。
- IP地址:给网络上每一台主机分配逻辑地址,用来在互联网定位主机。 分为 IPv4、IPv6。
- IPv4:32位,点分十进制,例:
192.168.1.1;总地址有限。 - IPv6:128位,冒分十六进制,解决IP地址枯竭。
- 子网掩码:用来区分IP地址中,哪一部分是网络号,哪一部分是主机号。判断两台机器是否处在同一个局域网。
例:
192.168.1.10/24,子网掩码255.255.255.0,前24bit是网络位。
- 网关:本网段出口,访问外网的数据包全部发给网关(一般是路由器LAN口IP)。
没有配置网关,本机只能和局域网内部通信,无法访问互联网。
- ICMP协议:互联网控制报文协议。
ping命令底层就是ICMP,测试网络连通性、延迟。注意:很多服务器防火墙会拦截ICMP,ping不通不代表业务不通。 - 路由器:网络层设备。根据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三次握手(建立连接)
客户端 ↔ 服务端,建立可靠连接。
- 客户端发送SYN报文,请求建立连接
- 服务端回复SYN+ACK:同意连接,并确认收到客户端请求
- 客户端回复ACK,确认收到服务端;连接建立,可以传输业务数据。
通俗: 客户端:“能跟你通话吗?” 服务端:“可以,我收到你的请求了。” 客户端:“收到你的回复,我们开始说话。”
TCP四次挥手(断开连接)
TCP是全双工,双方都可以单独关闭自己方向的数据发送,所以需要四次。
- 客户端发送FIN:我这边不再发送数据
- 服务端回复ACK:收到关闭请求
- 服务端处理完剩余数据,发送FIN:我这边也发送完毕
- 客户端回复ACK确认,连接正式释放。
考点:为什么握手3次,挥手需要4次? 建立连接时服务端可以把SYN和ACK合并成一个报文;关闭连接时,收到FIN之后服务端可能还有残留数据要发送,ACK和FIN不能合并,所以需要四次。
滑动窗口:流量控制,防止发送方发太快把接收方缓冲区打爆。 拥塞控制:防止网络链路过载,动态调整发送速度。
第5层:应用层(给应用软件使用)
应用层协议,直接被程序调用。
- HTTP / HTTPS
- HTTP:超文本传输协议,网页传输,明文传输,默认端口80。
- HTTPS = HTTP + TLS/SSL加密;数据加密传输,防窃听篡改;端口443。
请求方法:GET、POST、PUT、DELETE;状态码:200成功,404找不到,500服务器错误。
- DNS 域名解析协议(端口53,UDP优先) 把域名(
www.baidu.com)翻译成IP地址。人记域名,网络只识别IP。
浏览器输入域名,第一步先做DNS解析拿到IP,才去访问服务器。
- SSH:远程登录Linux服务器,端口22,加密。
- FTP:文件传输协议。
完整案例:浏览器输入网址 https://www.baidu.com,按下回车,发生了什么?(必掌握,面试高频)
完整串联五层模型,按顺序:
- 应用层DNS解析:本机查询DNS服务器,把域名
www.baidu.com解析得到服务器IP。 - 传输层TCP建立连接:客户端向服务器443端口发起TCP三次握手,建立TCP连接。
- TLS握手:HTTPS做加密协商,建立加密通道。
- 应用层发送HTTP请求:浏览器发出HTTP GET请求报文。
- 网络层IP路由:数据包带上本机IP、目标服务器IP,经过网关、多个路由器,跨互联网路由转发。
- 数据链路层+物理层:每经过一段链路,封装二层MAC帧,通过网线/光纤传输比特流。
- 服务器收到数据包,逐层解封装,拿到HTTP请求;服务器构造响应数据,原路返回。
- 浏览器收到响应,解析HTML、渲染页面展示。
- 数据传输完成,TCP四次挥手断开连接。
注意:数据包在互联网传输,每经过一台路由器,二层MAC地址不断改写,但是源IP、目的IP全程不变。
2.2.3 常用网络排查工具(实操)
ping ip/域名:基于ICMP,测试连通性、延迟。tracert(Windows) / traceroute(Linux):路由追踪,查看数据包经过哪些路由器,定位在哪一跳丢包。nslookup / dig:DNS解析测试。telnet ip 端口:测试TCP端口通不通(老旧工具)。curl:模拟发送HTTP请求,调试网页接口。- Wireshark抓包工具:抓取网卡上真实数据包,可以观察五层封装后的报文。
2.2.4 高频易混淆概念梳理
- IP负责找主机;端口负责找主机上的进程。
- MAC地址:局域网内部;IP地址:跨网络全局寻址。
- TCP可靠,但开销大;UDP不可靠,速度快。
- 网关是去往外网的出口;DNS做域名‑IP翻译。
- 三次握手建连接,四次挥手断连接。
本阶段实操任务
- 画一张TCP/IP五层模型图,标注每层作用、协议、设备。
- 默写浏览器访问网页完整流程。
- 实操命令:ping、tracert、nslookup、curl,观察输出。
- 使用Wireshark简单抓包,看懂IP头部、TCP头部关键字段。
✅必须掌握
- TCP/IP五层模型,封装和解封装流程。
- MAC、IP、子网掩码、网关、ARP作用。
- TCP与UDP对比;三次握手、四次挥手原理。
- DNS、HTTP、HTTPS基础;端口概念。
- 浏览器访问网站完整全过程。
❌初学者暂时不用深挖
TLS完整握手细节、各种高级拥塞算法、BGP路由协议。先理解整体数据流。
如果你需要,我可以生成本章配套练习题(选择、简答)。
评论交流
欢迎留下你的想法