Network Protocol | Application Layer Protocols | Alison
Loading

Module 1: Network Protocol

Nota de Estudos
Study Reminders
Support
Text Version

Application Layer Protocols

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Application Layer ProtocolsHi. So, we will be discussing today on application layer of our TCP/IP protocol ornetwork protocol part say. So, what are the so, as we have discussed in our earlierlectures, that we will be initially we were discussing about the overall protocol stack.Now, we will start discussing layer by layer and their basic properties etcetera, and whatare the different features of those layers. So this application layer as we all understandplays the more, most vital role as far as the end user of the clients are concerned right,more concerned about the application which is running over the things right, not theunderlying thing.So, when we open a web page or transfer a file, open the mail server or download mail orlook at the mail server. So, we are these are the different applications which are at thefront of us, right which the end user or is bothered, or the client is bothered. Whereas,where as there are a lot of under underlying things goes on down the layer which areequally important we will go through the things. So application layer has a directconnection or manifestation to our, this end user perspective.(Refer Slide Time: 01:34)So if we look at our typical protocol stack as we have discussed, that it has a applicationtransport internetworking or layer three. And this network interfaces and hardware asrepeatedly, we are telling that there are there can be data link layer and the physical layerwhich constitute this. So, there and there is a underlying physical layer underlying there.So, if you look at the applications there the predominant things are like Telnet, FTP,SMTP, HTTP and DNS and so and so forth. So, these are the predominantfunctionalities. We will be for next couple of lectures we will be concentrating on theseapplication layers.(Refer Slide Time: 02:21)So, again if we if you recollect what I have seen that these application layer protocols,primarily talks with the next layer of the transport layer which provides either aconnection-oriented service or connectionless service which in turns talks to the downthe layer like layer 3, IP layer and so on so forth. There can be application layer whichdirectly talks with that IP layer and like that. So, these application layer can primarilytalks with these transport layer or in some cases in some of the applications it can talkwith the directly to the IP layer.(Refer Slide Time: 03:00)So, again what are the basic philosophy that application layer is provided by the programthat uses TCP/IP communication. So, it is the, what we say that programming quoteunquote “programming interface” to this whole networking paradigm. And applicationlayer is a user process, cooperating with another process usually on the different host.Typically, we call this as client server things. So, when I run an application it is a client,to some application at the server, at the other end of the network.So, though the client server do not say that it should be other end of the network, it canbe the same network itself, but nevertheless I have a application server client whichconnects to the server like when we download www, or link to “www iitkgp ac dot in”, then what we do? We basically connect to that iitkgp web server and my browser at myend acts as a client, client to the things which is connect to the server.So, this HTTP client to HTTP server then there can be FTP client to FTP server and soand so forth. So, it is a so, user process cooperate with another process. So, is that in turncan have other type of things. So, there are popular example like Telnet SMTP SNMP,FTP HTTP type protocol DNS and so on and so forth. Interface between the applicationand transport layer is defined by port numbers, right like how do I identify a system? Bya IP address how do I identify a process in the system? By a IP plus a port number whichis which is a mostly as a transport layer phenomena. So that identifies a process in thesystem. And there is there are a concept called sockets. We will be discussing on thosesockets a little bit of socket programming, also we will be looking into, but this is whatwe say socket. So, it is a socket which is establish a socket interface with establishbetween the source and destination. And popularly what we use the term like socketprogramming and so and so forth, which allows me to communicate between each other.(Refer Slide Time: 05:11)Now, same thing this if application layer there is a variety of things some of the filetransfer label things, some are email type of thing that use SNM SMTP, remote loginTelnet, a login network management, name there are name management like DNS, andused by routers. There are different applications which are at the this at different level.(Refer Slide Time: 05:38)So, if we have a more holistic mix, where there are applications different applications.So, there are different service points of the things. So, this transport layer defines that,along with that we have a network access layer. So, IP plus the process allows me to runthat application. So, that means, I may have a server which acts as a say FTP server, aSSI server or a Telnet server or different type of server. So, where the different things aredefined at different port.There are popular ports like what we know that Telnet like port 23, FTP is port 21, ratherthere are 2 ports, data and control port 21, 22, then HTTP port 80 and so and so forththese are popular port, but you can define your own port where the server is running.Client can connect through any other port, right. Similarly, so, there may be computer 1,computer 2, computer 3 and there are there can be several applications. So if you look atthe at the top level view so, these different applications are talking to each other, right.So, that that actually what gives us that realization of how a process can communicate toprocess, or a application talks to each other, and that has a with the with the underlyingnetwork. So, the beauty of the things that this, the underlying network is not exposed tothe client or the server, right. When I access a through a when you do “http www iitkgpac dot in”, so you are basically bothered about the page to be described right. So, neitherhow this protocols stack or intermediate routers come into play that we are not lookingat. So, what we look at is the intermediate communication networking is in place, right.(Refer Slide Time: 07:27)So, similarly so if you as we discuss, so if you look at, so I have application transport andnetwork access. So to say that means, one defines the port and IP, and then whatever thedata is there, it is being a payload to this next layer, that is for the transport video and itbeing becomes a payload, this whole thing becomes a payload to this network accesslayer. And at the destination it gets deciphered.(Refer Slide Time: 07:54)Or look at some another view if you look at. So, I have different applications. So it islogically connected to different applications, like as the TCP is the predominant protocolthat is which is a connection-oriented protocol. So, it has a - it finds a logical connectionbetween the things. We as we discussed that that it is this whole thing runs on IP, IP isagain a connectionless best-effort protocol. It does not guarantee that the packet will bedelivered or not. So, there should be some mechanisms, here at the TCP end which willallow this logical connectivity, and what we say reliable connectivity on the over thisunreliable layer right. So, we will discuss when we go into those lecture series, that howit is feasible to do that and how irrespective of that underlying layer giving some servicesI can have a upper layer services on the things.Now down the line I can have different network access level protocol by which thenetwork is accessed. And it goes on through the physical layer and the type of thing so, itgoes on routed. So, there can be n number of router in between. Again we will bediscussing those things when we go at different layer that how these routings are madepossible. Nevertheless, this application X talks to the application X, right or if we littlebit look on if the this is a application X client talks with the application X server, right.Or application Y client while talks to the application server right, two applications aretalking to communicating with each other.(Refer Slide Time: 09:30)And I can have different type of things there are predominant applications which are theTCP. There are few applications which are UDP. Like, SNMP is one of that for thenetwork management. There are several companion protocol for the ICMP, IGMP, OSPF,RSVP and so and so forth that the IP somewhere in between transport and IP. And so,there is a bunch of protocols which are they are in the within this protocol stack.(Refer Slide Time: 10:02)So, if we look at so if these are the layers. So, applications and then we have somethingwhich is controlled by the software and kernel. This data link some part and the physicalis primarily controlled by this firmware devices or device drivers and hardware at thephysical layer; that means, you require a network interface card, and network interfacecard to have a physical connectivity, like when you put a RJ-45 cable into your laptop ordesktop, so you there should be NIC card which takes care. You will have a, you dorequire another interface card like wireless interface to work on those looking at thosethat, there is also a hardware, over that I require a firmware and device driver which runsthe things like if I have a NIC net inter card there should be a particular device driver towork on if you have wireless or Wi-Fi interface, so there should be a device driversupport from the operating system to that, right. Over that primarily it is handled by themachine and by software and kernel of the particular ways, and the device drivers totakes care of this network and protocol; the network and transport layer and over that theapplication runs, right. So if you look at, if a when we are running FTP or HTTP, sounderlying we are using some of the things which are defined at the net at the stack level,transport and IP layer which primarily if you see that if you in a normal Windows PC oreven Linux level or Unix system. What we do we basically this define the TCPIPproperty, right. So, we provide those information to look at and there are some of thethings are taken care by the OS or the kernel itself. Say, when a pack a when a when aclient is going out, it gets a port address to go out of the serve out of that particularinterface. So, this gives a overview of the stack.And if we look at again some again that stack view,(Refer Slide Time: 12:15)so I have say there is a HTTP data. So HTTP data along with the HTTP header whichcreates the application it becomes a payload for the transport layer, it becomes a payloadfor IP layer, adds the IP header and it becomes a payload for this data link layer andfinally, it goes to the physical layer and where the things are being transmitted, right. So,this way it goes on and it goes it gets unpacked or extracted at that different level. Ifthere is a router it gets extracted up to the network layer. If it is a other end system, itgets extracted up to the application layer right. So, it gets unfolded as a as far this as thedevice level whatever the support is there.So, in other sense what we what we try to see that it supports interoperability in a biggersense right. So what we say that I do not care about what intermediate router is there. Sonow, I am following the protocol right it goes on hop to router, it the overall routingbusiness to finding the best path between the source and destination is not primarilydependent on the system level things right. So, these are the things we look at.(Refer Slide Time: 13:33)So, if we look at the anti-application layer interfacing in some other way. So, we havedifferent applications, and they have different type of requirement, right. So, one may bethe end to end packet delivery which may not be that reliable service required we canpush it to UDP; whereas, there are some of the things where we require a reliableconnection-oriented service TCP. So, we require different type of things. Connectionestablishment, reliable data transfer, flow and congestion control, order packet deliveryand then the rest of the stack.(Refer Slide Time: 14:04)And different types of services are like typically DNS types of services are over UDP.Whereas, HTTP email file transfer are over this type of TCP/IP, TCP type of thingconnection-oriented service. So, what we see that there are several application which hastheir different kind of need, and based on that either they are pushed through the TCPtype of things or UDP type of things, UDP type of connections.(Refer Slide Time: 14:35)So, again if we come back we if we try to again look at it, so one is what are the typicalresponsibilities of the application layer, identifying establish establishing availability ofintended, communication partners like if I am doing a “http iitkgp ac dot in” “www httpac dot in”; that means, my intended other partner is the iitkgp web server, it need toconnect somewhere other it should take care.Synchronizing cooperating applications - if there is a cooperative applications that likesay I have a chat server request-response I have multiple applications, where I requireorchestration or synchronization of the applications right, one data goes there then theirresponse income in some other fashion that need to be taken care by this at theapplication level.Establishing agreement on procedures for error recovery - if there is a error how torecover from the reporting recovery from the error. So there should be some establishedprocedure for that right.Controlling data integrity - so I need to have again mechanism procedure for handlingdata integrity. So, these are the things need to be there, basic responsibilities there can bebased on the application, then several other properties or responsibilities of theapplication, but nevertheless if you try to fit in somewhere other they fit in into the thisoverall structure.Application Layer Protocols- Part 2
And if we look at the examples, there is a (Refer Time: 16:12) number of examples whatwe use directly or indirectly day to day, one of the major thing is the DNS or domainname systems. There are file transfer protocols or FTP, hypertext transfer protocol orwhat we say HTTP which is which is the predominant applications which is which hasmostly used across the world. There are simple mail transfer protocols or SMTP whichtakes care of our mailing system. There are simple network management protocol basicmanagement of the overall network SMTP Telnet. And there are there can be any host ofapplications some of the applications can be used as defined applications which aredefined by that particular user; some of the applications are do whatever the applicationswe are talking about these are mostly generic applications, mostly available in systemsand like that.(Refer Slide Time: 17:18)So, if we look at the DNS so, what is DNS? Domain Name Systems. So it is primarilymajor job is to translate name to IP, like so, when we because if you see the; if we I saythat I want to find out “www iitkgp ac dot in”. Now www this name does not have anymeaning at the IP layer or the down the layer right, say whenever I want a routingm therouter requires a IP right. So there should be, either I give the IP at the top so that inunderstand this is the thing. Or there should be someone which resolve that id IP right.So, what we do? That when I give a name I send a resolver that you resolve it. So, duringDNS so I send to a DNS server we resolve and send me back this IP, right. And based onthis IP, the rest of the things goes on. So, name to IP conversion it is the resolve.So I my system say by particular this system or my laptop acts as a primarily a it has aDNS client, which requests to the DNS server which is revert back. How do I know thatDNS server? Either you while network configuration somebody has put the DNS serverhere or from the network administrator you got it in the TCP/IP protocol stack etcetera,or that automatically done if you have a DHCP type of things which when you put thesystems it loads the things. But nevertheless it should know where the server is right.And there are as it is and here is domain based so, that a domain definition there shouldbe a particular protocol to follow. So, there are more than 200 top level domains right inthe internet, we’ll come to those things more in detail. Some of the example like “dot in”is India, “dot us” is US, “dot edu” is educational sites, like “dot com” is company site,“dot net” is network services and so and so forth.So, these are top level domains. So, when I say “iitkgp dot ac dot in” is my domain, thenIndia is the top level domain or sometimes what we say that is a TLD, and below thatthere is a sub domain called ac; that is, which primarily represent academics below thatwe have a sub domain call iitkgp, right?(Refer Slide Time: 19:39)So, when we take the TCP, FTP and TFTP. FTP is a reliable connection-oriented servicethat uses TCP to transfer files between systems that support FTP, right. So, TCP, FTP is areliable connection-oriented service right. Whereas, TFTP is a connectionless that usesUDP to transfer.So, there are different places where we need this type of things. Once you have to do fora connection-oriented the resource requirement may be high. So, you may have some ofthe cases whether those resources are not there. Secondly, if there is a failure you caneasily retransmit right, that may not be a big deal to retransmit, right. I may not berequiring connection things, like I say I want to send a something from one place toanother. One is that I want a reliable service, I do not want failure to occur, other things ifthere is a failure, I again send the things to again right, then I do not mind sending itagain. So that means, based on the requirement, like typically TCP is used for routersfigures like, like typically for example, some of the iOS images or the router images.TFTP is designated for small and easy to implement. So, it is a less payload so it is easyto implement.Then we have a SMTP email server communicate other using simple mail transferprotocol to send and receive mails. So, this is SMTP protocol is for as for the for mailtransport protocols. There are other back copies or the front end protocol like POP3 andthings likes that.(Refer Slide Time: 21:58)So, other another protocol which is there is a simple network management protocolSNMP is an application layer protocol, that facilitate exchange of managementinformation between the two devices. So, SNMP is a application layer protocol, and itfacilitates that exchange of management information, right. Network level managementlike it goes on, there are SNMP agents which reports the different status of the network,where this SNMP there is your network management system takes that SNMP data anddo. So, it is not may not be directly used by us, but nevertheless it is required for networkmanagement right. So, there is a important protocol for network management.(Refer Slide Time: 22:54)There is another protocol which is called Telnet, right. So, that which allows me whichallows us to connect to a remote system or site. So, Telnet client provides ability to loginto a remote internet host that is running a Telnet server. So, any client should have acorresponding server at the other end. So, and then to execute commands from thecommand line so, I have a Telnet client and server and a allowed to the command to thecommand line.So, we have Telnet client and Telnet server. And it goes on communicating between eachother. Or if you look at it that Telnet client basically does a TCP connection to the Telnetserver, which in turn can have different type of things. One is that can it can be running auser applications or some sort of access control mechanisms, or there is a server controlfor some other things, right.So, these are the things which are possible with the things. So, it is a way that I can do aremote login to another system, right. So, I can have a remote access to the systems by,and then we can have applications, we can have server control, we can have accesscontrol type of things. Again it is a client server things. So, if you have a Telnet client theother end Telnet server will be there and there should be some credential check that IPlogin password and so and so forth to go there, further matter in FTP also we requirethose things to be there.(Refer Slide Time: 24:22)Now, we come to another thing which is to see that what underlying things how thingswork what we see a network socket, right. So, it is we hear about network programmingor socket APIs and like this.(Refer Slide Time: 24:53)So, like if we if we try to little look back so, say if this Telnet server, what it is doing? Itis basically opening up or it is running a Telnet server things or in sometimes what wesay it is a daemon it is running right; that means, which is running and listening to aparticular, it is running and listening to a particular port, right. So, always active, rightsay like if I if I do when I do a say HTTP. So, this HTTP server what it is doing? So, sayif I consider this is a www iitkgp server then what it is doing? So, they are at some portsay port 80, that is the standard port 80, port 80 that it is always listening. And listeningfor what? Is there any request from the client? If there is a request from the client, when Iwent from these, it absorb it takes it if it is a concurrent server, it creates a child processor it is fork a child process and go on serving that like.So, whether whatever may be whatever is that any kind server protocol, whatever is theapplications if the corresponding server end it creates a server process to look at it. So,so, while connecting from the source, what we require? I require that IP right, of thatwhere I want to connect, like in our case when we “www iitkgp ac dot in” what we arelooking at? We are basically resolving it and going to a IP address of the iitkgp webserver. And then I want to know that where it is available; that means, I want to identifythe machine and also identify the process in that machine, right.How do I identify the process is by the port number. How do I get the port number? Thatis either it is known or for the popular HTTP things what we have the port is the port 80.So, it is listening to a port 80, right. So, what we have from the client end it is a sending aparticular say application. So, it goes on that particular port and goes on that port. So,this is suppose this application is running at port say x this application is running as porty, and then when it goes it goes to the port. So, it may be the same server same IPaddress, but I have a different port numbers, right. So, if you so, client what is what itgoes on. It basically take a the client what it, what is does? It goes to the IP of the serverport of the server, right. And it goes to the other end, right? When it goes out this itknows that IP of the server, port server, IP of the client because it coming from whereand port of the client. Port of the client is automatically provided by the system if there isno thing. Another thing I require is that the protocol. So, if we know this 5 step allow meto connect to the things. Like here also we if we consider protocol so, this is it is a whatwe did once this is there.So, there is a path is established between these two, right. I am not bothered that inbetween there may be lot of routers etcetera and so and so forth. That is underlyingnetwork, but there is a path established. Now I can basically talk like a chat server or aFTP file transfer or any other applications like that. Similarly, if I have another thisapplications so, we can have another like this, right. So, another things established.So, this things what we say they a basically a socket is established. So, that thecommunication path is established. We will be dealing little detail with this type ofprogramming aspect, what we say socket programming how we can write my own socketprogramming that how what are the things required. So, by this if we if we logically seelike the server when that things are running that http daemon is running, what popularlywhat we say that “httpd” daemon is running.(Refer Slide Time: 30:04)So, at the server end so, for the http and here we have that http client which is ourbrowser; so, this daemon what it is doing? It is listening to port 80 or that server thingand always alive. Like, it is something is anybody there? So, when the client’s requestcomes, it takes it right, it gets the client IP etcetera, and the protocol. Though our for ourcase the predominant protocol is the IP protocol. So, it takes that thing, and it based onits resource and etcetera it responses that whether it accept this protocol.So, once that is there the connection is established, and then goes on thing based on thewhether is a statefull, stateless etcetera based on the protocol thing right, it is like forthese it is the page is displayed for FTP. So, for the same like for FTP what we haveFTPD and here we have FTP client and so and so forth.Other thing is that in some cases the, it can be a server other case it can access a clientand so and so forth. Like, I can have a print server which has a FTP client right. So, it isall that process level things what we want to do. See by doing this we are giving ainterface to the end user to write program one network which can communicate with theother processes, right. And the beauty of the thing is that you are not bothered, but saywith the underlying network it takes care of the things, because we are following someprotocols, some particular rules which is guided by the things.Not only that, it is device independent we can have different type of devices and differentlevels right we can have different mix and type of things. So long they are fitting into theprotocol we are not able to connect them. We are not bothered about the communicationpath. It can be fiber, it can be wireless, it can be wired and anything, right. So long againfollowing the protocol, but end of the day your page get displayed, or you write aprogram which can communicate to each other each other.So, this is the ubiquitousness of this whole network level communication things, right.Which that is why it is so popular because now it is heterogeneous, it is what we say nocentralized control per say, whatever you are doing at your end, only you are followingthe protocols, right. There are guidelines, there are protocol guidelines, there areauthorities which takes care of those things, but say what you develop at your end andflowed at the things is a business for your means it is your own business, right.So, that means, that that allows me to do that. So, what we will do in the subsequentclasses will see some of this more application layer things. And slowly go into thetransport and network and data link and so on and so forth right. So, with this we let usend our today’s class.Thank you.

Notification
Você recebeu uma nova notificação
Clique aqui para visualizar todos eles