DNS、ICMP协议、NAT技术

目录

DNS

使用dig工具分析DNS过程

 当在浏览器输入url会发生什么?

ICMP协议

NAT技术

NAT IP转换过程

NAT技术的缺陷

代理服务器


DNS

        DNS全称为Domain Name System,中文名为域名系统。其作用是将域名转换为对应的IP地址。DNS采取分布式的数据库结构,通过一系列的查询和响应步骤,最终实现域名到IP地址的映射。 DNS协议运行在UDP协议之上,使用端口号53。

DNS、ICMP协议、NAT技术_第1张图片

        最初使用hosts文件来描述主机名和IP地址的关系,通过互连网信息中心(SRI-NIC)来管理这个hosts文件的,计算机需要定期下载更新版本的hosts文件才能上网,为了更方便使用,产生DNS系统,维护主机IP和主机名之间的关系,新计算机接入网络就将,将这个信息保存入数据库,用户输入域名,自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址。至今, 我们的计算机上仍然保留了hosts文件. 在域名解析的过程中仍然会优先查找hosts文件的内容,在/etc/hosts下,比如:

DNS、ICMP协议、NAT技术_第2张图片

使用dig工具分析DNS过程

DNS、ICMP协议、NAT技术_第3张图片

解析:
1.首行: dig 指令的版本号
2. status 参数:NOERROR 表示查询成功
3. QUESTION SECTION:所查询的域名
4. ANSWER SECTION:查询结果,这个结果先将 www.baidu.com 查询成了 www.a.shifen.com,再将www.a.shifen.com 查询成了两个 ip 地址
5. 最下面是结果统计:包含查询时间和 DNS 服务器的地址等

 当在浏览器输入url会发生什么?

1.浏览器在缓存中查找域名对应的IP地址,如果没有找到就向DNS服务器获取IP地址,从区域DNS服务器开始请求,没有就往上直到根域名服务器为止,这个过程是递归查找的过程

2.客户端与服务器建立TCP的三次握手,建立连接

3.浏览器向web服务器发起HTTP请求

4.服务器收到请求构建HTTP响应并返回

5.浏览器对响应解析,渲染页面

6.页面显示完成后,浏览器发送异步请求,让客户端与服务器端保持着联系。

7.客户端与服务器建立TCP的四次挥手,断开连接

ICMP协议

ICMP是一个网络层协议,作用是:

确认IP包是否成功到达目标地址
通知在发送过程中IP包被丢弃的原因
ICMP也是基于IP协议工作的,但是它并不是传输层的功能,因此人们仍然把它归结为网络层协议
ICMP只能搭配IPv4使用,如果是IPv6的情况下,需要是用ICMPv6

 比如ping命令就是基于ICMP协议实现的,可以用来验证网络是否通畅:

DNS、ICMP协议、NAT技术_第4张图片

 比如下面的工作流程:DNS、ICMP协议、NAT技术_第5张图片

注意:此处 ping 的是域名,而不是url,一个域名可以通过DNS解析成IP地址。ping命令没有端口的概念,因为工作在网络层,端口号是传输层的概念。
ping命令不光能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live, 生存周期)。
ping命令会先发送一个 ICMP请求报文给对端
对端接收到之后,会返回一个ICMP响应报文
DNS、ICMP协议、NAT技术_第6张图片

域名和URL(Uniform Resource Locator)是互联网中两个重要的概念,它们有一定的区别。

域名是由一串用“.”分隔的名字组成的Internet上某一台计算机或计算机组的名称。作用是用来将主机名和域名转换为IP地址的工作。例如,“www.baidu.com”中,“baidu.com”就是一个域名,它指向了百度公司的服务器IP地址。

而URL则是用来描述一个资源在万维网上的地址。一个URL唯一标识一个Web资源,通过与之对应的URL即可获得该资源。URL通常由多个部分组成,包括协议类型、主机地址、端口号、路径和查询等信息。例如,“http://www.baidu.com/”就是一个URL,其中“http”是协议类型,“www.baidu.com”是主机地址,“/”是路径。

简单来说,域名是将IP地址转化为易于记忆的名称,而URL则是用来定位和访问一个具体的网络资源的地址。

 traceroute命令也是基于ICMP协议实现,能够输出可执行程序主机,一直到目标主机之前经历多少路由器:

DNS、ICMP协议、NAT技术_第7张图片

NAT技术

        NAT是(Network Address Translator)用于在本地网络使用私有地址,在连接互联网的时候使用全局IP地址的技术,除了转换IP地址外,还出现了可以转换TCP,UDP的NAPT(Network Address Ports Translator)技术。

技术背景:解决IPv4地址不足的主要手段,允许不同局域网的私网IP地址不同,在对外通信的时候将私网IP转化为公网IP,公网IP是全局唯一的。

NAT IP转换过程

DNS、ICMP协议、NAT技术_第8张图片

比如主机A对外通信的时候,NAT路由器将源地址替换为全局的IP地址202.244.174,37,路由器受到外部数据的时候,目标地址则先被转换为私有IP地址以后再被转发。在NAT路由器内部有一张自动生成的表,用来维护私有IP到公网IP的映射关系。

那么当多个主机访问外网的时候,返回的的数据目的IP都是相同的公网IP,该返回给哪一个主机呢? NAPT技术可以解决这个问题,就是在这张转换表中,维护私网IP到公网IP+Port的映射关系。如图:

DNS、ICMP协议、NAT技术_第9张图片

 可见不同主机在转换表中转化为了相同的IP地址和不同的端口号,从而能够使内网IP和公网IP+端口实现一一对应关系,所以能在服务端返回数据的时候返回给确定的主机。

NAT技术的缺陷

NAT技术的缺陷主要有以下几点:

  1. 无法支持一些应用程序,如IP电话、视频会议等,因为这些应用程序需要在Internet上建立点对点的连接,而NAT会改变IP地址和端口号,导致连接失败。NAT依赖转换表, 所以无法从NAT外部向内部服务器建立连接,而且转换表的生成和销毁都需要额外开销,通信过程中一旦NAT设备异常, 即使存在热备, 所有的TCP连接也都会断开(注:可以使用NAT内网穿透技术,让程序维护这张表,从而让主机暴露在外网上)

  2. NAT会增加网络延迟,因为每次数据包都需要进行地址转换。

  3. NAT会增加网络负担,因为每次数据包都需要进行地址转换,而且NAT设备需要维护转换表,消耗一定的计算资源和存储资源。NAT会导致网络不稳定,因为NAT设备可能会出现故障,导致网络中断或者数据丢失。

  4. NAT会增加网络安全风险,因为它会隐藏内部网络的真实IP地址,使得攻击者难以直接攻击内部网络,但同时也会增加内部网络受到攻击的风险,因为攻击者可以通过伪造源IP地址来绕过NAT的保护。

  5. NAT技术也会影响网络的可扩展性,因为它会限制网络的拓扑结构,使得网络的规模和复杂度受到一定的限制。

代理服务器

代理服务器与NAT技术有点像,客户端向代理服务器发送请求,而代理服务器将真正的请求转发给服务器,服务器将结果发送给代理服务器,代理服务器将结果再返回给客户端。

代理服务器与NAT技术的不同在于:

1.从应用方面:NAT设备是网络设备之一,解决的是IP地址不同的问题,代理服务器则贴近具体应用,比如用其实现,或者游戏加速器等等。

2.从底层实现上:NAT工作在网络层,代理服务器工作在应用层。

3.从使用范围上:NAT在局域网的出口部署,代理服务器既可以在局域网也可在广域网(跨网络)上。

你可能感兴趣的:(计算机网络,网络,服务器,网络协议)