本篇文章的重点:
(1)数据链路层的点对点信道和广播信道的特点,以及这两种信道所使用的协议(PPP协议以及CSMA/CD协议)的特点。
(2)数据链路层的三个基本问题:封装成帧、透明传输和差错检测。
(3)以太网MAC层的硬件地址。
1、使用点对点信道的数据链路层
1.1、基本概念
首先要明确“链路”和“数据链路“并不是一回事。
链路:从一个结点到相邻结点的一段物理路线(有线或无线),而中间没有任何其他的交换结点。
数据链路:链路+通讯协议。这是因为当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通讯协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。(现在最常使用的方法是使用网络适配器(既有软件又有硬件)来实现这些协议)
(注:把链路分为物理链路和逻辑链路。物理链路就是上面所说的链路,而逻辑链路就是上面的数据链路,是物理链路加上必要的通讯协议)
帧:数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。
1.2、三个基本问题
封装成帧、透明传输和差错检测
1.2.1、封装成帧
封装成帧:在一段数据的前后分别添加手部和尾部。
分组交换的一个重要概念:所有在因特网上传送的数据都是以分组(即IP数据报)为传送单位。
网络层的IP数据报传送到数据链路层就成为帧的数据部分。在帧的数据部分的前面和后面分别添加上首部和尾部,构成了一个完整的帧。这样的帧就是数据链路层的数据传送单元。
1.2.2、透明传输
首先要明确这样一个概念:由于帧的开始和结束的标记是使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的编码一样,否则就会出现帧定界错误。
而”透明传输“的意思是:无论什么样的比特组合的数据都可以进行传输。
为了解决透明传输的问题,就必须设法使数据中可能出现的控制字符”SOH“和”EOT“在接收端不被解释为控制字符。具体的方法是:发送端的数据链路层在数据中出现控制字符的前面加上一个转义字符。而在接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。如果转义字符也出现在数据当中,那么解决方法仍然是在转义字符的前面插入一个转移字符。因此,当接收端收到连续的两个转义字符时,就删除其中前面一个。
1.2.3、差错检测
比特在传输过程中可能会产生差错:1可能变成0,0可能变成1。
目前在数据链路层广泛使用了循环冗余检验CRC的检错技术。
为了检错而添加的冗余码常被称为帧检验序列FCS。
在数据链路层,发送端帧检验序列FCS的生成和接收端CRC检验都是用硬件完成的,处理很迅速,因此不会延误数据的传输。
注:关于具体的FCS的生成和CRC怎么检错感兴趣的朋友可以自己去了解一下,这里就不再赘述了。
1.3、点对点协议PPP
我们知道因特网用户通常都要连接到某个ISP才能接入因特网。PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议。
PPP协议的组成:
1一个将IP数据报封装到串行链路的方法。
(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP
(3)一套网络控制协议NCP,起重每一个协议支持不同的网络层协议,如IP、OSI的网络层、DECnet,以及AppleTalk等。
2、使用广播信道的数据链路层
广播信道可以一对多进行通信。局域网使用的就是广播通信。局域网在计算机网络中占有非常重要的地位。
2.1、局域网的数据链路层
2.1.1、以太网的两个标准
逻辑链路控制LLC和媒体接入控制MAC。
2.1.2、适配器的作用
首先,我们从一般概念上讨论一下计算机是怎样连接到局域网上的。
计算机与外界局域网的连接是通过通信适配器(adapter)。适配器本来是在主机箱内插入的一块网络接口板(现在计算机主板上已经嵌入这种适配器,不再使用单独的网卡了)在适配器上面装有处理器和存储器(包括RAM和ROM)适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。因此,适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。
注:适配器的内容虽然放在数据链路层中,但适配器所实现的功能却包含了数据链路层以及物理层这两层次的功能。
2.1.3、CSMA/CD协议
最早的计算机是将许多计算机连接到一根总线上。
总线的特点是:当一台计算机发送数据时,总线上所有的计算机都能检测到这个数据,这种就是广播通信的方式。但我们并不总是要在局域网上进行一对多的广播通信。为了在总线上实现一对一的通信,可以使每一台计算机的适配器拥有一个与其他适配器都不相同的地址。在发送数据帧时,在帧的首部写明接收站的地址。仅当数据帧中的目的地址与适配器ROM中存放的硬件地址一致时,改适配器才能接收到这个数据帧。
为了通信的简便,以太网采取一下两种措施:
(1)采用较灵活的无连接的工作方式,即不必先建立连接姐可以发送数据。
(2)以太网发送的数据都是用了曼砌特编码的信号。
可以把CSMA/CD协议的要点归纳如下:
(1)准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧。放入适配器的缓存中。但在发送之前一定要先检测信道。
(2)检测信道:若检测到信道忙,则应不停的检测,一直等到信道转为空闲。若检测
2.2、以太网的MAC层
2.2.1、MAC层的硬件地址
在局域网中,硬件地址又称为物理地址或MAC地址(因为这种地址用在MAC中)。
在所有计算机系统的设计中标识系统都是一个核心的问题。
”名字(MAC地址)指出我们所要寻找的那个资源,地址(IP地址)指出那个资源在何处,路由告诉我们如何到达该处。“
有的人可能会好奇有了IP,还要MAC干什么?
只用IP定位虽然简单,但有时却不够准确。严格来讲,名字应该与系统所在地无关。
(1)假定连接在局域网上的一台计算机的适配器坏了而我们更换了一个新的适配器,那么这台计算机的局域网的”地址“也就改变了,如果你只用ip来寻找路径的话,还会将数据交给这个地理位置的这台机器,这就会出现问题。
(2)假定我们把位于南京的某局域网上的一台笔记本电脑携带到北京,并连接在北京的某局域网上。虽然这台电脑的地理位置改变了,但只要电脑中的适配器不变,那么该电脑在北京的局域网中的”地址“仍然和它在南京的局域网中的”地址“一样。
可以这样类比,IP好比你的居住地址,MAC好比你的名字。快递寄到你的居住地址肯定还要核对一下你的名字,比如你搬走了这个房子换了另外一个人居住,他肯定就不能接收你的快递(因为名字不一样)。
2.2.2、MAC帧的格式
常见的MAC帧格式有两种,一种是DIX Ethernet V2标准,另一种是IEEE的802.3标准。
以太网V2标准由五个字段组成:
前两个字段分别为6字节长的目的地址和源地址字段。第三个字段是2字节的类型字段,用来标识上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。第四个字段是数据字段,最后一个字段是4字节的帧检验序列FCS(使用CRC检验)。
下一节主要总结一下:
(1)如何通过网桥和交换机在数据链路层对以太网进行扩展。
(2)交换机和路由器的区别。