DNS协议、ICMP协议、NAT技术(一)

本文涉及的产品
公网NAT网关,每月750个小时 15CU
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: DNS协议、ICMP协议、NAT技术

一、DNS协议

1.1 认识DNS

TCP/IP通过IP地址和端口号的方式来确定网络中一个主机上的一个程序。但IP地址是一长串数字,并不便于人们记忆,于是人们发明了一种被称为主机名的东西,并用hosts文件夹来描述主机名和IP地址之间的对应关系


最初,这个hosts文件由互联网信息中心(SRI-NIC)管理


若一个新计算机要接入网络,或者某个计算机IP变更,都需要到信息中心申请变更hosts文件

其他计算机也需要定期下载更新新版本的hosts文件才能正确上网

当用户通过域名访问互联网服务时,会先通过域名在本地的hosts文件中找到其对应的IP地址,然后再用这个IP地址去访问对应的服务

但这样太麻烦,于是产生了DNS系统


由一个组织的系统管理机构,维护系统内的每个主机的IP和主机名的对应关系

若新计算机要接入网络,或者某个计算机IP变更,就需要将对应信息注册到数据库中

当用户通过域名访问互联网服务时,会自动查询DNS服务器,由DNS服务器检索数据库,得到对应的IP地址

至今,计算机上仍保留了hosts文件,hosts文件中一般存储的是主机名与IP地址之间的映射,用户也可以在hosts文件中自主添加域名和IP映射关系,在域名解析的过程中会优先查找hosts文件的内容


使用 cat /etc/hosts 可以查询本机hosts文件中的内容


5d2039a2c5c6407b8e838ed0961adc3b.png


1.2 域名简介

域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称,如www.baidu.com


com:一级域名,表示这是一个工商企业域名。同级的还有.net(网络提供商)和.org(开源组织或非盈利组织)等

baidu:二级域名,一般对应的就是公司名

www:习惯用法,之前人们在使用域名时,往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式,来表示主机支持的协议

1.3 域名解析过程

先在浏览器的DNS缓存中去查询是否有对应的记录,若查询到记录就可直接得到对应的IP地址,完成解析

若在浏览器的DNS缓存中没有找到,则去查询操作系统中的DNS缓存,若查询到对应的IP地址则完成解析

若在操作系统的DNS缓存中没有找到,则去查找本地的hosts文件,若查询到对应的IP地址则完成解析

若在本地hosts文件中没有找到,就会去本地DNS服务器中查找。本地DNS服务器IP地址一般由本地网络服务商提供,如电信、移动等公司,一般通过DHCP自动分配。目前使用的比较多的是谷歌提供的公用NDS 8.8.8.8和国内公用DNS 114.114.114.114。若在本地DNS服务器中有对应域名的缓存,则直接返回对应的IP地址,完成解析

若本地DNS服务器中没有找到,那么本地DNS服务器就会拿着域名去根DNS服务器中询问,根DNS服务器会告知顶级域名服务器的IP地址

本地DNS拿到顶级域名服务器的IP地址后,就会拿着域名去找顶级DNS服务器,顶级域名服务器会告诉本地DNS权威域名服务器的IP地址

本地DNS服务器拿着域名去权威域名服务器中,查询域名对应的IP地址,最终将该域名对应的IP地址返回给浏览器,此时整个域名解析过程就完成

1.4 使用dig工具分析DNS过程

#安装dig工具
sudo yum install bind-utils

可以使用dig工具来查看域名解析的过程,如查看百度域名 www.baidu.com 的解析过程

5fb2be80a4914186bc29626125971a4f.png



开头位置是dig工具的版本号

第二部分是服务器返回的详情,其中status参数为NOERROR表示查询成功

QUESTION SECTION表示待查询的域名

ANSWER SECTION表示查询的结果,首先www.baidu.com被查询成了www.a.shifen.com,而最终www.a.shifen.com被查询成了两个具体的IP地址

最下面是结果统计,包含查询时间和DNS服务器的地址等


二、ICMP协议

2.1 ICMP协议的定位

在TCP/IP四层模型中,网络协议栈自顶向下分为应用层、传输层、网络层和数据链路层


其中应用层最典型的协议有HTTP、HTTPS和DNS等,传输层最典型的协议有TCP和UDP,网络层最典型的协议就是IP,数据链路层最典型的协议就是MAC帧协议,但实际网络层还有两种协议:ICMP和IGMP

d8fa66ad6e344265905d4924daae2ef5.png



ICMP、IGMP和IP协议都属于网络层的协议,并且属于IP的上层协议


IP的上层协议不一定就直接是传输层的协议,IP的上层协议有可能也是网络层的协议,但就是位于IP的上层

与之类似的,数据链路层中的ARP协议和RARP协议,这两个协议虽然与MAC帧协议都属于数据链路层,但这两个协议属于MAC帧的上层协议


2.2 ICMP功能

ICMP的主要功能包括:


确认IP包是否成功到达目标地址

通知在发送过程中IP包丢弃的原因

ICMP只能搭配IPv4使用,若是IPv6的情况下,需要使用ICMPv6

举例


如当主机A在向主机B发送数据的过程中,主机B因为某些原因已经离线了


448f4e88a8744ce9b6c36fe66349822d.png


当发送的数据包到达主机B所在局域网的入口路由器时,入口路由器为了获得主机B的MAC地址,于是会向主机B发送ARP请求包,但由于主机B已经离线了,因此路由器在多次发送ARP请求包而得不到响应后,就会返回一个ICMP Destination Unreachable的包给主机A,此时主机A就知道自己发送的数据无法到达主机B


2.3 ICMP协议格式(了解)

484523fd943e474bb00d08f091f4b4b1.png


ICMP大概分为两类报文


一类是通知出错原因的

一类是用于诊断查询的


a7475c7a35e84755b29b3980b5fc8d89.png

2.4 ping命令

ping命令是基于ICMP协议实现的,通常用于测试本地主机与另一台主机之间的通信信道是否正常


如使用 ping www.baidu.com 命令,测试本地主机与百度服务器之间的通信信道是否正常


380dc8ddf5a0471c9fcad904ca854dfa.png


此处ping的是百度的域名,该域名会由DNS解析成IP地址

ping命令不仅能验证网络的连通性,同时也会统计响应时间和TTL(IP包中的Time To Live,生存时间)

ping命令会先发送一个ICMP Echo Request给对端

对端接收到之后,会返回一个ICMP Echo Reply

50bd1314c1d149b2ad9ade781bc69806.png


telnet对应的端口号是23,ssh对应的端口号是22,那ping对应的端口号是多少?


这是一个圈套,ping命令是基于网络层的ICMP协议,而端口号是属于传输层的内容,因此ICMP协议根本就不关心端口号。ping命令实际是绕过了传输层的,并没有什么所谓端口的概念


2.5 traceroute命令

traceroute命令基于ICMP协议实现,traceroute命令可以遍历数据包传送到目标主机所经过的所有路由器


如使用 traceroute www.baidu.com 命令,遍历数据包传送到百度服务器所经过的所有路由器



e8d4f9beb42649ab9851b806952483fd.png

traceroute命令底层实际是通过增加存活时间(TTL)值来实现的

因为每当数据包经过一个路由器,其TTL值就会减1,当TTL值减为0时路由设备就将该数据包丢弃,并传送一个ICMP TTL数据包给发送主机

traceroute命令底层发出多个数据包,并给这些数据包设置不同的TTL值,最后该主机就能够得到一连串的数据包路径


目录
相关文章
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
61 10
|
1天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
7 1
|
14天前
|
机器学习/深度学习 人工智能 自然语言处理
秒级响应 + 99.9%准确率:法律行业文本比对技术解析
本工具基于先进AI技术,采用自然语言处理和语义匹配算法,支持PDF、Word等格式,实现法律文本的智能化比对。具备高精度语义匹配、多格式兼容、高性能架构及智能化标注与可视化等特点,有效解决文本复杂性和法规更新难题,提升法律行业工作效率。
|
11天前
|
数据采集 存储 JavaScript
网页爬虫技术全解析:从基础到实战
在信息爆炸的时代,网页爬虫作为数据采集的重要工具,已成为数据科学家、研究人员和开发者不可或缺的技术。本文全面解析网页爬虫的基础概念、工作原理、技术栈与工具,以及实战案例,探讨其合法性与道德问题,分享爬虫设计与实现的详细步骤,介绍优化与维护的方法,应对反爬虫机制、动态内容加载等挑战,旨在帮助读者深入理解并合理运用网页爬虫技术。
|
17天前
|
机器学习/深度学习 自然语言处理 监控
智能客服系统集成技术解析和价值点梳理
在 2024 年的智能客服系统领域,合力亿捷等服务商凭借其卓越的技术实力引领潮流,它们均积极应用最新的大模型技术,推动智能客服的进步。
52 7
|
1月前
|
监控 算法 物联网
院内导航怎么实现?解析信息化医院的智慧导航技术
智慧医院院内导航系统通过高精度电子地图、室内定位技术和路径规划算法,提升了医疗服务质量和患者就医体验。本文深入解析了院内导航技术的实现原理、应用案例及未来趋势,助力医院管理者和技术人员优化服务。文章最后可面查看详细医院院内导航解决方案
88 2
院内导航怎么实现?解析信息化医院的智慧导航技术
|
23天前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
51 3
|
26天前
|
网络协议 网络性能优化 数据处理
深入解析:TCP与UDP的核心技术差异
在网络通信的世界里,TCP(传输控制协议)和UDP(用户数据报协议)是两种核心的传输层协议,它们在确保数据传输的可靠性、效率和实时性方面扮演着不同的角色。本文将深入探讨这两种协议的技术差异,并探讨它们在不同应用场景下的适用性。
66 4
|
28天前
|
网络协议 安全 文件存储
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问,即使IP地址变化,也能通过DDNS服务保持连接。适用于家庭网络远程访问设备及企业临时或移动设备管理,提供便捷性和灵活性。示例代码展示了如何使用Python实现基本的DDNS更新。尽管存在服务可靠性和安全性挑战,DDNS仍极大提升了网络资源的利用效率。
52 6
|
1月前
|
数据可视化 图形学 Python
在圆的外面画一个正方形:Python实现与技术解析
本文介绍了如何使用Python的`matplotlib`库绘制一个圆,并在其外部绘制一个正方形。通过计算正方形的边长和顶点坐标,实现了圆和正方形的精确对齐。代码示例详细展示了绘制过程,适合初学者学习和实践。
42 9

推荐镜像

更多