《TCP/IP详解 卷一》读书笔记-----DNS
1、DNS是一个分布式数据库系统用来提供主机名和IP地址之间的映射,之所以称为分布式原因的原因是因特网上没有一台主机知道这类映射的全部信息,当然也不可能做到,因为数据量实在太大了
2、应用程序通过一个叫resolver的程序(也可以认为是DNS的客户端)调用DNS服务,通常在UNIX系统下由gethostbyname(由主机名得到IP地址)和gethostbyaddr(由IP地址得到主机名)这两个库函数实现
3、不是每个name server都知道如何和其他所有的name sever通信的,但它们都必须知道如何和root name server通信。例如当它们不知道请求的主机名www.baidu.com的IP地址时,首先需要和root name server进行通信,取得顶级域名服务器com的IP地址,然后进一步和它进行通信,由此不断地递归查找,知道找到目标主机名的IP地址为止

4、DNS报文格式如上图所示,其中identification字段用来唯一标识一个报文。flags字段是该报文的标志位,其中几个重要的字段为:1)QA:当QA为0时为询问报文,QA=1时为响应报文,2)AA字段的意思为“autoritative answer”,即返回的IP地址的确是在该服务器的域名管理范围内的,而不是从其他途径获得的,3)RD,“recursion desired”,如果该字段没被置位,并且被访问的域名服务器没有authoritative answer,那么该服务器就会返回一串其他其他域名服务器的信息用于域名解析,4)RA,"recursion available",置位,表示服务器支持递归查询,通常除了根域名服务器以外的服务器都支持。最后numbers of questions代表问题的数量,问题的具体内容在扩展的questions字段,对于answers等其他三个字段的意义也是类似的

5、DNS报文中的questions字段的格式如上图所示,其中query name为询问的主机名。重点需要关注的是question type字段,因为询问得到的回答就是和它相对应的。它分为好几种类型,最常见的为 1)A,表示询问query name对应的IP地址。2)PTR,表示询问IP地址对应的主机名,最后的query class字段一般设为1,表示IP地址

6、至于最后的answers,authority,additional information字段的格式是一样的,如上图所示,其中domain name为要查找的域名,type与之前的question type相对应,time-to-live字段表示的是该信息能在客户端缓存中保存的时间,一般为2天。最后的两个字段分别表示结果的长度和具体内容。例如对于A类型的查找,那么长度字段就为4,数据就是查询的域名对应的IP地址
7、Caching:为了减少重复的DNS查询带来的网络带宽的消耗,通常会将第一次查询得到的结果放在name server的缓存中,而不是resolver中,因为resolver是与具体应用绑定的。
8、TCP or UDP:通常DNS的询问和应答都是通过UDP传输的,但是UDP的数据报长度往往小于512个字节,当应答报文的长度大于512时,报文就会被截断。此时就需要改用TCP进行传输,因为TCP可以用报文段进行分次传输的,并没有对数据有长度上的限制
《TCP/IP详解 卷一》读书笔记-----DNS的更多相关文章
- 《TCP/IP详解》读书笔记
本书以UNIX为背景,紧贴实际介绍了数据链层.网络层.运输层 一.整体概念 1.各层协议的关系,只讨论四层 各层常见的协议: 网络层协议:IP协议.ICMP协议.ARP协议.RARP协议. ...
- TCP/IP详解 卷一学习笔记(转载)
https://blog.csdn.net/cpcpcp123/article/details/51259498
- 『TCP/IP详解——卷一:协议』读书笔记——10
2013-08-22 22:57:17 3.8 ifconfig命令 这个命令在Linux系统下可以通过下面的指令阅读说明文档: ifconfig 由于书中作者用的系统比较早的某Unix系统,所以我的 ...
- 『TCP/IP详解——卷一:协议』读书笔记——01
从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概 ...
- 【TCP/IP详解 卷一:协议】第二章:链路层
2.1 引言 链路层的三个目的: (1)为IP模块发送和接收IP数据报. (2)为ARP模块发送ARP请求和接收ARP应答.地址解析协议:ARP. (3)为RARP模块发送RARP请求和接收RARP应 ...
- 《TCP/IP详解卷一:协议》 概述
分层 TCP/IP协议族是一组不同层次上的多个协议的组合.TCP/IP通常被认为是一个四层次协议系统. 链路层(数据链路层或网络接口层):通常包括操作系统中的设备驱动程序和计算 ...
- 『TCP/IP详解——卷一:协议』读书笔记——02
2013-08-16 20:07:11 1.3 TCP/IP的分层 这是一个很好的图,要多看!!图上有些细节会在今后的笔记中提到,看不懂不必深究. IP是网络层上的主要协议,同时被TCP和UDP(这两 ...
- 『TCP/IP详解——卷一:协议』读书笔记——11
2013-08-23 20:00:18 第4章 ARP:地址解析协议 4.1 引言 ARP(Address Resolution Protocol,地址解析协议)是获取物理地址的一个TCP/IP协议. ...
- 『TCP/IP详解——卷一:协议』读书笔记——18
2013-08-27 15:44:52 第7章 Ping程序 7.1 引言 “ping”这个名字来源于声纳定为操作.Ping程序由Mike Muuss编写,目的是为了测试另一台主机是否可达.该程序发送 ...
- 『TCP/IP详解——卷一:协议』读书笔记——14
2013-08-25 11:32:06 第5章 RARP:逆地址解析协议 5.1 引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址.但是无盘机,如X终端或无盘工作站,则需要采用其 ...
随机推荐
- 重新想象 Windows 8 Store Apps (62) - 通信: Socket TCP, Socket UDP
[源码下载] 重新想象 Windows 8 Store Apps (62) - 通信: Socket TCP, Socket UDP 作者:webabcd 介绍重新想象 Windows 8 Store ...
- 重新想象 Windows 8.1 Store Apps (87) - TTS: Speak Text, Speak SSML
[源码下载] 重新想象 Windows 8.1 Store Apps (87) - TTS: Speak Text, Speak SSML 作者:webabcd 介绍重新想象 Windows 8.1 ...
- java LinkedBlockingQueue和ConcurrentLinkedQueue的区别
实现上看,两者都继承于AbstractQueue,但是ConcurrentLinkedQueue实现了Queue,而LinkedBlockingQueue实现了BlockingQueue,Blocki ...
- nodejs连接mysql并进行简单的增删查改
最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs ...
- JSON详解 .net
之前json掌握的不好,浪费了好多时间在查找一些json有关的转换问题,我所知道的方法只有把json序列化和反序列化一下,但是太麻烦了我觉得,所以就在找一些更简单又方便使用的方法.也许这个会有用吧,所 ...
- 学习android学习必备的java基础知识--四大内部类
学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...
- iOSQuartz2D-02-绘制炫酷的下载进度条
效果图 实现思路 要实现绘图,通常需要自定义一个UIView的子类,重写父类的- (void)drawRect:(CGRect)rect方法,在该方法中实现绘图操作 若想显示下载进度,只需要实例化自定 ...
- linux ssh更换默认的22端口
1.修改配置文件:/etc/ssh/sshd_config 2.先将Port 22 前面的 # 号去掉,并另起一行.如定义SSH端口号为26611 ,则输入 3.修改完毕后,重启SSH服务,并退出当前 ...
- 敏捷软件开发:原则、模式与实践——第14章 使用UML
第14章 使用UML 在探索UML的细节之前,我们应该先讲讲何时以及为何使用它.UML的误用和滥用已经对软件项目造成了太多的危害. 14.1 为什么建模 建模就是为了弄清楚某些东西是否可行.当模型比要 ...
- windows 下my.ini的配置优化
线上有若干WIN环境下的MySQL,需要进行优化配置,列出以下参数方便查阅 # For advice on how to change settings please see # http://dev ...