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 seperatelymax-connections
: maximum amount of concurrent connectionscookie-size
: size of cookie - works with http1 onlyHTTPOverSCTP
repomultistream
branchmake
phttpget
binary in the pReplay
directoryphttpget
optionhttps://github.com/NEAT-project/HTTPOverSCTP
BRANCH: multistream
tested with FreeBSD and Linux
thttpd
repomultistream
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
## info
pReplay has been tested with curl-7.47.1