引子
在学习 Web 和 Python 爬虫的时候,我们都需要向公网 IP(通过 URL)进行请求,然后得到响应数据。一个典型的网络系统架构图如下所示:
但是我们并没有公网 IP,我们通常使用的是 192.168 开头的局域网 IP 地址,或者是网络服务商提供的动态的公共 IP 地址。那么,Web 服务器到底是怎么准确地找到我们并且数据发给我们请求的应用呢?——答案就是 NAT。
NAT 技术也叫网络地址转换技术,是一种私有地址转换成合法/公网 IP 地址的技术。下面我们一起来了解一下,什么是私有地址,什么是合法 IP 地址,以及为什么要引入 NAT 技术。
当你了解了 NAT,相信也会对 Python Web 编程和架构设计有更深的理解!
NAT 技术
私有地址和合法地址
如果组建一个局域网,其中的 IP 地址仅用于局域网内部通信,而不能直接连到 Internet 的话,那么这些IP地址就是局域网的私有 IP 地址。理论上所有 IP 地址均可作为私有 IP 地址,但是 RFC1918 规定私有 IP 地址不能出现在 Internet 上,所以规定了私有IP地址为以下三种:
10.*
,前8位是网络号,共16