计算机网络之我见-通俗理解计算机网络(二)

本篇主要讲解网络中的设备节点:交换机

首先明确一点:交换机工作在链路层,路由器(下篇再讲)工作在网络层,网络层的通信依赖于链路层的通信,通俗的理解就是计算机更上层的通信基础是下层必须有更基础的通信方式,本篇最基础的通讯方式是由交换机为核心组成的网络--链路层网络

 交换机

1 用交换机组网的网络结构

交换机工作在链路层,组成链路层的基本设备主要就是多个带网卡的主机和一个或多个交换机,互相连接的方式主要是一台交换机的多个接口用网线分别连接到多个主机的网卡,多台交换机之间用网线连通组成更大的网,组成一个或多个根节点的树形结构网络

2 以交换机为核心的网络 主机节点间如何通信

每个主机的网卡都有一个全球唯一的地址-MAC地址,主机节点间通过指定对方网卡的MAC地址来通信,由于主机都是连接到了交换机上,这就要求交换机能够接收并识别不同MAC主机,同时又能将数据包转发到目的MAC的主机;交换机如何才能实现转发?最简单的做法就是广播,收到一个主机网卡发来的数据包后,不管该数据包的目的MAC(目的主机的网卡MAC)具体是啥,将数据包转发到交换机的所有出口接口上去,这样和交换机相连的所有主机的网卡都能收到数据包,主机网卡只需要做一个判断:判断数据包中的目的MAC地址是不是和自己的MAC地址一致,一致的话就收下,不一致就丢弃,这样就实现了数据包从一个主机到另一个主机的通信。需要注意的一点是:广播的数据包可以从一个交换机传递到相连的多个交换机,其他交换机收到数据包后同样做广播操作来传递给和自己相连的所有主机网卡,这样就实现了跨交换机的更大的网络中的主机网卡间的互相通信,逻辑上可以这样理解:多个交换机组成的网都属于一个网、一个广播域、多个交换机起到了数据中间点的作用。

说到数据包的广播,大家也许会发现:如果网络内多个主机节点都在互相通信,那么广播包就会充斥整个网络,明明是主机节点间的一对一的通信,为了送达数据包却成了1对N的通信,其中N-1个数据包的转发都是无效的,既给交换机造成了一定的压力,又大大占用了网络线路的带宽,这种通信方式注定是低效的;有没有办法能一定程度上减少广播方式发送数据包呢?有,交换机采用了这样一种方式来减少广播:记住交换机每个网络接口上的来源数据包的MAC地址,做成一张由接口号到MAC地址的1对1或者1对多的映射表,这样当下次接收到数据包的时候,先取出目的MAC地址查表对应应该转发到哪个接口上去,如果表中查不到再进行广播方式发送到所有接口,通过这种自学习记录MAC的方式,能够大大减少无用广播包的发送。

然而,一个问题是,交换机只能记录入口的数据包的源MAC地址和交换机接口的对应关系,假设这样一种情况:一个主机网卡只是作为一个服务器角色被动的接收其他客户端角色的主机网卡发送的数据包,由于它从不主动的向其他主机发送数据,那么交换机就不会建立接口到该MAC地址的映射关系,基于这种情况的存在,交换机对映射表中不存在的目的MAC地址,只能仍然采取广播转发的形式发送到所有的接口。上面的假设是我自己假想的,不管上面的假设合不合理,我想说的是交换机肯定是不能完全避免广播形式转发的,尤其是当用多个交换机组成一个相当大的大型网络时,这种交换机到交换机间级联式的广播数据必然会造成一股“广播风暴”,会严重占用线路带宽,线路有的有效利用率会很低,一句话 适用于小型网络的组网,不适用于大型网络。

上面所讲的“广播风暴”有没有办法避免呢?有,而且思路也不难,那就是尽量把广播隔离在一个小的网络范围内,我们称为“广播域”吧,多个广播域间通信的时候我们只要判断出数据包应不应该广播到另外的广播域,只有需要的时候才传递给另外广播域。那该怎么对交换机进行改进才能实现上面说的效果呢,其实如果把交换机再做的高级一点,不仅能够记录从交换机入口接口来的MAC,还能知道当目的MAC不在学习表中时应不应该转发给其他相邻交换机就可以了。要做到这一点并不容易,至少应该增加一个“网络号”的概念(拿到一个MAC就能知道该MAC所属的网络号),同时交换机必须知道自己负责的广播域中的主机所属的“网络号”,另外相邻交换机必须能够互相交流各自负责的主机所属的网络号,只有有了这些信息,交换机才能有选择的隔离广播,更加有效的利用网络带宽!

上面所说的网络号其实就是IP地址的网络号,那个改进的交换机设备其实就是路由器,太累了  下篇再讲~

2018年7月30日 12:50 晴  -- 孔令宽

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值