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
HTTPOverSCTP
repo - switch to
multistream
branch make
- put the
phttpget
binary in thepReplay
directory - run pReplay with
phttpget
option
https://github.com/NEAT-project/HTTPOverSCTP
BRANCH: multistream
tested with FreeBSD and Linux
- checkout the
thttpd
repo - switch to the
multistream
branch ./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