Free the mouse Replay RnsProtocol
Home | Changes | Index | Search | Go

The RNS protocol

Introduction

Every night, the ReplayTV4000? contacts home and makes a series of HTTP requests. This can be monitored with a packet sniffer, such as tcpdump or ethereal; myself, I leave tcpdump running continuously, with tcpdump -n -s 0 -w rtv.dump 'host 192.168.117.3', logging all the packets that go to or from my RTV; I then use ethereal -r rtv.dump to view and analyze the traces.

RNS phases

  1. Login
  2. Authorization
  3. Time Synchronization
  4. Area information -- zipcode & headends
  5. Channel guide information
  6. Data file updates -- zone data, setup, customize, messages, 'assets'
  7. MyReplayTV synchronization -- get transactions, put transactions
  8. Report to the mothership -- put syslog
  9. Same bat time, same bat channel -- get next call, server & dialup info
  10. Anything else that needs to be done -- get shell commands
  11. Software updates
  12. Logout

Common elements

All of the RnsProtocol except RnsTimeSync transactions are standard HTTP requests. Most are GETs, a few are POSTs. The requests are HTTP/1.1, and sometimes Connection: Keep-Alive is used, but not always; everything seems to work just fine with clients that use HTTP/1.0 and don't use keep-alive, however.

All requests include the headers:

Accept-Encoding: gzip
Authorization: Basic Uk5TQmFzaWM6QTd4KjgtUXQ=
Host: rns.replaytv.net
User-Agent: Replay/520411140
X-Replay-Serial-Number: RTV4080K1AA5000149

The Authorization line corresponds to a username of RNSBasic and a password of A7x*8-Qt. The server doesn't seem to care of the User-Agent is different, or if there's no X-Replay-Serial-Number header; the requests that actually need it include the serial number in the query string.

Many of the requests use If-Modified-Since or If-None-Match lines to avoid downloading redundant information; these can be left out to get complete datasets.

(Exception: RnsPutSyslog includes the X-Replay-Serial-Number header, but with different data; see that page for more details.)

Interfering

The RnsProxy allows modifying the requests and responses, not just monitoring.

-- ToddLarason - 11 Mar 2002


Need to document the setup-only requests like gettimezone.pl

-- ToddLarason - 05 May 2002


Your post will appear before this form in chronological order (newest at bottom)

Topic RnsProtocol . { Edit | Attach | Ref-By | Printable | Diffs | r1.12 | > | r1.11 | > | r1.10 | More }
Revision r1.12 - 01 Apr 2003 - 04:48 GMT - TWikiGuest
Parents: WebHome
Copyright © 2001 by the contributing authors. All material on this collaboration tool is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback.