An Example Architecture for CS179i based on Gnutella and Python Yihua He.

Slides:



Advertisements
Similar presentations
Peer-to-Peer and Social Networks An overview of Gnutella.
Advertisements

CSC458 Programming Assignment II: NAT Nov 7, 2014.
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 12 Prof. Crista Lopes.
Internet Control Protocols Savera Tanwir. Internet Control Protocols ICMP ARP RARP DHCP.
University of Cincinnati1 Towards A Content-Based Aggregation Network By Shagun Kakkar May 29, 2002.
1 An Overview of Gnutella. 2 History The Gnutella network is a fully distributed alternative to the centralized Napster. Initial popularity of the network.
MANETs Routing Dr. Raad S. Al-Qassas Department of Computer Science PSUT
Gnutella 2 GNUTELLA A Summary Of The Protocol and it’s Purpose By
Peer-to-Peer Networks João Guerreiro Truong Cong Thanh Department of Information Technology Uppsala University.
Internet Control Message Protocol (ICMP). Introduction The Internet Protocol (IP) is used for host-to-host datagram service in a system of interconnected.
Page: 1 Director 1.0 TECHNION Department of Computer Science The Computer Communication Lab (236340) Summer 2002 Submitted by: David Schwartz Idan Zak.
1 Unstructured Routing : Gnutella and Freenet Presented By Matthew, Nicolai, Paul.
Gnutella, Freenet and Peer to Peer Networks By Norman Eng Steven Hnatko George Papadopoulos.
Freenet A Distributed Anonymous Information Storage and Retrieval System I Clarke O Sandberg I Clarke O Sandberg B WileyT W Hong.
Ad-hoc On-Demand Distance Vector Routing (AODV) Sirisha R. Medidi.
1 Seminar: Information Management in the Web Gnutella, Freenet and more: an overview of file sharing architectures Thomas Zahn.
Security in P2P Networks A study of the gnutella protocol and it’s weaknesses By: Imran Qureshi Date: December 9, 2004.
Improving Data Access in P2P Systems Karl Aberer and Magdalena Punceva Swiss Federal Institute of Technology Manfred Hauswirth and Roman Schmidt Technical.
Lab 4 Dynamic Routing CS144 Review Session 5 October 30, 2009 Samir Selman.
1CS 6401 Peer-to-Peer Networks Outline Overview Gnutella Structured Overlays BitTorrent.
1 Internet Control Message Protocol (ICMP) RIZWAN REHMAN CCS, DU.
P2P File Sharing Systems
Peer-to-Peer Computing CS587x Lecture Department of Computer Science Iowa State University.
1 Napster & Gnutella An Overview. 2 About Napster Distributed application allowing users to search and exchange MP3 files. Written by Shawn Fanning in.
Introduction Widespread unstructured P2P network
Unstructured P2P networks by example:Gnutella 0.4,Gnutella 0.6 张旭彤 杨蕊鸿 马骕 林晔.
ECE 544 Project3 Kush Patel Siddharth Paradkar Ke Dong.
Internet Control Message Protocol (ICMP)
DEMIGUISE STORAGE An Anonymous File Storage System VIJAY KUMAR RAVI PRAGATHI SEGIREDDY COMP 512.
Network Layer (3). Node lookup in p2p networks Section in the textbook. In a p2p network, each node may provide some kind of service for other.
By Shobana Padmanabhan Sep 12, 2007 CSE 473 Class #4: P2P Section 2.6 of textbook (some pictures here are from the book)
1 Telematica di Base Applicazioni P2P. 2 The Peer-to-Peer System Architecture  peer-to-peer is a network architecture where computer resources and services.
P2PSIP diagnostics Song Haibin draft-zheng-p2psip-diagnose-02
Ad-hoc On-Demand Distance Vector Routing (AODV) and simulation in network simulator.
IP Forwarding.
1 Peer-to-Peer Technologies Seminar by: Kunal Goswami (05IT6006) School of Information Technology Guided by: Prof. C.R.Mandal, School of Information Technology.
Peer to Peer A Survey and comparison of peer-to-peer overlay network schemes And so on… Chulhyun Park
1 A connection management protocol for promoting cooperation in Peer-to-Peer networks Authors: Murat Karakaya, Ibrahim Korpeoglu, and Ozgur Ulusoy Source:
1 Chapter 23 Internetworking Part 3 (Control Messages, Error Handling, ICMP)
1 Requirements for Internet Routers (Gateways) and Hosts Relates to Lab 3. (Supplement) Covers the compliance requirements of Internet routers and hosts.
Peer-to-Peer By Rui Zhang, Chen Teng, Li Dong, Quanshuan He & Yongzheng Zhang.
Internet Protocols. ICMP ICMP – Internet Control Message Protocol Each ICMP message is encapsulated in an IP packet – Treated like any other datagram,
Peer-to-peer systems (part I) Slides by Indranil Gupta (modified by N. Vaidya)
A Reputation-Based Approach for Choosing Reliable Resources in Peer-to-Peer Networks E. Damiani S. De Capitani di Vimercati S. Paraboschi P. Samarati F.
CS Spring 2014 CS 414 – Multimedia Systems Design Lecture 37 – Introduction to P2P (Part 1) Klara Nahrstedt.
CS Spring 2012 CS 414 – Multimedia Systems Design Lecture 37 – Introduction to P2P (Part 1) Klara Nahrstedt.
Ad Hoc On-Demand Distance Vector Routing (AODV) ietf
1 Indranil Gupta (Indy) Lecture 4 Peer to Peer Systems January 27, 2011 All Slides © IG CS 525 Advanced Distributed Systems Spring 2011.
CS 425 / ECE 428 Distributed Systems Fall 2015 Indranil Gupta (Indy) Peer-to-peer Systems All slides © IG.
CS Spring 2010 CS 414 – Multimedia Systems Design Lecture 24 – Introduction to Peer-to-Peer (P2P) Systems Klara Nahrstedt (presented by Long Vu)
Marco Conti, Enrico Gregori, Giovanni Turi Istituto di Informatica e Telematica – CNR MobiHoc ‘ Jongsoo Lee
A Survey of Peer-to-Peer Content Distribution Technologies Stephanos Androutsellis-Theotokis and Diomidis Spinellis ACM Computing Surveys, December 2004.
Internet Control Message Protocol (ICMP)
ROUTING.
Internet Control Message Protocol (ICMP)
BitTorrent Vs Gnutella.
Internet Control Message Protocol (ICMP)
Routing Information Protocol (RIP)
Byungchul Park ICMP & ICMPv DPNM Lab. Byungchul Park
Internet Control Message Protocol (ICMP)
Internet Control Message Protocol (ICMP)
Internet Control Message Protocol (ICMP)
Internet Control Message Protocol (ICMP)
Internet Control Message Protocol (ICMP)
A Scalable content-addressable network
Unstructured Routing : Gnutella and Freenet
Viet Nguyen Jianqing Liu Yaqin Tang
TA: Donghyun (David) Kim
Internet Control Message Protocol
Presentation transcript:

An Example Architecture for CS179i based on Gnutella and Python Yihua He

Sources  Gnutella Protocol v0.4  Norman Matloff’s “Introduction to Threads Programming with Python”  Gnutella Developer’s Forum (GDF)  Sources available online at  Trying to keep updated

Basic Components  A Gnutella Server Setup and maintain connection with neighbors Setup and maintain connection with neighbors Routing Pings/Pongs and Querys/QueryHits Routing Pings/Pongs and Querys/QueryHits A local searching mechanism A local searching mechanism  A Gnutella Client  Customized FTP/HTTP server and client for retrieving target files.

Data Structures – Neighbor Table  NeighborTable Fields: IP, TimeStamp Fields: IP, TimeStamp Keep track of current active neighbors. Neighbors are supposed to send pings periodically in order to keep themselves active. Timeout neighbors will be deleted from NeighborTable. Keep track of current active neighbors. Neighbors are supposed to send pings periodically in order to keep themselves active. Timeout neighbors will be deleted from NeighborTable.  RoutingHistory  FileSharingTable

Data Structures – Neighbor Table  NeighborTable Fields: IP, TimeStamp Fields: IP, TimeStamp Keep track of current active neighbors. Neighbors are supposed to send pings periodically in order to keep themselves active. Timeout neighbors will be deleted from NeighborTable. Keep track of current active neighbors. Neighbors are supposed to send pings periodically in order to keep themselves active. Timeout neighbors will be deleted from NeighborTable.  RoutingHistory  FileSharingTable

Data Structures –RoutingHistory  NeighborTable  RoutingHistory Fields: DescriptionID, MsgType, SourceIP, Timestamp Fields: DescriptionID, MsgType, SourceIP, Timestamp Pong/QueryHit descriptors may only be sent back along the same path that carried the orginal Ping/Query descriptors. Pong/QueryHit descriptors may only be sent back along the same path that carried the orginal Ping/Query descriptors. To limit the size of RoutingHistory Table, entries will be deleted after a certain period of time (timeout –Soft state) To limit the size of RoutingHistory Table, entries will be deleted after a certain period of time (timeout –Soft state)  FileSharingTable

Data Structures—FileSharing Table  NeighborTable  RoutingHistory  FileSharingTable Fields: FileID, FileName, FilePath, MetaDescription, FileSize, Date and so on Fields: FileID, FileName, FilePath, MetaDescription, FileSize, Date and so on Includes the files a node willing to share Includes the files a node willing to share In “QueryHit”, a node only sends out FileID to its peer. The peer opens a customized FTP/HTTP connection to the node and retrieve target files by FileID In “QueryHit”, a node only sends out FileID to its peer. The peer opens a customized FTP/HTTP connection to the node and retrieve target files by FileID

Main Loop Listen for new connection request “GNUTELLA CONNECT/0.4\n\n” If neighbor table full Spawn a new thread to handle connection Send “GNUTELLA NOT OK\n\n” Close connection Y N

Maintain and Routing Re-check if neighbor table full Put a new entry in NeighborTable Send “GNUTELLA OK\n\n” Send “GNUTELLA NOT OK\n\n” Close connection Thread ends Y N Listen for Description Head (23 bytes) At any stage, if it timeouts or any unexpected strings are received, the entry in NeighborTable will be deleted, connection will be closed and the thread ends Process descriptions accordingly: 1.Ping: Response with a Pong with node’s information. Update routing history table, TTL-=1 and forward Ping to all neighbors if TTL>0 2.Pong: Check with routing history table and if it is in, then TTL-=1 and forward to its destination; else discard 3.Query: Search local file (File Sharing Table), if hit, send Query/Hit with FileID and other info. Update routing history table, TTL-=1 and forward Query to all neighbors if TTL>0 4.QueryHit: Check with routing history table and if it is in, then TTL-=1 and forward to its destination; else discard