网络设备相关的一些概念

MAC地址、交换机

远古时期电脑是单独存在的,直到某天想和另一台电脑想连接,这个时候就在两台电脑之间各开一个网口用一根网线相连接,然后就可以相互通信了,你不用管为什么如此操作之后他们就能通信了,这已经超出移动开发所需要掌握的范围了,反正就是可以,某天又有10台电脑也想加入进来,那岂不是需要在身上开10个网口?这不现实 所以人们发明了交换机电脑都连它身上的网口就行了

一端发送后交换机把消息转发到所有机器上去,这就很无脑了,其它端怎么知道是不是发送给自己的呢?于是每台电脑取一个全局唯一的名字A、B、C…后来就取了个更高级的名字MAC地址,这也就是都说mac地址是物理地址的由来。后来发消息的时候你只需要这样:
在这里插入图片描述

如此接收端就能知道是不是发送给自己的了。
在这里插入图片描述

实际上交换机会维护一个MAC地址的表,当拿到消息的时候发现目标MAC是机器B的mac地址它就会直接转发给B而其它机器不会收到消息了。当然这张表最开始是空的所以如果没有找到对应的目标MAC地址,则会把消息转发给所有端口,最终目标端会做出相应的响应,然后交换机会把响应的端口和mac地址记录下来。

路由器、IP

随着机器的增多交换机的网口也不够用,难道再交换机连接交换机,这样无休止的连下去吗?肯定不能这样,而且这有一个致命的问题如此连下去那一个交换机的表中得维护多少MAC地址?所以解决办法就是引入一个新的设备它和交换机连接的其它端口一样都有独立的MAC地址,并且能把消息做一次转发,由此诞生了路由器,路由器具有独立的MAC地址并且平时不是经常听到路由器寻址这种描述吗,如下图:在这里插入图片描述
如图所示路由器的每个端口都有自己的mac地址,交换机当然也会把路由器的地址维护进去,现在就有个新的问题了交换机怎么知道该不该把消息发送给路由器呢?如果维护的表中没有相匹配的mac地址就发送给路由器?还是没有匹配的mac地址就让交换机给每端都发一条消息?毕竟有些端可能从未响应过,然后设置一个时间超时了就认为不在这个局域网中再发送给路由器?,这个时候就发明了IP,一个32位的编号转成十进制后就类似于192.168.0.1,我们可以认为192.168.0在一个局域网中而192.168.1在另一个局域网中注意:虽然mac地址是唯一的但是是厂商自己分配的,规则不一样所以不能使用这种比较的规则

到此一个消息体就包含了ip地址+mac地址+数据体如下:
在这里插入图片描述

结合之前的图观看,假如 A 给 B 发送数据,由于它们直接连着交换机,所以 A 直接发出数据包即可,其实网络层没有体现出作用。而A给C发数据则需要路由器转发,但是怎么知道需要路由器转发呢?判断依据就是子网,即如果源ip和目标ip在同一个子网中就由交换机直接发送,不在同一个子网就由路由器转发,如何判断是否在一个子网中就需要用到子网掩码假如机器A的子网掩码定为 255.255.255.0这表示,将源 IP 与目的 IP 分别同这个子网掩码进行与运算,相等则是在一个子网,不相等就是在不同子网,就这么简单
比如
A电脑:192.168.0.1 & 255.255.255.0 = 192.168.0.0
C电脑:192.168.1.1 & 255.255.255.0 = 192.168.1.0
如此机器A就知道目标和自己不在同一子网下,于是把包发给路由器,就不管了,之后怎么转发A 不关心。
现在又有个新问题A 如何知道,哪个设备是路由器?其实说发给路由器不准确,应该说 A 会把包发给默认网关
对 A 来说,A 只能直接把包发给同处于一个子网下的某个 IP 上,所以发给路由器还是发给某个电脑,对 A 来说也不关心,只要这个设备有个 IP 地址就行,所以默认网关,就是 A 在自己电脑里配置的一个 IP 地址,以便在发给不同子网的机器时,发给这个 IP 地址
在这里插入图片描述

ARP

最后一个问题在发出的消息体中包含目标机器的MAC地址,A怎么知道B、C的mac地址呢?就是通过ARP协议解决,比如不知道B的MAC地址,则会广播一条 arp 请求,B 收到请求后,带上自己的 MAC 地址给 A 一个响应。此时 A 便更新了自己的 arp 表。
这样通过大家不断广播 arp 请求,最终所有电脑里面都将 arp 缓存表更新完整。

交换机、MAC地址在数据链路层,交换机用于组建局域网。路由器、IP地址在网络层。路由器就是网关的一种(网关是一个概念,指的是能够连接不同网络的一类设备)它把组好的局域网连接起来,交换机是看门的大爷,路由器是快递员

以上只是个人了解到的一个大概流程,有很多地方不够严谨,只为学习之余记录自己的一些心得体会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值