This annotated network trace follows a flash RAM-equipped JavaStation tower model through its JavaOS 1.1 boot sequence. JavaStation computers are extremely flexible and can be booted a variety of different ways. This boot trace reflects default behavior for a typical JavaStation installation.
This information is provided to assist in understanding the JavaStation boot process and to aid with debugging problematic JavaStation deployments. Excessively redundant information has been removed for brevity.
To obtain this boot trace, the UNIX snoop(1M) command was used with the JavaStation computer's Ethernet address. (In the snoop commands below, the user typed Cntrl-c between the two commands to stop collecting snoop data.)
# snoop -o /tmp/trace.snoop 08:00:20:87:be:d6 # snoop -i /tmp/trace.snoop
For convenience, the systems involved in this particular boot sequence are listed in the following table along with their role in the network boot process.
Table B-1 Systems Involved in a Sample JavaStation Trace and Their Functions
System Host Name |
IP Address |
Ethernet Address |
Function |
---|---|---|---|
dilbert |
129.153.59.151 |
8:0:20:87:be:d6 |
JavaStation computer |
jsboot |
129.153.59.150 |
8:0:20:1f:ad:1d |
Boot, Web, DNS, and NIS Server |
chaco |
129.153.59.100 |
8:0:20:22:36:95 |
Home Directory Server |
Because the JavaStation tower model boots the JavaOS software from flash RAM, it needs to retrieve only its Java main application from the network. No network traffic is generated while the JavaOS software boots from flash RAM.
Once the JavaOS software is booted, it performs DHCP, ARP, and NIS broadcasts to locate and confirm its boot server (jsboot). Even though the JavaStation tower model boots from flash RAM, it needs to know about its boot server for application configuration information or to possibly download a new version of the JavaOS image into flash RAM.
1 0.00000 OLD-BROADCAST -> BROADCAST DHCP/BOOTP BOOTREQUEST 2 2.02091 jsboot -> dilbert DHCP/BOOTP BOOTREPLY 3 0.01412 OLD-BROADCAST -> BROADCAST DHCP/BOOTP BOOTREQUEST 4 0.18294 jsboot -> dilbert DHCP/BOOTP BOOTREPLY 5 0.01362 OLD-BROADCAST -> (broadcast) ARP C Who is 129.153.59.151, dilbert ? 6 1.01707 dilbert -> BROADCAST ARP R 129.153.59.151, dilbert is 8:0:20:87:be:d6 7 0.00079 dilbert -> BROADCAST IP D=255.255.255.255 S=129.153.59.151 LEN=28, ID=3 8 0.00173 chaco -> dilbert IP D=129.153.59.151 S=129.153.59.100 LEN=36, ID=54101 9 0.02696 dilbert -> (broadcast) ARP C Who is 129.153.59.150, jsboot ? 10 0.00034 jsboot -> dilbert ARP R 129.153.59.150, jsboot is 8:0:20:1f:ad:1d 11 0.00110 dilbert -> jsboot PORTMAP C GETPORT prog=100004 (NIS) vers=2 proto=UDP 12 0.00446 jsboot -> dilbert PORTMAP R GETPORT port=768 13 0.01016 dilbert -> jsboot NIS C MATCH 129.153.59.151 in hosts.byaddr 14 0.00261 jsboot -> dilbert NIS R MATCH OK 15 0.01906 dilbert -> jsboot NIS C MATCH jsboot in hosts.byname 16 0.00250 jsboot -> dilbert NIS R MATCH OK
Next, the JavaStation computer downloads its configuration file via HTTP. The configuration file is used to pass information to the JavaOS software such as locale, network printer information, and which Java main application is to be downloaded, as described in Chapter 4, JavaOS Properties . The configuration file for this JavaStation computer is located in http://jsboot/netra/dilbert.
17 0.00984 dilbert -> jsboot HTTP C port=49997 18 0.00036 jsboot -> dilbert HTTP R port=49997 19 0.01047 dilbert -> jsboot HTTP GET /netra/dilbert HTTP/1.0 20 0.00036 jsboot -> dilbert HTTP R port=49997 21 0.00849 jsboot -> dilbert HTTP HTTP/1.0 200 OK 22 0.02123 dilbert -> jsboot HTTP C port=49997 23 0.00033 jsboot -> dilbert HTTP R port=49997 24 0.00138 jsboot -> dilbert HTTP R port=49997 25 0.00133 dilbert -> jsboot HTTP C port=49997 26 0.01070 dilbert -> jsboot HTTP C port=34276 27 0.00038 jsboot -> dilbert HTTP R port=34276
The Java main application listed in the configuration file also has a configuration file. In this case, http://jsboot/netra/browser holds the configuration file for the HotJava Browser.
28 0.01025 dilbert -> jsboot HTTP GET /netra/browser HTTP/1.0 29 0.00037 jsboot -> dilbert HTTP R port=34276 30 0.00494 jsboot -> dilbert HTTP HTTP/1.0 200 OK 31 0.02189 dilbert -> jsboot HTTP C port=34276 32 0.00034 jsboot -> dilbert HTTP R port=34276 33 0.00128 jsboot -> dilbert HTTP R port=34276 34 0.00138 dilbert -> jsboot HTTP C port=34276
The JavaStation computer then attempts (unsuccessfully) to mount a font directory and finally sets its clock by talking to its time server.
35 0.02130 dilbert -> jsboot PORTMAP C GETPORT prog=100004 (NIS) vers=2 proto=UDP 36 0.00367 jsboot -> dilbert PORTMAP R GETPORT port=768 37 0.35151 dilbert -> jsboot PORTMAP C GETPORT prog=100005 (MOUNT) vers=1 proto=UDP 38 0.00372 jsboot -> dilbert PORTMAP R GETPORT port=32795 39 0.00451 dilbert -> jsboot MOUNT1 C Mount /dirpath/fonts 40 0.00674 jsboot -> dilbert MOUNT1 R Mount No such file or directory 41 0.04961 dilbert -> jsboot TIME C port=1025 42 0.00339 jsboot -> dilbert TIME R port=1025
At this point the JavaOS software is completely booted and the user login prompt is displayed on the JavaStation screen. The next step is to authenticate the user.
43 16.92166 dilbert -> jsboot NIS C MATCH eric in passwd.byname 44 0.00285 jsboot -> dilbert NIS R MATCH OK
Once the user has been authenticated, the JavaStation computer uses the automounter NIS map to determine the user's home directory. When the automounter responds with the proper directory name, the JavaStation computer performs an NFS mount to the home directory server (chaco in this case). The user's home directory is used by the HotJava Browser to access a number of configuration and property files (/export/opt2/eric/.javaos/properties in this case).
45 0.21276 dilbert -> jsboot NIS C MATCH eric in auto.home 46 0.00248 jsboot -> dilbert NIS R MATCH OK 47 0.00350 dilbert -> jsboot NIS C MATCH chaco in hosts.byname 48 0.00385 jsboot -> dilbert NIS R MATCH OK 49 0.00531 dilbert -> (broadcast) ARP C Who is 129.153.59.100, chaco ? 50 0.00107 chaco -> dilbert ARP R 129.153.59.100, chaco is 8:0:20:22:36:95 51 0.00079 dilbert -> chaco PORTMAP C GETPORT prog=100005 (MOUNT) vers=1 proto=UDP 52 0.00360 chaco -> dilbert PORTMAP R GETPORT port=32786 53 0.00423 dilbert -> chaco MOUNT1 C Mount /export/opt2/eric 54 0.00701 chaco -> dilbert MOUNT1 R Mount OK FH=AC28 55 0.02975 dilbert -> chaco NFS C LOOKUP2 FH=AC28 . 56 0.00192 chaco -> dilbert NFS R LOOKUP2 OK FH=AC28 57 0.00213 dilbert -> chaco NFS C LOOKUP2 FH=AC28 .javaos 58 0.00149 chaco -> dilbert NFS R LOOKUP2 OK FH=2DF5 59 0.00308 dilbert -> chaco NFS C LOOKUP2 FH=AC28 .javaos 60 0.00147 chaco -> dilbert NFS R LOOKUP2 OK FH=2DF5 61 0.00211 dilbert -> chaco NFS C LOOKUP2 FH=2DF5 properties 62 0.00154 chaco -> dilbert NFS R LOOKUP2 OK FH=7D4B 63 0.00529 dilbert -> chaco NFS C LOOKUP2 FH=2DF5 properties 64 0.00154 chaco -> dilbert NFS R LOOKUP2 OK FH=7D4B 65 0.00261 dilbert -> chaco NFS C READ2 FH=7D4B at 0 for 2048 66 0.00244 chaco -> dilbert NFS R READ2 OK (578 bytes) 67 0.00225 dilbert -> chaco NFS C READ2 FH=7D4B at 578 for 1470 68 0.00149 chaco -> dilbert NFS R READ2 OK (0 bytes) 69 0.02084 dilbert -> chaco NFS C READ2 FH=7D4B at 578 for 2048 70 0.00152 chaco -> dilbert NFS R READ2 OK (0 bytes) 71 0.00369 dilbert -> jsboot NIS C MATCH dilbert in hosts.byname 72 0.00132 jsboot -> dilbert NIS R MATCH OK
Once the user has been authenticated, the JavaStation computer employs the AppLoader in the JavaOS software to download the Java main application, as described in Chapter 5, Dynamically Loading Applications . In this case, the JavaOS software will obtain the necessary classes for the HotJava Browser by downloading http://netra/hjb/hotjava.zip using HTTP (as directed by http://jsboot/netra/browser).
73 0.25295 dilbert -> jsboot HTTP C port=57205 74 0.00037 jsboot -> dilbert HTTP R port=57205 75 0.01046 dilbert -> jsboot HTTP GET /netra/hjb/hotjava.zip HTTP/1.0 76 0.00036 jsboot -> dilbert HTTP R port=57205 77 0.08306 jsboot -> dilbert HTTP HTTP/1.0 200 OK 78 0.05637 dilbert -> jsboot HTTP C port=57205 79 0.00042 jsboot -> dilbert HTTP (body) 80 0.00033 jsboot -> dilbert HTTP (body) 81 0.00455 dilbert -> jsboot HTTP C port=57205 82 0.00042 jsboot -> dilbert HTTP (body) 83 0.00033 jsboot -> dilbert HTTP (body) 84 0.00033 jsboot -> dilbert HTTP (body)
[ Lots of HTTP traffic deleted ]
Once the JavaStation computer has loaded the Java main application, it once again accesses the user's home directory to obtain the user's HotJava Browser preference information, including security, hotlists, cookies, and default lists of URLs.
2103 0.95132 dilbert -> chaco NFS C LOOKUP2 FH=AC28 .hotjava 2104 0.00177 chaco -> dilbert NFS R LOOKUP2 OK FH=0A5D 2105 0.00210 dilbert -> chaco NFS C LOOKUP2 FH=0A5D properties 2106 0.00203 chaco -> dilbert NFS R LOOKUP2 OK FH=13C1 2107 0.00264 dilbert -> chaco NFS C READ2 FH=13C1 at 0 for 2048 2108 0.02274 chaco -> dilbert NFS R READ2 OK (889 bytes) 2109 0.00237 dilbert -> chaco NFS C READ2 FH=13C1 at 889 for 1159 2110 0.00165 chaco -> dilbert NFS R READ2 OK (0 bytes) 2111 0.03816 dilbert -> chaco NFS C READ2 FH=13C1 at 889 for 2048 2112 0.00152 chaco -> dilbert NFS R READ2 OK (0 bytes) 2113 0.00332 dilbert -> chaco NFS C LOOKUP2 FH=AC28 . 2114 0.00153 chaco -> dilbert NFS R LOOKUP2 OK FH=AC28 2115 0.00211 dilbert -> chaco NFS C LOOKUP2 FH=AC28 .hotjava 2116 0.00152 chaco -> dilbert NFS R LOOKUP2 OK FH=0A5D 2117 2.18165 dilbert -> chaco NFS C LOOKUP2 FH=AC28 . 2118 0.00144 chaco -> dilbert NFS R LOOKUP2 OK FH=AC28 2119 0.00505 dilbert -> chaco NFS C LOOKUP2 FH=AC28 .hotjava 2120 0.00150 chaco -> dilbert NFS R LOOKUP2 OK FH=0A5D 2121 0.00215 dilbert -> chaco NFS C LOOKUP2 FH=0A5D security1.1 2122 0.00217 chaco -> dilbert NFS R LOOKUP2 No such file or directory 2123 0.01459 dilbert -> chaco NFS C LOOKUP2 FH=AC28 . 2124 0.00151 chaco -> dilbert NFS R LOOKUP2 OK FH=AC28 2125 0.00333 dilbert -> chaco NFS C LOOKUP2 FH=AC28 .hotjava 2126 0.00154 chaco -> dilbert NFS R LOOKUP2 OK FH=0A5D 2127 0.00213 dilbert -> chaco NFS C LOOKUP2 FH=0A5D security1.1 2128 0.00217 chaco -> dilbert NFS R LOOKUP2 No such file or directory 2129 3.27535 dilbert -> chaco NFS C LOOKUP2 FH=AC28 .hotjava 2130 0.00149 chaco -> dilbert NFS R LOOKUP2 OK FH=0A5D 2131 0.00216 dilbert -> chaco NFS C LOOKUP2 FH=0A5D hotlist.html 2132 0.00154 chaco -> dilbert NFS R LOOKUP2 OK FH=E884 2133 0.70818 dilbert -> chaco NFS C LOOKUP2 FH=0A5D hotlist.html 2134 0.00150 chaco -> dilbert NFS R LOOKUP2 OK FH=E884 2135 0.20309 dilbert -> chaco NFS C LOOKUP2 FH=0A5D urlpool 2136 0.00155 chaco -> dilbert NFS R LOOKUP2 OK FH=B632 2137 0.01399 dilbert -> chaco NFS C READ2 FH=B632 at 0 for 2048