路由器是怎样进行地址转换的

SNAT源地址转换时根据五元组的唯一性来转换的。五元组指(源IP,源端口,目的IP,目的端口,协议)那么一个客户端x访问服务器经过路由后,未转换:(src_ip,x_port -\u0026gt; dst_ip,dst_port,tcp)转换后:(wan_ip,x_port -\u0026gt;dst_ip,dst_port,tcp)假设同个局域网的另一个用户源端口也是用x_port,但访问另一个服务器,那么SNAT后还是可以(wan_ip,x_port)未转换:(src_ip_B,x_port -\u0026gt;dst_ip_Y,port,tcp)转换后:(wan_ip,x_port -\u0026gt;dst_ip_Y,port,tcp)总而言之,SNAT时是尽量用原来的端口,然后看五元组是不是已经存在,如果已经存在,那么这时候才换端口。(这部分可暂时不管:当然有些特殊协议,比如ftp和sip,由于穿透问题,有些路由器会建立期望连接,外部就能主动访问内部主机,对协议应用层的地址转换就有可能遇到端口不够用的情况了。)
■网友
napt,有rfc,可以去看看
■网友
我理解的是,一个私网ip对公网的一个端口号。而私网ip内程序的端口,是包含在这个私网IP内的数据。一级包着一级吧。又不是程序端口对应公网端口。


    推荐阅读