数据链路层
计算机网络-数据链路层
Created: Sep 26, 2019 2:37 PM
作者: Tian Ling
标签: 数据链路层
邮箱: 397124194@qq.com
数据链路层
信道类型
点对点信道
广播信道
两台主机通信时,数据链路层所处的地位
注:路由器处于网络层
概念分辨
- 链路(link): 一个结点到相邻结点的一段物理线路(有线或无线),而中间没有任何其他的交换结点。链路只是一条路径的组成部分。
- 数据链路(data link): 当需要在一条线路上传送数据时,除了必须有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。
三个基本问题
1、封装成帧
在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。接受端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
注:分组交换的一个重要概念是: 所有在互联网上传送的数据都以分组(即IP数据报)为传送单位。网络层的IP数据报传送到数据链路层就成为了帧的数据部分。
注:帧是数据链路层的传输单元。 一个帧的帧长等于帧的数据部分长度加上帧首部和帧尾部的长度。
注: 每一种链路层协议都规定了所能传送的帧的数据部分长度上限—— 最大传送单元MTU
注: 当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。如下图
2、透明传输
由于帧的开始和结束的标记使用专门指明的控制字符,因此,所传输的数据中的任何8比特的组合一定不允许和用作帧定界的控制字符的比特编码一样,否则会出现定界错误。
出现的问题:当传送的帧是用文本文件组成的帧是,其数据部分显然不会出现帧定界控制字符; 但当数据部分是非ASCII码的文本文件时(如二进制代码的计算机程序或图像等),如果数据中某个字节的二进制代码恰好和SOH或EOT这种控制字符一样,就会发送定界错误。
解决方法:字节填充或字符填充
使数据中出现的控制字符“SOH”和“EOT”在接受端不被解使为控制字符。 具体: 在数据中出现的控制字符前面增加“ESC”;
3、差错检测
数据链路层广泛使用了循环冗余校验CRC
原理:假定待传送数据M=101001(k = 6), 需要添加n为冗余码;将M乘以2的n次方,相当于在M后面添加n个0。 再将这个数除以 收发双方事先商定的长度为(n+1)位的除数P,得到商Q 以及余数 R(n位,比P少一位);将R作为冗余码添加到M后面。
注:这种方法叫做 帧检验序列FCS。
注:循环冗余校验CRC和帧检验序列FCS并不是同一个概念。CRC是一种检错方法,而FCS是添加在数据后面冗余码。
CRC检验
注:FCS的生成和CRC检验都是由硬件完成,处理很快,不会耽误数据的传输。
注:以上就是构成帧的过程
其他的问题 出现传输差错:在数据链路层若仅仅使用循环冗余检验CRC差错检测技术,则只能做到对帧的无差错接受; 通常认为:凡是接收端数据链路层接受的帧均无差错; 但是又会面临另外的问题: 帧丢失、帧重复、帧失序; 因此在CRC的基础上,增加了帧编号、确认和重传机制;
点对点协议PPP
1、ppp协议满足的需求
2、PPP协议的组成
- 一个将IP数据报封装到串行链路的方法。
- 一个用来建立、配置和测试数据链路连接的链路控制协议LCP。
- 一套网络控制协议NCP
3、PPP协议的帧格式
注:当协议字段为0x0021时,PPP帧的信息字段就是IP数据报;若为0xC021,则信息字段是PPP链路控制协议LCP的数据;而0x8021表示这是网络层的控制数据
注:字节填充
当PPP使用异步传输时,将转义符定义为0x7D(即01111
当PPP使用同步传输时,进行零比特填充
4、PPP协议的工作状态
PPP链路初始化:当用户拨号接入ISP后,就建立了一条从用户个人电脑到ISP的物理连接。这时,用户个人电脑向ISP发送一系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立LCP连接。这些分组及其响应选择了将要使用的一些PPP参数。接着还要进行网络层配置,网络控制协议NCP给新接入的用户个人电脑分配一个临时的IP地址。这样,用户个人电脑就成为互联网上的一个有IP的主机了。当用户通信完毕后,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接。
详细版:
使用广播信道的数据链路层
广播信道可以进行一对多的通信;局域网使用的就是广播信道。
1、局域网的数据链路层
局域网的拓扑:
注:局域网可使用多种传输媒体。双绞线最便宜;当数据频率很高时,往往需要使用光纤作为传输媒体。
共享信道实现
- 静态划分信道:如频分复用、时分复用、波分复用、码分复用等...
- 动态媒体接入控制,又称为多点接入
- 随机接入 随机接入的特点是所有的用户可随机地发送信息。如果产生碰撞,则都发送失败,因此必须要有解决碰撞的网络协议。
- 受控接入 用户不能随机地发送信息而必须服从一定的控制。例子:分散控制的令牌环局域网和集中控制的多点线路探询,或称为轮询。
以太网的两个标准
厂商商业竞争激烈,未能形成一个统一的、最佳的局域网标准。为了使数据链路层能更好地适应多种局域网标准,IEEE 802 委员会把局域网的数据链路层拆成两个子层,即逻辑链路控制(Logical Link Control)子层 和 媒体接入控制(Medium Access Control) 子层。
注:
网络适配器的作用
计算机是如何连接到局域网上的?
计算机与外界局域网的连接是通过通信适配器进行的。适配器与局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器与计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。因此适配器一个重要的功能就是数据串行传输和并行传输的转换。由于网络上的数据率和计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片。在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置上把多长的数据快发送到局域网,或者应当在存储器的什么位置上把局域网传送过来的数据块存储先来。适配器还要能够实现以太网协议。
CSMA/CD协议(载波监听多点接入/碰撞检测)
为什么会产生这个协议?
最早的以太网是将许多计算机连接到一个总线上,当一个计算机发送数据时,其他计算机就不能发送,否则会出现错误。
为了通信的简便,以太网采取了以下两种措施:
1、采用无连接的工作方式,适配器对发送的数据帧不进行编号,也不要求对方发回确认。 以太网提供的服务是尽最大努力交付,即不可靠交付。当目的站收到有差错的数据帧时,就把帧丢弃,其他什么也不做。对有差错的帧是否需要重传则由高层来决定。
2、以太网发送的数据都是用曼切斯特编码的信号。
CSMA/CD协议的要点
- 多点接入:说明这是总线型网络,许多计算机以多点接入的方式连接在一根总线上。 协议的实质是“载波监听”和“碰撞检测”。
- 载波监听: 就是用电子技术检测总线上有没有其他计算机也在发送。不管在发送前,还是在发送中,每个站都必须不停的检测信道。
- 碰撞检测: 也就是“边发送边监听”。 当几个站同时站在总线上发送数据时,总线上的信号电压变化幅度将会增大。当变化幅度超过一定的门限时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
注:当几个站点同时检测到空闲,又同时发数据时,也会产生碰撞。
注:在使用CSMA/CD协议时,一个站不可能同时进行发送和接受(但必须边发送边监听信道)。
特殊情况: 某个站发送了一个很短的帧,但在发送完毕之前并没有检测出碰撞。假定这个帧在继续向前传播到达目的站之前和别的站发送的帧发送了碰撞,因而不会重传这个帧。为了避免发生这种情况,以太网规定了一个最短帧长64字节,即512bit。如果发送的数据较少,那么必须加入一些填充字节,使得帧长不少于64字节,对于10Mbit/s以太网,发送512bit的时间需要51.2微妙,也即是上面的争用期。
个人理解: 发送数据最少长度为512bit的意思是:这512bit的最后发送完的那一瞬间,检测信道是否碰撞的结果就会传回来;所以(在争用期没有发送碰撞的前提下)只要能发送完数据,就说明没有碰撞。
强化碰撞: 当发送数据的站一旦发生了碰撞,除了立即停止发送数据外,还要再继续发送32比特或48比特的人为干扰信号,以便让所有用户都知道现在已经发送了碰撞。
CSMA/CD协议的要点归纳:
使用集线器进行星型拓扑
集线器的特点:
- 使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议(更具体的说,是各站中的适配器执行CSMA/CD协议)。
- 一个集线器有多个接口(端口)。每个接口用两对双绞线与一台计算机上的适配器相连。因此,一个集线器很像一个多接口的转发器。
- 集线器工作在物理层,它的每个接口仅仅简单地转发比特,不进行碰撞检测。
- 集线器采用了专门的芯片,进行自适应串音回波抵消。
以太网的信道利用率
以太网的MAC层
MAC层的硬件地址:在局域网中,硬件地址又称为物理地址或MAC地址(因为这种地址用在MAC帧中)。
严格地讲,名字应当与系统所在地无关。
IEEE 802标准为局域网规定了一种48位的全球地址,固化在每一台计算机的适配器 的ROM中。
当路由器通过适配器连接到局域网时,适配器上的硬件地址就用来标志路由器的某个接口,路由器如果同时连接到两个网络上,那么它就需要两个适配器和两个硬件地址。
适配器的过滤功能: 适配器每从网络上收到一个MAC帧就先用硬件检查MAC帧中的目的地址。如果是发往本站的帧就手下,否则直接抛弃掉。
发往本站的帧包括:
- 单播帧,即收到的帧的MAC地址与本站的硬件地址相同
- 广播帧,即发送给本局域网上所有站点的帧(全1地址)
- 多播帧,即发送给本局域网上一部分站点的帧。
MAC帧的格式
注:当数据字段小于46字节的时候,会填充到64字节,确认无碰撞所需要的最小长度。
扩展的以太网
在数据链路层扩展以太网
网桥: 网桥对收到的帧根据其MAC帧的目的地址进行转发和过滤。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是根据此帧的目的MAC地址,查找网桥中的地址表,然后确定将该帧转发到哪个接口,或者是把它丢弃。
以太网交换机的特点
以太网交换机实质上就是一个多接口的网桥,通常都有十几个或更多的接口,和工作在物理层的转发器、集线器有很大的区别。以太网交换机的每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。以太网交换机还具有并行性,即能同时连通多对接口,使多对主机能同时通信(而网桥只能一次分析和转发一个帧)。相互通信的主机都是独占传输媒体,无碰撞地传输数据。
以太网交换机的接口还有存储器,能在输出端口繁忙时把到来的帧进行缓存。
以太网交换机是一种即插即用设备,其内部的帧的交换表,是通过自学习算法自动建立起来的。
以太网交换机的自学习功能
注:有时候会出现死循环
从总线以太网到星形以太网
总线以太网使用CSMA/CD协议,以半双工方式工作。但以太网交换机不使用共享总线,因此不使用CSMA/CD协议。
为什么还叫做以太网呢?因为它的帧结构未改变,仍然采用以太网的帧结构。
虚拟局域网
利用以太网交换机可以很方便地实现虚拟局域网VLAN。
高速以太网
- 100BASE-T以太网
- 吉比特以太网
- 10吉比特以太网和更快的以太网