ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

计算机网络第三章数据链路层

2021-10-23 11:33:29  阅读:174  来源: 互联网

标签:第三章 字节 适配器 计算机网络 MAC 数据 以太网 链路层


数据链路层

数据链路层

 数据链路层数以计算机网络的低层,主要分为点对点信道和广播信道。点对点信道就是一对一的通信方式,广播信道就是一对多的通信方式,因为广播信道上连接的主机比较多,所以在广播信道上进行数据发送就要有对应的共享信道协议。
本章主要内容:
1. 数据链路层中点对点信道和广播信道的特点,以及对应信道需要使用的协议的特点(点对点:ppp协议;广播:CSMA/CD协议)。
2. 数据链路层的三个基本问题:封装成帧,差错检测,透明传输。
3. 以太网MAC层的硬件地址。
4. 适配器,转发器,集线器,网桥,以太网交换机的作用以及使用场合。

 让我们来看一看数据链路层在两台主机之间通信时所处的地位。
在这里插入图片描述

 数据在进入路由器后要先从物理层上升到网络层,在转发表中找到下一跳的地址后,再从网络层下跳到物理层进行传输,因此,数据从主机H1传送到H2要在路径中的各个结点的协议栈中上下流动多次。

3.1使用点对点信道的数据链路层

3.1.1数据链路和帧

数据链路不等同链路
 链路是从一个结点到另外一个结点的物理路线(有线和无线),中间不经过其他结点,数据链路是一个结点传送信息到另外一个结点除了需要一条物理路线以外,还需要一些通信协议来控制这些信息的传输。
数据链路层的协议数据单元–帧
 数据链路层用来把网络层传下来的IP数据报封装成帧进行传输,或者把传输过来的帧取出IP数据报上交给网络层。
点对点信道的数据链路层在传输时的步骤:
1.发送方的数据链路层把上方传输下来的数据添加首部和尾部封装成帧。
2.帧通过物理层传输到接收方的物理层,再上交给接收方的数据链路层。
3.接收方的数据链路层检查无误后去掉数据的首部和尾部上交到对应的网络层。

3.1.2三个基本问题

三个基本问题:封装成帧,透明传输,差错检测。
1.封装成帧
在这里插入图片描述

 封装成帧就是给一段数据添加首部和尾部,形成帧。首部和尾部用来表示数据的开始和结束。进行帧定界,为了传输效率,就要尽可能的使数据段大于首部和尾部的长度。这样数据链路层协议中就会规定所能传输的帧的数据部分的最大长度上限–最大传送单元MTU

帧的定界–帧定界
当数据使可以打印的ASCII码组成的时候,帧的定界符可以使用特殊的定界符。
在这里插入图片描述

 图示的SHO和EOT就是该帧的定界符, 也是该帧的首部和尾部。它们的16进制编码是(00000001)和(00000100),当数据在传输过程中现错误的时候,就会中断发送,当回复正常的时候,接收段没有接收到帧的尾部EOT,就说明已经接收的数据并不完整,就会丢弃,发送端也会重新发送帧。
2.透明传输
 所有传输的数据中任何8比特的组合一定不能使用和帧定界符一样的比特编码,否则就会出现帧定界符的错误。透明传输就是当传送的帧是用文本文件组成的帧的时候,其数据部分显然不会出现像SHO和EOT这样的帧定界符控制字符,可见不管从键盘上输入什么字符都可以放在这样的帧传输过去。
解决传输透明问题的方法
在这里插入图片描述
(1).(字节填充法)当帧中间的数据部分出现了和首部或者尾部一样的控制字符时,为了解决传输错误,就会在数据段中与控制字符相同字符前加上一个转义字符ESC ,接收端在接收到帧的时候,就会删除这个控制字符前的转义字符。
3.差错检验
传输差错可分为两类:
1.最基本的比特差错(下面所说的CRC检验)
2.接收到的帧并没有出现比特的差错,而是出现了帧丢失,帧重复,帧失序。
循环冗余检验CRC
 例子:
在这里插入图片描述

  假定待传送的数据M=101001,用二进制的模2进行2n乘M的运算。这就相当于在M后面添加n个0。
得到的(k+n)位的数除以发送双方事先约定好的长度位(n+1)位的除数P,得出的商是Q而余
数是R,在例子当中M=101001,假定除数P=1101,商为110101(没用),余数R=001,把余数
拼接在数据M的后面就成为帧检验序列FCS,发送出去。
  在接收端把接收到的数据以帧为单位进行CRC检验,除于同样的除数P,得到余数,若余数为0,
则数据在传输过程当中没有出错,若不为0,则出错。

注意:CRC检验只能让帧的无比特差错,但是做不到无传输差错

3.2点对点协议

点对点协议ppp是目前最为广泛使用的数据链路层协议。

3.2.1ppp协议的特点

在这里插入图片描述

 众所周知,用户想要连接上互联网,必须连接到某个ISP,而点对点ppp协议就是用户计算机和ISP进行通信时所用的数据链路层协议。
1.ppp协议应满足的需求
(1)简单 (2)封装成帧 (3)透明性 (4)多种网络协议 (5)多种类型链路 (6)差错检测 (7)检测链接状态 (8)最大传输单元 (9)网络层地址协议 (10)数据压缩协商
2.ppp协议的组成
(1)一个将IP数据报封装到穿行链路的方法。
(2)一个用来建立,配置和测试数据链路连接的链路控制协议LCP
(3)一套网络控制协议NCP

3.2.2ppp协议的帧格式

1.各字段的意义
在这里插入图片描述

 首部的第一字段和尾部的第二字段都是标志字段F(flag)是ppp帧的定界符,首部中的地址字段A规定为0XFF,控制字段C规定为0x03,首部的第四个字段为2个字节的协议字段,当协议为0x0021时,ppp帧的信息字段就是IP数据报。若为0xC021,则信息字段是ppp链路控制协议LCP的数据,而0x8021表示这是网络的控制数据。信息字段的长,度是可变的,不超过1500字节,尾部当中的第一个字段是使用CRC检验的帧检验序列FCS。
2.字节填充
 当信息字段中出现和标志字段(0x7E)一样的组合时,就必须采用一些措施来解决。
(1)把信息字段中出现的每一个0x7E字节转变为2字节序列(0x7D,0x5E)
(2)若信息字段中出现了和转义字符的比特组合(0x7D),则把0x7D转换为2字节的序列(0x7D,0x5D)
(3)若信息字段中出现了和控制字符一样的字符,就要在该字符之气那加入一个转义字符(0x7D)
3.零比特填充
 在发送端,扫描整个信息字段,只要发现有五个连续的1,就立刻填入一个0,这样就不会出现有连续有六个1的01111110控制字段的出现。

3.2.3ppp协议的工作状态

在这里插入图片描述

 ppp链路的初始化:
  当用户拨号接入ISP后,就建立了一条从用户电脑到ISP的物理连接,用户个人电脑向ISP发送一系列的链路控制协议LCP分组,用来建立LCP连接,这些分组的相应确定了将要使用的ppp参数,接着进行网络层配置,网络控制协议NCP给新接入的用户分配一个临时的IP地址,这样用户的电脑就成为互联网上的一个有IP地址的主机。

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

 广播信道是可以进行一对多的通信,局域网使用的就是广播通信。

3.3.1局域网的数据链路层

 局域网具有网络为一个单位所拥有,且局域范围和站点数目均有限的特点
局域网按照网络拓扑进分类,分别为星形网,环形网,总线网。
在这里插入图片描述

 随着局域网经过40多年的发展,现在的以太网逐渐成为局域网的代名词。为了使更多的用户能够合理而方便的共享通信媒体资源,要解决的问题就是共享信道
 共享信道的分类:
静态划分信道:物理层介绍到的频分,码分,时分复用,这样用户分到的信道就不会和其他人产生冲突,但是这样划分信道的方法代价高,不适合局域网。
动态媒体接入控制(多点接入)
(1)随机接入:所有的用户随机的发送信息,但是一旦有两个及两个以上的用户同时发送信息,就会发生碰撞,所有用户发送信息均失败,就需要有对应的解决碰撞的网络协议。
(2)受控接入:用户不能随机的发送信息而需要接受一定的控制,轮询等。
1. 以太网的两个标准
 为了使数据链路层可以更好的适应多种局域网的标准,我们把局域网的标准拆分为两个子层,为逻辑链路控制LLC子层和媒体接入控制MAC子层,和接入到传输媒体有关的内容都放在MAC子层,其余的都放在LLC层。
在这里插入图片描述

2. 适配器的作用

  1. 计算机与外界网域连接是通过通信适配器进行的,它们两之间的通信是通过电缆或双绞线以穿行的传输方式进行的,但是适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的,适配器的一个重要功能就是进行数据串行传输和并行传输的转换,因为网络上的数据传输和计算机总线上的数据传输率不同,所以要在适配器上加上一个数据缓存的存储芯片。
  2. 适配器在接受和发送各种帧的时候,不使用计算机的CPU,此时,计算机就可以处理其他的任务,当适配器接收到有差错的帧的时候,就会把这个帧丢弃,而不通知计算机,当适配器收到正确的数据的时候,适配器就使用中断来通知该计算机。
    在这里插入图片描述

3.3.2CSMA/CD协议

 在总线上,当一台计算机发送信息的时候,连接在数据总线上的计算机都可以接收到这个数据,但是,如果想要在总线上实现一对一的通信,就必须使每个计算机的适配器地址各不相同,可以在发送帧的首部中的目的地址加上目的计算机适配器的地址,当数据帧的目的地址和适配器的地址相同时才能接收到帧,这样就实现了在总线上一对一的通信。
为了通信的简便,以太网采取了以下的措施:
  (1)采用不必建立连接就直接传输数据的方式,适配器不需要对发送的数据帧进行编号,也不要求对方发回确认,当目站收到信息的时候,如果差错检验后出现错误,就把帧丢弃,是否重新传送则由高层来决定。在数据传输的过程中,我们知道,总线上只允许一台主机传输信息,如果有其他的主机传输信息,就会出现冲突,这样,就需要由一定的冲突解决方式,使用CSMA/CD(载波监听多点接入/碰撞检测)的协议来实现冲突解决。
  (2)发送的数据都采用曼彻斯特编码的信号,曼彻斯特编码的方法是把一个码元再分为两个相等的间隔,码元1是一个间隔为低电压后一个间隔为高电压,码元0则相反。
CSMA/CD协议

  • 多点接入
    表示有多个计算机接在数据总线上,为总线型网络。

  • 载波接听
    使用电子设备检测电路上有没有其他计算机在发送数据,不论是发送前还是发送后,每个站要不停的进行检测信道。

  • 碰撞检测
    发送端是靠其适配器来检测信道上是否发生冲突。
    就是边发送边监听,当计算机在发送数据的同时,还要同时检测信道上的电压变化,当信道上的电压变大,说明有其他的计算机在发送数据。
      当一个站点在发送数据时监听完信道为空闲状态时,发送数据后依然出现了碰撞。这是因为电磁波在总线上是有传播速率的,电磁波在1km电缆的传播时延为5微秒。
    在这里插入图片描述

    设有A和B两个站点,相距为km,当A向B发送数据的时候,要t才能到达,若B在A发送的数据到达B之前发送自
    己的帧,则必然会和A所发送的数据发生碰撞,两个帧都无用。
    那么最迟要经过多长时间才能知道自己发送的数据和其他站发送的数据有没有发生碰撞?
    由图可知,这个时间为两倍的总线端到端的传播时延,即总线端到端的往返传播时延。A到B的距离是整个信道的长度。
      所以,在使用CSMD/CD协议时,一个站不可能同时进行发送和接收,但需要边监听边发送,使用CSMD/CD协议的以太网不可能以全双工通信来工作,而是以半双工通信来工作,由此可见,每一个站在自己发送数据后的一小段时间内,都会存在着遭遇碰撞的可能性,为了确定这个一小段的时间,就需要考虑到两个站点之间的距离,要想减少数据在以太网上传输时遇到碰撞的几率,就要使整个以太网的平均通信量小于以太网的最高数据率。
      假设数据由一个站点传输到另外一个站点的时间为t,那么发送站点至多要经过2t的时间才能判断数据在传输过程中是否出现了碰撞。那么2t就为争用期,当在争用期都没有发生碰撞,那么就可以确定数据在传输过程中没有发生碰撞。
    &emsp 以太网使用截断二进制指数退避算法来确定碰撞后重发的时间,设想,如果发送站点检测到碰撞后进行重发,如果没有时错开的话,那么一旦重新发送数据,又会出现和一开始一样的碰撞。为了减少重发数据的碰撞率,就要采用退避算法

    退避算法:
    退避算法是在在单个信道的基于竞争的介质的一种访问控制(MAC)协议。每当一个以上的节点在同一时刻试
    图访问介质的时候,它会导致分组碰撞。如果相撞的节点试图再次访问信道,在节点做及时同步的时候数据
    包将发生碰撞。因此,节点需要时间位差。为了产生这种位差,退避算法(例如二进制指数退避(BEB)) 。
    例如,在BEB算法中,每当一个节点的传输涉及在与另一个节点的传输发生碰撞,两个节点都将选择一个随
    机的等待时间,在下次再次尝试前需要等待选择的随机时间。如果他们在这样的尝试都没有成功,他们自己
    的竞争窗口增加一倍,在发射前再次选择等待一个随机时间。这个过程将被重复一定次数的尝试。如果经过数
    次尝试之后都失败了,那么其传输的数据包将被从传输队列中移除。
      当数据发送碰撞后,对应站点的适配器进行退避算法的时候,就有可能有其他的站的适配器检测到信道上没有发生碰撞,由此这个站点就会发送数据,但那些执行退避算法的站点适配器,在发送数据的时候又会碰撞,又会执行退避算法,这样反反复很难将该站点的数据发送出去。为了解决这种情况,以太网规定了一个最短帧长64字节,即512bit,如果发送的数据很少,就要进行字节的填充。发送512bit的时间就是上面所提及的争用期。
      因此,在以太网传输数据时,如果在争用期不发生碰撞的话,那么后期传输的数据(数据大于64字节)就不会发生碰撞,如果发生碰撞,一定是在前64字节之中的,由于检测到冲突就会终止发送,此时,已经发送出去的数据就一定小于64字节,目的站点一旦接收到小于64字节的数据,就会自动舍弃。
    综上所述:CSMD/CD协议的要点
    在这里插入图片描述

3.3.3使用集线器的新星拓扑

 传统以太网最初是使用粗同轴电缆,后来演进到使用比较便宜的细同轴电缆,最后发张成为双绞线。这种以太网采用星形拓扑,在星形的中心则增加了一个设备,是集线器。

集线器的一些特点
(1)使用集线器的以太网在逻辑上依然是一个总线网,各站共享逻辑上的总线,使用的CSMD/CD协议。
(2)一个集线器有多个接口,类似于一个多接口的转发器。
(3)集线器工作在物理层。
(4)集线器本身采用了专用的芯片,进行自适应串音回波抵消。
在这里插入图片描述

3.3.4以太网的信道利用率

3.3.5以太网的MAC层

1.MAC层的硬件地址
 在局域网中硬件地址又称为物理地址或MAC地址。
名字指出我们所要找的那个资源,地址指出那个资源在何处,路由告诉我们如何到达该处。
 严谨的说,名字应当与系统的所在地无关,就如同我们换了一个地方,但是名字依然只有一个,计算机也相同,因此。
(1)假定连接在局域网上的一台计算机适配器坏了更换了一个新的适配器,那么这台电脑的局域网地址也就变了,即使这台计算机的地址没有变化,所接入的局域网没有变化。
(2)假定我们把位于南京局域网上的电脑带到北京,连接在北京的局域网上,虽然物理地址变化了,但是只要电脑的适配器没有变化,那么该电脑在北京局域网中的“地址”仍然和南京局域网当中的一样。
所以,局域网的地址并不是告诉我们这台计算机的地址,而是这台计算机的名字和标识。 “MAC地址”实际上就是适配器的地址。
 规定MAC的得知字段用6字节或者2字节的一种,一般,我们使用的都是6字节的MAC地址,注册管理机构RA负责分配6字节当中的前3个字节,后3个字节由厂家自行分配,只要保证生产出的适配器地址没有重复的地址即可。
 当路由器通过适配器接入到局域网的时候,适配器上的硬件地址就用来标志路由器的某个接口,路由器如果同时连接到两个网上的时候,那么它就需要两个适配器地址。
 适配器是具有过滤功能,当适配器从网络上接收到MAC帧,若检查MAC帧中的目的地址如果是发送到该站点的时候,就接收下来,如果不是,就自动丢弃。
2.MAC帧的格式
在这里插入图片描述

 以太网MAC帧的格式由五个字段组成,前两个字段分别为6字节长的目的地址和源地址字段,第三个字段为2字节的类型字段,用来标志上一层用的是什么协议,第四个是数据字段,长度在46-1500字节之间,46是为了确保整个帧的长度在64字节以上(具体原因参照上面CSMD/CD协议的介绍),最后一个字段就是4字节的帧检测序列FCS,同时也为数据字段结束的标志。当数据字段的长度小于46字节的时候,MAC子层就会在数据字段的后面加入一个整数字节的填充字段,以确保MAC帧的字节数不少于64字节,当上层使用IP协议的时候,其首部就有一个“总长度”字段,因此,“总长度”加上填充字段的长度,就应该为MAC数据字段的长度,当IP数据报的长度为42字节时,填充字段长度就应该为4字节。

无效的MAC帧:
(1)帧的长度不是整数个字节
(2)FCS查出序列错误
(3)收到的MAC帧数据字段的长度不在46-1500之间,也就是MAC帧的长度不在64-1518字节之间。
对于无效的MAC帧,以太网之丢弃,不重传。

3.4拓展的以太网

 为了拓展以太网的覆盖范围,拓展的以太网在网络层依然是一个网络。拓展以太网有两种方式,一种是在物理层拓展以太网,另一种是在数据链路层拓展以太网。

3.4.1在物理层拓展以太网

 以太网上的主机之间不能距离太远,不然就会因为衰减使得CSMA/CD协议无法识别,一开始是使用工作在物理层的转发器来拓展以太网的,但随着双绞线以太网的主流,拓展以太网就很少使用转发器了。到现在,拓展主机和集线器之间的距离使用光纤和一对光纤调制解调器。
在这里插入图片描述

 光纤调制解调器的作用就是进行光电信号的转换,通过使用多个集线器,就可以连接成覆盖更大范围的多级星形结构的以太网。
在这里插入图片描述

但是多级结构的集线器的以太网仍然具有缺点:(1)碰撞问题 (2)如果不同的系使用不同的以太网技术,那么就不可能用集线器将它们互连起来。

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

 拓展以太网更加常用的方法是在数据链路层进行,最初人们常用的是网桥。网桥对收的帧根据其MAC帧的目的地址进行转发和过滤。之后随着交换式集线器(以太网交换机)的出现,就淘汰了网桥。
1. 以太网交换机的特点
 以太交换机的实质就是一个多接口的网桥,每个接口都直接与一个单台主机或另外一个以太网交换机相连,并且都工作在全双工方式下,相互同行的主机都式独占传输媒体,无碰撞地传输数据。并且,以太网交换机的接口还有存储器,用来在输出端口繁忙时把送来的帧进行缓存。
2. 以太网交换机的自学习功能
通过一个例子来说明以太网交换机自学习功能的原理:
在这里插入图片描述

 假定在以上图中的交换机有4个接口,各连接一台计算机,其MAC地址分别是A,B,C,D。一开始,交换机中的交换表是空的。
  首先,A向B发送一帧,从接口1进入到交换机,先查找交换表,查询该从那个接口转发这个帧,应为交换表为空,所以交换机就把帧的源地址A和接口1写入到交换表中,并且向除了接口1以外的接口发送帧,C和D将丢弃这个帧,因为帧的目的地址不匹配,只有B才接收到这个帧。从新写入交换表(1,A)中可知,以后只要从接口1发出的帧,一定可以转发到A。长此以往,经过多次的转发,接口和对应可以转发到的主机相匹配,都记入交换表中。
  当使用以太网交换组的时候,往往会增加一些冗余的链路。在交换机组的转发中可能会出现帧在网络的某个链路中无限制地兜圈子。
在这里插入图片描述

  解决方法就是在逻辑上切断某些链路,使得一台主机到所有其他主机的路径是无环路的树状结构。
3. 从总线以太网到星形以太网
 总线以太网使用CSMD/CD协议,以半双工的方式工作,但是星形以太网是以以太网交换机的工作模式,不使用共享总线,没有碰撞问题,以全双工方式工作,但是由于依然采取以太网的帧结构,所以依然叫做以太网。

3.4.3虚拟局域网

 通过以太网交换机来实现虚拟局域网VLAN。VLAN是由一些局域网网段组成的与物理位置无关的逻辑组,通过每一个VLAN的帧标识符来确定其到底属于哪一个VLAN。
在这里插入图片描述

 10台计算机分为了三个局域网,LAN1(A1,A2,B1,C1),LAN2(A3,C2,B2),LAN3(A4,B3,C3),但又被分为三个组(虚拟局域网)VLAN1(A1,A2,A3,A4),VLAN2(B1,B2,B3),VLAN3(C1,C2,C3)。由图可知,每一个VLAN的计算机可以身处在不同的局域网当中。这样的技术可以大大减少“广播风暴”带来的性能恶化。

VLAN帧的格式:
在这里插入图片描述

 VLAN的标记字段为4字节,插入在以太网MAC帧的源地址字段和类型字段之间。因为标志字段的加入,让帧长度增大到了1522字节。

3.5高速以太网

3.5.1100BASE-T以太网

3.5.2吉比特以太网

3.5.310吉比特以太网和更快的以太网

3.5.4使用以太网进行宽带接入

标签:第三章,字节,适配器,计算机网络,MAC,数据,以太网,链路层
来源: https://blog.csdn.net/MD_DX/article/details/120918040

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有