How does non persistent parallel HTTP connections work?

Thread Starter


Joined Jul 19, 2020
This figure is the one given in not my textbook mentioned in syllabus but the local author book that many teachers use to follow while checking exam papers. If you don’t write according to what is written in these books, they won’t even give you 0.5 marks. So I want to learn this figure rather than others.

-> first RTT for starting TCP connection,
-> second for requesting the base file with elements not loaded.

What are third and fourth RTTs for?

I for one, don’t think there should be any RTTs needed, instead only object requests should be sent in parallel(like in figure shown below in http the definitive guide figure)

My attempt at how non persistent parallel connections should work-:
I made this figure how I think non persistent parallel connection should be, can you verify it and if wrong help me make a new one?

explanations of this figure-:

1) initiate tcp connection for base file

2) request-response RTT for base file

3) initiate tcp connection for element1 as soon as the RTT of initiation completes, send request for element1-> then its response comes.

4) initiate tcp connection for element2 as soon as the RTT of initiation completes, send request for element2-> then its response comes.

5)then start closing tcp connections for base file, element1, then element2 consecutively.

Rest of the post could be ignored as well. But it can help to understand my confusion in a better way.

HTTP Definitive guide figure discussion-:
What does connect-1 means in this figure below? Does it mean just starting the connection? Why is it not including the terminating of connection? Are we ignoring end of connection for each request-response in parallel connection?(If you watch the serial connection, it is ignoring tcp connection termination even in serial connections)
Source-: HTTP the definitive guide.
Both of the below figures I am assuming to be non persistent connections.

How non persistent(serial) connections should be working-:

But Isn’t this how non persistent(serial) connections work?
-> tcp connection establishment 1 RTT
-> request response A 1 RTT
-> tcp connection close 1 RTT

Now for request response B
-> tcp connection establishment 1 RTT
-> request response B 1 RTT
-> tcp connection close 1 RTT

A source that confirms this-:

But some sources are writing this-:

So in this case there will be 1 less RTT for each file transfer i.e connection close RTT isn’t considered. How is this alright? The first one that I said and this is totally different. ( I think I get this now. It is just calculating response time for n objects rather than total RTTs)