1. 链路层概述

1.1 结构

节点 任何运行链路层协议的设备
链路 相邻节点之间的通信信道
frame 节点把datagram封装为frame后传输到link上

1.2 服务

组帧 frame封装链路层协议,每一个frame=data+若干header,其中网络层数据报就在data中
链路接入 MAC(Medium

Access Control)协议规定了frame在link的传输规则 | | 可靠交付 | 类似传输层TCP的确认和重传 | | 差错检测和纠正 | 见👇错误检测和纠正 |

1.3 实现位置

每一个host都有链路层,主体部分在网络适配器(network adapter),即网卡(NIC),连接着host的系统总线
image.png


2. 错误检测和纠正

奇偶校验 对于d位数据,增加一个校验位,使得d+1位中的1总数是偶数,当数据接收方计算出的校验位和传输的结果不一致,说明出错
image.png
二维奇偶校验 一维奇偶校验只能检测,无法纠正,而二维校验可具体定位错误bit,从而改正
image.png
CRC检测 编码过程:

CRC把发送的01串视为多项式进行操作:发送d位数据,发送方和接收方需要协定一个G,用于验证数据,对于d≤**2**,需要保证有r个附加比特R连接到原始数据D上,生成d+r比特模式 | | | 求R过程:
对d位原始数据先补r个0,直接进行模二运算(异或),得到R,如下👇原始数据101110,因为6<2,则需要要3位附加比特使用101110000和1001模二运算,得到余数为011,因此发送的比特模式应该为101110011
image.png | | | 校验过程:
接收方使用G去除(模二除法)接收的d+r,当余数为0说明正确接收,否则说明传输出错,接上👆,接收方收到101110011后和1001模二运算,当余数为0,说明结果正确 | | 对于其余层 |
- 在第二层(链路层)使用CRC检验;
- 在第三层(网络层)使用checksum
|


3. 多路访问协议

定义 Multiple access protocols—多路访问协议:
用于规范多节点在共享的广播信道传输frame时的行为
分类
- channel
  1. parititioning--信道划分<br />- random access--随机接入<br />- taking turns--轮流<br /> |

3.1 信道划分协议

TDMA—时分复用 FDMA—频分复用
image.png image.png
把时间划分为时间帧,分为N个slot(时隙),每个节点分得特定slot
  1. **优点: **避免了碰撞<br />
  2. **缺点: **①速度限定R/N ②利用率低下 | 根据频率分配frame,缺点和优点同TDMA一样 |

3.2 随机接入协议

传输节点以全速率R发送,有碰撞时再进行处理

  • 纯ALOHA | 示意 | image.png | | —- | :—-: | | 说明 | 只关注独立节点,随时都可以发送frame,问题是当前frame占用信道时前后frame都会被影响 | | 效率 | 1/2e=0.18 |

  • 时隙ALOHA, slotted ALOHA | 示意 | image.png | | —- | :—-: | | 说明 | 当节点发送frame,等到下一slot即全速发送,如果没有collision无需重传,如果碰撞,则以随机概率p决定在下一slot重传 | | 效率 | 最大为1/e=0.37 |

  • CSMA(Carrier Sense Multiple Access,载波侦听多路访问) | 模式 | 在传输frame前监听信道,空闲时才传输,当其余host传输占用信道时也不会去打断 | | | —- | —- | —- | | CSMA
    冲突
    | image.png |
    - t0时刻:信道空闲,B开始传输,沿着两个方向随时间向下传播
    - t1时刻:此时D监听信道空闲,实际上B的比特只是还未抵达
    - 一段时间后:B抵达D开始在D干扰D的传输
    | | | | CSMA中冲突发生后传输不会停止,因此会生成受损的frame,为了避免这种情况需要保证B的比特在D传输就抵达,提示D信道忙:
    |

  • CSMA/CD(Collosion Detection,带碰撞检测的CSMA) | 模式 | 先听后发 边听边发,
    冲突停发 随机重发
    停发机制避免浪费带宽去传输受损frame | | | —- | —- | —- | | CSMA
    冲突
    | image.png |
    - t0时刻:信道空闲,B开始双向传输
    - t1时刻:此时D监听信道空闲,实际上B的比特只是还未抵达,D开始双向传输
    - 一段时间后:B抵达D开始在D干扰D的传输,而之后D的比特也到B,B在image.png时探测到干扰
    - ⭐**CSMA/CD无法用于WLAN,因为信道监听困难,无线使用CSMA/CA
    | | | | 在冲突发生时,为了使两个站点都能及时正确接受到冲突发生的信号,要满足
    最小帧长:**
    |

最小帧长L*的确定
参考链接: CSMA/CD协议(载波侦听多路访问/碰撞检测) 最小帧长理解
前提:**

  1. 边听边传,当前frame传输未结束时监听到碰撞才有意义
  2. 传输时延:将一个完整pkt传输到信道上的时间,因此在0时刻frame的第一个bit传到信道后,L/R时刻时frame最后一个bit传到信道上
  3. 碰撞信息传回host也需要时间(传播时延)

image.png

3.3 轮流协议

轮询—polling image.png 描述:主节点以轮询方式给其余节点发送msg,告知子节点可发送的frame最大数量
缺点:轮询也有时延,且主节点故障时传输不可进行
令牌—token image.png 描述:没有主节点,有一个令牌在需要传输frame的节点间传递,持有令牌的节点以最大速率发送
缺点:当一个节点要加入/退出时,为了形成环路,必须进行节点的更新维护

4. MAC地址 & ARP

4.1 MAC地址

定义 网络接口的链路层地址,有48bits,也叫LAN地址,物理地址
位置 链路层
意义 ⭐src的适配器(网卡)向dest发送frame时,把dest的MAC地址插入frame,从而dest可实现在网卡处就过滤网络中不相关的**pkt**
为什么不使用32bits的IP地址?
IP协议实现在网络层,需要接收pkt后拆封由OS判断,而每次判断会触发OS的中断,效率低下,浪费资源
🦈关于抓包过滤:
网卡分为混杂/正常工作模式,使用wireshark抓包时会切换为混杂模式,此时网卡就会接受所有MAC不对应的pkt
结构 扁平,即无层次,且不可变.目的就是免去配置的过程,直接写死在网卡上

4.2 ARP—地址解析协议

定义 ARP, Address Resolution Protocol(地址解析协议),负责进行网络层IP和链路层MAC地址映射,**跨越链路层和网络层**
过程 每一个IP节点**(包括host)都有ARP table,存有IP-MAC映射
-
当有记录时:直接查表
-
无记录时:
-
广播查询—A广播ARP查询pkt(dest MAC设为FF-FF-FF-FF-FF-FF),其中含有B的IP
-
单播返回—**当B收到查询,单播返回给A自己的MAC

4.3 局域网寻址场景

场景 image.png
背景知识 背景知识
- 直接投递:同一子网内host,MAC直接为目标host的MAC
- 间接投递:当非同一网络组内host,数据报无法直接抵达,需要先发给网关,因此是网关的MAC
当问”节点如何知道该使用什么链路层地址”?
答案:节点通过IP地址判断:
- 如果网络号相同说明在同一子网,直接使用目标MAC为link层地址
- 当网络号不同说明非同一子网,采用间接投递,使用网关MAC
过程 image.png A封装:
- A网络层datagram:IP src为111.111.111.111,IP
  1. dest:222.222.222.222(B)<br />- A链路层frame:MAC src:74 **MAC dest:E6 ..**.(路由器R的接口,非B)<br /> |

| | image.png | R接收:
- 数据报没有任何改动
- 链路层frame的MAC src变为自己发送接口的MAC,MAC dest变为同一网络内B的MAC
| | | image.png | B收到:
B最终收到来自A的pkt

上述过程中A->R即为间接投递,R->B为直接投递,省略了ARP解析
注意:frame中封装的datagram不会改变(忽略NAT),但src和dest MAC每一hop都改变,对应着Ch1中链路层作用:在相邻网络节点间转递数据 |


5. 以太网

5.1 概述

  • 定义:

以CSMA / CD作为MAC算法的一类LAN称为以太网(来自: 以太网原理)

  • 发展 | 同轴电缆 | image.png |
    - 拓扑:使用bus topology
    - 广播局域网:所有frame传送到与bus连接的所有适配器(NIC/网卡)进行处理
    | | —- | :—-: | —- | | 集线器 hub | hub是物理层设备,作用于bit而非frame,二进制信号**(0/1)到达时hub**只是重新生成并发送给其他接口,见6.1 交换机&集线器 | | | 交换机 swtich | 见链路层交换机—switch | |

5.2 以太网帧

image.png

前导码 共8bytes,前7字节为10101010用于同步,最后1字节10101011预示数据到来
地址 都为6字节
Type 指示高层协议(大部分为IP,但还有其他)
CRC 校验

5.3 服务

Unreliable, connectionless

  • 无连接:数据传输前没有握手
  • 不可靠:NIC之间不传输ack
  • MAC协议: 无分片带碰撞检测的CSMA—unslotted CSMA/CD

    5.4 以太网传输算法⭐

    |
    - NIC从网络层接收datagrams,组成frame
    - 当NIC检测到信道占用,等待直到空闲;
    - 当NIC检测的信道空闲(96bit time**中没有被占用),开始传输;
    - 当NIC完成传输且无冲突,传输完成;
    - 当探测到冲突,终止当前传输,发生以下一系列动作
    - 发送48bits的
    jam signal,告知其他传输者发生冲突
    - NIC进行
    指数回退(exponential backoff):当前为第m次冲突,则选择k∈{0,1,2…2m-1},NIC等待K512bit times后回到状态2—即随机等待时间
    | | —- | | **
    Jam** signal:特殊信号,48bits,用于告知其他传输者冲突
    ** bit time:传输1bit数据的时间—1/R | | 例题:
    局域网内A和B在t=0时刻进行数据相互传输,传播时延为500 bit times,则
    ①AB分别何时检测到冲突 ②发生第一次冲突后A,B的K为0,1则分别在何时重新传输 | |
    1. 500bit time时AB同时各自检测到冲突
    1. AB如下
    image.png |

6. 交换机

6.1 交换机&集线器

hub image.png 集线器只是单纯的物理层设备
- 一条link的bits会以相同速率发送给所有links,因此,集线器以太网是bus** topology
- 所有nodes之间都
会冲突
-
没有frame缓存
- hub
自身**没有CSMA/CD,只能通过host检测
switch image.png 更主动的链路层设备
- 检测到达frame的MAC,有选择的转发给一或多个links,交换机以太网是star** topology
- 允许多路同时传输,
不会冲突
-
存储-转发以太网frame
-
使用CSMA**/CD
- 透明:switch没有网络层,**因此没有IP地址(基于vlan等技术分配的为虚拟IP),故host无法意识到switch存在
-
plug-and-play & Dual: 自学习,无需手动配置table;双工**,任一接口同时收发

6.2 转发&过滤

filtering 决定frame应当转发或丢弃的switch功能
forwarding 决定frame的导出接口
switch table 是转发&过滤的基础,基于“MAC-接口”的对应关系
image.png
场景 对于一个“来自x接口且**dest MAC**为DD-DD-DD-DD-DD-DD的frame”,swtich使用该MAC索引table,可能情况:
- 失配:此时交换机广播该frame的副本给x接口外所有接口
- 丢弃:有一个item,把DD-DD-DD-DD-DD-DD连接到接口X,说明该frame的dest和src在一个LAN中,无需转发,直接丢弃
- 转发:有一个item,把DD-DD-DD-DD-DD-DD连接到接口Y,则通过Y转发frame即可,和别的接口无关

6.3 自学习

初始table为空,而且交换机可以自学习并动态更新table

初始 table为空
学习 对于一个frame,在table中存入:
1. src MAC
2. 到达接口
2. 当前时间
老化 一段时间无来自该src的frame则删除item

6.4 路由器&交换机

image.png 共同点 二者都为存储转发分组交换机
不同点 路由器 拥有网络层,因此有IP地址, 也可以使用MAC
交换机 只能使用MAC
交换机 优点
- 即插即用,无需配置,无需处理高层次数据报
- 设有输出缓存,没有因为碰撞浪费带宽,交换机最大聚合带宽是所有接口速率之和

参考例题: 不同设备聚合带宽
- 全双工,任意接口同时收发
| | | | 缺点 | 一旦host出错不断输出frame流,switch无法识别,只能转发直到崩溃—“广播风暴” | | | 路由器 | 优点 | IP寻址分层,非MAC扁平,因此能够隔离流量,防止”广播风暴”,且使用算法可以”优化路由” | | | | 缺点 | 需要配置,且对pkt处理时间更长 |

  • 小结三种网络设备

image.png


MindMap

image.png