计算机网络-数据链路层

  1. 使用点对点信道的数据链路层:

    • 数据链路和帧: 数据链路包括结点之间的物理线路以及实现通信协议的硬件和软件. 现在通常使用网络适配器来实现数据链路层通信协议. 数据链路层的协议数据单元为帧(frame).
    • 数据链路层需要解决的问题:
      • 封装成帧(framing): 在一段数据的前后分别添加首部和尾部.
        帧格式
      • 透明传输: 无论什么样的比特组合的数据, 都能够按照原样没有差错地通过这个数据链路层. 数据链路层使用帧首部和帧尾部来进行帧的划分, 这样的特殊字符称为帧定界符. 但是可能出现帧的数据部分中出现和帧首部或帧尾部相同的比特组合, 这时候接收端会将其视作帧的定界符. 因为接收端看到了帧的数据部分, 所以称为不透明(透明就是实际存在但是看不到, 既然看到了就不透明了). 为了解决这个问题所以需要进行转义, 这和编程里面的转移字符概念类似.
      • 差错检测:
        数据链路层广泛使用的差错检测方法是循环冗余校验CRC(Cyclic Redundancy Check). 因为该差错检查方法可以借助于硬件来实现, 因此在速度上更快.
  2. 点对点协议PPP:

    • 2.1. PPP协议的特点: PPP 协议就是用户计算机和 ISP 进行通信时所使用的数据链路层协议.
      • PPP 协议需满足的需求
        • 简单: 数据链路层的帧不需要纠错, 不需要序号, 也不需要流量控制.
        • 封装成帧: PPP 协议需要规定特殊的字符作为帧定界符.
        • 透明性: PPP 需要措施来解决透明传输的问题.
        • 多种网络层协议: PPP 协议必须能够在同一条物理链路上同时支持多种网络层协议的运行.
        • 多种类型的链路: PPP 协议还需要能够在多种类型的链路上运行.
        • 差错检测(error detection): PPP 协议必须能够对接收端接收到的帧进行检测, 并立即丢弃有差错的帧.
        • 检测连接状态: PPP 协议需要能够及时自动检测链路是否处于正常的工作状态.
        • 最大传输单元: PPP 协议必须对每一种类型的点对点链路设置最大传输单元(Maximum transmission unit)的默认值. MTU 指的是数据链路层的帧可以载荷的数据部分的最大长度, 而不是帧的总长度.
        • 网络层地址协商: PPP 协议必须提供一种机制使通信的两个网络层的实体能够通过协商之道或能够配置彼此的网络层地址.
        • 数据压缩协商: PPP 协议必须提供一种方法来协商使用数据压缩算法.
      • PPP 协议的组成
        • 一个将 IP 数据报封装到串行链路的方法. PPP 协议支持异步链路(无奇偶校验的 8 比特数据), 也支持面向比特的同步链路.
        • 一个用来建立、配置和测试数据链路连接的链路控制协议 LCP(Link Control Protocol).
        • 一套网络控制协议 NCP(Network Control Protocol), 其中的每一个协议支持不同的网络层协议.
    • 2.2. PPP 协议的帧格式:
      • 各字段的含义: 标志字段 F 表示一个帧的开始或结束. 第四个字段是协议字段. 当协议字段为 0x0021 时, PPP 帧的信息字段就是 IP 数据报. 若为 0xC021, 则信息字段是 PPP 链路控制协议 LCP 的数据, 而 0x8021 表示这时网络层的控制数据.
        ppp-frame
      • 字节填充: 异步传输时, PPP 协议的转移字符为 0x7D.填充规则如下:
        • 信息字段中出现的 0x7E 转变成(0x7D, 0x5E)
        • 信息字段中出现的 0x7D 转变成(0x7D, 0x5D)
        • 信息字段中出现的控制字符, 则在该字符前要加入一个 0x7D 字节, 同时将该字符编码加 0x20. 例如 0x03 最终变为(0x7D, 0x23)
      • 零比特填充:
        • 只要发现有 5 个连续 1, 则立即填入一个 0.
    • 2.3. PPP 协议的工作状态:
      • PPP 链路起始和终止状态为**链路静止(Link Dead)**状态.
      • 个人电脑公国调制解调器呼叫路由器时, 路由器检测到调制解调器发出的载波信号. 双方建立物理连接. 此时进入**链路建立(Link Establish)**状态, 其目的是为了建立 LCP 连接.
      • LCP 开始协商配置选项, 即发送 LCP 的配置请求帧(Configure-Reqeust). 协商结束后就建立 LCP 链路, 此时进入**鉴别(Authenticate)**状态.
      • 在鉴别状态只允许传送 LCP 协议的分组, 鉴别协议的分组以及检测链路质量的分组. 若鉴别成功则进入**网络层协议(Network-Layer Protocol)**状态.
      • 在网络层协议状态, 若此时 链路上运行的是 IP 协议, 使用 IP 控制协议 IPCP(IP Control Protocol) 分配 IP 地址. 配置完成后进入**链路打开(Link Open)**状态. 在此状态即可互相发送分组.
      • 数据传输结束后, 可以由链路的一段发出终止请求 LCP 分组(Terminate-Request) 请求终止链路连接, 在收到对方发来的终止确认 LCP 分组(Terminate-Ack)后, 转到链路终止状态. 当调制解调器的载波停止后, 转到链路静止状态.
        ppp working state
  3. 使用广播信道的数据链路层:

    • 3.1. 局域网的数据链路层:
      • 以太网的两个标准: DIX Ethernet V2 和 IEEE 802.3 标准
      • 适配器的作用: 适配器即网络接口卡, 俗称网卡. 适配器和局域网之间的通信时通过电缆或双绞线以串行传输方式进行的, 而适配器和计算机之间的通信则是通过计算机主板上的 I/O 总线以并行传输方式进行的. 适配器的一个重要功能就是要进行数据串行传输和并行传输的转换. 适配器需要能够实现以太网协议.
    • 3.2. CSMA/CD 协议:
      • 总线的特点: 当一台计算机发送数据时, 总线上的所有计算机都能检测到这个数据.

      • 以太网采用无连接的工作方式: 以太网不必先建立连接就可以直接发送数据. 适配器对发送的数据帧不进行编号, 也不要求对方发回确认. 对有差错帧是否需要重传则由高层来决定, 以太网并不知道这是重传帧, 而是当作新的数据帧来发送.

      • 以太网发送数据使用曼彻斯特(Manchester)编码的信号.

      • CSMA/CD 协议要点:

        • 多点接入: 许多计算机以多点接入的方式连接在一根总线上.

        • 检测信道: 不管在发送前还是在发送中, 每个站都必须不停地检测信道. 发送前检测信道时为了获得发送权; 在发送中检测信道是为了及时发现有没有其它站的发送和本站发送的碰撞.

        • 碰撞检测: 适配器边发送数据边检测信道上的信号电压变化情况, 以便判断自己在发送数据时其它站是否也在发送数据.

          当几个站同时在总线上发送数据时, 总线上的信号电压变化幅度将会增大. 当适配器检测到的信号电压变化幅度超过一定的门限值时, 就认为总线上至少有两个站同时在发送数据, 表明产生了碰撞.

          任何一个正在发送数据的站, 一旦发现总线上出现了碰撞, 其适配器就要立即停止发送, 免得继续进行无效的发送, 白白浪费网络资源, 然后等待一段随机时间后再次发送.

          以太网的端到端往返时间 2 τ \tau τ 称为争用期(connection period), 也叫碰撞窗口(collision window). 经过争用期这段时间还没有检测到碰撞, 才能肯定这次发送不会发生碰撞.

      • 碰撞规避算法: 截断二进制指数退避(truncated binary exponential backoff).

        基本退避时间为争用期2 τ \tau τ, 具体时间是51.2 μ \mu μs. 对于 10 Mbit/s 的以太网, 在争用期可以发送 512 bit, 即 64 字节.

        从离散的整数集合[0, 1,…, (2k-1)]中随机取出一个数, 记为 r. 重传推后的时间是 r 倍的争用期. 计算公式如下:
        k = M i n [ 重 传 次 数 , 10 ] k = Min[重传次数, 10] k=Min[,10]

        以太网规定一个最短帧长 64 字节. 凡是长度小于 64 字节的帧都是由于冲突而异常终止的无效帧.

        发送端检测到发生碰撞后, 立即停止发送数据, 然后继续发送 32 或 48 比特的人为干扰信息(jamming signal). 假设 A 站发送信号到检测冲突时间为 TB, 发送强化干扰信号时间为 TJ, 单程传播时延为 τ \tau τ, 因此总线被占用时间为 TB + TJ + τ \tau τ

      • CSMA/CD 算法过程:

        • 准备发送: 适配器从网络层获得一个分组, 加上以太网的首部和尾部, 组成以太网帧, 放入适配器的缓存中. 但是在发送之前, 必须先检测信道.
        • 检测信道: 若检测到信道忙, 则应不停地检测, 一直等待信道转为空闲. 若检测到信道空闲, 并在 96 比特时间内信道保持空闲, 就发送这个帧.
        • 在发送过程中仍不停地检测信道, 即网络适配器要边发送边监听. 若在争用期内一直未检测到碰撞, 则一定能够发送成功. 发送完毕后回到准备发送阶段; 若在争用期内检测到碰撞. 立即停止发送数据, 并按规定发送认为干扰信号. 适配器戒指执行指数退避算法, 等待 r 倍争用期后, 回到信道检测阶段.
    • 3.3. 使用集线器的星型拓扑:
      每个站需要用两对无屏蔽双绞线(放在一根电缆内), 分别用于发送和接收. 双绞线总是和集线器配合使用.
      • 集线器特点:
        • 使用集线器的以太网在逻辑上仍是一个总线网, 各站共享逻辑上的总线. 在同一时刻之多只允许一个站发送数据.
        • 集线器工作在物理层, 它的每个接口仅仅简单地转发比特, 不进行碰撞检测.
    • 3.4. 以太网的 MAC 层:
      • MAC 层的硬件地址:
        MAC 地址占 6 字节长, 第一字节的最低为为I/G位. 当I/G位为0时, 地址字段表示一个单个站地址; 当I/G位为1时表示组地址, 用力啊进行多播. 适配器有过滤功能, 每收到一个 MAC 地址就先用硬件检查 MAC 帧中的目的地址. 如果是发往本站的帧则收下, 然后再进行其它的处理. 否则就将此帧丢弃, 不再进行其它的处理.
      • MAC 帧的格式:
        以太网有帧开始定界符, 但是没有帧结束定界符. 这是因为以太网采用的是曼彻斯特编码, 在该编码中每一个码元中间都有一次电压的转换. 当发送方将一个以太网帧发送完毕后, 就不再发送其它码元了, 因此电压也不会发生变化了, 这样接收方就很容易找到以太网帧的结束位置.
        mac frame
    1. 扩展的以太网:
      • 物理层扩展以太网: 使用集线器
      • 数据链路层扩展以太网: 以太网交换机. 以太网交换机可以实现全双工通信, 使多对主机能够同时通信, 相互通信的主机都是独占传输媒体, 无碰撞地传输数据. 以太网交换机还拥有自学功能.
      • 虚拟局域网: 由一些局域网网段构成的与物理位置无关的逻辑组. 可以使用以太网交换机实现.
    2. 参考:
      [1] : 计算机网络
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值