`
hilyhoo
  • 浏览: 13710 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

DNS请求流程

阅读更多

1、PC1要访问www.google.com,需要先知道对应IP地址。
域名只起助记作用,互联网访问通过IP进行。
比方,DNS是公民身份信息库,ip是身份证号,域名是该身份证号对应的人名。
当然,这个比方不是很恰当,域名也必须唯一的,与ip对应。

2、于是,PC1需要像DNS请求,查找www.google.com对应的ip,即发送dns请求:
PC1查找dns,发现不在同一个网络,不同网段需要网关转发。
但是,PC1需要先发送给网关,就需要先知道网关ip。
网关用于连接不同网络,并且有自己的IP,PC1需要知道网关ip。于是,通过ARP请求,像内网广播网关ip,网关回复mac地址。
PC1得到了网关的mac地址,将ip包封装到以太网帧,发送给网关。

3、网关收到该以太网帧,需要转交给dns服务器。
同样,网关可能需要发送ARP请求,得到dns的mac地址。

4、dns服务器收到请求,将www.google.com的ip发送给网关,网关再根据NAT会话表项,将目的ip转换成PC1的,再发送给PC1(此过程可能同样需要ARP请求)。

5、PC1收到了目的ip,再可以通过类似上面的方式发送请求(目的ip再可以直接填上获取的ip)。

其中:
ARP==>将ip广播,目的主机响应,反馈mac地址。


NAT==>在一个网络内部,自定义合法的ip地址。内网各主机通过内网通讯;与外网通过NAT转换,变成外网合法ip。这样,将内网与外网隔离,各个网络有自己的ip,既可以重叠,又可以通过少数几个ip与外网通讯,在ip大量缺乏的现代,节省了很多。

分享到:
评论

相关推荐

    DNS请求,定制DNS响应

    本文将深入探讨如何利用C++编程语言来实现DNS请求和响应的定制,特别是如何拦截DNS请求并提供本地解析,以及如何处理53端口的问题。 首先,我们需要理解DNS查询和响应的工作流程。当用户在浏览器中输入一个域名时,...

    分布式-多活数据中心如何实现DNS域名解析和负载均衡.docx

    客户端的DNS请求流程如下: 1. **客户端向LocalDNS发起请求**:例如,客户端请求访问www.abc.com。 2. **LocalDNS查询RootDNS**:从RootDNS得知www.abc.com可由DNS-CTC、DNS-CNC、DNS-USA1和DNS-USA2等DNS服务器...

    caa的计算机dns检测流程

    - **流程**:计算机将通过配置的DNS服务器列表依次向这些服务器发起查询,请求获取目标域名的IP地址信息。 - **注意**:这里的“本地DNS服务器”指的是由ISP(Internet Service Provider,互联网服务提供商)提供的...

    DNS本地缓存流程图1

    1. **访问本地DNS**:这是第一步,用户设备会查询本地DNS缓存,以查看所请求的域名是否已经解析过,并存储了对应的IP地址。 2. **SP返回内置IP列表**:如果本地DNS缓存中没有找到对应的IP,系统可能会参考服务提供...

    dns-bind处理流程介绍

    本文将详细解析 DNS-BIND 的处理流程,特别是从客户端发起请求到服务器响应的整个过程。 #### 二、DNS-BIND 主要处理模块与工作原理 DNS-BIND 的处理流程涉及多个关键模块,包括但不限于主模块(clientroot)、主...

    HTTP请求流程

    ### HTTP请求流程详解 #### 一、HTTP协议简介 HTTP(HyperText Transfer Protocol)是一种用于分布式、协作式和超媒体信息系统的应用层协议。它基于客户端-服务器模型,主要用于从Web服务器传输超文本文档(例如...

    用Socket实现DNS查询

    4. **发送DNS请求**:使用`sendto()`函数将构造好的DNS请求报文发送到DNS服务器。目标地址是DNS服务器的IP和端口53。 5. **接收DNS响应**:设置一个足够大的缓冲区,使用`recvfrom()`函数等待DNS服务器的响应。响应...

    DNS中继服务器(含详细实验文档)

    2. **DNS报文解析**:解析接收到的DNS请求报文,提取出域名、查询类型(如A记录、MX记录等)和查询类别(如IPv4、IPv6等)。 3. **DNS请求转发**:根据解析得到的信息,构造新的DNS查询报文,并发送到上一级DNS...

    DNS与BIND构建DNS

    - 修改配置以接受与缓存所有查询,这使得服务器能够对各种DNS请求作出响应。 - 在文件尾部添加配置,创建一个名为“lan”的解析区域,允许并接受来自特定网段(如192.168.11.0/24)的DNS查询,同时支持递归查询。...

    DNS域名劫持服务器

    2. **网络编程**:使用MFC中的Winsock API或Boost.Asio库进行网络通信,监听和接收来自客户端的DNS请求,然后构造并发送响应。 3. **数据解析与构造**:DNS报文是基于UDP的数据包,包含DNS头部和一系列资源记录。...

    C#的DNS协议完整实现代码【有默认DNS服务器实现哦~】

    服务器端通常会监听UDP端口53,接收客户端发送的DNS请求,解析请求报文,查找相应的记录,然后构造响应报文并返回。这个过程涉及到Socket编程和网络数据包的解析与构建。 接着,DNS客户端是用户与DNS服务器交互的...

    易语言DnsQuery解析DNS源码

    易语言是一种基于中文编程...但通过以上分析,我们可以理解这段源码的核心功能和使用场景,以及在易语言环境下如何进行DNS解析操作的大致流程。对于想要深入学习易语言和网络编程的开发者来说,这是一个有价值的资源。

    Http请求处理流程

    HTTP请求处理流程是Web开发中的核心概念,它涉及到服务器如何响应客户端(如浏览器)发起的HTTP请求。在深入了解Form验证模式和Windows验证模式之前,理解HTTP请求处理流程至关重要。这里我们将详细探讨这一流程,...

    DNS 域名服务协议

    在DNS的工作流程中,当客户端需要解析域名时,首先会向本地DNS服务器发送查询请求。本地DNS服务器首先查询本地缓存,如果找到对应的IP地址,则直接返回给客户端;如果没有找到,则将请求转发给上一级DNS服务器。这样...

    DNS协议分析报告

    - **DNS请求报文**:结构与第一帧相似,但查询对象变为了目标域名。 - **第四帧**:本地DNS服务器返回包含目标域名真实地址(119.75.217.56 和 119.75.218.45)的响应报文。 - **DNS响应报文**:除了提供IP地址...

    HTTP请求流程深入解析与性能优化技术指南

    内容概要:本文详细解析了HTTP请求的整个流程,包括用户请求发起、请求报文构建、服务器处理请求、响应报文生成、网络传输响应和浏览器接收响应六个阶段。每个阶段的内容均涵盖了关键步骤和技术细节,如DNS解析、TCP...

    03-HTTP请求流程:为什么很多站点第二次打开速度会很快?_For_vip_user_0011

    总结来说,HTTP请求流程的优化主要依赖于缓存机制、DNS解析速度、TCP连接的管理以及Cookie机制。理解这些概念有助于优化网站性能,提供更好的用户体验。在实际开发中,开发者可以通过控制缓存策略、减少DNS查找时间...

    智能DNS bind实际部署

    5. **DNS请求的处理流程**: - 当客户端请求解析域名时,首先会向本地DNS服务器发起请求。 - 本地DNS服务器如果不知道该域名的解析结果,则会向权威DNS服务器发送请求。 - 权威DNS服务器(这里特指智能DNS服务器...

    DNS与BIND.pdf

    - **DNS查询流程**: 详细了解DNS递归查询和迭代查询的过程。 - **安全性和性能优化**: 学习如何使用CHROOT技术增强BIND的安全性,以及如何优化BIND的性能。 - **故障排查**: 掌握常见的BIND配置问题及解决方法。 - *...

Global site tag (gtag.js) - Google Analytics