mDNS原理的简单理解——每个进入局域网的主机,如果开启了mDNS服务的话,都会向局域网内的所有主机组播一个消息,我是谁,和我的IP地址是多少。然后其他也有该服务的主机就会响应,也会告诉你,它是谁,它的IP地址是多少

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介:

MDNS协议介绍

mDNS multicast DNS , 使用5353端口,组播地址 224.0.0.251。在一个没有常规DNS服务器的小型网络内,可以使用mDNS来实现类似DNS的编程接口、包格式和操作语义。MDNS协议的报文与DNS的报文结构相同,但有些字段对于MDNS来说有新的含义。

每个进入局域网的主机,如果开启了mDNS服务的话,都会向局域网内的所有主机组播一个消息,我是谁,和我的IP地址是多少。然后其他也有该服务的主机就会响应,也会告诉你,它是谁,它的IP地址是多少。mDNS的域名与普通DNS的域名是通过后缀.local区分开来的。如果一台终端需要访问一个mDNS域名,他就会向局域网内发送组播,询问该域名的IP是多少。

例如: 

一个设备接入网络,首先查询名称是否冲突,并通告当前服务器信息

冲突检测结束后,发送MDNS通告,通知其它设备更新DNS缓存

其它设备对该域名访问时,会发起MDNS查询

 

mDNS原理的简单理解

转载自:http://www.binkery.com/

在局域网内,你要通过一台主机和其他主机进行通信,你需要知道对方的 ip 地址,但是有些时候,你并不知道对方的 ip 地址,因为一般使用 DHCP 动态分配 ip 地址的局域网内,各个主机的 IP 地址是由 DHCP 服务器来帮你分配 IP 地址的。所以在很多情况下,你要知道对方的 IP 地址是比较麻烦的。

鉴于发现这篇文章最近的浏览量比较多,晚上也有不少转载,特别声明一下,文章水平可能不大够,只是我当时的一些理解,所以希望大家以批判的角度来看,然后又什么问题欢迎讨论。真心不希望误导大家^_^

mDNS 的工作原理

首先,在 IP 协议里规定了一些保留地址,其中有一个是 224.0.0.251,对应的 IPv6 地址是 [FF02::FB]。

mDNS 协议规定了一个端口,5353。

mDNS 基于 UDP 协议。

每个进入局域网的主机,如果开启了mDNS服务的话,都会向局域网内的所有主机组播一个消息,我是谁,和我的IP地址是多少。然后其他也有该服务的主机就会响应,也会告诉你,它是谁,它的IP地址是多少。当然,具体实现要比这个复杂点。

比如,A主机进入局域网,开启了 mDNS 服务,并向 mDNS 服务注册以下信息:我提供 FTP 服务,我的IP是 192.168.1.101,端口是 21。当B主机进入局域网,并向 B 主机的 mDNS 服务请求,我要找局域网内 FTP 服务器,B主机的 mDNS 就会去局域网内向其他的 mDNS 询问,并且最终告诉你,有一个IP地址为 192.168.1.101,端口号是 21 的主机,也就是 A 主机提供 FTP 服务,所以 B 主机就知道了 A 主机的 IP 地址和端口号了。

大概的原理就是这样子,mDNS提供的服务要远远多于这个,当然服务多但并不复杂。

在Apple 的设备上(电脑,笔记本,iphone,ipad等设备)都提供了这个服务。很多Linux设备也提供这个服务。Windows的设备可能没有提供,但是如果安装了iTunes之类的软件的话,也提供了这个服务。

这样就可以利用这个服务开发一些局域网内的自动发现,然后提供一些局域网内交互的应用了。

jmDNS 是一个 JAVA 平台的,提供 mDNS 服务的第三方库。在这个 jar 包引入到 Android 项目里,就可以获得 mDNS 服务了。Android 在 3.x 还是 4.x 之后已经提供局域网内自动发现的 API 了,所以不需要使用 jmDNS 第三方库就能实现了。















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/7567029.html,如需转载请自行联系原作者



目录
打赏
0
0
0
0
64
分享
相关文章
|
11月前
获取请求的主机的系统以及Ip地址
获取请求的主机的系统以及Ip地址
43 1
IP地址:是给主机配置的,还是给网卡配置的?🤔
在探索网络的奥秘时,我们经常会遇到一个看似简单但又复杂的问题:IP地址到底是配置在主机上,还是配置在网卡上?为什么我们通常说的是“主机IP地址”呢?让我们一起深入探讨。
IP地址:是给主机配置的,还是给网卡配置的?🤔
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
|
11月前
|
DHCP-动态主机配置协议
DHCP协议工作流程包括四个阶段:发现、提供、选择和确认。在发现阶段,客户端广播DHCP Discover报文寻找服务器。服务器在提供阶段回应DHCP Offer报文,包含可用IP地址及配置信息。客户端在选择阶段接收多个Offer并发送DHCP Request给选定服务器。最后,服务器发送DHCP Ack报文确认IP地址分配,客户端应用配置并接入网络。
146 0
IPv6 的无状态动态主机配置协议 (DHCP) 服务
节点使用基于IPv6的无状态动态主机配置协议服务 (Dynamic Host Configuration Protocol for IPv6,DHCPv6) 来获取配置信息,例如 DNS 递归名称服务器的地址,这不需要为单个客户端维护任何动态状态。使用无状态 DHCP 的节点必须通过其他机制(通常是无状态地址自动配置)获得其 IPv6 地址。本文档解释了 RFC 3315 的哪些部分必须在每种不同类型的 DHCP 代理中实现,以便代理可以支持无状态 DHCP。
258 0
DHCP服务的安装以及配置,使主机IP地址自动获取
DHCP服务的安装以及配置,使主机IP地址自动获取
265 0
主机配置协议DHCP
1、DHCP应用场景 2、DHCP基础原理 3、NAT简单介绍 4、配置命令
主机配置协议DHCP
RH358管理DHCP和IP地址分配--使用DHCP方式配置IPv4地址分配
RH358管理DHCP和IP地址分配--使用DHCP方式配置IPv4地址分配
257 0
RH358管理DHCP和IP地址分配--使用DHCP方式配置IPv4地址分配
DHCP协议工作原理(分配IP地址的方式)
DHCP工作在应用层,使用UDP协议工作,负责给局域网内的用户分配IP地址 分配IP地址的方式有三种:手动配置,自动配置,动
508 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等