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

    第三章 数据链路层

    3.1 使用点对点信道的数据链路层

    • 点对点信道。这种信道使用一对一的点对点通信方式。

    • 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。

    • 广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调(coordinate/arbitrate)这些主机的数据发送。

    3.1.1数据链路和帧

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

    • 数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到(或者作用于)链路上,就构成了数据链路。

    现在最常用的方法是使用网络适配器 (既有硬件,也包括软件) 来实现这些协议。 一般的适配器都包括了数据链路层和物理层这两层的功能。

    也有人采用另外的术语。这就是把链路分为物理链路和逻辑链路。

    Protocol Data Unit是指对等层次之间传递的数据单位
    物理层的PDU是数据位(bit)
    数据链路层的PDU是数据帧(frame)
    网络层的PDU是IP数据包
    传输层的PDU是数据段segment
    其他更高层次的PDU是数据data

    3.1.2 三个基本问题

    (1) 封装成帧
    数据链路层的发送方应当让接收方的数据链路层知道,所发送的帧是从什么地方开始到从什么地方结束。
    这就是帧定界 (frame boundary)问题。

    (2) 透明传输 (transparent transmission)
    数据链路层传送的数据的比特组合必须是不受限制的。
    数据链路层协议不能禁止传送某种特殊的比特组合。
    这就是透明传输问题。

    (3) 差错控制
    数据链路层必须有差错检测功能。


    3.2 点对点协议PPP

    3.2.1 PPP协议的特点

    (1)简单
    (2) 封装成帧
    PPP协议必须规定特殊的字符作为帧定界符(即标志一个帧的开始和结束的字符)。

    帧定界是指接收方从收到的比特流中能准确地找出一帧的开始和结束在什么地方。
    (3) 透明性
    PPP协议必须保证数据传输的透明性。

    这就是说,如果数据中碰巧出现了和帧定界符一样的比特组合时,就要采取有效的措施来解决这个问题。
    (4) 多种网络层协议
    PPP协议必须能够在在同一条物理链路上同时支持多种网络层协议 (如IP和IPX等) 的运行。

    当点到点链路所连接的是局域网或路由器时,PPP协议必须同时支持在链路所连接的局域网或路由器上运行的各种网络层协议。
    (5) 多种类型链路
    除了要支持多种网络协议外,PPP还必须能够在多种类型的链路上运行。

    PPPoE (PPP over Ethernet),这是PPP协议能够适应多种类型链路的一个典型例子。

    PPPoE 是为宽带上网的主机使用的链路层协议。

    这个协议把PPP帧再封装在以太网帧中(当然还要增加一些能够识别各用户的功能)。
    (6) 差错检测 (error detection)
    PPP协议必须能够对接收方收到的帧进行检测,并立即丢弃有差错的帧。

    若在数据链路层不进行差错检测,那么已出现错误的无用帧就还要在网络中继续向前转发,因而会白白地浪费许多的网络资源。
    (7) 检测连接状态
    PPP协议必须具有一种机制来及时(不超过几分钟)自动检测出链路上连接的活跃度(liveness)。也就是说,必须能够及时检测出一条链路是处于正常工作状态,还是已经出了故障。

    当出现故障的链路隔了一段时间后又重新恢复正常工作时,就特别需要有这种及时检测功能。
    (8) 最大传送单元
    PPP 协议必须对每一种类型的点对点链路设置最大传送单元MTU (Maximum Transmission Unit)的标准默认值。

    这样做是为了促进各种实现之间的互操作(Interoperability)。

    如果高层协议发送的分组过长并超过MTU的数值,PPP就要丢弃这样的帧,并返回差错。

    需要强调的是,MTU是数据链路层的帧可以载荷的数据部分的最大长度,而不是帧的总长度。
    (9) 网络层地址协商
    PPP协议必须提供一种机制使通信的两个网络层 (例如,两个IP层) 的实体能够通过协商知道或能够配置彼此的网络层地址。

    协商的算法应尽可能简单,并且能够在所有的情况下得出协商的结果。

    这对拨号连接的链路特别重要,因为仅仅在链路层建立了连接而不知道对方网络层地址时,则还不能保证网络层能够传送分组。
    (10) 数据压缩协商
    PPP协议必须提供一种方法来协商使用数据压缩算法。

    但PPP协议并不要求对数据压缩算法进行标准化。


    PPP协议有三个组成部分:
    一个将 IP 数据报封装到串行链路的方法。PPP 既支持异步链路 (无奇偶校验的8比特数据),也支持面向比特的同步链路。

    一个链路控制协议LCP (Link Control Protocol)。用来建立、配置和测试数据链路连接,通信的双方可协商一些选项。

    一套网络控制协议NCP (Network Control Protocol),其中的每一个协议支持不同的网络层协议,如IP、OSI网络层、DECnet以及AppleTalk等。

    3.2.2 PPP协议的帧格式

    这里写图片描述
    (1)各字段意义
    (2)字节填充
    (3)零比特填充

    3.2.3 PPP协议的工作状态


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

    • 局域网的数据链路层

    3.3.2 CSMA/CD协议

    • 使用集线器的星型拓扑
    • 以太网的信道利用率
    • 以太网的MAC层

    3.4 扩展的以太网

    • 在物理层扩展以太网
    • 在数据链路层扩展以太网
    • 虚拟局域网

    3.5 高速以太网

    • 100BATE-T 以太网
    • 吉比特以太网
    • 10吉比特和100吉比特以太网
    • 使用以太网进行宽带接入
  • 相关阅读:
    ST3 插件和技巧
    博客园中 代码使用 sublime-text 的主题
    JavaScript中的 prototype 和 constructor
    JavaScript 代码小片段
    JavaScript 静态方法和实例方法
    JavaScript 闭包的例子
    关于linux 交叉编译器的安装
    scrapy 实现mysql 数据保存
    django 实现 内网访问 和 用花生壳进行内网穿透
    django 中从外界借助多个网站时 static 的存放和整理
  • 原文地址:https://www.cnblogs.com/bryce1010/p/9386962.html
Copyright © 2011-2022 走看看