一般上网的流程分析
专用地址
问题:
像类似192.168.1.xxx或192.168.0.xxx等,可以说这两个网段的地址几乎每家每户都在用,那么为什么?不是说IP地址应该是唯一的吗?
A类:10.0.0.0—10.255.255.255 10.0.0.0/8
B类:172.16.0.0—172.31.255.255 172.16.0.0/12
C类:192.168.0.0—192.168.255.255 192.168.0.0/16
私有地址也叫专用地址或可重用地址,它本身是可路由的,只能用于一个机构的内部通信,不能用于和互联网上的主机通信。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。也就是说这些地址不会作为目的地址出现在互联网中,只用于家里、校园和企业等局域网内。
为什么私有地址不会作为目的地址出现在互联网中?
为了提高因特网上的数据包传输效率,因特网上的路由器通常不检查数据包中的“源IP地址”,只检查“目的IP地址”,所以目的IP地址为私有ip地址的数据包会被因特网上的路由器丢掉。
如图,假如数据包是这样到达服务器的,路由器假如不做任何处理,(实际上会进行网络地址转换)。那么,目的地址为私有地址的数据包是不能够回到主机 192.168.1.100 。因特网中的路由器会将其丢掉,因此,私有地址是不能用于访问互联的。

那么问题又来了,我们电脑的ip地址一般用的都是私有地址,那么我们是怎么上网的?
答案是使用公网IP地址来上网。我们一般向网络运营商开通上网服务时,会分配一个公网IP地址(也有很多使用的是内网IP地址,相当于是多重网络),只不过有些不是固定的公网IP地址,我们实际上网是利用这个公网IP地址,有了公网IP地址就可以访问互联网了。
如何利用这个公网IP来上网的?
NAT——网络地址转换(Network Address Translation)
这里的NAT是将私有IP地址通过边界路由转换成外网IP地址,在边界路由的NAT地址转换表记录下这个转换映射记录,当外部数据返回时,路由使用NAT技术查询NAT转换表,再将目标地址替换成内网用户IP地址。
访问服务器示意图:

1. 当我们向服务器发出请求时,就相当于访问互联网,这时我们主机发出的数据包的源ip地址是私有地址,当数据包到达路由器后,而路由器的WAN口又有一个公网ip地址,那么路由器会对我们的数据包进行SNAT(源地址转换)操作,将源ip地址替换为能上网的公网ip地址,这样,就通过这个公网ip地址来访问服务器。
2. 当服务收到请求后,它会认为是 171.213.12.121 这个IP地址在与它通信,所以服务器回应消息的数据包中会以 171.213.12.121 为目的ip地址。到达路由器后,根据SNAT(源地址转换)时生成的映射表,找到对应的私有地址 192.168.1.100,将数据包发送给该主机。

浙公网安备 33010602011771号