Changes between Initial Version and Version 1 of PlasticSlices/Continuation/Template


Ignore:
Timestamp:
03/07/12 10:54:25 (12 years ago)
Author:
Josh Smift
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PlasticSlices/Continuation/Template

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