Transport Control Protocol, TCP, is used for reliable end-to-end transport of data between endpoints on packet-switched networks. TCP is a connection-oriented protocol and is designed to support multi-network applications. On one side, TCP connects to user or application processes. On the other side, TCP connects to the Internet Protocol. The process side interface provide calls to open and close connection and to send and receive data. TCP's IP is unspecified. It is assumed that there exist mechanisms that all the two protocols to pass information between them. The aforementioned mechanisms are assumed to be provided by the Internet Protocol.
The Transport Control Protocol provides the following services:
Basic Data Transfer - provided between end-points and also provides for a push function which allows the sender to "push" all the octets to be sure that all data has arrived up to that point.
Reliability - provided so that system can recover from damaged data. It achieves this through numbering each octet of data and requiring the receiver to verify its receipt. The numbering system also enables the receiver to place the octets in proper order. Damage is also handled through a checksum checked by the receiver, who discards damaged octets.
Flow Control - provided so that the receiver and can control the amount of data sent by the sender. This is accomplished by the receiver sending back a number with the acknowledgement of how many more octets the sender can send until told by the receiver again.
Multiplexing - provides the concept of sockets, which allow multiple processes on a host machine to use a connection.
Connections - provided to ensure TCP's reliability, ensures that a connection is created and maintain between to endpoints.
Precedence and Security - provided so that users can indicate the level of security and precedence of their communications.
Provided by Sinha, S. 1998, below is an image of the TCP packet header:
As can be seen from above diagram, the Transport Control Protocol's 20 byte header provides 16-bit source port number, 16-bit destination port number, 32-bit sequence number, 32 bit acknowledgment number, 4-bit header length, 6-bit reserved, 6-bit flags field, 16-bit window size, 16-bit TCP checksum, 16-bit urgent pointer fields. The 6-bit flags field support Syn & Fin to establish and end connections, ACK to let receive know to acknowledge receipt, URG to signify urgent data is carried within, PUSH to let system know that the sender has invoked the push function, and RESET to let the sender know that the receiver is confused and wants to end the connection.
Provided by Sinha S. 1998, below is an diagram of a typical TCP connection between to end-points:
As can be seen from the above image, TCP is connection oriented and provides a reliable connection between two end-points.
align="center">REFERENCES
Sinha, S. (1998). A TCP Tutorial. Retrieved August 19, 2009, from http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html
Postel, J. (1981, September). Internet Control Message Protocol - DARPA Internet Program Protocol Specification. RFC 793. University of Southern California/Information Sciences Institute.
No comments:
Post a Comment