1
play

1 Creating a network app application transport network data link - PDF document

Last time Mobile network Internet overview Global ISP whats a protocol? network edge, core, access network Home network Regional ISP Regional ISP packet-switching versus k t it hi circuit-switching Internet/ISP


  1. Last time Mobile network � Internet overview Global ISP � what’s a protocol? � network edge, core, access network Home network Regional ISP Regional ISP � packet-switching versus k t it hi circuit-switching � Internet/ISP structure Institutional network � performance: loss, delay � layering and service models � history 11/9-09 Datakommunikation - Jonny Pettersson, UmU Today: Application Layer Our goals: � learn about protocols � conceptual, by examining popular implementation application-level aspects of network protocols application protocols application pp � HTTP � HTTP � transport-layer � (FTP) service models transport � SMTP/POP3/IMAP � client-server � DNS network paradigm � P2P file sharing � peer-to-peer paradigm link physical 11/9-09 Datakommunikation - Jonny Pettersson, UmU A day in the life: scenario DNS server browser Comcast network 68.80.0.0/13 school network 68.80.2.0/24 web page web server Google’s network 64.233.169.105 64.233.160.0/19 11/9-09 Datakommunikation - Jonny Pettersson, UmU 1

  2. Creating a network app application transport network data link write programs that physical � run on (different) end systems � communicate over network � e.g., web server software communicates with browser communicates with browser software application No need to write software transport network data link for network-core devices application physical transport network � Network-core devices do data link physical not run user applications � applications on end systems allows for rapid application development, propagation 11/9-09 Datakommunikation - Jonny Pettersson, UmU Creating a network app: Choices � Application architecture � Client-server � Peer-to-peer (P2P) � Hybrid of client-server and P2P � Transport service � Sockets � TCP � UDP � Application layer protocol 11/9-09 Datakommunikation - Jonny Pettersson, UmU Client-server architecture server: � always-on host � permanent IP address � server farms for scaling clients: � communicate with server client/server � may be intermittently connected � may have dynamic IP addresses � do not communicate directly with each other 11/9-09 Datakommunikation - Jonny Pettersson, UmU 2

  3. Pure P2P architecture � no always-on server � arbitrary end systems directly communicate peer-peer � peers are intermittently connected and change IP connected and change IP addresses Highly scalable but difficult to manage 11/9-09 Datakommunikation - Jonny Pettersson, UmU Hybrid of client-server and P2P Skype � voice-over-IP P2P application � centralized server: finding address of remote party � client-client connection: direct (not through server) Instant messaging � chatting between two users is P2P � centralized service: client presence detection/location • user registers its IP address with central server when it comes online • user contacts central server to find IP addresses of buddies 11/9-09 Datakommunikation - Jonny Pettersson, UmU Processes communicating Client process: process Process: program running that initiates within a host communication � within same host, two Server process: process processes communicate that waits to be using inter-process g p contacted communication (defined by OS) � processes in different � Note: applications with hosts communicate by P2P architectures have exchanging messages client processes & server processes 11/9-09 Datakommunikation - Jonny Pettersson, UmU 3

  4. Sockets � process sends/receives host or host or server server messages to/from its socket controlled by app developer � socket analogous to door process process � sending process shoves � sending process shoves socket socket message out door TCP with TCP with Internet � sending process relies on buffers, buffers, variables variables transport infrastructure on other side of door which brings message to socket controlled by OS at receiving process � API: (1) choice of transport protocol; (2) ability to fix a few parameters 11/9-09 Datakommunikation - Jonny Pettersson, UmU Addressing processes � to receive messages, � identifier includes both process must have IP address and port identifier numbers associated with process on host � host device has unique 32-bit IP address � Example port numbers: � Q: does IP address of � Q: does IP address of � HTTP server: 80 � HTTP server: 80 host on which process � Mail server: 25 runs suffice for � to send HTTP message identifying the to gaia.cs.umass.edu web process? server: � A: No, many � IP address: 128.119.245.12 processes can be � Port number: 80 running on same host 11/9-09 Datakommunikation - Jonny Pettersson, UmU What transport service does an app need? Data loss Throughput � some apps (e.g., audio) can � some apps (e.g., tolerate some loss multimedia) require � other apps (e.g., file minimum amount of transfer, telnet) require throughput to be 100% reliable data “effective” t transfer f � other apps (“elastic apps”) Timing make use of whatever � some apps (e.g., throughput they get Internet telephony, Security interactive games) � Encryption, data require low delay to be “effective” integrity, … 11/9-09 Datakommunikation - Jonny Pettersson, UmU 4

  5. Transport service requirements of common apps Time Sensitive Application Data loss Bandwidth no file transfer no loss elastic no e-mail no loss elastic no Web documents no loss elastic yes 100’s msec yes, 100 s msec real-time audio/video real time audio/video l loss-tolerant t l t audio: 5kbps-1Mbps di 5kb 1Mb video:10kbps-5Mbps yes, few secs stored audio/video loss-tolerant same as above yes, 100’s msec interactive games loss-tolerant few kbps up instant messaging yes and no no loss elastic 11/9-09 Datakommunikation - Jonny Pettersson, UmU Internet transport protocols services UDP service: TCP service: � connection-oriented: setup � unreliable data transfer required between client and between sending and receiving process server processes � reliable transport between � does not provide: connection setup, sending and receiving process reliability, flow control, � flow control: sender won’t congestion control, timing, overwhelm receiver or bandwidth guarantee � congestion control: throttle sender when network overloaded Q: Why bother? Why is there a UDP? � does not provide: timing, minimum bandwidth guarantees 11/9-09 Datakommunikation - Jonny Pettersson, UmU Internet apps: application, transport protocols Application Underlying Application layer protocol transport protocol SMTP [RFC 2821] e-mail TCP remote terminal access Telnet [RFC 854] TCP Web HTTP [RFC 2616] TCP FTP [RFC 959] FTP [RFC 959] file transfer fil t f TCP TCP streaming multimedia HTTP (eg Youtube), TCP or UDP RTP [RFC 1889] Internet telephony SIP, RTP, proprietary (e.g., Skype) typically UDP 11/9-09 Datakommunikation - Jonny Pettersson, UmU 5

  6. App-layer protocol defines Public-domain protocols: � Types of messages exchanged, � defined in RFCs � e.g., request, response � allows for � Message syntax: interoperability � what fields in messages & � e.g., HTTP, SMTP � e.g., HTTP, SMTP h how fields are delineated f ld d l d Proprietary protocols: � Message semantics � e.g., Skype � meaning of information in fields � Rules for when and how processes send & respond to messages 11/9-09 Datakommunikation - Jonny Pettersson, UmU Web and HTTP First some jargon � Web page consists of objects � Object can be HTML file, JPEG image, Java applet, audio file,… � Web page consists of base HTML-file which p g includes several referenced objects � Each object is addressable by a URL � Example URL: www.someschool.edu/someDept/pic.gif path name host name 11/9-09 Datakommunikation - Jonny Pettersson, UmU HTTP overview HTTP: hypertext transfer protocol � Web’s application layer protocol PC running Explorer � client/server model � client: browser that � client: browser that requests, receives, “displays” Web objects Server running � server: Web server Apache Web sends objects in server response to requests � HTTP 1.0: RFC 1945 Mac running Navigator � HTTP 1.1: RFC 2616 11/9-09 Datakommunikation - Jonny Pettersson, UmU 6

Recommend


More recommend