P2P Tutorial Concept: Advantages: Why and What P2P OHistory:Structural evolution Status: From Academy to Industry Future: How to Build a Practical P2P system Guihai Chen
Concept HIstory Status Future 1 P2P Tutorial Future:How to Build a Practical P2P system Status: From Academy to Industry History:Structural evolution Concept:Advantages: Why and What P 2 P Guihai Chen
Client/Server Model is Being Challenged No single server or search engine can sufficiently cover increasing Web contents 2×1018Byes′ year generated in Internet But only 3x1012 Bytes/year available to public (0.00015%) Google only searches1.3×10° Web pages Source: IEEE Internet Computing, 2001) Concept HIstory Status Future
Concept HIstory Status Future 2 Client/Server Model is Being Challenged No single server or search engine can sufficiently cover increasing Web contents. 21018 Bytes/year generated in Internet. But only 31012 Bytes/year available to public (0.00015%). Google only searches 1.3108 Web pages. (Source: IEEE Internet Computing, 2001) Concept
Things getting worse in Big data era Kilo Mega Giga Tera Peta Exa 2001:2×1018=2 EXa Bytes Zeta 2011: 1.8ZB=1800 EXa Bytes, filling up 575x 108 32GB iPad Use iPad as bricks, we can build 2 great walls of china Yotta 2020: 40ZB, enough to build 45 great walls Concept HIstory Status Future
Concept HIstory Status Future 3 Kilo Mega Giga Tera Peta Exa Zeta Yotta 2001: 21018 =2 Exa Bytes 2011: 1.8ZB=1800 Exa Bytes,filling up 575x 108 32GB iPad. Use iPad as bricks, we can build 2 great walls of china. 2020: 40ZB,enough to build 45 great walls. Things getting worse in Big Data Era Concept
Client/server model has problems Client/server model seriously limits utilization of available bandwidth and service Popular servers and search engines become traffic bottlenecks But high speed networks connecting many clients become idle Computing cycles and information in clients are ignored Concept HIstory Status Future
Concept HIstory Status Future 4 Client/Server Model Has Problems Client/server model seriously limits utilization of available bandwidth and service. Popular servers and search engines become traffic bottlenecks. But high speed networks connecting many clients become idle. Computing cycles and information in clients are ignored. Concept
Socket Programming in Client/Server Model Two types of server Concurrent server-forks a new process,so multiple clients can be handled at the same time Iterative server-the server processes one request before accepting the next Concept HIstory Status Future
Concept HIstory Status Future 5 Two types of server ▪ Concurrent server – forks a new process, so multiple clients can be handled at the same time. ▪ Iterative server – the server processes one request before accepting the next. Socket Programming in Client/Server Model Concept
Socket Programming in Client/Server Model Two types of server Concurrent server-forks a new process,so multiple clients can be handled at the same time Iterative server-the server processes one request before accepting the next Concept HIstory Status Future
Concept HIstory Status Future 6 Two types of server ▪ Concurrent server – forks a new process, so multiple clients can be handled at the same time. ▪ Iterative server – the server processes one request before accepting the next. Socket Programming in Client/Server Model Concept
Socket Programming in Client/Server Model listened socket(.) bind( (listened,…); listen( listened,… for(:: i Concurrent connfd accept(listened, .. Server If (( pid= forko)==0i/child*/ close(listened) process the e request * close(conned) exit(O) close(connfd);/* parent* Concept HIstory Status Future 7
Concept HIstory Status Future 7 Concurrent Server listenfd = socket(…); bind(listenfd,…); listen(listenfd,…) for ( ; ; ) { connfd = accept(listenfd, …); If (( pid = fork()) == 0) { /* child*/ close(listenfd); /* process the request */ close(connfd); exit(0); } close(connfd); /* parent*/ } Socket Programming in Client/Server Model Concept
Socket Programming in Client/Server Model listened socket(.) bind( (listened,…) Iterative iten( listened,… Server for(;; conned = accept(listened process the request close(conned) Concept HIstory Status Future
Concept HIstory Status Future 8 Iterative Server listenfd = socket(…); bind(listenfd,…); listen(listenfd,…) for ( ; ; ) { connfd = accept(listenfd, …); /* process the request */ close(connfd); } Socket Programming in Client/Server Model Concept
Socket Programming in Client/Server Model sockfd= socket( connect(sockfd, .. Client / process the request * close(sockfd) Concept HIstory Status Future 9
Concept HIstory Status Future 9 Client sockfd = socket(…); connect(sockfd, …) /* process the request */ close(sockfd); Socket Programming in Client/Server Model Concept
Content Delivery Networks(CDN): A Transition Model Servers are decentralized(duplicated throughout the Internet The distributed servers are controlled by a centralized authority(headquarters) EXamples: Internet content distributions by Akamai Overcast. and ffnet Both Client/Server and cdn models have single point of failures Concept HIstory Status Future
Concept HIstory Status Future 10 Content Delivery Networks (CDN): A Transition Model Servers are decentralized (duplicated) throughout the Internet. The distributed servers are controlled by a centralized authority (headquarters). Examples: Internet content distributions by Akamai, Overcast, and FFnet. Both Client/Server and CDN models have single point of failures. Concept