DNS
DNS是一整套从域名映射到IP的系统(域名转IP)。TCP/IP中使用IP地址和端口号来确定网络上的一个程序,但是IP地址不便记忆,于是发明了一种叫主机名的东西,是一个字符串,并且使用hosts文件来描述主机名和IP地址的关系。
- DNS是应用层协议
- DNS底层使用UDP进行解析
- 浏览器会缓存DNS结果
NAT
路由器使用的技术,对私网IP和公网IP相互转换的一种协议
- NAT路由器将源地址局域网IP替换成全局网IP
- NAT路由器收到外部数据时,又会把目标地址从全局IP换为局域IP
- 在NAT路由内部,有张自动生成的地址转换的表
- 当一个局域网第一次向另一个局域网发送数据时就会生成表中的映射关系
NAT技术的缺陷
由于NAT依赖这个转换表,所以有很多限制
- 无法从NAT外部向内部服务器建立连接
- 转换表的生成和销毁都需要额外的开销
- 通信过程中,一旦NAT设备异常,所有TCP连接都会断开
NAPT
如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的,那么NAT路由器如何判定这个数据包转发给局域网的主机。为了解决这个问题,使用IP+port来建立这个关联关系。
转换局域网IP+局域网进程port和路由器公网IP+路由器端口号。