 When we look at protocols at the transport layer, they are primarily of two types. One is called a connection oriented protocol, which in which case basically there is a connection between the sender and the receiver, you can imagine the connection as a pipe, where first there is the pipe establishment phase, then there is data which flows along the pipe and then there is a pipe tear down phase. This connection oriented protocols are useful when we want highly reliable communication in which the loss is cannot be tolerated by the system. On the other hand, there is also the connectionless protocols, in which case there is some loss which can be tolerated by the system. In such systems, there is no notion of a connection setup or a connection tear down. The examples of these protocols are, in the case of connection oriented, we have TCP which is called transmission control protocol and in the case of connectionless, we have UDP which is called user datagram protocol. Now we will look a little bit more into detail for each of these. Let us consider TCP and let us try to understand what all are the key components of making this work. So what we are trying to establish is there is a sender and there is a receiver and we want reliable communication between them. Now let us talk about TCP. This is a connection oriented protocol and is meant for reliable communication between a sender and a receiver. So before we get into the details, let us try to understand this at a conceptual level. So you have a sender, you have a receiver and you have a bunch of packets. Now we want to ensure that all these packets reach this receiver from the sender. So what are the things that the network protocol needs to take care of? So as many of you would have thought, one of the things that it has to do is to ensure that there are some acknowledgments, that I have received some packet and there have to be corresponding acknowledgments. As soon as you think of this idea of acknowledgments, the immediate next thought that comes is that we need to number these packets, we need to be able to identify these packets in some way so that we know which acknowledgments have received. So the two key ideas here are segmentation or numbering of the packets and then there is the notion of acknowledgments and retransmission. This is one part of what TCP does.