CN105991377B - 通用即插即用UPnP设备之间发现与通信的方法 - Google Patents

通用即插即用UPnP设备之间发现与通信的方法 Download PDF

Info

Publication number
CN105991377B
CN105991377B CN201510044169.1A CN201510044169A CN105991377B CN 105991377 B CN105991377 B CN 105991377B CN 201510044169 A CN201510044169 A CN 201510044169A CN 105991377 B CN105991377 B CN 105991377B
Authority
CN
China
Prior art keywords
control point
upnp device
upnp
information
multicast request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510044169.1A
Other languages
English (en)
Other versions
CN105991377A (zh
Inventor
韩锐
黄兴旺
刘丽琴
郭志川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Xinrand Network Technology Co ltd
Original Assignee
Institute of Acoustics CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Priority to CN201510044169.1A priority Critical patent/CN105991377B/zh
Publication of CN105991377A publication Critical patent/CN105991377A/zh
Application granted granted Critical
Publication of CN105991377B publication Critical patent/CN105991377B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及通用即插即用UPnP设备之间发现与通信的方法,包括:控制点在网络中发送M‑Search组播请求;UPnP设备对M‑Search组播请求进行响应,在响应时,随机延迟一定时间,根据控制点的IP地址以及M‑Search组播请求所包含的TCP通信端口号信息与控制点之间建立TCP连接,通过该TCP连接向控制点响应设备发现所需信息,控制点根据信息获取UPnP设备描述阶段的设备描述信息;控制点利用UPnP设备IP地址和服务端口,向UPnP设备发送UDP格式的通信报文,实现控制点对UPnP设备的通信;UPnP设备获取控制点IP地址,利用该IP地址,UPnP设备向该控制点返回下一步操作命令,实现UPnP设备对控制点发起的通信。

Description

通用即插即用UPnP设备之间发现与通信的方法
技术领域
本发明涉及网络通信领域,特别涉及一种通用即插即用UPnP设备之间发现与通信的方法。
背景技术
近几年来,随着“数字家庭网络”的兴起,如何通过有线或无线的方式将多个网络设备及家庭设备互联互通,最终实现设备之间自动发现、智能互联、相互控制、资源共享等功能,成为了目前研究的热点。UPnP是家庭网络中的一个主流协议,它是一种基于TCP/IP之上的网络应用层协议,为数字设备的接入、发现、控制等制定了一系列的规范。UPnP能够让处于同一家庭网络中的各种设备连接起来并协同工作,使得用户能够使用任意设备访问和欣赏家庭网络中的多媒体内容。
UPnP是一个分布式开放型网络体系结构,它的基础结构包括三个基本单元,分别为:设备、服务以及控制点。设备是指在符合UPnP标准规范的网络中,连网的所有元素。UPnP有规定的设备模型,设备主要包括其提供的服务、设备的属性,设备描述定义了设备的基本属性以及接口。服务就是指所有的UPnP设备所具备并且已经在该网络中发布的功能。控制点的实质也是一个UPnP设备。它的主要工作是发现入网的设备并获取设备所提供的服务,然后控制或调用这些服务。当控制点也提供服务时,它就可被视作一个UPnP设备。UPnP完整的工作流程包括:设备寻址、设备描述、设备发现、设备事件、设备控制、设备展示。每一终端设备都应当时DHCP(动态主机配置协议)的客户端自动获取一个IP地址,并向网络中其他设备广播其服务,同时该设备也会接收该网络中的其他设备的广播,从而得知某台设备的存在以及它所提供的服务。设备可被视为服务器,它能够向网络中的其他设备发布自己所提供的服务。也可被视为控制点客户,它可以在网络中搜索其所感兴趣的服务。若在网络中搜索到符合客户搜索条件的服务,控制点在获取到设备的描述文档后就可以对其服务控制或调用。
UPnP定义了通信的协议,在设备和控制点之间,其体系结构如图1所示。TCP/IP协议可以保证设备之间的交互操作性,并具有跨越各不相同的物理介质的能力,是UPnP协议栈的基础。SSDP(Simple Service Discovery Protocol,简单服务发现协议)主要定义在网络中发现服务的方法和规定如何存放在XML文件中的信息格式,为用户提供一种无需任何配置,维护和管理设备服务的机制,也即实现“即插即用”。HTTP可用于信息的交互,在UPnP中使用HTTP协议的变种:HTTPMU和HTTPU,采用UDP/IP,而不是TCP/IP,从而不保证可靠性。XML对设备和服务进行了统一的描述。
UPnP是家庭网关与其他外部网络进行通信的核心,是人们研究的重点。但是,在利用SSDP协议发现设备时,由于该协议本身的不可靠性,再加上依赖局域网的组播机制,设备在发现公告信息的时候可能会发生丢包等情况,尤其在有多个设备且设备之间需要精准通信时,可能更加不可靠,导致设备发现难,容易丢包,而且速度慢,进而无法进行多屏互动操控。这极大影响用户体验和服务质量。
发明内容
本发明的目的在于克服现有技术中的UPnP设备发现与通信方法所具有的设备发现难、易丢包、速度慢等缺陷,从而提供一种快速发现UPnP设备的方法。
为了实现上述目的,本发明提供了一种通用即插即用UPnP设备之间发现与通信的方法,包括:
步骤1)、控制点启动后,读取本地保存的最近连接的UPnP设备在设备发现阶段所需信息,进而测试该UPnP设备上的UPnP服务是否可用,如果可用,继续通过UPnP协议获取UPnP设备描述阶段的设备描述信息,然后执行步骤4),如果不存在最近连接的UPnP设备或最近连接的家庭网络设备上的UPnP服务不可用,执行下一步;
步骤2)、控制点在网络中主动发送M-Search组播请求;其中,所述M-Search组播请求中包括控制点的TCP通信端口号与本地时间戳;
步骤3)、UPnP设备对最新接收到的某一控制点所发送的M-Search组播请求进行响应,在响应时,随机延迟一定时间,然后根据控制点的IP地址以及所述M-Search组播请求所包含的TCP通信端口号信息与控制点之间建立TCP连接,通过该TCP连接向控制点响应设备发现所需信息,控制点根据所接收到的信息获取UPnP设备描述阶段的设备描述信息,然后执行下一步;
步骤4)、控制点获取UPnP设备的设备信息、设备描述信息后,利用获取到的UPnP设备IP地址和已知的服务端口,向该UPnP设备发送UDP格式的通信报文,实现控制点对UPnP设备的通信;
步骤5)、UPnP设备从获取到的UDP格式的通信报文中,获取与其最新通信的控制点IP地址,利用该IP地址,UPnP设备向该控制点返回下一步操作命令,实现UPnP设备对控制点发起的通信。
上述技术方案中,在所述的步骤3)中,若UPnP设备接收到的同一控制点所发送的M-Search组播请求有多个,则比较各个M-Search组播请求中的时间戳来确定最新接收到的M-Search组播请求。
上述技术方案中,在所述的步骤3)中,若UPnP设备在响应M-Search组播请求时未获得TCP端口信息,则采用UDP响应的方式回复响应报文,控制点根据所接收到的信息获取UPnP设备描述阶段的设备描述信息,然后执行步骤4)。
上述技术方案中,在所述步骤3)中,所述随机延迟一定时间在1s内启动。
本发明的优点在于:
本发明的方法能够加快发现家庭网络设备,使得网络通信更加稳定。
附图说明
图1是UPnP协议的体系结构;
图2是2本发明的方法在设备发现阶段的基本工作流程图;
图3是本发明的方法在多屏互动操控中应用的基本工作流程图。
具体实施方式
下面通过一个具体实施案例对本发明的方法做进一步阐述,首先介绍一下具体应用场景:
在多屏互动场景中,当用户手持移动设备想对智能电视设备进行操控、文字输入等多屏互动操作时,常常会遇到搜索很久都发现不了设备或者搜索很久才发现设备的场景。
针对这一应用场景,本发明的方法能够解决家庭网络设备之间发现慢、通信不稳定的问题,参考图2和图3,本发明的方法包括以下步骤:
步骤1、基于UPnP协议库(如Cling开源库)搭建多屏互动系统,并部署相应的服务在UPnP设备上,使接入的UPnP设备彼此之间可以自动发现。
步骤2、控制点启动后,读取本地保存的最近连接的家庭网络设备(如MediaRender)在设备发现阶段所需信息,测试该设备上的UPnP服务是否可用,如果可用,则不用再搜索,直接可继续通过UPnP协议获取UPnP设备描述阶段的设备描述信息,然后执行步骤5;如果控制点是首次启动,即不存在连接过的家庭网络设备的信息,或者最近连接的家庭网络设备上的UPnP服务不可用,执行步骤3。
在本步骤中,所述的最近连接的家庭网络设备在设备发现阶段所需信息包括:最近连接的家庭网络设备的一些特定信息,或者该家庭网络设备上所部署的某项服务的信息;例如,家庭网络设备或服务的UPnP类型、家庭网络设备的标识符(UUID)、设备描述文档的URL地址。UPnP设备描述阶段的设备描述信息包括:对设备的描述、对设备所提供的服务的描述。UPnP对某一设备的描述以XML形式表示出来,对设备的描述包括制造商信息,包括模块名称和编号、序列号、制造商名称、制造商网站的URL等等。对设备的描述也包括所有嵌入设备描述和URL地址集。UPnP对设备所提供的服务的描述包括一系列命令或者动作、服务响应、动作的参数。对服务的描述也包含一系列变量,这些变量描述了服务运行时刻的状态,这包括数据类型、取值范围和事件特性的描述。
步骤3、控制点在家庭网络中主动发送M-Search组播请求,控制点在生成M-Search组播请求时,在封装完M-Search请求信息后,同时把自己的TCP通信端口号发送出去,表明自己也可以支持TCP通信,同时携带发送本地时间戳。
步骤4、家庭网络设备接收到M-Search组播请求信息后,如果发现同时收到多个来自同一控制点的请求,则比较时间戳信息,只对最新的请求信息进行响应;在响应M-Search组播请求时,家庭网络设备如果发现M-Search组播请求的报文中携带TCP端口信息,在1s内启动随机延迟一定时间后,利用IP地址和端口信息建立与控制点的TCP连接,通过该TCP连接向控制点响应设备发现所需的信息,控制点根据所接收到的信息获取UPnP设备描述阶段的设备描述信息,然后执行下一步;家庭网络设备如果在M-Search组播请求的报文中未发现TCP端口信息,则采用UDP响应的方式回复响应报文,控制点根据所接收到的信息获取UPnP设备描述阶段的设备描述信息,然后执行下一步。
与现有技术中的UPnP协议相比,本发明的方法在本步骤中不再采用在1s内启动随机延迟后发送UDP响应报文的方式。由于TCP连接是可靠的,因此不必像UDP响应那样重复发送多个响应报文,降低网络出现拥塞的可能性。
本步骤中,在建立TCP连接前采用了随机延迟的方式,因此能够有效降低控制点同时承载的通信连接的数量。
步骤5、控制点获取家庭网络设备的设备信息、设备描述信息后,可通过UDP协议,利用获取到的设备IP地址和已知的服务端口,向Media Render家庭网络设备发送通信报文,实现控制点对家庭网络设备的发起的多屏操控交互。
步骤6、Media Render家庭网络设备从获取到的UDP格式的通信报文中,获取最新发送的交互操作的控制点IP地址。利用获取到的IP地址,Media Render家庭网络设备可以精准、快速的向控制点返回下一步操作命令,实现家庭网络设备对控制点发起的多屏操控交互。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (4)

1.一种通用即插即用UPnP设备之间发现与通信的方法,包括:
步骤1)、控制点启动后,读取本地保存的最近连接的UPnP设备在设备发现阶段所需信息,进而测试该UPnP设备上的UPnP服务是否可用,如果可用,继续通过UPnP协议获取UPnP设备描述阶段的设备描述信息,然后执行步骤4),如果不存在最近连接的UPnP设备或最近连接的家庭网络设备上的UPnP服务不可用,执行下一步;
步骤2)、控制点在网络中主动发送M-Search组播请求;其中,所述M-Search组播请求中包括控制点的TCP通信端口号与本地时间戳;
步骤3)、UPnP设备对最新接收到的某一控制点所发送的M-Search组播请求进行响应,在响应时,随机延迟一定时间,然后根据控制点的IP地址以及所述M-Search组播请求所包含的TCP通信端口号信息与控制点之间建立TCP连接,通过该TCP连接从控制点响应设备中发现所需信息,控制点根据所接收到的信息获取UPnP设备描述阶段的设备描述信息,然后执行下一步;
步骤4)、控制点获取UPnP设备的设备信息、设备描述信息后,利用获取到的UPnP设备IP地址和已知的服务端口,向该UPnP设备发送UDP格式的通信报文,实现控制点对UPnP设备的通信;
步骤5)、UPnP设备从获取到的UDP格式的通信报文中,获取与其最新通信的控制点IP地址,利用该IP地址,UPnP设备向该控制点返回下一步操作命令,实现UPnP设备对控制点发起的通信。
2.根据权利要求1所述的通用即插即用UPnP设备之间发现与通信的方法,其特征在于,在所述的步骤3)中,若UPnP设备接收到的同一控制点所发送的M-Search组播请求有多个,则比较各个M-Search组播请求中的时间戳来确定最新接收到的M-Search组播请求。
3.根据权利要求1所述的通用即插即用UPnP设备之间发现与通信的方法,其特征在于,在所述的步骤3)中,若UPnP设备在响应M-Search组播请求时未获得TCP端口信息,则采用UDP响应的方式回复响应报文,控制点根据所接收到的信息获取UPnP设备描述阶段的设备描述信息,然后执行步骤4)。
4.根据权利要求1所述的通用即插即用UPnP设备之间发现与通信的方法,其特征在于,在所述步骤3)中,所述随机延迟一定时间在1s内启动。
CN201510044169.1A 2015-01-28 2015-01-28 通用即插即用UPnP设备之间发现与通信的方法 Active CN105991377B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510044169.1A CN105991377B (zh) 2015-01-28 2015-01-28 通用即插即用UPnP设备之间发现与通信的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510044169.1A CN105991377B (zh) 2015-01-28 2015-01-28 通用即插即用UPnP设备之间发现与通信的方法

Publications (2)

Publication Number Publication Date
CN105991377A CN105991377A (zh) 2016-10-05
CN105991377B true CN105991377B (zh) 2019-01-25

Family

ID=57034915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510044169.1A Active CN105991377B (zh) 2015-01-28 2015-01-28 通用即插即用UPnP设备之间发现与通信的方法

Country Status (1)

Country Link
CN (1) CN105991377B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106549956B (zh) * 2016-11-02 2019-12-24 惠州高盛达科技有限公司 一种udp和tcp相互结合的局域网通信方法
JP6874386B2 (ja) * 2017-01-23 2021-05-19 カシオ計算機株式会社 通信機器、通信システム及び通信方法
CN110493766A (zh) * 2019-08-21 2019-11-22 青岛海信电器股份有限公司 一种upnp设备的发现方法
CN110673537A (zh) * 2019-11-20 2020-01-10 深圳市网心科技有限公司 一种设备控制方法及其相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1627752A (zh) * 2003-12-09 2005-06-15 海信集团有限公司 基于UPnP协议的互连设备通用控制方法
KR20060037796A (ko) * 2004-10-28 2006-05-03 엘지전자 주식회사 기기 검색 시스템 및 방법
CN1925439A (zh) * 2005-08-31 2007-03-07 乐金电子(昆山)电脑有限公司 通过互联网对UPnP设备进行控制的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1627752A (zh) * 2003-12-09 2005-06-15 海信集团有限公司 基于UPnP协议的互连设备通用控制方法
KR20060037796A (ko) * 2004-10-28 2006-05-03 엘지전자 주식회사 기기 검색 시스템 및 방법
CN1925439A (zh) * 2005-08-31 2007-03-07 乐金电子(昆山)电脑有限公司 通过互联网对UPnP设备进行控制的方法

Also Published As

Publication number Publication date
CN105991377A (zh) 2016-10-05

Similar Documents

Publication Publication Date Title
JP4041118B2 (ja) ゲートウェイ装置、ネットワークシステム、通信プログラム及び通信方法
US8150982B2 (en) Method, system for accessing home network device and home network access device
US9391837B2 (en) Method, proxy device, and system for managing terminal device
WO2013088329A2 (en) UPnP/DLNA WITH RADA HIVE
US9065666B2 (en) System and method of multi-media conferencing between universal plug and play (UPnP) enabled telephony devices and wireless area network (WAN) devices
CN105323628B (zh) 基于dlna跨屏播放的方法及系统、浏览器端装置和播放装置
US9204091B2 (en) Apparatus and method for configuring high-definition video telephony between computer devices
CN105991377B (zh) 通用即插即用UPnP设备之间发现与通信的方法
US20150067110A1 (en) Media Playing Method, Apparatus, and System
CN110830841B (zh) 一种处于不同局域网下的投屏方法、系统及智能装置
US9385882B2 (en) Method and apparatus for phone communication using home network
WO2008087374A2 (en) SYSTEM AND METHOD FOR REMOTELY ACCESSING UNIVERSAL PLUG AND PLAY (UPnP) NETWORKS
WO2012103721A1 (zh) 终端访问数字家庭设备的方法和设备
US20090254671A1 (en) Remote control of a device by a terminal
CN112187486A (zh) 智能设备之间的交互方法及智能设备
WO2017161866A1 (zh) 网络连接方法及装置
CN104320718B (zh) 一种避免多个dmc推送媒体播放产生冲突的方法及装置
KR101329668B1 (ko) 푸쉬 서버를 이용한 콘텐츠 공유 시스템 및 방법
CN102970285A (zh) 基于dlna的无线局域网系统、实现方法以及无线网络系统
CN108270756B (zh) 一种设备间通信的方法及系统
Haber et al. Virtualization of remote devices and services in residential networks
CN103107928B (zh) 一种基于注册机制的改进型UPnP A/V系统
KR101668812B1 (ko) Dlna를 이용한 재생장치 검색의 호환성 개선 방법 및 시스템
JP5191878B2 (ja) ホームネットワーク内の端末から広域ネットワークへコンテンツを送信するコンテンツ転送方法及びシステム
EP3177078A1 (en) A method, a wireless access point, and a client for local advertisement of the identifier of an operator controlling and managing the smart environment of connected objects

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210802

Address after: Room 1601, 16th floor, East Tower, Ximei building, No. 6, Changchun Road, high tech Industrial Development Zone, Zhengzhou, Henan 450001

Patentee after: Zhengzhou xinrand Network Technology Co.,Ltd.

Address before: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District

Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES