文章目录
这篇博客主要复习 TCP/IP 四层模型中的重点协议网络。
应用层
DNS协议
DNS,即Domain Name System,域名系统。DNS是一整套从域名映射到IP的系统。也叫做域名解析协议,既是一个应用层协议,又是一套系统。
当我们在浏览器中搜索一个网站时,浏览器会根据域名找到对应的IP地址。为什么要使用域名呢?
TCP/IP中使用IP地址来确定网络上的一台主机,但是IP地址不方便记忆,且不能表达地址组织信息,于是人们发明了域名,并通过域名系统来映射域名和IP地址。
域名首先是一个字符串,比如www.baidu.com 、www.sogou.com …
域名系统为一个树形结构的系统,包含多个根节点。其中:
- 根节点即为根域名服务器,最早IPv4的根域名服务器全球只有13台,IPv6在此基础上扩充了数量。
- 子节点主要由各级DNS服务器,或DNS缓存构成。
- DNS域名服务器,即提供域名转换为IP地址的服务器。浏览器、主机系统、路由器中都保存有DNS缓存。
- Windows系统的DNS缓存在 C:\Windows\System32\drivers\etc\hosts 文件中,Mac/Linux系统的DNS缓存在 /etc/hosts 文件中。
网络通信发送数据时,如果使用目的主机的域名,需要先通过域名解析查找到对应的IP地址。
- 域名解析的过程,可以简单的理解为:发送端主机作为域名系统树形结构的一个子节点,通过域名信息,从下到上查找对应IP地址的过程。如果到根节点(根域名服务器)还找不到,即找不到该主机。
- 域名解析使用DNS协议来传输数据。DNS协议是应用层协议,基于传输层UDP或TCP协议来实现。
如今,使用使用host的场景一般是进行测试程序时,修改host文件,把域名映射到测试服务器IP上(保证不修改源代码进行测试,也不会影响到正常的线上环境)。实际生活中,我们可能会频繁访问DNS服务器?这个如何解决?
① 浏览器/客户端对解析结果进行缓存
② 设置多台DNS服务器(根域名服务器)
③ 构建自己的DNS域名服务器镜像
④ 针对DNS服务器作镜像时可以按域名进一步划分
NAT
之前我们提到,IPv4协议中,IP地址数量不充足的问题。NAT(网络地址替换)技术是当前解决IP地址不够用的主要手段,是路由器的一个重要功能,具体体现在:
NAT能够将私有IP对外通信时转为全局IP。也就是就是一种将私有IP和全局IP相互转化的技术方法。
很多学校,家庭,公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP;全局IP要求唯一,但是私有IP不需要;在不同的局域网中出现相同的私有IP是完全不影响的。
NAT IP转换过程:
NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
NAT路由器收到外部的数据时,又会把目标IP从202.244.174.37替换回10.0.0.10;
在NAT路由器内部,有一张自动生成的,用于地址转换的表;
当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系。
NAPT
在NAT的基础上,我