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