第三章节

数据链路层属于计算机网络的低层,数据链路层使用的信道主要有以下两种类型:

(1)点对点信道:这种信道使用一对一的点对点通信方式。

(2)广播信道:这种信道使用一对多的广播通信的方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机数据的发送。

局域网虽然是一个网络,但是并不将它放在网络层进行讨论。这是因为网络层讨论的问题是多个网络互连的问题,是讨论分组怎样从一个网络通过路由器,转发到另一个网络种。本章研究的是在同一个局域网中,分组怎样从一台主机传送到另一台主机,但并不经过路由器的转发。从整个互联网来看,局域网仍然属于数据链路层的范围

本章的重要内容是:

(1)数据链路层的点对点信道和广播信道的特点,以及这两种信道所使用的协议(PPP协议和CSMA/CD协议)的特点。

(2)数据链路层的三个基本问题:封装成帧、透明传输、差错检错。

(3)以太网MAC层的硬件地址。

(4)适配器、转发器、集线器、网桥、以太网交换机的作用以及使用场合。

第三章 数据链路层

两台主机在进行通信时候数据链路层所处的地位

主机H1和主机H2都有完整的五层协议栈,但是在路由器转发分组的时候所使用的协议栈只有下三层。

3.1 数据链路层的几个共同问题

3.1.1 数据链路和帧

(1) 链路:就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他交换结点。
(2)数据链路:是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路。常用的方法是使用网络适配器(既有硬件同时也包括软件)来实现这些协议。

下面再介绍点对点信道的数据链路层的协议数据单元——帧。

数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。在互联网中,网络层协议数据单元就是IP数据报(或简称为数据报、分组或包)。

为了把主要精力放在点对点信道的数据链路层协议上,可以采用如图3-3(a)所示的三层模型。在这种三层模型中,不管在哪一段链路上的通信(主机和路由器之间或两个路由器之间),我们都看成是节点和节点的通信(如图中的节点A和节点B),而每个节点只有下三层——网络层、数据链路层和物理层。

点对点信道的数据链路层在进行通信时的主要步骤如下:

(1)节点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。

(2)节点A把封装好的帧发送给节点B的数据链路层。

(3)若节点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报交给上面的网络层;否则丢弃这个帧。

数据链路层不必考虑物理层如何实现比特传输的细节。我们甚至还可以更简单地设想好像是沿着两个数据链路层之间的水平方向把帧直接发送到对方,如图3-3(b)所示。

3.1.2 三个基本问题

封装成帧、透明传输、差错检错

1、封装成帧

封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。图3-4表示用帧首部和帧尾部封装成帧的一般概念。我们知道,分组交换的一个重要概念就是 : 所有在互联网上传送的数据都以分组(即IP数据报)为传送单位。网络层的IP数据报传送到数据链路层就成为帧的数据部分。在帧的数据部分的前面和后面分别添加上首部和尾部,构成了一个完整的帧。这样的帧就是数据链路层的数据传送单元。一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。此外,首部和尾部还包括许多必要的控制信息。在发送帧时,是从帧首部开始发送的。各种数据链路层协议都对帧首部和帧尾部的格式有明确的规定。显然,为了提高帧的传输效率,应当使帧的数据部分长度尽可能地大于首部和尾部的长度。但是,每一种链路层协议都规定了所能传送的帧的数据部分长度上限最 大传送单元MTU (Maximum Transfer Unit)。图3-4给出了帧的首部和尾部的位置,以及帧的数据部分与MTU的关系。

2、透明传输

我们在传输信息中会遇到这么一个问题:

如果说我们对传输的信息有要求,要求信息中不能存在帧定界符,这其实就是不透明传输。不透明传输其实没有什么意义的,对于传输的信息内容都有要求的话,那么我们还能传输什么信息呢?所以我们就要求透明传输。

透明传输:是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。也就是说:数据链路层传送的比特组合必须是不受限制的。那么我们怎么样才能实现透明传输的问题呢?

(1)面向字节的物理链路使用字节填充(或称字符传输)的方法实现透明传输。
(2)面向比特的物理链路使用比特填充的方法实现透明填充。

例如使用采用字节填充法解决透明传输的问题

(1)字节填充或字符填充——发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”。
(2)接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。
(3)如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

3、差错检错

循环冗余检验

3.2 点对点协议ppp

3.2.1 PPP协议的特点

1. PPP协议应该满足的需求

(1)简单

(2)封装成帧:PPP协议必须规定特殊的字符作为帧定界符(即标志一个帧的开始和结束的字符),以便使接收端从收到的比特流中能准确地找出帧的开始和结束位置。

(3) 透明性:PPP协议必须保证数据传输的透明性。这就是说,如果数据中碰巧出现了和帧定界符样的比特组合时,就要采取有效的措施来解决这个问题(见3.22节)。

(4)多种网络层协议:PPP协议必须能够在同一条物理链路上同时支持多种网络层协议(如IP和IPX等)的运行。当点对点链路所连接的是局域网或路由器时,PPP协议必须一同时支持在链路所连接的局域网或路由器士运行的各种网络层协议。

(5)多种类型链路:除了要支持多种网络层的协议外,PPP 还必须能够在多种类型的链路上运行。例如,串行的(一次只发送一个比特)或并行的(-次并行地发送多个比特),同步的或异步的,低速的或高速的,电的或光的,交换的(动态的)或非交换的(静态的)点对点链路。

(6)差错检错

(7)检测连接状态

(8)最大传送单元

(9)网络层地址协商

(10)数据压缩协商

2. PPP协议的组成

(1)一个将IP数据报封装到串行链路的方法。PPP 既支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。IP数据报在PPP帧中就是其信息部分。这个信息部分的长度受最大传送单元MTU的限制。

(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP(LinkControlProtocol)。通信的双方可协商-些选项。 在RFC 1661中定义了11种类型的 LCP分组。

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

3.2.2 PPP协议的帧格式

1.各个字段的意义

PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分构成:

(1)对各种协议数据报的封装方法(封装成帧);
(2)链路控制协议LCP:用于建立,配置以及测试数据链路的连接;
(3)一层网络控制协议NCPs:其中每一个协议支持不同的网络层协议;

首部

首部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的开始。

首部中的地址字段A规定为0xFF(即11111111)。

首部中的控制字段C规定为0x03(即00000011)。

首部中的2字节的协议字段:

信息字段

信息字段的长度是可变的,不超过1500字节

尾部

尾部中的第一个字段(2个字节)是使用CRC的帧检验序列FCS。

尾部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的结束。

2.字节填充

当信息字段中出现和标志字段一样的比特(0x7E)组合时,就必须采取一些措施使这种形式上和标志字段一样的比特组合不出现在信息字段中。也就是之前提到过的实现透明传输。

面向字节的异步链路

当PPP使用异步传输时,它把转移符定义为0x7D,并使用字节填充。

RFC1662规定了如下填充方法:

(1)把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)。

(2)若信息字段中出现一个0x7D的字节(即出现了和转义字符一样的比特组合),则把转义字符0x7D转变为2字节序列(0x7D,0x5D)。

(3)若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。例如,出现0x03(在控制字符中是“传输结束”ETX)就要把它转变为2字节序列的(0x7D,0x23)。

3.零比特填充

面向比特的同步链路

面向比特的同步链路我们一般使用比特填充法插入比特0。

零比特填充的具体方法:

(1)在发送端先扫描整个信息字段(通常使用硬件实现,但也可以用软件实现,但是会慢一些)。

(2)只要发现有5个连续的1,则立即填入一个0。

(3)接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对其中的比特流进行扫描,每当发现5个连续1时,就把5个连续1后的一个0删除,以还原成原来的信息比特流。

3.2.3 PPP协议的工作状态

image-20240307094034047

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

3.3.1 局域网的数据链路层

局域网的最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限

局域网具有如下优点:

(1)具有广播功能,从一个站点可以很方便的访问全网。局域网上的主机可以共享连接在局域网上的各种硬件和软件资源。

(2)便于系统的扩展和逐渐的演变,各个设备的位置可以灵活调整和转变。

(3)提高了系统的可靠性可用性和生存性。

3.3.2 CSMA/CD协议

(1)采用无连接的工作方式,以太网提供的服务是不可靠的交付,即最大努力的交付,当目的站收到有差错的数据帧就丢弃此帧,其他什么也不做。差错的纠正由高层决定。如果高层发现丢失了一些数据而进行重传,但是以太网并不知道这是一个重传的帧,而是当作一个新的数据帧来发送。

(2)以太网的发送数据都采用了曼彻斯特编码

  • CSMA/CD含义:载波监听多点接入/冲突检测

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

  • 载波监听,指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据。如果有,则暂时不要发送数据,以免发生碰撞。

  • 冲突检测,就是计算机边发送数据边检测信道上的信号电压大小。

    当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。 当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。

    image-20240313173859400

    显然在使用CSMA/CD协议时候,一个站不可能同时进行发送和接收(但是必须边发送边监听信道)。因此只能进行半双工通信

发生碰撞的站在停止发送数据之后,要推迟(退避)一个随机时间才能发送数据。

退避算法:
1.从[0,1,2, …,(2^k-1)]中随机选一个数,记为r。重传应在r倍争用期之后进行。k=Min[重传次数,10],即k小于10时为重传次数,最大不超过10 。
2.若重传超过16次还是不成功,则说明信道中数据过多,放弃重传,向高层报告。

但凡小于64字节的帧都是由于冲突而异常终止的无效帧。只要收到这种无效帧,就应当立即将其丢弃。

先听后发、边听边发、冲突停止、延迟重发。

3.4 扩展的以太网

3.4.1在物理层扩展以太网

1.1 使用光纤扩展

主机使用光纤和一对光纤调制解调器连接到集线器,很容易使主机和几公里以外的集线器相连接

1.2 使用集线器扩展

将多个以太网段连成更大的、多级星形结构的以太网,如某个部门有一系,二系,三系通过集线器扩展

优点:

1.使原来属于不同碰撞域的以太网上的计算机能够进行跨碰撞域的通信

2.扩大了以太网覆盖的地理范围。

缺点:

1.碰撞域增大了,但总的吞吐量并未提高。

2.如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来
碰撞域:碰撞域(collision domain)又称为冲突域,是指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络碰撞域越大,发生碰撞的概率越高

3.4.2 在数据链路层扩展以太网

  • 扩展以太网更常用的方法是在数据链路层进行
  • 早期使用网桥,现在使用以太网交换机

现在使用的方法是以太网交换机,以太网交换机通常都有十几个接口。因此,以太网交换机实质上就是一个多接口的网桥,可见交换机工作在数据链路层。以太网交换机的每个接口都直接与主机相连,并且一般都工作在①全双工方式,交换机能同时连通许多对的接口,使每一对相互通信的主机都能像独占通信媒体那样,进行无碰撞地传输数据,以太网交换机由于使用了专用的交换结构芯片,通过硬件来转发就比靠软件转发的网桥速度快得多,所以交换机的出现很快的就淘汰掉了网桥。

以太网交换机是一种即插即用的设备其内部的帧交换表(又称为地址表)通过自学习的算法自动逐渐建立的实际上这种交换表就是一个②内容可寻址存储器

物理层因为总线共享而造成的冲突在数据链路层因为交换机的①②两个特性得以解决

建立转发表是通过不断的发送广播来实现的,但是若有的网络为环形网络,此时这个数据帧会一直在网络在“转圈圈”,在透明网桥中,为了避免这个问题,引入了生成树算法,无环路的树状结构。

3.4.3 虚拟机局域网

虚拟局域网(Virtual Local Area Network,VLAN)是一组逻辑上的设备和用户,通过端口分配、MAC地址分配等方式将同一局域网内的主机划分为不同的区域(VLAN),不同区域之间的主机无法直接通信(即使它们都在同一个有线局域网中),而同一区域内的主机之间可以正常通信,这就好像一个局域网一样,因此叫做虚拟局域网。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点: 网络设备的移动、添加和修改的管理开销减少;可以控制广播活动;可提高网络的安全性。

  在计算机网络中,一个二层网络可以被划分为多个不同的广播域,一个广播域对应了一个特定的用户组,默认情况下这些不同的广播域是相互隔离的。不同的广播域之间想要通信,需要通过一个或多个路由器。这样的一个广播域就称为VLAN。

划分标准

  工作站到VLAN的映射有几种方法。通过端口、基于MAC地址是常见的划分标准。

VLAN标签

  当不同的VLAN中的站连接在同一交换机时,交换机确保流量不在两个VLAN之间泄漏,无论这些站使用哪种类型的以太网接口。当多个VLAN跨越多个交换机(中继)时,在以太网帧发送到另一台交换机之前,需要使用VLAN来标记该帧的归属。

数据链路层一旦划分了vlan标签之后就无法让A3、B4之间相互通信了。(数据链路层就无法解决了)


第三章节
http://example.com/2024/03/06/cn_数据链路层/
作者
nianjx
发布于
2024年3月6日
许可协议