大家好,我是你们的龙少一郎,还是那个不变的我。自从看过某师视频以来,就对它迷恋如相好,膜拜如山倒。现在我就对看过的内容写出系列体会之如下:《网络基础之二层介绍》
我首先说明的是我对写的内容是对看到的自我体会写下来的,没有前后顺序之分,也没有十分严谨的语言逻辑,说白了就是想到哪写到哪,但肯定是对无基础的同学们是一个不错的积累,希望对这些人有所参考,有所帮助。
今天我会着重讲一下二层交换机和三层交换机(带路由功能的交换机)的转发原理、以及二层数据帧结构、物理和逻辑拓扑的区分。
交换机和路由器现在区分有点模糊化。我们一般将有些路由器说成是带有交换机功能的三层交换机,比如3845、比如3560等。但总而言之,交换机要想进行数据转化必须要借助其创建的MAC地址表;而路由器必须要借助其自身的FIB表(路由表)、arp表。区分的根本就是根据其转发原理来决定的,说到这,大家肯定会想到个人PC,服务器等。对,它们就一个三层设备。接下来,我先谈下二层数据帧结构,如下图所示:
这两个数据帧封装方式不同,根本是由应用场景决定的。怎么讲?ethernet主要用于用户终端和用户终端、用户终端和服务器之间的数据封装方式。打个比方:终端A和终端B进行数据通讯,传输文件也好、QQ聊天也罢等,都是以这种格式进行封装的。还有一种方式,就是终端A或终端B进行服务器的访问,比如页面访问、视频的浏览等,都是某种用户终端间的协议沟通、数据的可达。而802.3主要是设备间的通讯,共同维持设备间的某种状态,比如生成树中根桥的选举。说白了,就是设备间为了达成某种共识,共同维护其传输的可靠性,而在设备间进行的数据传输,用户无需关心,它就已经存在了。说了数据封装的结构,我们接下来再来谈谈交换机的转发原理。
转发是二层中的重中之重,也是必须要搞清楚的理论依据,才能对各种二层故障有深入的了解和认识。
我对大家解释并简单深入的描述下这其中的转发过程,希望对用心的你有所帮助。你觉得有用,它就有用;你觉得无用,它就真的没有用。它的过程其实很简单,整个过程都是在广播域中完成的。当终端A发送一个数据包去访问终端B,无论是通过什么样的方式去访问,telnet也好、ping也行或者是http的形式,都会有一个数据请求去访问B,但是此时的数据包过程是这样的:终端A的源MAC为AAAA,目标B的目标MAC为X.X.X.X,然后就是源IP为1.1.1.1,目标IP为1.1.1.2,进行封装准备发送时,交换机SW1,拿到传送过来的数据帧时,拆开查阅一下,根本没有目标MAC,于是直接丢包!为什么这里的目标MAC为X.X.X.X呢?因为当终端A初次发送数据时,它不可能知道终端B的MAC,既然不知道为什么不一次封装目标MAC为全FFFFFFFF呢?这个问题问得好!因为终端A初次发给一个广播域内的其他IP时,它首先查看自己的arp表,根本没有这样的IP:BBBB所对应的MAC地址,所以第一次封装失败!丢包!第二次,才会以全FFFFFFFF,换成二进制时为48个1的目标MAC地址形式进行封装发送。也就是此时,第二次的数据帧结构为:源MAC为AAAA,目标MAC为FFFFFFFF,源IP为1.1.1.1,目标IP为1.1.1.2,交换机只接受广播MAC地址和指定目标的单播MAC地址,此时拆开帧头一看,有目标全为FFFFFFFF的MAC地址,赶紧转发。转发到除去本身的端口2进来的端口之外的其他端口,这里是第4端口。同时,它自身会创建一个MAC地址表,如上图片,将端口编号、进来的源MAC地址和进入的物理端口进行关联。从交换机SW1的第4个端口转发出去之后,交换机SW2收到来自交换机SW1的数据帧,立即查阅一看,发现来自源MAC地址为终端A的MAC:AAAA,目标MAC地址为全FFFFFFFF,所以赶紧转发,同SW1那样,然后从交换机SW2的第8端口转发出去。此时,终端B收到后,立即拆开一看,目标MAC为全FFFFFFFF,因为这个广播MAC,只要在同一个广播域内的所有设备都要接受查看,它代表着所有设备在同一个广播域内必须接受,既然终端 B接受了,它再往下一看,目标IP为1.1.1.2,是给自己的,于是立即创建了ARP表,表中含有自己和终端A的IP和MAC关联信息,并封装好自己的返回数据帧为源MAC为BBBB,目标MAC为AAAA,源IP为1.1.1.2,目标IP为1.1.1.1,进行单播发送给A,此时整个过程分为了两个过程:从终端A到终端 B为arp request过程;从终端B到终端 A为arp reply过程。完成了这两个过程,同时当返回数据包到达终端 A后,终端 A也需要创建arp表,将终端B的IP和MAC关联起来,这样下次再进行数据传输时就是单播传输,从而减少了带宽浪费,优化了网络的性能。整个过程示意图如下:
也许,大家对这个简单的二层数据过程就有点晕晕沉沉了。别急,接下来还有三层转发过程。希望大家细心体会并最终达到心领神会。如下:
以上就是二层交换和三层交换机的数据转发原理和区别了,希望你引起足够的重视!另外,我说下MAC地址的构成方式。
MAC地址作为交换机一个重要的转发依据。也是交换机的心脏,所以有必要对其中的MAC地址的地址结构进行说明一下。
第一个1字节位为广播位,表示:当为广播数据帧时,为1;当为0示,表示传输的是非广播数据帧。
第二个1字节位为本地使用MAC,表示:这些位表示保留MAC用于网络实验室研究技术型协议的。
第三个22字节的表示厂商唯一标识符。每个厂商单独向IEEE标准委员会进行申请注册使用的,每个标识符可以生产2的24次方个MAC地址的网卡。
第四个24字节表示用户自定义标识符,表示用户可以生产的MAC地址数目。每个MAC地址都是独一无二的。
今天,先暂时写到这里,下次想到其他的我会继续接着写,只要大家愿意学,愿意看,愿意思考,我就愿意分享,即使写的不对,也请大家予以指正。
本文来自博客园,作者:{艳花三月下春秋},转载请注明原文链接:{https://www.cnblogs.com/longshao0918/}