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

本文涉及的产品
.cn 域名,1个 12个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: 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值,最后该主机就能够得到一连串的数据包路径


目录
相关文章
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
100 10
|
7天前
|
自然语言处理 文字识别 数据处理
多模态文件信息抽取:技术解析与实践评测!
在大数据和人工智能时代,企业和开发者面临的挑战是如何高效处理多模态数据(文本、图像、音频、视频)以快速提取有价值信息。传统方法效率低下,难以满足现代需求。本文将深度评测阿里云的多模态文件信息抽取解决方案,涵盖部署、应用、功能与性能,揭示其在复杂数据处理中的潜力。通过自然语言处理(NLP)、计算机视觉(CV)、语音识别(ASR)等技术,该方案助力企业挖掘多模态数据的价值,提升数据利用效率。
23 4
多模态文件信息抽取:技术解析与实践评测!
|
1天前
|
Kubernetes Linux 虚拟化
入门级容器技术解析:Docker和K8s的区别与关系
本文介绍了容器技术的发展历程及其重要组成部分Docker和Kubernetes。从传统物理机到虚拟机,再到容器化,每一步都旨在更高效地利用服务器资源并简化应用部署。容器技术通过隔离环境、减少依赖冲突和提高可移植性,解决了传统部署方式中的诸多问题。Docker作为容器化平台,专注于创建和管理容器;而Kubernetes则是一个强大的容器编排系统,用于自动化部署、扩展和管理容器化应用。两者相辅相成,共同推动了现代云原生应用的快速发展。
24 10
|
10天前
|
域名解析 负载均衡 安全
DNS技术标准趋势和安全研究
本文探讨了互联网域名基础设施的结构性安全风险,由清华大学段教授团队多年研究总结。文章指出,DNS系统的安全性不仅受代码实现影响,更源于其设计、实现、运营及治理中的固有缺陷。主要风险包括协议设计缺陷(如明文传输)、生态演进隐患(如单点故障增加)和薄弱的信任关系(如威胁情报被操纵)。团队通过多项研究揭示了这些深层次问题,并呼吁构建更加可信的DNS基础设施,以保障全球互联网的安全稳定运行。
|
10天前
|
缓存 网络协议 安全
融合DNS技术产品和生态
本文介绍了阿里云在互联网基础资源领域的最新进展和解决方案,重点围绕共筑韧性寻址、赋能新质生产展开。随着应用规模的增长,基础服务的韧性变得尤为重要。阿里云作为互联网资源的践行者,致力于推动互联网基础资源技术研究和自主创新,打造更韧性的寻址基础服务。文章还详细介绍了浙江省IPv6创新实验室的成立背景与工作进展,以及阿里云在IPv6规模化部署、DNS产品能力升级等方面的成果。此外,阿里云通过端云融合场景下的企业级DNS服务,帮助企业构建稳定安全的DNS系统,确保企业在数字世界中的稳定运行。最后,文章强调了全链路极致高可用的企业DNS解决方案,为全球互联网基础资源的创新提供了中国标准和数字化解决方案。
|
10天前
|
缓存 边缘计算 网络协议
深入解析CDN技术:加速互联网内容分发的幕后英雄
内容分发网络(CDN)是现代互联网架构的重要组成部分,通过全球分布的服务器节点,加速网站、应用和多媒体内容的传递。它不仅提升了访问速度和用户体验,还减轻了源站服务器的负担。CDN的核心技术包括缓存机制、动态加速、流媒体加速和安全防护,广泛应用于静态资源、动态内容、视频直播及大文件下载等场景,具有低延迟、高带宽、稳定性强等优势,有效降低成本并保障安全。
52 4
|
17天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
74 1
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
秒级响应 + 99.9%准确率:法律行业文本比对技术解析
本工具基于先进AI技术,采用自然语言处理和语义匹配算法,支持PDF、Word等格式,实现法律文本的智能化比对。具备高精度语义匹配、多格式兼容、高性能架构及智能化标注与可视化等特点,有效解决文本复杂性和法规更新难题,提升法律行业工作效率。
|
28天前
|
数据采集 存储 JavaScript
网页爬虫技术全解析:从基础到实战
在信息爆炸的时代,网页爬虫作为数据采集的重要工具,已成为数据科学家、研究人员和开发者不可或缺的技术。本文全面解析网页爬虫的基础概念、工作原理、技术栈与工具,以及实战案例,探讨其合法性与道德问题,分享爬虫设计与实现的详细步骤,介绍优化与维护的方法,应对反爬虫机制、动态内容加载等挑战,旨在帮助读者深入理解并合理运用网页爬虫技术。
|
1月前
|
机器学习/深度学习 自然语言处理 监控
智能客服系统集成技术解析和价值点梳理
在 2024 年的智能客服系统领域,合力亿捷等服务商凭借其卓越的技术实力引领潮流,它们均积极应用最新的大模型技术,推动智能客服的进步。
82 7

热门文章

最新文章

推荐镜像

更多
下一篇
开通oss服务