The TCP establishes a connection between the source and the destination.

My questions are:

  1. What do we mean by end-to-end communication?

  2. What is the role of that connection?Couldn't reliability be assurred without the connection?

  3. That connection is not physical,in contrast to LLC conection.The TCP connection only refers to the end hosts,while LLC keeps a physical connection up from the hosts involved in the route.Is that concept correct?

  4. "All packets will be sent from the same connection" was a statement i've seen about how the segments are going to be delivered.This doesn't mean the are going to go to their destination from the same route(as they encapsulate into IP packets),so,what do is it trying to say?

    5.When is TCP going to perform segmentation?

  • 2
    You should really read RFC 793. It explains everything, including: "The reliability and flow control mechanisms described above require that TCPs initialize and maintain certain status information for each data stream. The combination of this information, including sockets, sequence numbers, and window sizes, is called a connection. Each connection is uniquely specified by a pair of sockets identifying its two sides." – Ron Maupin Feb 6 '19 at 5:58
  • @RonMaupin I have the impression that parts 1-4 of the question are not about TCP in particular but about transport protocols in general. RFC 793 however seems to assume that the reader already knows the concept of a transport protocol. This is why I wrote an answer about parts 1-4 of the question. – Martin Rosenau Feb 6 '19 at 7:31
  • @MartinRosenau the question seems to be confusing several things, which is why I made a comment, not an answer. I figured that if he straightens out the idea of TCP, then the rest may fall in place. – Ron Maupin Feb 6 '19 at 7:36

What do we mean by end-to-end communication?

Communication between two computers in the internet.

Note that the information stored in the TCP part of an IP packet is ignored by the routers between the two computers (at least if NAT is not used).

What is the role of that connection?

To understand this, you'll first have to think about how the internet works:

IP packets are sent from one computer to another computer. The IP protocol itself does not have any possibility for the sending computer to find out if the packet really reached the destination computer.

IP packets can be routed in a way that the second packet arrives at the destination computer before the first one if two packets are sent.

The length of an IP packet is limited; in the worst case the limit is about 500 bytes (payload without headers) for IPv4 and about 1200 bytes for IPv6. In the "real-world" a limit of about 1500 bytes is often found.

Now think about transmitting some text (similar to an E-Mail) of 3000 bytes size between two computers that allow an IP packet size of 1500 bytes. You'll have to send that text in two IP packets. The receiving computer will not know the order of the two parts of the text and it will not know if the text received is complete because a third packet may have been lost.

The sending computer will not know if the receiving computer has received the two parts of the text in the correct order and it will also not know if one of the two parts has been lost.

If you send two texts, the receiver won't know if you sent one large text of 6000 bytes size or two texts of 3000 bytes size.

A transport protocol (such as TCP) will add some extra information to the IP packet that contains all the necessary information for the receiver. Many transport protocols (this is also true for TCP) will send packets back to the sender so that the sender is informed about the fact that the message has been received correctly.

A "connection" provided by some transport protocol allows you to exchange data between two devices in some network the same way data is exchanged between two telephones during a telephone connection:

If a large amount of data (or voice) is "sent" by one telephone, it will be "received" by the other telephone.

Couldn't reliability be assured without the connection?

This would mean that you would have to use another transport protocol than TCP. Such protocols exist (especially in non-IP networks; example: TPX).

However with a very high probability such a protocol will also work in a way that you can call this a "connection".

So you would only replace TCP by another protocol that works similarly.

That connection is not physical, ... Is that concept correct?

Right. The word "connection" in the context of transport protocols has a totally different meaning than the word "connection" in the context of OSI layer-1.

"All packets will be sent from the same connection" ... what do is it trying to say?

Without reading the rest of the text this is difficult to say.

But think about the following situation:

You open your web browser twice and in both windows you open the URL "stackexchange.com". Because your provider's network is currently overloaded, loading the web site takes a long time.

In this case each web browser window will establish a TCP connection to the server "stackexchange.com". This connection will be active until loading the web site has been finished.

In other words: There are two TCP connections between your computer and the server the same time!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.