当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:传统模式的Web系统通常以客户端发出请求、服务器响应的方式工作。文中针对IP多播技术进行详细深入的分析和研究,给出了Web服务器端IP地址的自动分配、域名的自动获取以及域名冲突解决方法,并将相关服务以IP数据包的形式主动发送给客户端,从而实现了Web服务的主动推送。最后,基于嵌入式Linux系统对其有效,性进行验证。

引言

随着网络技术和通信技术的快速发展与广泛应用,以及物联网、云计算、智慧地球等新技术、新概念的提出,网络化已经逐步成为近年来人们研究的热点。同时,随着Web技术的不断发展,B/S架构以其便于维护和升级等优点而广泛应用于车辆监控系统、数字化地图等方面。然而,Web服务器作为网络实体,就必须要有独立的IP地址。目前,可以通过手工静态分配或者通过DHCP(DynamicHostConfigurationProtocol)服务器动态分配IP地址;然而,由于IP地址是由一组数字构成,不便于记忆,且使用起来很不方便,而域名系统的出现为其提供了一种切实可行的解决方案,但这又需要设计DNS(DomainNameSystem)服务器来实现。

基于上述原因可知,当Web服务器接入网络之后,通常需要通过人工或服务器实现网络配置。同时,传统模式的Web系统中的服务器端一般都是被动地响应客户端请求。鉴于此,本文通过对IP多播技术进行深入分析,给出了实现Web服务的主动推送方法,并对其进行了验证。

1应用背景

Web应用模型

图1所示是一种传统的Web应用模型。在这种应用模型结构下,用户工作界面是通过WWW浏览器来实现的,极少部分事务逻辑在前段(Browser)实现,主要业务逻辑在服务器端(Server)实现,因而形成所谓三层结构[1]。客户端向服务器端发送HTTP请求,WebServer接收这个请求,然后根据不同情况访问相应的数据库、WebServer或者其它业务系统,再经过业务逻辑计算,向客户端浏览器发送HTML响应。这样就大大简化了客户端主机负荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。

但是,根据这个模型,服务器端仅在客户端发出请求后才把数据发送回去。而客户端要想获取服务器端所提供的服务时,就需要知道服务器端IP地址或该服务器的域名,而这在该模型中是无法实现的。

IP多播

随着网络规模的不断扩大和网络信息资源的迅速增加,网络传输负担也将逐渐提高,尤其是将网络资源传送给网络中所有对此信息感兴趣的主机时。注意:这不是某个主机,也不是所有主机。采用传统的单播技术已经无法解决此类网络传输问题,若采用广播技术又会增加网络负担,严重影响网络效率。而多播可以将网络数据报文按照多播组地址进行传送,只是属于该组的所有主机才能接收此数据报文,这样就极大地提高了网络传输效率。

基于IP组播的Web服务推送技术的研究与实现

图1Web应用模型

IP多播(也称为多址广播或组播)技术是一种允许一台或多台主机(多播源)发送单一数据包到多台主机(一次的,同时的)的TCP/IP网络技术。多播作为一点对多点的通信,是节省网络带宽的有效方法之一。同时,多播数据报由特定的接口接收。如果要对一组特定的主机进行通信,多播能使一个或多个多播源只把数据包发送给特定的多播组,而只有加入该多播组的主机才能接收到数据包,从而提高了信息的安全性。图2所示是这种多址广播或组播技术的特点示意图。

图2可明显减少网络资源消耗的多播技术

由图2可以看出,主机A、C和D构成一个多播组G,主机X可向多播组G的三个主机进行多播(主机X可以不属于该多播组,也不一定要知道这个多播组中都包括哪些成员)。主机X在进行多播时只发送一次数据报,只是到了路由器R2才进行复制,然后到R6再复制一次。这就是说,多播的数据报仅在传送路径分岔时才将数据报复制后继续转发。若不是多播,则源站在一开始就要发送3个数据报,分别发送给主机A、C和D。构成多播组的主机数可以是很大的,如成千上万个。因此,采用多播协议可明显减轻网络中各种资源的消耗。显然,在因特网中多播要靠路由器来实现,因此,这些路由器必须增加一些能够识别多播的软件。能够运行多播协议的路由器称为多播路由器。

2Web服务推送系统的设计与实现

Web服务器也称为WWW(WorldWideWeb)服务器,其主要功能是提供网上信息的浏览服务。首先,Web服务器作为网络节点,其必须拥有独立的标识一IP地址。目前,IP地址的配置主要有两种方式:手动配置和自动配置。其中,手动配置需要人工参与,并且在目前IPv4地址紧缺的情况下,如何避免地址冲突是一个亟待解决的问题;自动配置常用的方式是在服务器端配置DHCP,但这需要DHCP服务器支持。其次,Web服务器作为服务提供者,客户只有知道其IP地址才能够使用其所提供的服务,而如果直接使用IP地址,则不安全,且不便于记忆。域名系统可解决网络节点的命名问题,然而,域名系统需要DNS的支持。最后,在传统模式中,服务器只是被动地接收和响应客户端请求,而不能发挥服务器的主动性。

2.1IP自动分配

对于任意一个网络节点而言,配置正确的IP地址是其实现网络互联的基础,本文采用IPv4LL(IPv4Link-Local)来实现在没有人工和DHCP服务器参与的情况下,Web服务器IP地址的自动分配、子网掩码设置等。其具体实现过程如下:

由网络节点首先发送DHCP服务请求数据包,若在一定的等待时间内没有收到响应数据包,则说明在本地链路中没有DHCP服务器,此时转步骤⑵;

在169.254.0.0/16网段中随机产生一个IP地址,并将这个IP地址以ARP请求数据包的形式广播到网络中,并向其它网络节点询问当前请求地址是否可用;

如果没有收到其它主机的ARP应答消息,则该IP地址可用,随之将其设置为本地IP地址,否则重复步骤(2),直到找到为本地网络节点分配到合适的IP地址为止。

为了防止节点重启而造成IP地址丢失,其在完成配置后,可将配置参数保存到非掉电易失性存储介质中。这样,当节点重新启动时,首先读取上次网络配置信息,并探测该配置信息的有效性,从而提高IP地址分配效率。

2.2域名自动获取

当访问网络中的一台主机或是该主机提供的服务时,由于域名便于记忆且IP地址动态变化多有不便,因此,通常情况下是以域名作为主机的标识。而要实现域名与IP地址的映射关系,需要DNS服务器的支持。本文采用多播DNS(MulticastDNS)机制来在没有DNS服务器参与的情况下实现IP地址和域名之间的自动转换功能。其域名自动获取过程如下:

创建本地多播地址记录,从而获取一个新的域名。

检测该域名的唯一性。在本地链路中向224.0.0.251发送多播请求数据包,并且每隔250ms发送一次,共发送三次。如果收到任何一次mDNS请求的响应数据包,则该域名已经被其它主机占用,此时将返回(1)重新获取新域名;否则转到(3)。

更新网络中其它主机cache中的数据,将cache_flush位置1,该域名获取成功。

综上所述,mDNS协议可以在无DNS服务器的网络环境中实现IP地址与域名的自动转换,以发现网络中可用的服务。其主要思想是利用局域网的组播机制来实现DNS服务器的功能。该协议中采用UDP的5353端口代替DNS的53端口,并以组播地址224.0.0.251代替DNS服务器的单播地址[3]。另外,在其域名后面都有一个.local后缀,以告诉浏览器采用mDNS协议来解释该域名。

因此,当客户应用层想解析某个域名所对应的IP地址时,它只需要向本地链路发送一个目的地址为224.0.0.251的多播请求数据包,本地所有主机一旦收到与其域名相匹配的请求时,便向请求主机发送带有自身IP地址的应答数据包,从而完成一次域名解析过程。反之,当客户应用层要解析某个已知IP地址对应的主机时,其解析过程与此类似,在此不再赘述。

另外,mDNS还给出了避免域名冲突的解决方案。通过在请求数据包的权威部分增加一个新的记录,然后比较该资源记录的类别,级别高的获得此域名;如果资源记录类别相同,则比较其类型,同样,级别高的获得此域名;如果资源记录类型也相同,则依次比较原始数据(IP地址)的每一个字节,此时由于不可能完全相同,则其值大的获得此域名。

同时,mDNS在请求、响应、消息结构等方面也有明显的优势,其主要表现在以下几个方面:

⑴mDNS协议要求服务请求端将请求的已知答案包含在DNS消息内部,如果数据包生存时间值小于原先值的一半,则DNS消息的答案部分就不再对其生存时间进行标记,从而减小了请求数据包的大小,提高了网络带宽利用率;

mDNS提供了域名冲突解决机制,因而不需要额外的检错机制,从而减轻了网络负担;

在覆盖了所有子网的情况下,其接收者也会很明确地知道mDNS响应来自本地链路;

mDNS使用的UDP端口号为5353,从而避免了端口冲突问题;

mDNS采用UTF-8对资源记录名进行编码,很好地解决了编码兼容性问题。

总之,采用mDNS协议为无DNS服务器参与情况下的IP地址与域名之间的转换提供了一套切实可行的解决方案。

Web服务推送

为了解决传统Web服务器端被动接收客户端服务请求的工作模式,本文采用DNS-SD(DNS-ServiceDiscovery)协议来使得客户可以在对服务器一无所知的情况下,使用服务器所提供的服务。同时,将当前局域网内所有可用的Web服务列举出来,供用户选择,从而使得整个Web服务系统更加透明和智能。

DNS-SD通过对DNS中的SRV、PTR、TXT等资源记录信息进行扩充来实现服务的主动推送。其中,SRV记录将服务/协议解析成IP地址,其内容包括服务名称、协议、DNS域名、优先权、权重、端口、目标;PTR记录则指向每一个信息指针,实现从IP地址到主机域名的反向映射。由于每一个网络服务接口都有一条PTR记录,其名称类似于反向字节序的IP地址,从而实现Web服务浏览功能。

3嵌入式Web服务推送

嵌入式Web一般采用B/S(Browser/Service)结构,即浏览器/服务器结构。B/S是随着Internet技术的兴起,对C/S结构的一种变化或改进的结构。在该结构下,客户端仅仅操作WWW标准浏览器便可通过Internet访问Web服务器,其主要事务逻辑在服务器端实现。在此,为了识别基于组播Web服务推送模块,本文在客户端采用BonjourforWindows浏览器插件来实现服务发现功能。

3.1Bonjour简介

Bonjour[4](法语中的你好)是一种能够自动查询接入网络中的设备或应用程序的插件。Bonjour能够显示局域网内支持组播或域名协议的设备和应用程序,并采用多播DNS来解决局域网内设备的命名冲突。装有Bonjour插件的电脑和设备可以在网络中自动传播它们自己的服务信息,并聆听其他设备的服务信息。BonjourforWindows包括—个InternetExplorer插件,可以在不知道其IP地址的情况下设置、安装支持Bonjour的设备。在已经安装了Bonjour插件的计算机上打开IE浏览器,可以在工具栏中看到如图3所示的Bonjour图标,。

图 3 Bonjour 安装
3.2 嵌入式 Web 服务推送系统测试

嵌入式Web服务器硬件系统采用S3C6410(相关资料参见S3C6410数据手册)来实现,客户端主机与嵌入式Web服务器之间采用RJ45连接。启动服务器端服务推送模块,打开客户端浏览器,则可出现如图4所示的界面。

图4嵌入式Web服务推送系统测试画面

4结语

总而言之,本文以IP多播技术为基础,设计并实现了Web服务推送模块并对其有效性进行了验证。在该系统中,利用IPv4LL技术实现了Web服务器端IP地址的自动配置,而利用mDNS机制实现了在没有DNS服务器参与下IP地址和域名之间的自动转换功能。由此可见,采用组播技术实现Web服务推送,虽然简便易行,但其仍然存在诸如增加网络负载、占用网络带宽等问题,这些问题仍然亟待解决。

20210915_614179bc0ba65__基于IP组播的Web服务推送技术的研究与实现

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

甲类电源是一种开关式电源,它通过快速开关来控制电压,使输出电压保持恒定。甲类电源的输出电流波形接近直流,能够提供高效率和高功率输出。

关键字: 甲类电源 线性电源 电源

现在的智能家居越来越受欢迎,市面上出现了各式各样的无线收发模块,功能也各不相同,当然了,大家不能盲目的去采购,这样可能会带来一些不必要的损失。

关键字: 无线收发模块 功耗 网络协议

直流电是指电流方向始终保持不变的电流。在实际应用中,我们经常需要调整直流电的电流大小,以满足不同的需求。本文将从多个方面详细阐述直流电如何调节电流。

关键字: 直流 电流 负载调节

在人工智能的快速发展中,加强AI监管与推动AI技术的进步同等重要。从技术角度来看,可以通过可解释AI等技术手段增强AI的可信度。

关键字: 人工智能 AI 增强AI

随着科技的快速发展,人脸识别技术已经广泛应用于各个领域,如手机解锁、支付验证、门禁系统等。然而,有时我们可能会遇到人脸识别一直失败的情况,这不仅影响了用户体验,还可能引发安全隐患。本文将深入探讨人脸识别失败的原因,并提供...

关键字: 人脸识别 人工智能

随着科技的快速发展,人工智能(AI)逐渐从科幻概念变为现实,其应用广泛渗透到各行各业,为人类社会带来了前所未有的便利与机遇。然而,正如任何新兴技术一样,人工智能的发展也面临着诸多困难与挑战。本文将深入剖析人工智能发展所面...

关键字: 人工智能 AI

在科技迅猛发展的今天,人工智能(AI)已经从一个前沿概念转变为全球范围内的热门话题,深刻影响着我们的日常生活、工作和思维方式。本文将对当前人工智能的现状进行深入分析,从技术发展、应用领域、市场竞争以及挑战与机遇等多个维度...

关键字: 人工智能 AI

在科技的浪潮中,人工智能(AI)已经从一个遥不可及的概念,逐渐转变为影响我们日常生活的现实力量。无论是语音识别、图像识别,还是自动驾驶、医疗诊断,人工智能都展现出了强大的潜力和无限的可能性。那么,未来的人工智能发展前景又...

关键字: 人工智能 AI

在智能家居日益普及的今天,无线开关作为实现家居自动化的重要工具,受到了越来越多消费者的青睐。然而,对于许多家庭来说,如何将现有的普通灯具接入无线开关,实现远程控制,仍然是一个值得探讨的问题。本文将详细阐述普通灯具接入无线...

关键字: 无线开关 智能家居

本文旨在为读者提供一篇详尽的AWVS 13使用教程,从安装配置到实战应用,全面解析这一强大的Web应用安全扫描工具。通过本文的学习,读者将能够掌握AWVS 13的基本操作,提高Web应用的安全性。

关键字: awvs13 Web应用
关闭
关闭