In peer-to-peer networks such as gnutella, each host must search out other hosts. When a host finds another host, these hosts become neighbors. Often a.

Slides:



Advertisements
Similar presentations
OSPF Header OSPF HEADER OSPF HEADER for this project Types we will use
Advertisements

Modelling and Analysing of Security Protocol: Lecture 10 Anonymity: Systems.
In peer-to-peer networks such as gnutella, each host must search out other hosts. When a host finds another host, these hosts become neighbors. Often a.
The routing table Each node in the network has one or more interfaces with associated costs. The routing table tells IP packets which interface to use,
1 Internet Networking Spring 2006 Tutorial 3 Ad-hoc networks TBRPF (based on IETF tutorials on TBRPF)
Ad Hoc Wireless Routing COS 461: Computer Networks
CMPT 471 Networking II Address Resolution IPv6 Neighbor Discovery 1© Janice Regan, 2012.
Internet Control Message Protocol ICMP. ICMP has two major purposes: –To report erroneous conditions –To diagnose network problems ICMP has two major.
Ad hoc On-demand Distance Vector (AODV) Routing Protocol ECE 695 Spring 2006.
Carlos Rodrigo Aponte OLSRv2 High Level Overview.
Routing Protocols of On- Demand Dynamic Source Routing (DSR) Ad-Hoc On-Demand Distance Vector (AODV)
Engineering Workshops Purposes of Neighbor Solicitation.
DSR: Introduction Reference: D. B. Johnson, D. A. Maltz, Y.-C. Hu, and J. G. Jetcheva, “The Dynamic Source Routing Protocol for Mobile Ad Hoc Networks,”
In peer-to-peer networks such as gnutella, each host must search out other hosts. When a host finds another host, these hosts become neighbors. Often a.
a/b/g Networks Routing Herbert Rubens Slides taken from UIUC Wireless Networking Group.
Fundamentals of Computer Networks ECE 478/578
CIS 825 Lecture 9. Minimum Spanning tree construction Each node is a subtree/fragment by itself. Select the minimum outgoing edge of the fragment Send.
Geographical Routing Using Partial Information for Wireless Ad Hoc Networks Rahul Jain, Anuj Puri, and Raja Sengupta Department of EECS University of California,
Network Models. 2.1 what is the Protocol? A protocol defines the rules that both the sender and receiver and all intermediate devices need to follow,
Scaling the Network: Subnetting and Protocols
Snapshots, checkpoints, rollback, and restart
Chapter 2 Network Models
Chapter 2 Network Models.
Scaling the Network Chapters 3-4 Part 2
Zone Routing Protocol (ZRP)
Welcome to Ladders at Home!
CS590B/690B Detecting Network Interference (Fall 2016)
MPLS-TP Fault Management Draft draft-boutros-mpls-tp-fault-01
Wireless LANs Wireless proliferating rapidly.
OSPF (Open Shortest Path First)
To do While (1) Receive hello Search for more neighbors?
ICMP ICMP – Internet Control Message Protocol
Lists C++ Standard template library list
Chapter 6: Transport Layer (Part I)
Introduction to Networking
Troubleshooting IP Communications
Internet Networking recitation #4
Introduction to Networking
CBRP: A Cluster-based Routing Protocol for Mobile Ad hoc Networks
Net431:advanced net services
CS 457 – Lecture 12 Routing Spring 2012.
Deanonymization of Clients in Bitcoin P2P Network
Chapter 2 Network Models.
CONGESTION CONTROL.
LAN switching and Bridges
Unit 27 - Web Server Scripting
CMSC 341 Lecture 10 B-Trees Based on slides from Dr. Katherine Gibson.
Mobile and Wireless Networking
Chapter 2 Network Models.
What to do when you don’t know anything know nothing
LAN switching and Bridges
Chapter 2 Network Models.
Viet Nguyen Jianqing Liu Yaqin Tang
Computer communications
2.1 Chapter 2 Network Models Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Protocol ap1.0: Alice says “I am Alice”
Chapter 11 Supporting Printers and Scanners
Computer Science 2 Hashing.
Distributed Systems CS
Then this information is wrong
Advanced Computer Networks
Chapter 2 Network Models.
Mobile IP Outline Homework #4 Solutions Intro to mobile IP Operation
Mobile IP Outline Intro to mobile IP Operation Problems with mobility.
Routing protocols in Mobile Ad Hoc Network
One-way Hash Function Network Security.
I am A I have heard: no one A B Have heard list Have heard list.
2.1 Chapter 2 Network Models Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Mobile IP Outline Intro to mobile IP Operation Problems with mobility.
Distributed Systems CS
Presentation transcript:

In peer-to-peer networks such as gnutella, each host must search out other hosts. When a host finds another host, these hosts become neighbors. Often a host will continue to search for peers until a sufficient number of hosts have been found. Lets assume that a host will continue to search for hosts until it has N neighbors. In this project, peer-to-peer neighborhoods are made and maintained. Each host maintains list of neighbors and sends hello packets to these neighbors every 10 seconds. If a host is on the neighbor list, and no hello packet is received from the host for 40 seconds, then this host is removed from the neighbor list. If a node does not have enough neighbors, then it selects an address (e.g., IP and port) at random and tries to become its neighbor.

Objectives Find N neighbors Maintain N neighbors A node is a neighbor if two-way communication is possible and verified Two-communication == bidirectional link Maintain N neighbors If two-way communication is no longer verified, the node is no longer a neighbor

Detecting Bidirectional Links Node A has a bidirectional with node B if Node A can hear node B Node B can hear node A To determine if a link between node A and B is bidirectional Node A sends a message to node B Node B sends a message to node A saying that it can hear node A Now node A believes the link is bidirectional Node A sends a message to node B saying that it can hear node B Now node B believes the link is bidirectional In general, to determine is links are bidirectional Send hello messages where the message includes a list of all nodes that have been heard Upon receiving a hello message, If you are listed as one of the nodes that has been recently heard, then the link is bidirectional Add the sender of the hello to the list of nodes that you can hear

I am A I have heard: no one A B Have heard list Have heard list

I am A I have heard: no one A B Have heard list Have heard list A

I am B I have heard: A A B Have heard list Have heard list A

A B A I am B I have heard: A Have heard list Have heard list B and B hears me A

A B A I am A I have heard: B Have heard list Have heard list B and B hears me A

A B I am A I have heard: B, C, D Have heard list Have heard list B and B hears me A and A hears me

List unidirectionalNeighbors bidirectionalNeighbors A neighbor can be in at most one list (we could allow a neighbor to be in both, but let’s not do it that way)

A B I am A I have heard: no one Have heard list Have heard list Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors

A B A A I am A I have heard: no one Have heard list Have heard list Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors A

A B A A I am B I have heard: A Have heard list Have heard list Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors A

A B A B A I am B I have heard: A Have heard list Have heard list B and B hears me A Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors B A

A B A B A I am A I have heard: B Have heard list Have heard list B and B hears me A Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors B A

A B B A I am A I have heard: B, C, D Have heard list Have heard list B and B hears me A and A hears me Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors B A

Let’s try to make pseudo code

A B I am A I have heard: no one Have heard list Have heard list Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors

A B A A I am A I have heard: no one Have heard list Have heard list Received message from A if thisHost is in the helloMessage’s list of neighbors isBidirectional = True else isBidirectional = False Add A to list of unidirectional neighbors Q: Why did we add A to the list of unidirectional neighbors and not the list of bidirectional neighbors? A: Because A has not heard any messages from B A: The hello message from A did not include B I am A I have heard: no one A B Have heard list Have heard list A Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors A

A B A A A I am A I have heard: no one Have heard list Have heard list Received message from A if thisHost is in the helloMessage’s list of neighbors isBidirectional = True else isBidirectional = False if (isBidirectional == False) Add A to list of unidirectional neighbors Q: Why did we add A to the list of unidirectional neighbors and not the list of bidirectional neighbors? A: Because A has not heard any messages from B A: The hello message from A did not include B I am A I have heard: no one A B Have heard list Have heard list A Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors A A

A B A A I am A I have heard: no one Have heard list Have heard list Received message from A if thisHost is in the helloMessage’s list of neighbors isBidirectional = True else isBidirectional = False if (isBidirectional == False) Add A to list of unidirectional neighbors, if not already in that list Q: Why did we add A to the list of unidirectional neighbors and not the list of bidirectional neighbors? A: Because A has not heard any messages from B A: The hello message from A did not include B I am A I have heard: no one A B Have heard list Have heard list A Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors A

A B A A I am A I have heard: no one Have heard list Have heard list Received message from A if thisHost is in the helloMessage’s list of neighbors isBidirectional = True else isBidirectional = False if (isBidirectional == False) Add source of hello message to list of unidirectional neighbors, if not already in that list Q: Why did we add A to the list of unidirectional neighbors and not the list of bidirectional neighbors? A: Because A has not heard any messages from B A: The hello message from A did not include B I am A I have heard: no one A B Have heard list Have heard list A Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors A

A B A A I am B I have heard: A Have heard list Have heard list Received message from A if thisHost is in the helloMessage’s list of neighbors isBidirectional = True else isBidirectional = False if (isBidirectional == False) Add source of hello message to list of unidirectional neighbors, if not already in that list I am B I have heard: A A B Have heard list Have heard list A Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors A

A B A B A I am B I have heard: A Have heard list Have heard list Received message from A if thisHost is in the helloMessage’s list of neighbors isBidirectional = True else isBidirectional = False if (isBidirectional == False) Add source of hello message to list of unidirectional neighbors, if not already in that list if (isBidirectional == True) Add source of hello message to list of bidirectional neighbors, if not already in that list I am B I have heard: A A B Have heard list Have heard list B and B hears me A Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors B A

A B A B A I am A I have heard: B Have heard list Have heard list Received message from A if thisHost is in the helloMessage’s list of neighbors isBidirectional = True else isBidirectional = False if (isBidirectional == False) Add source of hello message to list of unidirectional neighbors, if not already in that list if (isBidirectional == True) Add source of hello message to list of bidirectional neighbors, if not already in that list I am A I have heard: B A B Have heard list Have heard list B and B hears me A Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors B A

A B B A I am A I have heard: B, C, D Have heard list Have heard list Received message from A if thisHost is in the helloMessage’s list of neighbors isBidirectional = True else isBidirectional = False if (isBidirectional == False) Add source of hello message to list of unidirectional neighbors, if not already in that list if (isBidirectional == True) Add source of hello message to list of bidirectional neighbors, if not already in that list No, this does not move A to the other list, it would just add it to the bidirectional neighbor’s list I am A I have heard: B, C, D A B Have heard list Have heard list B and B hears me A and A hears me Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors B A

A B B A I am A I have heard: B, C, D Have heard list Have heard list Received message from A if thisHost is in the helloMessage’s list of neighbors isBidirectional = True else isBidirectional = False if (isBidirectional == False) Add source of hello message to list of unidirectional neighbors, if not already in that list if (isBidirectional == True) Add source of hello message to list of bidirectional neighbors, if not already in that list Remove source from list of unidirectional neighbor No, this does not move A to the other list, it would just add it to the bidirectional neighbor’s list This fixes it I am A I have heard: B, C, D A B Have heard list Have heard list B and B hears me A and A hears me Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors B A

Received message from A if thisHost is in the helloMessage’s list of neighbors isBidirectional = True else isBidirectional = False if (isBidirectional == False) Add source of hello message to list of unidirectional neighbors, if not already in that list if (isBidirectional == True) Add source of hello message to list of bidirectional neighbors, if not already in that list Remove source from list of unidirectional neighbor Warning: There are some more steps to processing newly received hello messages. We’ll cover them later No, this does not move A to the other list, it would just add it to the bidirectional neighbor’s list This fixes it I am A I have heard: B, C, D A B Have heard list Have heard list B and B hears me A and A hears me Unidirectional Neighbors Bidirectional Neighbors Unidirectional Neighbors Bidirectional Neighbors B A