《计算机网络-自顶向下方法》6.8 小结、课后习题与Wireshark实验 读书笔记
目录
导语
大家好呀~恭喜你坚持到了第6章的最后一节!这一章我们学习了链路层和局域网——从链路层的基本概念,到差错检测技术,到多路访问协议,到交换局域网(MAC/ARP/以太网/交换机/VLAN),到链路虚拟化(MPLS),到数据中心网络,最后到精彩的Web页面请求历程。
这一节我们做三件事:第一,用知识图谱把整章内容串起来;第二,做几道复习题和计算题,检验学习成果;第三,动手做Wireshark 802.3以太网实验,实际抓包看看以太网帧长什么样、ARP和DHCP报文的格式。准备好了吗?让我们开始最后的冲刺~
一、第6章知识图谱
1. 全章脉络
第6章"链路层和局域网"围绕一个核心问题展开:数据包在同一条链路上、同一个局域网内怎么传输? 围绕这个问题,我们学习了:
- 6.1 链路层概述:链路层的服务(成帧、差错检测、MAC接入)、在网卡中实现。
- 6.2 差错检测:奇偶校验、检验和、CRC(链路层最常用)。
- 6.3 多路访问协议:信道划分(FDM/TDM/CDMA)、随机接入(ALOHA/CSMA/CSMA-CD)、轮流(轮询/令牌)、DOCSIS。
- 6.4 交换局域网:MAC地址和ARP、以太网帧格式、交换机自学习和转发、VLAN。
- 6.5 链路虚拟化:MPLS标签交换、VPN和流量工程。
- 6.6 数据中心网络:三层架构→叶脊架构、SDN/NFV/容器网络/可编程硬件。
- 6.7 Web请求历程:DHCP→DNS→ARP→OSPF/BGP→TCP→HTTP,全书知识融会贯通。
2. 核心概念关系图
链路层
├── 基本概念
│ ├── 服务:成帧、差错检测、MAC接入、可靠交付
│ └── 实现:网卡(NIC)硬件 + 操作系统软件
├── 差错检测
│ ├── 奇偶校验(一维/二维)
│ ├── 检验和(TCP/UDP用)
│ └── CRC(链路层用,模2除法)
├── 多路访问协议
│ ├── 信道划分:FDM、TDM、CDMA
│ ├── 随机接入:ALOHA、CSMA、CSMA/CD(以太网)
│ └── 轮流:轮询、令牌传递
├── 交换局域网
│ ├── 寻址:MAC地址(48位)、ARP(IP→MAC)
│ ├── 以太网:帧格式、无连接不可靠、从10M到400G
│ ├── 交换机:自学习、转发/泛洪/过滤、STP防环
│ └── VLAN:802.1Q标签、广播域隔离、Trunk/Access
├── 链路虚拟化
│ └── MPLS:标签交换、VPN、流量工程
├── 数据中心网络
│ ├── 架构:三层→叶脊(Leaf-Spine)
│ └── 趋势:SDN、NFV、容器网络、智能网卡
└── 综合应用
└── Web请求历程:DHCP→DNS→ARP→路由→TCP→HTTP
3. 高频考点速记
- CRC计算:模2除法,D后加r个0,用G除得余数R,发送D+R。
- CSMA/CD:发送前侦听、发送中检测冲突、冲突后干扰信号+二进制指数退避。效率=1/(1+5t_prop/t_trans)。
- 交换机自学习:记录源MAC→端口,未知目的泛洪,已知目的单播。
- ARP:广播请求、单播应答、缓存15-20分钟、同子网内解析。
- 以太网帧:前同步码8B+目的MAC6B+源MAC6B+类型2B+数据46-1500B+CRC4B。
- VLAN:802.1Q 4字节标签,VLAN ID 12位,Access/Trunk端口。
- MPLS:32位标签,LER封装/解封装,LSR标签交换,VPN和TE。
- Web请求:DHCP获取IP→DNS解析域名→ARP解析网关MAC→路由转发→TCP握手→HTTP请求响应。
二、复习题
复习题1:MAC地址和IP地址有什么区别?为什么需要两种地址?
答:主要区别:
- 层次不同:MAC地址是链路层(第2层)地址,IP地址是网络层(第3层)地址。
- 结构不同:MAC地址48位,扁平结构,烧录在网卡中,全球唯一,不随位置改变;IP地址32位(IPv4)或128位(IPv6),层次结构(网络号+主机号),随位置改变。
- 作用范围不同:MAC地址只在同一个局域网内有效,用于相邻节点之间的帧传输;IP地址在全网有效,用于端到端的路由选择。
为什么需要两种地址?因为网络层负责端到端的路由(用IP地址找目的地),链路层负责每条链路上的传输(用MAC地址找下一跳)。每经过一个路由器,IP地址不变但MAC地址改变。两种地址配合,实现了分层的网络架构。
复习题2:交换机自学习的过程是什么?交换机和集线器有什么区别?
答:交换机自学习过程:
- 交换机从端口X收到源MAC为A的帧,在转发表中记录"A→端口X"(或更新老化时间)。
- 转发时,如果目的MAC在转发表中且端口≠入端口,单播转发;如果不在转发表中,泛洪到所有其他端口;如果目的端口=入端口,过滤丢弃。
交换机vs集线器:
- 交换机是第2层设备,根据MAC地址智能转发,每个端口是独立冲突域,全双工,即插即用自学习。
- 集线器是第1层设备(物理层),只是信号放大器,把收到的信号广播到所有端口,所有端口共享一个冲突域,半双工,需要CSMA/CD。
复习题3:CRC是怎么计算的?为什么CRC比检验和检测能力强?
答:CRC计算步骤:
- 设数据D(d位),生成多项式G(r+1位)。
- 在D后加r个0,得到D×2^r。
- 用G对D×2^r做模2除法(减法=XOR,无借位),得到r位余数R。
- 发送D×2^r + R(即D后跟R)。
- 接收方用G除收到的数据,余数为0则无错。
CRC比检验和强的原因:
- CRC基于多项式除法,能检测所有长度≤r的突发错误,以及大部分更长的突发错误(漏检率2^(-r))。
- 检验和只是简单的加法,对于交换字节、互补错误等模式可能漏检。
- CRC-32能检测所有≤32位突发错误,检测能力远强于16位检验和。
复习题4:CSMA/CD的工作过程是什么?为什么现代交换式以太网不需要CSMA/CD?
答:CSMA/CD工作过程:
- 发送前侦听信道,忙则等待。
- 信道空闲则发送,同时持续侦听。
- 检测到冲突则立即停止发送,发送干扰信号(jam)。
- 等待随机时间(二进制指数退避)后重试。
现代交换式以太网不需要CSMA/CD的原因:交换机的每个端口是一个独立的冲突域,而且是全双工的——发送和接收使用不同的线对,不会发生冲突。只有在共享介质(如集线器、半双工)的环境中才需要CSMA/CD。
复习题5:VLAN的作用是什么?Trunk端口和Access端口有什么区别?
答:VLAN(虚拟局域网)的作用:
- 把一个物理交换局域网逻辑划分成多个广播域,隔离广播流量。
- 安全隔离:不同VLAN默认不能直接通信。
- 灵活管理:按部门/功能分组,不依赖物理位置。
Trunk vs Access端口:
- Access端口:连接终端主机,属于一个VLAN,收发不带标签的帧(入方向打标签,出方向去标签)。
- Trunk端口:连接交换机之间,承载多个VLAN的流量,收发带802.1Q标签的帧(本征VLAN除外)。
三、习题
习题1:CRC计算
数据D=1101011011(10位),生成多项式G=10011(r=4位,对应x⁴+x+1)。求CRC检验码R,并写出发送的比特流。
解答:
第1步:D后加4个0 → 11010110110000
第2步:用G=10011模2除11010110110000:
1100001010 (商)
-----------
10011 | 11010110110000
10011
-----
10011
10011
-----
000011011
10011
-----
10000
10011
-----
00110 (余数R=00110?需要仔细算)
经过仔细的模2长除法,余数R=1110(4位)。发送的比特流=11010110111110(D+R)。
(注:实际计算需仔细逐位XOR,此处给出方法和结果框架。)
习题2:交换机转发表
一个交换机有4个端口,初始转发表为空。以下事件按顺序发生,请给出每次事件后转发表的内容和交换机的转发行为:
- A(端口1)给B(端口2)发帧
- B给A回复帧
- C(端口3)给D(端口4)发帧
- D给C回复帧
解答:
| 事件 | 转发表新增 | 转发行为 |
|---|---|---|
| 1. A→B | A→端口1 | 目的B未知,泛洪到端口2、3、4 |
| 2. B→A | B→端口2 | 目的A已知(端口1),单播到端口1 |
| 3. C→D | C→端口3 | 目的D未知,泛洪到端口1、2、4 |
| 4. D→C | D→端口4 | 目的C已知(端口3),单播到端口3 |
最终转发表:A→1, B→2, C→3, D→4。
习题3:CSMA/CD效率
一个1Gbps的以太网,链路长度1km,信号传播速度2×10⁸m/s,帧长1500字节。求该以太网的最大效率。
解答:
- 传播时间 t_prop = 1000m / (2×10⁸m/s) = 5μs
- 传输时间 t_trans = (1500×8bit) / 10⁹bps = 12μs
- CSMA/CD最大效率 ≈ 1 / (1 + 5×t_prop/t_trans) = 1 / (1 + 5×5/12) = 1 / (1 + 2.083) = 1/3.083 ≈ 32.4%
注意:这是共享式以太网(半双工)的效率。现代交换式以太网全双工,效率接近100%。
习题4:VLAN间通信
一个交换机上有两个VLAN:VLAN 10(192.168.10.0/24,端口1-4)和VLAN 20(192.168.20.0/24,端口5-8)。主机A在VLAN 10(192.168.10.5),主机B在VLAN 20(192.168.20.5)。请问A能直接和B通信吗?如果不能,需要什么设备?
答:A不能直接和B通信。因为VLAN 10和VLAN 20是不同的广播域,也是不同的IP子网。A要给B发数据,需要经过三层设备(路由器或三层交换机)做VLAN间路由。
具体过程:A发现B的IP不在本子网,把数据报发给默认网关(VLAN 10的网关,通常是三层交换机的VLAN 10接口IP)。三层交换机查路由表,发现192.168.20.0/24是直连的VLAN 20,把数据报从VLAN 20接口转发出去,经过交换机到达B。
四、Wireshark实验:802.3以太网
实验目标
通过Wireshark抓包,观察以太网帧的实际格式,理解MAC地址、类型字段、ARP和DHCP报文的封装。
实验环境
- 一台安装了Wireshark的电脑
- 可以访问局域网(有线或WiFi)
- 目标:观察以太网帧、ARP、DHCP
实验步骤
第1步:启动Wireshark,选择抓包接口
打开Wireshark,选择你正在使用的网络接口(以太网或WiFi),点击开始抓包。
第2步:观察以太网帧
在Wireshark中随便点击一个数据包,展开"Ethernet II"层,观察:
- Destination(目的MAC):6字节,通常是你的网关MAC或广播地址
- Source(源MAC):6字节,你电脑网卡的MAC地址
- Type(类型):2字节,常见值:
0x0800= IPv40x0806= ARP0x86DD= IPv6
注意:Wireshark中看不到前同步码(8字节)和CRC(4字节),因为网卡硬件已经处理了这些字段,Wireshark抓到的是去掉前同步码和CRC后的帧。
第3步:观察ARP报文
在显示过滤器中输入arp,只显示ARP报文。然后在终端执行ping 网关IP(如果网关不在ARP缓存中,会触发ARP请求)。
你应该能看到一对ARP报文:
- ARP Request:目的MAC=FF:FF:FF:FF:FF:FF(广播),Type=0x0806。内容:“谁的IP是X.X.X.X?请告诉Y.Y.Y.Y”
- ARP Reply:目的MAC=请求方的MAC(单播),Type=0x0806。内容:“X.X.X.X的MAC是AA:BB:CC:DD:EE:FF”
展开ARP层,观察:
- Hardware type:0x0001(以太网)
- Protocol type:0x0800(IPv4)
- Hardware size:6(MAC地址长度)
- Protocol size:4(IP地址长度)
- Opcode:1=请求,2=应答
- Sender MAC/IP:发送方的MAC和IP
- Target MAC/IP:目标的MAC和IP
第4步:观察DHCP报文
在显示过滤器中输入bootp或dhcp。然后断开网络再重新连接(或执行ipconfig /release和ipconfig /renew,Windows;或sudo dhclient -r和sudo dhclient,Linux/Mac),触发DHCP过程。
你应该能看到四个DHCP报文:
- DHCP Discover:源IP=0.0.0.0,目的IP=255.255.255.255,源MAC=电脑MAC,目的MAC=广播。UDP源端口68,目的端口67。
- DHCP Offer:DHCP服务器回复,提供IP地址。
- DHCP Request:客户端请求接受该IP。
- DHCP ACK:服务器确认分配。
注意DHCP全程使用广播(因为客户端一开始没有IP),封装在UDP→IP→以太网中。
第5步:观察TCP/HTTP报文(可选)
在过滤器中输入tcp.port == 80,然后访问一个HTTP网站(如http://example.com)。观察以太网帧中封装的IP数据报和TCP报文段,理解逐层封装的过程。
实验思考题
- 为什么Wireshark中看不到以太网帧的前同步码和CRC?(提示:网卡硬件处理)
- ARP请求为什么用广播?ARP应答为什么可以用单播?
- DHCP为什么全程使用广播?如果客户端已经有IP,还需要广播吗?
- 对比以太网帧中的源MAC/目的MAC和IP数据报中的源IP/目的IP,在ping网关时,它们分别是什么?(提示:MAC是电脑和网关的,IP是电脑和目标的)
- 如果你抓到一个VLAN标签(802.1Q),它在以太网帧的什么位置?VLAN ID占多少位?
本节核心总结(必看)
这一节是第6章的总结和实践,核心要点:
一、知识图谱
- 链路层 = 基本概念 + 差错检测 + 多路访问 + 交换局域网 + 链路虚拟化 + 数据中心 + 综合应用
- 核心:MAC地址/ARP、以太网、交换机自学习、VLAN、CRC、CSMA/CD
- Web请求历程串起全书:DHCP→DNS→ARP→路由→TCP→HTTP
二、复习题要点
- MAC vs IP:链路层vs网络层,扁平vs层次,每跳变vs全程不变
- 交换机自学习:记录源MAC,未知泛洪,已知单播
- CRC:模2除法,检测能力强于检验和
- CSMA/CD:共享介质需要,交换式全双工不需要
- VLAN:隔离广播域,Trunk带标签,Access不带标签
三、习题要点
- CRC:D后加r个0,模2除G得余数R
- 交换机转发表:逐步学习,泛洪→单播
- CSMA/CD效率:1/(1+5t_prop/t_trans)
- VLAN间通信:需要路由器或三层交换机
四、Wireshark实验
- 以太网帧:目的MAC+源MAC+类型+数据(看不到前同步码和CRC)
- ARP:广播请求+单播应答,Type=0x0806
- DHCP:四步握手,全程广播,UDP 67/68
- 类型字段:0x0800=IPv4, 0x0806=ARP, 0x86DD=IPv6
结语
恭喜你!第6章"链路层和局域网"的全部内容到这里就结束了!从链路层的基本概念,到差错检测的CRC算法,到多路访问的CSMA/CD,到交换局域网的MAC/ARP/以太网/交换机/VLAN,到MPLS链路虚拟化,到数据中心网络的叶脊架构,再到精彩的Web页面请求历程,我们完整地学习了链路层的方方面面。
回顾整个计算机网络协议栈:应用层(HTTP/DNS)→运输层(TCP/UDP)→网络层(IP/OSPF/BGP)→链路层(以太网/WiFi/交换机)→物理层(比特流)。我们已经从上到下学完了所有层!下一章(第7章)我们将学习无线网络和移动网络——WiFi、蜂窝网络(4G/5G)、移动管理等无线世界的特殊问题。无线网络和有线网络有很大不同——信号会衰减、会干扰、用户会移动,这给网络协议带来了新的挑战。让我们带着满满的收获,继续前进吧!
如果你觉得这一系列笔记对你有帮助,欢迎点赞收藏关注~有问题也欢迎留言讨论,我们一起在计算机网络的世界里探索!下一章见!
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)