`
`Understanding Universal Plug and Play
`
`White Paper
`
`Abstract
`
`This paper provides an overview of Universal Plug and Play (UPnP) and how it works. Included are
`
`scenarios where UPnP improves the overall networking experience by automatically connecting and
`
`controlling various types of devices. Additional detail is given on the components of, and protocols and
`
`procedures used in UPnP, focusing on how existing standard protocols are used to build UPnP devices.
`
`We will then point to where more information can be found to further your knowledge of UPnP.
`
`
`
`
`
`SecureNet Technologies, LLC Exhibit 1011 Page 1
`
`
`
`The information contained in this document represents the current
`view of Microsoft Corporation on the issues discussed as of the date
`of publication. Because Microsoft must respond to changing market
`conditions, it should not be interpreted to be a commitment on the
`part of Microsoft, and Microsoft cannot guarantee the accuracy of
`any information presented after the date of publication.
`This white paper is for informational purposes only. MICROSOFT
`MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS
`DOCUMENT.
`Complying with all applicable copyright laws is the responsibility of
`the user. Without limiting the rights under copyright, no part of this
`document may be reproduced, stored in or introduced into a retrieval
`system, or transmitted in any form or by any means (electronic,
`mechanical, photocopying, recording, or otherwise), or for any
`purpose, without the express written permission of Microsoft
`Corporation.
`Microsoft may have patents, patent applications, trademarks,
`copyrights, or other intellectual property rights covering subject
`matter in this document. Except as expressly provided in any written
`license agreement from Microsoft, the furnishing of this document
`does not give you any license to these patents, trademarks,
`copyrights, or other intellectual property.
` 2000 Microsoft Corporation. All rights reserved. Microsoft,
`Windows, and Windows Media are either registered trademarks or
`trademarks of Microsoft Corporation in the United States and/or
`other countries.
`Other product and company names mentioned herein may be the
`trademarks of their respective owners.
`Microsoft Corporation • One Microsoft Way • Redmond, WA 98052-
`6399 • USA
`06/2000
`
`SecureNet Technologies, LLC Exhibit 1011 Page 2
`
`
`
`
`
`Contents
`
`Introduction.............................................................................................. 1
`
`What is UPnP?
`
`Who Defines UPnP?
`
`1
`
`1
`
`UPNP Enabled Scenarios ....................................................................... 4
`
`UPnP Opens Up a World of Possibilities
`
`Some UPnP Scenarios:
`
`The New Printer
`
`Out of Storage Space Again
`
`“It’s always freezing when I wake up!”
`
`The Master Switch:
`
`Synchronize Your Clocks:
`
`Vacation Mode
`
`Home theater mode:
`
`Take Me Out to the Ball Game
`
`Family Togetherness
`
`The Well Connected Home
`
`Meeting Time
`
`4
`
`4
`
`4
`
`4
`
`5
`
`5
`
`6
`
`6
`
`7
`
`7
`
`7
`
`8
`
`8
`
`Components of a UPnP Network ......................................................... 10
`
`Devices, Services and Control Points
`
`Devices
`
`Services
`
`Control Points
`
`10
`
`10
`
`11
`
`11
`
`UPnP Protocol Overview ...................................................................... 12
`
`Networking Media for UPnP
`
`Protocols Used by UPnP
`
`UPnP Specific Protocols
`
`TCP/IP
`
`HTTP, HTTPU, HTTPMU
`
`SSDP
`
`GENA
`
`12
`
`12
`
`13
`
`14
`
`14
`
`14
`
`15
`
`
`
`SecureNet Technologies, LLC Exhibit 1011 Page 3
`
`
`
`
`
`
`
`SOAP
`
`XML
`
`15
`
`16
`
`How UPNP Works .................................................................................. 17
`
`The Responsibilities of UPnP
`
`The UPnP Protocol Stack
`
`Steps Involved in UPnP Networking
`
`Addressing
`
`Discovery
`
`Description
`
`Control
`
`Eventing
`
`Presentation
`
`In Summary:
`
`An Example UPnP Network
`
`The Story Begins
`
`Device Addressing
`
`Discovery - Advertisement
`
`Discovery - Search
`
`Description
`
`Presentation
`
`Control
`
`Revisiting Discovery, Description and Control
`
`Eventing
`
`Finishing Up
`
`17
`
`17
`
`18
`
`18
`
`18
`
`19
`
`19
`
`19
`
`20
`
`20
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`27
`
`28
`
`30
`
`30
`
`32
`
`UPnP APIs .............................................................................................. 33
`
`What APIs Should Be Implemented?
`
`33
`
`Acronyms ............................................................................................... 34
`
`Summary ................................................................................................ 35
`
`For More Information ............................................................................ 36
`
`SecureNet Technologies, LLC Exhibit 1011 Page 4
`
`
`
`References
`
`
`
`36
`
`
`
`
`
`SecureNet Technologies, LLC Exhibit 1011 Page 5
`
`
`
`SecureNet Technologies, LLC Exhibit 1011 Page 6
`
`
`
`
`
`Introduction
`
`What is UPnP?
`
`With the addition of Device Plug and Play (PnP) capabilities to the operating
`system it became a great deal easier to setup, configure, and add peripherals
`
`to a PC. Universal Plug and Play (UPnP) extends this simplicity to include the
`
`entire network, enabling discovery and control of devices, including networked
`devices and services, such as network-attached printers, Internet gateways,
`
`and consumer electronics equipment.
`
`UPnP is more than just a simple extension of the Plug and Play peripheral
`model. It is designed to support zero-configuration, "invisible" networking, and
`
`automatic discovery for a breadth of device categories from a wide range of
`
`vendors.
`
`With UPnP, a device can dynamically join a network, obtain an IP address,
`
`convey its capabilities, and learn about the presence and capabilities of other
`
`devices—all automatically; truly enabling zero configuration networks. Devices
`can subsequently communicate with each other directly; thereby further
`
`enabling peer to peer networking.
`
`The varieties of device types that can benefit from a UPnP enabled network are
`large and include intelligent appliances, wireless devices, and PCs of all form
`
`factors.
`
`The scope of UPnP is large enough to encompass many existing, as well as
`new and exciting scenarios including home automation, printing and imaging,
`
`audio/video entertainment, kitchen appliances, automobile networks, and
`
`proximity networks in public venues.
`
`UPnP uses standard TCP/IP and Internet protocols, enabling it to seamlessly fit
`
`into existing networks. Using these standardized protocols allows UPnP to
`
`benefit from a wealth of experience and knowledge, and makes interoperability
`an inherent feature.
`
`Because UPnP is a distributed, open network architecture, defined by the
`
`protocols used, it is independent of any particular operating system,
`programming language, or physical medium (just like the Internet). UPnP does
`
`not specify the APIs applications will use, allowing operating system vendors to
`
`create the APIs that will meet their customer needs.
`
`Who Defines UPnP?
`
`The Universal Plug and Play Forum defines UPnP Device and Service
`Descriptions (originally called Device Control Protocols or DCPs) according to a
`
`common device architecture contributed by Microsoft. The Universal Plug and
`
`Play Forum is a group of companies and individuals across the industry that
`intend to play a leading role in the authoring of specifications for UPnP devices
`
`and services. Formed on October 18, 1999, it is an association of more than
`
`200 vendors who are industry leaders in consumer electronics, computing,
`
`
`
`
`
`Understanding Universal Plug and Play
`
`1
`
`SecureNet Technologies, LLC Exhibit 1011 Page 7
`
`
`
`
`
`home automation and security, home appliances, computer networking, and
`
`mobile devices.
`
`The goals of the Forum are to enable the emergence of easily connected
`
`devices and to simplify the implementation of networks in the home and
`
`corporate environments. The Forum will achieve this by defining and publishing
`UPnP device and service descriptions built on open, Internet-based
`
`communication standards.
`
`The Forum's web site, http://upnp.org/, is the central repository for schema that
`has been developed and standardized by the Forum. In addition, the site
`
`includes the device architecture document, templates for device and service
`
`descriptions, and guidelines for device and service description design.
`UPnP.org also distributes information about the Forum's activities and
`
`progress.
`
`Understanding Universal Plug and Play
`
`2
`
`SecureNet Technologies, LLC Exhibit 1011 Page 8
`
`
`
`
`
`Figure 1: A Mixed Media Multiple Vendor Network
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Understanding Universal Plug and Play
`
`3
`
`SecureNet Technologies, LLC Exhibit 1011 Page 9
`
`
`
`
`
`UPNP Enabled
`Scenarios
`
`Understanding Universal Plug and Play
`
`4
`
`UPnP Opens Up a World of Possibilities
`
`There are many ways automatic discovery and control of devices can make life
`easier and better. The advent of UPnP is opening up new possibilities and uses
`
`every day. I dare say that the explosion of possibilities has not been matched
`
`since the advent of the computer network. The scenarios seem to be nearly
`endless. I have included just a few of many ideas in this section.
`
`Some UPnP Scenarios:
`
`The New Printer
`
`If I were to come home today with a new printer to use on my home network, I’d
`have to take several steps to make sure that the printer could be used by all of
`
`the PCs on the network, let alone available to any other device that may have a
`
`need to print.
`
`For example, I would need to connect the printer to an existing PC, load the
`
`device driver, share the printer on the network, then go to each of the other
`
`PCs on the network and connect to that shared printer.
`
`Wouldn’t it be nice to simply plug the printer into any available network port, be
`
`it phone line, power line, or Ethernet, and have the printer immediately
`
`available to all devices and users of the network?
`
`Out of Storage Space Again
`
`I am, ever so often and with increasing frequency, running out of storage space
`on my PC. I suppose this has something to do with the large number of digital
`
`pictures and movies I take, or possibly because I’ve made a valiant effort to
`
`catalog my entire CD collection as Windows Media™ files, but I don’t see the
`situation getting any better soon.
`
`Although the prices for secondary storage have decreased dramatically, the
`
`pain of adding a hard drive to one of my systems has only improved marginally
`through device Plug and Play. Worse yet is trying to figure out how to take
`
`those home movies, pictures, and sounds across the country when I go to visit
`
`my family on holidays.
`
`Suppose I had a high speed, high capacity, mobile data store that was UpnP-
`
`enabled. Perhaps this device connected directly to an Ethernet or phone line
`
`network. Or—to enable streaming of my home movies—the device could be
`connected to the high speed IEEE 1394 bus with the rest of my entertainment
`
`system. Wherever I plug in this device, all other devices on the network
`
`(including those that produce or display media) immediately know of its
`availability.
`
`Won’t my family be pleased when I visit them with seemingly endless home
`
`movies!
`
`SecureNet Technologies, LLC Exhibit 1011 Page 10
`
`
`
`
`
`New, portable devices aren’t limited to storage or printers, but could include
`
`many other devices including cameras, MP3 players, scanners, MIDI devices,
`remote controls, TVs and video devices; the list is seemingly endless.
`
` “It’s always freezing when I wake up!”
`You’re in bed, about to go to sleep and tomorrow is Saturday. Your alarm clock
`
`usually wakes you up at 7 A.M., but tomorrow you want to sleep in. You need to
`
`be awakened by an alarm, but 9 A.M. seems like a much better time. So you
`set the alarm to 9 A.M. instead of 7 A.M.
`
`Since you have a UPnP alarm clock, life is good. You have a script running on
`
`your Windows®-based PC that is waiting for an alarm notification from the
`alarm clock. As soon as this happens, it instructs the timer on the HVAC device
`
`to set the wake time to the same as the alarm clock time.
`
`Now, your heat will turn on early enough so that you won’t freeze when you get
`out of bed! With an intelligent HVAC system, many other features could be
`
`added beyond what the programmable thermostats of today provide. This could
`
`include enabling the system when sensors detect people, and remote control of
`the system over the Internet.
`
`If your alarm clock had access to your schedule information, it could warn you if
`
`you choose to wake up after a meeting was scheduled. In other words, if you
`have a meeting at 9 A.M., and try to set your alarm for 9 A.M., it could warn you
`
`that you really ought to get up at 8 A.M. to be able to make it to work by 9.
`
`The Master Switch:
`You come home from a hard day’s work and walk in your front door. You flip a
`
`wall switch, which, to most of us, just turns on the light in the foyer. With UPnP,
`this switch is much more than that. This switch is simply a UPnP service whose
`
`state is defined by a variable called “Position.” When you flip the switch,
`
`“Position” changes to “On” and a script running on your Windows-based PC
`goes into action.
`
`The script gets the notification that the position of the master switch has
`
`changed to “on”. It then does the following:
`
` The heat turns on to your preset temperature.
`
` The answering machine starts playing new messages.
`
` Your stereo system turns on and is set to your favorite classical
`station, and the volume is set for ambient level.
`
` The window blinds raise, but only if it’s after sunset (sunrise/sunset
`data is easily obtainable from the Internet).
`
` Optionally, the TV is turned on and set to the news station, with the
`sound off and the closed captioning turned on.
`
`
`
`
`
`Understanding Universal Plug and Play
`
`5
`
`SecureNet Technologies, LLC Exhibit 1011 Page 11
`
`
`
`
`
`Understanding Universal Plug and Play
`
`6
`
` Oh yeah, the light in the foyer also turns on.
`
`
`
`Similarly, when you flip the switch to the “off” position, the reverse occurs:
`
` The heat turns off (or is set at a lower temperature).
`
` The stereo is turned off.
`
` The TV is turned off.
`
` The window blinds lower for privacy.
`
` All of the lights in the house are turned off.
`
`
`
`Synchronize Your Clocks:
`It happens all the time. The power goes out for a couple of hours, and every
`
`clock in your home is blinking 12:00. Going through the whole house to set
`
`them is annoying and time consuming.
`
`Enter UPnP. A script running on your Windows-based PC periodically
`
`synchronizes all the clocks in the house to the atomic clock in Colorado. The
`
`script looks for all clock services on the network, regardless of the device. It
`then simply iterates through each service, and sets the time to the value it
`
`obtained from the atomic clock over the Internet.
`
`This script can be running as a task that recurs every night at midnight. It can
`be manually run after the power comes back on to reset each clock.
`
`Vacation Mode
`If you were going to be away from your home for an extended period of time, a
`
`simple switch to put your home into “vacation” mode would be very useful. A
`
`“vacation mode” application could be run on your PC, which would do the
`following:
`
` Periodically turn on and off the lights, and even the TV or stereo, in a
`seemingly random pattern (security).
`
` Turn the water heater down or off (energy savings).
`
` Turn the heat down or off (energy savings).
`
` Lower the blinds (security).
`
` Turn off all alarm clocks in the house (energy savings).
`
` Set the VCR to record all of your favorite shows for the time that you
`are away (convenience).
`
`Until the post-office can be UPnP-enabled, you’ll have to stop the mail
`
`yourself.
`
`SecureNet Technologies, LLC Exhibit 1011 Page 12
`
`
`
`
`
`Home theater mode:
`
`When it’s time to watch your favorite movie, a single script can automate the
`entire experience:
`
` The TV is turned on to the proper channel (i.e. channel 3).
`
` The DVD player is turned on.
`
` The stereo is turned on to the Video mode, and the volume is turned
`up to theater levels.
`
` The lights in the house turn off, except for the living room where they
`dim slightly.
`
` The DVD is played.
`
`
`
`Take Me Out to the Ball Game
`
`Suppose you take your wireless Pocket PC or laptop to the ball game with you.
`As you travel to or from the game, the device is used in the car to pick up traffic
`
`information or roadside service information. This information can then be used
`
`to avoid congestion as much as possible, to pick up food and gas, or—if you
`decided to go at the last minute—to order your tickets and have them waiting at
`
`the Will Call booth for you when you arrive.
`
`When you get to the game, your device detects the stadium network and you
`can automatically sync up to the announcer commentary, order food and
`
`souvenirs and track player statistics.
`
`Your buddy list could be searched for any acquaintances that might also have
`left work early to see the game, and you could chat with them about the
`
`particulars of this call or that, even though they ended up in the “cheap seats.”
`
`The types of capabilities this scenario describes could easily apply to other
`events and recreational activities.
`
`Family Togetherness
`The entire family has their own personal calendars that they manage with their
`
`PDAs, cell phone, office or home PCs that are all UPnP-enabled. The
`
`integrated family calendar and the personal calendars are on the home network
`server.
`
`Each calendar is a UPnP service that can be seen by any member of the family
`
`as well as other enabled services. Because the PDAs connect to the wireless
`home network when they are at home and synchronize the calendar, every
`
`member of the family leaves for the day with everyone else’s calendar
`
`information.
`
`
`
`
`
`Understanding Universal Plug and Play
`
`7
`
`SecureNet Technologies, LLC Exhibit 1011 Page 13
`
`
`
`
`
`Understanding Universal Plug and Play
`
`8
`
`The PDAs can re-synchronize with the home server via cell or direct Internet
`
`connections. While at work, mom realizes she needs to stay late for a meeting
`and will not have time to shop for and cook dinner. She uses the PDA and cell
`
`phone to send the grocery list to her favorite store for filling. She then sends all
`
`her family members an e-mail update to the family calendar that informs them
`she will be late. She tells her teenage son to pickup the groceries and start
`
`dinner.
`
`Dad checks the family schedule and realizes his son may need help getting all
`the groceries home and making dinner in time for them to attend a basketball
`
`game, so he goes to the grocery store to pickup his son and heads home to
`
`make dinner.
`
`
`
`The Well Connected Home
`It is easy to consider a home in which UPnP makes life easier or richer for
`
`many of the day-to-day tasks. Kitchen appliances could be connected to a
`
`power line network to form a home network. Information for each of the
`appliances, such as model, make, and serial number, could be accessed from
`
`many locations and retrieved for service calls. A URL for the manufacturer and
`
`manual could be accessed for anyone who wants to repair appliances on their
`own.
`
`Some appliances could be remotely controlled to be turned on or off, have their
`
`temperature controlled, or even signal the need for maintenance when they
`detect an abnormality. Many things would be made possible through remote
`
`control, including remotely closing the garage door, remotely checking on a
`
`baby in day-care or at home, and remotely programming a VCR to record a TV
`program you would otherwise miss.
`
`You could have a kitchen tablet on which you could make online product
`
`selections as you peruse your cupboards to see what’s missing. An attached
`bar code scanner might make making lists easier. This device would have
`
`automatic access to the home network and Internet using UPnP.
`
`The entire home security system could be connected to the UPnP network
`enabling you to be notified of a breach wherever you may be through the
`
`Internet. Sensors in each room to detect your presence could allow music, the
`
`baby monitor or video streams to follow you as you roam through the house
`performing those mundane household duties.
`
`
`
`Meeting Time
`
`
`SecureNet Technologies, LLC Exhibit 1011 Page 14
`
`
`
`
`
`You’re at work. You walk into a conference room where you are scheduled to
`
`present your latest proposal. Your wireless-enabled laptop immediately
`recognizes the devices available in the room and connects to the display device
`
`so that your PowerPoint presentation can be displayed. Perhaps you can keep
`
`the other wireless attendees from reading email while you talk by displaying the
`presentation on their laptops also.
`
`
`
`
`
`
`
`Understanding Universal Plug and Play
`
`9
`
`SecureNet Technologies, LLC Exhibit 1011 Page 15
`
`
`
`
`
`Components of a UPnP
`Network
`
`Devices, Services and Control Points
`
`The basic building blocks of a UPnP network are devices, services and control
`points. These are described more fully in this section.
`
`
`
`Figure 4: UPnP Control Points, Devices, and Services
`
`Devices
`A UPnP device is a container of services and nested devices. For instance, a
`
`VCR device may consist of a tape transport service, a tuner service, and a
`
`Understanding Universal Plug and Play
`
`10
`
`UPnP Enabled Device
`
`Device
`
`Service 1
`
`Service 2
`
`UPnP Enabled Device
`
`Control Point
`
`Control Point
`
`Device
`
`Service
`
`UPnP Enabled Device
`
`Root Device
`
`Embedded Device
`
`Service
`
`Service 1
`
`Service 2
`
`Service
`
`State
`Table
`
`Control
`Server
`
`Event
`Server
`
`SecureNet Technologies, LLC Exhibit 1011 Page 16
`
`
`
`
`
`clock service. A TV/VCR combo device would consist not just of services, but a
`
`nested device as well.
`
`Different categories of UPnP devices will be associated with different sets of
`
`services and embedded devices. For instance, services within a VCR will be
`
`different than those within a printer. Consequently, different working groups will
`standardize on the set of services that a particular device type will provide. All
`
`of this information is captured in an XML device description document that the
`
`device must host. In addition to the set of services, the device description also
`lists the properties (such as device name and icons) associated with the device.
`
`Services
`The smallest unit of control in a UPnP network is a service. A service exposes
`
`actions and models its state with state variables. For instance, a clock service
`
`could be modeled as having a state variable, current_time, which defines the
`state of the clock, and two actions, set_time and get_time, which allow you to
`
`control the service. Similar to the device description, this information is part of
`
`an XML service description standardized by the UPnP forum. A pointer (URL)
`to these service descriptions is contained within the device description
`
`document. Devices may contain multiple services.
`
`A service in a UPnP device consists of a state table, a control server and an
`event server. The state table models the state of the service through state
`
`variables and updates them when the state changes. The control server
`
`receives action requests (such as set_time), executes them, updates the state
`table and returns responses. The event server publishes events to interested
`
`subscribers anytime the state of the service changes. For instance, the fire
`
`alarm service would send an event to interested subscribers when its state
`changes to “ringing.”
`
`Control Points
`A control point in a UPnP network is a controller capable of discovering and
`
`controlling other devices. After discovery, a control point could:
`
` Retrieve the device description and get a list of associated services.
`
` Retrieve service descriptions for interesting services.
`
`
`
`Invoke actions to control the service.
`
` Subscribe to the service’s event source. Anytime the state of the
`service changes, the event server will send an event to the control
`
`point.
`
`It is expected that devices will incorporate control point functionality (and vice-
`versa) to enable true peer-to-peer networking.
`
`
`
`
`
`
`
`Understanding Universal Plug and Play
`
`11
`
`SecureNet Technologies, LLC Exhibit 1011 Page 17
`
`
`
`
`
`UPnP Protocol Overview
`
`Networking Media for UPnP
`
`UPnP leverages the standard IP protocol suite to remain network media
`agnostic. Devices on a UPnP network can be connected using any
`
`communications media including Radio Frequency (RF, wireless), phone line,
`
`power line, IrDA, Ethernet, and IEEE 1394. In other words, any medium that
`can be used to network devices together can enable UPnP. The only concern
`
`might be that the media being used supports the bandwidth required for the
`
`intended use.
`
`UPnP uses open, standard protocols such as TCP/IP, HTTP and XML.
`
`However, other technologies could be used to network devices together for
`
`many reasons, including cost, technology requirements, or legacy support.
`These include networking technologies like HAVi, CeBus, LonWorks, EIB, or
`
`X10. These too can participate in the UPnP network through a UPnP bridge or
`
`proxy. A UPnP network containing bridged devices might look like the figure
`below.
`
`
`
`
`
`Figure 2 A Bridged UPnP Network
`
`
`
`Protocols Used by UPnP
`
`UPnP leverages many existing, standard protocols. Using these standardized
`
`protocols aids in ensuring interoperability between vendor implementations.
`
`Understanding Universal Plug and Play
`
`12
`
`Control Point
`(Pocket PC)
`
`Control Point
`(Remote Control)
`
`IP Network
`
`Native Device
`(UPnP VCR)
`
`UPnP Bridge
`
`Lightweight Device
`(LonWorks Thermostat)
`
`Native Device
`(UPnP Alarm Clock)
`
`Non-IP Bus/Networks
`
`Non-UPnP Device
`(X-10 Light)
`
`SecureNet Technologies, LLC Exhibit 1011 Page 18
`
`
`
`
`
`The protocols used to implement UPnP are found in use on the Internet and on
`
`local area networks everywhere. This prevalence ensures that there is a large
`pool of people knowledgeable in implementing and deploying solutions based
`
`on these protocols. Since the same protocols are already in use, little would
`
`need to be done to make UPnP devices work in an existing networked
`environment.
`
`
`
`Some of the protocols used to implement UPnP are summarized in the rest of
`this section.
`
`Figure 3: The UPnP Protocol Stack
`
`UPnP Specific Protocols
`
`
`UPnP vendors, UPnP Forum Working Committees and the UPnP Device
`Architecture document define the highest layer protocols used to implement
`
`UPnP. Based on the device architecture, the working committees define
`
`information global to specific device types such as VCRs, HVAC systems,
`dishwashers, and other appliances. Subsequently, UPnP Device Vendors
`
`define the data specific to their devices such as the model name, URL, etc.
`
`
`
`
`
`Understanding Universal Plug and Play
`
`13
`
`UPnP Vendor Defined
`
`UPnP Forum Working Committee Defined
`
`UPnP Device Architecture Defined
`
`SSDP
`
`HTTPMU
`(Discovery)
`
`GENA
`
`SSDP
`
`HTTPU
`(Discovery)
`
`SOAP
`(Control)
`
`HTTP
`(Description)
`
`HTTP
`
`GENA
`(Events)
`
`UDP
`
`TCP
`
`IP
`
`SecureNet Technologies, LLC Exhibit 1011 Page 19
`
`
`
`
`
`Understanding Universal Plug and Play
`
`14
`
`TCP/IP
`
`The TCP/IP networking protocol stack serves as the base on which the rest of
`the UPnP protocols are built. By using the standard, prevalent TCP/IP protocol
`
`suite, UPnP leverages the protocol’s ability to span different physical media and
`
`ensures multiple vendor interoperability.
`
`UPnP devices can use many of the protocols in the TCP/IP stack including
`
`TCP, UDP, IGMP, ARP and IP as well as TCP/IP services such as DHCP and
`
`DNS. How these protocols and services are used to provide what is required for
`UPnP to work will become clear as we discuss the other protocols in this
`
`section and discuss how UPnP works in subsequent sections.
`
`Since TCP/IP is one of the most ubiquitous networking protocols, locating or
`creating an implementation for a UPnP device that is tuned for footprint and/or
`
`performance is relatively easy.
`
`A basic understanding of the TCP/IP protocol suite and services is assumed in
`this document. More information on TCP/IP can be found in the references
`
`listed at the end of this document.
`
`HTTP, HTTPU, HTTPMU
`TCP/IP provides the base protocol stack to provide network connectivity
`
`between UPnP devices. HTTP, which is hugely responsible for the success of
`the Internet, is also a core part of UPnP. All aspects of UPnP build on top of
`
`HTTP or its variants.
`
`HTTPU (and HTTPMU) are variants of HTTP defined to deliver messages on
`top of UDP/IP instead of TCP/IP. These protocols are used by SSDP,
`
`described next. The basic message formats used by these protocols adheres
`
`with that of HTTP and is required both for multicast communication and when
`message delivery does not require the overhead associated with reliability.
`
`Some of the explanations of higher-level protocols and the workings of UPnP
`
`assume a basic knowledge of the HTTP protocol. More information on HTTP
`can be found through the references listed at the end of this document.
`
`SSDP
`Simple Service Discovery Protocol (SSDP), as the name implies, defines how
`
`network services can be discovered on the network. SSDP is built on HTTPU
`
`and HTTPMU and defines methods both for a control point to locate resources
`of interest on the network, and for devices to announce their availability on the
`
`network. By defining the use of both search requests and presence
`
`announcements, SSDP eliminates the overhead that would be necessary if only
`one of these mechanisms is used. As a result, every control point on the
`
`network has complete information on network state while keeping network
`
`traffic low.
`
`SecureNet Technologies, LLC Exhibit 1011 Page 20
`
`
`
`
`
`Both control points and devices use SSDP. A UPnP control point, upon booting
`
`up, can send an SSDP search request (over HTTPMU), to discover devices
`and services that are available on the network. The control point can refine the
`
`search to find only devices of a particular type(such as a VCR), particular
`
`services (such as devices with clock services) or even a particular device.
`
`UPnP devices listen to the multicast port. Upon receiving a search request, the
`
`device examines the search criteria to determine if they match. If a match is
`
`found, a unicast SSDP (over HTTPU) response is sent to the control point.
`
`Similarly, a device, upon being plugged into the network, will send out multiple
`
`SSDP presence announcements advertising the services it supports.
`
`Both presence announcements and unicast device response messages contain
`a pointer to the location of the device description document, which has
`
`information on the set of properties and services supported by the device.
`
`In addition to the discovery capabilities provided, SSDP also provides a way for
`a device and associated service(s) to gracefully leave the network (bye-bye
`
`notification) and includes cache timeouts to purge stale information for self
`
`healing.
`
`GENA
`
`Generic Event Notification Architecture (GENA) was defined to provide the
`ability to send and receive notifications using HTTP over TCP/IP and multicast
`
`UDP. GENA also defines the concepts of subscribers and publishers of
`
`notifications to enable events.
`
`GENA formats are used in UPnP to create the presence announcements to be
`
`sent using Simple Service Discovery Protocol (SSDP) and to provide the ability
`
`to signal changes in service state for UPnP eventing. A control point interested
`in receiving event notifications will subscribe to an event source by sending a
`
`request that includes the service of interest, a location to send the events to
`
`and a subscription time for the event notification.
`
`The subscription must be renewed periodically to continue to receive
`
`notifications, and can also be canceled using GENA.
`
`SOAP
`Simple Object Access Protocol (SOAP) defines the use of Extensible Markup
`
`Language (XML) and HTTP to execute remote procedure calls. It is becoming
`the standard for RPC based communication over the Internet. By making use of
`
`the Internet’s existing infrastructure, it can work effectively with firewalls and
`
`proxies. SOAP can also make use of Secure Sockets Layer (SSL) for security
`and use HTTP’s connection management facilities, thereby making distributed
`
`communication over the Internet as easy as accessing web pages.
`
`
`
`
`
`Understanding Universal Plug and Play
`
`15
`
`SecureNet Technologies, LLC Exhibit 1011 Page 21
`
`
`
`Much like a remote procedure call, UPnP uses SOAP to deliver co