【网络】DNS协议、ICMP协议

news2024/9/25 19:18:48
DNS协议与ICMP协议

文章目录

  • 1.DNS协议
    • 1.1DNS背景
    • 1.2域名简介
    • 1.3域名解析过程(了解)
    • 1.4使用dig工具分析DNS过程
  • 2.ICMP协议
    • 2.1ICMP的功能
    • 2.2ping命令
    • 2.3traceroute命令

1.DNS协议

DNS(Domain Name System,域名系统)协议,是一个用来将域名转化为IP地址的应用层协议。

1.1DNS背景

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

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

  • 如果一个新计算机要接入网络,或者某个计算机IP变更,都需要到信息中心申请变更hosts文件。
  • 其他计算机也需要定期下载更新新版本的hosts文件才能正确上网。
  • 当用户通过域名访问互联网服务时,会先通过域名在本地的hosts文件中找到其对应的IP地址,然后再用这个IP地址去访问对应的服务。

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

  • 一个组织的系统管理机构,维护系统内的每个主机的 IP 和主机名的对应关系;
  • 如果新计算机接入网络,将这个信息注册到数据库中;
  • 用户输入域名的时候,会自动查询 DNS 服务器,由 DNS 服务器检索数据库,得到对应的 IP 地址。

至今,我们的计算机上仍然保留了 hosts 文件。在域名解析的过程中仍然会优先查找 hosts 文件的内容。

通过cat /etc/hosts可以查看hosts文件当中的内容。

image-20240812165801605

1.2域名简介

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

  • com:一级域名,表示这是一个工商企业域名。同级的还有.net(网络提供商)和.org(开源组织或非盈利组织)等。
  • baidu:二级域名,一般对应的就是公司名。
  • www:只是一种习惯用法,之前人们在使用域名时,往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式,来表示主机支持的协议。

1.3域名解析过程(了解)

image-20240812165937588

1.4使用dig工具分析DNS过程

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

dig工具的分析结果如下:

image-20240812170048902

说明:

  • 开头位置是dig工具的版本号。
  • 第二部分是服务器返回的详情,其中status参数为NOERROR表示查询成功。
  • QUESTION SECTION表示待查询的域名。
  • ANSWER SECTION表示查询的结果,首先www.baidu.com被查询成了www.a.shifen.com,而最终www.a.shifen.com被查询成了两个具体的IP地址。
  • 最下面是一些结果统计,包含查询时间和DNS服务器的地址等。
  • 更多dig的使用方法,参见https://www.imooc.com/article/26971?block_id=tuijian_wz

2.ICMP协议

ICMP(Internet Control Message Protoco)Internet控制报文协议,用于在IP主机、路由器之间传递控制信息,是一个TCP/IP协议。

ICMP、IGMP和IP协议与arp协议和MAC帧的关系一样,ICMP协议和IGMP协议属于IP的上层协议,但他们同属网络层。

2.1ICMP的功能

一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通。但是IP协议并不提供可靠传输,如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。

ICMP正是提供这种功能的协议,ICMP主要功能包括:

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

2.2ping命令

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

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

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

image-20240812171006530

一个值得注意的坑

有些面试官可能会问:telnet是23端口,ssh是22端口,那么ping是什么端口?

首先,ICMP协议是IP层的一个协议,它直接封装在IP数据包中,作为IP层的一个功能扩展。端口号(Port Number)是传输层协议(如TCP和UDP)中的一个概念,用于区分同一台主机上不同应用程序之间的通信。由于ICMP协议并不属于传输层,而是直接位于IP层之上,因此它不需要端口号来区分不同的应用程序或服务。

其次,ICMP协议的主要功能是发送控制消息和错误报告,而不是传输用户数据。这些控制消息和错误报告是面向网络的,而不是面向特定应用程序的。因此,ICMP协议不需要像传输层协议那样,通过端口号来指定接收消息的应用程序。

最后,ICMP协议的设计初衷是为了提供网络层的错误报告和诊断功能,而不是为了支持复杂的端到端通信。因此,它采用了较为简单的协议结构,没有包含像端口号这样的复杂字段。

2.3traceroute命令

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

image-20240812172055621

原理简述:

  • traceroute命令底层实际是通过增加存活时间(TTL)值来实现的。
  • 因为每当数据包经过一个路由器,其TTL值就会减1,当TTL值减为0时对应路由设备就会将该数据包丢弃,并传送一个ICMP TTL数据包给发送主机。
  • 因此traceroute命令底层可以发出多个数据包,并给这些数据包设置不同的TTL值,最后该主机就能够得到一连串的数据包路径。

我误以为命运掌握在别人手里,而没有意识到我可以为自己的人生执笔。 —塞巴斯蒂安·巴里

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2121331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idear获取git项目

最近想下载个ruoyi项目来包装简历,结果打开idear总是上一个项目,找不到get for vcs只好自己捣鼓了,顺便记录留着下次用。 步骤: 1. 2. 3.输入我们想访问的地址 eg: 点击克隆,我们就能获取项目到本地了。

C语言 | Leetcode C语言题解之第396题旋转函数

题目&#xff1a; 题解&#xff1a; #define MAX(a, b) ((a) > (b) ? (a) : (b))int maxRotateFunction(int* nums, int numsSize){int f 0, numSum 0;for (int i 0; i < numsSize; i) {f i * nums[i];numSum nums[i];}int res f;for (int i numsSize - 1; i &g…

教师节重磅福利!《动手学强化学习》作者亲自带你学强化学习

作为大模型的核心技术之一&#xff0c;强化学习越来越受到人们的重视。强化学习&#xff08;Reinforcement Learning, RL&#xff09;是机器学习的一个领域&#xff0c;主要研究智能主体&#xff08;agent&#xff09;在环境中应该怎样采取行动以最大化所获得的累积奖励。目前强…

【视频教程】GEE遥感云大数据在林业中的应用与典型案例实践

近年来遥感技术得到了突飞猛进的发展&#xff0c;航天、航空、临近空间等多遥感平台不断增加&#xff0c;数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量猛增&#xff0c;遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇&#xf…

运动耳机精选分享,热门骨传导耳机运动好物推荐!

因为骨传导耳机独特的佩戴方式和声音的传播方式&#xff0c;受到了小耳、油耳以及运动爱好者的的喜爱&#xff0c;但也由于市面上的骨传导耳机品牌越来越多&#xff0c;很多朋友不知道该怎么选择&#xff0c;今天我挑选出市面上体验感较好&#xff0c;各方面比较出色的骨传导给…

M,儿母,阿母

英文字母M&#xff0c;音义通汉语&#xff1a;儿母。近单音“母”、“木”。 母&#xff0c;阴阳五行之阴阳之阴的典型代表&#xff0c;代表生化能力或生化之道&#xff0c;为成就者&#xff0c;象征生命缘起&#xff0c;代表生化之源。母&#xff0c;阴性&#xff0c;雌性&am…

COCOS:(飞机大战03)绑定触摸方法,控制主角的移动和移动边界的限制

飞机大战知识点总结 1.创建Player.ts文件&#xff0c;把该文件添加到Player组件上 2.编写Player.ts import { _decorator, Component, EventTouch, Input, input, Node, Vec3 } from cc; const { ccclass, property } _decorator; ccclass(Player) export class Player exte…

2024年性价比蓝牙耳机怎么选?四款爆买百元耳机品牌推荐!

在科技日新月异的今天&#xff0c;越来越多的消费者选择无线蓝牙耳机&#xff0c;以摆脱有线耳机的束缚&#xff0c;享受更加自由的智能耳机使用体验。面对市场上众多的耳机品牌&#xff0c;究竟2024年性价比蓝牙耳机怎么选&#xff1f;&#xff0c;为了帮助大家选购合适的蓝牙…

【基础算法总结】二分查找

目录 一&#xff0c;二分查找算法介绍二&#xff0c;算法原理和代码实现704.二分查找34.在排序数组中查找元素的第一个和最后一个位置69.x的平方根35.搜索插入位置852.山脉数组的峰顶索引162.寻找峰值153.寻找旋转排序数组中的最小值LCR173.点名 三&#xff0c;算法总结 一&…

高性能反向代理--HAProxy

文章目录 Web架构负载均衡介绍为什么使用负载均衡负载均衡类型 HAProxy简介应用场景HAProxy是什么HAProxy功能 脚本安装HAProxy基础配置global多进程和线程HAProxy日志配置项 Proxies配置-listen-frontend-backendserver配置 frontendbackend配置实例子配置文件 HAProxy调度算法…

html+css网页设计 旅游 蜘蛛旅行社5个页面

htmlcss网页设计 旅游 蜘蛛旅行社5个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#…

MemFire Cloud为何短短几年变成这样?

在软件开发的世界里&#xff0c;总有一些工具能够迅速崛起&#xff0c;成为开发者们心中的宠儿。MemFire Cloud&#xff0c;就是这样一个在短短几年内迅速崭露头角的存在。它不仅改变了开发者的工作方式&#xff0c;更成为了独立开发者的得力助手。今天&#xff0c;我们就来聊聊…

FALCON:打破界限,粗粒度标签的无监督细粒度类别推断,已开源| ICML‘24

在许多实际应用中&#xff0c;相对于反映类别之间微妙差异的细粒度标签&#xff0c;我们更容易获取粗粒度标签。然而&#xff0c;现有方法无法利用粗标签以无监督的方式推断细粒度标签。为了填补这个空白&#xff0c;论文提出了FALCON&#xff0c;一种从粗粒度标记数据中无需细…

CentOS7虚拟机下安装及使用Docker

文章目录 一&#xff0c;准备工作二、安装Docker三、启动Docker四、验证Docker五、使用Docker六&#xff0c;卸载Docker 有一个Centos7的虚拟机&#xff0c;想要安装个docker测试一些docker用法和熟悉命令 一&#xff0c;准备工作 1&#xff0c;使用uname -r命令检查系统内核…

价值流架构指南:构建业务创新与竞争优势的全面方法论

如何通过价值流引领企业数字化转型&#xff1f; 在当前数字化转型的背景下&#xff0c;企业面临的挑战日益复杂化&#xff1a;如何更快响应市场变化&#xff1f;如何优化资源配置提升效率&#xff1f;如何确保客户体验始终处于行业领先&#xff1f;《价值流指南》由The Open G…

Java实现简易计算器功能(idea)

目的&#xff1a;写一个计算器&#xff0c;要求实现加减乘除功能&#xff0c;并且能够循环接收新的数据&#xff0c;通过用户交互实现。 思路&#xff1a; &#xff08;1&#xff09;写4个方法&#xff1a;加减乘除 &#xff08;2&#xff09;利用循环switch进行用户交互 &…

解决windows中项目启动端口被占用报错

1.在启动项目时报错端口被占用 解决: 1.cmd命令行输入命令: netstat -ano | findstr “8000” 2.可以看到PID为8448&#xff0c;下面只要将该PID关闭即可&#xff0c;有两种方法: ①在任务管理器中找到PID为8448的服务结束 ②命令行输入: >taskkill /PID 8448 /F 3.再查…

关于低代码平台几个新技术应用的实践体验

最近在整理平台的基本功能使用体验&#xff1a; 1&#xff0c;使用低码平台&#xff0c;创建用户业务站点交互原型&#xff0c;基本是可行的。虽然相对于专业的 墨刀、蓝湖、figma 等在用户体验上还有差距&#xff0c;但对于普通应用差别不大。 2&#xff0c;根据UI/UE原型&am…

力扣(LeetCode)每日一题 2181. 合并零之间的节点

题目链接https://leetcode.cn/problems/merge-nodes-in-between-zeros/description/?envTypedaily-question&envId2024-09-09 题目描述 给你一个链表的头节点 head &#xff0c;该链表包含由 0 分隔开的一连串整数。链表的 开端 和 末尾 的节点都满足 Node.val 0 。 对…

HNU-2023电路与电子学-CPU综合设计

写在前面&#xff1a; 本次实验是课程的最后一次实验&#xff0c;要求按照指导书的说明将之前的板块整合成一个完整的CPU&#xff0c;建议大家每连接一个板块都进行一次仿真验证&#xff0c;保证能正常运行且功能正常&#xff0c;如果等到CPU组装好再调试工作量较大并且有些错…