`
`Operating System
`
`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.
`
`
`
`
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 1 of 45
`
`
`
`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
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 2 of 45
`
`
`
`
`
`Contents
`
`Introduction.............................................................................................. 1
`1
`What is UPnP?
`1
`
`Who Defines UPnP?
`
`Some UPnP Scenarios:
`
`The New Printer
`
`Out of Storage Space Again
`
`“It’s always freezing when I wake up!”
`
`UPNP Enabled Scenarios ....................................................................... 4
`4
`UPnP Opens Up a World of Possibilities
`4
`4
`4
`5
`5
`6
`6
`7
`7
`7
`8
`8
`
`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
`
`Components of a UPnP Network ......................................................... 10
`10
`Devices, Services and Control Points
`10
`11
`11
`
`Devices
`
`Services
`
`Control Points
`
`UPnP Protocol Overview ...................................................................... 12
`12
`Networking Media for UPnP
`12
`13
`14
`14
`14
`15
`
`Protocols Used by UPnP
`
`UPnP Specific Protocols
`
`TCP/IP
`
`HTTP, HTTPU, HTTPMU
`
`SSDP
`
`GENA
`
`
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 3 of 45
`
`
`
`
`
`
`
`SOAP
`
`XML
`
`15
`16
`
`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
`
`How UPNP Works .................................................................................. 17
`17
`The Responsibilities of UPnP
`17
`18
`18
`18
`19
`19
`19
`20
`20
`20
`21
`22
`23
`24
`25
`27
`28
`30
`30
`32
`
`Description
`
`Presentation
`
`Control
`
`Revisiting Discovery, Description and Control
`
`Eventing
`
`Finishing Up
`
`UPnP APIs .............................................................................................. 33
`33
`What APIs Should Be Implemented?
`
`Acronyms ............................................................................................... 34
`
`Summary ................................................................................................ 35
`
`For More Information ............................................................................ 36
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 4 of 45
`
`
`
`
`
`
`
`
`
`References
`References
`
`
`
`36
`36
`
`Netflix, Inc. et al. Exhibit 1010
`Page 5 of 45
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 5 of 45
`
`
`
`Netflix, Inc. et al. Exhibit 1010
`Page 6 of 45
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 6 of 45
`
`
`
`
`
`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
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 7 of 45
`
`
`
`
`
`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
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 8 of 45
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Figure 1: A Mixed Media Multiple Vendor Network
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Understanding Universal Plug and Play
`
`3
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 9 of 45
`
`
`
`
`
`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!
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 10 of 45
`
`
`
`
`
`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
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 11 of 45
`
`
`
`
`
`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.
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 12 of 45
`
`
`
`
`
`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
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 13 of 45
`
`
`
`
`
`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
`
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 14 of 45
`
`
`
`
`
`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
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 15 of 45
`
`
`
`
`
`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 morefully in this section.
`
`
`UPnP Enabled Device
`
`
`
`
`
`
`Control Point
`
`UPnP Enabled Device
`
`
`
` Root Device
`
`Figure 4: UPnP Control Points, Devices, and Services
`
`Devices
`
`A UPnPdevice is a container of services and nested devices. For instance, a
`VCR device mayconsist of a tape transport service, a tuner service, and a
`
`Understanding Universal Plug and Play
`
`10
`
`Netflix, Inc. et al. Exhibit 1010
`Page 16 of 45
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 16 of 45
`
`
`
`
`
`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
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 17 of 45
`
`
`
`UPnP Protocol Overview
`
`
`
`Networking Media for UPnP
`UPnPleveragesthe standard IP protocol suite to remain network media
`agnostic. Devices on a UPnP networkcan be connected using any
`communications media including Radio Frequency (RF, wireless), phoneline,
`powerline, 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.
`
`UPnPusesopen,standard protocols such as TCP/IP, HTTP and XML.
`However, other technologies could be used to network devices togetherfor
`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 UPnPbridge or
`proxy. A UPnPnetwork containing bridged devices mightlooklike the figure
`below.
`
`
`
`Lightweight Device
`
`
`
`
`
`(UPnP Alam Clock)
`
`Non-UPnPDevice
`(%-10 Light)
`
`(LonWorks Thermostat)
`
`
`
`Figure 2 A Bridged UPnP Network
`
`Protocols Used by UPnP
`UPnPleverages many existing, standard protocols. Using these standardized
`protocols aids in ensuring interoperability between vendor implementations.
`
`Understanding Universal Plug and Play
`
`12
`
`Netflix, Inc. et al. Exhibit 1010
`Page 18 of 45
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 18 of 45
`
`
`
`The protocols used to implement UPnPare found in use on the Internet and on
`local area networks everywhere. This prevalence ensuresthat there is a large
`pool of people knowledgeable in implementing and deploying solutions based
`on these protocols. Since the same protocols are alreadyin use,little would
`need to be done to make UPnPdevices work in an existing networked
`environment.
`
`Someof the protocols used to implement UPnP are summarized in the rest of
`this section.
`
`UPnP Vendor Defined
`
`UPnP Forum Working Committee Defined
`
`UPnP Device Architecture Defined
`
`__ _
`
`UPnPSpecific Protocols
`
`UPnPvendors, 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
`
`Netflix, Inc. et al. Exhibit 1010
`Page 19 of 45
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 19 of 45
`
`
`
`
`
`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.
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 20 of 45
`
`
`
`
`
`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
`
`Netflix, Inc. et al. Exhibit 1010
`
`Page 21 of 45
`
`
`
`
`
`Much like a remote procedure call, UPnP uses SOAP to deliver control
`messages to devices and return results or errors back to control points.
`Each UPnP control request is a SOAP message that contains the action to
`invoke along with a set of parameters. The response is a soap message as well
`and contains the status, return value and any return parameters.
`
`XML
`Extensible Markup Language (XML), to use the W3C definition, is the universal
`format for structured data on the Web. Put another way, XML is a way to place
`nearly any kind of structured data int