ping命令的处理过程
- |
- 浏览:160
- |
- 更新:2013-05-28 09:46
#ping xxx.xxx.xxx.xxx(A到B)
A:构建icmp数据包data,用icmp协议把data 连同A的IP交给IP层
IP层把B的IP作为目的地址,A的IP作为源地址,加上其他的控制信息构建IP数据包
获取B的mac地址:
根据B的ip地址和子网掩码,检测是否属于同一子网:
属于同一子网,直接在本网络查找
查找本机的ARP的缓存,找到B对应的MAC地址
缓存中找不到,则应该是之前没有通信过,就发一个ARP请求广播,得到B的MAC地址
不属于同一个子网,则直接交给路由器处理,就是获取路由器的MAC(步骤同上)
交给数据链路层,构建数据帧,发送B
B收到数据帧后,检测数据帧的目的地址,若不是发给本机的数据帧则丢弃。若是,则接收,然后提取处IP数据包给IP层处理,然后提取数据给icmp协议处理,处理后,构建icmp应答包,发送给A,过程同上。