Here are some observations of what happens when a Sun Ray 1 powers up:
Devices involved: Sunray: 8:0:20:c1:d:fb = 192.168.128.20 Server: 8:0:20:c5:fe:46 = piper-ge0.cl.cam.ac.uk (192.168.128.1) - Sun Ray sends out DHCP request (RFC 2131, RFC 1533) broadcast to 255.255.255.255 0.0.0.0.bootpc > 255.255.255.255.bootp: xid:0x5dc3dfb0 DHCP:DISCOVER Class-identifier:"SUNW.NewT.SUNW" Client-identifier:01:08:00:20:c1:0d:fb - Server replies BOOTP and provides "your IP address" value 192.168.128.20 piper-ge0.cl.cam.ac.uk.bootp > 192.168.128.20.bootpc: xid:0x5dc3dfb0 Your-IP:192.168.128.20 DHCP:OFFER Server-identifier:192.168.128.1 (piper-ge0.cl.cam.ac.uk) Broadcast address:192.168.128.255 Subnet-mask:255.255.255.0 MTU:1500 router:piper-ge0.cl.cam.ac.uk IP address lease time:86400 Vendor-specific-information: 1f 04 c0a88001 = 192.168.128.1 (piper-ge0.cl.cam.ac.uk) 21 03 676530 = "ge0" 17 1d 312e325f31362e612c5245563d323030 302e31302e33312e31362e3139 = "1.2_16.a,REV=2000.10.31.16.19" 15 04 c0a88001 = 192.168.128.1 (piper-ge0.cl.cam.ac.uk) 16 02 1b61 = 7009 (utauth port number) 18 04 c0a88001 = 192.168.128.1 (piper-ge0.cl.cam.ac.uk) 19 01 06 1a 01 06 1b 01 06 1c 01 06 1d 01 06 - Meaning of Vendor-specific-information clear from piper:/var/dhcp/dhcptab: AuthSrvr s Vendor=SUNW.NewT.SUNW,21,IP,1,1 0x15 AuthPort s Vendor=SUNW.NewT.SUNW,22,NUMBER,2,1 0x16 NewTVer s Vendor=SUNW.NewT.SUNW,23,ASCII,1,0 0x17 LogHost s Vendor=SUNW.NewT.SUNW,24,IP,1,1 0x18 LogKern s Vendor=SUNW.NewT.SUNW,25,NUMBER,1,1 0x19 LogNet s Vendor=SUNW.NewT.SUNW,26,NUMBER,1,1 0x1a LogUSB s Vendor=SUNW.NewT.SUNW,27,NUMBER,1,1 0x1b LogVid s Vendor=SUNW.NewT.SUNW,28,NUMBER,1,1 0x1c LogAppl s Vendor=SUNW.NewT.SUNW,29,NUMBER,1,1 0x1d FWSrvr s Vendor=SUNW.NewT.SUNW,31,IP,1,1 0x1f Intf s Vendor=SUNW.NewT.SUNW,33,ASCII,1,0 0x21 DispRes s Vendor=SUNW.NewT.SUNW,32,NUMBER,4,1 0x20 IAG: Here is a list of the indices used to refer to display settings: X Width Height Hz ---------------------- 2 640 x 480 @ 85 3 800 x 600 @ 85 4 1024 x 768 @ 60 5 1024 x 768 @ 75 6 1152 x 900 @ 66 7 1152 x 900 @ 76 8 1280 x 1024 @ 60 9 1280 x 1024 @ 66 10 1280 x 1024 @ 75 11 1280 x 1024 @ 76 12 1280 x 1024 @ 85 13 1024 x 768 @ 85 14 640 x 480 @ 60 15 800 x 600 @ 60 - Sun Ray asks via ARP for the server's hardware address arp who-has piper-ge0.cl.cam.ac.uk (Broadcast) tell 192.168.128.20 - Server replies ARP request: arp reply piper-ge0.cl.cam.ac.uk is-at 8:0:20:c5:fe:46 [Odd: Server sends already UDP packets (src port 34487 dest port 63087), possibly retry attempts from the previous session?] - Sun Ray establishes TCP connections to the server on ports utauthd (7009) and utdevmgrd (7011) - Sun Ray sends on utdevmgrd/tcp the string "connect\n". - Server replies on utdevmgrd/tcp with the string "beat.t=c4e9d8\n" Try yourself: $ telnet piper-ge0.cl.cam.ac.uk utdevmgrd connect beat t=c4cd24 - Sun Ray sends on utdevmgrd/tcp the ASCII text lines device term=IEEE802.080020c10dfb bus=usb curconf=1 owner termip=192.168.128.20:7777 nunits=1 class=9.0.0 prod=0.0.0 usb.usb=1 addr=1.1 t=c4e9d8 unit term=IEEE802.080020c10dfb bus=usb addr=1.1 unitid=1.0.0 class=9.1.0 owner t=c4e9d8 - Sun Ray sends on utauthd/tcp the ASCII text line infoReq _=1 cause=insert event=insert fw=1.2_16.a,REV\0752000.10.31.16.19,Boot:1.3;\0401999.05.18-15:14:06-PDT hw=CoronaP1 id=080020c10dfb initState=1 pn=51510 sn=080020c10dfb startRes=1280x1024 state=disconnected tokenSeq=1 type=pseudo - Server sends on utauthd/tcp the ASCII text line discInf access=denied module=ZeroAdmin.m1 - Sun Ray sends on utauthd/tcp the ASCII text line keepAliveReq _=1 fw=1.2_16.a,REV\0752000.10.31.16.19,Boot:1.3;\0401999.05.18-15:14:06-PDT hw=CoronaP1 pn=51510 sn=080020c10dfb state=disconnected - Server sends on utauthd/tcp the ASCII text line connInf tokenSeq=1 module=ZeroAdmin.m1 access=allowed - Server sends on utauthd/tcp the ASCII text line keepAliveCnf - Sun Ray sends on utauthd/tcp the ASCII text line connRsp _=1 access=allowed fw=1.2_16.a,REV\0752000.10.31.16.19,Boot:1.3;\0401999.05.18-15:14:06-PDT hw=CoronaP1 pn=51510 sn=080020c10dfb state=connected - Server and Sun Ray now exchange UDP packets, server port: 34624, Sun Ray port 51510, looks like SunRPC but with 16-bit words instead of 32-bit. - Sun Ray sends on utdevmgrd/tcp the ASCII text lines device term=IEEE802.080020c10dfb bus=usb.usb curconf=1 owner termip=192.168.128.20:7777 nunits=1 class=9.0.0 prod=1105.5190.110 usb.usb=110 addr=1.1.2 t=c4e9d9 unit term=IEEE802.080020c10dfb bus=usb addr=1.1.2 unitid=1.0.0 class=9.0.0 owner usb.conf=+CQIiAAEBAOAyCQQAAAEJAAAACSkECQAyZAAeBwWBAwEA/w- t=c4e9d9 - Server now starts brief UDP exchange from its port 34625 with Sun Ray port 51510 - Eventually however, server replies with icmp: piper-ge0.cl.cam.ac.uk udp port 34625 unreachable
A few hypothesis on the protocol so far:
Special thanks to Ian Grant, Ian Pratt and Martyn Johnson.
created 2002-10-31 – last modified 2002-11-24 – http://www.cl.cam.ac.uk/~mgk25/sunray/protocol.html