Chapter 2 Application Layer Computer Networking A Top Down Approach The powerpoint slides are based on Featuring the Internet 2nd edition the material provided by Jim Kurose, Keith Ros JF Kurose and K.W. ross Addison-Wesley, Juf 2002 2: Application Layer 1
2: Application Layer 1 Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 2nd edition. Jim Kurose, Keith Ross Addison-Wesley, July 2002. The PowerPoint Slides are based on the material provided by J.F Kurose and K.W. Ross
Chapter 2: Application Layer Our goals: D learn about protocols o conceptual by examining popular implementation application-level aspects of network protocols application protocols O Http o transport-layer O FTP service models O SMTP/POP3/ IMAP o client-server O DNS paradigm o programming network o peer-to-peer applications paradigm o socket aPI 2: Application Layer 2
2: Application Layer 2 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
Chapter 2 outline 口21 Principles of layer protoco/∞ 口26S0 cket programming with tCp o clients and servers 0 2.7 Socket programming o app requirements with UDP 02.2 Web and Http 02.8 Building a Web 口2.3FTP server 口24E| ectronic mail 02.9 Content distribution O SMTP POP3, IMAP o Network Web caching 0 25DNS o Content distribution networks o P2P file sharing 2: Application Layer 3
2: Application Layer 3 Chapter 2 outline 2.1 Principles of app layer protocols clients and servers app requirements 2.2 Web and HTTP 2.3 FTP 2.4 Electronic Mail SMTP, POP3, IMAP 2.5 DNS 2.6 Socket programming with TCP 2.7 Socket programming with UDP 2.8 Building a Web server 2.9 Content distribution Network Web caching Content distribution networks P2P file sharing
Network applications: some jargon Process: program running user agent: interfaces within a host with user above"and 口 within same host,two network" below processes communicate o implements user using interprocess interface communication(defined application-level by Os) proToco o processes running o eb: browser different hosts o E-mail: mail reader communicate with an o streaming audio/video application-layer media player rotoco 2: Application Layer 4
2: Application Layer 4 Network applications: some jargon Process: program running within a host. within same host, two processes communicate using interprocess communication (defined by OS). processes running in different hosts communicate with an application-layer protocol user agent: interfaces with user “above” and network “below”. implements user interface & application-level protocol Web: browser E-mail: mail reader streaming audio/video: media player
Applications and application-layer protocols Application: communicating, plication distributed processes o e.g., e-mail, Web, P2P file physical sharing, instant messaging o running in end systems (hosts ●●● o exchange messages to implement application Application-layer protocols 受 o one plece of an app o define messages transport exchanged by apps and hysical actions taken o use communication services provided by lower layer protocols(TCP UDP 2: Application Layer 5
2: Application Layer 5 Applications and application-layer protocols Application: communicating, distributed processes e.g., e-mail, Web, P2P file sharing, instant messaging running in end systems (hosts) exchange messages to implement application Application-layer protocols one “piece” of an app define messages exchanged by apps and actions taken use communication services provided by lower layer protocols (TCP, UDP) application transport network data link physical application transport network data link physical application transport network data link physical
App-layer protocol defines o Types of messages Public-domain protocols exchanged, eg, request o defined in RFCs response messages d allows for O Syntax of message interoperability types: what fields in messages how fields o eg, Http, Smtp are delineated Proprietary protocols 口 Semantics of the D eg, KazaA fields, ie, meaning of information in fields 口 Rules for when and how processes send respond to messages 2: Application Layer 6
2: Application Layer 6 App-layer protocol defines Types of messages exchanged, eg, request & response messages Syntax of message types: what fields in messages & how fields are delineated Semantics of the fields, ie, meaning of information in fields Rules for when and how processes send & respond to messages Public-domain protocols: defined in RFCs allows for interoperability eg, HTTP, SMTP Proprietary protocols: eg, KaZaA
Client-server paradigm Typical network app has two oplication pieces: client and server pny Client: reque g initiates contact with server Speaks first ■●● o typically requests service from server re o Web: client implemented in browser' e-mail: in mail reader plication Server hysical g provides requested service to client o e.g., Web server sends requested Web page, mail server delivers e-mail 2: Application Layer 7
2: Application Layer 7 Client-server paradigm Typical network app has two pieces: client and server application transport network data link physical application transport network data link physical Client: initiates contact with server (“speaks first”) typically requests service from server, Web: client implemented in browser; e-mail: in mail reader request reply Server: provides requested service to client e.g., Web server sends requested Web page, mail server delivers e-mail
Processes communicating across network host or host or o process sends/receives server server messages to/from its socket controlled by app developer O socket analogous to door process process o Sending process shoves socket socket message out door TCP ith TCP with buffers Internet buffers o Sending process assumes variables variabies transport infrastructure on other side of door which brings message to socket controlled at receiving process D API:( 1) choice of transport protocol;(2)ability to fix a few parameters(lots more on this later) 2: Application Layer 8
2: Application Layer 8 Processes communicating across network process sends/receives messages to/from its socket socket analogous to door sending process shoves message out door sending process asssumes transport infrastructure on other side of door which brings message to socket at receiving process process TCP with buffers, variables socket host or server process TCP with buffers, variables socket host or server Internet controlled by OS controlled by app developer API: (1) choice of transport protocol; (2) ability to fix a few parameters (lots more on this later)
Addressing processes 口 For a process to 口 Identifier includes receive messages, it both the ip address must have an identifier and port numbers O Every host has a unique associated with the 32-bit Ip address pr rocess on the host o Q: does the IP address D Example port numbers of the host on which Ohttpserver80 the process runs o Mail server: 25 suffice for identifying o More on this later the process? D Answer: No, many rocesses can be running on same host 2: Application Layer 9
2: Application Layer 9 Addressing processes: For a process to receive messages, it must have an identifier Every host has a unique 32-bit IP address Q: does the IP address of the host on which the process runs suffice for identifying the process? Answer: No, many processes can be running on same host Identifier includes both the IP address and port numbers associated with the process on the host. Example port numbers: HTTP server: 80 Mail server: 25 More on this later
What transport service does an app need? Data loss Bandwidth D some apps (e.g, audio )can o some apps( e.g tolerate some loss multimedia) require 口 other apps(eg,fle minimum amount of transfer, telnet require 100%reliable data bandwidth to be transfer effective Timing O other apps elastic apps )make use of O some apps(e.g. whatever bandwidth Internet telephony interactive games) they get require low delay to be effective" 2: Application Layer 10
2: Application Layer 10 What transport service does an app need? Data loss some apps (e.g., audio) can tolerate some loss other apps (e.g., file transfer, telnet) require 100% reliable data transfer Timing some apps (e.g., Internet telephony, interactive games) require low delay to be “effective” Bandwidth some apps (e.g., multimedia) require minimum amount of bandwidth to be “effective” other apps (“elastic apps”) make use of whatever bandwidth they get