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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend