DNS、ICMP协议和NAT技术

news2025/1/21 0:52:02

在这里插入图片描述

文章目录

  • 1. DNS
    • 1.1 域名简介
  • 2. NAT技术
    • 2.1 NAPT
    • 2.2 NAT技术的缺陷
    • 2.3 NAT和代理服务器
  • 3. ICMP协议
    • 3.1 ping命令
  • 4. 总结

1. DNS

TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序,但是IP地址不方便记忆,于是人们发明了一种叫主机名的东西,是一个字符串,并且使用hosts文件来描述主机名和IP地址的关系。
在这里插入图片描述
最初,通过互连网信息中心来管理这个hosts文件的,但是如果一个新计算机要接入网络,或者某个计算机IP变更, 都需要到信息中心申请变更hosts文件,其它计算机也需要定期下载更新新版本的hosts文件才能正确上网,这样就太麻烦了,于是产生了DNS系统。

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

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

cat /etc/hosts

1.1 域名简介

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

www.baidu.com

域名使用 . 连接,com: 一级域名,表示这是一个企业域名,同级的还有 “net”(网络提供商),“org”(非盈利组织) 等。baidu: 二级域名,公司名。www: 只是一种习惯用法。

2. NAT技术

之前我们讨论了,IPv4协议中,IP地址数量不充足的问题,NAT技术当前解决IP地址不够用的主要手段,是路由器的一个重要功能
NAT能够将私有IP对外通信时转为全局IP,也就是就是一种将私有IP和全局IP相互转化的技术方法,很多学校、家庭、公司内部采用每个终端设置私有IP,而在路由器或必要的服务器上设置全局IP。全局IP要求唯一,但是私有IP不需要,在不同的局域网中出现相同的私有IP是完全不影响的。

2.1 NAPT

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

这时候NAPT来解决这个问题了,使用IP+port来建立这个关联关系
在这里插入图片描述
这种关联关系也是由NAT路由器自动维护的。例如在TCP的情况下,建立连接时,就会生成这个表项,在断开连接后,就会删除这个表项。

2.2 NAT技术的缺陷

由于NAT依赖这个转换表,所以有诸多限制:1.无法从NAT外部向内部服务器建立连接。2.装换表的生成和销毁都需要额外开销。3.通信过程中一旦NAT设备异常, 即使存在热备,所有的TCP连接也都会断开。

2.3 NAT和代理服务器

路由器往往都具备NAT设备的功能,通过NAT设备进行中转,完成子网设备和其它子网设备的通信过程。
代理服务器看起来和NAT设备有一点像,客户端向代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器,服务器返回结果后, 代理服务器又把结果回传给客户端。

那么NAT和代理服务器的区别有哪些呢?
从应用上讲,NAT设备是网络基础设备之一,解决的是IP不足的问题。代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙,另外加速器 也是使用代理服务器

从底层实现上讲,NAT是工作在网络层, 直接对IP地址进行替换。 代理服务器往往工作在应用层

从使用范围上讲,NAT一般在局域网的出口部署,代理服务器可以在局域网做,也可以在广域网做,也可以跨网

从部署位置上看,NAT一般集成在防火墙,路由器等硬件设备上。代理服务器则是一个软件程序,需要部署在服务器上

代理服务器是一种应用比较广的技术,翻墙: 广域网中的代理。负载均衡: 局域网中的代理。

代理服务器又分为正向代理和反向代理:
比如说我们在学校宿舍通过校园网访问百度,那么我们用的校园网就是通过运营商安装的正向代理服务器。它会对我们的访问请求进行过滤或者拦截,或者提高我们的访问的效率,也可以对我们进行身份验证,并且在一定程度上保护了我们的网络安全。

那么反向代理服务器,比如说我们访问某个大公司的机房中的某一台主机,我们不是直接就能访问,它是通过反向代理服务器来完成的,首先就有白名单和黑名单来判别我们的IP是否合法,然后通过负载均衡来用机房里不繁忙的主机来完成我们的访问。

正向代理用于请求的转发,反向代理往往作为一个缓存

3. ICMP协议

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

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

在这里插入图片描述

3.1 ping命令

在这里插入图片描述
注意:此处 ping 的是域名,不是url。一个域名可以通过DNS解析成IP地址
ping命令不光能验证网络的连通性,同时也会统计响应时间和TTL。
ping命令会先发送一个 ICMP Echo Request给对端,对端接收到之后,会返回一个ICMP Echo Reply。
在这里插入图片描述
一个值得注意的坑:telnet是23端口,ssh是22端口,那么ping是什么端口?
ping命令基于ICMP,是在网络层。而端口号,是传输层的内容。在ICMP中根本就不关注端口号这样的信息。

4. 总结

数据链路层:
数据链路层的作用: 两个设备(同一种数据链路节点)之间进行传递数据。
以太网是一种技术标准,既包含了数据链路层的内容,也包含了一些物理层的内容。例如: 规定了网络拓扑结构,访问控制方式,传输速率等。
以太网帧格式。
理解mac地址。
理解arp协议。
理解MTU

网络层:
网络层的作用: 在复杂的网络环境中确定一个合适的路径。
理解IP地址,理解IP地址和MAC地址的区别。
理解IP协议格式。
了解网段划分方法。
理解如何解决IP数目不足的问题,掌握网段划分的两种方案。理解私有IP和公网IP。
理解网络层的IP地址路由过程,理解一个数据包如何跨越网段到达最终目的地。
理解IP数据包分包的原因。
了解ICMP协议。
了解NAT设备的工作原理

传输层:
传输层的作用: 负责数据能够从发送端传输接收端。
理解端口号的概念。
认识UDP协议,了解UDP协议的特点。
认识TCP协议,理解TCP协议的可靠性,理解TCP协议的状态转化。
掌握TCP的连接管理、确认应答、超时重传、滑动窗口、流量控制、拥塞控制、延迟应答、捎带应答特性。
理解TCP面向字节流,理解粘包问题和解决方案。
能够基于UDP实现可靠传输。
理解MTU对UDP/TCP的影响

应用层:
应用层的作用:满足我们日常需求的网络程序,都是在应用层。
能够根据自己的需求,设计应用层协议。
了解HTTP协议。
理解DNS的原理和工作流程

如果我们向目标主机发送http数据,请帮我描述一下所有的通信过程
整体过程:1.域名解析。2.建立连接TCP。3.构建http请求。4.发送请求。5.解析请求。6.定位资源。7.构建响应。8.发送响应。9.收到响应并解析。10.解释HTML进行渲染,展现给用户

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

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

相关文章

视频监控汇聚平台EasyNVR安防视频平台新版本无法对接到EasyNVS平台并报错login error,该如何解决?

安防监控系统EasyNVR视频云存储平台可实现设备接入、实时直播、录像、检索与回放、视频云存储、视频分发等视频能力服务,可覆盖全终端平台(pc、手机、平板等终端),在智慧工厂、智慧工地、智慧社区、智慧校园等场景中有大量落地应用…

leetcode 671. 二叉树中第二小的节点(java)

二叉树中第二小的节点 题目描述DFS 深度优先遍历代码演示 题目描述 难度 - 简单 leetcode 671. 二叉树中第二小的节点 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话,那么…

SpringMVC增删改查(CRUD)的实现

目录 前言 一、前期准备 1.pom.xml---依赖与插件的导入 2.jdbc.properties---数据库连接 3.log4j2.xml---日志文件 4.spring-mybatis 5.spring-context 6.spring-mvc 二、增删改查的实现 1.model与mapper层的生成 2.biz层 3.工具类 4.controller层 三、测试结果 总…

MySQL——select语句的简单介绍和查询时常用的参数

select语句详解 基本的select语句 select 要查询的列名 from 要查询的表 where 限制条件; 如果要查询表的所有内容,则把要查询的列名用—个星号*号表示(之间的案例中都已经使用过),代表要查询表中所有的列。 而大多数情况,我们只需要查看…

Linux——(第七章)文件权限管理

目录 一、基本介绍 二、文件/目录的所有者 1.查看文件的所有者 2.修改文件所有者 三、文件/目录的所在组 1.修改文件/目录所在组 2.修改用户所在组 四、权限的基本介绍 五、rwx权限详解 1.rwx作用到文件 2.rwx作用到目录 六、修改权限 一、基本介绍 在Linux中&…

[docker]笔记-portainer的使用

1、安装完成后输入ip加端口号打开网页,并再相应位置输入初始密码,初始密码自行设置。 2、进入主页后可以看到如下图标: 3、选择docker环境,即可展示目前docker信息 可以看到目前有1个容器,3个卷和4个镜像&#xff0c…

【C++ • STL】一文带你走进string

文章目录 一、STL简介二、标准库中的string类三、string类的常用接口说明2.1 string类对象的常见构造2.2 string类对象的访问及遍历操作2.2.1 元素访问2.2.2 迭代器 2.3 string类对象的容量操作2.4 string类对象的修改操作2.5 string类非成员函数 四、总结 ヾ(๑╹◡╹)&#x…

西门子PLC如何与多个三菱PLC建立无线通信?

对一个大型工厂,由于生产线的不断改造、新老流程的不断更新,这些PLC系统往往是由不同的制造商提供的。那么在智慧工厂的实现中,常会遇到不同品牌PLC之间需要进行相互通讯的情况。由于场地和生产能效的原因,在后期的系统改造中&…

docker从零部署jenkins保姆级教程(上)

jenkins,基本是最常用的持续集成工具。在实际的工作中,后端研发一般没有jenkins的操作权限,只有一些查看权限,但是我们的代码是经过这个工具构建出来部署到服务器的,所以我觉着有必要了解一下这个工具的搭建过程以及简…

【Java 基础篇】Java 异常处理指南:解密异常处理的关键技巧

异常是 Java 编程中不可避免的一部分。无论你是刚刚入门 Java 编程,还是已经有一定经验,了解异常处理都是非常重要的。本篇博客将向你介绍 Java 中异常的基础知识,帮助你理解什么是异常、为什么需要异常处理以及如何在代码中处理异常。 什么…

最新SQL注入漏洞原理及与MySQL相关的知识点

点击星标,即时接收最新推文 本文选自《web安全攻防渗透测试实战指南(第2版)》 点击图片五折购书 SQL注入漏洞简介 SQL注入是指Web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数被…

Spring MVC:视图与视图解析器

Spring MVC 前言视图视图解析器附 前言 在上一章中,模型数据通过域对象共享的方式返回给前端控制器 DispatcherServlet 。那么,把结果封装成模型视图 ModelAndView 对象返回给前端控制器 DispatcherServlet 后,下一步是前端控制器 Dispatche…

二分搜索树节点的查找(Java 实例代码)

目录 二分搜索树节点的查找 Java 实例代码 src/runoob/binary/BinarySearchTreeSearch.java 文件代码: 二分搜索树节点的查找 二分搜索树没有下标, 所以针对二分搜索树的查找操作, 这里定义一个 contain 方法, 判断二分搜索树是否包含某个元素, 返回一个布尔型变…

C#,数值计算——用于积分的梯形法(Trapezoidal Rule)的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// Routine implementing the extended trapezoidal rule. /// </summary> public class Trapzd : Quadrature { /// <summary> /// Limits …

【Java 基础篇】Java Collection 详解:集合入门指南

Java 是一种流行的编程语言&#xff0c;其中的集合&#xff08;Collection&#xff09;框架为处理和操作数据提供了丰富的工具。无论你是刚刚开始学习 Java&#xff0c;还是已经有一些经验&#xff0c;理解如何使用集合是非常重要的&#xff0c;因为它们是 Java 程序中最常用的…

【漏洞复现】博华网龙设备存在命令执行漏洞

漏洞描述 中科博华是一家主营软件产品开发、信息安全产品研发,兼营计算机系统集成与信息安全服务为一体的高科技企业。拥有七项专利和五十余项软件著作权。具有CMMI、商用密码生产和销售许可证、3C认证、系统集成、信息安全服务和涉密资质。 该产商多个安全设备的系统存在远…

MySQL5.7 在Window平台安装

一、下载 在MySQL的官网下载安装包 MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/ 这里我选择的是x64的ZIP安装包&#xff1b;点击Download下载 这里我选择的是直接开始下载 二、解压与初始化 将下载好的安装包解压&#xff0c;这里我解…

一些芯片设计的冷知识

关于芯片物理版图 芯片物理版图是一种用来描述集成电路内部结构和连接的图形文件&#xff0c;它是芯片设计的最终结果&#xff0c;也是芯片制造的依据。芯片物理版图中包含了各种工艺层的信息&#xff0c;例如多晶硅层、金属层、活性区层、接触层等&#xff0c;每一层都有不同…

MMDetection3D框架环境配置

MMDetection3D是一个基于PyTorch的开源3D目标检测框架。下面是MMDetection3D的环境配置步骤&#xff1a; 安装Anaconda&#xff0c;教程很多不在说明。 1.创建Python环境 使用以下命令创建一个Python 3.8环境&#xff1a; conda create -n mmdetection3d python3.8使用以下…

WPS或EXCEL表格单元格下拉快捷选择项修改及设置方法

WPS或新版本EXCEL的设置下拉选项的方法是.点击一个单元格,菜单上选择数据,下拉列表即可设置,双击文字可编辑 EXCEL 旧的版本不同,可能有不同方法 方法一, 1.在空白区域里面&#xff0c;准备好需要填入下拉菜单里面的内容。 2.选中一个需要添加下拉菜单的单元格&#xff0c;然后…