zoukankan      html  css  js  c++  java
  • 计算机网络-第三章-数据链路层

    数据链路层


    一、基本概念


    • 链路:一条无源的点到点的物理路段,中间没有任何其他的交换结点
      • 一条链路只是一条通路的一个组成部分
    • 数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输,若把实现这些协议的硬件和软件加到链路上,就构成了数据链路
    • 数据链路传输的数据单位是帧


    二、数据链路层的主要功能


    链路管理

    • 工作站类型
      • 主站:负责链路控制,包括对次站的控制、恢复链路差错,它发出的帧为命令帧
      • 次站:受主站控制的站,它完成主站所命令的工作,返回响应帧
      • 复合站:既有主站功能,又有次站功能,可发出命令帧和响应帧
    • 链路结构
      • 非平衡式结构:由一个主站和一个或多个次站组成,点对点或多点通信
      • 平衡式结构:由两个复合站组成
    • 数据操作方式
      • 正常响应方式:
        • 非平衡式链路结构(点-点、点-多点)
        • 传输过程由主站启动,并向次站发命令,主站轮询、选择次站,主站并负责链路管理及超时重发和各类恢复操作的控制
      • 异步平衡方式:
        • 平衡式链路结构(全双工点-点),每个站都是复合站
        • 每一个复合站都可以发出命令帧和响应帧,对另一站传输数据
      • 异步响应方式:
        • 非平衡式链路结构
        • 主站起控制作用;次站无主站允许,即可主动向主站发送数据

    帧定界

    • 把数据分割、封装成帧
      • 接收者如何从位流中区分出帧的边界(帧同步),即帧的开始和结束
    • 透明:某一个实际存在的事物看起来却好像不存在一样
    • 字节计数法
      • 每帧以帧同步标志字节开始,后面紧跟帧长计数器
      • 接收方收到帧,知道帧的长度,每接收一个数据字节,计数减1,直到0,便是帧尾,帧后跟校验信息
      • 缺点
        • 如果帧的长度域出错,则同步信息完全丢失,必须重新开始建立同步
    • 使用字符填充的首尾定界符法
      • 面向字符的通信协议,以特定的ASCLL字符序列表示帧首、帧尾及控制字段
      • 帧文本以STX开始,ETX结束
      • 当数据中恰好出现STX或ETX时,帧的边界会被误识别
        • 控制字符如STX,ETX前加入DLE
        • 发送时对数据中的DLE,在其前面再插入一个DLE
      • 缺点
        • 兼容性差(依赖于特定的字符集,如ASCLL)
        • 帧长位数需要为8的整数倍,不能传输任意长位数
        • 若不用“DLE插入删除技术”时,数据传输会不透明
    • 使用比特填充的首尾标志法
      • 以特殊的比特组合(如0111 1110同步序列)标志帧的开始和结束
      • 位填充易于用硬件实现,如ISO的HDLC(高级数据链路规程)
      • 解决数据传输的透明性
        • (“0”比特插入删除技术)发送方边发边检查数据,每连续发送5个“1”后,即在后面自动插入一个“0”
        • 接收方在收到5个连续的“1”后,将后面紧跟的1个“0”删去,恢复原来的数据
      • 优点
        • 面向位的通信协议,可传送任意长度,通用性强
    • 编码违例法
      • 采用违反编码规律的策略来标志帧的边界
      • 优点
        • 无须填充

    差错控制

    • 目的:保证所有的帧按顺序、正确送到目的主机
    • 解决:如何检测出错、如何纠正错误
    • 噪声来源
      • 热噪声:又称白噪声,由电子的热运动产生
      • 交叉调制噪声:不同频率的二个信号伴生出频率和、差及整倍频率的信号,干扰正常信号
      • 串扰:由附近线路上的信号电偶合形成
      • 脉冲干扰:外来的幅度大而持续时间短的干扰
      • 脉冲干扰是数字数据信道造成错误的主要干扰源
    • 差错分类
      • 单个错:由随机的信道热噪声引起,一次只影响一位,差错是孤立的,错误之间没有关联
      • 突发错
        • 由瞬间的脉冲噪声引起,如雷电、马达启动等,会持续一段短的时间,由于线路上数据速率高,影响面较大,一般会影响持续的许多位
        • 突发长度:突发错所影响的最大连续数据比特数
    • 差错编码:在数据块中加入冗余信息的过程
      • 附加监督位:在数据块中加入一些冗余信息,使数据块中的各个比特建立起某种形式的关联,接收端通过验证这种关联关系是否存在,来判断数据在传输过程中有没有出错
      • 帧检验序列(FCS):在数据后面添加上的冗余码
      • 奇偶校验码
        • 先将要发送的数据块分组,且在每一组的数据码元后面附加一个冗余位,使得该组连冗余位在内的码字中“1”的个数为偶数(偶校验)或奇数(奇校验)
        • 在接收端按同样的规则检查,如发现不符,就说明传输有误
        • 分类:垂直奇偶校验码、水平奇偶校验码、水平垂直奇偶校验码
      • 校验和
        • 发送:如以16位字为单位进行累加,再将最后累加和取“1补码”(即反码),得该字符串得校验码
        • 接收:当接收者收到该数据块后,同样以16位字为单位对各数据及校验和进行累加,若最后结果为全1,则正确,否则出错
        • 可靠性:
          • 能够检测出绝大多数奇数个和偶数个数据位得变化
          • 除非,一个16位字中的0变成1,而另一个16位字中的相同位置由1变成0
      • 循环冗余校验码(CRC):
        • 原理:设定一个除数d
          • 发送:将数据用除数d来相除,产生的余数作为FCS,附加在数据后发送
          • 接收:将收到的数据和FCS用d来相除,若余数为0,则正确,否则出错
        • 模2运算特点:
          • 模2除:被除数高位为1即可相除,商为1
          • 模2加、模2减:等于按位加(异或)运算
        • 检错率:
          • 可检测出几乎所有错误。当出现差错的码多项式仍能被G(X)整除时,错误就检测不出来,发生这种情况的概率是非常小的
      • 前向纠错(FEC):
        • 发送端使用纠错码,接收端检出错并纠错,但监督码比较复杂、效率低,一般用于没有反馈信道的单工通信中
        • 缺点:冗余码多、译码复杂;适用于单工信道
    • ARQ
      • 自动重发请求
        • 发送方使用检错码,接收方对收到的数据进行检错
        • 接收方使用应答向发送方进行信息反馈
          • 发送方若收到肯定应答:数据已被正确接收
          • 发送方若收到否定应答:传输有错,则重发,直至正确接收
        • 为防止帧丢失导致发送方收不到应答,发送方发完一幀后,会启动一个超时定时器,若定时到仍未收到应答,便进行重发
      • 混合纠错
        • 结合上述两种方式,能够纠错的则自动改正,否则请求重发

    三、因特网的点对点协议PPP

    PPP协议的格式

    • 组成部分
      • 一个将IP数据报封装到串行链路的方法
      • 链路控制协议LCP
      • 网络控制协议NCP
    • 帧格式
    • 透明传输问题
      • 当PPP协议用在同步传输链路SONET/SDH时,协议规定采用硬件来完成比特填充
      • 当PPP协议用在异步传输时,就使用一种特殊得字符填充法

    PPP协议的特点

    • 现在全世界使用得最多得数据链路层协议
    • 用户使用拨号电话线接入因特网时,一般都是使用PPP协议
    • 优点
      • 透明性
      • 支持多个网络层协议(IP、ARP、XNS、AppleTalk、DECnet)等
      • 错误检测
      • 网络层地址协商(IP地址、DNS地址)
      • 简洁性
    • 缺点
      • 无纠错功能
      • 无流控制
      • 无顺序保证
      • 仅适用与点对点通信

    PPP协议的工作状态

    • 步骤:
      • 当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接
      • PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)
      • 这些分组及其响应选择一些PPP参数,和进行网络层配置,NCP给新接入的 PC机分配一个临时的IP地址,使PC机成为因特网上的一个主机
      • 通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接
    • 状态图:
    • PPP认证处理:
      • PAP:要求客户方主动将用户的帐号以明文形式填写在一定的数据包字段中,发送请求。要求认证的一方匹配用户帐号,响应认证成功或失败结果。
      • CHAP:采用三次握手的方式,先由要求认证方发送认证请求,再由客户方根据该请求的数据(Request-Challenge)和用户帐号,利用MD5算法计算新数据(Response-Challenge),组织新的数据帧应答,最后,由要求认证方确认用户是否合法,返回应答数据

    四、使用广播信道的数据链路层

    局域网

    • 特点
      • 网络为一个单位所拥有,且地理范围和站点数目均有限
    • 优点
      • 能方便地共享昂贵的外部设备、主机以及软件、数据。从一个站点可访问全网
      • 便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变
      • 提高了系统的可靠性、可用性和残存性
    • 拓扑结构
      • Mesh
        • 特征
          • 每两个通信的设备间都有一个专用链路
          • 每个设备需要n-1个网络I/O端口
          • n个设备完全互连需要n(n-1)/2条链路
        • 优点
          • 可靠性好
          • 可用性好
          • 保密和安全
          • 有利于错误检查和错误隔离
        • 缺点
          • 链路数、网络I/O端口数太多,每个设备的安装和配置困难
          • 线路占用较大空间
          • 网络硬件增加,成本增加
        • 应用:广域网,Internet骨干网
      • Start
        • 特征
          • 每个设备都同一个中心控制器相连,这个控制器称为HUB
          • 设备之间并不连接,不能直接通信
          • 设备之间的通信必须通过HUB进行转接
        • 优点
          • 成本比网状结构下降。因为链路数和端口数减少
          • 网络容易配置和安装
          • 相对的可靠性。如果一个链路出错,不会影响到其他链路。
        • 缺点
          • 如果HUB出错,则网络通信全部中断
          • 比其他方式如总线,需要更多的电缆
      • Tree
        • 特征
          • 星型网络的变种,大多数设备连接到二级HUB上,而二级HUB则连到中央HUB上。
          • 中央控制单元可以是SWITCH/HUB
        • 优缺点
          • 单一HUB可以连接更多设备,增加信号传输距离。
          • 可以隔离不同的计算机,并可提供优先通信。即连在一个HUB上的计算机通信速率最快。
      • Bus
        • 特征
          • 一根电缆连接所有的设备。
          • 设备通过连线同转发器相连,而转发器则连在线路上。线路两端用终端器封闭。
        • 优点
          • 容易安装。可按最佳路径来铺设电缆。
          • 使用较少的电缆。
        • 缺点
          • 重新配置和错误隔离比较困难。
          • 总线中的任何一处发生错误,都会使通信中断。
      • Ring
        • 特征
          • 所有设备连接成一个环形。
          • 每一个设备包含一个中继器,把收到的信息转发到下一个站点,直到目的地。
          • 每个设备有两个端口,一个用作输入,另一个用作输出。
        • 优点
          • 容易安装和重配置,每一个设备只同它的邻居相连,增加设备也方便。
          • 错误检测比较方便。一旦设备没有收到信号,则它的输入链路会有问题。
        • 缺点
          • 单向通信。用双向环来克服。
          • 一个站点出错或关闭会中断通信,一个链路中断也会产生同样问题。
    • 信道分配策略


    CSMA/CD协议

    • 定义

      • 即所谓“先听后说”
      • 希望传输的站首先对信道进行监听以确定是否有别的站在传输。
      • 若信道空闲,该站可以传输,否则,该站将按一定算法退避一段时间后再试。
    • 分类

      • 1-坚持CSMA
      • 非坚持CSMA
      • P-坚持CSMA
    • 重要特性

      • 发送的不确定性
        • 每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性;
      • 半双工通信
        • 使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信);
        • 整个以太网的平均通信量远小于以太网的最高数据率。
    • 1-坚持CSMA

      • 步骤
        • (1)监听信道,若信道空闲就发送;
        • (2)若信道忙则继续坚持监听,直至检测到信道空闲后就立即(以概率1)发送;
        • (3)若有冲突,则随机等待一段时间,重复步骤(1)。
      • 优点
        • 只要信道空闲,数据就立即得到发送;
      • 缺点
        • 若有两个或两个以上的站点等发送,冲突就不可避免。
    • 非坚持CSMA

      • 步骤
        • (1)监听信道,若信道空闲就发送;
        • (2)若信道忙则放弃(不坚持)监听,随机等待一段时间,重复步骤(1);
      • 优点
        • 采用随机的重发延迟时间可以减少冲突的可能性;
      • 缺点
        • 即使有几个站有数据要传送,信道仍然可能处于空闲状态,信道利用率较低。
    • P-坚持CSMA

      • 步骤
        • (1)监听信道,若信道空闲就以概率p发送数据,以概率1-p 延迟至下一个时间片;
        • (2)若信道忙则继续坚持监听,直至下一个时间片;
        • (3)至下一个时间片后重复步骤 (1)。
      • 如何选择P的有效值
        • 设任一时刻平均有N个站有数据等待发送,则一旦当前的数据发送完毕,在下一个时间片里平均有Np个站发送数据。
        • 若p过大,使Np > 1,表明有多个站试图发送,冲突不可避免,所以应使 Np < 1 ;
        • 若 p 过小,信道利用率会大大降低。

    五、传统以太网

    以太网的工作原理

    • 两个标准
      • DIX Ethernet V2 是世界上第一个局域网产品(以太网)的规约。
      • IEEE 的 802.3 标准。
      • 区别
        • DIX Ethernet V2 标准与 IEEE 的 802.3 标准只有很小的差别,因此可以将 802.3 局域网简称为“以太网”。
        • 严格说来,“以太网”应当是指符合 DIX Ethernet V2 标准的局域网
    • 数据层的两个子层
      • 802 委员会就将局域网的数据链路层拆成两个子层:
        • 逻辑链路控制(LLC)子层
          • 与接入到传输媒体有关的内容都放在 MAC 子层
        • 媒体接入控制(MAC)子层
          • 而 LLC 子层则与传输媒体无关,不管采用何种协议的局域网对 LLC 子层来说都是透明的
      • 好处
        • 不同的物理网络,物理层与MAC子层不同, 而LLC子层相同,网络的上层协议可运行于任何一种IEEE 802标准的局域网上,具有透明性。
        • 这种分层方法也使得IEEE 802标准具有良好的可扩充性,可以很方便地接纳新的介质与介质访问控制方法。

    网卡的作用

    • 网络接口板又称为通信适配器(adapter)或网络接口卡NIC (Network Interface Card),或“网卡”。
    • 计算机通过适配器和局域网进行通信
    • 重要功能
      • 进行串行/并行转换。
      • 对数据进行缓存。
      • 在计算机的操作系统安装设备驱动程序。
      • 实现以太网协议。

    CSMA/CD协议

    • 最初的以太网是将许多计算机都连接到一根总线上。当初认为这样的连接方法既简单又可靠,因为总线上没有有源器件。
    • 为了通信的简便以太网采取了两种重要的措施
      • 无连接的工作方式
        • 不必先建立连接就可以直接发送数据
        • 不可靠的交付,无差错控制
          • 以太网对发送的数据帧不进行编号,也不要求对方发回确认
          • 这样做的理由是局域网信道的质量很好,因信道质量产生差错的概率是很小的
      • 以太网发送的数据都使用曼彻斯特编码
        • 缺点:它所占的频带宽度比原始的基带信号增加了一倍

    争用期/冲突检测时间

    • 争用期(碰撞窗口):以太网的端到端往返时延 2τ
      • 最先发送数据帧的站,在发送数据帧后至多经过时间 2τ(两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞
      • 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
    • CSMA/CD的必要时间
      • 帧的传输时间>=2τ
      • 以太网取 51.2 μs 为争用期的长度
      • 对于 10 Mb/s 以太网,在争用期内可发送512 bit,即 64 字节
      • 以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突
      • 凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧

    截断的二进制指数退避算法

    • 发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据
      • 确定基本退避时间,一般是取为争用期 2τ
      • 定义参数 k ,k <= 10,即k = Min[重传次数, 10]
      • 从整数集合[0,1,…, (2k -1)]中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间
      • 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告


    强化碰撞

    • 当发送数据的站一旦发现发生了碰撞时,除了立即停止发送数据外,还要再继续发送若干比特的人为干扰信号(jamming signal),以便让所有用户都知道现在已经发生了碰撞


    以太网的信道利用率

    • 一个帧从开始发送,经可能发生的碰撞后,将再重传数次,到发送成功且信道转为空闲(即再经过时间 τ 使得信道上无信号在传播)时为止,是发送一帧所需的平均时间。
    • 参数a
      • 在以太网中定义了参数 a,它是以太网单程端到端时延 τ 与帧的发送时间 T0 之比:
    • 信道利用率最大值
      • 在理想化的情况下,以太网上的各站发送数据都不会产生碰撞(已不是 CSMA/CD),即总线一旦空闲就有某一个站立即发送数据
      • 理想情况下的极限信道利用率:


  • 相关阅读:
    [BZOJ 4001] [TJOI 2015] 概率论
    【计算几何】推导坐标的旋转公式
    【动态规划学习】01背包
    (坑)网络流24题
    bzoj2442(单调队列优化)
    [lydsy2005]能量采集
    主席树
    [noi2005][treap]序列维护
    [Apio2012][Treap]派遣
    [CodeVs][1514][Treap][书架]
  • 原文地址:https://www.cnblogs.com/fangzhiyou/p/13933717.html
Copyright © 2011-2022 走看看