pReplay replays the dependency graph. It starts from the first activity which is loading the root html. Then according to the graph, it it encounters a network activity, it makes a request for the corresponding url, or if it encounters a computation activity, it waits for a specific amount of time (mentioned in the graph). Once a particular activity is finshed it checks whether it should trigger dependent activities based on whether all activities that a dependent activity depends on are finished. pReplay keeps walking through the dependency graph this way until all activities in the dependency graph have been visited.
./pReplay server testfile [http|https|http2|phttpget] [max-connections] [cookie-size]
server: DNS name or IP addresstestfile: relative path to test file in json formatprotocol:http: http 1.1https: http 1.1 with SSLhttp2: http 2phttpget: requests are handled by PHTTPGET. PHTTPGET has to be started seperately
max-connections: maximum amount of concurrent connectionscookie-size: size of cookie - works with http1 only
- checkout the
HTTPOverSCTPrepo - switch to
multistreambranch make- put the
phttpgetbinary in thepReplaydirectory - run pReplay with
phttpgetoption
https://github.com/NEAT-project/HTTPOverSCTP
BRANCH: multistream
tested with FreeBSD and Linux
- checkout the
thttpdrepo - switch to the
multistreambranch ./configure+make+make install/usr/local/sbin/thttpd -C /usr/local/www/thttpd_config
https://github.com/nplab/thttpd/
BRANCH: multistream
Sample thttpd_config:
dir=/usr/local/www/data
cgipat=/cgi-bin/*
chroot
logfile=/usr/local/www/logs/thttpd_log
pidfile=/var/run/thttpd.pid
max_age=0
tested with FreeBSD
pReplay has been tested with curl-7.47.1