Вы находитесь на странице: 1из 5

Assignment 2

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

Time Taken (Part III) (sec)

Time Taken (Part IV) (sec)

http://www.nytimes.com/

19.732

8.87

http://www.vox.com/a/mapsexplain-the-middle-east

35.352

24.26

Over Wifi Network (SIT)


Website

Time Taken (Part III) (sec)

Time Taken (Part IV) (sec)

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)

Time Taken (sec)

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)

Time Taken (sec)

4.059

10

3.63

12

5.01

14

4.99

Again there was a minima observed at Objects per connection : 10.


Case 3 : Varying the number of parallel connections
N4 (Number of parallel connections)

Time Taken (sec)


4

4.25

3.61

3.48

10

3.28

12

3.25

14

4.05

Apparently the time taken reduced as I increased the number of parallel


connections. But it again reached the minima.

Case 4 : Varying the batch size during pipelining


N3 (Batch size during pipelining)

Time Taken (sec)

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

Time Taken (sec)

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

Time Taken (sec)

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.

Вам также может понравиться