Site icon Geeknizer

How Chromecast Works, Chromecast Protocol Explained

Google at their July event introduced a new media device that promises to make use of the Largest display in your house without involving any kind of complexities.

All product development internet giants: Apple, Google and Microsoft had been trying to simplify sharing media to HDTVs and making them smarter. Google itself had created Google TV, Nexus Q and now Chromecast.

Chromecast is first Zero config music, video sharing to TV service, beating the simplicity of everything else in the market. Sharing any media or browser tab from device to TV is just a tap away.

So how does this fascinating one click sharing works?

Chromecast Protocol Explained

DLNA + UPnP lets you stream media from smartphones, laptops to compatible HDTVs. But there are lots of steps involved. Mostly, these solutions are complex enough for a typical home user. But Chromecast uses UPnP and DIAL protocol to eradicate intrication.

DIAL (DIscover And Launch Protocol) uses UPnP (Universal Plug N Play) protocol for network element discovery. Upnp multicasts and probes for available listeners and senders on a given local Wifi network. So essentially moment you click Chromecast  icon on Chrome tab or android device, it probes and discovers First screen DIAL server (Chromecast device plugged to HDTV in this case). Once discovered, it synchronizes information on how to connect to it.

As per Leos Nicholas, the Simple Service Discovery Protocol (SSDP) response says the device is running Linux: “Linux/3.0.8-g702c5ee, UPnP/1.0, Portable SDK for UPnP devices/1.6.18” and the “X-User-Agent” is “redsonic”. So its essentially a Linux based Chrome OS device, as already claimed by Google.

The device description response says the model name is “Eureka Dongle”.  It supports the following DIAL apps:

http://10.x.x.x:8008/apps/Netflix
http://10.x.x.x:8008/apps/YouTube
http://10.x.x.x:8008/apps/GoogleMusic
http://10.x.x.x:8008/apps/ChromeCast
http://10.x.x.x:8008/apps/Pandora

Chromecast uses smartphone to control media playback. The videos/music is played from the cloud rather than from the smartphone, this makes it possible continue the playback when the initiator is no longer in the home wifi network.

In his tests, he found that when a YouTube video is being played from phone, the DIAL Application Information Request says the “ramp” protocol was used. Playback can be stopped using HTTP Delete. So essentially, you can control the media playback using standard protocols, outside Chrome. However, other controls like video progress seeking didn’t use any standard stuff, so that part could be written as an proprietary extension to the DIAL and ramp protocol.

For  Netflix it appears to be using some sort of websocket over the local LAN. For Google Play Music, Chrome casting, it uses DIAL “ramp” protocol.

DIAL Protocol

DIAL protocol has two components, DIAL Service Discovery and the DIAL REST Service. DIAL Service Discovery enables a DIAL client device to discover DIAL servers on its local network segment and obtain access to the DIAL REST Service on those devices.=

The DIAL REST Service enables a DIAL client to query, launch and optionally stop applications on a DIAL Server device. DIAL Service Discovery is achieved using a new Search Target within the SSDP protocol defined by UPnP and an additional header in the response to an HTTP request for the UPnP device description.

The DIAL REST Service is accessed using HTTP. Read more about DIAL protocol here.

What’s Inside ChromeCast Dongle

Chromecast is a Chrome OS device on a low-end hardware. The circuit board is very tiny and has an onboard Marvell processor (probably a single core 1Ghz) and an AzureWave combo Wi-Fi chip, along with 4GB of flash memory storage (for caching) and 512MB of low-voltage RAM.

Related: Stream Local Music, Videos to Chromecast from Android over WLAN

We write latest and greatest in Tech GuidesAppleiPhoneTabletsAndroid,  Open Source, Latest in Tech, subscribe to us @geeknizer OR on Facebook FanpageGoogle+.

Exit mobile version