第零层
如果你的机器想跟另一个机器通信,用网线将他们互相连起来就行,但一个机器不可能有无数多的端口;
第一层物理层
集线器hub,mac地址(48位,前24位是生产厂商信息,后24位是厂商给之的系列号),无脑将所有电信号转发到所有出口(广播),如果是该机器的信息就收下,不是就丢弃,浪费很多通信资源;
优点:布局变得干净了,不用各个机器互联;
缺点:不安全,浪费网络资源
第二层数据链路层
目标:只将信息发给目标MAC地址指向的那台电脑。
交换机switcher,将信息转发到对应mac地址的出口,交换机维护一个MAC地址表,将mac地址和端口映射。当存在两个交换机连接时,每个交换机都需要存储全局的信息,以致每个信息都能找到mac地址对应的机器,用交换机连接构建出来的是以太网局域网(Local Network),当机器增多,单个交换机维护的信息太多,想到能不能有什么办法,以某种前缀为标识的在某个端口??
刚开始MAC地址表是空的如何逐步建立起来?
优点:同目标;
缺点:无法满足机器多的场景;
第三层网络层
路由器router,ip地址(8*4=32位,软件层面,可以随时更改),使用子网掩码,如果两个ip地址分别和子网掩码相与,结果一致,则说明在同一个局域网内,否则不是,每个路由器的每个端口都有一个独立的mac地址,每个路由器都维护着一张路由表,表明哪个网段的地址应从哪个端口出去。
- 机器怎么知道哪个设备是路由器?
在机器上设置默认网关,默认网关就是 A 在自己电脑里配置的一个 IP 地址,以便在发给不同子网的机器时,发给这个 IP 地址。
当信息被路由器从某个端口发出后,使用ARP地址解析协议,将信息包内的目的ip解析成mac地址,再传出。
https://mp.weixin.qq.com/s/hysITwzAqjYpQixkwT3D9g