目录

前言:为什么你该懂点网络三层?

一、数据链路层:交换机是局域网的 “智能快递站”

1.1 先搞懂:数据链路层到底干啥?

1.2 以太网进化史:从 “自行车” 到 “火箭” 的速度飞跃

1.3 MAC 地址:网卡的 “全球唯一身份证”

1.4 以太网帧格式:数据的 “快递包装说明书”

1.5 交换机工作原理:智能分拣员的 3 步操作

交换机 3 种工作模式(别搞混!)

二、网络层:IP 协议是互联网的 “导航系统”

2.1 网络层的核心任务:给数据 “规划跨城路线”

2.2 IP 数据包格式:带导航信息的 “快递单”

2.3 ICMP 协议:网络世界的 “故障报警器”

常用 ping 命令(实操代码!)

2.4 ARP 协议:IP 和 MAC 的 “翻译官”

ARP 工作流程(以 PC1 给 PC2 发数据为例)

ARP 相关命令(实操必看)

2.5 ARP 欺骗:黑客的 “冒牌快递员” 操作

防御方法(3 招搞定)

三、传输层:TCP/UDP 是数据的 “两种快递服务”

3.1 TCP vs UDP:可靠和快速怎么选?

3.2 TCP 报文段:带 “签收功能” 的精密包裹

关键字段拆解(重点记!)

3.3 TCP 三次握手:建立连接的 “礼貌流程”

3.4 TCP 四次挥手:断开连接的 “告别仪式”

两个关键问题(面试常考)

3.5 常见端口号:应用程序的 “门牌号”

结尾:一条微信的 “全网旅行记”(框架总结)


前言:为什么你该懂点网络三层?

你每天刷短视频、发微信、逛淘宝时,有没有好奇过:手机里的数据是怎么 “跑” 到互联网另一端的?其实这背后藏着一套超有逻辑的 “快递系统”—— 数据链路层(交换机)打包,网络层(IP)规划路线,传输层(TCP/UDP)负责送货。

这篇文章专门给 0 基础的朋友写,不用怕听不懂!我会用 “快递”“打电话” 这种生活化比喻,搭配专业知识点,再放满表格和代码,让你看完就能搞懂网络最核心的三层逻辑。

一、数据链路层:交换机是局域网的 “智能快递站”

1.1 先搞懂:数据链路层到底干啥?

如果把网络比作快递公司,数据链路层就是 “打包 + 本地配送部门”,核心工作就 4 件事:

  • 建连接:插上网线,设备之间就能 “通邮”(类似开通小区配送路线)

  • 装帧:给网络层的 “数据包” 套上 “帧” 的外壳(像给文件装快递盒)

  • 查错误:用校验码检查数据有没有损坏(快递员核对包裹是否破了)

  • 控流量:别让发送方发太快,避免接收方 “爆仓”(快递站忙时暂停收件)

即:
1.建立、维护、拆除数据链路
2.包装、传输、同步帧
3.帧的差错恢复  采用重传法
4.流量控制  确保传输设备稳定,双方传输速率匹配

1.2 以太网进化史:从 “自行车” 到 “火箭” 的速度飞跃

我们现在用的局域网基本都是以太网,它的速度几十年翻了百万倍,看表格更直观:

时间节点 标准 / 版本 传输速率 生活化类比
1973 年 实验性以太网(施乐) 2.94 Mbps 自行车送货
1980 年 DIX Ethernet V1 10 Mbps 摩托车送货
1983 年 IEEE 802.3 10 Mbps 面包车送货
1995 年 IEEE 802.3u(快速以太网) 100 Mbps 小轿车送货
1998 年 IEEE 802.3z/ab(千兆以太网) 1000 Mbps 高铁送货
2000 年后 万兆 / 40G/100G 以太网 10+ Gbps 火箭送货

1.3 MAC 地址:网卡的 “全球唯一身份证”

每块网卡(手机、电脑里都有)出厂时都自带一个MAC 地址,格式长这样:00-D0-09-A1-D7-B7,记住 3 个关键知识点:

  • 总长 48 位二进制,分成 6 段用十六进制表示(人类好读)

  • 前 24 位:厂商编号(比如华为、Intel 向 IEEE 申请的专属号)

  • 后 24 位:网卡序列号(同一厂商生产的网卡,序列号绝不重复)

  • 第 8 位是 “身份标识”:0 = 单播地址(给单个设备),1 = 组播地址(给一组设备)

1.4 以太网帧格式:数据的 “快递包装说明书”

一个完整的以太网帧,就像贴满标签的快递盒,结构固定:

[前导码(7字节)] + [帧起始定界符(1字节)] + [目标MAC(6字节)] + [源MAC(6字节)] + [类型(2字节)] + [数据(46-1500字节)] + [FCS(4字节)]

各部分作用用表格拆解更清楚:

字段 长度 核心作用 生活化比喻
前导码 7 字节 让接收方时钟同步 快递员按门铃:“准备收快递啦!”
帧起始定界符 1 字节 标记帧的开始 快递员敲门:“快递到了!”
目标 MAC 6 字节 数据要发给谁 收件人地址
源 MAC 6 字节 数据是谁发的 寄件人地址
类型 2 字节 标明上层协议(0800H=IP,0806H=ARP) 快递单上写 “文件”“电子产品”
数据 46-1500 字节 真正要传的内容(网页 / 视频等) 快递里的货物
FCS 4 字节 32 位 CRC 校验,检查数据是否损坏 快递盒上的防伪码,核对是否被拆过

1.5 交换机工作原理:

  1. 学习源 MAC 地址:当收到设备(如 A 机)发送的帧时,会在 MAC 地址表中记录 “源 MAC 地址(A 的 MAC)- 接收端口” 的对应关系(生存时间约 300 秒),而非仅 “接受” 地址;

  2.  查找并转发目标 MAC 地址:若表中存在目标设备(如 B 机)的 MAC - 端口记录,直接单播转发至对应端口;若不存在,则从除接收端口外的所有端口泛洪(广播)该帧,并非默认先广播;

  3. 处理回应帧以完善记录:”当目标设备(B 机)收到广播帧后,会向源设备(A 机)发送单播回应帧,交换机通过该回应帧学习 “B 的 MAC - 对应端口” 的关系,并直接转发回应帧给 A 机,而非 B 机主动 “把目标 MAC 发给交换机”;

  4. 后续高效单播通信:A 机再次向 B 机发送数据时,因 MAC 地址表中已存在双方的记录,交换机直接单播转发,不再广播,且交换机对广播帧 / 组播帧会无条件泛洪,若同一 MAC 从新端口接入则更新地址表记录,同时部分交换机支持端口安全限制 MAC 学习数量以防攻击。

交换机 3 种工作模式(别搞混!)
  • 单工:只能发或收,不能同时(像对讲机,按住说话就听不见)

  • 半双工:能发也能收,但不能同时(像步话机,你说完我再说)

  • 全双工:能同时收发(像打电话,边说边听,效率最高)

二、网络层:IP 协议是互联网的 “导航系统”

2.1 网络层的核心任务:给数据 “规划跨城路线”

如果说数据链路层负责 “小区内配送”,那网络层就是 “跨城物流调度中心”,主要干 3 件大事:

  • 编 IP 地址:给全网设备分配唯一 “逻辑门牌号”(比如 192.168.1.1)

  • 连异构网络:让数据在 WiFi、5G、光纤等不同网络间穿梭(快递既能走陆运也能走空运)

  • 选最优路线:用路由算法(如 OSPF、BGP)选最快路径(像导航避开堵车路段)

总结成一句话就是,路由器通过路由表选择最佳方式到达对端。

2.2 IP 数据包格式:带导航信息的 “快递单”

IP 数据包分 “头部”(导航信息)和 “数据”(货物),头部字段超关键,看表格:

字段 长度 核心作用 关键说明
版本 4 位 标识 IPv4/IPv6 我们常用的是 IPv4(值为 4)
首部长度 4 位 IP 头的长度 单位是 4 字节,最小 20 字节(无可选字段时)
TTL 8 位 存活时间 每过一个路由器减 1,到 0 就丢弃(防止数据无限转圈),最多只能15调
协议号 8 位 标明上层协议 6=TCP,17=UDP(告诉 IP 包该交给谁处理)
源 IP / 目标 IP 32 位(IPv4) 收发方地址 类似 “寄件人城市地址” 和 “收件人城市地址”
标识符 / 标志 / 段偏移 32 位 分片重组 大文件拆成小包传输,靠这 3 个字段拼回去(像家具拆成零件运,到了再装)

2.3 ICMP 协议:网络世界的 “故障报警器”

ICMP(互联网控制报文协议)是网络层的 “检修员”,专门处理错误和诊断,记住 2 个核心场景:

  • 报错:数据丢了 / 目标不可达时,返回错误信息(像快递员打电话说 “地址错了,送不到”)

  • 诊断:支持 ping、traceroute 命令(检查网络通不通、看数据走了哪些路由器)

常用 ping 命令(实操代码!)
# Windows系统
ping www.baidu.com          # 默认发4个包,检查连通性
ping www.baidu.com -t       # 持续ping,按Ctrl+C停止
ping www.baidu.com -l 1000  # 发1000字节的大包,测试大数据传输

# Linux/macOS系统
ping www.baidu.com -c 5     # 只发5个包
ping www.baidu.com -s 1000  # 发1000字节的包(注意Linux参数是-s)
tracert命令:

在命令行中输入“tracert ”并在后面加入一个IP地址,可以查询从本机到该IP地址所在的电脑要经过的路由器及其IP地址

2.4 ARP 协议:IP 和 MAC 的 “翻译官”

IP 地址是 “逻辑门牌号”(比如北京市朝阳区 XX 路),MAC 地址是 “物理门牌号”(比如 XX 小区 3 号楼 1 单元 501),ARP 协议就是把 “逻辑地址” 翻译成 “物理地址” 的工具。

ARP 工作流程(以 PC1 给 PC2 发数据为例)
  1. PC1 先查自己的 “ARP 缓存表”:有没有 PC2 的 IP→MAC 映射?

  2. 没有的话,PC1 广播 ARP 请求:“谁是 192.168.1.2?快告诉我你的 MAC 地址!”(目标 MAC 是 FF-FF-FF-FF-FF-FF,全网广播)

  3. 所有设备收到请求,只有 PC2 回应:“我是 192.168.1.2,我的 MAC 是 00-11-22-33-44-55”(单播回应,不广播)

  4. PC1 把 PC2 的 IP-MAC 映射存入 ARP 缓存表(默认保存 120 秒,过期重新查询)

ARP 相关命令(实操必看)
# 查看ARP缓存表(Windows/Linux通用)
arp -a

# 删除指定IP的ARP记录
arp -d 192.168.1.1

# 绑定静态ARP(防止被欺骗,需管理员权限)
arp -s 192.168.1.1 00-11-22-33-44-55

# Windows下用netsh绑定(更稳定)
netsh -c "i i" add neighbors 19 "192.168.1.1" "00-11-22-33-44-55"
# 注:19是网络接口序号,用netsh -c i i show in查看

2.5 ARP 欺骗:黑客的 “冒牌快递员” 操作

ARP 协议有个漏洞:不验证回应的真实性,黑客就靠这个搞事,比如 “网关欺骗”:

  1. 黑客(PC2)给你的电脑(PC1)发假 ARP 回应:“我是网关,我的 MAC 是 PC2 的 MAC”

  2. 同时给网关发假回应:“我是 PC1,我的 MAC 是 PC2 的 MAC”

  3. 结果:PC1 和网关的所有数据都要经过黑客设备(黑客成了 “中间人”,能偷数据、改数据)

防御方法(3 招搞定)

  • 绑静态 ARP:手动在 PC 和网关上设置 IP-MAC 对应关系(黑客改不了)

  • 开 ARP 防护:路由器 / 交换机开启 ARP 欺骗防御功能

  • 用加密通信:重要数据走 HTTPS/SSH,即使被截胡也看不懂

三、传输层:TCP/UDP 是数据的 “两种快递服务”

3.1 TCP vs UDP:可靠和快速怎么选?

传输层有两种核心协议,就像两种快递服务,各有优缺点,看表格对比:

对比维度 TCP(顺丰到付) UDP(普通平邮)
连接方式 面向连接(需三次握手) 无连接(直接发)
可靠性 可靠(丢包重传、按序到达) 不可靠(丢了不补)
速度 较慢(有确认、重传开销) 较快(无额外开销)
流量控制 有(根据接收方能力调整速度) 无(不管接收方能不能处理)
适用场景 网页、文件传输、邮件(要稳) 视频通话、游戏、DNS(要快)

3.2 TCP 报文段:带 “签收功能” 的精密包裹

TCP 报文段的头部超复杂,但核心字段就几个,记住它们的作用:

[源端口(16位)] + [目标端口(16位)] + [序号(32位)] + [确认号(32位)]
[首部长度(4位)] + [控制位(6位)] + [窗口大小(16位)] + [校验和(16位)]
[紧急指针(16位)] + [选项(可变)] + [数据]
关键字段拆解(重点记!)
  • 端口号:源端口(你的应用,如微信的 54321)、目标端口(对方应用,如微信服务器的 443)→ 类似 “寄件人电话” 和 “收件人电话”

  • 序号 / 确认号:序号给数据字节编号(防止乱序),确认号告诉对方 “我收到了多少数据”(比如确认号 = 150,就是 “我收到 1-149 字节,下次发 150 开始的”)

  • 控制位(6 个关键标志,记口诀):
    URG 急(加急)、ACK 认(确认)、PSH 催(尽快处理)、RST 断(重置连接)、SYN 连(请求连接)、FIN 完(结束连接)

  • 窗口大小:告诉对方 “我还能接多少数据”(接收缓冲区剩余空间)→ 类似 “我家快递柜还能放 5 个包”

3.3 TCP 三次握手:建立连接的 “礼貌流程”

TCP 建立连接必须走 “三次握手”,就像打电话:

  1. 客户端 → 服务器:“喂,在吗?”(SYN=1,Seq=x,x 是随机数)

  2. 服务器 → 客户端:“在的,你能听到吗?”(SYN=1,ACK=1,Seq=y,Ack=x+1)

  3. 客户端 → 服务器:“能听到,开始传数据吧!”(ACK=1,Seq=x+1,Ack=y+1)

为什么要三次?因为要确认 “客户端能发、服务器能收 + 服务器能发、客户端能收”,两次握手只能确认一方,不安全。

3.4 TCP 四次挥手:断开连接的 “告别仪式”

TCP 断开连接要 “四次挥手”,因为可能有一方还有数据没发完:

  1. A → B:“我没数据要发了,想断开”(FIN=1,ACK=1)

  2. B → A:“好的,我知道了,等我发完剩下的”(ACK=1)

  3. B → A:“我也没数据了,断开吧”(FIN=1,ACK=1)

  4. A → B:“好的,拜拜”(ACK=1)

小知识:

四次的原因:B 可能还有数据没发,要先确认 “收到断开请求”,发完数据再发 “我也要断开” 的请求

A 最后会进入 TIME_WAIT 状态(等 2MSL):防止 B 没收到最后一次 ACK,超时重传时 A 还能回应(避免 B 一直等)

3.5 常见端口号:应用程序的 “门牌号”

每个网络应用都有专属端口号,记住常用的:

协议 端口号 对应应用 用途
TCP 80 HTTP 普通网页访问
TCP 443 HTTPS 加密网页访问(安全)
TCP 21 FTP 文件传输
TCP 25 SMTP 发送邮件
TCP 3306 MySQL 数据库连接
UDP 53 DNS 域名解析(把www.baidu.com转成 IP)
UDP 67 DHCP 自动分配 IP 地址
UDP 123 NTP 网络时间同步

最后用 “发微信” 把三层逻辑串起来,帮你巩固:

  1. 传输层:微信用 TCP 协议包装消息,加上 “你的手机端口(如 54321)” 和 “微信服务器端口(443)”,确保消息不丢

  2. 网络层:给 TCP 包套 IP 头,加上 “你的 IP(如 192.168.1.100)” 和 “微信服务器 IP(如 180.101.49.12)”,路由器用路由表选最快路径

  3. 数据链路层:给 IP 包套以太网帧,加上 “你的 MAC” 和 “路由器 MAC”,交换机根据 MAC 地址把帧转发到路由器

  4. 数据跨越多个路由器,重复 “网络层选路 + 数据链路层转发”,最终到达微信服务器,再反向传给朋友的手机

其实网络三层的逻辑很简单:数据链路层管 “本地配送”,网络层管 “跨城导航”,传输层管 “送货服务质量”。最后,喜欢的点赞收藏呦~

Logo

惟楚有才,于斯为盛。欢迎来到长沙!!! 茶颜悦色、臭豆腐、CSDN和你一个都不能少~

更多推荐