3.1 Introduction and Transport-layer Services

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] now that we've finished our study of the application layer we can head down into the transport layer and we'll see that this is one of the key pieces of the internet architecture it's also one of my favorite ones to teach because there are so many fundamentally important challenges that we're going to encounter here we'll look at this question of how can two entities reliably communicate over a channel in which messages can be corrupted or a lost we'll look at the question of how to distribute identities synchronize shared state we'll look at a question of how a collection of different entities can actually adjust their communication rates so that they don't the some of them don't actually overflow and exhaust a network network resources and of course we'll study the two main transport protocols that are available in the Internet today UDP and TCP so let's see what we're going to study here our approach as always is going to be to start with principles how is it that multiplexing and demultiplexing can be done what about reliable data transfer or flow and congestion control we'll start out by looking at the principles underlying how these services might be implemented and then having studied principles we'll look at how those principles are actually embodied in Internet transport protocols and here we'll take a look at two protocols UDP which offers a connectionless best effort service between communicating processes and TCP which offers reliable flow control and congestion controlled connection oriented transport let's take a step back and take a big picture view of transport services and protocols and here there are three things we're going to want to talk about we're going to want to talk about the notion of logical communication between application processes that are running on different hosts we're going to want to talk about the transport protocols and how the sending and receiving side what actions are taken on the sending and receiving side and then we're going to want to take a look at the Internet to transport protocols that are veil two applications TCP and UDP so let's start by diving into this issue of logical communication and biological communication what we mean is that from a transport layer perspective the to communicating sides the sender and the receiver they're logically connected to each other by essentially a direct link in reality the host may be on different sides of the planet they'll be separated by many different networks with different routers and different links but from a logical point of view we'll imagine that these the sender and the receiver are directly connected to each other now the medium by which they're connected to each other the channel over which they communicate may actually lose messages or reorder messages or flip bits and messages but we're going to abstract away everything that sits between these two communicating processes and really just look at the properties of that channel that connects them and then how they implement their services given what that channel is now we've talked about logical communication between processes that are running on different hosts and this notion of the difference between communicating processes and communicating hosts is an important one because it really gets into the heart of what's the difference between the transport layer and the network layer and what are the services that they provide here's an analogy that might be useful imagine we've got two houses and say there are 12 kids that are living in each of those houses one houses Ann's house one house is Bill's house we can think of Internet hosts as being equivalent to the houses and processes as being the kids so there are many processes that are running in each host and there are many kids living in each of these houses we can think of the application level messages that are being exchanged between processes as letters that are sealed in envelopes that and these envelopes then are passed between the houses now let's think about what happens when a letter arrives to a house say it arrives to Ann's house ends now I've got to take that letter and deliver it to one of her children so similarly when a Datagram arrives to an Internet host that hosts the to be able to deliver that data gram up to the appropriate process to hand out an arriving letter up to one of her kids the network layer protocol is equivalent to the Postal Service the Postal Service job is simply to deliver letters between one house and another house what happens inside the house is the job of the transport layer getting the messages from one house to another is the job of the Postal Service or of the network layer so hopefully this analogy makes clear the distinction between what the network layer does and what the transport layer does so that's what we mean by logical communication between entities let's next take a look at the actions that are taking in a transport layer sender or receiver and then we'll take a quick look at the UDP and TCP transport protocols which we'll cover in depth shortly let's use this animation here to take a look at transport layer actions of both the sender and at the receiver side and let's start at the sender so as we saw in chapter 2 when we were looking at the application layer everything starts when an application layer process creates a message and drops that message into the socket on the lower side of that socket is the transport layer the transport layer is going to take that application layer message it's going to determine what needs to go in certain header fields of the transport layer segment it's going to create that segment and then it's going to pass that segment down to the network layer to the IP protocol in the case of the Internet and it's going to be the job of the network layer the internet protocol to actually deliver that IP Datagram from the sending host to the receiving host now let's see what happens on the receiving side the transport layer at the receiving side a segment is going to be received from the network layer we're then going to want to check certain header value fields for example to make sure that the segment's not been corrupted don't want to extract the application layer message and then demultiplex that message up to the appropriate application layer socket let's wrap up here by just taking a very quick look at the TCP and UDP protocols TCP which stands for the transmission control protocol is going to provide reliable in order delivery between application level processes also will see that this delivery is subject to congestion control and flow control and that in order to implement reliability congestion control and flow control we're going to need to set up a connection with connection state at both the sender and the receiver side and we'll look at how that's done shortly the other internet transport protocol of course is UDP the user Datagram protocol this is really a best-effort sort of no-frills approach for a protocol it's got unreliable delivery messages maybe deliver it out of order and so as we'll see not too much is done there so these are the two principle internet transport protocols you may want to think just a little bit about the kinds of services that are not available actually in the Internet and through these transport protocols there is for example no service that provides a guarantee on the amount of time between when a message is sent into a socket and when it pops out the other end that might be a really valuable type of service for example for interactive voice applications like phone calls for example similarly there's no service that provides a guarantee in the amount of bandwidth between sender and receiver for example that a streamed video might receive a guaranteed number of megabits per second in throughput between sender and receiver that - you could imagine might be a very valuable service to be able to have at the transport layer but neither of these two services are actually provided by an internet protocol and you may want to think a bit about why is it that these aren't provided services it's an interesting question gets to the heart of what are the services what's a minimal amount of services that we really need in order to provide effective communication so that wraps up our brief introduction to the transport layer now we can start digging down and some of the basic principles and techniques that we just talked about [Music] you [Music]
Info
Channel: JimKurose
Views: 89,368
Rating: undefined out of 5
Keywords: Computer networking. Internet
Id: lAvhH0XJLNE
Channel Id: undefined
Length: 9min 0sec (540 seconds)
Published: Sat Jan 15 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.