《计算机网络-自顶向下方法》6.4 交换局域网 读书笔记

目录

  • 导语
  • [一、6.4.1 链路层寻址和ARP](#一、6.4.1 链路层寻址和ARP)
  • [二、6.4.2 以太网](#二、6.4.2 以太网)
  • [三、6.4.3 链路层交换机](#三、6.4.3 链路层交换机)
  • [四、6.4.4 虚拟局域网](#四、6.4.4 虚拟局域网)
  • 本节核心总结(必看)
  • 结语

导语

  大家好呀~这一节是第6章的重头戏------交换局域网(Switched LAN)!我们每天上网用的网线、WiFi、公司的内网,本质上都是交换局域网。这一节我们会学习四个核心内容:MAC地址和ARP(链路层怎么寻址)、以太网(最成功的局域网技术)、链路层交换机(怎么自学习和转发)、VLAN(怎么把一个物理网络分成多个逻辑网络)。

  交换局域网是链路层最核心、最实用的内容。你可能听过"MAC地址""ARP欺骗""以太网帧""交换机自学习""VLAN划分"这些名词,这一节我们就把它们彻底搞懂。这些知识不仅是考试重点,也是网络工程师日常工作的基础。准备好了吗?让我们走进交换局域网的世界~


一、6.4.1 链路层寻址和ARP

1. MAC地址

  **MAC地址(Media Access Control Address,媒体访问控制地址)**是链路层的地址,也叫物理地址、硬件地址、局域网地址。

  MAC地址的特点:

  • 长度48位(6字节) ,通常表示为12个十六进制数,如AA:BB:CC:DD:EE:FF
  • 烧录在网卡的ROM中,全球唯一(由IEEE分配给厂商,厂商保证唯一性)
  • 扁平结构:不像IP地址有层次(网络号+主机号),MAC地址没有结构,任意两个网卡的MAC地址没有关系
  • 不随位置改变:笔记本电脑从北京带到上海,MAC地址不变,但IP地址会变

  通俗类比:MAC地址就像你的身份证号------全国唯一、终身不变、没有地域含义。IP地址就像你的家庭住址------会变、有地域含义(哪个省哪个市)。数据包在链路层用MAC地址(身份证号)找到下一跳,在网络层用IP地址(家庭住址)找到最终目的地。

  特殊MAC地址:

  • 广播地址FF:FF:FF:FF:FF:FF,发给同一局域网内所有节点
  • 组播地址:最高字节最低位为1,发给一组节点
  • 单播地址:最高字节最低位为0,发给单个节点

2. ARP协议

  **ARP(Address Resolution Protocol,地址解析协议)**的作用是:已知IP地址,求对应的MAC地址

  为什么需要ARP?因为网络层用IP地址寻址,但链路层用MAC地址寻址。当主机要把IP数据报发给下一跳时,需要知道下一跳的MAC地址才能封装成以太网帧。ARP就是用来做IP→MAC映射的。

  ARP的工作过程:

  1. 查询ARP缓存:主机先查自己的ARP缓存(ARP table),如果有目标IP对应的MAC地址,直接用。
  2. 发送ARP请求:如果缓存中没有,主机广播一个ARP请求帧(目的MAC=FF:FF:FF:FF:FF:FF),内容是"谁的IP是192.168.1.100?请告诉我你的MAC地址"。
  3. ARP应答:所有主机收到广播,但只有IP匹配的主机回复一个单播ARP应答,内容是"我的IP是192.168.1.100,我的MAC是AA:BB:CC:DD:EE:FF"。
  4. 更新缓存:请求方收到应答后,把IP→MAC映射存入ARP缓存(通常有效期15-20分钟)。

  注意:ARP是同一个子网(局域网)内的协议。如果目标IP在不同子网,主机会把数据报发给默认网关(路由器),这时候ARP解析的是默认网关的MAC地址,而不是目标主机的MAC地址。

3. ARP欺骗(ARP Spoofing)

  ARP没有认证机制,任何主机都可以发送伪造的ARP应答,声称自己是某个IP地址。这就是ARP欺骗(ARP Spoofing),攻击者可以:

  • 冒充网关,截获所有流量(中间人攻击)
  • 冒充其他主机,导致流量被错误引导
  • 拒绝服务攻击,让目标主机无法通信

  防御方法:静态ARP绑定、DAI(动态ARP检测,交换机上配置)、端口安全等。


二、6.4.2 以太网

1. 以太网概述

  **以太网(Ethernet)**是当今最主流的局域网技术,由Bob Metcalfe在1973年发明,经历了从10Mbps到100Mbps、1Gbps、10Gbps、40Gbps、100Gbps甚至400Gbps的演进。

  以太网成功的原因:

  • 简单、成本低
  • 不断演进,保持向后兼容
  • 交换式以太网解决了冲突问题,性能大幅提升

  以太网的拓扑从早期的总线型 (所有节点共享一条同轴电缆,用CSMA/CD)演变为今天的星型(所有节点连接到交换机,全双工,无冲突)。

2. 以太网帧格式

  以太网帧的结构:

复制代码
| 前同步码(8B) | 目的MAC(6B) | 源MAC(6B) | 类型(2B) | 数据(46-1500B) | CRC(4B) |
  • 前同步码(Preamble) :8字节,前7字节是0xAA,最后1字节是0xAB,用于接收方同步时钟。
  • 目的MAC地址:6字节,帧的接收方。
  • 源MAC地址:6字节,帧的发送方。
  • 类型字段(Type) :2字节,标识数据字段承载的网络层协议。0x0800=IPv4,0x0806=ARP,0x86DD=IPv6。
  • 数据字段:46-1500字节。如果网络层数据报小于46字节,需要填充(padding)到46字节。最大1500字节是以太网的MTU(最大传输单元)。
  • CRC(循环冗余检测):4字节,差错检测。

3. 以太网的特点

  • 无连接(Connectionless):发送方和接收方之间不需要建立连接,直接发帧。
  • 不可靠(Unreliable):接收方收到帧后不发确认,丢了就丢了(可靠性由TCP保证)。
  • 使用CSMA/CD:传统共享式以太网使用CSMA/CD,但现代交换式以太网全双工,不需要CSMA/CD。
  • 曼彻斯特编码:传统10Mbps以太网使用曼彻斯特编码(每个比特中间有跳变,自带时钟同步)。高速以太网使用更高效的编码方式。

4. 以太网技术演进

标准 速度 介质 年代
10BASE5 10Mbps 粗同轴电缆 1980s
10BASE2 10Mbps 细同轴电缆 1980s
10BASE-T 10Mbps 双绞线 1990s
100BASE-TX 100Mbps 双绞线 1990s
1000BASE-T 1Gbps 双绞线 2000s
10GBASE-T 10Gbps 双绞线/光纤 2010s
40G/100G 40/100Gbps 光纤 2010s+

三、6.4.3 链路层交换机

1. 交换机的作用

  **链路层交换机(Link-layer Switch)**是局域网的核心设备,负责在不同端口之间转发以太网帧。和集线器(hub)不同,交换机是智能设备------它能根据目的MAC地址决定从哪个端口转发,而不是像集线器那样把帧广播到所有端口。

  交换机的好处:

  • 隔离冲突域:每个端口是一个独立的冲突域,不会发生冲突
  • 全双工:每个端口可以同时收发,带宽翻倍
  • 即插即用:不需要配置,自动学习MAC地址表
  • 线速转发:硬件实现,转发速度极快

2. 交换机自学习

  交换机最神奇的特性是自学习(Self-learning)------不需要人工配置,交换机能自动知道哪个MAC地址在哪个端口。

  自学习的过程:

  1. 交换机维护一张转发表(forwarding table),记录MAC地址→端口的映射,每条记录有老化时间(通常300秒)。
  2. 当交换机从端口X收到一个源MAC为A的帧时,它在转发表中记录"A在端口X"(如果已有则更新老化时间)。
  3. 当交换机需要转发一个目的MAC为B的帧时:
    • 如果转发表中有B→端口Y的记录,且Y≠入端口,就只从端口Y转发(单播)。
    • 如果转发表中没有B的记录,就从除入端口外的所有端口泛洪(flooding)
    • 如果B在入端口(说明源和目的在同一个端口),就丢弃该帧(过滤)。

  通俗类比:交换机就像大楼的前台------每次有人进来(源MAC),前台就记下"这个人在X号房间"。当有人要找B时,前台如果知道B在哪个房间,就直接把信送到那个房间;如果不知道,就广播问"谁是B?"。

3. 交换机转发举例

  假设交换机有4个端口,主机A在端口1,主机B在端口2,主机C在端口3,主机D在端口4。

  1. A给B发帧:交换机从端口1收到,源MAC=A,记录"A→端口1"。目的MAC=B,转发表中没有B,泛洪到端口2、3、4。B收到,C和D丢弃。
  2. B给A回复:交换机从端口2收到,源MAC=B,记录"B→端口2"。目的MAC=A,转发表中有"A→端口1",只从端口1转发。C和D收不到。
  3. 此时转发表已有A和B的记录,后续A和B通信都是单播,不影响C和D。

4. 交换机 vs 路由器

  很多同学混淆交换机和路由器,这里清晰对比:

对比项 交换机(第2层) 路由器(第3层)
工作层次 链路层 网络层
寻址 MAC地址 IP地址
转发依据 转发表(自学习) 路由表(路由协议)
隔离广播域 不隔离(广播帧会泛洪) 隔离(不转发广播)
即插即用 否(需要配置IP和路由)
速度 快(硬件线速) 相对慢(需要路由查找)
适用范围 同一个局域网 不同网络之间

5. 交换机的环路问题:生成树协议

  为了冗余,网络中可能会有多个交换机互相连接形成环路。但环路会导致广播帧无限循环(广播风暴)和MAC地址表不稳定。为了解决这个问题,以太网使用生成树协议(Spanning Tree Protocol,STP)------交换机之间交换BPDU报文,自动计算出一棵无环的生成树,把冗余链路逻辑上阻塞(blocking),只在主链路故障时才启用备份链路。


四、6.4.4 虚拟局域网

1. VLAN概述

  **VLAN(Virtual Local Area Network,虚拟局域网)**是交换机提供的一种功能,把一个物理的交换局域网逻辑上划分成多个独立的广播域。同一个VLAN内的主机可以直接通信,不同VLAN之间默认不能直接通信(需要路由器或三层交换机转发)。

  为什么需要VLAN?

  • 隔离广播域:不划分VLAN的话,一个广播帧会传遍整个交换机网络,主机多了广播开销很大。VLAN把广播限制在本VLAN内。
  • 安全隔离:不同部门(如财务部和市场部)划分不同VLAN,默认不能互访,提高安全性。
  • 灵活管理:主机的VLAN归属由交换机端口配置决定,和物理位置无关。换办公室不需要重新布线,只需要改端口配置。
  • 简化管理:按功能/部门/项目分组,而不是按物理位置分组。

2. VLAN的工作原理

  VLAN通过在以太网帧中插入一个**VLAN标签(VLAN tag)**来实现。IEEE 802.1Q标准定义了VLAN标签格式:在源MAC和类型字段之间插入4字节的标签,其中12位是VLAN ID(范围1-4094,1和4095保留)。

  VLAN端口类型:

  • Access端口:连接终端主机,属于一个VLAN,收发不带标签的帧。交换机在入方向给帧打标签,出方向去标签。
  • Trunk端口:连接交换机之间,承载多个VLAN的流量,收发带标签的帧(除了本征VLAN native VLAN的帧不带标签)。

3. VLAN间路由

  不同VLAN之间默认不能直接通信(因为是不同的广播域,也通常是不同的IP子网)。VLAN间通信需要:

  • 路由器:路由器的一个物理接口可以划分多个子接口,每个子接口对应一个VLAN(单臂路由)。
  • 三层交换机(Layer 3 Switch):集成了路由功能的交换机,能在VLAN之间线速转发,性能远高于路由器。

4. VLAN举例

  一个公司有财务部(VLAN 10,192.168.10.0/24)、市场部(VLAN 20,192.168.20.0/24)、技术部(VLAN 30,192.168.30.0/24)。交换机端口1-8划给VLAN 10,9-16划给VLAN 20,17-24划给VLAN 30。财务部的广播帧只会在端口1-8泛洪,不会影响市场部和技术部。财务部和市场部之间通信需要经过三层交换机或路由器。


本节核心总结(必看)

  这一节是交换局域网的核心,要点如下:

一、MAC地址和ARP

  • MAC地址:48位,烧录在网卡,全球唯一,扁平结构,不随位置变
  • 广播地址FF:FF:FF:FF:FF:FF
  • ARP:已知IP求MAC,广播请求+单播应答,缓存15-20分钟
  • ARP欺骗:无认证,可伪造,用DAI/静态绑定防御

二、以太网

  • 最成功的局域网技术,从10Mbps到400Gbps
  • 帧格式:前同步码+目的MAC+源MAC+类型+数据+CRC
  • 无连接、不可靠、传统用CSMA/CD(现代全双工不需要)
  • MTU=1500字节

三、链路层交换机

  • 智能转发,每个端口独立冲突域,全双工
  • 自学习:收到帧时记录源MAC→端口,未知目的泛洪,已知目的单播
  • 转发表有老化时间(300秒)
  • 即插即用,线速转发
  • STP生成树协议解决环路问题
  • 交换机不隔离广播域,路由器隔离

四、VLAN

  • 把一个物理LAN逻辑划分成多个广播域
  • 802.1Q标签,VLAN ID 1-4094
  • Access端口连主机,Trunk端口连交换机
  • VLAN间通信需要路由器或三层交换机
  • 好处:隔离广播、安全隔离、灵活管理

关键概念清单

  • MAC地址:48位链路层地址
  • ARP:地址解析协议,IP→MAC
  • 以太网(Ethernet):最主流的局域网技术
  • 交换机(Switch):链路层转发设备
  • 自学习(Self-learning):交换机自动学习MAC地址表
  • 泛洪(Flooding):未知目的时从所有端口转发
  • 生成树协议(STP):防止交换环路
  • VLAN:虚拟局域网,逻辑隔离广播域
  • 802.1Q:VLAN标签标准
  • 三层交换机:集成路由功能的交换机
  • 冲突域(Collision Domain):可能冲突的范围
  • 广播域(Broadcast Domain):广播帧能到达的范围

结语

  这一节我们深入学习了交换局域网------从MAC地址和ARP的寻址机制,到以太网的帧格式和演进,到交换机的自学习和转发,再到VLAN的逻辑隔离。交换局域网是我们每天都在使用的技术,理解它的工作原理对网络学习至关重要。

  下一节6.5我们将学习链路虚拟化:网络作为链路层------MPLS等技术如何把一个网络虚拟成一条链路,以及这对VPN和流量工程的意义。虽然内容不多,但概念很重要。然后6.6学习数据中心网络,6.7是超级精彩的"Web页面请求的历程"------把前面所有层串起来,看一个网页请求从点击到显示到底经历了什么。让我们继续前进吧!

  如果你觉得这篇笔记对你有帮助,欢迎点赞收藏~有问题也欢迎留言讨论,我们一起进步!

相关推荐
是立不是利1 小时前
深入理解JavaScript事件委托
开发语言·前端·javascript
心中有你02141 小时前
Python Tkinter 情侣恋爱日记桌面小程序(本地文件存储,无数据库)
开发语言·python
啊阿狸不会拉杆2 小时前
《计算机网络-自顶向下方法》6.5 链路虚拟化:网络作为链路层 读书笔记
网络·计算机网络·php
疯狂打码的少年2 小时前
【计算机网络】OSI/RM七层模型(层次结构、各层功能速览)
开发语言·笔记·计算机网络·php
小灰灰搞电子2 小时前
Rust+Slint 实现ModbusRTU从机调试助手源码分享
开发语言·rust·modbusrtu
程序喵大人2 小时前
【C++入门】值类别与表达式 - 03 引用绑定:为什么有些参数能接住临时对象
开发语言·c++·引用绑定
子非鱼a2 小时前
【WEB】[RoarCTF 2019]Easy Java
java·开发语言
啊阿狸不会拉杆2 小时前
《计算机网络-自顶向下方法》6.7 回顾:Web页面请求的历程 读书笔记
前端·计算机网络
软件黑马王子2 小时前
19.资源加载模块:主要作用和基本原理
开发语言·前端框架·c#