第三章 数据链路层

第三章 数据链路层

功能:数据链路层在物理层提供服务的基础上想网络层提供服务,其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差别的数据链路,使之对网络层表现为一条无差错的链路。局域网任属于数据链路层的范围。

1.基本概念

  • 链路:从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换结点。链路只是一条路径的组成部分。

  • 数据链路:把实现控制数据传输的通信协议的硬件(如网络适配器,一般的适配器包括数据链路层和物理层两层的功能)和软件加到链路上,就构成了数据链路。

  • :点对点信道的数据链路层的协议数据单元

  • 为网络层提供服务

    • 无确认的无连接服务(对丢失的帧不负责,交给上层处理;适用实时通信或误码率低的通信信道)
    • 有确认的无连接服务(收到数据帧必须发回确认;适用误码率高的通信信道)
    • 有确认的面向连接服务(建立数据链路、传输帧、释放数据链路;源机器收到确认后才能发送下一帧;适用通信要求(可靠性、实时性)较高的场所)
  • 信道类型

    • 点对点(PPP协议)
    • 广播信道(CSMA/CD协议)

2.三个基本问题

1.封装成帧

  • 概念:在一段数据的前后分别添加首部和尾部构成帧

  • 帧定界

  • 帧同步:接收方应能从接收到的二进制比特流中区分出帧的起始与终止

  • 为了提高传输效率,应当使帧的数据部分的长度尽可能地大于首部和尾部的长度,但是又不能超过最大传送单元MTU(数据部分,而不是帧的总长)

3.透明传输

  • 概念:不管数据是什么样的比特组合,都应当能在链路上传送
  • 方法
    • 字符计数法
    • 字节填充法
    • 零比特填充法
    • 违规编码法

3.差错检测

  • 比特差错:比特在传输过程中可能会产生差错

  • 误码率:传输错误的比特占传输比特总数的比率称为误码率(与信噪比有关;信噪比提高,误码率减小)

  • 差错检测**(循环冗余检验CRC)**例如:

    • 发送端
      1. 分组后每组k个比特。给定一个待传送数据M=101001(即k=6),假定除数P=1101(n+1=4,即n=3),就在M后面加上n个0,即为101001000
      2. 模2除法运算后得出商Q=110101(没用),余数R=001(冗余码,帧检验序列FCS)
      3. 发送数据加上FCS后为 101001001(有k+n位)
    • 接收端:进行CRC检验
      1. R = 0,帧无差错,接收
      2. R != 0,帧有差错,丢弃
  • FCS的生成和接收端的CRC检验都是通过硬件完成,处理速度快,不会延误数据的传输

  • 仅仅使用CRC差错检验技术,只能做到对帧的无差错接收(曾收到的但因为有差错而被丢弃)近似的表述为:凡是接收端数据链路层接收的帧均无差错。

  • 可靠传输:数据链路层的发送端发送什么,接收端就收到什么。

  • 传输差错两大类:**“比特差错”“传输差错”**区分

    • 比特差错(帧内出错)
    • 传输差错(帧出错):帧丢失,帧重复,帧失序

3.点对点PPP协议(只支持全双工链路)

  1. 特点:PPP协议就是用计算机和ISP进行通信时所使用的数据链路层协议。

  2. 需求:

    1. 简单(接收方只需要对帧进行CRC检验)
    2. 封装成帧
    3. 透明性
    4. 多种网络层协议(在同一条物理链路上同时支持多种网络层协议)
    5. 多种类型链路
    6. 差错检测
    7. 检测连接状态
    8. 最大传送单元
    9. 网络层地址协商
    10. 数据压缩协商
  3. PPP协议的三个组成部分

    1. 一个将IP数据包封装到串行链路的方法。PPP既支持异步链路,也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分
    2. 一个用来建立、配置、和测试数据链路连接的链路控制协议LCP物理连接
    3. 一套网络控制协议NCP,为网络层协议建立和配置逻辑连接。其中的每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet、以及AppleTalk等。
  4. PPP协议的帧格式(PPP帧的首部和尾部分别为四个字段和两个字段。

    1. 首部的第一个字段和尾部的第二个字段都是标志字段F(flag),规定为0x7E(“0x”:16进制;“7E”:二进制表示为01111110)。标志字段表示一个帧的开始或结束。标志字段就是PPP帧的定界符。连续的两帧只需要一个标志字段。 两个连续的标志字段表示为空帧,应当丢弃。
    2. 首部第二个字段A(0xFF);第三个字段C(0x03)
    3. 首部第四个字段为2字节的协议字段。当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而0x8021表示这是网络层的控制数据。
    4. 信息字段的长度是可变的,不超过1500字节。
    5. 尾部中的第一个字段(2字节)是使用CRC的帧检验序列FCS。

  5. 字节填充

    当PPP使用异步传输时,它把转义符定义为0x7D (即011111)并使用字节填充,RFC1662规定了如下所述的填充方法:

    1. 把信息字段中出现的每一一个 0x7E字节转变成为2字节序列(0x7D, 0x5E)。
    2. 若信息字段中出现一个 0x7D 的字节(即出现了和转义字符一样的比特组合),则把0x7D转变成为2字节序列(0x7D, 0x5D)。
    3. 若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03 ( 在控制字符中是“传输结束”ETX)就要把它转变为2字节序列(0x7D, 0x23)。

    ​ 由于在发送端进行了字节填充,因此在链路上传送的信息字节数就超过了原来的信息字节数。但接收端在收到数据后再进行与发送端字节填充相反的变换,就可以正确地恢复出原来的信息

  6. 零比特填充

    ​ PPP协议用在SONET/SDH链路时,使用同步传输(一连串的比特连续传送)而不是异步传输(逐个字符地传送)。在这种情况下,PPP 协议采用零比特填充方法来实现透明传输。

    ​ 零比特填充的具体做法是:

    1. 在发送端,先扫描整个信息字段(通常用硬件实现,但也可用软件实现,只是会慢些)。只要发现有5个连续1,则立即填入一个0。因此经过这种零比特填充后的数据,就可以保证在信息字段中不会出现6个连续1。(当出现01111110会误认为是标志字段F)。
    2. 接收端在收到一个帧时,先找到标志字段F以确定一个帧的边界,接着再用硬件对其中的比特流进行扫描。每当发现5个连续1时,就把这5个连续1后的一个0删除,以还原成原来的信息比特流。这样就保证了透明传输:在所传送的数据比特流中可以传送任意组合的比特流,而不会引起对帧边界的错误判断。

  7. PPP协议的工作状态

    1. 当线路处于静止状态时,不存在物理层连接。
    2. 当线路检测到载波信号时,建立物理连接,线路变成建立状态
    3. 此时,LCP开始选项商定,商定成功后就进入身份验证状态
    4. 双发身份验证通过后,进入网络状态
    5. 这时,采用NCP配置网络层,配置成功后,进入打开状态,然后可进行数据传输。
    6. 当数据传输完成后,线路转为终止状态
    7. 载波停止后则回到静止状态

  8. PPP协议注意:

    1. PPP提供插座检测但不提供纠错功能,只保证无差错接收(通过硬件进行CRC效验)。他是不可靠的传输协议,因此不适用序号和确认机制。
    2. 仅支持点对点的链路通信,不支持多点线路。
    3. PPP只支持全双工链路。
    4. PPP的两端可以运行不同的网络层协议,但仍然可使用同一个PPP协议
    5. PPP是面向字节的。PPP在异步线路(默认),则采用字节填充法;在SONET/SDH等同步线路,采用比特填充法。

4.使用广播信道的数据链路层

  1. 局域网特点:网络为一个单位所拥有,且地理范围和站点数目均有限

  2. 优点

    1. 具有广播功能,一个站点可很方便的访问全网。局域网上的主机可共享连接在局域网内的各种硬件和软件资源。
    2. 便于系统的拓展和逐渐演变,各设备的位置可灵活调整和改变
    3. 提高了系统的可靠性、可用性、生存性
  3. 共享通信媒体资源按技术分:

    1. 静态划分信道
    2. 动态媒体接入控制(又称多点接入
      1. 随机接入(所有用户可随机的发送信息;若同一时刻多个用户同时发送,则会产生碰撞,即发送失败。因此必须有解决碰撞的网络协议)
      2. 受控接入(用户不能随机地发送信息而必须服从一定的控制)如分散控制的令牌环网和集中控制的多点线路探询轮询
  4. CSMA/CD协议(以太网协议)

    1. 为了通信灵活

      1. 无连接(不建立连接就可以直接发消息)适配器对发生的数据不进行编号,也不要求对方发回确认
      2. 以太网提供的服务是尽最大努力交付,即不可靠的交付
      3. 对有差错帧是否需要重传则由高层决定。对收到的重传帧也只是当作新的数据帧来发送
      4. 同一时间只允许一台计算机发送数据。使用CSMA/CD(载波监听多点接入/碰撞检测)
      5. 以太网发送的数据都是用曼切斯特编码的信号
    2. CSMA/CD协议要点

      1. 多点接入,说明这是总线型网络

      2. 载波监听,就是用电子技术检测总线上有没有其他计算机也在发送。无论发送前、中、后,每个站都必须不停地检测信号

      3. 碰撞检测,就是**“边发送边监听”,即适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。也称“冲突检测”**。

      4. 最迟需要经过两倍的总线端到端的传播时延(2t),或总线的端到端往返传播时延才能知道自己发送的数据和其他站发送的数据发送碰撞

      5. 在使用CSMA/CD协议时,一个站不可能同时进行发送和接收数据,因此只能是半双工通信

      6. 每个站在在自己发送数据之后的一小段时间内,存在这遭遇碰撞的可能性。以太网不能保证某一时间之内一定能够把自己的数据帧成功的发送出去(存在碰撞的可能),这一特点称为以太网发送的不确定性

      7. 至多经过2t检测到碰撞。以太网端到端往返时间2t称为争用期,又称碰撞窗口。只有经过争用期这段时间还没检测到碰撞,才能肯定这次不会发生碰撞

      8. 以太网使用碰撞二进制指数退避算法来确定碰撞重传的时机。不立即发送,而是推迟(又叫退避)一个随机时间。

        1. 确定基本的退避时间,一般取2t(争用期)。
        2. 定义参数k,它等于重传次数,但k不超过10,即k=min[重传次数,10]
        3. 从离散的整数集合[0,1,…, 2 k − 1 2^k-1 2k1]中随机取出一个数r,重传所需要的退避时间就是r倍的基本退避时间,即2rt。
        4. 当重传达16次仍不能成功时,说明网络太拥挤。则认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。

        使用二进制指数退避算法可使重传所需推迟的平均时间随重传次数的增大而增大(动态退避),因而能降低发生欧恩转的概率,有利于整个系统的稳定。

      9. 为了避免发送帧过短导致的问题(发送完毕前没有检测到碰撞,而在传播过程中发送碰撞,因而收到有差错的帧,造成丢弃不重发的现象),以太网规定最短帧长64字节,即512bit。过短则需要加入一些填充字符,使帧长不小于64字节。对于10Mbit/s以太网,发送512bit的时间需要51.2us,也就是具体的争用期时间。

      10. 强化碰撞,当发送数据的站发现发生碰撞时,除立即停止发送数据外,还需要在发送32比特或48比特的认为干扰信号,以便让所有用户都知道现在已经发生碰撞。对于10Mbit/s以太网,发送32(或48)比特只需要3.2(4.8)us。

    3. CSMA/CD流程

      1. 准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道
      2. 检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
      3. 在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性:
        1. 发送成功:在争用期内一直未检测到碰撞。该帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到准备发送阶段
        2. 发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待r倍512比特时间后,返回到检测信道阶段,继续检测信道。但若重传达16次仍不能成功,则停止重传而向上报错。

      ​ 以太网每发送完一帧,一定要把已发送的帧暂时保留一下。如果在争用期内检测出发生了碰撞,那么还要在推迟一段时间后,再把这个暂时保留的帧重传一次。

  5. 使用集线器的星形拓扑

    1. 使用集线器的以太网在逻辑上仍是一个总线网,各占共享逻辑上的总线,使用的还是CSMA/CD协议。(更具体的说,是各站中的适配器执行CSMA/CD协议)。网络中的各站必须竞争对传输媒体的控制,同一时刻至多只允许一个站发送数据
    2. 一个集线器由许多接口
    3. 集线器工作在物理层,它的每个接口仅仅简单地转发比特,不进行碰撞检测
    4. 集线器采用了专门的芯片,进行自适应串音回拨抵消。每个比特在转发之前还要进行再生整形并重新定时。
  6. 以太网的信道利用率

    1. 定义 a = t / T 0 a = t/T_0 a=t/T0 t为单程端到端的时延; T 0 T_0 T0为帧发送时间

      a − > 0 a->0 a>0时,比较是只要一发生碰撞就立即可以检测出来,并立即停止发送,因而信道资源被浪费的时间非常少。反之,a越大,表面争用期所占的比例越大,这就是每发生一次碰撞就浪费不少的信道资源,使得信道利用率明显降低。因此,以太网的参数a的值应当尽可能小些。也就是t的数值要小些,而分母 T 0 T_0 T0要大些。数据率一定,以太网连线长度受限,以太网帧长不能太短。

    2. 极限信道利用率 S m a x = T 0 / ( T 0 + t ) = 1 / ( 1 + a ) S_{max} = T_0/(T_0+t) = 1/(1+a) Smax=T0/(T0+t)=1/(1+a) ;表示当只有参数a小于1才能得到尽可能高的极限信道利用率。

  7. 以太网的MAC层

    1. MAC层的硬件地址(又称物理地址或MAC地址)
      1. 发往本站的帧
        1. 单播帧:一对一
        2. 广播帧:一对全体
        3. 多播帧:一对多
    2. MAC帧组成
      1. 目的地址6,源地址6,类型(表示上一层使用的协议)2,数据(46-1500字节;46 = 64- 18),FCS 4
      2. 利用曼切斯特编码的电压跳变找到数据向上一层交付;发送完毕后电压不产生变化,找到结束位置向前数4个字节就是数据字段结束位置
      3. 当数据字段长度小于46字节时,上层协议必须具有识别有效数据字段长度的功能。例如IP协议首部有一个”总长度“字段。
      4. 一个站在刚开始接收MAC帧时,由于适配器的时钟尚未与到达的比特流达成同步,因此MAC帧的最前面的若干位就无法接收,结果使整个的MAC成为无用的帧。为了接收端迅速实现位同步,从MAC子层向下传到物理层时还要在帧的前面插入8字节(由硬件生成),它由两个字段构成。第一个字段是7个字节的前同步码(1和0交替码),它的作用是使接收端的适配器在接收MAC帧时能够迅速调整其始终频率,使它和发送端的的时钟同步,也就是”实现位同步(比特同步)“。第二个字段是帧开始定界符,定义为10101011.它的前六位作用和前同步码相同,最后的两个连续的1就是告诉接收端的适配器:MAC帧的信息马上就要来了,请适配器注意接收。
      5. MAC帧的FCS字段的检验范围不包括前同步码和帧开始定界符。同步传输时不需要前同步码。
    3. 无效MAC帧(简单的丢弃,以太网不负责重传
      1. 帧长度不是整数个字节。
      2. 用收到的真检验序列FCS查出有差错
      3. 收到的帧的MAC客户数据字段的长度不在46-1500字节之间。也就是MAC帧藏毒不在64-1518之间。

5.拓展的以太网

  1. 物理层对以太网的拓展(如物理层的转发器)
    1. 以太网的主机之间距离不能太远,否则信号太弱,CSMA/CD无法正常工作。
    2. 拓展主机和集线器的距离
      1. 使用光纤(通常为一对光纤)和一对光纤调制解调器(广电信号转换);时延 小,带宽 宽
      2. 使用多个集线器
        1. 优点:同院不同系的以太网上的计算机能够跨系通信;扩大以太网覆盖的地理范围
        2. 缺点:⑴每个系的以太网是一个独立的碰撞域(冲突域),即在任意时刻,在每个碰撞域中只能有一个站发送数据。⑵如果不同系使用不同的以太网技术(如数据率不同),那么就不可能用集线器将它们互连起来。
  2. 数据链路层对以太网的拓展(更常用)
    1. 拓展方式
      1. 最初使用网桥,网桥对收到的帧根据其MAC帧的目的地址进行转发过滤
      2. 以太网交换机淘汰了网桥
    2. 以太网交换机的特点
      1. 实质上就是一个多接口的网桥
      2. 全双工方式
      3. 并行性(即能同时连通多对接口,使多对主机能够同时通信)
      4. 相互通信的主机都是独占传输媒体,无碰撞地传输数据。
      5. 即插即用设备,内部的帧交换表(又称地址表)是通过自学习算法自动地逐渐建立起来的
      6. 存储转发,直通(不需要缓存,直接按数据帧MAC地址决定该帧的转发接口;缺点:不检错)两种方式
    3. 以太网交换机的自学习功能
      1. 了解过程(发送数据时写入交换表)
      2. 为了解决兜圈子的问题,采用生成树协议。其要点就是不改变网络的实际拓扑,但在逻辑上则切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构,从而消除兜圈子现象。
    4. 从总线以太网到星形以太网
      1. 总线以太网使用CSMA/CD协议,以半双工方式工作。
      2. 以太网交换机不适用共享总线,不使用CSMA/CD协议,而是全双工方式。(因为帧结构未改变,所以还称为以太网)
    5. 虚拟局域网(有一些局域网网段构成的与物理位置无关的逻辑组,而这个网段具有某些共同的需求。每一个VLAN(Virtual LAN)都有一个明确的标识符,指明发送这个帧的计算机属于哪个VLAN;只是局域网为用户提供的服务)
能否隔离冲突域能否隔离广播域
物理层设备(中继器,集线器)××
链路层设备(网桥,交换机)×
网络层设备(路由器)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值