An application-layer protocol defines: types of messages exchanged, open protocols: e.g.,request,response defined in RFCs,everyone ■message syntax: has access to protocol what fields in messages definition how fields are delineated allows for interoperability ■message semantics ·eg,HTTP,SMTP meaning of information in proprietary protocols: fields ■eg,Skype ■rules for when and how processes send respond to messages Application Layer:2-11
An application-layer protocol defines: Application Layer: 2-11 ▪ types of messages exchanged, • e.g., request, response ▪ message syntax: • what fields in messages & how fields are delineated ▪ message semantics • meaning of information in fields ▪ rules for when and how processes send & respond to messages open protocols: ▪ defined in RFCs, everyone has access to protocol definition ▪ allows for interoperability ▪ e.g., HTTP, SMTP proprietary protocols: ▪ e.g., Skype
What transport service does an app need? data integrity throughput some apps (e.g.,file transfer, some apps (e.g.,multimedia) web transactions)require require minimum amount of 100%reliable data transfer throughput to be "effective" other apps (e.g.,audio)can other apps ("elastic apps") tolerate some loss make use of whatever throughput they get timing some apps (e.g.,Internet security telephony,interactive games) encryption,data integrity, require low delay to be"effective" Application Layer:2-12
What transport service does an app need? Application Layer: 2-12 data integrity ▪ some apps (e.g., file transfer, web transactions) require 100% reliable data transfer ▪ other apps (e.g., audio) can tolerate some loss timing ▪ some apps (e.g., Internet telephony, interactive games) require low delay to be “effective” throughput ▪ some apps (e.g., multimedia) require minimum amount of throughput to be “effective” ▪ other apps (“elastic apps”) make use of whatever throughput they get security ▪ encryption, data integrity, …
Transport service requirements:common apps application data loss throughput time sensitive? file transfer/download no loss elastic no e-mail no loss elastic no Web documents no loss elastic no real-time audio/video loss-tolerant audio:5Kbps-1Mbps yes,10's msec video:10Kbps-5Mbps streaming audio/video loss-tolerant same as above yes,few secs interactive games loss-tolerant Kbps+ yes,10's msec text messaging no loss elastic yes and no Application Layer:2-13
Transport service requirements: common apps Application Layer: 2-13 application file transfer/download e-mail Web documents real-time audio/video streaming audio/video interactive games text messaging data loss no loss no loss no loss loss-tolerant loss-tolerant loss-tolerant no loss throughput elastic elastic elastic audio: 5Kbps-1Mbps video:10Kbps-5Mbps same as above Kbps+ elastic time sensitive? no no no yes, 10’s msec yes, few secs yes, 10’s msec yes and no
Internet transport protocols services TCP service: UDP service: reliable transport between sending unreliable data transfer and receiving process between sending and receiving flow control:sender won't process overwhelm receiver does not provide:reliability, congestion control:throttle sender flow control,congestion when network overloaded control,timing,throughput guarantee,security,or does not provide:timing,minimum connection setup. throughput guarantee,security connection-oriented:setup required Q:why bother?Why between client and server processes is there a UDP? Application Layer:2-14
Internet transport protocols services Application Layer: 2-14 TCP service: ▪ reliable transport between sending and receiving process ▪ flow control: sender won’t overwhelm receiver ▪ congestion control: throttle sender when network overloaded ▪ does not provide: timing, minimum throughput guarantee, security ▪ connection-oriented: setup required between client and server processes UDP service: ▪ unreliable data transfer between sending and receiving process ▪ does not provide: reliability, flow control, congestion control, timing, throughput guarantee, security, or connection setup. Q: why bother? Why is there a UDP?
Internet transport protocols services application application layer protocol transport protocol file transfer/download FTP [RFC 959] TCP e-mail SMTP [RFC 5321] TCP Web documents HTTP 1.1 [RFC 7320] TCP Internet telephony SIP [RFC 3261],RTP [RFC TCP or UDP 3550],or proprietary streaming audio/video HTTP [RFC 7320],DASH TCP interactive games WOW,FPS(proprietary) UDP or TCP Application Layer:2-15
Internet transport protocols services Application Layer: 2-15 application file transfer/download e-mail Web documents Internet telephony streaming audio/video interactive games application layer protocol FTP [RFC 959] SMTP [RFC 5321] HTTP 1.1 [RFC 7320] SIP [RFC 3261], RTP [RFC 3550], or proprietary HTTP [RFC 7320], DASH WOW, FPS (proprietary) transport protocol TCP TCP TCP TCP or UDP TCP UDP or TCP