数据链路层负责通过一个链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
数据链路层在物体层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻结点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流转中识别帧的开始和结束
接收方应当能从接收到的二进制比特流中区分出帧的起始和终止
帧的数据部分 <= 最大传送单元MTU
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就”看不见“有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数
痛点:鸡蛋装在一个篮子里了。 若计数字段发生了错误,后面的就全错了!
在数据中与首部尾部等控制字节重复时,在前面加上转义字符。
首部和尾部都是 01111110
在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0.
在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现5个连续1时,就把后面的0删除。
保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。
普遍使用的方法就是比特填充和违规编码法
概括来说,传输中的差错都是由于噪声引起的。
全局性。
1. 由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的。
解决办法:提高信噪比来减少或避免干扰。(对传感器下手)
局部性。
2. 外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因。
解决办法:通常利用编码技术来解决。
位错
比特位出错, 1变成0,0变成1
帧错
帧丢失
重复
失序
解决方案:帧编号,确认重传机制等
能够及早地发现差错,丢掉,不用等经过了N个路由器之后,到目的主机的传输层才发现了错误,丢弃。 这很浪费网络资源。
奇偶校验码
n-1位信息元,1位校验元
奇校验码
偶校验码
特点:
只能检查出奇数个比特错误,检错能力50%
循环冗余码CRC
最终要发送的数据: 要发送的数据 + 帧检验序列
FCS的生成及接收端CRC检验都是由硬件实现,处理很迅速,因此不会延误数据的传输。
链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
海明码
发现双比特错,纠正单比特错
数据链路层编码和物理层的数据编码与调制不同。
物理层编码针对的是单个比特,解决传输过程中比特的同步等问题,如曼彻斯特编码。
而数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程是否出现了差错。
冗余编码
在数据发送之前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。 当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到的码字是否扔符合原规则,从而判断是否出错。
较高的发送速度和较低的接收能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
数据链路层
1. 点对点的。
2. 手段是:接收方收不下就不回复确认。
传输层
1. 端到端的
2. 手段是:接收端给发送端一个窗口公告。
每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一帧。其发送窗口大小=1, 接收窗口大小=1
应用情况
性能分析
信道利用率&信道吞吐率
发送窗口大小>1, 接收窗口大小 = 1
GBN发送方必须响应的三件事
1. 上层的调用
上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)
2. 收到了一个ACK
GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧
3. 超时事件
协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。
GBN接收方要做的事
如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。
其余情况都丢弃,并为最近按序接收的帧重新发送ACK。接收方无需缓存任何失序帧,只需要维护一个信息:expectedseqnum(下一个按序接收的帧序号)
滑动窗口长度
若采用n个比特对帧编号,那么发送窗口的尺寸W_T应满足:1<=W_T<=2^n-1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。
GBN协议重点总结
1. 累积确认(偶尔捎带确认)
2. 接收方只按顺序接收帧,不按序无情丢弃
3. 确认序列号最大的、按序到达的帧
4. 发送窗口最大为2^n-1, 接收窗口大小为1
性能分析
因连续发送数据帧而提高了信道利用率
在重传时必须把原来已经正确传送的数据帧重传,使传送效率降低。
发送窗口大小>1, 接收窗口大小>1
解决GBN缺点的办法: 设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。
机制
发完被确认的
已发送但等待确认的
还能发送的
还不能发的
希望收到但没收到的
收到且确认的(缓存)
等待接收的
如果收到了窗口序号以外(小于窗口下界)的帧,就返回一个ACk。其他情况,就忽略该帧。
可靠传输
发送端发啥,接收端收啥
流量控制
控制发送速率,使接收方有足够的缓冲空间来接收每一个帧
滑动窗口解决
流量控制(收不下就不给确认,想发也发不了)
可靠传输(发送方自动重传)
点对点链路
两个相邻结点通过一个链路相连,没有第三者。
应用:PPP协议,常用于广域网
广播式链路
所有主机共享通信介质
应用: 早期的总线以太网、无线局域网,常用于局域网。
典型拓扑结构: 总线型、星型(逻辑总线型)
介质访问控制的内容就是,采取一定措施,使得两对节点之间的通信不会发生互相干扰的情况。
信道划分介质访问控制
信道划分介质访问控制:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
多路复用技术:把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。
把一条广播信道,逻辑上分成几条用于两个节点之间通信的互不干扰的子信道,实际上就是把广播信道转变为点对点信道。
频分多路复用FDM
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。
优点: 充分利用传输介质带宽,系统效率较高;由于技术比较成熟,实现也比较容易。
“并行”
时分多路复用TDM
将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。
TMD帧是在物理层传送的比特流所划分的帧,标志一个周期
“并发”
改进的时分复用——统计时分复用STDM
波分多路复用WDM
波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
码分多路复用CDM
码分多址(CDMA)是码分复用的一种方式
1个比特分为多个码片/芯片(chip),每一个站点被指定一个唯一的m位的芯片序列。
发送1时站点发送芯片序列,发送0时站点发送芯片序列反码(通常把0写成-1)
如何不打架:多个站点同时发送数据的时候,要求各个站点芯片序列相互正交。
如何合并:各路数据在信道中被线性相加
如何分离:合并的数据和源站规格化内积。
也叫动态媒体介入控制/多点接入
特点:信道并非在用户通信时固定分配给用户
轮询协议
主结点轮流“邀请”从属结点发送数据。
问题
1. 轮询开销
2. 等待延迟
3. 单点故障
令牌传递协议
令牌环网无碰撞
令牌: 一种特殊格式的MAC控制帧,不含任何消息。 控制信道的使用,确保同一时刻只有一个结点独占信道。
每个结点都可以在一定时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。
问题:
1. 令牌开销
2. 等待延迟
3. 单点故障
应用于令牌环网(物理星型拓扑,逻辑环型拓扑)
采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
所有用户可随机发送信息。发送信息时占用全部带宽。
解决 不协调->冲突
纯ALOHA协议
思想:
不监听信道,不按时间槽发送,随机重发。想发就发
冲突如何检测?
如果发生冲突,接收方就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。
冲突如何解决?
超时后等待一随机时间再重传。
时隙ALOHA协议
思想:
把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。 控制想发就发的随意性
关于ALOHA协议要知道的事
1. 纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
2. 纯ALOHA协议想发就发,时隙ALOHA只有在时间片段开始时才能发。
全称: 载波监听多路访问协议CSMA(carrier sense multiple access)
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
协议思想:发送帧之前,监听信道。
监听结果
信道空闲:发送完整帧
信道忙:推迟发送。
对于空闲时是否立即发送,以及忙时推迟多久,有三种策略:
1-坚持CSMA
坚持指的是对于监听信道忙之后的坚持。
思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则一直监听,直到空闲马上传输。如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
非坚持CSMA
非坚持指的是对于监听信道忙之后就不继续监听。
思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则等待一个随机的时间之后再进行监听。
优点: 采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
p-坚持CSMA
p-坚持指的是对于监听信道空闲的处理。
思想:如果一个主机要发送消息,那么它先监听信道。
空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的方案。
但是,发生冲突后还是要坚持把数据帧发送完,造成了浪费。 (CSMA/CD来解决之)
全称:载波监听多点接入/碰撞检测CSMA/CD (carrier sense multiple access with collision detection)
CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。总线型网络。
CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。 半双工网络
传播时延对载波监听的影响
2τ 争用期/冲突窗口/碰撞窗口
如何确定碰撞后的重传时机?——截断二进制指数规避算法
若连续多次发生冲突,就表明可能有较多的站参与争用信道。使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。
最小帧长问题
保证在检测到碰撞时,帧还没有发完。能够紧急叫停
最小帧长 = 2τ × 数据传输速率
以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧。
全称:载波监听多点接入/碰撞避免CSMA/CA(carrier sense multiple access with collision avoidance)
相同点
两者的机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都须要进行监听。当发现信道空闲后,才能进行接入。
不同点
1. 传输介质不同:
CSMA/CD用于总线式以太网【有线】,而CSMA/CA用于无线局域网【无线】
2. 载波检测方式不同:
因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。 CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
3. CSMA/CD检测冲突,CSMA/CA避免冲突
二者出现冲突后都会进行有上限的重传。
局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。
有线局域网
介质访问控制方法
特点
点对点协议PPP是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网使一般都使用PPP协议
只支持全双工链路
应满足的要求:
简单
对于链路层的帧,无需纠错,无需序号,无需流量控制
封装成帧
帧定界符
透明传输
与帧定界符一样的比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充。
多种网络层协议
封装的IP数据报可以采用多种协议
多种类型链路
串行/并行,同步/异步,电/光 …
差错检测
错就丢弃
检测连接状态
链路是否正常工作
最大传送单元
数据部分最大长度MTU 默认不超过1500B
网络层地址协商
知道通信双方的网络层地址
数据压缩协商
无需满足的要求:
纠错
流量控制
序号
不支持多点线路
三个组成部分
网桥根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)
一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。
透明网桥
自学习: 根据源地址来充实自己的转发表
源路由网桥
在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。
方法
源站以广播方式向欲通信的目的站发送一个发现帧
独占传输媒体带宽
两种交换方式:
直通式交换机
查完目的地址(6B)就立刻转发
延迟小,可靠性低,无法支持具有不同速率的端口的交换
存储转发式交换机
将帧放入高速缓存,并检查是否正确,正确则转发,错误则丢弃。
延迟大,可靠性高,可以支持具有不同速率的端口的交换
冲突域
在同一个冲突域中的每一个节点都能收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。
广播域
网络中能接收任一设备发出的广播帧的所有设备的集合。简单的说如果站点发出一个广播信号,所有能接收到这个信号的设备范围称为一个广播域