提要
Q:
- 什么是子网掩码?为什么需要子网掩码?ip跟子网掩码的关系?
- 数据链路层做了什么?ARP干了什么?其中mac的一些作用?
网络层
数据结构
要回答上述问题,需要从网络层开始讲起。
网络层-数据包有源IP地址,目的ip地址等信息
路由器(网关设备)
我们都知道网络层的ip协议(IP协议提供面向无连接不可靠传输功能),负责在源地址和目的地址之间传送数据包,经常和路由器谈及一起,ip协议选择适合的路线传送,ip切分的不同数据包经过不同的路线(路由器)到达最后的终点,其中路由器相当于一个快递公司在每个城市的中转站点。
路由器根据数据包的IP地址查找路由表(地图),然后以接力棒的方式逐跳转发直到目标服务器;
链路层
数据结构
链路层-数据帧附加上了源mac地址,目的mac地址等信息
ARP
在回答什么是子网掩码?为什么要子网掩码?这个问题前需要引出ARP协议。
ip地址和mac地址
ip地址是ip协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,可以随时变动。
mac地址:物理地址,网卡芯片里的地址
q:之前我对此有个疑问:有了网络层的ip地址,不就可以确定目的主机了吗?有了ip为什么还需要mac?这个问题还可以是有了mac,为什么还要ip
这里我另写了篇文章回答
有了ip为什么还需要mac(未完待续)
- MAC地址表是二层设备中存储“MAC地址”和“转发端口”映射关系的表
- 对于三层设备的三层端口来说,通常是基于报文目的IP地址,对照自身的路由表来选择转发路径,只有二层设备基于“MAC地址”进行数据帧的转发。
二层基于MAC地址转发数据帧,三层基于IP地址转发报文
二层设备(交换机或其他)在进行数据帧的交换,需要用到主机间的mac地址,完整过程就是主机依靠IP-MAC的对应关系封装数据帧,二层设备在收到含有目标MAC地址的数据帧后,查看自己的“MAC地址表”,便知道这个MAC地址该从自己的哪个端口发送出去。
而IP->MAC需要arp协议,目标主机的IP地址映射为对应的MAC地址了,然后就可以将目标主机对应的MAC地址封装在数据帧中发给交换机。
交换机有那么多端口,它怎么就知道你发送的这个数据帧的目的地址该从自己的哪个端口转发出去呢?因此,交换机自己还要维护一张“MAC地址表”,用来记录目的MAC地址-端口的映射关系.
image.pngIP数据包在三层网络中的寻址通过路由器和各种路由协议来完成
PC0想要访问PC1,通过ip和子网掩码判断出不是同一子网,则需要经过交换机发送至默认网关(Router0),其中过程有:
- 经过交换机,通过ARP表找到路由器入口(F0/0)192.168.0.254的mac地址
- 通过交换机上的mac表找到mac-port的映射,找到数据帧发送的端口
现在数据帧到达了路由器(192.168.0.254),路由器收到数据包后会查看数据包的目的IP字段(192.168.1.1),看路由表发现正好有这个条目,到192.168.1.0/24要从F1/0这个端口发送出去。
之后又是进行二层的数据帧交换。
*在PC0到路由器的F0/0之间的网络和F1/0到PC1之间网络,都是MAC地址负责寻址,IP地址只在负责连接两个不同网段的路由器上才发挥指导作用。
ARP协议
ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址。
ARP
子网掩码
子网掩码结合本地IP地址后,用来确定目标IP是否在“逻辑上”与本计算机在同一个网络内
参考
子网掩码怎么理解?
如何形象生动的解释ip地址、子网掩码、网关等概念?
【图文】快速理解抽象的网络基本概念_百度文库
子网
How The Internet Works-youtube
图解ARP协议(一)
网友评论