本文主要是介绍LLMNR协议、MDNS协议、NBNS协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
LLMNR协议
LLMNR定义
LLMNR全称Link-Local Multicast Name Resolution
LLMNR协议是一种用于在本地网络上解析主机名的协议。它允许在没有本地DNS服务器的情况下进行名称解析,通常用于IPv6环境,但也可以在IPv4环境中使用。LLMNR协议的提出,主要是为了弥补IPv6环境下的局域网主机名解析的不足。
在实际应用中,当Windows主机在局域网中需要解析主机名时,会先使用LLMNR协议发送解析请求。如果有其他主机知道所需的名称,它们可以回复一个LLMNR响应,提供相应的IP地址。这样,即使在没有配置DNS服务器的情况下,依然可以实现主机名的解析,提高了局域网中主机名解析的可用性和速度。
此外,LLMNR协议使用组播地址和UDP协议,允许客户端之间进行通信,而无需在每个网络节点之间建立传统的服务器/客户端模型。这使得LLMNR成为一种轻量级的协议,传输速度快,并可以减少潜在的网络拥塞问题。
LLMNR工作过程
当主机需要解析本地主机名时,它会首先在自己的内部名称缓存中查询该名称。如果在缓存中没有找到该名称,主机将开始执行后续的查询步骤。
如果在缓存中没有找到所需的名称,主机会向自己配置的主DNS服务器发送查询请求。如果主机没有收到主DNS服务器的回应或收到了错误信息,主机还会尝试搜索配置的备用DNS服务器。
如果主机没有配置DNS服务器,或者如果在连接DNS服务器时没有遇到错误但失败了,那么名称解析会失败,并转为使用LLMNR协议。
当主机决定使用LLMNR协议时,它会通过用户数据报协议(UDP)发送多播查询,查询主机名对应的IP地址。这个查询会被限制在本地子网(也就是所谓的链路局部)内。
链路局部范围内每台支持LLMNR协议,并且被配置为响应传入查询的主机在收到这个查询请求后,会将被查询的名称和自己的主机名进行比较。
如果没有找到匹配的主机名,那么计算机就会丢弃这个查询。如果找到了匹配的主机名,这台计算机会传输一条包含了自己IP地址的单播信息给请求该查询的主机。
MDNS协议
MDNS定义
MDNS全称Multicast DNS
MDNS协议是一种在局域网内实现设备和服务自动发现的协议。具体来说,它允许设备在无需依赖中央服务器或配置文件的情况下,通过组播地址发送和接收DNS查询和响应,从而发现局域网中的其他设备和服务。MDNS协议基于DNS(协议,但使用组播地址来进行通信,因此能够在局域网中快速且高效地实现服务发现。
当设备启动时,它会发送一个MDNS查询,询问局域网中是否有其他设备或服务可用。如果其他设备知道所需的名称,它们会回复一个MDNS响应,提供相应的IP地址。通过这种方式,设备可以在没有传统DNS服务器的情况下,通过其名称来互相发现和访问彼此。
MDNS协议通常基于UDP协议,使用的端口号是5353。它遵从DNS协议,使用现有的DNS信息结构、名语法和资源记录类型,但没有指定新的操作代码或响应代码。MDNS协议在局域网中广泛应用,如物联网设备和app之间的通信,可以实现局域网设备的快速发现和通信。
MDNS工作过程
设备启动和宣告:当一个新的设备连接到局域网并启动mDNS服务时,它会向局域网内的所有主机发送一个宣告(Announcement)消息。这个消息包含设备的主机名、IP地址和其他标识信息。
缓存和发现:其他设备收到这个宣告消息后,会将发送设备的信息存储在本地的mDNS缓存中。这样,其他设备就可以通过查询mDNS缓存来发现其他设备的存在。
查询:当一个设备需要解析一个主机名或查找某个服务时,它会发送一个mDNS查询消息(称为“Query”)。这个消息包含要解析的域名或服务的类型。
响应:其他设备收到查询消息后,会检查本地的mDNS缓存。如果有匹配的域名或服务,设备会发送一个mDNS响应消息(称为“Response”),其中包含与查询相关的IP地址、服务信息或其他数据。
解析和使用:发送查询消息的设备收到响应后,会解析其中的数据,如IP地址或服务信息,并将其存储在本地的DNS缓存中。这样,设备就可以使用这些信息来与其他设备或服务进行通信。
NBNS协议
NBNS定义
NBNS全称NetBIOS Name Service Protocol
是一种用于在局域网中解析计算机名和IP地址对应关系的网络协议。它允许计算机通过名称查找其他计算机的IP地址,从而实现网络通信。
当一个计算机在局域网上启动时,它会向网络发送一个名字注册请求,该请求会被广播到整个局域网上。其他计算机可以通过NBNS协议来查询这个计算机的名称和IP地址对应关系。NBNS协议是基于UDP协议的,使用端口号137。
需要注意的是,NBNS协议主要用于早期的Windows系统,现在已经被更先进的协议如DNS(域名系统)所取代。但在某些特定的网络环境中,如某些企业网络或旧的Windows系统环境中,NBNS协议仍然被使用。
NBNS工作过程
名字注册:当一个计算机在局域网上启动时,它会向网络发送一个名字注册请求。这个请求包含了计算机名和IP地址的对应关系。
缓存保存:网络上的其他计算机在收到这个注册请求后,会将该对应关系保存在本地的缓存中。
名字查询:当一个计算机需要解析另一个计算机的IP地址时,它会发送一个名字查询请求。这个请求会被广播到整个局域网上。
响应:其他计算机在收到这个查询请求后,会检查自己的缓存。如果缓存中有这个对应关系,就直接回复一个查询应答,提供所需的IP地址。
转发:如果本地计算机没有找到对应关系,它会将查询请求转发给网络中的其他计算机,直到找到对应的计算机或确定无法找到为止。
需要注意的是,NBNS协议中的消息是明文传输的,没有加密机制,因此在使用时需要注意安全风险。例如,攻击者可以发送虚假的NBNS响应,欺骗其他设备将数据发送到错误的地址。
不嫌弃的点点关注,点点赞 ଘ(੭ˊᵕˋ)੭* ੈ✩‧
这篇关于LLMNR协议、MDNS协议、NBNS协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!