3.1数据链路层基本概念及基本问题
3.1.1基本概念
数据链路层使用的信道主要有以下两种类型:
点对点信道:这种信道使用一对一的点对点通信方式。(使用PPP协议)
广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。(CSMA/CD 带冲突检测的载波侦听检测多路访问检测)
链路(link)是一条点到点的物理线路段,中间没有任何其他的交换结点。 一条链路只是一条通路的一个组成部分。
数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。 现最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。 一般的适配器都包括了数据链路层和物理层这两层的功能。
数据链路层传送的数据帧(网络层信息+帧头+帧尾+校验值+物理层地址(MAC地址))
3.1.2三个基本问题
**封装成帧:(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。 首部和尾部的一个重要作用就是进行帧定界。
**透明传输 :若传输的数据是ASCII码中"可打印字符(共95个)"集时,一切正常。 若传输的数据不是仅由"可打印字符"组成时,就会出问题,如下图。
说明:发送端的数据链路层在数据中出现控制字符"SOH"(帧开始符)或"EOT"(帧结束符)的前面插入一个转义字符"ESC"(其十六进制编码是 1B)。 字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。 如果转义字符也出现数据当中,那么应在转义字符前插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
**差错控制 :传输过程中可能会产生比特差错:1 可能会变成 0 而 0 也可能变成 1。 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。
误码率与信噪比有很大的关系。 为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检测措施。 数据链路层不纠错,错误就抛弃;
说明:在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。 循环冗余检验 CRC 和帧检验序列 FCS并不等同。 CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。 FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的唯一方法。
3.1.3两种情况下的数据链路层
**使用点对点信道的数据链路层
现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。 用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议
PPP 协议有三个组成部分
a.数据链路层协议可以用于异步串行或同步串行介质。
b.它使用LCP(链路控制协议)建立并维护数据链路连接。
c.网络控制协议(NCP)允许在点到点连接上使用多种网络层协议,如图所示。
**使用广播信道的数据链路层
3.1.4以太局域网(以太网)
扩展以太网使用一下设备:
从物理层考虑:集线器--半双工(CSMA/CD)
用集线器扩展局域网优点
使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。 扩大了局域网覆盖的地理范围。
用集线器扩展局域网缺点
碰撞域增大了,但总的吞吐量并未提高。 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
从数据链路层考虑:使用网桥扩展以太网(现在没有网桥了,直接使用交换机了,网桥是交换机的前身)--全双工
在数据链路层扩展局域网是使用网桥。 网桥工作在数据链路层,它根据 MAC 帧的目的地址对收到的帧进行转发。 网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口
好:
过滤通信量。
扩大了物理范围。
提高了可靠性。
可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网。
坏:
存储转发增加了时延。
在MAC 子层并没有流量控制功能。
具有不同 MAC 子层的网段桥接在一起时时延更大。
网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴。
高速以太网