Linux网络通信:其它协议及技术(DNS、ICMP协议、NAT技术)

前言

在之前我们了解了Linux网络通信环境中应用层、传输层、网络层、链路层的典型协议及相关知识后,其实在整个通信环境中还有一些其它的协议及技术,如:DNS、ICMP协议、NAT技术等,正所谓八仙过海,各显神通,它们也都有自己独特的一面,接下来我们就一起来认识一下它们吧。

一:DNS

域名:服务器地址的别名,便于我们记忆,其实通过域名访问服务器的时候最终还是通过解析获取服务器的IP地址来访问服务器的。

DNS(Domain Name System):域名系统,是一套从域名映射到IP地址的系统。用于存储IP地址与域名的映射关系,并且提供域名解析,通过域名来获取服务器IP地址。

1.1 域名服务器

域名服务器:存储域名与IP地址映射关系的服务器,而hosts文件记录了域名与IP地址的映射关系。

域名服务器的层级划分:

  1. 根域名服务器:最高级域名服务器,为了分摊访问压力进行容灾处理全世界一共有13台根域名服务器,分布在世界各地。
  2. 顶级域名服务器:这些服务器大多以所属的国家和所属组织的命名(.com 、.cn 、.gov 、.net)。
  3. 二级域名服务器:这些服务器大多被某一企业或者服务商所管理(.baidu.com 、.csdn.net)。
  4. 三级域名服务器:这些服务器大多以某一企业的分支来命名(.zhidao.baidu.com)。

通常情况下,当我们要访问某个域名时,会按照域名服务器的等级一层一层向下查询。

1.2 域名解析过程

当我们具体输入一个域名的时候,该域名是如何被解析的呢?

  1. 浏览器查看缓存:查看缓存中是否有对应域名的IP地址信息,如果存在则直接取出IP地址进行访问。
  2. 查看主机hosts文件:在hosts文件中寻找对应域名的IP地址信息,如果存在则返回。
  3. 请求本地域名服务器:在本地域名服务器中寻找对应域名的IP地址信息,如果存在则返回。
  4. 请求根域名服务器:在根域名服务器中寻找对应域名的IP地址信息,如果存在则返回。

如果不存在,则有两种查询方法:

  • 迭代查询:逐个访问各级域名服务器

当本地域名服务器查找不到对应域名的IP地址信息则主动请求根域名服务器,如果根域名服务器找不到对应域名的IP地址信息则给本地域名服务器返回顶级域名服务器地址,进而让本地域名服务器去请求顶级域名服务器。同理若顶级域名服务器找不到对应域名的IP地址信息则给本地域名服务器返回二级域名服务器地址,逐层往下。
在这里插入图片描述

  • 递归查询:逐层深入各级域名服务器

当本地域名服务器查找不到对应域名的IP地址信息则主动请求根域名服务器,如果根域名服务器找不到对应域名的IP地址信息则会主动去访问顶级域名服务器进行对应域名的IP地址信息的查找,如果找不到则继续向下级查找,逐层深入。
在这里插入图片描述

1.3 浏览器中输入URL

1.通过DNS将URL中的域名解析为对应的IP地址
2.根据HTTP协议格式组织请求数据
3.搭建TCP客户端与服务端建立连接,发送请求数据
4.等待响应,得到HTML响应后进行页面解析渲染
在这里插入图片描述
CDN服务器中存储静态缓存资源,使用户就近获取所需内容,降低网络拥塞,提高了用户访问响应的速度,和命中率。

关键技术:存储技术和分发技术。

二:ICMP协议

ICMP(Internet Control Message Protocol):Internet控制报文协议(网络层),它是TCP/IP协议簇的一个子协议,用于实现网络探测功能。

IP协议并不提供可靠传输,如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因,所以此时就需要用到ICMP来进行网络诊断。

ICMP的消息一般分为两类:

  1. 一类是通知出错原因
  2. 一类是用于诊断查询

通常我们想测试网络连通性时所使用的ping命令,就是基于ICMP协议

ping命令会先发送一个 ICMP Echo Request给对端;对端接收到之后, 会返回一个ICMP Echo Reply。

问题: ssh协议使用22号端口,telnet协议使用23号端口,ping使用多少端口呢?

答案: ping工具通过ICMP协议实现,进行网络探测,而ICMP协议是网络层协议,不涉及到端口,端口是传输层的信息。

三:NAT / NAPT技术

NAT技术和NAPT技术主要用于组建私网,对外使用统一地址,防止与外部地址冲突。

3.1 NAT技术

NAT(网络地址转换技术): 一般使用私网IP 作为局域网内部的主机标识,使用公网IP 作为互联网上通信的标识。内部结点要与外部网络进行通信时,就在NAT网关将内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet连接,通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用的IP地址空间的枯竭问题

NAT技术通常部署在网关设备,工作在网络层,主要进行IP报头中源端地址的替换,通过网关设备进行数据转发。

3.2 NAPT技术

如果私网中有多个主机同时访问同一个外网的服务器,并且服务器返回的数据中,目的IP地址都是相同的。那么此时,NAT路由器如何判定要把数据转发给哪一个主机呢?

NAPT(网络地址端口转换技术): 通过NAPT技术,将不同主机的发送端口号进行处理,使得发送的时候的时候虽然用的是同一个IP地址,但是端口号不同,并且将这些映射关系存于转换表中,等数据发送回来时,在转发给对应的主机。也就是<内部地址+内部端口>与<外部地址+外部端口>之间的转换。

3.3 NAT技术的缺陷

因为NAT网络地址转换技术完全依赖于转换表,所以有着很多限制。

  1. 装换表的生成和销毁都需要额外开销
  2. 通信过程中一旦NAT设备异常,即使存在设备,所有的TCP连接也都会断开
  3. 无法从NAT外部向内部服务器建立连接

四:代理服务

代理服务器就是个人网络与互联网服务商之间的中间代理机构,用户可以通过代理服务请求目标服务器,让代理服务器来获取目标服务器数据,再将数据转发给我们。

代理服务和NAT的区别:

  1. 代理服务是应用层服务,可以部署在任意设备上,工作在应用层。

  2. NAT技术是网络层服务,部署在网关设备上,工作在网络层。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值