1:数据从发送者的应用层传递到传输层,封装端口信息,将数据传递给网络层,封装原IP,目的IP,这时计算机发发现目的IP为外网IP,就会将该数据发给自己的网关,于是数据到达链路层,链路层首先去查看ARP表,查看里面是否记录了网关的mac地址,如果没有记录,主机调用APR协议,广播得到网关的mac地址,并且更新路由表,然后封装原mac为主机的mac,目的mac为网关的mac,将数据传递给网关。
2:网关收到数据后,第一步先查看目的IP,目的网段是否和当前接口的网段像一致。
一:如果当前接口的网段和目的网段不一致:说明这个数据不会从当前路由器出去,必须交给另外一个路由器继续中转,于是改路由器查看路由表,寻找路由表中的下一跳信息,查看当前哪一个接口和下一跳相连,于是修改数据包中的原mac为这一个mac(就是与下一跳相连的接口mac—),目的mac为下一跳mac,将数据传递给下一跳。(如果当前网卡不知道下一跳的mac地址,将调用ARP协议广播得到下一跳的mac地址,修改原mac,目的mac)
二:如果当前接口的网段和目的网段一致时:直接将该数据从当前网卡发出,不用经过下一跳。
3:下一跳收到数据后,重复上一个路由器的动作,直到将数据传递给目的主机。
不同主机之间的通信图