概述
数据链路层属于计算机网络的底层。使用的信道主要有以下两种类型
- 点对点信道。这种信道使用一对一的点对点的通信方式。
- 广播信道。使用一对多的广播通信方式。
本章重要内容:
(1)数据链路层的点对点信道和广播信道的特点。以及这两种信道所使用的协议(PPP协议以及CSMA/CD协议)的特点。
(2)数据链路层的三个基本问题:封装成帧、透明传输和差错检测。
(3)以太网MAC层的硬件地址。
(4)适配器,转发器,集线器,网桥,以太网交换机的作用以及使用场合。
数据链路和帧
链路(link)是从一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换结点。在进行数据通信,两个计算机之间的通信路径往往要经过许多段这样的链路,链路是一条路径的组成部分。
数据链路(data link)。在一条线路上传送数据时,除了有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。把实现这些协议的硬件和软件加到链路上,就构成了数据链路。常用网络适配器来实现这些协议。
早期的数据通信协议叫作通信规程(procedure),在数据链路层,规程和协议是同义词。
帧——点对点信道的数据链路层的协议数据单元。
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。
点对点信道的数据链路层在进行通信时的主要步骤:
(1)结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧。
(2)结点A把封装好的帧发送给结点B的数据链路层。
(3)若结点B的数据链路层收到的帧无差错,则从收到的帧中提取IP数据报上交给上面的网络层;否则丢弃这个帧。
三个基本问题
1.封装成帧(framing)
封装成帧是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部标记,从收到的比特流中识别帧的开始和结束。
一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。首部和尾部的一个重要作用就是进行帧定界(即确定帧的界限)。为了提高帧的传输效率,应当使帧的数据部分长度尽可能地大于首部和尾部的长度。每一种链路层协议都规定了所能传送的帧的数据部分长度上限——最大传送单元MTU(Maximum Transfer Unit)。
2.透明传输
由于帧的开始和结束的标记是使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则就会出现帧定界的错误。
当传送的帧是用文本文件组成的帧时,其数据部分不会出现SOH或EOT这样的帧定界控制字符。这样的传输就是透明传输。
为了解决透明传输问题,必须设法使数据中可能出现的控制字符“SOH”和“EOT”在接收端不被解释为控制字符。具体方法:发送端的数据链路层在数据中出现的控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”。而在接收端的数据链路层再把数据送往网络层之前删除这个插入的转义字符。称为字节填充(byte stuffing)或字符填充(character stuffing)
3.差错检测
现实的通信链路不会是理想的,比特在传输过程中可能会产生差错,1变0,0变1,叫做比特差错。
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate)。提高信噪比可以使误码率减小。
目前在数据链路层广泛使用了循环冗余检验CRC(Cyclic Redundancy Check)的检错技术。
另一类传输差错是收到的帧并没有出现比特差错,但却出现了帧丢失,帧重复或帧失序。属于传输差错。
在数据链路层使用CRC检验,能够实现无比特差错的传输,但这还不是可靠传输。
在数据链路层传输数据时出现了差错并且需要进行改正,那么改正差错的任务就由上层协议(例如,运输层的TCP协议)来完成。
点对点协议PPP
PPP协议就是用户计算机和ISP进行通信时所使用的数据链路层协议。
1.PPP协议应满足的需求:
(1)简单
(2)封装成帧
(3)透明性
(4)多种网络层协议
(5)多种类型链路
(6)差错检测
(7)检测连接状态
(8)最大传送单元
(9)网络层地址协商
(10)数据压缩协商
2.PPP协议的组成
(1)一个将IP数据报封装到串行链路的方法。PPP支持异步链路(无奇偶检验的8比特数据),也支持面向比特的同步链路。
(2)一个建立,配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)。
(3)一套网络控制协议NCP(Network Control Protocol)其中的每一个协议支持不同的网络协议,如IP、OSI的网络层、DECnet、以及AppleTalk等。
3.PPP协议的帧格式
PPP帧的首部和尾部分别为四个字段和两个字段。
首部的第一个字段和尾部的第二个字段都是标志字段F(Flag),首部中地址字段A,控制字段C,第四字段是2字节的协议字段。尾部中的第一字段(2字节)是使用CRC的帧检验序列FCS。
4.PPP协议的工作状态
PPP链路的起始和终止状态为“链路静止”,这时在用户PC和ISP的路由器之间不存在物理层的连接。当用户PC通过调制解调器呼叫路由器时(通常是在屏幕上用鼠标点击一个连接按钮),路由器就能够检测到调制解调器发出的载波信号。在双方建立了物理层连接后,PPP就进入“链路建立”状态,目的是建立链路层的LCP连接。
这时LCP开始协商一些配置选项,即发送LCP的配置请求帧(Configure Request)。
LCP配置选项包括连路上的最大帧长、所使用的鉴别协议(authentication Protocol)的规约,以及不使用PPP帧中的地址和控制字段。
协商结束后双方建立了LCP链路,进入“鉴别”状态,这一状态,只允许传送LCP协议的分组、鉴别协议的分组以及检测链路质量的分组。
若鉴别失败,则转到“链路终止”(Link Terminate)状态。若鉴别成功,进入“网络层协议”(Network-Layer Protocol)状态。
当网络层配置完毕后,链路就进入可进行数据通信的“链路打开”(Link Open)状态。链路的两个PPP端点可以彼此向对方发送分组。两个PPP端点还可以发送回送请求LCP分组(Echo-Request)和回送回答LCP分组(Echo-Reply),以检查链路的状态。
数据传输结束后,可以由链路的一端发出终止请求LCP分组请求终止链路连接,在收到对方发来的终止确认LCP分组后,转到“链路终止”状态。如果链路出现故障,也会转到“链路终止”状态。当调制调节器的载波停止后,则回到“链路静止”状态
使用广播信道的数据链路层
1.局域网的数据链路层
特点:网络为一个单位所拥有,且地理范围和站点数目均有限。
共享信道考虑用户合理共享通信媒体资源。两种技术方法:
(1)静态划分信道
(2)动态媒体接入控制,又称为多点接入(multiple access),特点是信道并非在用户通信时固定分配给用户。这里分为两类:
- 随机接入
- 受控接入
2.适配器的作用
计算机与外界局域网的连接是通过通信适配器(adapter)。
适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。
因此,适配器一个重要功能就是要进行数据串行传输和并行传输的转换。
CSMA/CD协议
总线的特点:当一台计算机发送数据时,总线上的所有计算机都能检测到这个数据。这是广播通信方式。
我们并不总是要在局域网进行一对多的广播通信。为了在总线上实现一对一的通信,可以使每一台计算机的适配器拥有一个与其他适配器都不同的地址。在发送数据帧时,在帧的首部写明接收站的地址。仅当数据帧中的目的地址与适配器ROM中存放的硬件地址一致时,该适配器才能接收这个数据帧。适配器对不是发送给自己的数据帧就丢弃。这样广播特性的总线上就实现了一对一的通信。
为了通信简便,以太网采取以下两种措施:
- 采用较为灵活的无连接的工作方式,不必先建立连接就可以直接发送数据。适配器对发送的数据帧不进行编号,也不要求对方发回确认。
在同一时间只能允许一台计算机发送数据,一旦发现冲突,必须停止发言,等没人发言再发言。使用的协议是CSMA/CD,意思是载波监听多点接入/碰撞检测(Carrier Sense Multiple Access with Collision Detrction)。 - 以太网的发送的数据都使用曼彻斯特(Manchester)编码的信号。
CSMA/CD协议的要点
- 多点接入,许多计算机以多点接入的方式连接在一根总线上。
- 载波监听,检测信道。
- 碰撞检测,即边发送边监听,适配器边发送数据边检测信道上的信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。
在使用CSMA/CD协议时,一个站不可能同时进行发送和接收(但必须边发送边监听信道)。因此视同CSMA/CD协议的以太网不可能进行全双工通信而只能进行双向交替通信(半双工通信)。
综上,CSMA/CD协议的要点归纳如下:
(1)准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。但在发送之前,必须先检测信道。
(2)检测信道:若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
(3)在发送过程中仍不停的检测信道,即网络适配器要边发送边监听。这里有两种可能性:
- 发送成功:在争用期内一直未检测到碰撞。这个帧能够发送成功。发送完毕后,其他什么也不做。然后回到(1)。
- 发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着执行指数退避算法,等待r倍512比特时间后,返回到步骤(2),继续检测信道。若重传达16次仍不能成功,则停止重传而向上报错。
使用广播信道的以太网
使用集线器的星形拓扑,集线器一些特点:
(1)使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议。
(2)一个集线器有许多接口。很像一个多接口的转发器。
(3)集线器工作在物理层,它的每个接口仅仅简单地转发比特,不进行碰撞检测。
(4)集线器采用了专门的芯片,进行自适应串音回波抵消。
以太网的MAC层
1.MAC层的硬件地址
在局域网中,硬件地址又称为物理地址或MAC地址(因为这种地址用在MAC帧中)。
“名字指出我们所有寻找的那个资源,地址指出那个资源在何处,路由告诉我们如何到达该处。”
2.MAC帧的格式
常用的以太网MAC帧格式有两种标准,一种是DIX EthernetV2标准,另一种是IEEE的802.3标准。
- 以太网V2的MAC帧由五个字段组成。前两个字段分别为6字节长的目的地址和源地址字段。第三个字段是2字节的类型字段用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。第四个字段是数据字段。最后一个字段是4字节的帧检验序列FCS(使用CRC检验)。
- IEEE802.3标准规定出现下列情况之一即为无效的MAC帧:
- 帧的长度不是整数个字节。
- 用收到的帧检验序列FCS查出有差错。
- 收的帧的MAC客户数据字段的长度不在46~1500字节之间。考虑MAC帧首部和尾部的长度共有18字节,可以得出有效的MAC帧长度为64 ~ 1518字节之间。
在数据链路层扩展以太网
使用网桥(bridge)。网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发和过滤。当网桥接收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。好处:
- 过滤通信量,增大吞吐量。
- 扩大了物理范围。
- 提高了可靠性。
- 可互连不同物理层、不同MAC子层和不同速率的以太网。
概念补充:
- 数据链路层使用的信道主要有点对点信道和广播信道两种。
- 循环冗余检验CRC是一种检错方法,而帧检验序列FCS是添加在数据后面的冗余码。
最后
以上就是乐观钥匙为你收集整理的《计算机网络》数据链路层的全部内容,希望文章能够帮你解决《计算机网络》数据链路层所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复