这个很复杂;举个例子给你:
你主机的IP为192.168.1.1,网关为192.168.1.254,NAT对用的公共IP为202.0.0.1,你要访问的internet主机为1.1.1.1(域名为www.test.com)
(1)你主机首先使用DNS解析www.test.com的IP为1.1.1.1;同时使用ARP解析到网关的MAC
(2)你主机将访问的数据封装在目的IP地址为1.1.1.1目的MAC地址为网关的MAC的数据包中;并将数据发给网关;
(3)网关将受到数据后将源IP和MAC换成202.0.0.1和网关自己的MAC,同时解析下一跳的MAC,将目的MAC换成下一跳的MAC,发送数据包到下一跳;
(4)下一跳接数据包,利用ARP解析下下一跳的MAC,将源MAC和目的MAC换成自己的MAC和下下一跳的MAC,发送数据包;
不断的重复步骤(4)直到到达要访问的主机www.test.com
其中涉及到路由的选择我没有讲,不知你明不明白哦
假定192.168.1.1这台电脑叫A,那A在发送数据给网关的时候,网关会做这样一条记录:192.168.1.1 xxx(端口号) 202.0.0.1 每一台电脑发送数据时,网关都会进行这一操作。当数据返回的时候,网关会根据端口号(一一对应并且不会重复)知道是应该把数据发送给A电脑,然后就是arp解析出A的mac,再进行封装最后是发送数据到A