Transmission Control Protocol/Internet Protocol (TCP/IP)In our last set of notes, we went over TCP/IP and we learnt that it was universal as it ran on all computers that connect over the Internet. TCP operates on the Transport Layer of the OSI Model whilst IP operates on the Network Layer of the OSI model.TCP/IP moves messages through virtually any network technology and is closely mapped to the 'Data Link' and 'Physical' layers. This therefore, allows communication with 'any' network technology.The main functions of IP is that it routes data packets and datagrams. Both of which are different. A data packet contains the acknowledgement header, has structure and order and implements error checking. A datagram does not contain an acknowledgement header, has no arrival order and implements no form of error checking.The Transport Layer segments and reassembles data into a data stream. It is also responsible for connection synchronisation, flow control and error recovery.The Network Layer, on the other hand, determines the best route for the data to take from one place to another. Routers operate at this layer.
Transmission Control Protocol and User Datagram Protocol (TCP and UDP)When the TCP protocol is used, there is a guaranteed delivery. This is due largely in part to a method called 'flow control'. Flow control ensures the delivery of data, detects any errors in the data transmission and retransmits data to ensure a successful delivery.UDP is a commonly used protocol on the Internet. It is not used for sending important information such as webpages, database information etc. It is, however, used for streaming audio and video. It, therefore, offers speed but has no form of flow control or error correction.
IP Protocol SuiteThe IP Protocol Suite consists of TCP and the provision of Transport Mechanisms. These include connection orientated, reliability and flow control. UDP, on the other hands, lacks the provision of Transport Mechanisms. It is connectionless, at the mercy of the network and its effectiveness to provide reliable communications. It also assumes the 'application' builds a level of error detection and correction.The Application Level Multiplexing involves the use of Port Numbers to differentiate between individual applications utilising the Network Protocol Stack simultaneously.
TCP ReliabilityAn application should be able to send data and expect it to arrive without error. However, sometimes an error is absolute and there can be no recovery. This would involve a situation such as a complete failure of the network, a complete failure of the transmitting device or a complete failure of the application. Any error in the transmission process needs to have a supportive repair mechanism that is 'hidden' from the application.There is also bi-directional communication which involves each node being able to receive and transmit. It is reasonable to assume that the 'mirroring' of the mechanism at both ends of the network.
TCP SequencingSequencing is the re-ordering of data and it needs to be implemented as data may arrive out of sequence. If this occurs, the data needs to be 'reorganised' into the correct sequence. Each transmitted datagram has a Sequence Number.However, it is not sequential and it represents the relative offset of 'this packet' in the total stream that is the TCP communication. On arrival, the receiver re-sequences them according to their relative offset in a local buffer. We call this buffer the Receiving Window and there is a corresponding Transmitting Window that holds the data.
As the data arrives at the receiver, it confirms the receipt of that data to the transmitter. The next data transmitted to the send contains a flag suggesting this confirmation, together with a note of the sequence number that is being confirmed.