1、ping命令的简单流程
ping命文件尺寸所限,详细见下面链接令是检测源和目的ip间ip层导通性的icmp协议,属于ip层协议。源主机ping发出含一串数据的包(如123456789abcde之类),封装在ip层里,对方收到后,把这串包原路送回来,源pc收到后,认为是对方可达。所以它涉及二层的mac地址和ip层的交互。当对方存在问题时(ip地址不存在,没有路由等),对方的ip或者经过的网络节点会返回icmp的差错消息给终端源ip。
ping的过程是,输完命令后,根据目的ip,先查路由表,看目的主机ip是否走直连路由,是的话就去检查mac地址缓存表,看是否有该地址的mac地址缓存,没有的话,是用直连路由的一个本机接口去发出请求目的ip的mac地址的arp请求request消息,收到arp响应后,用这个mac地址封装二层数据,发出icmp协议的ping请求消息。mac地址缓存里有,直接封装ping的request消息。arp消息没有得到mac地址,不发出ping的request消息,回显端口不可达。
查路由表发现不是直连路由和静态路由的话,走默认路由的话,就去查是否有默认网关的mac地址,没有去请求网关的mac地址,有就直接封装ping的request消息。
mac工作在-二层:数据链路层
无线配置管理服务cfg80211
指令流程:iw<--netlink-->cfg80211<--cfg80211_ops-->mac80211
详细网址 : wifi底层学习之路:二,无线配置管理服务cfg80211 - 知乎
iw-->cfg80211-->mac80211-->无线驱动(ath9k等
2、三层转发和二层转发有什么区别呢?
1.数据转发依靠的关键字不同,二层转发主要依靠MAC地址,而三层转发主要依靠IP地址。
2.数据交换的范围不同,二层交换指在同一网段内的通信,三层交换指跨网段的通信。
3.在三层转发的过程中,还要进行二层的封装。也就是说,在转发过程中二层帧头中的(源、目的)MAC地址是要改变的。但是IP数据报中的源IP和目的IP地址是不会改变的