Web Science/Part1: Foundations of the web/Transmission Control Protocol/End to end principle and connection oriented communication/script
Problems solved by the transport control protocol
Let’s assume that we have a computer connected to the Internet. You have a large file, for example picture or video, which you want to transfer to another computer on the Internet. As we know, the largest possible packages are about 65kB (IP) and even those packages won’t fit into Ethernet frames that have size of 1.5kB. Most our files are much bigger.
So what has to happen is that you have to split the file into smaller chunks that will:
- Fit into IP packages
- Send independently
But if you do so several problems arrive:
1) The receiver has to reassemble the received frames in the correct order. As different packages might take the different routes the order could change and decentralize. Sequence numbers will help to fight this problem (it will be discussed later).
2) While the receiver receives the package from 2 different senders or even 2 different applications from the same sender the packages have to be separately reassembled. Port numbers were introduced to fight this problem (it will be discussed later).
As Internet and Ethernet protocol do not make sure that data is really successfully delivered the TCP informs sender that packages arrive. Acknowledgment flags have been introduced to battle this problem.
3) The sender and the receiver could on networks with different connection speed. So the faster network can easily overload the slower network with data that is delivered through Internet that is delivered to the slower network. Windowing was invented in order to:
- Create flow control
- Solve network speed issues
For all of these things an important concept of transmission control protocol is End to end principle. While solving all these problems the routers in between and network are just transferring data as they had been told. It’s just the sender and the receiver that negotiate the problem handling.
--Jane Kruch (discuss • contribs) 16:34, 3 November 2013 (UTC)