Computer Networking Chapter 2 A Top-Down Approach Application Layer KUROSE ROSS A note on the use of these ppt slides: Computer We're making these slides freely available to all (faculty,students,readers). They're in PowerPoint form so you see the animations;and can add,modify. Networking:A and delete slides (including this one)and slide content to suit your needs. They obviously represent a lot of work on our part.In return for use,we only Top Down ask the following: If you use these slides (e.g.,in a class)that you mention their source Approach (after all,we'd like people to use our book!) 6th edition If you post any slides on a www site,that you note that they are adapted from (or perhaps identical to)our slides,and note our copyright of this Jim Kurose,Keith Ross material. Addison-Wesley Thanks and enjoy!JFK/KWR March 2012 t Reserved Application Layer 2-1
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A note on the use of these ppt slides: We’re making these slides freely available to all (faculty, students, readers). They’re in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., in a class) that you mention their source (after all, we’d like people to use our book!) If you post any slides on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR All material copyright 1996-2012 J.F Kurose and K.W. Ross, All Rights Reserved
Chapter 2:outline 2.1 principles of 2.6 P2P applications network 2.7 socket applications programming with 2.2 Web and HTTP UDP and TCP 2.3 FTP 2.4 electronic mail ■SMTP,POP3, IMAP 2.5 DNS Application Layer 2-2
Application Layer 2-2 Chapter 2: outline 2.1 principles of network applications 2.2 Web and HTTP 2.3 FTP 2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS 2.6 P2P applications 2.7 socket programming with UDP and TCP
Chapter 2:application layer our goals: learn about protocols conceptual, by examining popular implementation application-level aspects of network protocols application protocols ·HTTP ■transport-layer FTP service models ·SMTP/POP3 /IMAP ■client-server DNS paradigm creating network peer-to-peer applications paradigm ■socket API Application Layer 2-3
Application Layer 2-3 Chapter 2: application layer our goals: conceptual, implementation aspects of network application protocols transport-layer service models client-server paradigm peer-to-peer paradigm learn about protocols by examining popular application-level protocols HTTP FTP SMTP / POP3 / IMAP DNS creating network applications socket API
Some network apps e-mail ÷voice over IP(e.g., web Skype) text messaging real-time video remote login conferencing P2P file sharing social networking multi-user network search games streaming stored video (YouTube,Hulu,Netflix) Application Layer 2-4
Application Layer 2-4 Some network apps e-mail web text messaging remote login P2P file sharing multi-user network games streaming stored video (YouTube, Hulu, Netflix) voice over IP (e.g., Skype) real-time video conferencing social networking search … …
Creating a network app application transport network data link write programs that: physical run on (different)end systems communicate over network e.g.,web server software communicates with browser software application no need to write software for transport network data link pplication network-core devices physical transport network network-core devices do data link physical not run user applications applications on end systems allows for rapid app development, propagation Application Layer 2-5
Application Layer 2-5 Creating a network app write programs that: run on (different) end systems communicate over network e.g., web server software communicates with browser software no need to write software for network-core devices network-core devices do not run user applications applications on end systems allows for rapid app development, propagation application transport network data link physical application transport network data link physical application transport network data link physical
Application architectures possible structure of applications: client-server peer-to-peer(P2P) Application Layer 2-6
Application Layer 2-6 Application architectures possible structure of applications: client-server peer-to-peer (P2P)
Client-server architecture server: always-on host *permanent IP address data centers for scaling clients: communicate with server client/server may be intermittently connected may have dynamic IP addresses do not communicate directly with each other Application Layer 2-7
Application Layer 2-7 Client-server architecture server: always-on host permanent IP address data centers for scaling clients: communicate with server may be intermittently connected may have dynamic IP addresses do not communicate directly with each other client/server
P2P architecture no always-on server peer-peer arbitrary end systems directly communicate peers request service from other peers,provide service in return to other peers self scalability-new peers bring new service capacity,as well as new service demands peers are intermittently connected and change IP addresses complex management Application Layer 2-8
Application Layer 2-8 P2P architecture no always-on server arbitrary end systems directly communicate peers request service from other peers, provide service in return to other peers self scalability – new peers bring new service capacity, as well as new service demands peers are intermittently connected and change IP addresses complex management peer-peer
Processes communicating process:program clients,servers running within a host client process:process within same host,two that initiates processes communicate communication using inter-process communication(defined server process:process that waits to be by OS) contacted processes in different hosts communicate by aside:applications with exchanging messages P2P architectures have client processes server processes Application Layer 2-9
Application Layer 2-9 Processes communicating process: program running within a host within same host, two processes communicate using inter-process communication (defined by OS) processes in different hosts communicate by exchanging messages client process: process that initiates communication server process: process that waits to be contacted aside: applications with P2P architectures have client processes & server processes clients, servers
Sockets process sends/receives messages to/from its socket socket analogous to door sending process shoves message out door sending process relies on transport infrastructure on other side of door to deliver message to socket at receiving process application socket application controlled by process process app developer transport transport network network controlled link by OS link Internet physical physical Application Layer 2-10
Application Layer 2-10 Sockets process sends/receives messages to/from its socket socket analogous to door sending process shoves message out door sending process relies on transport infrastructure on other side of door to deliver message to socket at receiving process Internet controlled by OS controlled by app developer transport application physical link network process transport application physical link network process socket