【计算机网络】数据链路层总结

数据链路层

目录

  1. 数据链路层概述
    • 基本概念
    • 数据链路层的三个基本问题
  2. 点对点信道的数据链路层
    • 概述
    • PPP协议的组成
    • PPP帧的格式和要求
    • PPP协议的工作状态
  3. 广播信道的数据链路层
    • 局域网和以太网
    • 广播信道数据链路层的任务
    • 适配器
    • CSMA/CD协议的要点
    • 以太网应用CSMA/CD协议
    • 信道利用率
    • 以太网的MAC层
    • 扩展以太网
    • 高速以太网以及问题

1. 数据链路层概述

基本概念

数据链路层讨论的是如何把网络层的数据封装成帧,有效的进行通信传输。

链路是指:一个结点到另一个结点的具体的物理线路。

数据链路是指:在链路上加之实现通信协议的软件和硬件。

实现数据链路层的硬件和软件主要是网卡(但适配器工作在物理层和数据链路层)。

此层的协议数据单元PDU叫做。这是将数据报加之首部和尾部形成的。

数据链路层的三个基本问题

  1. 封装成帧

    指将数据报加之首部和尾部形成帧。首部和尾部是必要的,主要作用是帧定界、添加控制信息,以及差错控制。

  2. 透明传输

    如果是文本文件,可以用SOH/EOT充作帧开始、结束控制符,但数据中可能也出现SOH/EOT,这时需要加转义字符ESC,如ESC-SOH,ESC-EOT,ESC-ESC,以达到透明传输。

    这里的透明指的是,数据链路层对传输的数据透明,传输的数据实际上感受不到数据链路层所做的操作。

  3. 差错检测

    奇偶检测、循环冗余CRC等。

    采用CRC,采用n+1位除数(由生成多项式得到),得到n位余数,称作帧检验序列FCS。

    检测时,将传输得到的数据除以同一个除数,若余数0,则可以说无差错。

    若有差错,直接丢弃,除此之外,不做任何操作。

    故差错检测只是检测了bit错误,并不能解决帧失序、丢失、重复等问题。

    也就是说,数据链路层实现的是尽最大努力的交付,即不可靠的传输。

2. 点对点信道的数据链路层

概述

点对点信道主要用于用户同ISP(验证身份)通信时。早期使用高级数据链路控制HDLC,已经淘汰,现在用的是PPP协议,即point-to-point protocol,点对点通信协议。

PPP协议的组成

由三个部分组成:

  1. 一个将数据报封装成帧的方法

  2. 一个用来建立、配置和测试数据链路连接的链路控制协议LCP

    通信双方用以协商。

  3. 套网络控制协议

    每一个协议支持不同的网络层协议,也就是说PPP支持不同的网络层协议。

PPP协议帧的格式和要求

PPP帧的格式如下:

格式划分 F A C 网络层协议 数据报 FCS F
具体内容 7E FF 03 如C021(IP) 数据部分 - 7E
字节数 1 1 1 2 <=1500 2 1

其中,F,A,C都是固定的,A是地址,C字段实际上无用。

实现透明传输:

PPP协议为实现透明传输,采用的策略是:

  1. 异步:字节填充(字符填充)。

    在数据部分,(7E->7D,5E)、(7D->7D,5D)、(小于0x20的,前面添加7D)

  2. 同步:零比特填充

    即每遇到5个1,添加一个0。

PPP协议工作状态

<课本P81>,重点。

3. 广播信道的数据链路层

局域网和以太网

局域网(LAN)指的是一个网络为一个单位所拥有,地理位置和站点数据有限,统称。局域网的工作跨越了物理层和数据链路层。

以太网是局域网的一种实现方式,但如今以太网占据了绝大多数市场,故某种意义上,以太网就是局域网。

以外网的标准有DIX Ethernet V2和IEEE 802.3。二者差别不大,现在广泛使用的是DIX Ethernet V2。

IEEE 802.3把以太网的数据链路层划分为:逻辑链路控制(LCP)和媒体接入控制(MAC),但LCP实际上并无用,现在只使用MAC层。

以外网的其他特点:

  1. 以太网采用的是尽最大努力的交付,不可靠的交付。
  2. 以太网采用使用CSMA/CD协议。
  3. 以太网采用的是曼彻斯特编码,基带信号传输。这种编码中间跃变,由高->低为1,反之为0。

广播信道数据链路层的任

广播信道主要由总线式网络,环形网,星形网等。

广播信道的数据链路层讨论的是如何在一个网络中实现一对一、一对多通信。这里要解决的问题是,总线网络上不能有两个站点同时发送数据,否则就称碰撞(冲突)。

必须有解决这个问题的协议,这就是CSMA/CD协议。

但首先应了解其他几个概念。

适配器

即网卡,实现了数据链路层协议,工作于物理层和数据链路层。

适配器的另一个作用是实现并行通信和串行通信的转换。外网--适配器为串行,而适配器--主机为并行。

适配器还配有ROM,实现缓存,这样可以实现不同速率的兼容。

另外,需要注意,适配器中的ROM中是硬件地址,即MAC地址,而在计算机的存储器中存有IP地址,即软件地址。

CSMA/CD协议的要点

CSMA/CD协议全称:载波多点监听/碰撞检测。他解决的问题是如何在总线局域网上进行“有效”通信。

CSMA/CD的要点如下:

  1. 多点接入

    CSMA/CD协议适用于广播信道,允许总线上多个站点接入。协议的核心是载波监听和碰撞检测。

  2. 载波监听

    由于总线型广播信道上同一时刻只允许一个站点发送数据,故站点需要时时检测信道上是否有其他站点发送数据,这就是载波监听。检测信道通过才能获得发送权。

    载波监听发生在:一个站点发送数据之前,以及发送数据的过程中。一旦发现有其他站点发送数据,则立即停止发送。

    顺便指出,信道上发送的是基带信号,并没有载波,“载波”一词为借用。

  3. 碰撞检测(冲突检测)

    碰撞检测就是“边发送边监听”。适配器边发送数据边检测信道上信号变化情况,看是否发生了 碰撞。若有两个计算机同时发送数据,则信道上的信号电压变化幅度会超过一定的门限值,则计算机(适配器)能够发现这种变化,后续作出进一步响应。

Question:既然每个站点发送数据前,信道已经清空,为什么发送过程中还要碰撞检测(可能发生碰撞)?

Answer: 信号传播需要时间。1Km的电缆传播时延为5us,记单程端到端时延为\(t\),若A站点向B站点发送数据后,经过极短时间\(e\)\(e\)小于\(t\) us),数据尚未到达B,\(e\)时刻B依然检测到信道为空,此时B也发送数据,那么在时间\(t-e/2\) 时刻,发生碰撞,则A端在\(2t-e\)时刻检测到碰撞发生。

另外,定义单程端到端时延的两倍为争用期,因为从上面分析可以看到,A最迟在\(2t\)时刻检测到碰撞发生(当\(e\)趋向于0),在A发送数据\(2t\)时间内若不发生碰撞,则之后不会发生碰撞。下面对以太网应用CSMA/CD协议的具体规定。

以太网应用CSMA/CD协议

以太网应用CSMA/CD协议,实现了半双工通信,其具体的规定和要点如下:

  1. 以太网发送数据采用曼彻斯特编码。

  2. 发送前(中)载波监听。

  3. 争用期2t定义为51.2us,对于10Mbit/s的以太网,可以算出争用期内发送了512bit数据,故也称作512比特时间。在这个时间内,传播的距离约为5km,但实际上达不到这么多。

    由于争用期内必须发送完512bit才能检测是否发生了碰撞,故以太网规定最短帧长为512bit,即64字节,若数据不够,则需要填充。

  4. 若检测到发生碰撞,等到一段时间后再发送。具体的等待时间采用截断二进制指数退避算法,即:

    在区间\([0,1,3,...(2^k-1)]\)内随机选出一个数\(r\),等待\(r×2t\)时间。即随机个争用期的时间。

    具体\(k\)为:\(重传次数,k = Min(重传次数,10)\)

    另外,规定重传次数达到16次,则表示想发送数据的站点太多,丢弃该帧,向高层报告。

  5. 强化碰撞策略。一旦检测到发生碰撞,则立即发送32或48bit的人为干扰信号,让所有站点都知道发生了碰撞。

  6. 帧最小间隔为9.6us。因为以太网的帧并没有个帧结束定界,故最小间隔是应有的,这样也可以保证接收站点来得及缓存清理和处理。

  7. 时间计算。若发送时延为\(t0\),传播时延为\(t\),A发送完毕到检测到发生碰撞的时延为\(tB\),强化信号时延为\(tJ\),则因为碰撞浪费的时延为\(tB+tJ\),总线被占用的时延为\(tB+tJ+t\),因为最后1bit还要经过一个单程端到端时延。

信道利用率

说明以太网信道利用率。

发送一帧的时间是(若干个争用期时间\(2t\))+发送时延\(T_0\) + 单程端到端时延\(t\)。可见,提高信道利用率,就要减小\(t\)\(T0\)之比。定义:$a = \frac {t} {T_0} \(,希望\)a$越小越好。

信道极限利用率为:假设发生碰撞,极限利用率为:

\(S_{max}=\frac{T_0}{T_0+t}=\frac{1}{1+a}\) ,可见,\(a\)越小越好。

以太网的MAC层

上面提到过,对于广播信道,802.3将数据链路层划分为LLC和MAC,但实际上LLC无用,只讨论MAC。MAC就是媒体接入控制的意思。因而,实际上广播信道的数据链路层就是指MAC层。

MAC地址

MAC地址是一个硬件地址,于网卡的ROM中。他是一个48bit即6个字节的序列,现在使用的是EUI-48。一个地址是一个站的名字或者标识符,它由注册管理机构RA同一颁发。前三个字节为公司标识符,即组织唯一标识符OUI,这是生产公司申请到的。后三个字节为扩展标识符,为公司自己制定。

IEEE规定,MAC地址的第一字节的最低位为I/G位,标志是I(individual)或者G(group),为I时为0,表示单个站地址,G时为1,表示组地址,用来多播。

MAC地址的第一字节的倒数第二位为G/L位,表示全球管理(0)/本地管理(1),若不申请全球OUI,也可以使用本地管理,即将G/L位置1。

这样,实际上全球MAC共有\(2^{44}\)个。

局域网内就根据MAC地址进行发送、接受数据,当某站点接收到帧,检查MAC目的地址是否与本机MAC相匹配,不匹配则不接受。

发送的帧包括:单播帧、广播帧(全1)和多播帧。

MAC帧格式

MAC帧(+最前面插入8字节)格式如下:

前同步码 帧开始定界符 目的地址 源地址 类型 数据 FCS
1010..10 1010101011 目的MAC 本站MAC 网络层类型 数据报 CRC检验
7字节 1字节 6字节 6字节 2字节 46-1500字节 4字节
  1. 上面的表格中,前8个字节不属于MAC帧内容,只是为了帧同步和开始定界,CRC也不检测前8字节是否出错。
  2. MAC帧的范围是64字节-1518字节,数据部分是46-1500字节。

扩展以太网

扩展以太网主要从下面两方面。

物理层上扩展以太网

工作在物理层的转发器、集线器,将多个局域网连接起来,扩大碰撞域,但并不增加吞吐量。

数据链路层扩展以太网

使用工作在数据链路层的以太网交换机,扩大以太网。交换机可以实现全双工,并行,存储数据帧缓存,以及自学习交换表(地址表)进行转发。这种方式增加了吞吐量。

应注意自学习交换表的方法,P100,另外,为了防止数据在物理环路上绕圈子,采用“生成树协议STP”,将某些链路在逻辑上切断,其过程类似于最小生成树。

虚拟局域网

不同局域网内的几个计算机可以虚拟的连接起来构成虚拟局域网VLAN,以实现某些特定目的。

VLAN就是由一些局域网网段构成的与物理位置无关的逻辑组。

VLAN的帧增加了4个字节的VLAN标识符,标记此站点属于哪个VLAN。

这样可以防止广播风暴。

器件

总结工作在物理层的:转发器、集线器hub。

工作于数据链路层:交换机。

工作于物理+数据链路层:适配器。

高速以太网以及问题

传统以太网指的是10BASE T,意义10:10Mbit/s,BASE:基带信号,T:双绞线。

之前还有:

10BASE 5:10:10Mbit/s,BASE:基带信号,5:500m粗缆。

10BASE 2:10:10Mbit/s,BASE:基带信号,2:200m细缆。

现在带宽逐渐提高,已经有:

100BASE T:100:100Mbit/s,BASE:基带信号,T:双绞线。

吉比特以太网、10吉比特以太网等。

100BASE T

将带宽提高10倍,帧格式不变。参数\(a=\frac{t}{T_0}\)\(T_0\)变为\(1/10\),则\(a\)增加10倍,信道利用率降低。100 BASE T采用的策略是保证最短帧长不变,争用期减少到\(1/10\),即争用期为5.12us,帧最小间隔是0.96us,(这其实是将物理线路最长长度减少到\(1/10\),实际中100BASE-TX是100m)

吉比特以太网

发送速率1G bit/s。帧格式不变,吉比特以太网可以工作在半双工和全双工下,保持\(a\)不变,采取:

  1. 半双工下

    仍然保持物理线路最长为100m(与100BASE-T同),最短帧长依然为512bit(64字节),但争用期不再是512bit时间,而是512字节时间(扩大8倍),这样,发送不足512字节的帧,需要进行填充处理,使得达到512字节,这叫载波延伸。另外,还有分组突发功能,第一个短帧采用载波延伸,后面跟着的短帧则一个接一个发送,形成长度达到1500字节的数据。(这是为了保证不要每个短帧都填充,只要过了争用期就好了。)

  2. 全双工下

    不需要载波延伸和分组突发,因为不会发生冲突。

10吉比特以太网(10GE)

帧格式不变,只工作于全双工,不使用CSMA/CD协议,没有争用期之说。

NOTE:半双工下采用CSMA/CD,全双工不用CSMA/CD。

posted @ 2018-11-04 09:54  pigcv  阅读(2873)  评论(0编辑  收藏  举报