ping过程详解
主机A ip:192.168.1.2
设备A(网关) wan:58.56.57.122
lan:192.168.1.1
设备B(路由) wan1:58.56.57.121
wan2:58.56.58.2
主机B ip: 58.56.58.3
主机A: ping 58.56.58.3
本机IP和目的IP不在同一段,直接将包发给网关。
网关的IP知道,但是MAC不知道。发ARP请求,获得网关的MAC。
有了网关的IP和MAC,将包发给网关。
包内容:源MAC:主机A MAC 目的MAC:网关MAC
源IP:本机IP 目的IP:主机B IP
设备A: 网关接受到包后,发现目的MAC是自己,将包留下,目的IP不是自己,继续发给网关。
通过发送ARP请求,获得网关的MAC。
有了网关的IP和MAC,将包发给网关。
包内容:源MAC:设备Awan的MAC 目的MAC:设备Bwan1的MAC
源IP:设备A IP 目的IP: 主机B IP
设备B: 接受到包后,发现目的MAC是自己,将包留下,通过子网掩码计算,发现目的IP是本网段,查询路由表,该IP在某口。
发送ARP请求,获得主机B的MAC,有了MAC将包继续发给主机B
包内容:源MAC: 设备B MAC 目的MAC:主机B MAC
源IP: 设备A IP 目的IP:主机B IP
主机B: 接受到包后,发现目的IP是自己,将包留下,进行解封装,将数据传到运输层再到应用层。
应用层收到ping 请求后,发送一个ping回应报文。
目的IP不在本网段,直接将包发给网关。查询ARP表,获得网关MAC。
包内容:源MAC: 主机B MAC 目的MAC:设备B MAC
源IP: 主机B IP 目的IP:设备A IP
设备B: 接受到包后,发现目的MAC是自己,将包留下,通过子网掩码计算,发现目的IP是本网段,查询路由表,该IP在某口。
查询ARP表,获得设备A MAC。有了MAC将包继续发给设备A
包内容:源MAC: 设备B MAC 目的MAC:设备A MAC
源IP: 主机B IP 目的IP:设备A IP
设备A: 接受到包后,发现目的MAC是自己,将包留下,查询路由nat连接表,寻找ip+port关系对应的内网ip。
查询ARP表,获得主机A MAC。有了MAC将包继续发给主机A
包内容:源MAC: 设备A MAC 目的MAC:主机A MAC
源IP: 主机B IP 目的IP:主机A IP
主机A: 接受到包后,发现目的IP是自己,将包留下,进行解封装,将数据传到运输层再到应用层。