声明:本文章只为记忆,其中错误,希望指正。
项目记录:
2016.6.23
(1)mDNS (multicast DNS)(组播DNS);
(2)协议是基于UDP协议的 局域网发现协议,协议规定端口号为5353 ,组播地址为 224.0.0.251 ;
(3)主机进入局域网后会向网络发送请求数据包,包括(本身IP,服务等信息),局域网内有mDNS功能的设备收到数据后,会向局域网被返回自身信息(IP,服务)。
(4)实现了在没有传统DNS服务器的前提下,使局域网内的主机实现项目发现和通信。就是在设备加入局域网时,设备之间项目发送IP地址和端口号等信息,以便后期的通信。
2016.6.26
(1)查了相关资料,发现mDNS是由DNS发展而来,猜测两数据包格式可能相近。利用抓包工具,抓取224.0.0.251的数据包,参考DNS数据报文格式,发现格式是一样的。 其中注意的是 蓝色标注,目前还不理解。。。
(2)DNS数据包格式:
DNS报文格式,不论是请求报文,还是DNS服务器返回的应答报文,都使用统一的格式。
Header 报文头
Question 查询的问题
Answer 应答
Authority 授权应答
Additional 附加信息
Header 报文头
1.ID: 2个字节(16bit),标识字段,客户端会解析服务器返回的DNS应答报文,获取ID值与请求报文设置的ID值做比较,如果相同,则认为是同一个DNS会话。
2.FLAGS: 2个字节(16bit)的标志字段。包含以下属性:
QR: 0表示查询报文,1表示响应报文;
opcode: 通常值为0(标准查询),其他值为1(反向查询)和2(服务器状态请求ÿ