【Linux网络篇】:网络中的其他重要协议或技术——DNS,ICMP协议,NAT技术等

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨
✨ 个人主页:余辉zmh–CSDN博客
✨ 文章所属专栏:Linux篇–CSDN博客

在这里插入图片描述

文章目录

  • 其他重要协议或技术
    • 1.DNS
    • 2.ICMP协议
    • 3.NAT技术
    • 4.代理服务器

其他重要协议或技术

1.DNS

什么是DNS?

DNS(域名解析系统)是互联网的“电话簿”。它的作用是将人们易于记忆的域名(比如www.baidu.com)转换为计算机可以识别的IP地址,从而实现网络通信。

DNS的工作原理

  1. 用户输入域名

    用户在浏览器中输入一个网址(如 www.baidu.com)。

  2. 本地DNS缓存查询

    操作系统会先检查本地是否有该域名的IP地址缓存。如果有,直接返回IP地址。

  3. 递归查询

    如果本地没有缓存,系统会向本地DNS服务器(通常由网络运营商提供)发起查询请求。

  4. 本地DNS服务器查询

    • 本地DNS服务器先查找自己的缓存。
    • 如果没有,再向根DNS服务器发起请求。
  5. 根DNS服务器

    根服务器告诉本地DNS服务器,负责该顶级域(如.com、.cn)的顶级域名服务器(TLD)的地址。

  6. 顶级域名服务器(TLD)

    TLD服务器告诉本地DNS服务器,负责该具体域名(如baidu.com)的权威DNS服务器的地址。

  7. 权威DNS服务器

    权威DNS服务器返回该域名对应的IP地址。

  8. 返回结果

    本地DNS服务器将IP地址返回给用户的电脑,电脑再与目标服务器建立连接。

DNS解析的类型

  • 正向解析:域名->IP地址(最常见);
  • 反向解析:IP地址->域名;

DNS的层级结构

  1. 根域(Root):全球只有13组根服务器,负责顶级域的管理;
  2. 顶级域(TLD):比如.com,.net,.cn等;
  3. 二级域:比如baidu.com中的baidu;
  4. 子域:比如www.baidu.com中的www;

2.ICMP协议

ICMP是一个网络层协议

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

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

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

在这里插入图片描述

ping命令

基于ICMP协议实现的,可以验证网络的连通性。

在这里插入图片描述

  • 注意,此处ping的是域名,而不是URL,一个域名可以通过DNS解析成IP地址;
  • ping命令不光能验证网络的连通性,同时也会统计响应时间和TTL(IP包的生存周期);
  • ping命令会发送一个ICMP Echo Request给对端;
  • 对端接收到之后,会返回一个ICMP Echo Reply

在这里插入图片描述

问题:telnet的端口号是23,ssh的端口号是22,那ping的端口号是多少?

ping没有端口号;因为端口号是TCP或UDP协议用来区分上层的不同应用进程的,属于传输层协议的概念,telnet和ssh都是基于TCP协议的应用层服务,所以有端口号;而ping命令是基于网络层的ICMP协议实现的,并不使用端口号,它实际上是向目标主机发送回显请求报文(ICMP Echo Request),对方收到之后回复回显应答报文(ICMP Echo Reply)。ping命令无法指定端口号,只能测试目标主机的网络连通性,而不能测试某个具体服务是否可用。

traceroute命令

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

在这里插入图片描述

3.NAT技术

1.NAT技术背景

之前讲解网络层时提到过IPv4协议中,IP地址数量不充足的问题;而NAT技术是当前解决IP地址不够用的主要手段,是路由器的一个重要功能

NAT能够讲私有IP对外通信时转换为公网IP,也就是一种将私有IP和公网IP相互转换的技术方法;

很多学校,家庭,公司内部采用每个终端设置私用IP,而在路由器或必要的服务器上设置公网IP;

公网IP要求唯一性,但是私有IP只在同一局域网中要求唯一性,在不同的局域网中出现相同的私有IP是完全不影响的。

2.NAT IP转换过程

在这里插入图片描述

  • NAT路由器将源地址从10.0.0.10替换成公网IP202.244.174.27
  • NAT路由器收到外部的数据时,又会把目标IP从202.244.174.47替换成10.0.010
  • 在NAT路由器内部,有一张自动生成,用于地址转换的表;
  • 10.0.0.0第一次向163.221.120.9发送数据时就会生成表中的映射关系;

3.NAPT

但是这里就有个疑问了:

假设局域网中有3台主机,IP分别为A,B,C;他们通过同一个路由器(NAT设备)访问同一个公网服务器;路由器只有一个公网IP;所以服务器的应答包返回时,都是先发给这个公网IP对应的路由器,那路由器如何知道这些应答包应该转发给A,B,C中的哪一个呢?

所以这里要讲解一个关键点:

NAT设备不仅仅转化IP地址,还会转化端口号,这就是端口地址转化技术,也叫NAPT

具体过程如下

  1. 内网主机发起连接

    • A主机10.0.0.10:1025->服务器163.221.120.9:80
    • B主机10.0.0.11:1025->服务器163.221.120.9:80
    • C主机10.0.0.12:1025->服务器163.221.120.9:80
  2. NAT设备转化内

    路由器将每个连接的源IP和源端口号,转换为自己的公网IP和唯一的端口号,并建立映射表。

    • 10.0.0.10:1025—>202.244.174.37:1025
    • 10.0.0.11:1025—>202.244.174.37:1026
    • 10.0.0.12:1025—>202.244.174.37:1027
  3. 服务器应答

    • 服务器收到请求后,回复数据包到路由器
  4. NAT设备查表转发

    路由器收到应答包后,根据端口号查找映射表:

    • 202.244.174.37:1025—>10.0.0.10:1025
    • 202.244.174.37:1026—>10.0.0.11:1025
    • 202.244.174.37:1027—>10.0.0.12:1025

    然后将数据包转发给对应的内网主机;

在这里插入图片描述

一个注意点:

路由器收到来自内网主机的数据包时,会为每个连接分配一个唯一的公网端口号;这个公网端口号不是用来区分路由器上的不同应用进程的(端口号在主机上的作用),而是用来在NAT转换表中区分不同的连接,即区分不同的内网主机和它们的会话,(端口号在路由器上的作用)

4.代理服务器

1.什么是代理服务器?

代理服务器是一种位于客户端和目标服务器之间的中间服务器。客户端通过代理服务器访问目标资源,代理服务器会转发请求并返回结果。

代理服务器的作用包括:隐藏真实IP,访问受限资源,缓存加速,负载均衡,安全防护。

2.正向代理

  • 定义

正向代理是指客户端知道目标服务器的地址,但不能直接访问,需要通过代理服务器“代为”访问

代理服务器位于客户端和目标服务器之间,代表客户端向外部发起请求。

  • 典型应用场景
    • 访问被屏蔽的网站(比如翻墙);
    • 隐藏客户端真实IP;
    • 突破内网访问限制;
  • 例子:学校里的正向代理服务器

场景描述

学校内部网络处于安全或管理原因,禁止学生电脑直接访问外网。学校部署了一台代理服务器,所有学生上网时,必须先把请求发给这台代理服务器,由它去访问外网,再把结果返回给学生。

说明

  • 学生电脑配置了代理服务器的地址;
  • 代理服务器收到请求后,代表学生去访问外网;
  • 外网服务器看到的请求来源是学校代理服务器的IP,而不是学生的真实IP;

3.反向代理

  • 定义

反向代理是指客户端并不知道目标服务器的真实地址,只知道代理服务器的地址。

代理服务器位于外部网络和内部服务器之间,代表内部服务器接收外部请求,并将请求转发到后端服务器。

  • 典型应用场景

    • 负载均衡(分布请求到多台后端服务器)
    • 安全防护(隐藏真实服务器IP,防止攻击)
    • 缓存加速(代理服务器缓存静态资源)
  • 例子:公司里的负载均衡反向代理服务器

场景描述

公司有多个Web服务器对外提供服务,如果公司里所有用户都只访问某些个服务器,就会导致其余服务器一直处于闲置状态,分布不均衡;所以为了提升性能和可靠新,公司在外网部署了一台负载均衡服务器,所有用户访问公司网站时,先访问负载均衡服务器,由它根据负载情况把请求分布到后端的某一台服务器上。

说明

  • 用户只知道负载均衡服务器的IP,不知道后端Web服务器的真实IP;
  • 负载均衡服务器根据策略把请求转发到不同的Web服务器;
  • 后端服务器的安全性和可用性都得到了提升;

以上就是关于网络中其他重要的协议和技术的讲解,如果哪里有错的话,可以在评论区指正,也欢迎大家一起讨论学习,如果对你的学习有帮助的话,点点赞关注支持一下吧!!!

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

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

相关文章

HarmonyOS学习4 --- 创建一个页面

1、声明式UI语法Entry Component struct My_page {State isLogin: boolean falsebuild() {Row() {Image(this.isLogin ? $r(app.media.icon_leon) : $r(app.media.icon)).height(60).width(60).onClick(() > {this.isLogin !this.isLogin})Text(this.isLogin ? $r(app.s…

【Java EE】Spring MVC 的使用

1. 路由映射:RequestMapping:当用户访问某个 URL 时,该注解会根据 URL 的路径映射到具体的程序中对应的类或方法(路由映射)。修饰方法时,路径为类路径 方法路径。默认情况下同时支持 GET 和 POST&#xff…

pip 安装默认切换到国内镜像(清华园,阿里云等)

国内Python包镜像地址如下: 清华:https://pypi.tuna.tsinghua.edu.cn/simple/阿里云:https://mirrors.aliyun.com/pypi/simple/中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/华为云:https://repo.huaweiclou…

AI agent 学习

参考: AI搜索DeepResearch?_大模型 deepsearch 深度搜索-CSDN博客 Agent是以大语言模型为大脑驱动的系统,具备自主理解、感知、规划、记忆和使用工具的能力,能够自动化执行和完成复杂任务。 自主性和自适应,是判断一款…

【PTA数据结构 | C语言版】求单链表list中的元素个数,即表长

本专栏持续输出数据结构题目集,欢迎订阅。 文章目录题目代码题目 请编写程序,将 n 个整数顺次插入一个初始为空的单链表的表头。最后输出单链表的表长。 本题旨在训练学习者熟悉单链表的基本操作,不建议直接输出 n。 输入格式:…

玩转Docker | 使用Docker部署HomeBox家庭库存管理工具

玩转Docker | 使用Docker部署HomeBox家庭库存管理工具 前言一、HomeBox介绍Homebox简介主要特点主要使用场景二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署HomeBox服务下载HomeBox镜像编辑部署文件创建容器检查容器状态检查服务端口安全设置四、访问Hom…

QT中的常用控件-QWidget的enable属性

QT中的常用控件-QWidget的enable属性 enable描述了一个控件是否处于“可用”状态 与之相对应的概念是“禁用”,禁用是该控件不能接受任何用户的输入事件,并且外观上往往是灰色的 如果一个Widget被禁用,则该Widget的子元素也被禁用API说明IsEn…

【数据结构】复杂度分析

目录 一、算法 1.基本概念 2.描述方法 3.算法效率 二、算法的时间复杂度 三、算法的空间复杂度 一、算法 1.基本概念 通俗的讲,算法是解决问题的方法,比如在现实生活中一道菜谱,一个安装轮椅的操作指南等。 严格的说,算法…

推荐系统基础 --ShusenWang

学习b站up主的ShusenWang的推荐系统笔记 指标 任何系统/算法/模型都需要评估,对于推荐系统的指标有消费指标和北极星指标,消费指标是衡量用户对产品的使用情况,使用频率广度和深度,用于了解用户的使用习惯,北极星指标是…

linux wsl2 docker 镜像复用快速方法

GitHub项目中的devcontainer.json、Dockerfile构建了一个A项目的镜像环境,现在我有一个文件夹,文件夹中只有一个b.py文件,此时我希望使用A项目的环境,如何实现?注意: 建议使用下面的方法2 解决方案&#xf…

(生活比喻-图文并茂)http2.0和http3.0的队头阻塞,http2.0应用层解决,TCP层存在,3.0就是彻底解决,到底怎么理解区别???

说明一下: http属于应用层协议,TCP和udp属于传输层协议 文章目录阶段一:HTTP/1.1 的情况(单车道收费站,一次过一辆)阶段二:HTTP/2 的情况(多车道收费站,但出口只有一条路…

ARM环境openEuler2203sp4上部署19c单机问题-持续更新

问题01、报错如下orcl:/home/oracledb15> export CV_ASSUME_DISTIDRHEL8 orcl:/home/oracledb15> $ORACLE_HOME/runInstaller -applyPSU /soft/37642901 Exception in thread "main" java.lang.UnsatisfiedLinkError: /u01/app/oracle/product/19.0.0/db_1/oui…

php成绩分析系统单科分数分布分析202507

提交二维数据表,识别成绩科目显示科目选择,选择科目后显示样本数,平均分,最高分,最低分,中位数,柱状图图表显示各分值人数分布,表格显示统计数据。 技术:html5css3ajaxphp 原生代码实现。 效果图: 下载: …

Redis Cluster 与 Sentinel 笔记

目录 Redis 集群(Cluster)概述 Cluster 的工作原理 Cluster 配置与部署 Cluster 常见问题与限制 Redis Sentinel(哨兵)机制概述 Sentinel 的工作机制 Sentinel 配置与部署 Sentinel vs Cluster 总结 Redis 集群&#xff…

LLM视觉领域存在模型视觉识别不准确、细粒度视觉任务能力不足等科学问题

LLM视觉领域存在模型视觉识别不准确、细粒度视觉任务能力不足等科学问题 除了前面提到的数据集,还有一些用于评估视觉推理等能力的经典数据集。目前关于LLM视觉领域经典提示词方面的名校或大公司论文较少,以下是相关科学问题、数据集及部分相关论文介绍: 科学问题 视觉推理…

Node.js worker_threads:并发 vs 并行

一、核心结论 Node.js 的 worker_threads 模块实现的是 并行计算 ,而非传统意义上的“并发”。其通过操作系统级线程实现多核 CPU 的并行执行,同时保留 Node.js 单线程事件循环的并发模型。 二、关键概念解析 1. 并发(Concurrency&#xff09…

gloo 多卡训练

我们遇到了分布式训练中的通信超时问题(Connection closed by peer)。根据错误信息,问题发生在梯度同步的屏障(barrier)操作时。以下是针对此问题的优化措施和代码修改: 优化措施: 增强通信稳…

【Docker】在银河麒麟ARM环境下离线安装docker

1、前言 采用离线安装的方式。 关于离线安装的方式官网有介绍,但是说的很简单,网址:Binaries | Docker Docs 官网介绍的有几种主流linux系统的安装方式,但是没有kylin的,所以在此记录一下。 在安装过程中也遇到了些…

AUTOSAR进阶图解==>AUTOSAR_SWS_SOMEIPTransformer

AUTOSAR SOME/IP 转换器规范详解 基于AUTOSAR标准的SOME/IP转换器协议解析与实现指南目录 1. 介绍与功能概述2. SOME/IP架构 2.1 SOME/IP转换器架构2.2 组件解释2.3 层级说明 3. SOME/IP通信流程 3.1 客户端/服务器通信序列3.2 通信流程解释 4. SOME/IP消息结构 4.1 消息结构类…

Python 机器学习核心入门与实战进阶 Day 5 - 模型调参与交叉验证技巧(GridSearchCV、KFold)

✅ 今日目标 理解模型调参的重要性(避免欠拟合/过拟合)掌握 GridSearchCV 的使用方法学习 K 折交叉验证的基本流程与意义对比不同参数组合的表现使用 Pipeline 简化流程(进阶)📘 一、调参思路方法描述Grid Search穷举所…