TCP(Transmission Control Protocol)
The Transmission Control Protocol (TCP) is responsible for reliable end to end delivery of segments of information.
Segments is the term that is used to describe the data that is transmitted and received at the Transport level of the OSI model where TCP resides.
TCP also redirects the data to the appropriate which port (upper level service) that is required.
The reliable end to end delivery of data is accomplished by:
Segments are acknowledged to the source when received by the destination.
A sliding window is used to enable unacknowledged segments on the "wire" in order to speed up transmission rates
Sequencing of segments
Data is broken up into segments that are numbered (sequenced) when transmitted.
The destination TCP layer keeps track of the received segments and places them in the proper order (resequences).
Requesting retransmission of lost data
If a segment is lost in transmission (missing sequence number).
The destination will timeout and request that all segments starting at the lost segment be retransmitted.
Segments are checked for data integrity when received using a 32 bit CRC check.
The redirection of data to the upper level service is accomplished by using Source and Destination Port numbers.
Multiple connections to the same service is allowed.
For example, you may have many users (clients) connected to a single web server (http is normally port 80).
Each client will have a unique Port number assigned (typically above 8000) but the web server will only use Port 80.