Transport Layer: Services
Welcome to the course on Computer Networks and Internet Protocols. So, in this coursewe are talking about the 5 different layers of the TCP/IP protocol stack. So, till now, weyou have a good idea about this 5 different layers of the TCP/IP protocol stack andprofessor Soumya Ghosh has already given you a broad overview of the differentapplications that can run on top of the network protocol stack.So, today I will start with the second layer of the protocol stack, that is the transport layerof the protocol stack and we look into different services which are there at the transportlayer of the protocol stack and how it helps you to provide end to end connectivitybetween 2 machines and transfer data from one machine to another machine.(Refer Slide Time: 01:09)So, we look into the various aspects of transport layer protocol stack. So, before going tothat let me give you a brief overview about how different devices in the network areconnected. So, at the 2 ends so we have 2 different devices or 2 different machines. Sothese are the 2 different hosts which are transferring data between themselves and at thetwo end hosts we have all this 5 layers of the TCP/IP protocol stack, starting from theapplication layer where you are running certain kind of applications like the browserapplications or like the chat applications. Then you have this transport layer whichprovides the end to end connectivity between the 2 layers of the protocol stack, after thetransport layer you have the data link layer which will help you to find out a suitable pathbetween 2 devices in the network through multiple intermediate devices right, like therouters at the switches. After the network layer you have the data link layer, the task ofthe data link layer is to provide you the channel access mechanisms when multiple nodesare trying to transmit simultaneously and they are utilizing the same communicationmedia like the same wireless channel or the same wired network. And finally, you havethis physical layer of the protocol stack which takes care of the physical layer signalingtechniques and the different modulation and the coding schemes.Now the two end hosts in the diagram they have a both the 5 layers of the protocol stacksstarting from the application layer and the physical layer. Now the intermediate devicesthey may not have this all the 5 different layers of the protocol stack. Say for example,sometime in the network you have this devices which we call as the L2 switch or thelayer 2 switch, the layer 2 switch has the protocol stack up to the second layer like up tothe data link layer. Then you can have this layer 3 devices these are, we call as the layer3 switches or a router. So this layer 3 switch or the router they have up to the networklayer of the protocol stacks. So, they help you finding out the paths among multiple hostsor multiple devices in the network, when you are trying to make an end to endcommunication. Now the transport layer it sits on top of the network layer and thetransport layer is only there at the two end hosts and the task of the transport layer is toensure the end to end performance or the end to end functionalities of the network.So, we will look into the details that what are the different end to end functionalities inthe network, which can be utilized or which can be implemented as a part of the transportlayer and interestingly you can also write your own program to support or to configurethe transport layer to make two end devices communicate with each other or talk witheach other.So, we look into all those details in subsequent classes where we will look intosomething called as the socket programming, to find out how you can send data end toend between the two end hosts. So, before going to that let us look into the variousaspects or various design primitives of the transport layer, which is being utilized by thenetwork to ensure reliable and high performance data delivery between any 2 host in thenetwork or any 2 remote hosts in the network. So, these 2 remote host can be sitting in 2different countries or 2 parts of the world. So, it may happen that 1 machine is residing atsay here in II, Kharagpur another machine is residing in say at the Google office at USA.So, whenever you are trying to make these 2 nodes talk to each other, it is just like thatyou need to have set up of multiple end to end functionalities. Like the lower layer of theprotocol stack - first of all they are not reliable, there can be packet loss from this lowerlayer of the protocol stacks. So, the transport layer ensures the reliability of a datatransmission. At the same time it also offer multiple other services, so let us look into thedetails of how this different services are implemented in the transport layer of theprotocol stack.(Refer Slide Time: 05:33)So, well so this is this diagram actually gives you the implementation semantics of adifferent layers of the protocol stack, if you look into the perspective of an individualcomputer or an individual end host. So, if you look into an individual computer - acomputer per primarily have 3 different modules, like at the bottom you have thehardware module of a computer. Here in case of networking devices this hardwaremodule contains your network interface card or the NIC. NIC or we call it as the networkinterface card. So, these network interface card provides you the hardware layerfunctionalities.So this entire physical layer it is implemented as a part of the hardware its a part of thenetwork interface card. Then on top of the hardware you have the firmware or the devicedriver. So, this firmware or the device driver it provides you a way to interact with thephysical layer, so this firmware or the device driver that has the implementation of partof the data link layer and the part of the physical layer. It varies from a different variantof network and different variants of vendors.Say for example, if you think about the wireless network. So, the physical layer it isentirely implemented in the hardware and also nowadays some part of the wireless datalink layer protocol it is also implemented as a part of the hardware to make it fast or tomake it make it robust in the context of a large number or large amount of data delivery.On the other hand many of the device drivers in wireless environment as well as wiredenvironment the data link layer is implemented as a part of the device driver or thefirmware.So, the device driver or the firmware that you install for your network interface card thatprimarily have the MAC layer implementation. Then a part of the MAC layer which islater on we’ll see that it is called a logical link control module. So, a part of the MAClayer and then the upper part of the protocol stack like the network layer and thetransport layer implementation, they are implemented as a part of the software at thekernel of your network protocol stacks. So, it is it is the part of the kernel if you thinkabout the Unix type of operating system, where inside the kernel you have theimplementation of the higher part of the data link layer which we call as the logical linkcontrol and then the entire implementation of the network layer or the sometime we callit the IP layer in the context of TCP/IP protocol stack and then the implementation of thetransport layer. The different type of the transport layer protocols which are implementedas a part of your your software or operating system software or in a UNIX typeenvironment it is the kernel part of the operating system that implements this transportlayer and the network layer.Then on top of that you have multiple applications running. So, this differentapplications are design by different network designer or different application designers,we will also learn how to implement a network application which can talk over 2 end toend devices. So, this applications can be the browser application to access web data orthat application can be certain kind of chat application where multiple parties want tochat with each other or it can be something like a standalone applications.So for example, in a android based operation system you see there are multipleapplication, the Facebook application, the twitter application, the YouTube applicationthat access data over the internet. So, all this different applications are implemented as apart of your application layer. Now in below the application layer we have the transportlayer of the protocol stacks. So, you can think of that this transport layer it makes ainterface between the user application and the operating system. So, whenever the datafrom the user application is going to the operating system it is going via the transportlayer.(Refer Slide Time: 09:56)So, let us look into that how this different layers of the protocol stack adds up their ownheader, in the initial discussion of the TCP/IP protocol stack you have got a broad overview about how the data is being passed through multiple layers of the protocol stack.So, in the application layer if you think about the context of an HTTP application whichis sending data on top of a browser, so you have this HTTP data that is coming from thebrowser and on top of that the HTTP protocol it is it adds up its own header. So, thisHTTP header information it contains the various information about the application layerconnectivity, then this entire data the HTTP data along with this HTTP header that comesas a part your transport layer data. So, these transport layer data it is the entire data whichis coming from the application layer and with this transport layer data we adopt atransport layer header. So, we will look into the different type of transport layer protocollike the TCP protocol or the UDP protocol and various other transport layer protocols arethere, like RTP.So, every individual protocol whichever you are going to use, so as an applicationdeveloper you have to mention that which particular transport layer protocol you aregoing to utilize, you are going to use for your purpose, whether you are going to use TCPtype of application or whether you are going to use UDP type of application. So, that thedifference between TCP types of application and the UDP type of application, we lookinto shortly.So, so the transport layer it adds up it is own header with the application layer data thatcontains multiple information for managing the transport layer protocol. Now this entiretransport layer data and the transport layer header it comes as a data to the network layerand the network layer adds up its own header then it comes to the data link layer. Thedata link layer again adds up its own header, we call it as MAC header in the context ofthe data link layer and finally it comes to the physical layer. So, whenever you arecoming to the physical layer you can see that you have a small amount of data which iscoming from HTTP and then different type of headers which are being added by thedifferent layers of the protocol stack.So, the application layer it has add up the HTTP header, then the transport layer it hasadded up its own header then the IP layer it has added up the IP header. Finally, the datalink layer has added up its own header and the physical layer adds up physical headerand sometime for some protocol it also adds up a trailer, to actually identify an end toend frame. So, that way the entire thing gets deliver over the network.(Refer Slide Time: 12:43)Now, if you look into the context of the transport layer, that why do we require thetransport layer in the internet. Now, just below the transport layer you have the networklayer and the functionality of the network layer is to ensure the datagram delivery. So,when you say it as a datagram delivery it indicates that the network layer whenever itwill receive a packet in the packet or in the network layer context we call it as adatagram.So, whenever it will receives the datagram in the datagram it there is this source addressand the destination address field. So, the task of the network layer is to look into thedestination address and accordingly forward the packet to the next hop. So, the networklayer basically ensures that data delivery among multiple hops in your devices say forexample, say you want to transfer a datagram or transfer certain data from 1 machine atIIT Kharagpur to another machine which is residing at Google USA, say you are going toaccess www dot google dot com.So, whenever you are going to access that and your data need to be transferred from yourmachine say currently I am at Kharagpur. So, the machine of at Kharagpur the data needto be transfer to the Google server which is there in the USA. Now in between there arethis multiple routers which are there we call it as the layer 3 switches or sometime peoplecall it as a layer 3 devices. So, there are multiple routers there in between so the task ofthose routers is to forward the packet to the end host.Now whenever the routers are forwarding the packet the packet to the end host and herewe are thinking about the packet switching principle or packet switching architecture inthe principle of packet switching, packet switching architecture or packet multiplexingarchitecture what happens that the intermediate routers they have a finite amount bufferand the packets are pushed to that buffer. Then the router performs a route look up on theby looking into the header of the packet and then decide that which particular out goinginterface the packet need to be a transferred. Now when a router is doing this task and bythe time it has receiving multiple data from multiple other neighboring routers. So, thearchitecture of this entire network is really little complicated.
Transport Layer: Services- Part 2
So, let me just give you an one example, so you have 1 intermediate router here whosetask is to send the data and it is also receiving the data from multiple other routers. So, itis receiving the data from all this different routers and then it task is to send this data tosome next hop router 1 or 2 multiple next hop routers.Now this particular router it maintains an interface Q and that interface Q willtemporarily hold all the packets. Now in in any devices this type this particular host orthis particular device it has finite amount of buffer space within it, because it has finiteamount of buffer space within it, it may happen that because of high load in the networkthe buffer become full, when the buffer will become full, the packet will start droppingfrom the inter intermediate routers.So, that way the network layer all though its task is to find out or its task is to send thedata from one end host to another end host, many of the times it fails to supportreliability. Reliability in the sense that there is no guarantee that your particular data thatwill be transferred from one end of the host to another end of the host. It may happen thatat intermediate routers the packets get dropped because, of this kind of buffer over flowapart from buffer over flow there can be error in during the physical transmission of thepacket, there can be a channel interference which can happen in the case of a wirelessnetwork.So there are multiple reasons because of which a packet can get dropped. Now whenevera packet is getting dropped or the packet is being lost while doing a end to end deliveryof the packet by the by the network layer, so we say that the network layer provides thisdatagram delivery but this datagram delivery is unreliable, so it supports unreliabledatagram delivery.Now whenever you are providing unreliable datagram delivery at the network layer, thenat the transport layer your task is to ensure that the packets or the message which are youtrying to send from one end host to another end host that messages are transferredcorrectly.So, in other words what we can say that the application should not get hampered by theloss of the data from the intermediate routers or the intermediate network devices. So,the transport layer it takes care of this particular thing. So, the transport layer it providesreliable data delivery on top of this unreliable data gram delivery, which is supported atthe network layer. So, the task of the transport layer is that to monitor whether aparticular data is being transferred at the other end host or not if it is being transferred, soit is happy; if it is not being transferred, then the task of the transport layer would be tomonitor that and if it finds out that will certain data got lost while doing transmission, ittask would be to support or to retransmit the data, so that eventually the message that theapplication was trying to send to the other end, that is getting delivered. So, oneimportant task of this transport layer is to ensure this reliable data delivery, so to ensurethis reliable data delivery, transport layer can provide other services like this connectionestablishment.So, the concept of the connection is just to say a hello to the other end hosts. Say forexample, whenever you are making a telephone call, so once the other end picks up thephone your first voice is or first message is a kind of hello message. So, through the hellomessage you want to ensure that the other end is properly able to receive the messagethat you are going to transmit. So, once the other end also acknowledges your hellomessage by saying another hello and both of you have established the kind of logicalcommunication or a logical connection between yourselves, then you start talking or startsending other messages.So, in the data transfer perspective these connection establishments are just like this hellomessages, say one end of the devices it wants to make sure that the other end is alive andthe other end is ready to receive the message.(Refer Slide Time: 19:46)So, that is the connection establishment service which is being provided by the transportlayer. Then the transport layer provides end to end packet delivery. So, there are 2different groups of transport layer protocol 1 transport layer protocol is this UDP or theuser datagram protocol.So, UDP is not like a transport layer protocol or it does not provide any special transportlayer services. So, what UDP does? UDP just work like a wrapper of this network layerprotocol stack or the IP layer of your protocol stack. So, the task of the UDP layer is thatwhatever data you are receiving from the network layer you directly pass that data, dosome small checking and then directly pass that data to the application. So, why werequire UDP because, certain kind of protocol, certain kind of application they do notrequire reliability, but the importance is the performance.So you can understand that whenever you are implementing this multiple type of servicesat the transport layer, obviously, it will introduce certain amount of delay in the networkand whenever the transport layer is introduced in this certain amount of delay in thenetwork, the other end it will suffer from large considerably more delay compared tonormal datagram delivery, because you are providing additional services at the transportlayer.So, some time the application requires a real time reception of the packet, but it cantolerate the loss, the channel loss. So, the application does not require reliability that aregetting a packet quickly is the major importance. So, in that particular case you do notimplement any transport services at all.So, we just use this UDP protocol and the UDP protocol helps you to embed this entirenetwork layer data and pass it to the transport layer and give the data to the applicationwhich is demanding for a service, which is important for, which is important forapplication perspective in the context of having application layer data delivery and itdoes not demand for a reliable transmission of data.The transport layer also provides certain additional services like the flow control and thecongestion control. So, this flow control and the congestion control it is just like saywhenever you have 2 different hosts which are trying to transfer data among themselvesand there are this intermediate network, this intermediate network can introduce multipledelays or packet loss in the network. So the flow control ensures that well this particularend, say it may happen that the receiver can receive the data at a rate of 1 mbps and thetransmitter can send data at a rate of 10 mbps. Now if that is the case under thistransmitter, so, I am naming it as T and the receiver I am naming it as R. Now if thetransmitters send data at a at a rate of 10 mbps and the receiver can receive data only at arate of 1 mbps, so what may happen that the additional data that you are pushing in thenetwork, that is making the network or that is having a overhead at the network. Butthose particular data not getting delivered at the other receiver. Like it is making thenetwork congested by pushing additional data in the network. But it is it is not makingthe receiver to receive the data at that particular rate.So during that time this particular additional transmission of data from the transmitterside it is wastage for the network perspective and that is why transmitter and the receiverneed to communicate among themselves, the transmitter and the receiver need to agreeamong themselves, so that the transmitter can only send the data that the receiver canreceive, so this particular concept we call it as a flow control. Now there is another thingin the network which is called as the congestion control.(Refer Slide Time: 24:00)So, that congestion control is something like this so whenever you are transferring datain the network, if I just represent the network as a graph where every network devices isrepresent at a node. So, in that case this particular node if you just think of anintermediate node it receives data from multiple other paths. So, you can just think ofthis entire network as a anonymous to a as a synonymous to a road traffic network. Nowin case of a road traffic network in a in a road junction in a in a road junction point, iftraffic is coming from multiple roads, in that case it may happen that well thisintermediate junction becomes congested. So, this transport layer of your networkprotocol stack it supports congestion control. So, it avoids congestion whenever you arereceiving packets from multiple different paths.Another functionality of the transport layer is to support ordered packet delivery, so whatis this ordered packet delivery the ordered packet delivery is, so whenever you aretransferring the data between two end hosts, it may happen that well some of the data isbeing say you are you are sending data from this host to another host, which is connectedat a different end and whenever your transferring the data it may happen that well a partof the packet some packets are using this path to reach the host, where as some packetsare using this path to reach at the end host. Now because of the delay difference betweenthese two paths it may happen that well certain packets reach earlier than other packets.So, you are say I am giving every packet at a sequence number 1 2 3 4 that way because,of this delivery to multiple paths it may happen that packet 3 has reached first and afterthat you have received packet 2. So, you can receive this kind of out of order packet, sothe task of the transport layer is to ensure that even if you are receiving out of orderpackets, this out of order packets will be eventually get ordered and it will be deliveredto the application under as a ordered sequence of data. Otherwise the applications willnot be able to able to find it that what is the sequence of data which is being coming. So,the applications need to always get the data in sequence.So, this particular module in the transport layer it will ensure the ordered delivery of thepackets over this, unreliable datagram delivery which is been supported at the networklayer. Now in a nutshell, what we can say that well whenever you are transferring dataover the network layer the network layer just ensure of delivering the datagram at theother end host, which is their your which is working like your destination. But thenetwork layer it does not support the various required services which are important fromthe application perspective.So in that particular context it is important to provide certain level of end to end servicein the internet. Now this transport layer it provides this sets of end to end services overthe internet. Now in this particular context we’ll we’ll have multiple different serviceswhich are been provided by the network layer and we see that well this TCP protocol thetransmission control protocol, this TCP protocol provides all this different services whichis being required at the network layer, like this connection establishment, reliable datadelivery, flow control and congestion control, as well as the ordered packet delivery.Whereas, UDP protocol it just work like a wrapper of the network layer protocol totransfer the data directly to the application layer, without providing any such serviceslike this connection establishment, reliable data delivery, flow control and congestioncontrol, ordered packet delivery and so on.So that way we broadly have 2 groups of protocol at the transport layer, one group ofprotocol it task is just to ensure that that data is being sent or the data is being transferredto the other end, so whatever is being supported by the network layer that services thatdirectly provided to the application layer. So the UDP protocol belongs to that group ofprotocol where we do not support reliability, ordered delivery and all this services and inthis case the application requirement is to ensure only to deliver the packet and it cantolerate the loss itself.For example, certain multimedia protocol can do that, it can tolerate the loss up to certainlevel because, whenever you are receiving data frame by frame wise, the important thingis that the frame is being received. But even if certain frames in between are beingmissed, then the multimedia protocol they can do an averaging of the first frame receiptand the third frame receipt and from there it can approximate the second frame and playit.So, that way up to certain level of data loss it can tolerate this kind of multimediaprotocols, but transferring the data within a predefined time out is very important. So,because if you implement this kind of services at the transport layer that will take certainamount of time for processing the data and if there is a loss it will give more priority onretransmitting the loss segment or retransmitting the loss packet, rather than transferringthe new packet you will experience more delay if you are going to implement thoselevels of services at the transport layer.So UDP provides a service where this loss or reliabilities not important, rathertransferring the data within some timeout duration that is important. On the other hand,for applications like say file transfer or the web data transfer, reliability, ordered packetdelivery, this particular functionalities are more important so we use TCP kind ofprotocol. So if you look into the protocols like HTTP, FTP, those kind of protocol theyuses TCP type of protocol at the transport layer, where as protocols like certainmultimedia protocol as well as the DNS protocol at the application layer it uses UDPtype of protocol.So, in the next class we will look into the different services which are being provided bythis transport layer and we look into the details of those services, starting from theconnection establishment. So, see you all again in the next class where we look into theconnection establishment paradigm in the context of the transport layer.Thank you.
Log in to save your progress and obtain a certificate in Alison’s free Advanced Diploma in Computer Networks and Internet Protocol online course
Sign up to save your progress and obtain a certificate in Alison’s free Advanced Diploma in Computer Networks and Internet Protocol online course
Please enter you email address and we will mail you a link to reset your password.