Chapter 2 Application Layer computer networking James F.Kurose Keith W.Ross 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 can add,modify,and delete slides Computer Networking: (including this one)and slide content to suit your needs.They obviously A Top Down Approach represent a lot of work on our part.In return for use,we only ask the following: Featuring the Internet, f you use these slides(e.g.,in a class)in substantially unaltered form, 3rd edition. that you mention their source(after all,we'd like people to use our book!) f you post any slides in substantially unaltered form on a ww site,that Jim Kurose,Keith Ross you note that they are adapted from(or perhaps identical to)our slides,and Addison-Wesley,July note our copyright of this material. 2004. Thanks and enjoy!JFK/KWR All material copyright 1996-2006 J.F Kurose and K.W.Ross,All Rights Reserved 2:Application Layer 1
2: Application Layer 1 Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3rd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2004. 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 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) in substantially unaltered form, that you mention their source (after all, we’d like people to use our book!) ❑ If you post any slides in substantially unaltered form 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-2006 J.F Kurose and K.W. Ross, All Rights Reserved
Chapter 2:Application layer ▣2.1 Principles of 2.6 P2P file sharing network applications 2.7 Socket programming 2.2 Web and HTTP with TCP 2.3 FTP 2.8 Socket programming ▣2.4 Electronic Mail with UDP ÷SMTP,POP3,IMAP 2.9 Building a Web ▣2.5DNS server 2:Application Layer 2
2: Application Layer 2 Chapter 2: Application layer 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 file sharing 2.7 Socket programming with TCP 2.8 Socket programming with UDP 2.9 Building a Web server
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 ▣programming network peer-to-peer applications paradigm socket API 2:Application Layer 3
2: Application Layer 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 programming network applications ❖ socket API
Some network apps OE-mail Internet telephone OWeb Real-time video ▣Instant messaging conference Remote login ▣Massive parallel P2P file sharing computing 口Aulti-user network ▣ games 0 ▣Streaming stored 0 video clips 2:Application Layer 4
2: Application Layer 4 Some network apps E-mail Web Instant messaging Remote login P2P file sharing Multi-user network games Streaming stored video clips Internet telephone Real-time video conference Massive parallel computing
Creating a network app Write programs that application transport run on different end network data link systems and physical communicate over a network. e.g.,Web:Web server software communicates with browser software little software written for devices in network core application application TransporT network core devices do transport network network data link not run user application data link physical physical code application on end systems allows for rapid app development,propagation 2:Application Layer 5
2: Application Layer 5 Creating a network app Write programs that ❖ run on different end systems and ❖ communicate over a network. ❖ e.g., Web: Web server software communicates with browser software little software written for devices in network core ❖ network core devices do not run user application code ❖ application 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
Chapter 2:Application layer ▣2.1 Principles of 2.6 P2P file sharing network applications 2.7 Socket programming 2.2 Web and HTTP with TCP ▣2.3FTP 2.8 Socket programming 口2.4 Electronic Mail with UDP SMTP,POP3,IMAP 2.9 Building a Web ▣2.5DNS server 2:Application Layer 6
2: Application Layer 6 Chapter 2: Application layer 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 file sharing 2.7 Socket programming with TCP 2.8 Socket programming with UDP 2.9 Building a Web server
Application architectures ▣Client-server ▣Peer-to-peer(P2P) OHybrid of client-server and P2P 2:Application Layer 7
2: Application Layer 7 Application architectures Client-server Peer-to-peer (P2P) Hybrid of client-server and P2P
Client-server architecture server: always-on host permanent IP address server farms for scaling clients: communicate with server may be intermittently connected may have dynamic IP addresses *do not communicate directly with each other 2:Application Layer 8
2: Application Layer 8 Client-server architecture server: ❖ always-on host ❖ permanent IP address ❖ server farms for scaling clients: ❖ communicate with server ❖ may be intermittently connected ❖ may have dynamic IP addresses ❖ do not communicate directly with each other
Pure P2P architecture no always-on server arbitrary end systems directly communicate peers are intermittently connected and change IP addresses ▣example:Gnutella Highly scalable but difficult to manage 2:Application Layer 9
2: Application Layer 9 Pure P2P architecture no always-on server arbitrary end systems directly communicate peers are intermittently connected and change IP addresses example: Gnutella Highly scalable but difficult to manage
Hybrid of client-server and P2P Skype Internet telephony app Finding address of remote party:centralized server(s) Client-client connection is direct(not through server) Instant messaging Chatting between two users is P2P *Presence detection/location centralized: User registers its IP address with central server when it comes online User contacts central server to find IP addresses of buddies 2:Application Layer 10
2: Application Layer 10 Hybrid of client-server and P2P Skype ❖ Internet telephony app ❖ Finding address of remote party: centralized server(s) ❖ Client-client connection is direct (not through server) Instant messaging ❖ Chatting between two users is P2P ❖ Presence detection/location centralized: • User registers its IP address with central server when it comes online • User contacts central server to find IP addresses of buddies