项目记录

本文记录了一个关于mDNS(multicast DNS)的项目,详细介绍了mDNS的基本原理,如基于UDP的局域网发现协议,以及其工作流程。同时,文章提到了mDNS与DNS数据包格式的相似性,并分享了lwip库移植到项目中的步骤,包括相关API的使用和宏定义的开启。在 lwip 移植过程中遇到的问题,如内存分配和组播消息接收,也在文中进行了讨论。
摘要由CSDN通过智能技术生成

声明:本文章只为记忆,其中错误,希望指正。
项目记录:
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(服务器状态请求ÿ
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值