【网络】DNS、ICMP、NAT

news2024/10/1 3:36:10

目录

一、DNS(Domain Name System)

1、DNS背景

2、域名简介

二、ICMP协议

1、ICMP功能

2、ICMP的报文格式

3、ping命令

4、traceroute命令

三、NAT技术

1、NAT技术背景

2、NAT IP转换过程

3、NAPT

4、NAT技术的缺陷

5、NAT和代理服务器


一、DNS(Domain Name System)

DNS是一整套从域名映射到IP的系统

1、DNS背景

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

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

  •  如果一个新计算机要接入网络,或者某个计算机IP变更,都需要到信息中心申请变更hosts文件。
  •  其他计算机也需要定期下载更新新版本的hosts文件才能正确上网。

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

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

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

cat /etc/hosts

2、域名简介

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

www.baidu.com

域名使用 . 连接

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

二、ICMP协议

ICMP协议是一个 网络层协议。

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

1、ICMP功能

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

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

2、ICMP的报文格式

 ICMP是作为IP报文的有效载荷使用的。 

 ICMP大概分为两类报文:

  • 一类是通知出错原因
  • 一类是用于诊断查询

3、ping命令

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

 ping命令基于ICMP,是在网络层。而端口号,是传输层的内容。在ICMP中根本就不关注端口号这样的信息。

4、traceroute命令

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

三、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替换成全局的IP 202.244.174.37;
  • NAT路由器收到外部的数据时, 又会把目标IP从202.244.174.37替换回10.0.0.10;
  • 在NAT路由器内部, 有一张自动生成的, 用于地址转换的表;
  • 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系

3、NAPT

 那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的IP都是相同的。那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?

 又如果同一个局域网内有多个主机的多个客户端访问同一个外网服务器,且不同主机的客户端的端口号恰好相同,又怎么区分这些相应分别属于哪些客户端。

 这时候NAPT来解决这个问题了。使用IP+port来建立这个关联关系。

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

 在网络中,要弱化主机的概念,把所有的请求或响应都看作是一个个独立客户端或服务器发起的,NAPT给每一个进程使用 IP + port 起了一个名字,这个名字在本局域网与公网中,全网唯一。

 在NAT路由器把数据进行转发时,会在内部建立一个源地址与目的地址的映射表,这些地址都是唯一的。因此在收到数据时,也可以根据映射表找到对应的进程,并转发回去。

 这样看来,似乎只需要维护内网客户端的 IP + port 与NAPT根据 IP + port 所取的名字的映射关系就可以了,这样足以完成数据发送与接收的过程,为什么还要维护公网服务器的IP + port 的映射关系呢?这是处于安全的考虑,如果不维护,那么公网中所有的请求响应,只要 IP + port 是正确的,就可以成功发送到内网之中,这样很容易搞崩一个内网。

4、NAT技术的缺陷

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

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

5、NAT和代理服务器

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

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

那么NAT和代理服务器的区别有哪些呢?

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

代理服务器是一种应用比较广的技术:

  • 翻墙:广域网中的代理。
  • 负载均衡:局域网中的代理。

代理服务器又分为正向代理和反向代理。

正向代器服务器一般比较靠近客户端,可以:

  • 缓存资源,提高用户体验与访问效率。
  • 过滤非法请求。

 反向代理服务器一般比较靠近服务端,可以把所有用户的请求收集到一起,并合理分配到机器集群的不同的服务器上,保证负载均衡。

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

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

相关文章

分布式应用:Zookeeper 集群与kafka 集群部署

目录 一、理论 1.Zookeeper 2.部署 Zookeeper 集群 3.消息队列 4.Kafka 5.部署 kafka 集群 6.FilebeatKafkaELK 二、实验 1.Zookeeper 集群部署​​​​​​​ 2.kafka集群部署 3.FilebeatKafkaELK 三、问题 1.解压文件异常 2.kafka集群建立失败 3.启动 filebeat报…

中国信通院发布《高质量数字化转型产品及服务全景图(2023)》

2023年7月27日,由中国信息通信研究院主办的2023数字生态发展大会暨中国信通院铸基计划年中会议在北京成功召开。 本次大会发布了中国信通院《高质量数字化转型产品及服务全景图(2023)》,中新赛克海睿思受邀出席本次大会并成功入选…

HarmonyOS应用开发者基础与高级认证题库——中级篇

系列文章目录 HarmonyOS应用开发者基础与高级认证题库——基础篇 HarmonyOS应用开发者基础与高级认证题库——中级篇 文章目录 系列文章目录前言一、判断二、单选三、多选 前言 今天刚换了台果子手机就收到了华子鸿蒙开发认证邀请(认证链接)&#xff0…

2020年江西省职业院校技能大赛高职组“信息安全管理与评估”赛项任务书

2020年江西省职业院校技能大赛高职组 “信息安全管理与评估”赛项任务书 赛项时间 9:00-12:00,共计3小时。 赛项信息 赛项内容 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 平台搭建与安全设备配置防护 任务1 网络平台搭建 9:00-12:00 100 任务…

2023下半年软考初级程序员报名入口-报名流程-备考方法

软考初级程序员2023下半年考试时间: 2023年下半年软考初级程序员的考试时间为11月4日、5日。考试时间在全国各地一致,建议考生提前备考。共分两科,第一科基础知识考试具体时间为9:00到11:30;第二科应用技术考试具体时间为2:00到4…

【C++刷题集】-- day5

目录 选择题 单选 编程题 统计回文⭐ 【题目解析】 【解题思路 - 穷举】 【优化】 连续最大和⭐ 【题目解析】 【解题思路】 【空间优化】 选择题 单选 1、 在上下文和头文件均正常情况下,以下程序的输出结果是 ( ) int x 1; do {printf("%2d\n&q…

Python批量查字典和双语例句

最近,有网友反映,我的批量查字典工具换到其它的网站就不好用了。对此,我想说的是,互联网包罗万象,网站的各种设置也有所不同,并不是所有的在线字典都可以用Python爬取的。事实上,很多网站为了防…

Python入门自学进阶-Web框架——38、redis、rabbitmq、git

缓存数据库redis: NoSQL(Not only SQL)泛指非关系型的数据库。为了解决大规模数据集合多重数据类的挑战。 NoSQL数据库的四大分类: 键值(Key-Value)存储数据库列存储数据库文档型数据库图形(…

MySQL最终弹-并发(脏读,不可重复读,幻读及区别),JDBC的使用和安装,最全万字

一、💛并发基本概念 并发的基本意思: 什么是并发呢?简单的理解就是同一时间执行 服务器同一时刻,给多个客户端提供服务~~,这两个客户端都可以给服务器提交事务。 如果提交两个事务,改…

召唤神龙打造自己的ChatGPT

在之前的两篇文章中,我介绍了GPT 1和2的模型,并分别用Tensorflow和Pytorch来实现了模型的训练。具体可以见以下文章链接: 1. 基于Tensorflow来重现GPT v1模型_gzroy的博客-CSDN博客 2. 花费7元训练自己的GPT 2模型_gzroy的博客-CSDN博客 有…

C++STL——map/multimap容器详解

纵有疾风起,人生不言弃。本文篇幅较长,如有错误请不吝赐教,感谢支持。 💬文章目录 一.对组(pair)二.map/multimap基本概念三.map容器常用操作①map构造函数②map迭代器获取③map赋值操作④map大小操作⑤map…

突破视觉边界:深入探索AI图像识别的现状与挑战

图像识别作为人工智能领域的一个重要研究方向,取得了许多令人瞩目的成就。深入探索当前AI图像识别技术的现状以及所面临的挑战,讨论各种方法的优势和局限性。 目录 引言1.1 AI图像识别的背景和概述1.2 人工智能在图像识别中的应用和重要性 图像识别基础知…

RISC-V基础指令之逻辑指令 and、or、xor、not

RISC-V的逻辑指令是用于对两个寄存器或一个寄存器和一个立即数进行按位的逻辑运算,并将结果存放在另一个寄存器中的指令。按位的逻辑运算就是把两个操作数的每一位分别进行相应的逻辑运算,得到一个新的位。RISC-V的逻辑指令有以下几种: and&…

c++高性能多进程 cuda编程:GPU结构和通信速度+tiling的代码实现

根据c高性能多进程 cuda编程:GPU结构和通信速度tiling的分析,依靠pytorch的JIT进行了实现,所以在安装pytorch的环境中,直接执行test.py就能直接运行。 代码结构如下,地址 mm.h void function_mm(float *c,const float *a,cons…

一文辨析,性能分析top命令中进程NI和PR

分析 Linux 服务器性能,首先想到的命令肯定是 top, 通过它,我们可以看到当前服务器资源使用情况和进程运行资源占用情况。 如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程&…

网络安全【黑客】自学

1.什么是网络安全? 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有…

MySql UNION 一行转多列

背景:DataEase饼图有特定格式,并且报表要求全部使用SQL语句获取数据 原先数据格式如下,需要行转换列 转换后结果: 原理 字段1,target作为一个不存在的字段,用于命名。 字段2,count字段是关键,…

Centos更换网卡名称为eth0

Centos更换网卡名称为eth0 已安装好系统后需要修改网卡名称为eth0 编辑配置文件将ens33信息替换为eth0,可在vim命令模式输入%s/ens33/eth0/g替换相关内容 修改内核文件,添加内容:net.ifnames=0 biosdevname=0 [root@nova3 ~]# vim /etc/default/grub 使用命令重新生成g…

高级IO:五种IO模型

五种IO模型 阻塞IO 阻塞IO: 在内核将数据准备好之前, 系统调用会一直等待. 所有的套接字, 默认都是阻塞方式. 非阻塞IO 如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EAGAIN/EWOULDBLOCK错误码. 非阻塞IO往往需要程序员循环的方式反复尝试读写文件描述符, 这…

无人驾驶实战-第六课(动态环境感知与Tracking)

跟踪是在连续帧中根据物体信息关联(确定)同一物体 运动模型(motion model):根据历史的位置和速度 ( 大小和方向) 建立模型,预测当前帧中物体的大致位置 外观模型(appearance model):根据历史外观(颜色 尺寸 2D/3D框 轮廓等&#…