ping过程详解

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是自己,将包留下,进行解封装,将数据传到运输层再到应用层。