数据链路层-1 什么是数据链路层和工作原理

目的:

物理层负责将比特流转换成信号,并传递给线缆。既不知道信号会发往何处,也不在意某一位是否会在某处丢失。

数据链路层提供了一种能够正确且稳定地传输比特流的结构,把数据传输到目的地。

数据链路层在意的是,数据是从哪个端口来的,应该送到哪个端口。

(这个端口是指物理交换机上的物理端口,也就是接口)



传输数据格式:

在数据链路层会把数据进行封闭,封装后的数据叫作帧。帧的组成如下:

    前导码(8字节)+目的MAC地址(6字节)+源MAC地址(6字节)+类型(2字节)+数据包(46~1500字节)+FCS(字节)

MAC地址是由48位组成的唯一信息,其中前24位是运营商地址,由IEEE管理分配。后24位是运营商管理的唯一信息。



传播方式:

以太网中的通信分3种:单播,广播,多播。

单播:一对一通信。

广播:一对所有通信。例如:ARP(地址解析协议)

多播:对特定的小组通信。



L2交换机原理(数据链路层工作原理):

在数据链路层的设备种类很多,但我们只要掌握了L2(数据链路层)交换机,基本上能应对所有网络环境了。

转发地址的切换叫作“交换”,L2交换机根据数据链路层的信息(也就是MAC地址的信息)对帧进行L2交换。

L2交换机是根据内存中的MAC地址表对帧进行交换的。MAC地址表由端口(这个端口是指物理交换机上的物理端口,也就是接口)和源MAC地址的信息构成,

看地址表,就知道哪个节点连接哪个端口。L2交换机主要有3项职责:

  1,登记收到帧的端口和源MAC地址

  2,将不知道对应哪个端口的MAC地址进行泛洪(后面介绍泛洪和广播的区别)

  3,删除不再需要的信息(过期的MAC地址表)

L2交换机是如何利用地址表进行交换的呢?

  1,MAC-A的节点(或电脑)准备发送帧到MAC-B的节点,帧的源MAC地址是:MAC-A的MAC地址,目的MAC地址是:MAC-B的MAC地址。

     这时,我们假设MAC地址表中是空的:

    (注意,这时候MAC-A节点是已经知道MAC-B节点的MAC地址的。在实际情况中一般并不知道MAC-B节点的MAC地址,

      所以节点MAC-A要先通过ARP广播确定节点MAC-B的MAC地址后,才能开始通信。什么ARP广播,在后面介绍)

    数据链路层-1 什么是数据链路层和工作原理_第1张图片

2,MAC-A节点发送数据到交换机,交换机收到帧后,将节点A的端口号和源MAC地址作为新的条目,添加到MAC地址表中。这时MAC地址表内容如下:

      这里的端口号为1号,意思是这个节点连接到了交换机的1号物理端口上了。

   
    数据链路层-1 什么是数据链路层和工作原理_第2张图片

3,由于交换机不知道节点MAC-B的MAC地址连接的是哪个端口,所以会将帧复制并发给其它所有端口,节点B接收到帧后,发现帧上的目的MAC地址和自己的相同,

      则生成一个帧给交换机一个回应,帧的源MAC地址是:MAC-B的MAC地址,目的MAC地址是:MAC-A的MAC地址。这的MAC地址表还是和上面一样。

    数据链路层-1 什么是数据链路层和工作原理_第3张图片

4,交换机收到MAC-B节点发过来的帧后,把MAC-B节点的MAC地址也登录到MAC地址表中。

      数据链路层-1 什么是数据链路层和工作原理_第4张图片

5,上面的MAC表建立完成后,MAC-A节点就可以和MAC-B节点直接通信了。

      但里面的条目并不是一直保存下去。有两种情况下会被删除掉:

      (1)线缆被拔掉时

      (2)超过一定时间未收到帧。(也就是过期了)

其实MAC地址表里还有一列“类型”,这个列有两个值,一个是“Static”,另一个是“Dynamic”。

Static表示是本机静态设置的或是系统上已经占用的MAC地址,不会被自动删除;

Dynamic是指通过帧动态学到的内容(就像上面一样),过了老化时间就会被删除。


关于VLAN:

VLAN是在物理网络上划分出来的逻辑网络。VLAN有3个特点:

(1):不受网络端口的实际物理位置的限制。

(2):有着和物理网络同样的属性。

(3):L2层的单播,多播和广播只会在同一VLAN中起作用,不会进入其它VLAN中。

             有时候,想把所有的节点都纳入到广播域中,不是一件好事,会影响广播的效率。

例子:

    在企业中,经常有这样一种情况:同一个公司的同一个部门有多个不同的办公地点(比如在不同的楼层),

    但是这两个地点的同事的电脑又要求能够相互访问。如果将这两个地点的主机接在同一个交换机下,布线将是一个麻烦的事情。

VLAN本质上就是代表VLAN ID的一些数字。其原理只是将VLAN ID的数据分配给各个端口,由此去识别端口而已。


如何设置VLAN:

VLAN有两种设置方法,一种是端口VLAN,另一种是打标VLAN。

端口VLAN:就是将VLAN分配给端口。例如:把端口1和2分配给VLAN1,把端口3,4,5分配给VLAN2。

打标VLAN:就是给VLAN打上标签。如何打标签?就是给帧上加上一个段包含VLAN的信息而已。实现方式就是在帧上,加上4个字节的VLAN标签。


分配完VLAN后,VLAN1内的广播,VLAN2就不会收到。如果要让VLAN1和VLAN2之间产生通信,必须通过L3交换机或路由器等L3层设备进行中转才行。

(为什么不能跨网段(物理或逻辑)通信,必须通过路由设备中转,后面讲解)

端口VLAN有一个不好的地方,就是如果跨交换机设置VLAN的话,有多少个VLAN,就要准备多少个端口和线缆。

例如:交换机1上有3个VLAN(VLAN1,VLAN2,VLAN3),交换机2上也有3个VLAN(VLAN1,VLAN2,VLAN3),要让这3个VLAN连通的话,

就要在交换机1上准备3个端口,和交换机2准备的3个端口相连接,并且还要准备3根线。

打标VLAN就不需要这么多端口和线缆,两台交换机上,只需要1个端口和根线缆就可以了。

打标VLAN还有一个特点,就是存在一个VLAN叫作:本征VLAN(Native VLAN)。这个VLAN上的数据不会被打标(可能是为了设置一个默认VLAN,传输数据快)



为什么不能跨网段(物理或逻辑)通信,必须通过路由设备中转?

因为数据链路层的核心是“MAC地址表”,MAC地址表记录的只有“端口“和”MAC地址“还有一些其它设置,没有记录”IP地址“。

也就是说,他不是针对IP地址进行转发的,而是针对MAC地址进行转发的。而在转发时,交换机只能把数据转发到和交换机端口绑定的MAC地址,

也就是MAC地址表中的地址。或者是不在同一交换机上,在其它交换机上,但这两台交换机必须相连接,而且源节点和目的节点的VLAN ID必须一致。

这样就限定了能够直接通信的节点在物理上,必须是同一个网段里(虽然有可能在同一个物理网络里,因为VLAN ID不同也不能通信,但如果不在同一个物理网络里,

就算VLAN ID一致,也是不能通信的)。

两个物理网段如何通信呢,这就需要路由器了。为什么路由器能够跨网段,等讲网络层的时候再讲。

(用网桥也可以实现两个网段连接,具体请参考网桥的资料)



补充:

泛洪和广播的区别:

泛洪是指交换机在转发数据时,在MAC表中无法找到与数据包目标地址一致的条目,就将数据包从所有端口发送出去(除了接收该数据包的端口),以期找到目标主机来接收数据包,可以了解为2层的行为。范围是VLAN或交换机上的所有节点。

广播是指向所有节点发信息。分为第2层广播和第3层广播。 第2层广播也称硬件广播,用于在局域网内向所有的结点发送数据,通常不会穿过局域网的边界(路由器),除非它变成一个单播。广播将是一个二进制的全1或者十六进制全F的地址。 广播(第3层)用于在这个网络内向所有的结点发送数据。第3层广播也支持平面的老式广播。广播信息是指以某个广播域所有主机为目的的信息。这些被称为网络广播。常用的ARP就是用广播的方式进行的。



你可能感兴趣的:(数据链路层-1 什么是数据链路层和工作原理)