Академический Документы
Профессиональный Документы
Культура Документы
HTTP Analysis
Abhay Mitra, Himanshu Gangwar, Ritesh Baldva - 5 October 2015
Question 4
(a) The parameters can be changed by passing arguments while invoking the script:
(i) Number of TCP connections (n1 __ )
(ii) Number of objects per connection (n2 __ )
(iii) Max batch for pipelining (n3 __ )
(iv) Maximum number of parallel connections (n4 __ )
(v) Proxy address (if any) (proxy __ )
It can be checked by running python download.py help
(b) The python sockets library was used during the implementation.
(c) The program was run with the same parameters values discovered in part 3.
Over the Hostel LAN Network
Website
http://www.nytimes.com/
19.732
8.87
http://www.vox.com/a/mapsexplain-the-middle-east
35.352
24.26
http://www.nytimes.com/
19.732
7.15
http://www.vox.com/a/mapsexplain-the-middle-east
35.352
3.77
Note that the actual time taken by the browser is actually greater than the time taken
by our program. This is cause of the application layer implemented through the browser
performs various other activities like providing cookies and updating the cache.
Rendering of the data on the screen is also incorporated, more so in vox where only data
above the fold was downloaded. The idle time and the blocking time are additional
factors in the page load time. Also note that pipelining reduces the time taken by the
program by a large factor. The page load time on Wifi is lower as compared to Hostel due
to larger bandwidth on the Wifi.
(d) In this part we usually experiment on the load time for the vox.
Case 1 : Varying the Number of TCP connections
N1 (TCP connections)
20
4.502
22
3.77
24
3.92
26
3.890
The minimum time was observed at the original parameter value. No significant
change was observed, though theoretically it higher number of connections should lead to
a faster load but then there always exist the bottlenecks in the network which we can not
exceed.
Case 2 : Varying the Number of objects per connection
N2 (Objects per connection)
4.059
10
3.63
12
5.01
14
4.99
4.25
3.61
3.48
10
3.28
12
3.25
14
4.05
4.52
10
3.70
12
3.28
14
4.45
The minima were observed across the parameters that were equal or nearly equal to
the values in the previous question. A certain trend was not observed for them.
Case 5 : Varying the timeout for every object
Socket Timeout Value
4.16
10
3.66
15
4.36
20
4.16
No specific trend except the min values at the parameters from Q3.
Some combined trends observations
N1
N2
N3
N4
15.88
5.90
10
10
10
10
3.90
(e) If the size of the object is known beforehand, then several TCP connections can be
opened for the objects to be downloaded it parts by parts and then recombining them
after being received to finally render on the application.
Also if we get to know that the network is congested then we can limit the number
of our TCP connections as doing this will reduce the probability of packets getting
dropped. So the cap on max number of TCP connections can be decreased for better
results and higher rates.