TCP/IP abbreviation means Transmission Control Protocol/Internet Protocol - this is fixed standard of data transmissions between two hosts (LAN connected computers) of any platform or network type. TCP/IP is that bridge that connects all network hosts together in complete web. That's why it get its popularity and became main network standard worldwide.
TCP/IP research was financed in 1970 years by ARPA (Advanced Research Project Agency) - USA government's special department. Basically it was conceived as general standard that will unit all networks in a big web (internetwork). So that Internet was created by transformation existing that time ARPAnet in worldwide TCP/IP network. The term TCP/IP connected with two protocols: TCP and IP. But TCP/IP contains not only these two protocols. It's the family of all protocols that cooperates with IP protocol. This is TCP, SMTP, FTP and many others.
So, why do these protocols so close connected?
At first let's tell some words about IP protocol. Its main objective is network routing. It transfers data on rote to recipients. In other words IP protocol is needed for transporting data from point A to point B. But IP protocol is datagram based protocol that's why it doesn't guarantee safety of sending data while transporting (it can be deformed because of handicaps on channel). Reliability of transporting data using IP protocol provides protocols of higher level. Here information about basics of them.
TCP - Transmission Control Protocol. It is engaged in transfer of great volumes of data on a network by using the IP protocol, dividing them in parts and again collecting together in the end of a route. At sending using TCP/IP data is coded and packing in TCP-packages that then there was an opportunity to restore them at unpacking in case of their damage. There are whole sciences about such coding. A simple example of a safety of a TCP-package is check on parity or storage of a checksum in the TCP header. At a premise of data in a TCP envelope the control sum which enters the name in TCP header is calculated. If at reception anew calculated sum does not coincide with that that is specified on an envelope then data have been lost or deformed while transporting, and protocol will demands transfer of this package anew.
Thus, for work under this protocol TCP modules should be established both at the addressee, and at the sender of such package. In most cases the TCP package is sent in one IP datagram. But it's happens that TCP divides a segment on some datagrams. Differently, TCP does not keep borders of records during transfer but on arrival data will be collected together in correct sequence.
TCP demands from the addressee of acknowledgement of arrival of the data. It uses timeouts and repeated transfers for maintenance of safe delivery. The sender is authorized to transfer a quantity of data, not waiting acknowledgement of reception before the sent data.
Thus, between the sent and confirmed data there is "window" already sent, but still not confirmed data. The number of bytes which can be transferred without acknowledgement is called the size of a window (this size is established in starting files of software). TCP is the bidirectional report and data can be transferred on it in two directions simultaneously, due to this acknowledgement of acceptance of data go together with the data going during this moment in opposite direction.
Such opportunities TCP are given not simply so. Its realization demands considerable productivity from the machine and the high throughput of a network.
So, TCP protocol provides the guaranteed delivery with an establishment of logic connection in the form of byte streams. It releases applied processes from necessity to use timeouts and repeated transfers for maintenance of reliability. The most typical processes that use TCP are ftp and telnet. Besides system X-Windows uses TCP. However there are cases when accuracy of the information is not so necessary than speed of transfer (for example in multimedia translations). In such cases another data send protocol is used.
UDP - User Datagram Protocol. It comes in the stead TCP when we don't worry of accuracy transferred data. This report realizes a datagram method of data transmission.
Datagram is the package transferred through a network irrespective of other packages without an establishment of logic connection and acknowledgement of reception. It comprises all the necessary data for delivery. Unlike TCP, UDP does not demand setting up a connection and by transfer does not divide the datagrams into parts. The scheme without an establishment of connection is also attractive because it allows minimizing the general traffic at data transmission from an initial source to the big number of receivers. Use of points of a branching (splitters) will help to reduce the traffic proceeding from the transmitter for N machines in N times! So that, multicast transferring using UDP is more likely than with TCP.
In practice UDP applied at broadcasting multimedia data and also, for example, in SNMP (Simple Network Management Protocol) and many other programs.
Alternative TCP - UDP allows the programmer to use flexibly and rationally the given resources, proceeding from the opportunities and needs. For this purpose also serves TCP/IP. Protocols entering into its structure give ample opportunities of adjustment of a network using the IP protocol.
The appendix: the brief list of protocols of TCP/IP family and their description.