当前位置:   article > 正文

计算机网络快速梳理(白话文)_网络工程sw是

网络工程sw是

前言

此博客是关于我自学计算机网络快速梳理整理的技术博客,博文采用白话文讲解计算机网络,建议以看小说的轻松心态阅读本篇博客,希望对您有所帮助!

首先抛出一个问题:计算机之间如何进行通信?

1.双绞线

最初,计算机之间如果想要进行通信,就得使用双绞线进行连接,这样计算机之间就可以互相发送数据!

在这里插入图片描述

但是,目前这种方式已经非常少见了!因为它的缺点很明显:如果多台计算机(例如一万台)两两使用双绞线进行连接,会非常的错综复杂! 所以现在这种方式已经慢慢被淘汰了

2.集线器(hub)

集线器可以进行消息转发,一个设备发送数据到集线器,集线器负责广播到其他
的设备(设备与集线器之间使用双绞线进行连接)

例如:设备①发送数据给hub,hub会无条件的将数据转发到②、③、④、⑤。
在这里插入图片描述

这样发送数据的方式还是有缺点的:

因为设备①发送数据给设备④,需要将数据先发送到hub,hub又会把数据广播给每一台设备,但是并不是所有的设备都是数据的接收者!

工作方式:

设备④会带有一个标识,设备④发现hub发来的数据是给自己的,才会接收hub发来的数据(数据源于设备①)。然而其他设备虽然可以接收到hub发送的数据,但是其他设备心里明白,这个数据并不是发送给自己的,就会直接将数据包丢弃!
如果设备①和②同时都想要发送数据,但这个hub没办法分辨两个数据,所以hub进行转发的时候,就会把这两个设备的数据杂糅在一起进行转发,此时导致接收设备收到杂糅的数据时,导致数据根本解析不出来!

针对这个情况,提出了一个协议:CSMA/CD协议

CSMA/CD协议:在设备发送数据之前,先进行载波侦听,检测一下这个链路上有没有其他设备发送数据,如果没有,在进行发送数据(防止冲突)

这种集线器的设计方式是计算机网络诞生之初,常见的一种网络组织形式,该形式有两个缺点:

  1. hub进行数据的广播会导致宽带的利用率低
  2. 链路上同时只能有一个设备发送数据,导致链路的利用率低

如果有几万台设备进行数据传输,但是一瞬间只有一台设备发送数据,效率实在是太低了!
所以集线器只适用于个位数台机器的网络布置(hub适用于小规模网络,工作在物理层),所以接下来就提到第二台设备:交换机

3.交换机(sw)

交换机与集线器作用很相似,交换机也可以实现数据的转发

在这里插入图片描述

sw和hub的区别在于:

hub没有记录每台设备的标识,知识通过数据广播的方式发送数据,让每台设备都接收到数据,然后设备自己进行判断数据是否属于自己,所以hub效率非常低!然而sw可以记录mac地址端口(这里的端口指的是交换机的端口)的映射关系
mac地址是设备刚出厂时就定义了,并且是全球唯一的地址(类似于身份证)。mac地址是可以修改的(交换机对ip地址不感兴趣)

那么sw如何记录mac地址与端口呢?

原理是在sw中维系了一张表,我叫它映射表(这个表不是路由表,路由表在路由器中)
如果设备①想要和设备③进行通信,就会把数据发送到sw上,sw会到sw映射表中发现设备③的物理地址对应的是三号口,就将设备①发来的数据从三号口发出,所以设备③就收到了数据!
所以sw不需要将数据像hub那样广播给所有的设备!

交换机映射表:
在这里插入图片描述

交换机另一个重点:交换机是双全工的!

hub采用的线材是双绞线,所以hub工作时,只能有一台设备进行数据发送
而sw使用的不是双绞线,而是网线,网线内部有八根,正常工作状态下只有四根进行工作,所以sw可以实现数据的双全工:结果设备①在发送消息的同时也可以进行数据的接收
这样链路上的数据就不会再发生冲突,所以可以多台设备同时发送数据。

那么sw中的映射表是如何建立起来的?
首先我们模拟一个环境,如下图所示:
在这里插入图片描述

起初,sw中并没有这张表
当我们的设备A要向设备B发送数据,当A将数据发送给sw,sw就会确定A的mac地址对应一号口。
此时就会把macA对应一号口记录到映射表中!A的目的地址是B,发现表中没有记录,所以A就会往每个端口分别发送数据,其中四号端口连接设备B,就发送成功了!此时就将B的mac地址和对应端口记录到映射表中
经过一段时间的记录,交换机最终就将所有设备的mac地址与端口映射关系记录到表中!

交换机所在的一层叫做:数据链路层

该层数据的数据头记录了源地址的目的地址,这个地址指的是mac地址。该方式是对hub的一个极大的改进!所以我们目前生活中很少能看到集线器,因为大多数情况下,我们都是直接使用交换机,因为交换机的效率更高!

交换机还有一个特点就是它可以通过端口进行桥接
在这里插入图片描述

交换机1经过一段时间后,就会在交换机1中生成一张映射表
在这里插入图片描述
当设备A向设备C发送数据时,交换机1中的表并没有找到记录!那么此时设备A就会广播发送,直到数据通过6号端口进入交换机2,交换机2中的映射表如下图所示:

在这里插入图片描述
最终,数据发送到了设备C,也就是6号口。发送完之后交换机2将设备A的数据记录在表中:
在这里插入图片描述
交换机1同样,发送完数据后,会记录设备C对应的是6号口(这里的6号口指的是交换机1的6号口),同理,设备D对应的也是6号口。也就是说:多个mac地址可以对应一个端口

交换机这种设计方式的缺点:

首先,映射表中的存储量还是比较小的(大概能存几千条记录),但是我们想在全球范围建立起互联网络,几千条存储量未免也太小了!可能需要几十亿才够用。如果没有在表中记录信息,交换机可能就要一直广播,导致全球范围内的一个信息洪泛,这样效率也很低!
目前使用的交换机和mac地址结合的方式,可以在一个比较小的局域网中达到一个高效的传输
比如说几个设备组成一个局域网,网络内部用的是交换机,效率很高!
但是如果网络规模扩大,我们就可以发现交换机已经力不从心了!

我们说的集线器在物理层,交换机在数据链路层,比较有趣的是:mac地址(物理地址)却位于数据链路层。这就很奇怪,为什么物理地址不在物理层呢?

因为物理层是特别早期的一种设计方式,后来我们更加关注数据层面,所以将mac地址放到数据链路层,每一台设备都需要有一个标识,这个标识就是mac地址

交换机最大的优势是:

网络内部可以进行一个高效的传输,在局域网内效率是非常高的!但是交换机只满足于小规模局域网的互联互通,但互联网目的是跨局域网进行全球互联,网络之间的联通称为急需解决的问题!

我们原来可以用一个交换机将两个网络合成一个大网络,但是大网络存在问题:

交换机中的表可能记录不过来,没有记录就不停的进行广播,广播效率太低了!就算记录新的信息也会把表中原有的记录被顶替掉,导致原有的记录失效,没办法工作了!

这里我们提出一个新的方案,我们在网络定一个新设备,通过这个新设备连接不同的网络,这个设备就是路由器

4.路由器

路由器是网络之间的一个连接点,有了路由器之后设备1和设备2通信时就是通过路由器进行转发,从网络1转发到网络2:
在这里插入图片描述

如果设备1和设备3进行通信,就不需要经过路由器了,直接就可以在网络内直接通过交换机进行交互,所以设备1和设备3进行通信直接走交换机,如果设备1和设备2进行通信,才会经过路由器!

网络是一个抽象的概念,我们要如何标识网络以及网络中的每台设备呢?

这里就提到一个新概念:IP地址

IP地址有两个作用:

  1. 标识网络(192.168.0.0.124)
  2. 标识网络中的设备(192.168.0.0.125)

在这里插入图片描述

路由器工作原理就是既有网络1的IP地址,也有网络2的IP地址,通过路由器这个中间商既能实现网络1和网络2之间的交流!

这里存在两个问题:

  1. 路由表如何建立?

路由表建立要比交换机的映射表复杂很多!
用到了很多路由算法,这个算法至今仍在不停的迭代,这个算法很难,即使我们不会路由算法,也不影响我们学习计算机网络。我们只需要知道路由器会经过一系列算法自动建立出一个完善的路由表就可以了!

  1. 有了路由表为什么交换机还要建立mac地址和端口的映射表?
    或者说,有了IP地址为什么还需要mac地址?

我们引入路由器的目的是在跨网络时进行数据的转发,这个IP地址是要给抽象的地址,不能直接用作通信。我们只能使用mac地址进行通信,因为mac地址是真实地址!

在这里插入图片描述
那么192.168.1.52传输到192.168.1.254过程是怎样的?

首先,52先查254的mac地址,是根据IP地址去查mac地址,这里涉及一个协议:ARP协议,该协议在网络中广播询问谁的IP地址是254,因为我们最终想要的是mac地址,当254收到这条询问,就会回复自己的IP地址是254,mac地址是xxx,此时,52就知道254的mac地址了,然后就可以在数据链路层进行传输了!

我们的路由器处于网络层,所以实际上网络的传输都走的链路层

比如我们一开始从102到0.1也是走的链路层,也是先查0.1的mac地址,链路层传过来的52和254也是先查询mac地址,然后在链路层传输!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/712092
推荐阅读
相关标签
  

闽ICP备14008679号