计算机网络:链路层
链路层概述
所有节点都有链路层协议:主机,交换机,路由器…
链路层协议
- 以太网协议
- 点到点协议
- 4G/5G的链路层协议
- WiFi的链路层协议
链路层服务
- 成帧:将网络层数据报封装成帧
- 链路接入:解决多个节点共享同一通信链路时,如何协调发送数据的问题。
- 可靠交付:与传输层类似,使用确认重传,一般用于无线链路
- 差错检测:比传输层更加复杂的算法,硬件实现
- 差错纠正
- 流量控制
差错检测
-
奇偶校验:1个EDC,未检测出差错的概率是50%
-
循环冗余校验 发送方把要发送的数据看成一个二进制数,用一个约定好的生成多项式去做“模 2 除法”,得到一个余数。这个余数就是 CRC 校验码。发送时把原始数据和 CRC 一起发出去。 接收方收到后,用同样的生成多项式再除一次: 如果余数为 0,通常认为数据没有出错 如果余数不为 0,说明数据在传输中发生了错误
多路访问
多个设备共享同一条通信信道时,如何协调“谁什么时候发数据”。
-
信道划分协议
- TDMA:将帧分为时隙,节点在各自的时隙里使用信道
- FDMA:将信道划分成不同的频段,节点在各自的频段里使用信道
- CDMA:为每个节点分配一种不同的编码,编码之间相互正交。类似于每个人用一种不同的语言
-
随机访问协议 不划分信道,也不商量,谁要用谁就用,如果有多个节点发送帧,就会导致碰撞
- CSMA/CD载波监听多路访问:在发送帧之前,先监听信道是否空闲,检测到碰撞时,停止帧传输,节点进入二进制指数退避过程
[!NOTE] 二进制指数退避过程:在该帧经历了一连串m次碰撞后,节点随机地从{0,1,2, …, 2m-1}中选择一个K值,节点等待K·512比特时间之后,重新尝试传输
问题:如果两节点距离太远,会发生冲突但却检测不出的情况 解决方法:传播时延 <= 传输时延 / 2
-
轮流协议
冲突域
在同一个共享传输介质中,可能因为同时发送数据而发生碰撞的一组设备范围。
MAC地址
是链路层用来标识网络接口的地址,每个网卡独有,用于局域网内直接通信 常见形式是 48 位二进制,通常写成 6 组十六进制数:00:1A:2B:3C:4D:5E
地址解析协议
根据 IP 地址查询对应的 MAC 地址。
以太网
有线局域网通信技术

以太网服务
不可靠服务 可靠服务通过上层TCP实现
交换机
在局域网内部根据 MAC 地址转发以太网帧。
工作过程:
-
学习 MAC 地址:交换机收到一个帧时,会记录“源 MAC 地址来自哪个端口”,形成一张 MAC 地址表。
-
查表转发:如果目标 MAC 地址在表中,交换机就把帧只转发到对应端口。
-
泛洪:如果目标 MAC 地址不在表中,交换机会把帧发到除入口端口外的所有端口,这叫泛洪。
-
过滤:如果目标 MAC 地址就在收到该帧的同一个端口,说明不需要转发,交换机会丢弃该帧。
VLAN
- 隔离广播域:一个 VLAN 内的广播不会传播到另一个 VLAN。
- 提升安全性:不同部门、不同业务可以放在不同 VLAN 中。
- 便于管理:不一定按物理位置划分网络,而是按业务、部门、用途划分。
- 减少无关广播流量:广播只在本 VLAN 内传播。
干线(Trunk)接口:一种特殊的接口,属于所有VLAN
- 能转发任何VLAN的帧
- 连接两个交换机只需要一个链路