简介DNS协议、ICMP协议、NAT技术

news2024/11/28 22:48:02

文章目录

  • 一、DNS 协议
    • 1.背景
    • 2.域名
  • 二、ICMP 协议
    • 1.功能
    • 2.格式
    • 3. ping 命令
    • 4. traceroute 命令
  • 三、NAT 技术
    • 1.基本理解
    • 2. NAT 转换过程
    • 3. NAPT
    • 4. NAT 技术的缺陷
    • 5. NAT 和代理服务器

一、DNS 协议

DNS(Domain Name System,域名系统),是一整套从域名映射到 IP 地址的系统,是一个应用层协议。

1.背景

TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个应用程序,但是IP地址不方便记忆。于是,人们发明了一种叫主机名的东西,是一个字符串,并且使用 hosts 文件来描述主机名和 IP 地址的关系。

最初,这个 hosts 文件是由互连网信息中心(SRI-NIC)来管理的。
如果一个新计算机要接入网络,或者某个计算机 IP 变更,都需要到信息中心申请变更 hosts 文件。其他计算机也需要定期下载更新新版本的 hosts 文件才能正确上网。

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

2.域名

主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称。

域名使用 . 连接。

比如,www.baidu.com :

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

二、ICMP 协议

ICMP(Internet Control Message Protocol,Internet 控制报文协议),是一个网络层协议。

ICMP 、IGMP 和 IP 协议,虽然都属于网络层的协议,但 ICMP 和 IGMP 都是 IP 的上层协议。

在这里插入图片描述

1.功能

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

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

  • 确认 IP 包是否成功到达目标地址。
  • 通知在发送过程中 IP 包被丢弃的原因。
  • ICMP 只能搭配 IPv4 使用。如果是 IPv6 的情况下,需要用 ICMPv6 。

一个例子:
在这里插入图片描述

2.格式

在这里插入图片描述
ICMP大概分为两类报文:一类是通知出错原因,一类是用于诊断查询。

ICMP 报文的常见类型:在这里插入图片描述

3. ping 命令

ping命令,用于检测网络的连通情况。其底层使用的是 ICMP 协议。

语法:ping 域名

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

在这里插入图片描述

在 Linux 下:
在这里插入图片描述注:
 ① 此处 ping 的是域名,而不是 url !一个域名可以通过 DNS 解析成 IP 地址。
 ② ping 命令不光能验证网络的连通性,同时也会统计响应时间和 TTL(IP 包中的 Time To Live,生存时间)。

ping命令是基于网络层的 ICMP 协议实现的,绕过了传输层。而端口号是传输层的内容,在 ICMP 中根本就没有端口号这样的概念。

ping命令只是双方主机在内核层面上进行数据通信的,绕过了传输层,直接发送 IP 报文。这类套接字一般是原始套接字。

4. traceroute 命令

traceroute命令也是基于 ICMP 协议实现的,能够打印出从当前主机一直到目标主机之前所经历的路由器。

在 Linux 下:在这里插入图片描述

三、NAT 技术

1.基本理解

NAT 技术(Network Address Translation ,网络地址转换),是当前解决 IPv4 地址不够用的主要手段,也是路由器的一个重要功能。

  • 在对外通信时,NAT 能够将私有 IP 最后转为全局 IP 。也就是说,NAT 就是一种将私有 IP 和全局 IP 相互转换的技术方法。
  • 很多学校、家庭、公司内部在每个终端设置私有 IP ,而在路由器或必要的服务器上设置全局 IP 。
  • 全局 IP 要求唯一,但是私有IP不需要。在不同的局域网中出现相同的私有 IP 是完全不影响的。

2. NAT 转换过程

在这里插入图片描述
局域网内的主机给外网服务器发送请求数据包:

  • 当数据包经过路由器时,路由器会将数据包中的源 IP 替换成自己的 WAN 口 IP ,这就好像数据包是从路由器发出的一样。
  • 路由器会在自己的转换表中,建立并维护替换前源 IP 和目的 IP 与替换后源 IP 和目的 IP 之间的映射关系
  • 数据包在网络中经过各种路由转发,最终到达外网服务器主机。

外网服务器给局域网内的主机发送响应数据包:

  • 当数据包经过路由器时,路由器会根据转换表中曾经建立的映射关系,将数据包中的目的 IP 替换回对应的 IP 。
  • 数据包在网络中经过各种路由转发,最终到达局域网内的主机 。

地址转换表:

  • 在 NAT 路由器的内部,有一张自动生成的用于地址转换的表。
  • 当局域网内的主机第一次向外网服务器发送请求数据包时,数据包经过的路由器,都会在表中建立映射关系。
  • 当外网服务器向局域网内的主机发送响应数据包时,路由器就能根据表中曾经建立的映射关系,定向地把数据包转发回去。

3. NAPT

NAPT(Network Address Port Translation,网络地址端口转换)

如果局域网内有多台主机都访问同一个外网服务器,那么对于外网服务器返回的多个响应数据包,它们当中的目的 IP 都是相同的,都是路由器的 WAN 口 IP ,这时 NAT 路由器就无法判定应该将数据包转发给局域网内的哪台主机了。换言之,无法保证从右到左的唯一性。

此时,就用 NAPT 来解决这个问题,在地址转换表中使用 IP + port 来建立映射关系。

在这里插入图片描述
局域网内的主机给外网服务器发送请求数据包:

  • 当数据包经过路由器时,路由器会将数据包中的源 IP 和源端口替换成自己的 WAN 口 IP 和端口,这就好像数据包是从路由器发出的一样。
  • 路由器会在自己的转换表中,建立并维护替换前源 IP 和源端口、目的 IP 和目的端口与替换后源 IP 和源端口、目的 IP 和目的端口之间的映射关系
  • 数据包在网络中经过各种路由转发,最终到达外网服务器主机。

外网服务器给局域网内的主机发送响应数据包:

  • 当数据包经过路由器时,路由器会根据转换表中曾经建立的映射关系,将数据包中的目的 IP 和目的端口替换回对应的 IP 和端口。
  • 数据包在网络中经过各种路由转发,最终到达局域网内的主机。

这种映射关系是由 NAT 路由器自动维护的。
例如在 TCP 的情况下,建立连接时,就会生成这个表项;在断开连接后,就会删除这个表项。

映射关系左边的地址,在该子网中,一定是具有唯一性的。
映射关系右边的地址,在全局 IP 世界中,也一定具有唯一性。
既能保证从左边地址到右边地址的唯一性,也能保证从右边地址到左边地址的唯一性。

转换表中映射关系两边的地址是互为键值的。
数据包在发送的时候,它路上经过的每个路由器都会建立并维护映射关系。
数据包在回来的时候,就是反向地根据路由器中曾经建立好的映射关系回来。

4. NAT 技术的缺陷

由于 NAT 依赖这个转换表,所以有诸多限制:

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

5. NAT 和代理服务器

代理服务器(Proxy Server),其功能是代理网络用户去取得网络信息,相当于一个网络信息的中转站。

代理服务器分为两种:正向代理和反向代理。


正向代理:是一个位于客户端和目标服务器之间的服务器。客户端并不直接访问目标服务器,而是先访问代理服务器,由代理服务器代替客户端去访问目标服务器,并将目标服务器的响应结果返回给客户端。
在这里插入图片描述

正向代理的好处:

  • 便于身份认证。
  • 加速内网服务。若内网的大量用户都请求过外网的同一个资源,正向代理服务器就会将它缓存到本地,以后再有用户请求时,直接返回给用户,不需要再访问外网,加速访问资源的速度。
  • 可以对访问内网的请求进行筛查,保护内网。

反向代理:也是一个位于客户端和目标服务器之间的服务器。客户端直接向反向代理服务器发起请求,反向代理服务器将客户端的请求转发给真正的目标服务器进行处理,并将目标服务器的响应结果返回给客户端。

在这里插入图片描述

反向代理的好处:

  • 负载均衡。根据后端每台服务器的负载情况,较为均衡地将客户端请求转发到每台服务器上。
  • 保护后端的服务器。

路由器往往都具备 NAT 设备的功能,通过 NAT 设备进行中转,完成子网设备和其他子网设备的通信过程。

代理服务器看起来和 NAT 设备有一点像。客户端向代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器,服务器返回结果后,代理服务器又把结果回传给客户端。

NAT 和代理服务器的区别:

  • 从部署位置上看,NAT 一般集成在防火墙、路由器等硬件设备上。代理服务器则是一个软件程序,需要部署在服务器上。
  • 从应用上讲,NAT 设备是网络基础设备之一,解决的是 IP 不足的问题。代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙,另外像迅游这样的加速器,也是使用代理服务器。
  • 从底层实现上讲,NAT 工作在网络层,直接对 IP 地址进行替换。代理服务器往往工作在应用层。
  • 从使用范围上讲,NAT 一般在局域网的出口部署。代理服务器可以在局域网部署,也可以在广域网部署,也可以跨网部署。

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

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

相关文章

【头歌】串的运算及应用

串的运算及应用第1关:求子串任务描述本关任务:实现字符串的求子串操作。相关知识为了完成本关任务,你需要理解:1. 求子串操作,2.字符串的顺序存储。求子串操作从一个字符串S的某个位置开始截取若干个连续字符&#xff…

采样电路的3个组成部分

采样电路的使用实际上是电路的一个闭环控制过程,也可以理解为一个负反馈过程,采集的信号被传送到主控制芯片进行调整。今天就来为您介绍一下采样电路的三个组成部分分析!一起来看看吧! 这里的采样实际上分为电流采样、电压采样、…

((蓝桥杯 刷题全集)【备战(蓝桥杯)算法竞赛-第6天(动态规划 专题)】( 从头开始重新做题,记录备战竞赛路上的每一道题 )距离蓝桥杯还有61天

🏆🏆🏆🏆🏆🏆🏆 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录&a…

EMR Studio 要点梳理

文章目录1. 关系梳理2. 网络配置2.1 必须是在私有子网中的EMR集群才可以被EMR Studio连接吗?2.2 关于网络安全组:DefaultEngineSecurityGroup 和 DefaultWorkspaceSecurityGroupGit2.3 18888端口2.4 无法访问Github的解决方法3. 集成Windwos AD身份认证4…

【王道数据结构】第六章(上) | 图详解

目录 一、图的基本概念 二、图的存储 1、邻接矩阵法 2、邻接表法(顺序链式存储) 3、十字链表存储 4、邻接多重表 三、图的基本操作 四、图的遍历 1、广度优先遍历 2、深度优先遍历 一、图的基本概念 1、图的定义 2、无向图 若E是无向边 简称边) 的有限集合时&#xff…

如何使用MongoDB?

一:与MySQL区别 RDBMS 与 MongoDB 对应的术语: 类似于mysql,刚开始数据库、集合都是要创建之后才有的。 但是每次插入数据时都是插入一个对象,整个对象就是文档,对象的属性名就是字段。字段是不需在提前创建时声明的…

linux基本功之fsck命令详解

💓 大家好,我是沐风晓月,双一流院校英语计算机双专业在读; 💓 想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命…

理解Keil编译器中编译程序时出现的Code、RO-data、RW-data和ZI-data的含义

** 1:Code、RO-data、RW-data和ZI-data ** STM32单片机在keil开发环境下编译完成后,会显示: Program Size: Codexxxx RO-dataxxxx RW-dataxxxx ZI-dataxxxx 编译后的显示窗口如图所示: 其中Code、RO-data、RW-data和ZI-data是什么意思呢&…

基于OpenCV 的车牌识别

基于OpenCV 的车牌识别 车牌识别是一种图像处理技术,用于识别不同车辆。这项技术被广泛用于各种安全检测中。现在让我一起基于 OpenCV 编写 Python 代码来完成这一任务。 车牌识别的相关步骤 1. 车牌检测:第一步是从汽车上检测车牌所在位置。我们将使用…

基于matlab模拟雷达海杂波PPI

一、前言此示例演示如何在海洋环境中模拟旋转天线阵列的计划位置指示器 (PPI) 雷达图像。您将配置雷达方案和光谱海面模型,使用点散射体集合模拟扩展目标,生成返回信号,并绘制结果的 PPI 图像。二、配置雷达方案设置 R…

Word操作与应用

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.Office中Word简介 二.word工作环境 1.WPS简介 2.启动Word …

通过环境变量来绕过Windows Defender和隐藏混淆行为

什么是环境变量 关于什么是环境变量,我这篇文章介绍的很清楚 https://blog.csdn.net/qq_45894840/article/details/128622314?spm1001.2014.3001.5502这里在扩展一点 env env是英文单词environment的缩写,其功能是用于显示和定义环境变量&#xff0…

Mybatis源码(一) Mybatis是如何与spring框架整合的

Mybatis是现在最流行的数据库中间件之一,用mybatis的好处在于让开发者更专注在SQL本身,能与多种数据库兼容,而spring框架又是java最强大的框架,对于java来讲,万物是基于spring 的,因此我们有必要去理解myba…

若依框架---PageHelper分页(十三)

我们介绍了PageHelper中的cache包以及简单介绍了包中各个类的属性与方法;还介绍了Java中一种加载类的方式:Class.forName,并且通过查看com.mysql.jdbc.Driver代码,我们知道,可以通过这种方式可以执行类中的静态代码段。…

python进阶——自动驾驶寻找车道

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

设计模式-策略模式详解

1. 背景在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。在软件开发中也常常遇到类似的情况,当实现某…

Java数据结构中栈和队列深度解析

栈和队列使用的范围很广,本篇用来深度解析Java数据结构中的栈和队列的深度解析,栈和队列都能用单向或双向链表来实现哦,希望可以帮助各位! 文章目录 目录 一、栈 1.1栈的概念 1.2栈的使用 1.3栈的自定义顺序栈实现 1.4栈的练习题…

本机信息收集

✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆 🔥系列专栏 : 内网安全 📃新人博主 :欢迎点赞收藏关注,会回访! 💬舞台再大,你不上台,永远…

【JavaEE】Java中复杂的Synchronized关键字

目录 一、synchronized的特性 (1)互斥 (2)刷新内存 (3)可重入 二、synchronized的使用 (1)修饰普通方法 (2)修饰静态方法 (3)修…

计网之初识网络(理解网络传输的基本流程)

文章目录一. 网络发展史二. IP地址和端口号三. 计算机网络分层1. 什么是网络协议2. OSI七层网络模型3. TCP/IP五层网络模型4. 数据在各个层的传输过程5. 网络设备所在分层一. 网络发展史 🍂独立模式(单机模式) 我们最初的计算机是在单机模式下使用的, 此时的计算机…