Chapter 2 Application Layer

Similar documents
Application-Layer Protocols Peer-to-Peer Systems, Media Streaming & Content Delivery Networks

CSC 401 Data and Computer Communications Networks

Multimedia: video ... frame i+1

Mohammad Hossein Manshaei 1393

CSC 257/457 Computer Networks. Fall 2017 MW 4:50 pm 6:05 pm CSB 601

Week-12 (Multimedia Networking)

COMP6218: Content Caches. Prof Leslie Carr

Content distribution networks

MULTIMEDIA I CSC 249 APRIL 26, Multimedia Classes of Applications Services Evolution of protocols

Chapter 9. Multimedia Networking. Computer Networking: A Top Down Approach

Chapter 2 Application Layer

Web caches (proxy server)

CSC 4900 Computer Networks: Multimedia Applications

CSC 401 Data and Computer Communications Networks

Mul$media Networking. #9 CDN Solu$ons Semester Ganjil 2012 PTIIK Universitas Brawijaya

Chapter 2 Application Layer

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng.

Chapter 2 Application Layer

Lec 17 Multimedia Transport: RTP, TCP/HTTP and QUIC

Chapter 7: Multimedia Networking

Chapter 2 Application Layer

CSC358 Week 2. Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright J.F Kurose and K.W. Ross, All Rights Reserved

CS 471G Friday, 11 January Introduction 2-1

Application Layer: HTTP

Chapter 1 Introduction

Lecture 6: Application Layer Web proxies, , and SMTP

Chapter 2 Application Layer

CSC 4900 Computer Networks:

Web, HTTP and Web Caching

Chapter 5 Link Layer. Computer Networking: A Top Down Approach. 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012

Web Protocols and Practice

Chapter 3 Transport Layer

Chapter 7 Multimedia Networking

HyperText Transfer Protocol

Chapter 1 Introduction

Chapter 4 Network Layer: The Data Plane

Chapter 1 Introduction

1-1. Switching Networks (Fall 2010) EE 586 Communication and. September Lecture 10

Lecture 04: Application Layer (Part 01) Principles and the World Wide Web (HTTP) Dr. Anis Koubaa

Chapter 4. Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, sl April 2009.

Chapter 4 Network Layer: The Data Plane

Since enrollment is very small this semester, we have flexibilty. Traditional lecture Assigned reading, and then student(s) present during class time

Multimedia networking: outline

Review of Previous Lecture

CMSC 332 Computer Networking Web and FTP

Computer Networks. Wenzhong Li. Nanjing University

Chapter 3 Transport Layer

Chapter 3 Transport Layer

CSCE 463/612 Networks and Distributed Processing Spring 2018

CSEN 404 Introduction to Networks. Mervat AbuElkheir Mohamed Abdelrazik. ** Slides are attributed to J. F. Kurose

Web caches (proxy server) Applications (part 3) Applications (part 3) Caching example (1) More about Web caching

1. What is a Computer Network? interconnected collection of autonomous computers connected by a communication technology

Chapter 2 Application Layer. Lecture 4: principles of network applications. Computer Networking: A Top Down Approach

Computer Communication Networks Application

Chapter 3 Transport Layer

Chapter 8 Security. Computer Networking: A Top Down Approach

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

Chapter 2: Application layer

Chapter 9. Multimedia Networking. Computer Networking: A Top Down Approach

Chapter 1 Introduction

Chapter 3: Transport Layer. Chapter 3 Transport Layer. Chapter 3 outline. Transport services and protocols

CSC358 Week 3. Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright J.F Kurose and K.W. Ross, All Rights Reserved

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

Chapter 2 Application Layer

Overview Content Delivery Computer Networking Lecture 15: The Web Peter Steenkiste. Fall 2016

Chapter 3 Transport Layer

Chapter 3 Transport Layer

Chapter 3 Transport Layer

COSC4377. Chapter 2: Outline

Chapter 2: outline. 2.5 P2P applications 2.6 video streaming and content distribution networks 2.7 socket programming with UDP and TCP

CSEN 503 Introduction to Communication Networks

Computer Networks and Applications

Chapter 2: Application Layer. Chapter 2 Application Layer. Some network apps. Application architectures. Chapter 2: Application layer

Chapter 2: outline. 2.5 P2P applications 2.6 video streaming and content distribution networks 2.7 socket programming with UDP and TCP

Chapter 7 Multimedia Networking

Chapter 2 Application Layer

Quality of Service (QoS)

internet technologies and standards

CSC 401 Data and Computer Communications Networks

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 5

CSC 4900 Computer Networks: Introduction

CS 3516: Advanced Computer Networks

RSC Part I: Introduction

Page 1. Outline / Computer Networking : 1 st Generation Commercial PC/Packet Video Technologies

Computer Networks. Dr. Abdel Ilah ALshbatat Dept. of Communication and Computer Engineering Faculty of Engineering Tafila Technical University

TDTS06: Computer Networks

Fundamentals of Information Systems

Lecture 2: Internet Structure

Chapter 2: Application Layer

Lecture 12. Application Layer. Application Layer 1

Domain Name System (DNS) 김현철 ( 화 ) 정보통신융합서울대학교컴퓨터공학부

COE 431 Computer Networks. Welcome to Exam I Thursday April 02, Instructor: Wissam F. Fawaz

Chapter 4 Network Layer: The Data Plane

Protocol Layers, Security Sec: Application Layer: Sec 2.1 Prof Lina Battestilli Fall 2017

PLEASE READ CAREFULLY BEFORE YOU START

Chapter 8 Network Security

Application Layer: P2P File Distribution

CS 3516: Advanced Computer Networks

CSC 401 Data and Computer Communications Networks

Transcription:

Chapter 2 Application Layer A note on the use of these Powerpoint slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: If you use these slides (e.g., in a class) that you mention their source (after all, we d like people to use our book!) If you post any slides on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Thanks and enjoy! JFK/KWR All material copyright 1996-2016 J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down Approach 7 th Edition, Global Edition Jim Kurose, Keith Ross Pearson April 2016 Application Layer 2-1

Chapter 2: outline 2.1 principles of network applications 2.2 Web and HTTP 2.3 electronic mail SMTP, POP3, IMAP 2.4 DNS 2.5 P2P applications 2.6 video streaming and content distribution networks 2.7 socket programming with UDP and TCP Application Layer 2-2

Web caches (proxy server) goal: satisfy client request without involving origin server user sets browser: Web accesses via cache browser sends all HTTP requests to cache object in cache: cache returns object else cache requests object from origin server, then returns object to client client proxy server origin server client origin server Application Layer 2-3

More about Web caching cache acts as both client and server server for original requesting client client to origin server typically cache is installed by ISP (university, company, residential ISP) why Web caching? reduce response time for client request reduce traffic on an institution s access link Internet dense with caches: enables poor content providers to effectively deliver content (so too does P2P file sharing) Application Layer 2-4

Caching example: assumptions: avg object size: 100K bits avg request rate from browsers to origin servers:15/sec avg data rate to browsers: 1.50 Mbps RTT from institutional router to any origin server: 2 sec access link rate: 1.54 Mbps consequences: LAN utilization: 15% problem! access link utilization = 99% total delay = Internet delay + access delay + LAN delay = 2 sec + minutes + usecs institutional network public Internet 1.54 Mbps access link origin servers 1 Gbps LAN Application Layer 2-5

Caching example: fatter access link assumptions: avg object size: 100K bits avg request rate from browsers to origin servers:15/sec avg data rate to browsers: 1.50 Mbps RTT from institutional router to any origin server: 2 sec access link rate: 1.54 Mbps consequences: LAN utilization: 15% access link utilization = 99% total delay = Internet delay + access delay + LAN delay = 2 sec + minutes + usecs msecs origin servers 154 Mbps 1.54 Mbps 154 Mbps access link 9.9% institutional network public Internet Cost: increased access link speed (not cheap!) 1 Gbps LAN Application Layer 2-6

Caching example: install local cache assumptions: avg object size: 100K bits avg request rate from browsers to origin servers:15/sec avg data rate to browsers: 1.50 Mbps RTT from institutional router to any origin server: 2 sec access link rate: 1.54 Mbps consequences: LAN utilization: 15% access link utilization = 100%? total delay = Internet? delay + access delay + LAN delay How to compute link = 2 sec + minutes + usecs utilization, delay? Cost: web cache (cheap!) institutional network public Internet 1.54 Mbps access link origin servers 1 Gbps LAN local web cache Application Layer 2-7

Caching example: install local cache Calculating access link utilization, delay with cache: suppose cache hit rate is 0.4 40% requests satisfied at cache, 60% requests satisfied at origin access link utilization: 60% of requests use access link data rate to browsers over access link = 0.6*1.50 Mbps =.9 Mbps utilization = 0.9/1.54 =.58 total delay = 0.6 * (delay from origin servers) +0.4 * (delay when satisfied at cache) = 0.6 (2.01) + 0.4 (~msecs) = ~ 1.2 secs less than with 154 Mbps link (and cheaper too!) institutional network public Internet 1.54 Mbps access link origin servers 1 Gbps LAN local web cache Application Layer 2-8

Conditional GET Goal: don t send object if cache has up-to-date cached version no object transmission delay lower link utilization cache: specify date of cached copy in HTTP request If-modified-since: <date> server: response contains no object if cached copy is up-to-date: HTTP/1.0 304 Not Modified client HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 304 Not Modified HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 200 OK <data> server object not modified before <date> object modified after <date> Application Layer 2-9

Chapter 2: outline 2.1 principles of network applications 2.2 Web and HTTP 2.3 electronic mail SMTP, POP3, IMAP 2.4 DNS 2.5 P2P applications 2.6 video streaming and content distribution networks (CDNs) 2.7 socket programming with UDP and TCP Application Layer 2-10

Video Streaming and CDNs: context video traffic: major consumer of Internet bandwidth Netflix, YouTube: 37%, 16% of downstream residential ISP traffic ~1B YouTube users, ~75M Netflix users challenge: scale - how to reach ~1B users? single mega-video server won t work (why?) challenge: heterogeneity different users have different capabilities (e.g., wired versus mobile; bandwidth rich versus bandwidth poor) solution: distributed, application-level infrastructure Application Layer 2-11

Multimedia: video video: sequence of images displayed at constant rate e.g., 24 images/sec digital image: array of pixels each pixel represented by bits coding: use redundancy within and between images to decrease # bits used to encode image spatial (within image) temporal (from one image to next) spatial coding example: instead of sending N values of same color (all purple), send only two values: color value (purple) and number of repeated values (N).... frame i temporal coding example: instead of sending complete frame at i+1, send only differences from frame i frame i+1 Application Layer 2-12

Multimedia: video CBR: (constant bit rate): video encoding rate fixed VBR: (variable bit rate): video encoding rate changes as amount of spatial, temporal coding changes examples: MPEG 1 (CD-ROM) 1.5 Mbps MPEG2 (DVD) 3-6 Mbps MPEG4 (often used in Internet, < 1 Mbps) spatial coding example: instead of sending N values of same color (all purple), send only two values: color value (purple) and number of repeated values (N).... frame i temporal coding example: instead of sending complete frame at i+1, send only differences from frame i frame i+1 Application Layer 2-13

Streaming stored video: simple scenario: Internet video server (stored video) client Application Layer 2-14

Streaming multimedia: DASH DASH: Dynamic, Adaptive Streaming over HTTP server: divides video file into multiple chunks each chunk stored, encoded at different rates manifest file: provides URLs for different chunks client: periodically measures server-to-client bandwidth consulting manifest, requests one chunk at a time chooses maximum coding rate sustainable given current bandwidth can choose different coding rates at different points in time (depending on available bandwidth at time) Application Layer 2-15

Streaming multimedia: DASH DASH: Dynamic, Adaptive Streaming over HTTP intelligence at client: client determines when to request chunk (so that buffer starvation, or overflow does not occur) what encoding rate to request (higher quality when more bandwidth available) where to request chunk (can request from URL server that is close to client or has high available bandwidth) Application Layer 2-16

Content distribution networks challenge: how to stream content (selected from millions of videos) to hundreds of thousands of simultaneous users? option 1: single, large mega-server single point of failure point of network congestion long path to distant clients multiple copies of video sent over outgoing link.quite simply: this solution doesn t scale Application Layer 2-17

Content distribution networks challenge: how to stream content (selected from millions of videos) to hundreds of thousands of simultaneous users? option 2: store/serve multiple copies of videos at multiple geographically distributed sites (CDN) enter deep: push CDN servers deep into many access networks close to users used by Akamai, 1700 locations bring home: smaller number (10 s) of larger clusters in POPs near (but not within) access networks used by Limelight Application Layer 2-18

Content Distribution Networks (CDNs) CDN: stores copies of content at CDN nodes e.g. Netflix stores copies of MadMen subscriber requests content from CDN directed to nearby copy, retrieves content may choose different copy if network path congested where s Madmen? manifest file Application Layer 2-19

Content Distribution Networks (CDNs) over the top Internet host-host communication as a service OTT challenges: coping with a congested Internet from which CDN node to retrieve content? viewer behavior in presence of congestion? what content to place in which CDN node? more.. in chapter 7

CDN content access: a closer look Bob (client) requests video http://netcinema.com/6y7b23v video stored in CDN at http://kingcdn.com/netc6y&b23v 1. Bob gets URL for video http://netcinema.com/6y7b23v from netcinema.com web page netcinema.com 3 netcinema s authoratative DNS 1 6. request video from KINGCDN server, streamed via HTTP 3. netcinema s DNS returns URL http://kingcdn.com/netc6y&b23v 4 KingCDN.com 2 5 2. resolve http://netcinema.com/6y7b23v via Bob s local DNS Bob s local DNS server KingCDN authoritative DNS 4&5. Resolve http://kingcdn.com/netc6y&b23 via KingCDN s authoritative DNS, which returns IP address of KingCDN server with video Application Layer 2-21

Case study: Netflix Netflix registration, accounting servers 1 2. Bob browses Netflix video 2 Amazon cloud 3 3. Manifest file returned for requested video upload copies of multiple versions of video to CDN servers CDN server CDN server 1. Bob manages Netflix account CDN server 4. DASH streaming Application Layer 2-22