-
本文是[计算机网络](https://www.bilibili.com/video/BV1c4411d7jb?spm_id_from=333.999.0.0)的笔记,图片也从视频中截取。
3.1数据链路层概述
(1)概念
(2)封装成帧
- 数据链路层添加帧头和帧尾,把数据封装成帧。
-
帧头和帧尾:在链路层上以帧为单元来传输数据,实现链路层本身的功能。
(3)差错检测
检错码:接收端判断在传输过程中是否出现了误码,并封装在帧尾。
(4)可靠传输
- 接收端如果接收到是误码,就会将他丢弃。
- 不可靠传输:丢弃就结束了。
- 可靠传输:采取措施,使得接收方可以重新收到被丢弃的帧的副本。
- 即发送方发送什么,接受方就收到什么。
(5)其他问题
- 上面的三个问题是点对点,广播信道还有其他问题。
- 编址问题:判断哪个主机接受数据。
- 碰撞:多个主机发送数据。(共享式局域网(总线型)不可避免)(CSMA/CD)载波监听多点接入/碰撞检测
- 交互式局域网:通过交换机进行转发。
- 无线局域网:共享式。(CSMA/CA)载波监听多点接入/碰撞避免
3.2封装成帧
- 不是所有的帧都有帧定界符,有些帧没有,比如MAC帧。
- MAC帧
- 数据链路层将帧传给物理层后,物理层会添加一个前导码。
- 前导码前七个字节为同步码,使接受时钟同步;后面一个字节为开始定界符,表明后面是MAC帧。
- 以太网规定帧间间隔时间为96比特发送时间,所以MAC帧不需要帧结束定界符。
- 传输的数据可能与帧定界符相同,会出错。
- 字节填充:在与定界符相同处前添加转义字符;如果有与转义字符相同,则也在前面添加。
-
比特填充:每连续的五个一后添加一个零。
3.3差错检测
(1)奇偶校验法
因为漏检率较高,一般不采用。
循环冗余校验CRC
-
多项式必须包含最低次项。
3.4可靠传输
(1)可靠传输的基本概念
- 分组丢失:路由器输入队列快满了,主动丢弃收到的分组。
- 分组失序:未按照发送顺序到达接收端。
- 分组重复:分组第一次在网络中滞留了,发送端超时重发,然后两个分组都到达。
(2)可靠传输的实现方式——停止-等待协议SW
- 通过确认和重传机制实现的可靠传输协议,常称为自动请求重传协议ARQ。
- 重传的请求是自动进行的,不需要接受方显式的请求发送方某个出错的分组。
(3)可靠传输的实现方式——回退N帧协议GBN
![在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/9a8e4158e1c249dbb5d125b596883bef.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd29vZGVuZGVrdQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
- BGN在流水线传输的基础上,利用发送窗口来限制发送方可连续发送数据分组的个数。
- 发送方只允许发送发送窗口内的分组,发送窗口外的分组不发送。
- 接受方只允许接受接受窗口内的分组,接受窗口外的分组不发送。
- 无差错情况:
- 发送方将发送窗口内的分组按序号一次发送出去,经传输,正确到达接受方。
- 接受方按序接受他们,每接收一个接受窗口向后移动一个,并给发送方发送针对所接受分组的确认分组。
- 确认分组经传输正确到达发送方,发送方按序接受他们,每接收一个接受窗口向后移动一个,并从缓存中删除确认收到的分组。
- 接收方可以择机把已经接受到的分组交付给上层处理。
- 累计确认:
- 接收方不一定要对收到的分组逐个发送确认,而是可以在收到几个数据分组后,对按序到达的最后一个数据分组发送确认。
- ACKn表示序号为n及前面的所有数据分组都正确接受。
- 发送方将发送窗口内的分组按序号一次发送出去,经传输,正确到达接受方。
- 接受方按序接受他们,当接受完0号和1号以后,给发送方发送一个累计确认ACK1。
- 当接受完2号到4号以后,给发送方发送一个累计确认ACK4。
- 如果ACK1丢失了,ACK4正确到达发送方。
- 发送方就知道了序号4之前的分组都接受了,发送窗口向后滑动,并从缓存中删除确认收到的分组。
- 接收方可以择机把已经接受到的分组交付给上层处理。
- 优点:
- 即使某个确认分组丢失,发送方也不必重传。
- 减小接收方的开销,减少对网络资源的占用。
- 缺点:不能及时反映出接收方已经正确接受的数据分组信息。
- 出现差错:
- 发送方将发送窗口内的分组按序号一次发送出去,经传输,到达接受方。
- 如0号出现了误码,接受方根据检错码发现错误,丢弃分组。
- 后续到达的分组的序号与接受窗口的序号不匹配,同样丢弃。
- 接收方发送上一次正确接受的分组的序号,每丢弃一个就发送一次。
- 发送方收到重复的确认,就知道之前发送的数据分组出现了差错,于是可以不等超时计时器超时就立刻重传。具体几个要设置。
- 如果没出发立刻重传,就等超时计时器出现超时,发送方将发送窗口内的数据全部重传。
- 即使只是前面的出现错误,后面的正确,但是因为前面的不被接受,后面的也要重传,这就是GBN。
- 当通信线路不好时,GBN的信道利用率并不比停止等待高。
- 如果发送窗口为8时:
- 发送方将发送窗口内的分组0到7号按序号依次发送出去,经传输,正确到达接受方。
- 接受方按序接受他们,每接收一个接受窗口向后移动一个,并给发送方发送针对所接受分组的确认分组ACK7。
- 如果ACK7丢失,发送方会超时重传。
- 重传的0到7号按序号重新发送,到达接收方。
- 因为前面的已经收到,所以就收窗口为0号。
- 接受方分局窗口序号对分组依次接受,现在在重复接受,接受方无法分辨新旧分组,产生分组重复。
-
所以,发送窗口尺寸不能超过上限。
(4)可靠传输的实现方式——选择重传协议SR
- 发送方将发送窗口内的分组依次发送出去,经传输,到达接受方,其中的2号数据分组丢失了。
- 只要序号落入接受窗口内且无误码的数据分组,接受方都会接受。
- 接收方接受0号和1号数据分组,并发送0号和1号确认分组,接受窗口向后移动2个,4和5两个新序号落入窗口。
- 接收方接受3号数据分组,并发送3号确认分组,但接受窗口不移动,3号没按顺序。
- 确认分组经传输到达发送方。
-
发送方每
按序
收到一个确认分组,滑动窗口就移动一个位置。 - 发送方接受0号和1号确认分组,就移动两个位置,4和5号移动进发送窗口,发送方将4号和5号发送出去,将0和1号从缓存中删除。
- 接收方可以择机将0和1号分组交付上层处理。
- 发送方收到3号确认分组,但不能滑动,因为没收到2号分组,不过需要记录3号已收到确认,3号就不会超时重发。
- 4和5号到达接收方,接收方接受并发送确认分组,但是窗口不能移动。
- 发送方接受4和5号分组,发送方接受他们,但窗口不移动,不过需要记录已收到确认,不会超时重发。
- 2号分组超时重传,接收方接受,并移动四个位置。
-
发送方接受2号确认分组,并移动四个位置。
- 如果超过尺寸,某个确认分组丢失后,则会出现GBN一样的问题。
3.5点对点协议PPP
(1)概念
- 一般用户接入英特网:连接到某个英特网服务提供者ISP(电信、移动)。
- ISP已经从因特网管理机构申请到了一批IP地址。
- 用户计算机只有获取到ISP分配的合法IP地址后才能成为因特网的主机。
- 用户计算机与ISP通信时,数据链路层协议就是PPP协议。
- 1999年在以太网上运行的PPP协议,即PPP over Ethernet,简称PPPoE,使得ISP可以通过DSL、电路调制解调器、以太网接入技术等
- 宽带接入技术以以太网的形式为用户提供接入服务。
-
PPP也广泛应用于广域网路由器之间的专用线路。
(2)透明传输
(3)差错检测
(4)工作状态
- PPP链路的开始和结束状态都是静止状态,不存在物理层的连接。
- 将测到调制解调器的载波信号,并建立物理层连接后,PPP进入链路的建立状态。
- 链路控制协议LCP开始协商一些配置选项,成功进入鉴别状态;失败退回到静止状态。
- 无需鉴别或鉴别成功进入网络状态;失败就进入终止状态。
- 进入网络状态后进入NCP配置,完成后进入打开状态。
3.6媒体接入控制
(1)媒体接入控制的基本概念
(2)媒体接入控制——静态划分信道
频分复用FDM
- 将传输线路的频带资源划分成多个子频带,形成多个子信道,各子信道之间需要留出隔离频带,以免造成子信道之间的信道干扰
- 当多路信号输入一个多路复用器时,复用器将每一路信号调制到不同频率的载波上。
- 接受端由相应的分用器通过滤波将各路信号分开,将合成的复用信号恢复成原始的多路信号。
时分复用TDM
- 将传输线路的带宽资源按时隙轮流分配给不同的用户,每对用户只在所分配的时隙里使用线路传输数据。
- 将时间划分成了一段段等长的时分复用帧。
- 每一个时分复用的用户在每一个时分复用帧中占用固定序号的时隙。
- 用户的时隙时周期性出现的。周期时时分复用帧的长度。
波分复用WDM
- 波分复用就是光的频分复用。
- 光信号传输一段距离后会衰减,必须放大才能进行传输。
- 复用器和分波器之间可以放入4个放大器,使得他们之间无光电转换的距离可达600km。
码分复用CDM
(2)媒体接入控制——动态划分信道——随机接入
- 多个主机同时发送帧,代表帧的信号会产生碰撞(冲突)。
-
某个主机正在使用总线发送帧的过程中,另一台主机也要发送帧,也会产生碰撞。
如何处理总线局域网碰撞—— CSMA/CD
- 96比特时间:发送96比特所消耗的时间,也称为帧间最小间隔。
-
作用:接收方可以检测出一个帧的结束,同时也使得所有其他站点都有机会平等竞争并发送信道。
CSMA/CD——争用期(碰撞窗口)
CSMA/CD——最小帧长
CSMA/CD——最大帧长
- 主线上其他主机没有总线的使用权。
- 目的主机的接受缓冲区无法装下该帧而产生溢出。
CSMA/CD——退避时间(截断二进制指数退避算法)
CSMA/CD——信道利用率
CSMA/CD——帧发送流程
CSMA/CD——帧接受流程
注意
- CSMA/CD协议曾经用于各种总线结构以太网和双绞线以太网的早期版本中。
- 现在的以太网基于交换机和全双工连接,不会有碰撞,因此没有必要使用CSMA/CD协议。
如何处理无线局域网碰撞—— CSMA/CA
CSMA/CA——帧间间隔
CSMA/CA——工作原理
- 若源站在规定时间内没有收到确认帧ACK,由重传计时器控制这段时间,就必须重传该数据帧,直到收到确认位置
- 或者经过若干次的重传失败后放弃发送。
- 源站为什么在检测到信道空闲后还要等待一段时间DIFS?
- 考虑到可能有其他的站有高优先级的帧要发送,让高优先级的帧先发送。
- 目的站为什么在检测到信道空闲后还要等待一段时间SIFS才发送ACK帧?
- SIFS为最短的帧间间隔,用来分隔开属于一次对话的各帧。
- 在这段时间内,一个站点应当能够从发送方式切换到接受方式。
- 信道有忙转化为空闲且经过DIFS时间后,还有退避一段随机时间才能使用信道?
- 防止多个站点同时发送数据产生碰撞。
CSMA/CA——退避算法
CSMA/CA——信道预约和虚拟载波监听
-
C虽然不会收到A发送的RTS帧,但是会受到B发送的CTS帧。
3.7MAC地址、IP地址和ARP协议
-
概念可以参考
- 连入网络的每一个计算机都会有网卡接口,每一个网卡都会有一个唯一的地址,这个地址就叫做 MAC 地址。计算机之间的数据传送,就是通过 MAC 地址来唯一寻找、传送的。
- 假如没有子网这种划分的话,计算机 A 通过广播的方式发一个数据包给计算机 B , 其他所有计算机也都能收到这个数据包,然后进行对比再舍弃。世界上有那么多台计算机,每一台计算机都能收到其他所有计算机的数据包,那就不得了了。那还不得奔溃。 因此产生了子网这么一个东西。
- 假如是同一个子网,那我们就用广播的形式把数据传送给对方,如果不是同一个子网的,我们就会把数据发给网关,让网关进行转发。
(1)MAC地址
-
点对点通信不需要地址。
地址发送顺序
- 字节发送顺序:第一字节到第六字节
- 字节内比特发送顺序:b0到b7
单播MAC地址
- 先构建帧,先填入目标主机和自己的MAC地址,再加上帧首部中的其他字段,数据载荷和帧尾部;
- 主机A和C都会受到单播帧,主机A的网卡发现帧的目的MAC地址和自己的不匹配,于是丢弃;
- 主机C的网卡发现帧的目的MAC地址和自己的匹配,于是接受该帧,并将该帧交给上层处理;
广播MAC地址
- 先构建帧,先填入广播地址(全F)和自己的MAC地址,再加上帧首部中的其他字段,数据载荷和帧尾部;
- 主机A和C都会受到单播帧,主机A和C的网卡发现帧的目的MAC地址是广播地址,于是接受,并将该帧交给上层处理;
多播MAC地址
-
判断多播地址:第一个字节的最后一位为1,即不能整除2。
- 先构建帧,先填入多播地址和自己的MAC地址,再加上帧首部中的其他字段,数据载荷和帧尾部;
- 主机BCD都会受到单播帧,主机B和C的网卡发现帧的目的MAC地址在自己的多播组列表中,都会接受该帧,并送交上层处理;
- 主机D的网卡发现帧的目的MAC地址不在自己的多播组列表中,丢弃该帧;
(2)IP地址
- 前三个字节是网络N8的编号,最后一个是网络N8上主机和路由器接口的编号。
- 同一网络上的各主机网络号部分应该相同,主机号部分应该不同。
-
因特网中不同网络的网络编号必须各不相同。
(2)ARP协议
-
ARP协议:将IP地址转化为MAC地址。
-
每台主机都有一个ARP高速缓存表,通过查表来找MAC地址。
-
如果没找到,发送ARP请求报文来获取目的主机的MAC地址。
-
ARP请求报文被封装在MAC帧中发送,目的地址为广播地址。
-
主机的网卡收到广播帧后,将其交给上层处理。
-
上层的ARP进程解析ARP请求报文,若发现所询问的IP地址不是自己的地址,不理会;
-
若是则要相应,将主机的IP地址记录到自己的ARP高速缓存表中;给主机发送ARP响应,已告诉自己的MAC地址。
-
ARP高速缓存表中的每一条记录,都有其类型,分为动态和静态两种。
-
动态:记录是主机自动获取到的,生命周期默认为两分钟。生命周期结束时,记录自动删除。
-
IP地址和MAC地址的对应关系并不是永久性的。更换新的网卡,MAC地址改变。
-
静态:用户或网络维护人员手工配置的,不同操作系统下的生命周期不同。
-
ARP协议只能在一段链路或一个网络上使用,不能跨网络使用。
-
ARP除了请求和响应外,ARP还有其他类型的报文,如检测IP地址冲突的无故ARP、免费ARP。
-
ARP没有安全验证机制,存在ARP欺骗(攻击)问题。
3.8集线器与交换机的区别
(1)集线器
- 使用集线器以太网在逻辑上是共享总线的,使用CSMA/CD协议来协调各主机争用总线,只能工作在半双工模式。
(2)交换机
- 直通交换不必把整个帧先缓存后再进行处理,而是在接收帧的同时立即按帧的MAC地址决定该帧的转发口。
(3)对比集线器和交换机
-
主机发送单播帧:
-
集线器(共享总线型以太网):单播帧会传播到总线上的其他各主机,各主机上的网卡根据帧的MAC地址决定是否接受该帧。
-
交换机(交换式以太网):根据帧的目的MAC地址和帧交换表将帧转发给目的主机。
-
主机发送广播帧:
-
集线器(共享总线型以太网):单播帧会传播到总线上的其他各主机,各主机上的网卡根据帧的MAC地址是广播地址,接受该帧。
-
交换机(交换式以太网):交换机收到帧后,检测到MAC地址式广播地址,于是除了进入交换机外的其他各接口转发该帧。
-
集线器和交换机的个主机属于同一个广播域。
-
多台主机同时给另一台主机发送单播帧:
-
集线器(共享总线型以太网):产生碰撞,遭遇碰撞的帧会传播到总线上的各主机。
-
交换机(交换式以太网):交换机收到帧后,缓存起来,然后逐个转发到目的主机,不会碰撞。
-
扩展以太网单播帧:
-
扩展以太网广播帧:
-
集线器和交换机扩展后的各主机都属于同一个广播域
-
集线器的以太网:在逻辑上式总线的,形成一个更大的碰撞域。参与竞争总线的主机比之前的更多了。
3.9以太网交换机自学习和转发帧的流程
-
主机A给主机B发送帧,该帧从接口1进入交换机1;交换机1先进行登记的工作,将该帧的源MAC地址和接口记录到帧交换表中(自学习)
-
之后交换机1进行转发,目的地址为B,在帧交换表中查找目的地址B,找不到就进行盲目的转发(泛洪),也就是除进入交换机的接口外其他所有接口转发该帧
-
主机B根据目的地址,接受该帧;主机C的网卡接收到该帧就知道这不是发送给自己的帧,丢弃;
-
该帧从交换机2的接口2进入交换机2,交换机2首先进行登记,将MAC地址A和接口2记录到帧交换表中。
-
之后交换机2对其进行转发,该帧的目的地址为B,在帧交换表中查找B,找不到则进行盲目的转发。
-
DEF都会收到,根据目的地址就知道不是给自己的,丢弃。
-
主机B给主机A发送帧:
-
该帧从交换机1的接口3进入交换机1;交换机1先进行登记,将该帧的源MAC地址和接口3记录到帧交换表中。
-
之后交换机1进行转发,目的地址为A,在帧交换表中查找目的地址A,于是从接口号1发送给A(明确)。
-
主机A收到该帧后根据目的MAC地址知道这是发给自己的,于是接受该帧。
-
主机E给主机A发送帧:
-
该帧从交换机2的接口3进入交换机2;交换机2先进行登记,将该帧的源MAC地址和接口3记录到帧交换表中。
-
之后交换机2进行转发,目的地址为A,在帧交换表中查找目的地址A,于是从接口号2发送给A(明确)。
-
该帧从交换机1的接口4进入交换机1,交换机1先进行登记的工作。
-
之后交换机1进行转发,目的地址为A,在帧交换表中查找目的地址A,于是从接口号1发送给A(明确)。
-
丢失帧的情况:
-
主机A、主机G、交换机1的接口1共享同一条总线(没画出集线器)
-
主机G给主机A发送帧,该帧通过总线进行传输,主机A和交换机1的接口1都可以接收到。
-
主机A接收到后,根据目的地址,接受该帧。
-
交换机1收到后进行登记工作,之后交换机1进行转发,目的地址为A,在帧交换表中查找目的地址A,于是从接口号1发送给A(明确)。
-
但是该帧就是从接口1进入交换机的,交换机不会从该接口转发出去,于是丢弃。
-
泛洪:即使在表中有MAC地址,也会转发,即不管如何都向所有接口转发。
-
帧交换表中的每条记录都有自己的有效时间,到期删除:
-
①交换机的接口改接了另一台主机
-
②主机更改了网卡
3.10以太网交换机的生成树协议STP
-
广播风暴:
-
主机H1发送一个广播帧,交换机B收到该帧后,将其从自己的所有接口转发出去。
-
交换机A收到交换机B转发的帧后,将其从自己的所有接口转发出去。
-
交换机C收到交换机B转发的帧后,将其从自己的所有接口转发出去。
-
交换机C收到交换机A转发的帧后,将其从自己的所有接口转发出去。
-
交换机A收到交换机C转发的帧后,将其从自己的所有接口转发出去。
-
交换机B收到交换机C转发的帧后,将其从自己的所有接口转发出去。
-
交换机B收到交换机A转发的帧后,将其从自己的所有接口转发出去。
-
帧交换表震荡:
-
交换机B收到主机H1发送的广播帧后,登记H1和接口1(正确)。
-
交换机B收到交换机C转发的广播帧后,登记H1和接口2,并删除原来的记录。
-
交换机B收到交换机A转发的广播帧后,登记H1和接口3,并删除原来的记录。
-
……
3.11虚拟局域网VLAN
(1)概述
-
路由器默认情况下不对广播数据包进行转发,因此路由器很自然地隔离广播域。
(2)实现机制
- 对交换机的要求:
- 可以处理带有VLAN标记的帧(IEEE 802.1Q帧)
- 各端口可以支持不同的端口类型,不同端口类型的端口对帧的处理方式有所不同
IEEE 802.1Q帧
交换机的端口类型
-
交换机的每个端口有且仅有一个PVID。