TCP is defined in the RFC 793 and defines a reliable, connection orientated full duplex byte stream for a user process. TCP creates a CONNECTION orientated service by contacting the end system and establishing a set of guidelines both can support. Such agreements as how much data segments can be transferred before an acknowledgement are received. TCP takes large blocks of data coming from upper layers and segments them. Then it adds numbers to the segments so the end system can sequence them at arrival and assemble the original block before sending it to the upper layer. When TCP creates a connection between two end systems, it is called a VIRTUAL CIRCUIT. This virtual circuit is created at the time the one system needs to send a data stream to the end system and takes it down when the data transfer is completed. The three phases of the TCP are CONNECTION ESTABLISHMENT CONNECTION MAINTENANCE CONNECTION TIREDOWN TCP is a reliable, connection oriented, and byte-stream protocol. It provides reliability with a mechanism called Positive Acknowledgement with retransmission(PAR). The following diagram shows the details about the header.
TCP Header contain the following data information:
Source port address Defines the application program in the source computer Destination port address Defines the application program in the destination computer Sequence number A stream of data from the application program may be divided into two or more TCP segments. The sequence number field shows the position Acknowledge number This is valid only if the ACK bit in the control field is set. This number is used to acknowledge the receipt of data from the other communication device. The number defines the byte sequence number that is next expected. Header length
Defines the header length
Reserved A six-bit field is reserved for future use. Control fields URG - Urgent bit is set to validate the urgent pointer field ACK - when set validates the acknowledgement number field PSH - Used to inform the sender that a higher throughput is needed RST - Used to reset the connection, when there is confusion in the sequence Numbers SYN - Used for sequence number synchronization in three types of segments: connection request, connection confirmation and confirmation acknowledgement FIN - Used in connection termination in three types of segments : termination request, termination confirmation and acknowledgement of termination confirmation Window size Defines the size of the sliding window Checksum Used in error detection Urgent pointer Its value is valid only when the URG field is set. This pointer defines the end of urgent data and the start of normal data. Options and padding Optional field in which used to convey additional information to the receiver or for alignment purpose.
Azzi, R., Fix, D. S. R., Keller, F. S., & Rocha e Silva, M. I. (1964) - Exteroceptive Control of Response Under Delayed Reinforcement. Journal of The Experimental Analysis of Behavior, 7, 159-162.