文章目录
本章概要(最重要内容,数据链路层的地位):
数据链路层使用的信道有:
- 点对点信道:这种信道使用的是一对一的点对点通信方式。
- 广播信道:一对多的广播信道方式。由于广播信道上有许多主机,因此必须使用专门的共享信道协议来协调这些主机的数据发送。
本章的主要内容:
- 点对点信道和广播信道的特点,以及这两个信道所使用的协议(PPP、CSMA/CD)的特点。
- 数据链路层的三个问题:封装成帧、透明传输、差错校验。
- 以太网MAC层的硬件地址。
- 适配器、转发器、集线器、网桥、以太网交换机的作用以及使用场合。
数据链路层在五层体系模型中的低位如图所示:
一、使用点对点信道的数据链路层
本节要讨论以下问题:
什么是数据链路、帧、数据链路层的作用、三层简化模型、点对点信道的数据链路层通信时的步骤。三个基本问题(封装成帧、透明传输、差错校验)
数据链路:链路是一个结点到另一个结点之间的物理线路,而中间灭有其他交换结点。当传输数据时,还需要一些必要的通信协议来控制数据传输。因此,链路加上通信协议就是数据链路。
帧:数据链路层的协议数据单元为帧。数据链路层将网络层下发的IP数据报封装成帧。
三层简化模型:任何一条数据链路上(不管是主机和路由器之间,还是连个路由器之间),都可以用该模型表示。如图1-1:
数据链路层的点对点信道通信的步骤如下(参照图 1-1 ):
- 节点A的数据链路层将网络层下发的IP数据报封装成帧。
- 结点A通过物理层将帧传输给结点B。
- 若结点B的数据链路层收到的帧无差错(比特差错、传输差错),则将提取到的IP数据报交给网络层。
数据链路层可以不用考虑物理层如何进行比特传输。
1.1 封装成帧
封装成帧,就是将网络层下发的IP数据报封装成帧。帧的结构如图1-2所示:
一个帧的前面部分是帧首部,用一个控制字符SOH,后面部分是帧尾部,用EOH表示。如图1-3所示:
为什么要封装成帧?是为了让数据链路层从物理层的比特流中识别帧的开始和结束。
1.2 透明传输
透明传输,就是在进行数据传输时,就好像数据链路层不存在一样,数据链路层并不妨碍数据传输的东西。
这里需要考虑一个问题,当我们的数据部分出现帧开始符和帧结束符时就会发生异常。解决方法是添加转义字符"ESC"。如图1-4 所示:
1.3 差错校验
在传输过程中,可能出现差错。分为:
- 比特差错:即0变成1,1变成0.
- 帧丢失。
- 帧重复
- 帧失序。
对于比特差错,可以使用循环冗余校验CRC。将数据进行分组,每组k个比特,如M=101001,在其后面加上n个0,去除以一个约定好的n+1位除数P(如p=1101),得到n位冗余码,将这n为冗余码加在M后面,得到k+n的序列(如101001001)。
冗余码的求法如图 1-5所示:
注意,用模2运算进行加法是不进位。减法和加法一样
现在,当接收端收到加上帧校验序列001后的新序列101001001时,将其除以P:
- 若没发送比特差错,余数一定为0
- 否则,判断帧有比特差错,丢弃。
在数据链路层使用CRC循环冗余校验能实现无比特差错,但这还不是可靠传输,因为还可能存在其他传输差错。
二、点对点协议PPP
点对点协议PPP(Point to Point Protocol)是用户计算机和ISP进行通信是使用的数据链路层协议。如图2-1所示:
点对点协议的组成:
- 一个将IP数据报封装到串行链路的方法。异步链路逐个字符传输,使用字节填充;同步链路是一连串的比特连续传送,采用零比特填充。
- 链路控制协议LCP(Link Control Protocol),是一个用来建立、配置和测试数据链路连接的协议。
- 网络控制协议NCP(Network Control Protocol)。由于网络层能够支持多种网络层协议,所以NCP中的每一个协议支持不同的网络层协议。
PPP协议的工作状态,如图2-2 所示:
PPP点对点协议的特点:
- 简单。相比于高级数据链路控制HDLC(High-level Data link Control)。
- 只检测差错,而不进行纠正。CRC循环冗余校验。
- 不使用序号,也不进行流量控制。
- 可同时支持多种网络协议。因为有NCP协议的存在。
三、使用广播信道的数据链路层
广播信道需要考虑一个问题,如何使众多用户能够合理而方便地共享通信媒体。这里有两种技术:
- 静态划分信道。如频分复用、时分复用、波分复用、码分复用等。
- 动态媒体接入控制。其特点是并非在用户通信时将信道固定分配给用户。这右可分为随机接入和受控接入。
以太网有两个标准——DEC公式、英特尔公式和施乐公司提出的DIX Ethernet V2 标准和IEEE 802 委员会提出的IEEE 802.3标准。由于有关厂商在商业上的激烈竞争,IEEE 802委员会无法形成一个统一的以太网标准,因此将数据链路层分为两个子层:逻辑链路控制LLC(Logical Link Control)与媒体接入控制层MAC(Medium Access Control)。如图3-1 所示:
适配器(网卡上面)的作用:适配器和局域网通过电缆或双绞线、WiFi进行串行通信,而适配器与计算机之间通过计算机主板上的I/O总线以并行方式进行通信。由于网络的数据率和计算机总线上的数据率不一样,所以需要适配器上有可以缓存的存储芯片,进而需要驱动程序对这个存储芯片进行管理。图3-2是计算机通过适配器和局域网进行通信的示意图:
3.1 CSMA/CD协议
为了使广播通信简便。以太网常采用以下两种措施:
- 采用无连接的工作方式。即不必先建立连接就可以直接发送数据。
- 以太网发送的数据使用曼彻斯特编码。这是因为二进制基带数字信号通常就是高、低电压交替出现的信号。当出现一连串的1或0时,接受端无法从比特流中提取出信号。曼彻斯特编码如图3-3所示:
由于广播通信采用的是动态媒体接入的随机接入,所以中的总线在同一时间只能允许一台计算机发送数据,这时就需要载波监听多点接入/碰撞检测CSMA/CD协议来减少冲突了。该协议类似于一个屋子里面正在开讨论会,没有会议主持人控制发言。想发言的人随时可以发言,不需要举手。但这里有个问题,当同时有多个人发言时,就发生了冲突。CSMA/CD就是用来解决这个冲突的。
如果你听见有人在发言时,那么你必须等别人讲完才能发言(否则就干扰了别的发言)。但同时有多个人发言时,那么一旦发现冲突,大家都必须立即停止发言,等听到没有人发言了你再发言。
CSMA/CD协议的要点:
- 多点接入。说明广播通信是总线型网络,许多计算机以多点接入方式连接在总线上。图3-4 是总线型网络示意图。
- 载波监听。不管在发送前,还是在发送中,每个站都必须不停地检测信道。在发送前检测是为了获得发送权;在发送中检测,是为了发现是否和其他站发生了碰撞(碰撞检测)。
- 碰撞检测。也就是边发送,边监听。即发送中检测。
图3-5 是碰撞检测示意图。其中π是传播时延。使用CSMA/CD协议时,一个站不能同时进行发送和接收。所以使用CSMA/CD协议的以太网是半双工通信。在发送数据帧至多进过2π就可知发送的数据帧是否发生了碰撞。该2π就称为争用期,又被称为碰撞窗口。以太网使用截断二进制指数退避算法来确定碰撞后重传时机。
其实,当发送数据的站发现发生了碰撞时,便会发送人为干扰信号,以便用户都知道现在发送了碰撞。这就是强化碰撞。
四、使用广播信道的以太网
4.1 使用集线器的星型拓扑
使用集线器的星型拓扑图如图4-1所示。
集线器的一些特点如下:
- 总线网。虽然使用集线器的网络是星型的,然而集线器是使用子器件来模拟实际电缆的工作的,所以整个网络还是一个总线网。也就是说使用集线器的网络使用的还是载波监听多点接入/碰撞检测CSMA/CD协议。
- 集线器和适配器是通过两对双绞线连接的。如图4-2所示。
4.2 以太网的MAC层
前面图3-1所示,数据链路层被分为两个子层:逻辑链路控制LLC(Logical Link Control)与媒体接入控制层MAC(Medium Access Control)。MAC又叫做物理地址或硬件地址,它是固化在ROM中的地址。
适配器有过滤功能。适配器从网络上没收到一个MAC帧就先用硬件检查MAC帧中的目的地址。如果是发往本站的帧则收下,否则将此帧丢弃。发往本站的帧有一下三种:
- 单播帧(一对一)。即收到的帧的MAC地址与本站的硬件地址相同。
- 广播帧(一对全体)。即发送给本局域网上所有站点的帧。
- 多播帧(一对多)。即发送给本局域网上一部分站点的帧。
以太网适配器有一种工作模式——混杂模式。处于混杂模式的适配器只要听到有帧在以太网上传输就悄悄地接收起来,而不管这些帧是发往哪个站。混杂模式的一个应用就是嗅探器。
以太网V2的MAC帧格式如图4-3 所示。
其中,目的地址、源地址都是MAC地址,第三个字段表明MAC帧的类型,数据部分用来封装网络层下发的IP数据报,FCS部分存放帧校验序列(用来进行CRC校验)。
五、扩展的以太网
扩展的以太网意思是把以太网的覆盖范围扩展。
5.1 在物理层扩展以太网
在物理层扩展以太网的一种简单方法:使用光纤和一对光纤调制解调器。如图5-1所示。
光纤解调器的作用就是进行光信号和电信号的转换。
然而,这种方法存在一些缺点。用一个例子举例,如一个学院的三个系各有10BASE-T以太网如图5-2(a),可头脑特工队一个主干集线器把各个系的以太网连接起来,称为一个更大的以太网。
- 最大吞吐量不变。当某个系的两个站在通信时所传送的数据会通过所有的集线器进行转发,使得其他系的内部在这时就不能通信。
- 如果不同的系使用不同的以太网技术(如数据率不同),那么就不可能用集线器将他们互联起来。因为集线器不会把帧进行缓存,可能会存在帧丢失。
5.2 在数据链路层扩展以太网
在数据链路层扩展以太网使用的是网桥。网桥是工作在数据链路层的,它的作用是根据MAC帧的目的地址对收到的帧进行转发和过滤。网桥的工作原理如图5-3所示。
- 扩大了物理范围。使得整个以太网上工作站的数据增加了。
- 可互联不同速率的以太网,不同MAC子层,不同物理层
当然,网桥也有一些缺点:
- 增加时延。由于需要网桥进行存储转发,所以增加了时延。
- 在MAC层并没有流量控制功能。当网络符合过重,网桥中的缓存的存储空间会因为不够而溢出。
- 网桥只适合用户数不太多和通信量不太大的以太网。否则可能因为传播过多的广播信息造成网络拥塞,这就是所谓的广播风暴。
5.2.1 透明网桥
目前使用最多的网桥是透明网桥,透明的意思是以太网的站点并不知道所发送的帧经过了哪几个网桥,以太网的站点看不见以太网上的网桥。网桥刚开始连接到以太网时,转发表是空的。网桥是通过自学习算法逐步建立转发表的。网桥的自学习和转发过程如下图5-5所示。
透明网桥还通过生成树算法保证网络中不存在回路,即两个站之间只有一条路径。这样可以避免转发的帧在整个网络中兜圈子。如图5-6所示。
源路由网桥。是通过广播方式发送一个目的帧,从而找寻从源地址都目的地址最佳的路由。
5.2.2 多接口网桥——以太网交换机
以太网交换机有被称为交换式集线器。他也是工作在数据链路层的。它的实质就是一个多接口的网桥。它的每个接口都直接与一个单个主机或另一个集线器相连,并且一般工作在全双工模式下。当主机通信时,交换机能同时连通许多对的接口,使每一对相互通信的主机都能像独占传输媒体那样,无碰撞地传输数据。
以太网交换机能够很方便的实现虚拟局域网VLAN。
图5-7中,虚线内的主机分别为一个工作组。虚拟局域网限制了接受广播信息的工作站的数目,因而避免了广播风暴。
六、高速以太网
速率达到或超过100Mb/s的以太网称为高速以太网。
100BASE-T的一种方法时,使用一个100Mb/s的集线器和适配器。当然也可以采用交换式集线器(如果交换式集线器采用的是全双工,那么就不使用CSMA/CD协议;如果采用的是半双工,那么一定采用的是CSMA/CD协议)。
吉比特以太网,为了让a(以太网单程端到端时延π与帧发送时间T0的比值:π/T0)保持不变,要么是增大帧的最小长度,要么是减小最大电缆长度。然而,这样减小最大电缆的长度会使网络的实际价值大大减少;增大帧的最小长度会使发送短数据时开销增大。因而采用了载波延伸与分组突发技术。
载波延伸:其实我感觉就是增大帧的最小长度。只不过使用了分组突发技术对这个缺点进行了优化。
分组突发:当有很多短帧要发送时,第一个短帧采用载波延伸方式填充,随后的一些短帧则一个接一个的发送(在争用期没有发生碰撞,那后续发送的数据就一定不会冲突)
10吉比特和100吉比特的以太网都只工作在全双工方式下,所以不使用CSMA/CD协议。
参考文献
计算机网络(第六版 谢希仁)第三章