网络中其他协议–DNS ICMP NAT
DNS(域名解析)–应用层
DNS下一层传输层协议为UDP协议。
为什么要有域名解析?
因为域名更好记。
域名简介
主域名是用来识别主机名称和主机所属的组织结构的一种分层结构的名称。
www.baidu.com
域名使用.连接
com:一级域名。表示这是一个企业域名。同级的还有“net”(网络提供商),“org”(非盈利组织)等。
baidu:二级域名,公司名。
www:只是一种习惯用法。表示主机支持的协议。
ICMP
面试题:telent是23端口,ssh是22端口,那么ping是什么端口?
ping命令基于ICMP,是在网络层,而端口号是传输层的内容。在ICMP中根本就不关注端口号这样的信息。
NAT
NAT技术是当前解决IP地址不够用的主要手段,是路由器的一个重要功能。
NAT能够将私有IP对外通信时转为全局IP,也就是一种将私有IP和全局IP相互转化的技术方法。
NAT IP转换过程
根据上图我们可知道NAT流程,客户端A要发送报文到服务器,首先要将报文发送至最近路由器,路由器将报文IP首部中的源地址改为路由器WAN口地址(因私有IP不能出现在广网中),然后再将报文发送至服务器。服务器对其做出应答时,将应答报文发送至路由器(应答报文源地址为服务器地址,目的地址为路由器地址),那么此时路由器要怎样将应答报文返回至客户端A呢?此时就需要NAPT来解决这个问题:
NAPT
再次看这个表进行客户端A访问服务器这个流程时,此时报文中的源地址与目标地址除了IP地址外还加上了端口号(IP地址标识互联网中唯一一台主机,端口号标识该主机上唯一一个网络进行,所以IP地址+端口号(套接字)这是互联网中唯一的一个进程)。此时路由器不仅会将源地址转换为WAN口地址,同时在路由器内部会维护一张NAT转换表,这样在服务器发送应答报文至路由器时只需要通过对比转换表(IP+端口号)即可找到发送端。
那么不加端口号只通过IP地址能达到这样的效果吗?
答案是不能。原因是若不加端口号时,服务器返回应答报文至路由器,此时路由器还是一对多不是一一对应(端口号标识唯一一个服务,客户端端口号随机)。
这种关联关系是由NAT路由器自动维护的。例如在TCP的情况下,建立连接时就会生成这个表项;断开连接时就会删除这个表项。
NAT技术的缺陷
由于NAT依赖这个转换表,所以有诸多限制:
1.无法从NAT外部向内部服务器建立连接;
2.转换表的生成和销毁都需要额外开销;
3.通信过程中一旦NAT设备异常,即使存在热备(在路由器中建立NAT转换表备表,当转换表有问题时立马切换到备表),所有的TCP连接也会断开。
NAT和代理服务器
路由器往往都具备NAT设备的功能,通过NAT设备进行中转,完成子网设备和其他子网设备的通信过程。
代理服务器看起来和NAT设备有一点像。客户端向代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器;服务器返回结果后,代理服务器又把结果回传给客户端。
NAT和代理服务器区别:
1.从应用上讲,NAT设备时网络基础设备之一,解决的是IP不足问题。代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙等;
2.从底层实现来讲,NAT是工作在网络层,直接对IP地址进行替换。代理服务器实在应用层。
3.从使用范围上讲,NAT一般在局域网的出口,代理服务器可以在局域网做也可以在广域网做也可以跨网。
4.从部署位置上看,NAT一般集成在防火墙,路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上。
代理服务器是一种应用比较广的技术
1.翻墙:广域网中的代理
2.负载均衡:局域网中的代理