号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部
中午好,我的网工朋友。
今天聊点有趣的,从最浅层去重新看看交换机和路由器,思考一波网络是怎样互联的
很多网工可能觉得这俩家伙天天打交道,早就熟悉得不能再熟悉了,但你真的知道他们的发展过程和工作原理吗?
为了更好地让你理解,今天我们讲个小故事。
当然,这只是个梳理,可能会忽略一些细节,如果你看完能大概了解到设备的异同,本文的目的就达到了。
今日文章阅读福利:《 华为交换机开局一本通 》
私信发送暗号“一本通”,即可获取此份优质资源。
01 如何快速确认设备互连方式?
小 A 是一个帝国时代大神,他打通了游戏的所有关卡,可以一个人单挑 8 个疯狂的电脑。渐渐他觉得无聊了,想要找小伙伴一起 PK。
但是如何实现两台设备的互联呢?小 A 很聪明,他发明了一个类似于 USB 口一样的可以传输数据的端口,他将其命名为网口。小 A 通过一根网线将自己的电脑与小 B 的网口相连,实现了两台电脑间的互联。
两个小伙伴很开心,联机玩了起来,这时被路过的小 C 看见了,小 C 也要加入进来。但是我们知道,每台电脑只有一个网口,无法实现三台电脑的相互连接,那要要怎么办呢?
这时候小 B 出了一个主意:咱们再找一台计算机,给他多设计几个网口,我们每个人都连到这台计算机的网口上,不也实现咱们哥几个之间的互连了吗。
02 集线器(Hub)
说干就干,于是他们设计出了一款微型计算机,他本身具备多个网口,专门实现多台计算机的互联作用,这个微型计算机就是集线器。顾名思义,集线器起到了一个将网线集结起来的作用,实现最初级的网络互通。集线器是通过网线直接传送数据的,我们说他工作在物理层。
有了集线器后,越来越多的小伙伴加入到游戏中,小 D、小 E 等人都慕名而来。然而集线器有一个问题,由于和每台设备相连,他不能分辨出具体信息是发送给谁的,只能广泛的广播出去。
例如小 A 本来想问小 C:你吃了吗?结果小 B,小 D 和小 E 等所有连接在集线器上的用户都收到了这一信息,且由于处于同一网络,小 A 说话时其他人不能发言,否则信息间会产生碰撞,引发错误,我们叫做各设备处于同一冲突域内。
03 交换机(NetWork Switch)
这样的设备用户体验极差,于是小伙伴们一起讨论改进措施。这时聪明的小 D 发话了:我们给这台设备加入一个指令,让他可以根据网口名称自动寻址传输数据。
比如我把小 A 的网口命名为 macA,将小 C 的命名为 macC,这时如果小 A 想要将数据传给小 C,则设备会根据网口名称 macA 和 macC 自动将资料从 A 的电脑传送到 C 的电脑中,而不让小 B、小 D 和小 E 收到。
也就是说,这台设备解决了冲突的问题,实现了任意两台电脑间的互联,大大地提升了网络间的传输速度,我们把它叫做交换机。由于交换机是根据网口地址传送信息,比网线直接传送多了一个步骤,我们也说交换机工作在数据链路层。
这回小伙伴们高兴了,他们愉快地玩耍起来。渐渐地,他们在当地有了名气,吸引了越来越多的小伙伴加入到他们的队伍中。直到有一天,一个外村的小伙突然找上门来,希望能和他们一起互联,实现跨村间的网络对战。
小 A 说可以呀,于是他们找了一根超长的网线将两个村落的交换机连在了一起。结果发现一件奇怪的事:两个村落间竟然不能相互通信。怎么着,原来那边的电脑和他们用的不是一套操作系统,这导致信息间的传送形式的不匹配。在这期间,还有其他村落的人也来找过小 A,可是小 A 发现,每个村子之间用的操作系统都不一样。
04 路由器
这可咋办呐?难道以后只能各自村子玩各自的了吗?为了解决这一问题,各村的小伙伴们坐在一起组织了一场会议,最终得出了一套解决方案:采用同样的信息传送形式(像不像秦始皇统一度量衡)。
那如何实现呢?小伙伴们规定,不同的村子间先在各自的操作系统上加上一套相同的协议。不同村落通信时,信息经协议加工成统一形式,再经由一个特殊的设备传送出去。这个设备就叫做路由器。路由器通过 IP 地址寻址,我们说它工作在计算机的网络层。
这样,经由如此的一系列改装,小 A 终于带领村民们实现了整个乡镇的通信。随着越来越多的城里人也加入小 A 的协议,小 A 带领村民逐步实现了全市、全国乃至全世界的通信。这一套协议便是 TCP/IP 协议簇,互联网也便这样形成了。
后来,隔壁村二狗子跟小 A 打游戏输了,但是他不服气.于是;他联系了一批狐朋狗友,和他们串通好,每天固定一个时间大家一起给小 A 他们村发消息,内容什么都有,例如"打雷啦,下雨收衣服啊!"等等。搞得小 A 他们打游戏卡的要死,最后网络崩掉,。这就是"拒绝服务攻击”(DoS攻击)。
05 防火墙(Firewall)
那怎么办呢?聪明的小 E 发明了一个新设备。这个设备可以监控进出他们村网络的通信量,并可以规定哪些数据可以进出,哪些数据不可以进出,从而抵制对村内构成威胁的数据。他们设置二狗子村的数据禁止访问,这样二狗子和他朋友就不能攻击到小 A 他们村的网络了。大家觉得二狗子他们就像火灾一样,而这个东西能把他们防住,于是给这个设备取名叫防火墙(硬件)。
后来小 E 觉得每台电脑都有防火墙就好了,不过家家户户都买个防火墙太贵了,于是他就自学编程,编了一个杀毒软件安装在电脑上,用来过滤不需要的信息,这个就是软件防火墙。
有了防火墙,小 A 他们村(局域网)就不用担心外村(互联网)随意访问他们的数据了,也不用担心他们村的小朋友看到什么不该看的了。
即便如今全网络已遍布了全世界,在小 A 和村里的小伙伴对战帝国时代的时候,也仍然用着交换机。只有和外面更大的世界交流的时候才用到路由器与防火墙。
总结:交换机适合局域网内互联,路由器实现全网段互联,防火墙用来过滤交互时不需要的数据。
他们之间的链接是这样的:路由器-防火墙-交换机,然后交换机再连接其他网络设备。
06 交换机和路由器的区别
1.工作地点不同
根据 OSI模型 的网络体系划分,自底向上,路由器 工作在第三层(网络层),而我们常说的 交换机 工作在第二层(链路层)(目前有更加高级的三层交换机,四层交换机,甚至还有七层交换机)。
2.工作机制不同
路由器与交换机的主要工作如下:
路由器:寻址,转发(依靠 IP 地址)
交换机:过滤,转发(依靠 MAC 地址)
我们可以看出这两者的主要工作就是转发数据,但是不同之处是,依靠的地址不同,这是一个根本区别!
路由器 内有一份路由表,里面有它的寻址信息(就像是一张地图),在收到网络层的数据报后,会根据路由表和选路算法将数据报转发到下一站(可能是路由器、交换机、目的主机)。
交换机内有一张MAC表,里面存放着和它相连的所有设备的MAC地址,它会根据收到的数据帧的首部信息内的目的MAC地址在自己的表中查找,如果有就转发,如果没有就放弃。
我们来看一个网络拓扑图例子:
通过拓扑图我们应该知道:
每一个 路由器 与其之下连接的设备,其实构成一个局域网;
交换机 工作在 路由器 之下,就是也就是交换机工作在局域网内;
交换机 用于局域网内网的数据转发,路由器 用于连接局域网和外网。
整理:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部