Changes between Initial Version and Version 1 of PlasticSlices/BaselineEvaluation/Baseline7Details


Ignore:
Timestamp:
06/29/11 11:21:25 (13 years ago)
Author:
Josh Smift
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PlasticSlices/BaselineEvaluation/Baseline7Details

    v1 v1  
     1[[PageOutline]]
     2
     3Here are the details of [wiki:PlasticSlices/BaselineEvaluation#Baseline7 Baseline 7], divided by slice.
     4
     5The raw logs of each experiment are at http://www.gpolab.bbn.com/plastic-slices/baseline-logs/baseline-7/.
     6
     7= plastic-101 =
     8
     9[PlasticSlices/Experiments#GigaPing GigaPing], using count=100000, and this table of client/server pairs:
     10
     11|| '''client'''                   || '''server'''                   || '''server address''' ||
     12|| ganel.gpolab.bbn.com           || planetlab5.clemson.edu         || server=10.42.101.105 ||
     13|| planetlab4.clemson.edu         || plnode2.cip.gatech.edu         || server=10.42.101.101 ||
     14|| plnode1.cip.gatech.edu         || pl5.myplc.grnoc.iu.edu         || server=10.42.101.73  ||
     15|| pl4.myplc.grnoc.iu.edu         || orbitplc2.orbit-lab.org        || server=10.42.101.112 ||
     16|| orbitplc1.orbit-lab.org        || of-planet2.stanford.edu        || server=10.42.101.91  ||
     17|| of-planet1.stanford.edu        || pl02.cs.washington.edu         || server=10.42.101.81  ||
     18|| pl01.cs.washington.edu         || wings-openflow-3.wail.wisc.edu || server=10.42.101.96  ||
     19|| wings-openflow-2.wail.wisc.edu || gardil.gpolab.bbn.com          || server=10.42.101.52  ||
     20
     21== Commands run on each client ==
     22
     23{{{
     24server=<ipaddr>
     25sudo ping -i .006 -s $((1500-8-20)) $server
     26}}}
     27
     28== Results ==
     29
     30Generated from the logs with
     31
     32{{{
     33subnet=101
     34for host in ganel.gpolab.bbn.com planetlab4.clemson.edu plnode1.cip.gatech.edu pl4.myplc.grnoc.iu.edu orbitplc1.orbit-lab.org of-planet1.stanford.edu pl01.cs.washington.edu wings-openflow-2.wail.wisc.edu ; do echo -e "$host:\n\n{{{" ; grep -A 2 statistics pgenigpolabbbncom_plastic$subnet\@$host.log ; echo -e "}}}\n" ; done
     35}}}
     36
     37== Analysis ==
     38
     39''(forthcoming)''
     40
     41= plastic-102 =
     42
     43[PlasticSlices/Experiments#GigaPing GigaPing], using count=100000, and this table of client/server pairs:
     44
     45|| '''client'''                   || '''server'''                   || '''server address''' ||
     46|| sardis.gpolab.bbn.com          || planetlab4.clemson.edu         || server=10.42.102.104 ||
     47|| planetlab5.clemson.edu         || plnode1.cip.gatech.edu         || server=10.42.102.100 ||
     48|| plnode2.cip.gatech.edu         || pl4.myplc.grnoc.iu.edu         || server=10.42.102.72  ||
     49|| pl5.myplc.grnoc.iu.edu         || orbitplc1.orbit-lab.org        || server=10.42.102.111 ||
     50|| orbitplc2.orbit-lab.org        || of-planet2.stanford.edu        || server=10.42.102.91  ||
     51|| of-planet1.stanford.edu        || pl01.cs.washington.edu         || server=10.42.102.80  ||
     52|| pl02.cs.washington.edu         || wings-openflow-2.wail.wisc.edu || server=10.42.102.95  ||
     53|| wings-openflow-3.wail.wisc.edu || bain.gpolab.bbn.com            || server=10.42.102.54  ||
     54
     55== Commands run on each client ==
     56
     57{{{
     58server=<ipaddr>
     59sudo ping -i .006 -s $((1500-8-20)) $server
     60}}}
     61
     62== Results ==
     63
     64Generated from the logs with
     65
     66{{{
     67subnet=102
     68for host in sardis.gpolab.bbn.com planetlab5.clemson.edu plnode2.cip.gatech.edu pl5.myplc.grnoc.iu.edu orbitplc2.orbit-lab.org of-planet1.stanford.edu pl02.cs.washington.edu wings-openflow-3.wail.wisc.edu ; do echo -e "$host:\n\n{{{" ; grep -A 2 statistics pgenigpolabbbncom_plastic$subnet\@$host.log ; echo -e "}}}\n" ; done
     69}}}
     70
     71== Analysis ==
     72
     73''(forthcoming)''
     74
     75= plastic-103 =
     76
     77[PlasticSlices/Experiments#GigaPerfTCP GigaPerf TCP], using port=5103, size=350, and this table of client/server pairs:
     78
     79|| '''client'''                   || '''server'''                   || '''server address''' ||
     80|| of-planet1.stanford.edu        || navis.gpolab.bbn.com           || server=10.42.103.55  ||
     81|| ganel.gpolab.bbn.com           || orbitplc1.orbit-lab.org        || server=10.42.103.111 ||
     82|| pl02.cs.washington.edu         || bain.gpolab.bbn.com            || server=10.42.103.54  ||
     83|| of-planet2.stanford.edu        || pl01.cs.washington.edu         || server=10.42.103.80  ||
     84
     85== One-time prep commands run on each client and server ==
     86
     87{{{
     88sudo yum -y install iperf
     89}}}
     90
     91== Commands run on each server ==
     92
     93{{{
     94server=<ipaddr>
     95nice -n 19 iperf -B $server -p 5103 -s -i 1
     96}}}
     97
     98== Commands run on each client ==
     99
     100{{{
     101server=<ipaddr>
     102nice -n 19 iperf -c $server -p 5103 -t 518400
     103}}}
     104
     105== Results ==
     106
     107Generated with
     108
     109{{{
     110subnet=103
     111for host in of-planet1.stanford.edu ganel.gpolab.bbn.com pl02.cs.washington.edu of-planet2.stanford.edu orbitplc2.orbit-lab.org ; do echo -e "$host:\n\n{{{" ; grep -a -A 5 -B 1 "Client connecting" pgenigpolabbbncom_plastic$subnet\@$host.log ; echo -e "}}}\n" ; done
     112}}}
     113
     114and then edited slightly to remove artifacts (like control characters, my prompt, etc).
     115
     116== Analysis ==
     117
     118''(forthcoming)''
     119
     120= plastic-104 =
     121
     122[PlasticSlices/Experiments#GigaPerfUDP GigaPerf UDP], using port=5104, size=500, rate=100, and this table of client/server pairs:
     123
     124|| '''client'''                   || '''server'''                   || '''server address''' ||
     125|| navis.gpolab.bbn.com           || wings-openflow-2.wail.wisc.edu || server=10.42.104.95  ||
     126|| wings-openflow-3.wail.wisc.edu || orbitplc2.orbit-lab.org        || server=10.42.104.112 ||
     127|| orbitplc1.orbit-lab.org        || pl4.myplc.grnoc.iu.edu         || server=10.42.104.72  ||
     128|| pl5.myplc.grnoc.iu.edu         || gardil.gpolab.bbn.com          || server=10.42.104.52  ||
     129
     130== One-time prep commands run on each client and server ==
     131
     132{{{
     133sudo yum -y install iperf
     134}}}
     135
     136== Commands run on each server ==
     137
     138{{{
     139server=<ipaddr>
     140nice -n 19 iperf -u -B $server -p 5104 -s -i 1
     141}}}
     142
     143== Commands run on each client ==
     144
     145{{{
     146server=<ipaddr>
     147nice -n 19 iperf -u -c $server -p 5104 -t 518400 -b 3M
     148}}}
     149
     150== Results ==
     151
     152Generated with
     153
     154{{{
     155subnet=104
     156for host in navis.gpolab.bbn.com wings-openflow-3.wail.wisc.edu orbitplc1.orbit-lab.org pl5.myplc.grnoc.iu.edu ; do echo -e "$host:\n\n{{{" ; grep -A 10 -B 1 "Client connecting" pgenigpolabbbncom_plastic$subnet\@$host.log ; echo -e "}}}\n" ; done
     157}}}
     158
     159and then edited slightly to remove artifacts (like control characters, my prompt, etc).
     160
     161== Analysis ==
     162
     163''(forthcoming)''
     164
     165= plastic-105 =
     166
     167[PlasticSlices/Experiments#GigaPerfTCP GigaPerf TCP], using port=5105, size=250, and this table of client/server pairs:
     168
     169|| '''client'''                   || '''server'''                   || '''server address''' ||
     170|| wings-openflow-2.wail.wisc.edu || planetlab5.clemson.edu         || server=10.42.105.105 ||
     171|| planetlab4.clemson.edu         || sardis.gpolab.bbn.com          || server=10.42.105.53  ||
     172|| bain.gpolab.bbn.com            || plnode2.cip.gatech.edu         || server=10.42.105.101 ||
     173|| plnode1.cip.gatech.edu         || wings-openflow-3.wail.wisc.edu || server=10.42.105.96  ||
     174
     175== One-time prep commands run on each client and server ==
     176
     177{{{
     178sudo yum -y install iperf
     179}}}
     180
     181== Commands run on each server ==
     182
     183{{{
     184server=<ipaddr>
     185nice -n 19 iperf -B $server -p 5105 -s -i 1
     186}}}
     187
     188== Commands run on each client ==
     189
     190{{{
     191server=<ipaddr>
     192nice -n 19 iperf -c $server -p 5105 -t 518400
     193}}}
     194
     195== Results ==
     196
     197Generated with
     198
     199{{{
     200subnet=105
     201for host in wings-openflow-2.wail.wisc.edu planetlab4.clemson.edu bain.gpolab.bbn.com plnode1.cip.gatech.edu ; do echo -e "$host:\n\n{{{" ; grep -A 5 -B 1 "Client connecting" pgenigpolabbbncom_plastic$subnet\@$host.log ; echo -e "}}}\n" ; done
     202}}}
     203
     204and then edited slightly to remove artifacts (like control characters, my prompt, etc).
     205
     206== Analysis ==
     207
     208''(forthcoming)''
     209
     210= plastic-106 =
     211
     212[PlasticSlices/Experiments#GigaPerfUDP GigaPerf UDP], using port=5106, size=500, rate=100, and this table of client/server pairs:
     213
     214|| '''client'''                   || '''server'''                   || '''server address''' ||
     215|| planetlab5.clemson.edu         || wings-openflow-2.wail.wisc.edu || server=10.42.106.95  ||
     216|| wings-openflow-3.wail.wisc.edu || plnode1.cip.gatech.edu         || server=10.42.106.100 ||
     217|| plnode2.cip.gatech.edu         || ganel.gpolab.bbn.com           || server=10.42.106.51  ||
     218|| gardil.gpolab.bbn.com          || planetlab4.clemson.edu         || server=10.42.106.104 ||
     219
     220== One-time prep commands run on each client and server ==
     221
     222{{{
     223sudo yum -y install iperf
     224}}}
     225
     226== Commands run on each server ==
     227
     228{{{
     229server=<ipaddr>
     230nice -n 19 iperf -u -B $server -p 5106 -s -i 1
     231}}}
     232
     233== Commands run on each client ==
     234
     235{{{
     236server=<ipaddr>
     237nice -n 19 iperf -u -c $server -p 5106 -t 518400 -b 3M
     238}}}
     239
     240== Results ==
     241
     242Generated with
     243
     244{{{
     245subnet=106
     246for host in planetlab5.clemson.edu wings-openflow-3.wail.wisc.edu plnode2.cip.gatech.edu gardil.gpolab.bbn.com ; do echo -e "$host:\n\n{{{" ; grep -A 10 -B 1 "Client connecting" pgenigpolabbbncom_plastic$subnet\@$host.log ; echo -e "}}}\n" ; done
     247}}}
     248
     249and then edited slightly to remove artifacts (like control characters, my prompt, etc).
     250
     251== Analysis ==
     252
     253''(forthcoming)''
     254
     255= plastic-107 =
     256
     257[PlasticSlices/Experiments#GigaWeb GigaWeb], using count=30, port=4107, file=substrate.doc, md5sum=d4fcf71833327fbfef98be09deef8bfb, and this table of client/server pairs:
     258
     259|| '''client'''                   || '''server'''                   || '''server address''' ||
     260|| planetlab5.clemson.edu         || pl4.myplc.grnoc.iu.edu         || server=10.42.107.72  ||
     261|| pl5.myplc.grnoc.iu.edu         || plnode2.cip.gatech.edu         || server=10.42.107.101 ||
     262|| plnode1.cip.gatech.edu         || pl02.cs.washington.edu         || server=10.42.107.81  ||
     263|| pl01.cs.washington.edu         || planetlab4.clemson.edu         || server=10.42.107.104 ||
     264
     265== One-time prep commands run on each server ==
     266
     267{{{
     268sudo yum -y install pyOpenSSL patch
     269cd
     270rm -rf ~/gigaweb
     271mkdir -p ~/gigaweb/docroot
     272
     273cd ~/gigaweb
     274wget http://code.activestate.com/recipes/442473-simple-http-server-supporting-ssl-secure-communica/download/1/ -O httpsd.py
     275wget http://groups.geni.net/geni/attachment/wiki/PlasticSlices/Experiments/httpsd.py.patch?format=raw -O httpsd.py.patch
     276patch httpsd.py httpsd.py.patch
     277rm httpsd.py.patch
     278
     279cd ~/gigaweb/docroot
     280wget http://groups.geni.net/geni/attachment/wiki/DeliverablePage/Spiral1%20substrate%20catalog.doc?format=raw -O substrate.doc
     281
     282cd ~/gigaweb
     283openssl genrsa -passout pass:localhost -des3 -rand /dev/urandom -out localhost.localdomain.key 1024
     284openssl req -subj /CN=localhost.localdomain -passin pass:localhost -new -key localhost.localdomain.key -out localhost.localdomain.csr
     285openssl x509 -passin pass:localhost -req -days 3650 -in localhost.localdomain.csr -signkey localhost.localdomain.key -out localhost.localdomain.crt
     286openssl rsa -passin pass:localhost -in localhost.localdomain.key -out decrypted.localhost.localdomain.key
     287mv -f decrypted.localhost.localdomain.key localhost.localdomain.key
     288cat localhost.localdomain.key localhost.localdomain.crt > localhost.localdomain.pem
     289rm localhost.localdomain.key localhost.localdomain.crt localhost.localdomain.csr
     290}}}
     291
     292== Commands run on each server ==
     293
     294{{{
     295server=<ipaddr>
     296cd ~/gigaweb/docroot
     297python ../httpsd.py $server 4107
     298}}}
     299
     300== Commands run on each client ==
     301
     302{{{
     303server=<ipaddr>
     304cd
     305rm -rf ~/gigaweb
     306mkdir ~/gigaweb
     307cd ~/gigaweb
     308while true ; do wget --no-check-certificate https://$server:4107/substrate.doc -O substrate.doc ; echo -n "md5sum: " ; md5sum substrate.doc ; rm substrate.doc ; done
     309}}}
     310
     311== Results ==
     312
     313Since we transfered the file to each client hundreds (if not thousands) of times, we didn't save all the copies, but we did generate an MD5 checksum after each download, and log that, so we ran some grep commands on the logs to count the number of total checksums printed in each log, and the number where the checksum had the expected value.
     314
     315Generated with
     316
     317{{{
     318subnet=107
     319for host in planetlab5.clemson.edu pl5.myplc.grnoc.iu.edu plnode1.cip.gatech.edu pl01.cs.washington.edu ; do echo -e -n "$host:\n\n{{{\ntotal md5sum lines: " ; grep "md5sum:" pgenigpolabbbncom_plastic$subnet\@$host.log | wc -l ; echo -e -n "matching md5sum lines: " ; grep "md5sum: d4fcf71833327fbfef98be09deef8bfb" pgenigpolabbbncom_plastic$subnet\@$host.log | wc -l ; echo -e "}}}\n" ; done
     320}}}
     321
     322== Analysis ==
     323
     324''(forthcoming)''
     325
     326= plastic-108 =
     327
     328[PlasticSlices/Experiments#GigaWeb GigaWeb], using count=40, port=4108, file=substrate.doc, md5sum=d4fcf71833327fbfef98be09deef8bfb, and this table of client/server pairs:
     329
     330|| '''client'''                   || '''server'''                   || '''server address''' ||
     331|| wings-openflow-3.wail.wisc.edu || of-planet2.stanford.edu        || server=10.42.108.91  ||
     332|| of-planet1.stanford.edu        || orbitplc1.orbit-lab.org        || server=10.42.108.111 ||
     333|| orbitplc2.orbit-lab.org        || pl5.myplc.grnoc.iu.edu         || server=10.42.108.73  ||
     334|| pl4.myplc.grnoc.iu.edu         || wings-openflow-2.wail.wisc.edu || server=10.42.108.95  ||
     335
     336== One-time prep commands run on each server ==
     337
     338{{{
     339sudo yum -y install pyOpenSSL patch
     340cd
     341rm -rf ~/gigaweb
     342mkdir -p ~/gigaweb/docroot
     343
     344cd ~/gigaweb
     345wget http://code.activestate.com/recipes/442473-simple-http-server-supporting-ssl-secure-communica/download/1/ -O httpsd.py
     346wget http://groups.geni.net/geni/attachment/wiki/PlasticSlices/Experiments/httpsd.py.patch?format=raw -O httpsd.py.patch
     347patch httpsd.py httpsd.py.patch
     348rm httpsd.py.patch
     349
     350cd ~/gigaweb/docroot
     351wget http://groups.geni.net/geni/attachment/wiki/DeliverablePage/Spiral1%20substrate%20catalog.doc?format=raw -O substrate.doc
     352
     353cd ~/gigaweb
     354openssl genrsa -passout pass:localhost -des3 -rand /dev/urandom -out localhost.localdomain.key 1024
     355openssl req -subj /CN=localhost.localdomain -passin pass:localhost -new -key localhost.localdomain.key -out localhost.localdomain.csr
     356openssl x509 -passin pass:localhost -req -days 3650 -in localhost.localdomain.csr -signkey localhost.localdomain.key -out localhost.localdomain.crt
     357openssl rsa -passin pass:localhost -in localhost.localdomain.key -out decrypted.localhost.localdomain.key
     358mv -f decrypted.localhost.localdomain.key localhost.localdomain.key
     359cat localhost.localdomain.key localhost.localdomain.crt > localhost.localdomain.pem
     360rm localhost.localdomain.key localhost.localdomain.crt localhost.localdomain.csr
     361}}}
     362
     363== Commands run on each server ==
     364
     365{{{
     366server=<ipaddr>
     367cd ~/gigaweb/docroot
     368python ../httpsd.py $server 4108
     369}}}
     370
     371== Commands run on each client ==
     372
     373{{{
     374server=<ipaddr>
     375cd
     376rm -rf ~/gigaweb
     377mkdir ~/gigaweb
     378cd ~/gigaweb
     379while true ; do wget --no-check-certificate https://$server:4108/substrate.doc -O substrate.doc ; echo -n "md5sum: " ; md5sum substrate.doc ; rm substrate.doc ; done
     380}}}
     381
     382== Results ==
     383
     384Since we transfered the file to each client hundreds (if not thousands) of times, we didn't save all the copies, but we did generate an MD5 checksum after each download, and log that, so we ran some grep commands on the logs to count the number of total checksums printed in each log, and the number where the checksum had the expected value.
     385
     386Generated with
     387
     388{{{
     389subnet=108
     390for host in wings-openflow-3.wail.wisc.edu of-planet1.stanford.edu orbitplc2.orbit-lab.org pl4.myplc.grnoc.iu.edu ; do echo -e -n "$host:\n\n{{{\ntotal md5sum lines: " ; grep "md5sum:" pgenigpolabbbncom_plastic$subnet\@$host.log | wc -l ; echo -e -n "matching md5sum lines: " ; grep "md5sum: d4fcf71833327fbfef98be09deef8bfb" pgenigpolabbbncom_plastic$subnet\@$host.log | wc -l ; echo -e "}}}\n" ; done
     391}}}
     392
     393== Analysis ==
     394
     395''(forthcoming)''
     396
     397= plastic-109 =
     398
     399[PlasticSlices/Experiments#GigaNetcat GigaNetcat], using count=25, port=6109, file=substrate.doc, and this table of client/server pairs:
     400
     401|| '''client'''                   || '''server'''                   || '''server address''' ||
     402|| navis.gpolab.bbn.com           || pl5.myplc.grnoc.iu.edu         || server=10.42.109.73  ||
     403|| pl4.myplc.grnoc.iu.edu         || pl02.cs.washington.edu         || server=10.42.109.81  ||
     404|| pl01.cs.washington.edu         || planetlab5.clemson.edu         || server=10.42.109.105 ||
     405|| planetlab4.clemson.edu         || of-planet1.stanford.edu        || server=10.42.109.90  ||
     406|| of-planet2.stanford.edu        || wings-openflow-3.wail.wisc.edu || server=10.42.109.96  ||
     407|| wings-openflow-2.wail.wisc.edu || ganel.gpolab.bbn.com           || server=10.42.109.51  ||
     408
     409== One-time prep commands run on each server ==
     410
     411{{{
     412sudo yum -y install nc
     413mkdir -p ~/giganetcat
     414cd ~/giganetcat
     415wget http://groups.geni.net/geni/attachment/wiki/DeliverablePage/Spiral1%20substrate%20catalog.doc?format=raw -O substrate.doc
     416}}}
     417
     418== One-time prep commands run on each client ==
     419
     420{{{
     421sudo yum -y install nc
     422}}}
     423
     424== Commands run on each server ==
     425
     426{{{
     427server=<ipaddr>
     428cd ~/giganetcat
     429while true ; do nc -l $server 6109 < substrate.doc ; done
     430}}}
     431
     432== Commands run on each client ==
     433
     434{{{
     435server=<ipaddr>
     436cd
     437rm -rf ~/giganetcat
     438mkdir ~/giganetcat
     439cd ~/giganetcat
     440while true ; do nc $server 6109 > substrate.doc ; echo -n "$(date "+%F %T")  " ; md5sum substrate.doc ; rm substrate.doc ; done
     441}}}
     442
     443== Results ==
     444
     445Since we transfered the file to each client hundreds (if not thousands) of times, we didn't save all the copies, but we did generate an MD5 checksum after each download, and log that, so we ran some grep commands on the logs to count the number of total checksums printed in each log, and the number where the checksum had the expected value.
     446
     447Generated with
     448
     449{{{
     450subnet=109
     451for host in navis.gpolab.bbn.com pl4.myplc.grnoc.iu.edu pl01.cs.washington.edu planetlab4.clemson.edu of-planet2.stanford.edu wings-openflow-2.wail.wisc.edu ; do echo -e -n "$host:\n\n{{{\ntotal md5sum lines: " ; grep "substrate.doc" pgenigpolabbbncom_plastic$subnet\@$host.log | wc -l ; echo -e -n "matching md5sum lines: " ; grep "d4fcf71833327fbfef98be09deef8bfb  substrate.doc" pgenigpolabbbncom_plastic$subnet\@$host.log | wc -l ; echo -e "}}}\n" ; done
     452}}}
     453
     454== Analysis ==
     455
     456''(forthcoming)''
     457
     458= plastic-110 =
     459
     460[PlasticSlices/Experiments#GigaNetcat GigaNetcat], using count=25, port=6110, file=substrate.doc, and this table of client/server pairs:
     461
     462|| '''client'''                   || '''server'''                   || '''server address''' ||
     463|| gardil.gpolab.bbn.com          || pl01.cs.washington.edu         || server=10.42.110.80  ||
     464|| pl02.cs.washington.edu         || of-planet1.stanford.edu        || server=10.42.110.90  ||
     465|| of-planet2.stanford.edu        || orbitplc2.orbit-lab.org        || server=10.42.110.112 ||
     466|| orbitplc1.orbit-lab.org        || pl4.myplc.grnoc.iu.edu         || server=10.42.110.72  ||
     467|| pl5.myplc.grnoc.iu.edu         || plnode1.cip.gatech.edu         || server=10.42.110.100 ||
     468|| plnode2.cip.gatech.edu         || sardis.gpolab.bbn.com          || server=10.42.110.53  ||
     469
     470== One-time prep commands run on each server ==
     471
     472{{{
     473sudo yum -y install nc
     474mkdir -p ~/giganetcat
     475cd ~/giganetcat
     476wget http://groups.geni.net/geni/attachment/wiki/DeliverablePage/Spiral1%20substrate%20catalog.doc?format=raw -O substrate.doc
     477}}}
     478
     479== One-time prep commands run on each client ==
     480
     481{{{
     482sudo yum -y install nc
     483}}}
     484
     485== Commands run on each server ==
     486
     487{{{
     488server=<ipaddr>
     489cd ~/giganetcat
     490while true ; do nc -l $server 6110 < substrate.doc ; done
     491}}}
     492
     493== Commands run on each client ==
     494
     495{{{
     496server=<ipaddr>
     497cd
     498rm -rf ~/giganetcat
     499mkdir ~/giganetcat
     500cd ~/giganetcat
     501while true ; do nc $server 6110 > substrate.doc ; echo -n "$(date "+%F %T")  " ; md5sum substrate.doc ; rm substrate.doc ; done
     502}}}
     503
     504== Results ==
     505
     506Since we transfered the file to each client hundreds (if not thousands) of times, we didn't save all the copies, but we did generate an MD5 checksum after each download, and log that, so we ran some grep commands on the logs to count the number of total checksums printed in each log, and the number where the checksum had the expected value.
     507
     508Generated with
     509
     510{{{
     511subnet=110
     512for host in gardil.gpolab.bbn.com pl02.cs.washington.edu of-planet2.stanford.edu orbitplc1.orbit-lab.org pl5.myplc.grnoc.iu.edu plnode2.cip.gatech.edu ; do echo -e -n "$host:\n\n{{{\ntotal md5sum lines: " ; grep "substrate.doc" pgenigpolabbbncom_plastic$subnet\@$host.log | wc -l ; echo -e -n "matching md5sum lines: " ; grep "d4fcf71833327fbfef98be09deef8bfb  substrate.doc" pgenigpolabbbncom_plastic$subnet\@$host.log | wc -l ; echo -e "}}}\n" ; done
     513}}}
     514
     515== Analysis ==
     516
     517''(forthcoming)''