DNS技术和NAT技术详解
DNS技术和NAT技术详解
一.DNS(Domain Name System)
1.什么是DNS
2. 了解域名
3.域名解析过程
4.使用dig工具分析DNS过程
5.浏览器输入URL后发生什么事?
二.ICMP协议
1.ICMP功能
2.ICMP报文格式
3.ping命令
4.traceroute命令
3.NAT技术
1.为什么要要NAT技术
2. NAT技术IP地址的替换过程
3.NAPT技术
4.NAT技术的缺陷
5.NAT-PT(NAPT-PT)
6.NAT和代理服务器
一.DNS(Domain Name System)
1.什么是DNS
DNS是一套从域名到IP的映射系统。
TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序,但是IP地址不方便记忆。于是人们发明了一种叫主机名的东西是一个字符串,并且使用hosts文件来描述主机名和IP地址的关系。 用户可以简单的输入主机名xxxx,这样就可以简单的得到主机名和IP地址的映射关系,它存储在hosts文件中。最初通过互连网信息中心(SRI-NIC)来管理这个hosts文件的:
如果一个新计算机要接入网络, 或者某个计算机IP变更, 都需要到信息中心申请变更hosts文件。
其他计算机也需要定期下载更新新版本的hosts文件才能正确上网。
但是这样做太过麻烦了,所以就产生了域名解析系统DNS:
一个组织的系统管理机构,维护系统内的每个主机的IP和主机名的对应关系
如果新计算机接入网络,将这个信息注册到数据库中
用户输入域名的时候,会自动查询DNS服务器,由DNS服务器检索数据库, 得到对应的IP地址。
注:我们的计算机上仍然保留了hosts文件,在域名解析的过程中仍然会优先查找hosts文件的内容。
2. 了解域名
主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称。
例如:www.baidu.com(域名使用.连接)
com: 一级域名,表示这是一个企业域名。同级的还有 "net"(网络提供商),"org"(非盈利组织) 等。
baidu: 二级域名, 公司名。
www: 只是一种习惯用法,之前人们在使用域名时,往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式来表示主机支持的协议。
3.域名解析过程
客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
重复第四步,直到找到正确的纪录。
本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机
4.使用dig工具分析DNS过程
安装dig工具:
yum install bind-utils
1
使用dig查看域名解析过程:
dig www.baidu.com
1
如下图:
5.浏览器输入URL后发生什么事?
详细介绍:
https://blog.csdn.net/wuhenliushui/article/details/20038819/
二.ICMP协议
ICMP协议是一个 网络层协议 一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通。但是IP协议并不提供可靠传输,如果丢包了IP协议并不能通知传输层是否丢包以及丢包的原因。
1.ICMP功能
确认IP包是否成功到达目标地址
通知在发送过程中IP包被丢弃的原因
ICMP也是基于IP协议工作的,但是它并不是传输层的功能, 因此人们仍然把它归结为网络层协议。
ICMP只能搭配IPv4使用. 如果是IPv6的情况下, 需要是用ICMPv6>
2.ICMP报文格式
|----------------|---------------|----------------------------------|
| 类型 | 代码 | 检验和 |
|----------------|---------------|----------------------------------|
| 不同的类型和代码存在不同的内容 |
---------------------------------------------------------------------
1
2
3
4
5
ICMP报文一般分为两类:
一类是通知出错原因
一类是用于诊断查询
3.ping命令
ping命令不光能验证网络的连通性, 同时也会统计响应时间和TTL(IP包中的Time To Live, 生存周期)。
ping命令会先发送一个 ICMP Echo Request给对端,对端接收到之后, 会返回一个ICMP Echo Reply。
ping 的是域名,而不是url。一个域名可以通过DNS解析成IP地址。
telnet是23端口, ssh是22端口, 那么ping是什么端口?
答:ping命令基于ICMP, 是在网络层. 而端口号, 是传输层的内容. 在ICMP中根本就不关注端口号这样的信息。
4.traceroute命令
traceroute (Windows 系统下是tracert) 命令利用ICMP协议定位您的计算机和目标计算机之间的所有路由器。TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP 呼叫报文的TTL 值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。
3.NAT技术
1.为什么要要NAT技术
IPv4的地址不充足的问题对于计算机网络的发展是一个很大的问题,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来解决这个问题。
在使用TCP或UDP的通信当中,只有目标地址、源地址、目标端口、源端口以及协议类型(TCP还是UDP)五项内容都一致时才被认为是同一个通信连接。此时所使用的正是NAPT。
这种转换表在NAT路由器上自动生成。例如,在TCP情况下,建立TCP连接首次握手时的SYN包一经发出,就会生成这个表。而后又随着收到关闭连接时发出FIN包的确认应答从表中被删除。
4.NAT技术的缺陷
无法从NAT外部向内部服务器建立连接。
转换表的生成和销毁都需要额外开销。
通信过程中一旦NAT设备异常,即使存在备份, 所有的TCP连接也都会断开。
5.NAT-PT(NAPT-PT)
现在很多互联网服务都基于IPv4。如果这些服务不能做到IPv6中也能正常使用的话,搭建IPv6网络环境的有时也就无从谈起。 为此,就产生了NAT-PT(NAPT-PT)规范,PT是Protocol Translation的缩写。NAT-PT是将IPv6的首部转换为IPv4的首部的一种技术。有了这种技术,那些只有IPv6地址的主机也就能够与IPv4地址的其他主机进行通信了。
6.NAT和代理服务器
路由器往往都具备NAT设备的功能,通过NAT设备进行中转,完成子网设备和其他子网设备的通信过程。代理服务器看起来和NAT设备有一点像, 客户端像代理服务器发送请求, 代理服务器将请求转发给真正要请求的服务器,服务器返回结果后代理服务器又把结果回传给客户端。
NAT和代理服务器的区别:
NAT设备是网络基础设备之一,解决的是IP不足的问题,而代理服务器则是更贴近具体应用, 比如通过代理服务器进行翻墙,另外像迅游这样的加速器, 也是使用代理服务器。
NAT是工作在网络层直接对IP地址进行替换。代理服务器往往工作在应用层。
NAT一般在局域网的出口部署,代理服务器可以在局域网做也可以在广域网做也可以跨网。
NAT一般集成在防火墙,路由器等硬件设备上。代理服务器则是一个软件程序, 需要部署在服务器上。
代理服务器的应用:
翻墙: 广域网中的代理。
负载均衡: 局域网中的代理。
正向代理与反向代理的区别:
花王尿不湿是一个很经典的尿不湿品牌, 产自日本. 我自己去日本买尿不湿比较不方便, 但是可以让我在日本工作的表姐去超市买了快递给我. 此时超市看到的买家是我表 姐, 我的表姐就是 “正向代理”; 后来找我表姐买尿不湿的人太多了, 我表姐觉得天天去超市太麻烦, 干脆去超市买了一大批尿不湿屯在家里, 如果有人 来找她代购, 就直接把屯在家里的货发出去, 而不必再去超超市. 此时我表姐就是 “反向代理” 。
正向代理用于请求的转发(例如借助代理绕过反爬虫)
反向代理往往作为一个缓存
---------------------
作者:Hansionz
来源:CSDN
原文:https://blog.csdn.net/hansionz/article/details/86570290
版权声明:本文为博主原创文章,转载请附上博文链接!
DNS技术和NAT技术详解的更多相关文章
- Docker 基础技术之 Linux cgroups 详解
PS:欢迎大家关注我的公众号:aCloudDeveloper,专注技术分享,努力打造干货分享平台,二维码在文末可以扫,谢谢大家. 推荐大家到公众号阅读,那里阅读体验更好,也沉淀了很多篇干货. 前面两篇 ...
- php缓存技术——memcache常用函数详解
php缓存技术——memcache常用函数详解 2016-04-07 aileen PHP编程 Memcache函数库是在PECL(PHP Extension Community Library)中, ...
- ELK技术栈之-Logstash详解
ELK技术栈之-Logstash详解 前言 在第九章节中,我们已经安装好Logstash组件了,并且启动实例测试它的数据输入和输出,但是用的是最简单的控制台标准输入和标准输出,那这节我们就来深入的 ...
- Servlet技术——request、respone详解
Servlet之request.respone详解 Request (一) 概述 request是Servlet.service()方法的一个参数,在客户端发出每个请求时,服务器都会创建一个reque ...
- ARM Cortex-M底层技术(2)—启动代码详解
杂谈 工作了一天,脑袋比较乱.一直想把底层的知识写成一个系列,希望可以坚持下去.为什么要写底层的东西呢?首先,工作用到了这部分内容,最近和内部Flash打交道比较多,自然而然会接触到一些底层的东西:第 ...
- iOS开发——高级技术&本地化与国际化详解
本地化与国际化详解 效果如下: 英语: 中文: 具体实现如下: ...
- 会话技术——Cookies和Session详解
会话技术 (一) 概述.用途以及分类 (1) 基本概述 概述:会话是浏览器和服务器之间的多次请求和响应 也就是说,从浏览器访问服务器开始,到访问服务器结束,浏览器关闭为止的这段时间内容产生的多次请求和 ...
- CentOS 6.9下KVM虚拟机网络Bridge(网桥)方式与NAT方式详解(转)
摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式.Bridge方式的配置原理和步骤.Bridge方式适用于服务器主机的虚拟化.NAT方式适用于桌面主机的虚拟化. NAT的网络结构图: ...
- 会话技术cookie和session详解
什么是会话 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 会话技术解决了什么问题 每个用户与服务器进行交互的过程中,各自会有一 ...
随机推荐
- WinExec, ShellExecute,CreateProcess 区别
其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂. WinExec 有两个参数,前一个指定路径,后一个指定显示方式. ShellExe ...
- FastJson--阿里开源的速度最快的Json和对象转换工具 https://www.cnblogs.com/kaituorensheng/p/8082631.html
import java.util.ArrayList;import java.util.List;import java.util.HashMap;import java.util.Map; impo ...
- 关于升级.NetCore3.1启动运行项目之后无法运行之前版本的错误解决方案
昨天在跟上微软的进度,更新VS版本升级.netcore3.1 之后成功运行之后发现,我无法运行之前版本的问题 都是报这种问题: 还有打开解决方案所有的项目都无法正常加载,都是"已卸载&quo ...
- RabbitMQ基本概念(四)-服务详细配置与日常监控管理
RabbitMQ服务管理 启动服务:rabbitmq-server -detached[ /usr/local/rabbitmq/sbin/rabbitmq-server -detached ] 查看 ...
- Nmon监控性能分析
一.CPU信息 1.折线图中蓝线为cpu占有率变化情况:粉线为磁盘IO的变化情况: 2.下面表各种左边的位磁盘的总体数据,包括如下几个: Avg tps during an interval 每个间隔 ...
- 大数据:Hadoop(HDFS 的设计思路、设计目标、架构、副本机制、副本存放策略)
一.HDFS 的设计思路 1)思路 切分数据,并进行多副本存储: 2)如果文件只以多副本进行存储,而不进行切分,会有什么问题 缺点 不管文件多大,都存储在一个节点上,在进行数据处理的时候很难进行并行处 ...
- WSGI——python web 服务器网关接口
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826084.html 一:服务器.服务器软件.应用程序(后台) 我们常说“服务器”,实际上服务器是一个很宽 ...
- Introduction to Linux Threads
Introduction to Linux Threads A thread of execution is often regarded as the smallest unit of proces ...
- Spring Boot 2.0 整合携程Apollo配置中心
原文:https://www.jianshu.com/p/23d695af7e80 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够 ...
- centos 7( linux )下搭建elasticsearch踩坑记
原文:https://blog.csdn.net/an88411980/article/details/83150380 概述 公司最近在做全文检索的项目,发现elasticsearch踩了不少 ...