Application Layer: P2P File Distribution

Similar documents
Chapter 2: Application layer

CMSC 332 Computer Networks P2P and Sockets

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

Lecture 8: Application Layer P2P Applications and DHTs

Computer Networking Introduction

CSC 4900 Computer Networks: P2P and Sockets

CC451 Computer Networks

CS 3516: Advanced Computer Networks

Last Lecture SMTP. SUNY at Buffalo; CSE 489/589 Modern Networking Concepts; Fall 2010; Instructor: Hung Q. Ngo 1

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

CS 3516: Computer Networks

Chapter 2 Application Layer

CS 43: Computer Networks BitTorrent & Content Distribution. Kevin Webb Swarthmore College September 28, 2017

CSC 401 Data and Computer Communications Networks

Section 2: Application layer

Chapter 2 Application Layer

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

Chapter 1 Introduction

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

Web caches (proxy server)

Peer-to-Peer Applications Reading: 9.4

internet technologies and standards

Lecture 05: Application Layer (Part 02) FTP, Peer-to-Peer, . Dr. Anis Koubaa

Application Layer. Pure P2P architecture. Client-server architecture. Processes communicating. Hybrid of client-server and P2P. Creating a network app

Chapter 2 Application Layer

P2P Applications. Reti di Elaboratori Corso di Laurea in Informatica Università degli Studi di Roma La Sapienza Canale A-L Prof.ssa Chiara Petrioli

Chapter 2 Application Layer

CSC 401 Data and Computer Communications Networks

Chapter 2 Application Layer

Chapter 2. Computer Networking: A Top. 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012

Transport Layer. Chapter 3: Transport Layer

Information Network Systems The application layer. Stephan Sigg

Web Caching and HTTPS

Scalability of the BitTorrent P2P Application

Application Layer. Pure P2P architecture. Client-server architecture. Processes communicating. Hybrid of client-server and P2P. Creating a network app

Lecture 2 - Application Layer. Lecture 1 Review. Application Layer. Principles of network applications. Notes. Notes. Notes. Notes

Chapter 2: application layer

Chapter 7 Transport Layer. 7.0 Introduction 7.1 Transport Layer Protocols 7.2 TCP and UDP 7.3 Summary

CS118 Discussion Week 2. Taqi

BitTorrent. Masood Khosroshahy. July Tech. Report. Copyright 2009 Masood Khosroshahy, All rights reserved.

Computer Communication Networks Midterm Review

Chapter 2 Application Layer

Application layer. Some network apps. Client-server architecture. Hybrid of client-server and P2P. Pure P2P architecture. Creating a network app

Introduction to the Application Layer. Computer Networks Term B14

Chapter 2 Application Layer

P2P Applications. Reti di Elaboratori Corso di Laurea in Informatica Università degli Studi di Roma La Sapienza

Lecture 17: Peer-to-Peer System and BitTorrent

CS 43: Computer Networks. 14: DHTs and CDNs October 3, 2018

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

Goal and A sample Network App

Chapter II: Application Layer

Chapter 2 Application Layer

Chapter 1 Introduction

CS 3516: Advanced Computer Networks

Network and Mobile Compu4ng in the 20 th Century and Beyond. COMP 1400 Memorial University Winter 2015

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

CSCE 463/612 Networks and Distributed Processing Spring 2018

Lecture 05: Application Layer (Part 02) Domain Name System. Dr. Anis Koubaa

Chapter 2 Application Layer

CSCD 330 Network Programming

Internet Protocol Stack! Principles of Network Applications! Some Network Apps" (and Their Protocols)! Application-Layer Protocols! Our goals:!

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

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

Application Layer Protocols

Application Layer: HTTP

Content Distribution and BitTorrent [Based on slides by Cosmin Arad]

CSCI 466 Midterm Networks Fall 2013

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

COMP 211 Chapter 2 Application Layer

3.2 COMMUNICATION AND INTERNET TECHNOLOGIES

Review of Previous Lecture

CSC 401 Data and Computer Communications Networks

Network Application. Topic. Principle of Network Application. Principle of Network Application

CS 3516: Advanced Computer Networks

Chapter 2 Application Layer

Peer to Peer Networks

Client/Server Computing & Socket Programming

CPS 706 Computer Networks (Fall 2011)

Chapter 2 Application Layer

CompSci 356: Computer Network Architectures Lecture 21: Overlay Networks Chap 9.4. Xiaowei Yang

Content distribution networks

Content Overlays (continued) Nick Feamster CS 7260 March 26, 2007

ECE 4450:427/527 - Computer Networks Spring 2017

Chapter 3 Transport Layer

CS 4390 Computer Networks. Transport Services and Protocols

Chapter 2 Application Layer

Chapter 2 Application Layer

EECS 3214: Computer Network Protocols and Applications

Chapter 3 Transport Layer

Peer-to-Peer Networks

Chapter 2 Application Layer

Chapter 2 Application Layer

Chapter 2 Application Layer

RSC Part I: Introduction

CEN5501 Computer Networks Project Description

EC441 Fall 2018 Introduction to Computer Networking Chapter 2: Application Layer

Chapter 2 Application Layer

First Semester Examinations 2013/14 (Model Solution) INTERNET PRINCIPLES

Chapter 2 Application Layer

Chapter 2 Application Layer

Transcription:

Application Layer: P2P File Distribution EECS 3214 Slides courtesy of J.F Kurose and K.W. Ross, All Rights Reserved 29-Jan-18 1-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 (later) Application Layer 2-2 1

Pure P2P architecture no always-on server arbitrary end systems directly communicate peers are intermittently connected and change IP addresses examples: file distribution (BitTorrent) Streaming (Xunlei KanKan) VoIP (Skype) Application Layer 2-3 File distribution: client-server vs P2P Question: how much time to distribute file (size F) from one server to N peers? peer upload/download capacity: limited resource (bottlenecks) u s : server upload capacity file, size F server u s u 1 d 1 u 2 d 2 u N d N network (with abundant bandwidth) d i d i : peer i download capacity u i u i : peer i upload capacity Application Layer 2-4 2

File distribution time: client-server server transmission: must sequentially send (upload) N file copies: time to send one copy: F/u s time to send N copies: NF/u s F u s network d i u i client: each client must download file copy d min = min client download rate min client download time: F/d min time to distribute F to N clients using client-server approach D c-s > max{nf/u s,,f/d min } increases linearly in N Application Layer 2-5 File distribution time: P2P server transmission: must upload at least one copy F u s time to send one copy: F/u s client: each client must network download file copy min client download time: F/d min clients: as aggregate must download NF bits max upload rate (limiting max download rate) is u s + Σu i d i u i time to distribute F to N clients using P2P approach D P2P > max{f/u s,,f/d min,,nf/(u s + Σu i )} increases linearly in N but so does this, as each peer brings service capacity Application Layer 2-6 3

Client-server vs. P2P: example client upload rate = u, F/u = 1 hour, u s = 10u, d min u s Minimum Distribution Time 3.5 3 2.5 2 1.5 1 0.5 0 P2P Client-Server 0 5 10 15 20 25 30 35 N Application Layer 2-7 P2P file distribution: BitTorrent file divided into 256Kb chunks peers in torrent send/receive file chunks tracker: tracks peers participating in torrent torrent: group of peers exchanging chunks of a file Alice arrives obtains list of peers from tracker and begins exchanging file chunks with peers in torrent Application Layer 2-8 4

P2P file distribution: BitTorrent peer joining torrent: has no chunks, but will accumulate them over time from other peers registers with tracker to get list of peers, connects to subset of peers ( neighbors ) while downloading, peer uploads chunks to other peers peer may change peers with whom it exchanges chunks churn: peers may come and go once peer has entire file, it may (selfishly) leave or (altruistically) remain in torrent Application Layer 2-9 BitTorrent: requesting, sending file chunks requesting chunks: at any given time, different peers have different subsets of file chunks periodically, Alice asks each peer for list of chunks that they have Alice requests missing chunks from peers, rarest first sending chunks: tit-for-tat Alice sends chunks to those four peers currently sending her chunks at highest rate other peers are choked by Alice (do not receive chunks from her) re-evaluate top 4 every10 secs every 30 secs: randomly select another peer, starts sending chunks optimistically unchoke this peer newly chosen peer may join top 4 Application Layer 2-10 5

BitTorrent: tit-for-tat Ultimate goal: find partners with compatible rates. (1) Alice optimistically unchokes Bob (2) Alice becomes one of Bob s top-four providers; Bob reciprocates (3) Bob becomes one of Alice s top-four providers higher upload rate: find better trading partners, get file faster! Application Layer 2-11 Chapter 2: summary application architectures client-server P2P application service requirements: reliability, bandwidth, delay Internet transport service model connection-oriented, reliable: TCP unreliable, datagrams: UDP specific protocols: HTTP SMTP, POP, IMAP DNS P2P: BitTorrent video streaming, CDNs (later) socket programming: TCP, UDP sockets Application Layer 2-12 6

Chapter 2: summary most importantly: learned about protocols! typical request/reply message exchange: client requests info or service server responds with data, status code message formats: headers: fields giving info about data data: info(payload) being communicated important themes: centralized vs. decentralized stateless vs. stateful reliable vs. unreliable message transfer complexity at network edge Application Layer 2-13 7