在互联网上要想与另外一台主机通信,要知道对方的IP地址,但是IP地址是很难记忆的,

比如百度的一台服务器的IP地址为115.239.210.27,我们在浏览器中输入http://115.239.210.27/就可以访问百度了,但是如果访问一个网站就要记住它的的IP是很蛋疼的事,人们习惯记住有意义的字符串,比如baidu。

域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务。它作为将域名IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS 使用TCPUDP端口53。

DNS服务是如何实现的呢?

首先我们的电脑里面都会有一个DNS服务器(Name Server)的IP地址,可以手动设置也可以自动获取,有名的DNS服务器包括google的8.8.8.8 阿里巴巴的223.5.5.5等,查看自己电脑的DNS服务器的IP地址可以在windows命令行下输入ipconfig /all,在linux下面则通过more /etc/resolv.conf查看。

客户端发起访问请求www.163.com:

1.查看本地hosts文件,发现没有www.163.com IP 映射关系,将请求发送给本地DNS服务器( ----递归查询----)

2.本地DNS服务器不包含163.com的权威域,不存在对应的www记录,因此将请求转发到根域名服务器(假如  a.root-servers.net.)

3.根域名DNS服务器会返回负责.com域解析的服务器(假如 a.gtld-servers.net.)给本地DNS服务器,本地DNS服务器再将请求发送给 a.gtld-servers.net

4..com域名服务器只能返回负责163.com域的解析服务器(如 ns1.nease.net.)给本地DNS服务器,本地DNS服务器再将请求发送给ns1.nease.net.

5.由ns1.nease.net.域名服务器返回www.163.com 的 IP映射关系给本地DNS服务器

(2-5过程)----迭代查询----

6.本地DNS服务器将结果保存到本地缓存,并保持TTL时间,同时将结果应答给客户端.

7.当其他客户端再次向本地DNS服务器查询www.163.com时,在TTL时间内,本地DNS服务器不再向根域名服务器转发请求,而是直接从缓存中读取数据应答给客户端. 如果已经超过TTL时间,则本地DNS服务器会再次经历一次上诉2-6的过程.

以后会结合Wireshark分析DNS报文的每个字段详细意思,以及DNS查询的其它细节问题。

【参考文献】

http://magic3.blog.51cto.com/1146917/1354084

http://www.360doc.com/content/11/0809/17/706976_139190573.shtml

http://zh.wikipedia.org/zh/域名系统

DNS协议(一)的更多相关文章

  1. 利用WireShark进行DNS协议分析

    一.准备工作 系统是Windows 8.1Pro 分析工具是WireShark1.10.8 Stable Version 使用系统Ping命令发送ICMP报文. 二.开始工作 打开CMD.exe键入: ...

  2. DNS协议 实践

    根据DNS协议发送UDP请求,然后获取IP地址 头文件: #ifndef __DNS__ #define __DNS__ #include <stdio.h> #include <s ...

  3. 计算机网络——DNS协议的学习与实现

    1. 主要内容 不说废话,直接进入正题.先说说本文本文的主要内容,好让你决定是否看下去: 介绍DNS是干什么的: 介绍DNS是如何工作的: 介绍DNS请求与响应的消息格式: 编程实现一个简单的DNS服 ...

  4. 网络协议 16 - DNS 协议:网络世界的地址簿

    [前五篇]系列文章传送门: 网络协议 11 - Socket 编程(下):眼见为实耳听为虚 网络协议 12 - HTTP 协议:常用而不简单 网络协议 13 - HTTPS 协议:加密路上无尽头 网络 ...

  5. IP、TCP、DNS协议

    ·······················································IP协议························· 位于网络层,作用是把数据包传送 ...

  6. 简单谈谈DNS协议

    DNS协议也可以称为DNS服务,全称是Domain Name System,即域名系统,和HTTP协议一样,也是一个位于应用层的协议(服务),它是基于运输层的UDP协议的,关于网络协议的分层介绍,见这 ...

  7. DNS协议工作过程;DNS的安全隐患

    DNS协议工作过程   下面以域名为m.xyz.com的主机欲通过另一个主机的域名y.abc.com的IP地址为例,简述DNS协议过程. 主机m.xyz.com先向其本地服务器dns.xyz.com进 ...

  8. DNS协议详解

    DNS协议详解 简介 DNS(Domain Name System)域名系统,主要实现的功能是将域名转换成ip地址的一个服务.它是由一个分层的DNS服务器实现的分布式数据库,同时.他也是一个使得主机能 ...

  9. 应用层协议FTP、DNS协议、HTTP协议分析

    分析所用软件下载:Wireshark-win32-1.10.2.exe 一.阅读导览 1.分析FTP协议 2.分析DNS协议 3. 分析HTTP协议 二.分析要求 (1)ftp部分: 学习 Serv- ...

  10. 结合Wireshark捕获分组深入理解TCP/IP协议栈之DNS协议

    摘要:     本文简单介绍了DNS协议理论知识,给出URL解析步骤,详细讲述了DNS报文各个字段含义,并从Wireshark俘获分组中选取DNS相关报文进行分析. 一.概述 1.1 DNS      ...

随机推荐

  1. filter()和find()的区别

    <div class="css"> <p class="rain">测试1</p> </div> <div ...

  2. ASP.NET CSS 小结

    1.ASP.NET 引用CSS 1.Site.master里面设置webopt <webopt:bundlereferencerunat="server"path=" ...

  3. 分享到JavaScript

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. data数据不一致的问题

    经常会遇到that.data能打印出来(能访问到),而that.data.xxx不能打印(为空)的情况.特别是在调用了云方法,然后setData的时候,为什么会出现这样的情况不明. 解决方法,将需要用 ...

  5. 未来已来,腾讯AI计算网络

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作者:由鹅厂网事发表在云+社区 "鹅厂网事"由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流 ...

  6. WebFTP安装说明

    下载地址:https://files.cnblogs.com/files/lilunjia/BEAT.WebFTP.zip WebFTP采用Asp.Net 2.0 开发 应用池设置 在应用池的高级设置 ...

  7. 使用Python从Workflowy同步大纲到印象笔记

    title: 从Workflowy到印象笔记 toc: true comment: true date: 2018-03-17 10:05:54 tags: ["Python", ...

  8. 筛法求素数Java

    输出:一个集合S,表示1~n以内所有的素数 import java.util.Scanner; public class 筛法求素数 { public static void main(String[ ...

  9. 腾讯云GAME-TECH游戏开发者技术沙龙(深圳)开启报名啦~

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~. 作者:由腾讯游戏云发表在云+社区 腾讯云GAME-TECH沙龙继1月杭州站后,将于3月30日来到深圳站,与游戏厂商和游戏开发者,畅聊游戏安 ...

  10. CI框架传递数组到view层问题记录

    给大家分享一下在做页面显示天气预报功能中遇到的问题和解决方法!! 项目开发中,我用的天气预报API是心知天气的免费接口.关于天气预报接口,可用的有很多,看需求怎么要求了!有兴趣的小伙伴可以链接到这个地 ...