Part 2 application Layer Our goals: More chapter goals r conceptual, r specific protocols: Implementation mhttp aspects of network m ftp application protocols m smtp m client-server m po paradigm dns m service models r programming network r learn about protocols applications y examining popular m socket API application-level protocols 2: Application Layer 1
2: Application Layer 1 Part 2: Application Layer Our goals: r conceptual, implementation aspects of network application protocols m client-server paradigm m service models r learn about protocols by examining popular application-level protocols More chapter goals r specific protocols: m http m ftp m smtp m pop m dns r programming network applications m socket API
Applications and application-layer protocols Application: communicating, plication distributed processes m running in network hosts in physical user space exchange messages to implement application ●●● m e.g., email, ftp, Web Application-layer protocols 受 one piece" of an app m define messages exchanged by apps and transport actions taken hysical m use communication services provided by lower layer protocols(TCP, UDP 2: Application Layer 2
2: Application Layer 2 Applications and application-layer protocols Application: communicating, distributed processes m running in network hosts in “user space” m exchange messages to implement application m e.g., email, ftp, Web Application-layer protocols m one “piece” of an app m define messages exchanged by apps and actions taken m 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
Network applications: some jargon Process: program running r user agent: software within a host process, Interfacing r within same host two with user above"and processes communicate network " below using interprocess m implements communication(defined application-level by Os) rotocol r processes running m Web: browser different hosts E-mail: mail reader communicate with an application-layer m streaming rotoco audio/video: media player 2: Application Layer 3
2: Application Layer 3 Network applications: some jargon Process: program running within a host. r within same host, two processes communicate using interprocess communication (defined by OS). r processes running in different hosts communicate with an application-layer protocol r user agent: software process, interfacing with user “above” and network “below”. m implements application-level protocol m Web: browser m E-mail: mail reader m streaming audio/video: media player
Client-server paradigm Typical network app has two oplication pieces: client and server pny Client: reque initiates contact with server Speaks first ■●● r typically requests service from server re r Web: client implemented in browser' e-mail: in mail reader plication Server hysical r provides requested service to client r e.g., Web server sends requested Web page, mail server delivers e-mail 2: Application Layer 4
2: Application Layer 4 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: r initiates contact with server (“speaks first”) r typically requests service from server, r Web: client implemented in browser; e-mail: in mail reader request reply Server: r provides requested service to client r e.g., Web server sends requested Web page, mail server delivers e-mail
Application-layer protocols(cont API: application Q: how does a process programming interface "identify"the other rdefⅰ nes interface process with which it between application and wants to communicate? transport layers IP address of host r socket: Internet api running oTher process m "port number" -allows m two processes receiving host to communicate by sending determine to which loca data into socket, reading lata out of socket process the message should be delivered lots more on this later 2: Application Layer
2: Application Layer 5 Application-layer protocols (cont). API: application programming interface r defines interface between application and transport layers r socket: Internet API m two processes communicate by sending data into socket, reading data out of socket Q: how does a process “identify” the other process with which it wants to communicate? m IP address of host running other process m “port number” - allows receiving host to determine to which local process the message should be delivered … lots more on this later