【学习笔记】计算机网络 第三章 数据链路层

以下内容为参考课件和《计算机网络》(第7版,谢希仁编著)的个人整理,若有错误欢迎指出

第三章 数据链路层

一、数据链路层概述

1、数据链路层

物理层实现了比特流的传输,数据链路层在其基础上实现(frame)的传输

数据链路层传输的协议数据单元是帧

请添加图片描述

2、数据链路层使用的信道类型
  • 点对点信道

  • 广播信道

    一对多,需要共享信道协议来协调

3、数据链路层涉及的问题
  • 成帧(framing):怎样组成帧、怎样使接收方识别帧
  • 差错控制:帧在传输过程中出错的检测
  • 流量控制及可靠传输(可选,本章介绍的数据链路层协议不是可靠传输协议)
  • 广播信道中的介质访问控制
4、成帧方法

(1)字符计数法

在帧头部字段指明本帧的字节数

(2)字符填充的首尾定界法

专门字符作为标志,并使用字符填充方法(加转义字符)把标志字符与数据区分开

(3)比特填充的首位定界法

准们比特序列作为标志,并使用比特填充方式将标志序列与数据区分开

(4)物理编码违例法

使用无效的物理编码作为标志

就比如物理上上升沿为0下降沿为1,那么一直高电平就不表示任何一个,就是违例

上述后三种方法在PPP协议中可以看到实例

二、错误检测和纠正

1、背景

任何通信链路在传输数据时都可能出错

2、误码率

误码率BER=出错的比特数/传送的总比特数

用来表示链路可靠性

3、处理方法
  • 使用可检测并纠正错误的编码:纠错码

  • 使用可检测的编码+重传:检错码

后者更常用,因为代价更低(前者要知道出错位置,需要较多的信息;而且网路出错是小概率时间)

4、常用的检错编码(方法)

(1)奇偶校验:常在芯片中用

比如一共8 bit,前7个为数据,最后一位为校验位。奇校验是保证一共有奇数个1(也就是若数据中有偶数个,校验位就为1)。这样可以测出单个比特的翻转。

(2)简单累加和(校验和): 常用在软件

(3)循环冗余校验CRC:适合硬件实现

  • 计算冗余码

    n位冗余码,就用数据(二进制模2除法,即不借位减法,相当于做异或)除 给定除数P的余数作为校验码(就被除数后加n个0,然后做二进制除法,取n位余数)

    请添加图片描述

  • 校验过程

    • 发送方将数据划分为若干组,每组k个比特,n位冗余码,按上述方式计算后将n+k个比特一起发送
    • 接收方对k+n位比特后用同样方法计算冗余码,结果为0则传输正确
  • 除数P

    一般用生成多项式来表示除数,即有第t(从0开始)位有1,则有 x t x^t xt

    比如 110 1 2 1101_2 11012就记为 P ( x ) = x 3 + x 2 + 1 P(x)=x^3+x^2+1 P(x)=x3+x2+1

  • 在网络中,通常采用硬件电路生成CRC校验和

5、纠错编码

通过增加冗余信息使得能够检测错误发生所在,又称前向纠错。比如海明编码。

6、说明

检错码/纠错码可以做到帧的无差错接受(就是接收到的帧都可以认为传输过程中没有差错,因为出错会被丢弃),但是可能有其他错误,如帧丢失、帧重复、帧失序等

三、基本数据链路协议

1、无限制的单工协议

假设前提:

单向传输、理想信道、发送方总有数据发送、接收方总能及时处理所接收到的数据

但是未考虑接收方的处理速度

2、单工停-等协议

前者中若接收方处理速度慢,帧可能丢失

解决方法:流量控制机制

  • 接收方每收到一帧,都向返回一个应答帧
  • 发送方每发送一帧后,等到来自接收方的应答帧后才发下一帧

但是未考虑传输出错

3、有噪声信道的单工协议

针对前者未考虑的传输出错

解决方法:ARQ协议 ( Automatic Repeat reQuest,自动请求重传)

  • 校验和:接收方能检测帧是否出错
  • 确认帧:使发送方知道帧已被正确接收
  • 超时重发:发送方在规定时间未收到确认帧就重发
  • 帧序号:保证接收方不会重复接收帧(为了应对确认帧出错或丢失,接收方接到重复帧后只返回确认帧)
    请添加图片描述

四、滑动窗口协议

1、ARQ协议的不足

ARQ协议在同一时刻仅有一个帧(数据/应答)在链路上传输,信道利用率低

ARQ协议下的信道利用率: U = T D T D + R T T + T A U=\frac{T_D}{T_D+RTT+T_A} U=TD+RTT+TATD

T D T_D TD是发送数据帧的时间, T A T_A TA是发送应答帧的时间,RTT是往返时延

在数据传输速率一定的条件下,信道利用率等同于发送数据的时间 /(发送数据的时间+信道空闲的时间)

2、滑动窗口协议原理

(1)基本思想

  • 允许发送方连续发送多个帧

  • 滑动窗口实现流量控制

    • 每个待发送的帧有序列号
    • 发送方维护一个发送窗口,包含一组序列号,对应允许发送的帧;类似的接收方也有一个接收窗口
    • 窗口大小是固定的

(2)具体流程

  • 发送方

    • 发送窗口内的序列号代表允许它发送的帧

    • 从网络层得到一个数据包,窗口上边界+1

    • 被确认(应答帧)后下边界+1

  • 接收方

    • 接收窗口内的序列号代表它可以接收的帧
    • 接收到的帧序号等于窗口下边界时,将帧上交网络层,返回确认帧,同时整个窗口向前移动一位
    • 窗口之外的丢弃。

请添加图片描述

窗口宽度为1即为ARQ协议;可以利用传输时延继续发下一个帧而非需要一直等到应答

(3)问题:连续发送的多个帧中,某一个帧出错或丢失,但后续帧已被正确接受

方案一:后退N帧

方案二:选择性重传

3、后退N帧的滑动窗口协议(Go back N)
  • 出错帧后的帧丢弃,从出错帧开始重发
  • 实际上出错后接收窗口为1
    请添加图片描述
4、选择性重传的滑动窗口协议
  • 出错后的帧保留(由接收方数据链路层缓冲),重发出错帧

  • 接收方检测出错时发送一个否定的确认,使发送方尽快重发出错帧

  • 累积确认:ACKn表示n及n以前的帧均已被正确接收
    请添加图片描述

五、点对点协议PPP

1、概述

早期数据链路层曾采用能实现可靠传输(理解为无差错,能处理发送方发送速率的变化)的高级数据链路控制HDLC

但现在最广泛的数据链路层协议是PPP协议,用于点到点链路的数据传输(如拨号、专线)。有以下三个组成部分:

  • 将IP数据报(信息部分)封装到串行链路的方法
  • 链路控制协议LCP
  • 一套网络控制协议NCP(支持不同的网络层协议)
2、帧格式
  • 长度为整字节数
  • 标志字段F(=0x7F=01111110):识别帧的开始
  • 地址字段A:置为0xFF,因为点对点地址固定了,所以没用
  • 控制字段C:常置为0x03
  • 协议字段:2字节,表示信息字段(载荷)的类型
    • 0x0021:IP数据报
    • 0xC021:PPP链路控制数据(LCP)
    • 0x8021:网络控制数据(NCP)
  • 校验字段FCS:2字节的CRC校验

请添加图片描述

3、PPP的透明传输问题

透明传输问题就是区分帧边界符和信息字段中的相同字符

异步传输是逐个字符传送,同步传输是一连串的比特连续传送

(1)异步传输:字符填充

在信息字段中:

  • 每一个0x7E转为0x7D,0x5E
  • 每一个0x7D转为0x7D,0x5D
  • ASCII控制字符前加0x7D且编码改变,即一个控制字符转为2字节序列

因此接收端可以按照0x7E判断帧的边界,每遇到一个0x7D(相当于转义符)就意味着下一个字符要特殊处理

适合软件实现,但是较慢

(2)同步传输(如SONET/SDH):零比特填充

发送端:扫描整个信息字段,5个连续1就填入一个0(因为标志字段是01111110)

接收端:5个连续1就删除后面的0

一般由硬件实现,适合高带宽传输(如光纤)

4、工作状态

初始为链路静止状态,用户拨号接入ISP建立物理连接,然后发送LCP分组(配置请求帧、鉴别)建立LCP连接。然后进行网络层的配置,NCP为用户分配IP,链路打开。结束后释放链路。

其中鉴别部分,PPP支持以下两种身份认证协议:

  • PAP,传密码过去核对。涉及敏感信息需要加密传输

  • CHAP,服务端时间戳+口令的加密,只有输入正确才能解密

请添加图片描述

六、介质访问控制(media access control)

1、局域网的主要特点
  • 网络为一个单位所拥有,且地理范围和站点数目均有限
  • 呈现多种网络拓扑结构,常需要使用广播信道

因此要解决的重要问题:介质访问控制技术

2、共享信道技术

(1)静态划分信道

​ 如第二章提到的频分、时分等,但节点数目不断变化造成较大困难

(2)动态介质访问控制(多点访问)

  • 受控访问:如多点线路探寻(轮询,就是看哪条线路可用),局域网中少用

  • 随机访问:用户可随机发送信息,可能产生碰撞

    典型协议有:ALOHA、CSMA、CSMA/CD、CSMA/CA等

3、CSMA/CD协议

Carrier Sense Multiple Access with Collision Detection,载波监听多点访问/碰撞检测,是以太网的核心

核心概念

  • 载波监听

    发送前先检测一下总线上是否有其他结点正在发送数据,如有就暂时不发送

  • 碰撞检测

    边发送便检测信道上是否碰撞(因为有时延所以即使有前一步也可能碰撞)

    至多需要监听2倍的端到端时延(即$ 2\tau$,又称为争用期),如果没有听到碰撞就没有碰撞

  • 碰撞强化

    发送方检测到碰撞后立即停止发送,并发送人为干扰信号(jamming signal),以便让所有用户知道

  • 碰撞退避

    • 碰撞后结点等待一段时间重新开始载波检测和发送操作

    • 为退避后不再撞,各方等待时间应该不同

    • 以太网采用截断二进制指数退避算法

      • 退避时间T=2 τ \tau τ * 倍数,其中倍数在0,1,…… 2 k − 1 2^k-1 2k1中随机取值, k = m i n ( 10 , 重 传 次 数 ) k=min(10,重传次数) k=min(10)

      • 重传超过16次后丢弃该帧,并向高层报错

以太网的争用期:

以太网的争用期长度为51.2us,若数据传输速率为10Mb/s,在争用期可发64字节。

为确保在发送完帧之前收到检测到的冲突,需要帧的传输时延(发送时延) ≥ \ge 信号在总线中的传播时延的2倍,即帧的最小长度=2x总线传播时延x数据传输速率

因此规定以太网帧长>=64,小于的为无效帧。若帧中的信息字段不足长度就填充处理。

优缺点:

  • 网络负载较轻时效率高;负载较重时碰撞概率大、效率低
  • 软硬件实现简单、灵活
  • 可能存在多次冲突,因此无法保证数据发送到接受的时间,实时性较差
4、局域网技术标准

因为介质访问控制有多种方法,IEEE802标准将局域网的数据链路层分为两个子层:

  • 逻辑链路控制层 LLC
  • 介质访问控制层 MAC
    请添加图片描述

前面介绍的CSMA/CD就是IEEE 802.3。还有IEEE 802.5令牌(token,获取token的结点才能发送数据)环网、IEEE 802.5令牌总线网,但令牌机制意味着同一时间只有一个结点在发数据。IEEE 802.11是wifi的标准。

七、以太网

一种局域网技术

1、简介

1975,PARC(palo alto研究中心)研制

1983,IEEE802.3标准

2、物理层
  • 起初为采用同轴电缆总线结构,但是总线上单点故障会导致全网瘫痪;结点多是可靠性较差;同轴电缆成本高

  • 后来采用更便宜灵活的非屏蔽双绞线、使用集线器(HUB)连接各点呈现星形结构

    • 这种技术称为10Base-T(10Mbps、基带传输、T为双绞线)

    • 在逻辑上仍是一个总线网

    • 集线器是个多接口转发器,工作在物理层

  • 采用曼彻斯特编码

    电平的跳变表示0/1。连续1/0时,在刚开始的时候多跳一次。这种跳变自带时钟信息,有助于同步;但是由于连续0/1时需要跳两次,所以传输速率减半。
    请添加图片描述

3、MAC层
  • 以太网采用CSMA/CD介质访问控制协议

  • MAC地址(又称物理地址、硬件地址,写在适配器的ROM中)

    • 结点发送数据时,总线结构上所有结点都能收到帧
    • 按照IEEE802.3标准,为每个结点分配唯一的MAC地址
    • MAC地址为48bit(六字节),高24位为厂商标识,低24位是分配的,每个都是唯一的
    • 适配器(网卡,连接计算机与局域网,处理时不适用计算机的CPU,接收到信息通过中断通知CPU)每收到一个帧就检查其目的MAC地址,若是发往本站的就处理,包括:
      • 单播(unicast)帧(一对一)
      • 广播(broadcast)帧(一对全体),MAC地址为全1
      • 组播/多播(multicast)帧(一对多)
  • 帧格式

    • 目的地址、源地址:各6字节的MAC地址
    • 类型:2字节,表示上层协议类型
    • 数据,长度为46(上一节说到CSMA/CD要求帧长度>=64)-1500字节
    • FSC:4字节,帧校验序列,采用CRC校验
      请添加图片描述

    因为曼彻斯特编码中有比特就有跳动,因此不跳动处就是帧结束的地方

4、高速以太网
  • 快速以太网(fast ethrnet)

    • IEEE802.3u标准,仍使用IEEE 802.3 CSMA/CD协议(全双工模式时不用),MAC帧格式也是802.3标准
    • 传输速率100Mb/s
    • 最短帧长不变,但将一个网段的最大电缆长度减小到100m
    • 线缆需要改(因为传输速率up,带宽也要up),用双绞线、光纤
  • 千兆以太网

    • IEEE802.3z标准,仍使用IEEE 802.3 CSMA/CD协议(全双工模式时不用)
    • 传输速率1Gb/s
    • 线缆:光纤、双绞线
  • 万兆以太网

    • IEEE802.3ae标准,帧格式不变
    • 传输速率10Gb/s
    • 线缆:光纤(较贵,故一般用在服务器)、双绞线
    • 工作在全双工模式,不用CSMA/CD协议

八、局域网互连

下面将介绍两种方法,其中第一种方式已经很少用了

1、在物理层扩展局域网

  • 使用中继器/集线器实现物理层的互连

  • 优点:成本低、方便

  • 缺点:碰撞域(一个时间,碰撞域内只能有一个结点发送数据)增大,影响性能

2、在数据链路层扩展局域网

  • 使用网桥(bridge)实现数据链路层的互连

  • 网桥的基本工作原理

    • 根据MAC帧的目的地址,将帧进行转发至对应的接口(某一个网段),在同一网段内的不用转发
      请添加图片描述

    • 优点

      • 过滤通信,使得各网段是独立的碰撞域,增大吞吐量

      • 扩大了物理范围

      • 可互连不同物理层、MAC子层和不同速率层的局域网,因为数据链路层相同

      • 提高了可靠性

    • 局限

      • 存储转发增加了时延

      • 在MAC子层没有流量控制功能

      • 只适用于用户不太多、通信量不太大的局域网

        因为一次只分析转发一帧

        广播风暴:因某些站点频繁发送广播帧造成网络拥堵)

  • 网桥分类

    • 透明网桥

      自学习算法建立转发表:

      ​ 初始为空。收到一个帧后:

      • 检查帧中源地址在表中是否存在,如果不存在就记下源地址和进入网桥的接口
      • 转发帧:根据收到的帧中的目的地址在转发表中查找,若找到就转发;没找到就向处进入接口外的所有接口转发

      生成树算法:当互连出现环路时,避免帧的无休止转发

      • 通过生成树使任何两个站之间只有一条路线
      • 一般也会保留一些备用路线
    • 源路由网桥

      在发送帧时将路由信息放在帧的首部,即路由选择由源站负责,网桥只接受转发。

      • 对主机不透明:因为主机要知道网桥的标识及所属网段
      • 可以获得最佳路由
        • 源站以广播方式向目的站发送一个发现帧,发现帧在转发过程中记录所经过的路由。目的站接受到发现帧就发送应答帧,应答帧按照原路线返回,并且记录路线
        • 因为是广播,所以每个网桥都会转发此帧,所以最终会接收到来自不同路径的多个应答帧
        • 源站根据应答帧的信息选择一个最佳路由
  • 多接口网桥——交换机

    • 其内部工作原理为网桥,只不过网桥一般两个接口,交换机有很多个
    • 交换机一般工作在数据链路层,称为二层交换机。存在工作在网络层的三层交换机
    • 与集线器相比:
      • 交换机中每个接口一个碰撞域,提高网络性能
      • 集线器由所有接口共享传输介质,而交换机为每个接口独享带宽
    • 也是用自学习算法建立转发表
  • 虚拟局域网(VLAN)

    • 现有局域网基础上给网络站点分组,构成若干逻辑上独立的虚拟局域网

      比如一个公司每一层是一个VLAN

    • 在不同VLAN之间不会转发帧,相当于每一个VLAN是一个独立的局域网

    • 便于管理,可以控制广播风暴

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值