Last time Today: Application Layer Mobile network Our goals: � Internet overview � learn about protocols Global ISP � conceptual, � what’s a protocol? by examining popular implementation � network edge, core, access application-level aspects of network network Home network protocols application protocols application pp Regional ISP Regional ISP � packet-switching versus k t it hi � HTTP � HTTP � transport-layer circuit-switching � (FTP) service models transport � SMTP/POP3/IMAP � Internet/ISP structure Institutional network � client-server � DNS � performance: loss, delay paradigm network � P2P file sharing � layering and service models � peer-to-peer paradigm link � history physical 11/9-09 Datakommunikation - Jonny Pettersson, UmU 11/9-09 Datakommunikation - Jonny Pettersson, UmU Creating a network app A day in the life: scenario application transport network data link write programs that physical browser DNS server � run on (different) end Comcast network 68.80.0.0/13 systems � communicate over network � e.g., web server software communicates with browser communicates with browser school network software 68.80.2.0/24 application No need to write software transport web page network data link for network-core devices application physical transport network � Network-core devices do data link physical not run user applications web server Google’s network � applications on end systems 64.233.169.105 64.233.160.0/19 allows for rapid application development, propagation 11/9-09 Datakommunikation - Jonny Pettersson, UmU 11/9-09 Datakommunikation - Jonny Pettersson, UmU Creating a network app: Choices Client-server architecture server: � Application architecture � always-on host � Client-server � permanent IP address � Peer-to-peer (P2P) � server farms for � Hybrid of client-server and P2P scaling � Transport service clients: � communicate with server � Sockets client/server � may be intermittently � TCP connected � UDP � may have dynamic IP addresses � Application layer protocol � do not communicate directly with each other 11/9-09 11/9-09 Datakommunikation - Jonny Pettersson, UmU Datakommunikation - Jonny Pettersson, UmU 1
Pure P2P architecture Hybrid of client-server and P2P Skype � no always-on server � voice-over-IP P2P application � arbitrary end systems � centralized server: finding address of remote party directly communicate peer-peer � client-client connection: direct (not through � peers are intermittently server) connected and change IP connected and change IP Instant messaging addresses � chatting between two users is P2P � centralized service: client presence detection/location • user registers its IP address with central Highly scalable but server when it comes online difficult to manage • user contacts central server to find IP addresses of buddies 11/9-09 Datakommunikation - Jonny Pettersson, UmU 11/9-09 Datakommunikation - Jonny Pettersson, UmU Processes communicating Sockets Client process: process Process: program running � process sends/receives host or host or server that initiates server within a host messages to/from its communication socket � within same host, two controlled by Server process: process app developer processes communicate � socket analogous to door process process that waits to be using inter-process g p � sending process shoves � sending process shoves socket socket contacted communication (defined message out door TCP with TCP with Internet by OS) � sending process relies on buffers, buffers, variables variables transport infrastructure � processes in different � Note: applications with on other side of door which hosts communicate by P2P architectures have brings message to socket controlled exchanging messages client processes & by OS at receiving process server processes � API: (1) choice of transport protocol; (2) ability to fix a few parameters 11/9-09 Datakommunikation - Jonny Pettersson, UmU 11/9-09 Datakommunikation - Jonny Pettersson, UmU What transport service does an app need? Addressing processes Data loss Throughput � to receive messages, � identifier includes both � some apps (e.g., audio) can � some apps (e.g., process must have IP address and port tolerate some loss multimedia) require identifier numbers associated with � other apps (e.g., file minimum amount of process on host � host device has unique transfer, telnet) require throughput to be 32-bit IP address � Example port numbers: 100% reliable data “effective” � Q: does IP address of � Q: does IP address of � HTTP server: 80 � HTTP server: 80 t transfer f � other apps (“elastic apps”) host on which process � Mail server: 25 Timing make use of whatever runs suffice for � to send HTTP message � some apps (e.g., throughput they get identifying the to gaia.cs.umass.edu web Internet telephony, Security process? server: interactive games) � Encryption, data � A: No, many require low delay to be � IP address: 128.119.245.12 “effective” integrity, … processes can be � Port number: 80 running on same host 11/9-09 11/9-09 Datakommunikation - Jonny Pettersson, UmU Datakommunikation - Jonny Pettersson, UmU 2
Internet transport protocols services Transport service requirements of common apps TCP service: UDP service: � unreliable data transfer Time Sensitive � connection-oriented: setup Application Data loss Bandwidth required between client and between sending and no server processes receiving process file transfer no loss elastic no e-mail no loss elastic � reliable transport between � does not provide: no Web documents no loss elastic sending and receiving process connection setup, yes, 100 s msec yes 100’s msec real time audio/video real-time audio/video reliability, flow control, loss-tolerant l t l t audio: 5kbps-1Mbps di 5kb 1Mb � flow control: sender won’t video:10kbps-5Mbps congestion control, timing, overwhelm receiver yes, few secs stored audio/video loss-tolerant same as above or bandwidth guarantee � congestion control: throttle yes, 100’s msec interactive games loss-tolerant few kbps up sender when network instant messaging yes and no no loss elastic overloaded Q: Why bother? Why is there a UDP? � does not provide: timing, minimum bandwidth guarantees 11/9-09 Datakommunikation - Jonny Pettersson, UmU 11/9-09 Datakommunikation - Jonny Pettersson, UmU App-layer protocol defines Internet apps: application, transport protocols � Types of messages Public-domain protocols: Application Underlying exchanged, layer protocol � defined in RFCs Application transport protocol � e.g., request, response � allows for e-mail SMTP [RFC 2821] TCP � Message syntax: interoperability remote terminal access Telnet [RFC 854] TCP � what fields in messages & Web HTTP [RFC 2616] TCP � e.g., HTTP, SMTP � e.g., HTTP, SMTP how fields are delineated h f ld d l d file transfer fil t f FTP [RFC 959] FTP [RFC 959] TCP TCP Proprietary protocols: streaming multimedia HTTP (eg Youtube), � Message semantics TCP or UDP � e.g., Skype RTP [RFC 1889] � meaning of information in SIP, RTP, proprietary Internet telephony fields (e.g., Skype) typically UDP � Rules for when and how processes send & respond to messages 11/9-09 Datakommunikation - Jonny Pettersson, UmU 11/9-09 Datakommunikation - Jonny Pettersson, UmU Web and HTTP HTTP overview First some jargon HTTP: hypertext transfer protocol � Web page consists of objects � Web’s application layer � Object can be HTML file, JPEG image, Java protocol PC running applet, audio file,… Explorer � client/server model � Web page consists of base HTML-file which p g � client: browser that � client: browser that includes several referenced objects requests, receives, � Each object is addressable by a URL “displays” Web objects Server running � server: Web server � Example URL: Apache Web sends objects in server response to requests www.someschool.edu/someDept/pic.gif � HTTP 1.0: RFC 1945 Mac running path name host name Navigator � HTTP 1.1: RFC 2616 11/9-09 11/9-09 Datakommunikation - Jonny Pettersson, UmU Datakommunikation - Jonny Pettersson, UmU 3
Recommend
More recommend