术语:
职责:将第三层网络层封装的数据报 从一个节点传到与该节点 直接有物理链路相连的 另一个节点
数据报在不同链路上发送:例如在第一段链路上采用以太网技术,在中间链路采用帧中继技术,在最后一跳链路采用802.11无线以太网技术。(类比先坐小汽车到机场,到机场又坐飞机,最后坐火车)
三段链路采取不同的链路层协议(不同的协议提供不同的服务,数据传输 靠谱/不靠谱)
链路层提供的服务:
区分两个服务:
链路层提供的服务:
将数据报封装成数据帧,增加相应的头部和尾部信息。如果是共享链路,则接入链路。
不同于 IP 地址,在数据帧头部用 MAC 地址来标志 源/目的MAC 地址
以太网能够提供的链路层服务:
- 为什么要在链路层和端到端都实现可靠传输?
答:链路层负责处理 局部链路上的错误和重传,确保邻近设备之间的传输可靠性;端到端层次则负责 整个路径的错误检测和纠正,确保数据完整性和顺序。这种多层次的策略可以更有效地应对不同类型的传输问题,提升整体网络通信的可靠性和性能。
- 既然在传输层实现了端到端的可靠数据传输,为什么还需要在链路层提供可靠数据传输呢?
答:这种多层次的设计提供了局部错误的 快速处理、减少了传输层的负担、提高了局部链路的效率、确保了不同网络技术之间的互操作性,并满足了不同应用和服务的需求。通过在多个层次上提供可靠性,可以构建一个更健壮、高效的网络传输系统。
链路层实现的位置:主机、路由器
主机:网络适配器(网卡)上
以太网卡,802.11卡;以太网芯片组
实现链路层和物理层功能

发送方:
接收方
基本思想:(将一比特中不能发现偶数个错误中的偶数个错误拆开,这样可能就拆成奇数了,可以检测了但还是不能纠正)
将要传的信息划分为 i 行 j 列( i 个组,每组 j 列)

对每行每列分别计算奇偶值
结果的 i+j+1 个奇偶比特构成了帧的差错检测比特
例子:要发送的数据比特 10101 11110 01110,划分3组,每组5个比特。进行 行、列 偶校验。

特点:
可以检测并纠正单个比特差错(数据或校验位中)
能够检测(但不能纠正)分组中任意两个比特的差错
两个比特的话,两横两纵就有4个交点了
发送方:
接收方:
特点:
即多项式编码,把要发送的比特串看作系数是 0 或 1 的一个多项式,对比特串的操作看作为多项式运算。
例如: 10111 → x 4 + x 2 + x + 1 10111 \space \rarr \space x^{4}+x^{2}+x+1 10111 → x4+x2+x+1
基本思想:
发送方:
接收方:

模2运算
操作数按位异或(XOR)
1011 XOR 0101 = 1110
乘以 2 r 2^{r} 2r ,即比特模式左移 r 个位置。
D ∗ 2 r X O R R = D 00...00 X O R R = D R D*2^{r} \space XOR \space R=D\space 00...00 \space XOR \space R=DR D∗2r XOR R=D 00...00 XOR R=DR
因为 0 XOR 0 = 0 ,0 XOR 1 = 1,所以 D 左移之后低 r 位全0,和R异或刚好达到拼接的效果
计算 R:
DR 能被 G 模2运算整除,即 D ∗ 2 r X O R R = n G D*2^{r} \space XOR \space R=nG D∗2r XOR R=nG
等式两边都 XOR R,得: D ∗ 2 r = n G X O R R D*2^{r}=nG \space XOR \space R D∗2r=nG XOR R
A XOR A = 0,0 XOR A = A
那么用 D ∗ 2 r D*2^{r} D∗2r 除以 G ,余数刚好为 R
例1:假设数据 D=101110,d=6,生成多项式 G=1011,r=3

实际传输的数据形式是:101110011 (下划线不用写,这里是提醒这道题r=3,最后3位是R)
注意:不是减而是异或!
例2:通信双方协商的生成多项式为: G = X 4 + X 2 + X + 1 G=X^{4}+X^{2}+X+1 G=X4+X2+X+1 ,发送方要发送的数据是 D = 11001100 D=11001100 D=11001100
CRC校验信息需要几位——4位
因为G=10111,CRC编码的位数是G的位数-1,即4位
发送方最终发送的数据是多少位—— 8+4=12位
发送方最终发送的数据内容是什么—— 110011000101

注意:上图第三次异或:10100和10111,10100比10111小,仍然可以算,只有位数少的时候才除得0(第四次异或)
如果传输过程中出现一位错误能否检测?出现六位错误能否检测?
CRC 的特点
奇偶校验能力最弱,CRC校验能力最强
奇偶校验常用于简单的串口通信
Internet校验和通常用于网络层及之上的层次,要求简单快速的软件实现方式
CRC通常应用于链路层,一般由适配器硬件实现
纠错基本原理(打*号不考)
从 原本的 m 位增加 r 位,就将原来的 2 m 2^{m} 2m 个信息码映射到 2 m + r 2^{m+r} 2m+r 个编码。
使得这 2 m + r 2^{m+r} 2m+r 个编码中,有效码占 2 m 2^{m} 2m 个,无效码占 2 m + r − 2 m = 2 m ∗ ( 2 r − 1 ) 2^{m+r}-2^{m}=2^{m}*(2^{r}-1) 2m+r−2m=2m∗(2r−1) 个
海明码(打*号不考)
把两个等长二进制数(或两个等长码)不相同对应位的位数称为距离.
例如10000和00100的距离为2。
海明距离(Hamming Distance):某种编码任意两个有效码间的最小距离称为该编码的海明距离。
- 结论1:可以检出d个错误的检错码,其海明距离至少为d+1
- 结论2:可以纠出d个错误的纠错码,其海明距离至少为2d+1
海明码:能够纠正一位错误的编码称为海明码
两种网络链路
点对点链路:链路两端各一个节点。一个发送一个接收。如 点对点协议 PPP。
区分 PPP 和 P2P:
PPP:数据链路层的协议。提供点对点的连接,允许在两个单独的设备(通常是计算机或网络设备)之间进行数据交换。它可以在不同的物理介质(例如串行线或光纤)上传输数据。
P2P:应用层的分布式计算体系结构。每个参与者或节点可以充当客户端和服务器,直接交换资源。
广播链路:多个节点连接到一个共享的广播信道
广播:任何一个节点传输一帧时,信号在信道上广播,其他节点都可以收到一个拷贝。常用于局域网(LAN),如早期的以太网和无线局域网(WLAN)
WLAN 和 Wi-Fi:
简单来说,WLAN是一个网络系统,而Wi-Fi是这个网络系统中的一种技术,目的是改善基于IEEE 802.11标准的无线网络产品之间的互通性。(WLAN包含Wi-Fi,该解释来自 华为IP知识百科 )
广播信道要解决的问题:如何协调多个方式和接收节点对共享广播信道的访问。相关技术:多路访问协议。
多路访问协议:
目的:协调多个节点在共享广播信道上的传输。
冲突(collide):两个以上的节点同时传输帧,使接收方收不到正确的帧(所有冲突的帧都会受损丢失)
理想的情况:(假设速率位 R R R bps的广播信道)
有 1 个节点有数据发送时,它能以 R R R bps的速率发送
当 M M M 个节点要发送数据时,每个节点的平均发送速率为 R M \frac{R}{M} MR
完全分散:
不需要主节点协调传输
不需要时钟、时隙同步
简单
类型:
主要有 TDMA(Time Division Multiple Address)、FDMA(Frequency)、CDMA(Code)
TDMA:将时间划分为 时间帧,每个时间帧再划分为 N 个时隙(长度保证发送一个分组),分别分配 N 个节点。每个节点只在固定分配的时隙中传输。
例:6个站点的LAN,时隙1、3、4有分组,时隙2、5、6空闲

特点:
FDMA:将总信道带宽 R R R bps划分为 N 个较小的信道(频段,带宽为 R/N)分别分配给N个节点。
例:6个站点的LAN,频段1、3、4有分组,频段2、5、6空闲

特点:
CDMA:每个节点分配唯一的编码,每个节点用它唯一的编码来对它发送的数据进行编码。允许多个节点“共存”,信号可以叠加,即可以同时传输数据(如果编码是“正交化”的,那么不会产生冲突)
基本思想:
发送节点以信道全部速率( R R R bps)发送
发生冲突时,冲突的每个节点分别等待一个随机时间,再重发,知道帧(分组)发送成功,
节点间没有协调者
典型的随机访问协议:
ALOHA:采用星型拓扑结构,使得地理上分散的用户通过无线电来使用中心主机

纯ALOHA
非时隙ALOHA:简单、无需同步
帧一到达,立即传输
如果与其他帧产生冲突,那么在该冲突帧传完之后:
冲突概率:在 t 0 t_{0} t0 发送的帧,和在 [ t 0 − 1 , t 0 + 1 ] [t_{0}-1,t_{0}+1] [t0−1,t0+1] 的发送的其他帧冲突

效率: P ( 给 定 节 点 成 功 传 送 ) = P ( 节 点 传 送 ) ∗ P ( 没 有 其 他 节 点 在 [ t 0 − 1 , t 0 ] 内 传 送 ) ∗ P ( 没 有 其 他 节 点 在 [ t 0 , t 0 + 1 ] 内 传 送 ) P(给定节点成功传送)=P(节点传送)*P(没有其他节点在[t_{0}-1,t_{0}]内传送)*P(没有其他节点在[t_{0},t_{0}+1]内传送) P(给定节点成功传送)=P(节点传送)∗P(没有其他节点在[t0−1,t0]内传送)∗P(没有其他节点在[t0,t0+1]内传送)
= p ∗ ( 1 − p ) N − 1 ∗ ( 1 − p ) N − 1 = p ∗ ( 1 − p ) 2 ( N − 1 ) =p*(1-p)^{N-1}*(1-p)^{N-1}=p*(1-p)^{2(N-1)} =p∗(1−p)N−1∗(1−p)N−1=p∗(1−p)2(N−1)
E ( p ) = N P = N p ( 1 − p ) 2 ( N − 1 ) E(p)=NP=Np(1-p)^{2(N-1)} E(p)=NP=Np(1−p)2(N−1) // E ( p ) E(p) E(p) 是单位时间内成功传输的帧数,相当于所有节点成功传输的帧数的期望值
为了得到N个活跃点的最大效率,必须找出使得上式取最大值的 p ∗ p^{*} p∗,为了得到大量活跃节点的最大效率,我们要求 N → ∞ N \rarr \infty N→∞
l n P = l n p + 2 ( N − 1 ) l n ( 1 − p ) ⇒ 令 1 p − 2 ( N − 1 ) ∗ 1 1 − p = 0 ⇒ p ∗ = 1 2 N − 1 lnP=lnp+2(N-1)ln(1-p) \space \Rarr \space 令\frac{1}{p}-2(N-1)*\frac{1}{1-p}=0 \space \Rarr \space p^{*}=\frac{1}{2N-1} lnP=lnp+2(N−1)ln(1−p) ⇒ 令p1−2(N−1)∗1−p1=0 ⇒ p∗=2N−11
l i m n → ∞ E ( p ∗ ) = l i m n → ∞ N 2 N − 1 ∗ ( 1 − 1 2 N − 1 ) 2 ( N − 1 ) = 1 2 ∗ e l i m n → ∞ − 2 N − 2 2 N − 1 = 1 2 ∗ e − 1 = 1 2 e = 0.18 \mathop{lim}\limits_{n\rarr \infty} \space E(p^{*})= \mathop{lim}\limits_{n\rarr \infty} \space \frac{N}{2N-1}*(1-\frac{1}{2N-1})^{2(N-1)} = \frac{1}{2}*e^{\mathop{lim}\limits_{n\rarr \infty} -\frac{2N-2}{2N-1}}=\frac{1}{2}*e^{-1}=\frac{1}{2e}=0.18 n→∞lim E(p∗)=n→∞lim 2N−1N∗(1−2N−11)2(N−1)=21∗en→∞lim−2N−12N−2=21∗e−1=2e1=0.18
时隙ALOHA
假设:
实现:
当节点要发送新帧时,等到下一时隙开始时传送
没有冲突,节点可以在下一时隙发送新帧
如果有冲突,节点在随后的时隙以概率 p 重传该帧,成功为止。

优点:
确定:
效率:当节点很多,每个节点要发的帧很多时,成功时隙所占的百分比
课后练习(*):假设信道帧到达率服从泊松分布,试从单位时间内帧到达数和信道吞吐量的角度,推导纯Aloha协议及时隙Aloha协议的效率。
CSMA(Carrier Sense Multiple Access):载波侦听多路访问
载波侦听:某个节点在发送之前,先监听信道
信道忙:有其他节点正在往信道发送帧,该节点随机等待
信道空:该节点开始传输整个数据帧
自己说话之前先听一下有没有其他人正在说话,不要打断别人!
特点:
发前监听,可减少冲突
由于 传播时延 的存在,仍然可能出现冲突,并造成信道浪费。

信道浪费:节点没有进行冲突检测,即使发生冲突,节点仍然继续传输它们的帧。但是该帧已经被破坏!
距离和传播时延对概率有影响
带冲突检测的 CSMA(CSMA/CD,Collision Detection)
增加了“冲突检测”
目的:缩短无效传送时间,提高信道利用率

以太网采用 CSMA/CD
运行机制
适配器从网络层得到分组,创建帧
如果适配器侦听到信道空闲,开始传送帧。如果忙,等到信道空闲才传送帧
如果适配器在传送整个帧时,都没有检测到其他传输,则完成该帧的传送
如果适配器在发送中检测到其它传送,就放弃传送,并发送一个拥塞信号
放弃传送后,适配器进入 指数回退阶段 ,假设该帧经过 n n n 次冲突,取 m = m i n ( n , 10 ) m=min(n,10) m=min(n,10) ,那么适配器会在
{ 0 , 1 , 2 , 3 , . . . , 2 m − 1 } \{0,1,2,3,...,2^{m}-1\} {0,1,2,3,...,2m−1} 中等概率随机选取一个 K K K 值,然后等待 K ∗ 512 K*512 K∗512 比特时间后,回到第二步。
冲突次数越多,等待时间更长的概率更大,但是有上限
拥塞信号:48比特时间
对于10 Mbps Ethernet ,1 比特时间 = 0.1 μs,K=1023 时,等待时间大约为 50ms
轮流协议:
回顾 多路访问协议的理想特性:
ALOHA 和 CSMA 协议都只有第一个特性,但没有第二个特性
轮流协议分类:
轮询协议:主节点 “邀请” 从节点 依次传送
令牌传递:控制令牌顺序从一个节点传递到下一个节点(丢手绢)

计算机和局域网通过 网络适配器(即网卡) 连接
数据链路层还可以细分为:逻辑链路控制子层、介质访问控制子层
MAC 地址:**局域网中 **每个网卡都有唯一的MAC地址
MAC地址分配:高24位向 IEEE 购买,低24位厂家自行分配

网络适配器:负责MAC地址的封装和识别
发送适配器:将目的 MAC 地址封装到帧中并发送。所有其他适配器都会收到这个帧。
接收适配器:检查该帧的目的 MAC 地址是否与自己的 MAC 地址相匹配
广播帧:发送给所有节点的帧:全1地址(用于寻找)—— FF-FF-FF-FF-FF-FF
节点的三种不同地址表示:主机名(应用层)、IP地址(网络层)、MAC地址(数据链路层)
在链路上传输时,根据 MAC 地址确定相应的节点
通信时,需要进行地址转换
DNS域名系统:将主机名解析到 IP 地址
DNS 为互联网中任何地方的主机解析主机名
ARP地址解析协议:将 IP 地址解析到 MAC 地址
ARP 只在一个 局域网 范围内起作用(只为同一 LAN 上的节点解析 IP 地址)
ARP(Address Resolution Protocol)
广播在 计网 中的几个应用:
- ARP 广播(数据链路层的协议)
- DHCP 广播(应用层的协议)
- 路由器和邻居广播,更新路由表(网络层)
发送数据报到子网以外的例子:

整个过程:
注:整个过程只改变源/目的 MAC 地址,但是源/目的IP地址不会变!
WAN接口:路由器的广域网(WAN)接口通常有一个MAC地址,用于连接到外部网络或ISP(互联网服务提供商)。
LAN接口:路由器的局域网(LAN)接口通常有多个MAC地址,每个接口(如有多个以太网端口)都有一个独立的MAC地址,用于与局域网中的设备通信。
无线接口:如果路由器支持无线功能,它的无线接口(Wi-Fi)也会有一个MAC地址,用于无线通信。
以太网:迄今为止最著名的 有线 局域网技术
成功的原因:
物理拓扑结构分为:总线(效率低,已淘汰);星形(目前流行,中心是交换机,每个端口运行一个独立的以太网协议,节点之间相互不发生碰撞,但不能2个同时给1个说)

以太网链路层控制技术
媒体访问控制(MAC)子层
以太网的帧结构:
链路层交换机:链路层设备
工作:存储转发数据帧
特点:

加入交换机后,支持多个节点同时传输数据帧,而不会发生碰撞(交换机可以缓存数据帧)
交换机的过滤/转发过程:
交换机互联时:

问:如果主机A发送数据帧给主机G,那么交换机S1是怎么知道需要先把数据转发到S4和S3的?
答:通过 泛洪和自学习。
多个交换机自学习:

问:交换机在识别目的MAC地址和源MAC地址的过程中是否需要接收并缓存完整的帧呢?
答:两种模式:
三层交换机
三层交换时相当于传统交换概念提出的
传统的交换技术是在 OSI 网络参考模型中的第二层(从下往上数,即数据链路层)进行操作的,称为 二层交换机
三次交换技术能够在网络模型中的第三层(网络层)实现数据包的高速转发
简单来讲,就是 二层交换技术 + 三层转发技术。(二层交换机+基于硬件的路由器)

工作原理:


功能:
跨越多个交换机的 VLAN:

以下的流程忽略了真实情景中的很多细节,但用于考试应该差不多了。
www.taobao.com 解析为IP地址。总结如下:
输入URL → DNS获得IP → 生成HTTP请求报文到传输层 →
三次握手 → 打包为TCP报文段(加含源/目的端口号的首部)发到网络层
→ DHCP协议获得IP地址、网关地址、子网掩码 → 打包为IP数据报(加含源/目的 IP 地址的首部)发送到数据链路层
→ ARP协议获取MAC地址 → 打包为以太网帧(加含源/目的MAC地址的首部)通过交换机和路由器传输到淘宝的LAN
→ 淘宝服务器
→ 服务器网络接口逐层解包,还原出HTTP请求报文,生成HTTP响应报文,发送至传输层
→ 打包为TCP报文段
→ 打包为IP数据报
→ 打包为以太网帧,逐步传回客户端
→ 四次挥手
→ 客户端逐层解包
→ 浏览器渲染展示
第六章不写了,看实验流程,大概率代码改错。