NoTorrent A Peer-to-Peer Web Caching System Modeled Partially After BitTorrent but Without the Need for.torrent Files Howie Vegter, hrv2101 Columbia University.

Slides:



Advertisements
Similar presentations
Chapter 6 Server-side Programming: Java Servlets
Advertisements

Coursework 2: getting started (3) – hosting static web pages Chris Greenhalgh G54UBI /
The architecture diagram of our IPv6 content addressing system. In our system, the regular browser makes a HTTP request through a proxy, which translates.
End-to-end Publishing Using Bittorrent. Bittorrent Bittorrent is a widely used peer-to- peer network used to distribute files, especially large ones It.
COEN 445 Communication Networks and Protocols Lab 4
1 CS 502: Computing Methods for Digital Libraries Lecture 22 Web browsers.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
The Application Layer Chapter 7. Electronic Mail Architecture and Services The User Agent Message Formats Message Transfer Final Delivery.
The Internet Useful Definitions and Concepts About the Internet.
1 Java Networking – Part I CS , Spring 2008/9.
IT skills: IT concepts: Web client (browser), Web server, network connection, URL, mobile client, peer-to- peer application This work is licensed under.
Creating WordPress Websites. Creating a site on your computer Local server Local WordPress installation Setting Up Dreamweaver.
Fall 2007cs4251 Distributed Computing Umar Kalim Dept. of Communication Systems Engineering 31/10/2007.
Part 1: Overview of Web Systems Part 2: Peer-to-Peer Systems Internet Computing Workshop Tom Chothia.
Multiple Tiers in Action
The World Wide Web and the Internet Dr Jim Briggs 1WUCM1.
1 The World Wide Web Architectural Overview Static Web Documents Dynamic Web Documents HTTP – The HyperText Transfer Protocol Performance Enhancements.
Definitions, Definitions, Definitions Lead to Understanding.
Internet Real Time (IRT) Lab at Columbia University Professor: Henning Schulzrinne Columbia University Presenter: Suman Srinivasan, PhD student
ECS152BXin Liu 1 ECS 152B Computer Networks Fall 2003 Prof. Xin Liu
SE-2840 Dr. Mark L. Hornick1 Java Servlet-based web apps Servlet Architecture.
Proxy servers By Akshit Y10. What is a proxy server O A proxy server is a computer that offers a computer network service to allow clients to make indirect.
CS 4700 / CS 5700 Network Fundamentals Lecture 17.5: Project 5 Hints (Getting a job at Akamai) Revised 3/31/2014.
By: Joel Rodriguez.  International student from Mexico  Delicias, Chihuahua Mexico  Spanish  Sports and Music.
BitTorrent Internet Technologies and Applications.
HTTP client wide area network (Internet) HTTP proxy HTTP server HTTP gateway firewall HTTP tunnel Copyright Springer Verlag Berlin Heidelberg 2004.
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
INTERNET DATA FLOW Created by David Whitchurch for ISDS 4120 Louisiana State University.
WWW Forms and Search. Forms URL - always fetch a particular page What if the information we want varies from time to time and from user to user?
1 Lies, damn lies and Web statistics A brief introduction to using and abusing web statistics Paul Smith, ILRT July 2006.
Dynamic Content On Edge Cache Server (using Microsoft.NET) Name: Aparna Yeddula CS – 522 Semester Project Project URL: cs.uccs.edu/~ayeddula/project.html.
POSTER TEMPLATE BY: Whitewater HTTP Vulnerabilities Nick Berry, Joe Joyce, & Kevin Vaccaro. Syntax & Routing Attempt to capture.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
Mainframe (Host) - Communications - User Interface - Business Logic - DBMS - Operating System - Storage (DB Files) Terminal (Display/Keyboard) Terminal.
Web Design (1) Terminology. Coding ‘languages’ (1) HTML - Hypertext Markup Language - describes the content of a web page CSS - Cascading Style Sheets.
The Web and Web Services Jim Graham NR 621 Spring 2009.
An analysis of Skype protocol Presented by: Abdul Haleem.
Architecture Models. Readings r Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 m Note: All figures from this book.
1 3 Computing System Fundamentals 3.4 Networked Computer Systems.
Service Discovery Protocols Mobile Computing - CNT Dr. Sumi Helal Professor Computer & Information Science & Engineering Department University.
Chapter 29 World Wide Web & Browsing World Wide Web (WWW) is a distributed hypermedia (hypertext & graphics) on-line repository of information that users.
2007cs Servers on the Web. The World-Wide Web 2007 cs CSS JS HTML Server Browser JS CSS HTML Transfer of resources using HTTP.
7DS - Node Cooperation and Information Exchange in Mostly Disconnected Networks Suman Srinivasan, Arezu Moghadam, Se Gi Hong, Henning Schulzrinne IRT Lab,
INTERNET PROTOCOLS. Microsoft’s Internet Information Server Home Page Figure IT2031 UNIT-3.
Web Server.
ICM – API Server & Forms Gary Ratcliffe.
CSI 3125, Preliminaries, page 1 Networking. CSI 3125, Preliminaries, page 2 Networking A network represents interconnection of computers that is capable.
Java Web Server Presented by- Sapna Bansode-03 Nutan Mote-15 Poonam Mote-16.
Threads. Readings r Silberschatz et al : Chapter 4.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 7 Omar Meqdadi Department of Computer Science and Software Engineering University of.
Designing a Middleware Server for Abstract Database Connection.
Computer Network Architecture Lecture 6: OSI Model Layers Examples 1 20/12/2012.
Server-side http General form of http response/request GET request method POST request method Responses Servlet support.
CLIENT (Browser) socket accept C1 C2 recv C2 recv send C2 send end_thread recv C3 send bind connect Web Server Proxy recv close C3 close C2 end_thread.
Tech Support Process By Catie Cotcher. Session Overview What to do if you have a Technical Issue What information should I check Errors Tips on calling.
What’s Really Happening
SOCKET PROGRAMMING Presented By : Divya Sharma.
An example of peer-to-peer application
WWW and HTTP King Fahd University of Petroleum & Minerals
Web Languages What Is a Web Page?
The Application Layer RIS 251 Dr. ir. S.S. Msanjila.
Processes The most important processes used in Web-based systems and their internal organization.
Providing Network Services
Web Languages What Is a Web Page?
Peer-to-Peer Information Systems Week 6: Assignment #4
Internet Applications & Programming
Requests and Server Response Codes
Your computer is the client
Peer-to-Peer Information Systems Week 6: Assignment #4
Presentation transcript:

NoTorrent A Peer-to-Peer Web Caching System Modeled Partially After BitTorrent but Without the Need for.torrent Files Howie Vegter, hrv2101 Columbia University Fall 2005 CS 6901, Projects in Computer Science Advisors: Dr. Markus Hofmann, Dr. Henning Schulzrinne, Salman Abdul Baset

NoTorrent Architecture Overview Origin Server NoTorrent Tracker BrowserProxy Cache Server NoTorrent Client Client* Browser Proxy Cache Server NoTorrent Client Peer* *Note: A “client” and a “peer” both refer to a computer that is running the NoTorrent Client. I will say “client” when I mean my computer and “peer” when I am referring to the other NoTorrent Clients I am interacting with When the client requests a resource through the client proxy, we try to obtain the resource in this order: First try to get resource from Origin Server Then try to get it from client’s local cache Then try to get it from a peer

Requesting a Resource: First, Try the Origin Server Origin Server NoTorrent Tracker BrowserProxy Cache Server NoTorrent Client Client XML-encoded IHaveResourceMessage If origin server serves resource, Cache it locally Inform tracker client has the resource Send the resource to the browser If origin server fails to serve resource: Try checking local cache…

Requesting a Resource: Next, Try Local Cache BrowserProxy Cache Server NoTorrent Client Client Client could not get resource from origin server. Client may have obtained resource earlier (from peer or origin server before it went down), so check local cache. If resource in cache, Get resource from cache Send resource to browser If resource not in cache, Ask peers for the resource…

Requesting a Resource: Next, Ask Peers (slide 1 of 3) NoTorrent Tracker BrowserProxy Cache Server NoTorrent Client Client Browser Proxy Cache Server NoTorrent Client Peer XML-encoded PeerListRequestMessage XML-encoded ResourceRequestMessage Client could not get resource from origin server or cache, so we ask peers. 1. Ask tracker for list of peers with resource 2. Tracker responds with list 3. Ask a peer for the resource 4. Peer checks its cache 5. (see next slide)

Requesting a Resource: Ask Peers (slide 2 of 3) NoTorrent Tracker BrowserProxy Cache Server NoTorrent Client Client Browser Proxy Cache Server NoTorrent Client Peer If peer has resource: Peer sends resource to client Client proxy caches resource and informs tracker is has the resource Client proxy sends resource to browser XML-encoded IHaveResourceMessage byte[] resource

Requesting a Resource: Ask Peers (slide 3 of 3) NoTorrent Tracker BrowserProxy Cache Server NoTorrent Client Client Browser Proxy Cache Server NoTorrent Client Peer 1 Browser Proxy Cache Server NoTorrent Client Peer 2 X XML-encoded: Peer 1 Failed To Serve If peer does not have resource: Peer terminates connection Client informs tracker that peer failed to serve Client requests resource from another peer If no peers had resource, send error message to browser error

Messages are Encoded in XML MessagePeerListRequest: PeerListRequest NoTorrent uses JDOM to relatively easily parse XML.

Setting Up NoTorrent Unpack notorrent.tgz to get NoTorrent.jar, README, nttrack, and ntclient (the latter two are helper scripts) On tracker machine: Start tracker to listen for and handle messages from clients: java –cp NoTorrent.jar notorrent.tracker.Tracker or./nttrack On client machine: Start client proxy to handle requests from browser: java –jar NoTorrent.jar –ta TRACKER_ADDRESS –tp TRACKER_PORT or./ntclient Configure browser to use NoTorrent client proxy as its HTTP proxy

Lessons Learned and Encountered Roadblocks When basing a project on another project, make sure the base project is well-documented is really as close to the problem you are trying to solve as you thought. Standards (e.g. XML) and good libraries (e.g. JDOM) can simplify certain parts of the project. Specific Things I Learned About: Message encoding (XML, BEncoding). I had not anticipated that encoding would be a major part of system. TCP/IP sockets in Java, thread pools Python (although I ended up not using it) Roadblocks: HTTP 403 (Forbidden) Errors on certain pages on Google, NYTimes, Yahoo, etc. Yahoo search results include tracking info in the URLs and then redirect the user to the destination. This currently works without the NoTorrent proxy, but it only works partially with the NoTorrent proxy. Sample Yahoo search result URL (for columbia.edu): 2BGNvbG8DdwRsA1dTMQRwb3MDMgRzZWMDc3IEdnRpZANGNjY2Xzg1/SIG=11cn6o6 5u/EXP= /**http%3a//