SlideShare a Scribd company logo
[object Object],[object Object],[object Object],Chapter 7 Peer-to-Peer systems
[object Object],[object Object],[object Object],[object Object],[object Object],Chapter 7 Peer-to-Peer systems
The rationale for P2P 1. Introduction ,[object Object],[object Object],Scaling and cost of client server systems popular services need large server infrastructures -> high investment and operational cost #users total cost System (HW/SW) upgrade ,[object Object],[object Object],[object Object]
The rationale for P2P 1. Introduction ,[object Object],[object Object],P2P philosophy make heavily use of edge resources  (CPU, storage, I/O devices, Information, ...)  #users ~ #edge devices  -> infrastructure grows together    (automatically) with user base Need for software systems that can survive without central servers.  “ How to unleash the power of Internet’s dark matter ?”
Some numbers 1. Introduction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why is P2P difficult ? 1. Introduction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],=>
Characteristics of P2P systems  1. Introduction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The history of P2P  1. Introduction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
P2P-architectures  mediated pure hybrid data traffic P2P P2P P2P control traffic client-server P2P local : client-server on distance : P2P efficiency + efficient search + efficient control - inefficient search - BW consuming +/- scalability - control hot spot (mirrors needed ?) - BW needed  grows rapidly good compromise robustness - single point of failure - easy to attack + graceful degradation + difficult to attack ? accountability easy difficult difficult ,[object Object],[object Object],Generation I Generation II
Generation I : Rise and fall of Napster Aug ‘99 Oct ‘99 Dec ‘99 Feb ‘00 Apr ‘00 Jun ‘00 Aug ‘00 Oct ‘00 Dec ‘00 Feb ‘01 Apr ‘01 Jun ‘01 Aug ‘01 Shawn Fanning releases Napster on the Internet Recording Industry Association of America sues Napster for copyright infringement College campuses block Napster 5 million Napster users Metallica sues Napster 300,000 users blocked 20 million Napster users Senate hearing on digital music and copyright © 32 million Napster users Bertelsmann drops lawsuit, provides loan to develop subscription service 2.7 billion songs downloaded in Feb01 Napster offers $1billion to record companies On court order, Napster adds filters to block copyrighted content 90% of songs are blocked $15mio investment Hummer Winblad $ $ Napster goes offline ,[object Object],[object Object]
Generation I : SETI@Home ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10 tapes/week, 350 GB  10 000 0.3 MB work units 35 GB/tape 16 hours recorded data
SETI : How it works process work unit integrity check store in data base ,[object Object],[object Object],download client software work unit work unit results
SETI : Some numbers computations per work unit 3.1x10 12  FP-operations work unit throughput 700 000/day ,[object Object],[object Object],22x10 17  FLOP/day >25 TFLOPS ASCI White@DoE [email_address] Processing 25 TFLOPS 12.3 TFLOPS Cost 1 M USD 110 M USD
Generation III : P2P middleware ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],Chapter 7 Peer-to-Peer systems
Overlay routing 2. Overlays Full mesh overlay topology scales badly ! a b c d e f g h A B E H dest. next h c e c dest. next h f e d a c dest. next  h g f dest. next h h g dest. next e e d dest. next hop H B E E A dest. next hop H E B IP layer Overlay dest. next hop H H E dest. next e c b
Overlay routing 2. Overlays IP packet IP header IP payload overlay header overlay payload IP source address IP destination address overlay source address (edge node ID) overlay destination address (edge node ID) overlay packet ,[object Object],[object Object],[object Object]
Content based routing 2. Overlays ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DHT routing vs. IP routing 2. Overlays IP routing  DHT routing Size IPv4 : 2 32  nodes > 2 128  GUIDs IPv6 : 2 128  nodes flat but: hierarchical structured Load balancing routes determined by topology  any algorithm can be used (e.g. OSPF routes)  objects can be relocated    to optimize routing Dynamics static (time constant 1h) can be dynamic asynchronous w.r.t. application  synchronous or asynchronous Resilience built in ensured through replication of objects Target IP destination maps to 1 node GUID can map to different replica’s
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Chapter 7 Peer-to-Peer systems
Data management APIs 3. Distributed Hash Tables 1. Introduction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bootstrapping 3. Distributed Hash Tables 1. Introduction The bootstrapping problem how to find a network node ? Approaches - pre-configured  static  addresses of stable nodes - should have fixed IP address - should always be on -  DNS-service domain name resolves to nodes Configuration info made available - routing table bootstrap info - GUID space the node is responsible for - protocol information
DHT : GUID routing Concept Content Item hash  function GUID Node is responsible for range of GUIDs it belongs to Nodes are responsible for part of GUID space {GUID} Node1 Node2 Node3 GUIDs in intersection are replicated e.g. Node Public key 3. Distributed Hash Tables 1. Introduction
Circular routing Suppose : GUID consists of 4 hex symbols 0 FFFF Active node 2 Active node 1 Active node has Leaf set (size 2l) = Table (GUID,IP) of neighbours l=4 3. Distributed Hash Tables 2. Circular routing
Circular routing 0 FFFF Source l=4 k=Destination a b c d e f g h i j l GUID IP a IPa b IPb c IPc d IPd GUID IP e IPe f IPf g IPg h IPh GUID IP i IPi j IPj k IPk l IPl N active nodes leaf set size = 2l => worst case N/2l hops 3. Distributed Hash Tables 2. Circular routing
Prefix routing ,[object Object],[object Object],[object Object],[object Object],0 FFFF leaf set 3. Distributed Hash Tables 3. Pastry
Prefix routing  Routing table structure @active node n-bit GUID -> n/4 routing table rows (16 bit -> 4 rows) p = longest prefix match Routing table of node with GUID 53AF p 0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F 0 x  x  x  x  x  x  x  x  x  x  x  x  x  x  x 1 x  x  x  x  x  x  x  x  x  x  x  x  x  x  x 2 x  x  x  x  x  x  x  x  x  x  x  x  x  x  x 3 x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  [GUID,IP] of next hop for message  destinated for 53A3 (=closest active node to 53A3) [GUID,IP] of next hop for message  destinated for 5Cxx 3. Distributed Hash Tables 3. Pastry
Prefix Routing Message m from S(ource) to D(estination) arrives in C(urrent) node Leaf set : size 2l (L -l  -> L l ) R : routing matrix if (L -l   ≤ D  ≤ L l ) { forward m  - to GUID i  found in leaf set - to current node C } else { find longest prefix match p of D and C c = symbol (p+1) of D if(R pc   ≠ null) forward m to  R pc   else { find GUID i  in L or R with |GUID i  – D|<|GUID i -C| forward m to GUID i } } Observation: correct routing possible with empty routing table  3. Distributed Hash Tables 3. Pastry
Node dynamics : Joining  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],0 FFFF X B F Join Join Join Join R B ,L B R C ,L C C D R D ,L D R F ,L F 3. Distributed Hash Tables 3. Pastry
Node dynamics : Joining  Contructing R X {B 0 ,B 1 ,B 2 , ... ,B N-1 } = set of physical nodes visited by Join message B 0 =B B N-1 =F Row 0 :  - used to route GUID with no common prefix - bootstrap node B 0  (very) close to X => R X [0]=R B0 [0] Row 1 : - used to route GUID with common prefix 1 - prefix(GUID B1 ,GUID X ) ≥1 => R X [1]=R B1 [1] ... Row i : => R X [i]=R Bi [i] Constructing L X X should be neighbour of F intial choice : L X =L F 3. Distributed Hash Tables 3. Pastry
Node dynamics : Leaving 0 FFFF Failing node X l=4 unreachable Detecting node D L D Only leaf sets are repaired D 1 D 2 D 3 D 4 D -1 D -2 D -3 D -4 GUID(D -4 ) IP(D -4 ) GUID(D -3 ) IP(D -3 ) GUID(D -2 ) IP(D -2 ) GUID(D -1 ) IP(D -1 ) GUID(D 1 ) IP(D 1 ) GUID(D 2 ) IP(D 2 ) GUID(D 3 ) IP(D 3 ) GUID(D 4 ) IP(D 4 ) L D ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],L D2 3. Distributed Hash Tables 3. Pastry
Chord 3. Distributed Hash Tables 4. Chord Basic Chord API  lookup(key) : maps key -> IP address of node responsible for the key Application built on top on Chord - uses lookup(key) - gets informed by Chord when key-set of current node changes - is responsible for (if desired) - authentication - caching and replication Sample applications - cooperative mirroring (multiple servers cooperate to store content) - time shared storage (ensuring data availability, even if server off-line) - distributed indexes (content sharing) - large-scale combinatorial search (e.g. code breaking)
Consistent hashing 3. Distributed Hash Tables 4. Chord Hash function (SHA-1) produces m-bit identifiers hash(nodeIP) hash(key) Identifiers mapped to identifier circle modulo 2 m Key k -> hash(k) -> node(hash(k)) = successor(k)   = node with smallest identifier ≥ hash(k) n1 n12 n32 n56 n48 n36 n28 n24 m = 6 8 nodes 5 keys stored K=10 K=26 K=48 K=62 K=53
Joining and Leaving 3. Distributed Hash Tables 4. Chord X Leaving keys associated with X -> reassigned to successor(X) X Joining  X gets some of the keys assigned to successor(X) n1 n12 n32 n56 n48 n36 n28 n24 K=10 K=26 K=48 K=62 K=53 n54
Simple Routing  3. Distributed Hash Tables 4. Chord Request lookup(id) arrives at node n Node n knows id of its successor n.findSuccessor(id)  { if id in (n,successor]  return successor else return successor.findSuccessor(id) } n1 n12 n32 n56 n48 n36 n28 n24 lookup(53) K=26 K=48 K=62 K=53 (a,b] Clockwise interval Excluding  a,  including  b
Skiplist routing 3. Distributed Hash Tables 4. Chord Each node has  finger table ≈  leaf set with non-equidistant node intervals Finger table (m entries) Distance  ID IP 1 2 4 8 … Routing to GUID send message to successor GUID = highest ID in finger table    with ID ≤ GUID O(log N) hops needed Robustness node keeps track of n successors = circular routing in case finger table   not valid
Skiplist routing 3. Distributed Hash Tables 4. Chord Finger table Distance ID IP 1 2 4 More formally  row i in finger table is node at distance larger than 2 i-1 finger[i] =successor(n+2 i-1  )  (i≥1) n1 n12 n32 n56 n48 n36 n28 n24 Finger table (m=6) n12+1 n24 n12+2 n24 n12+4 n24 n12+8 n24 n12+16 n28 n12+32 n48 Finger table (m=6) n48+1 n56 n48+2 n56 n48+4 n56 n48+8 n56 n48+16 n1 n48+32 n24
Skiplist routing 3. Distributed Hash Tables 4. Chord Routing  : take largest jump possible ! n1 n12 n32 n56 n48 n36 n28 n24 Finger table (m=6) n12+1 n24 n12+2 n24 n12+4 n24 n12+8 n24 n12+16 n28 n12+32 n48 Finger table (m=6) n48+1 n56 n48+2 n56 n48+4 n56 n48+8 n56 n48+16 n1 n48+32 n24 lookup(53) K=53
Skiplist routing 3. Distributed Hash Tables 4. Chord Routing  : take largest jump possible ! n.findSuccessor(id)  { if id in (n,successor]  return successor else { n’=closestPreceedingNode(id) return n’.findSuccessor(id) } } n.closestPreceedingNode(id)  { for i=m downto 1 if finger[i] in (n,id] return finger[i] return n }
Node dynamics : Joining 3. Distributed Hash Tables 4. Chord Bootstrapping (create a new ring) n.create()  { predecessor=null successor=n } Joining a ring (containing n’) n.join(n’)  { predecessor=null successor=n’.findSuccessor(n) }
Node dynamics : Stability 3. Distributed Hash Tables 4. Chord ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Node dynamics : Stability 3. Distributed Hash Tables 4. Chord n.stabilize() { x=successor.predecessor if x in (n,successor] successor = x  // better successor found successor.notify(n)   // adapt predecessor of successor } n.notify(n’) { //n’ thinks it is the predecessor of n if (predecessor==null) OR (n’ in (predecessor,n[) predecessor = n’ // better predecessor found } Steady-State : no changes ! P.stabilize() - adapts successor @P (s P ) - adapts predecessor @Q (p Q ) If successor and predecessor @P and Q correct, i.e. s P  = Q, p Q  = P x=successor.predecessor=(s P ).predecessor=p (sP) =p Q =P -> x in (P,Q] ? -> FALSE -> Q.notify(P) P in (p Q ,Q[ ? -> P in (P,Q[ ? -> FALSE NO UPDATES P( s P ,p P ) Q(s Q , p Q )
Node dynamics : Join 3. Distributed Hash Tables 4. Chord X.join(Q) -> p X =null -> s X = Q.findSuccessor(X)=Q P( s P =Q ,p P =?) Q(s Q =?, p Q =P ) X(s X =null,p X =null) X joins, P<X<Q Ring stable P( s P =Q ,p P =?) Q(s Q =?, p Q =P ) X(s X =Q,p X =null)
Node dynamics : Join 3. Distributed Hash Tables 4. Chord X.stabilize() -> x=successor.predecessor=(s X ).predecessor=p (sX) =p Q =P -> P in (X,Q] -> FALSE -> Q.notify(X) Q.notify(X) -> X in (p Q ,Q[ = (P,Q[ -> TRUE -> p Q =X P( s P =Q ,p P =?) Q(s Q =?, p Q =P ) X( s X =Q ,p X =null) P( s P =Q ,p P =?) Q(s Q =?, p Q =X ) X( s X =Q ,p X =null)
Node dynamics : Join 3. Distributed Hash Tables 4. Chord P.stabilize() -> x=successor.predecessor=(s P ).predecessor=p (sP) =p Q =X -> X in (P,Q] -> TRUE -> s P =X -> X.notify(P) X.notify(P) -> p X  == null -> p X =P P( s P =Q ,p P =?) Q(s Q =?, p Q =X ) X( s X =Q ,p X =null) P( s P =X ,p P =?) Q(s Q =?, p Q =X ) X( s X =Q , p X =P )
Node dynamics : Join example 3. Distributed Hash Tables 4. Chord N200 {K125,K135, K175} N150 JOINS N100 {K85,K93,K99} N200 {K125,K135, K175} N100 {K85,K93,K99} N150 {} N150 COPIES KEYS FROM N200
Node dynamics : Join example 3. Distributed Hash Tables 4. Chord N200 {K125,K135, K175} N100 {K85,K93,K99} N150 {K125,K135} N100, N150 and N200 stabilize N200 {K175} N100 {K85,K93,K99} N150 {K125,K135}
Node dynamics : Stability 3. Distributed Hash Tables 4. Chord n.fixFingers()  { next++ // f[next] will be fixed if (next>m) next = 1 finger[next]=findSuccessor(n+2 next-1 ) } n.checkPredecessors()  { // allows active predecessor to enter if (predecessor failed) predecessor = null }
Node dynamics : Failures 3. Distributed Hash Tables 4. Chord As long as each node knows successor -> correct operation of lookup Consider finger table @P P+1 Na P+2 Nb P+4 Nc P+8 Nd P+16 Ne P+32 Nf Suppose  - lookup(id) is launched @P, Nd<id<Ne - nodes Na, Nb, Nc, Nd and Ne fail simultaneously -> successor(id)=Nf (instead of Ne) -> ERROR Robustness ? - each node has list of r first successors - to corrupt ring -> r nodes have to fail simultaneously - changes needed to stabilization and lookup code
Node dynamics : Failures (pseudo code) 3. Distributed Hash Tables 4. Chord n.findSuccessor(id)  { if id in (n,successor]  return successor else { try { n’=closestPreceedingNode(id) return n’.findSuccessor(id) } catch(TimeoutException e) { invalidate n’ from finger  and successor table return n.findSuccessor(id) } } } n.closestPreceedingNode(id)  { for i=m downto 1 if finger[i] in (n,id] return finger[i] for i=r downto 1 if successor[i] in (n,id] return successor[i] return n }
Multi-dimensional routing 3. Distributed Hash Tables 5. CAN CAN : Content addressable network Basic idea  use d-dimensional space to map keys node is responsible for d-dimensional hypercube - Cartesian coordinates used - space is d-torus  Example 2D (1,0) (0,0) (0,1) (1,1) [0.0->0.5,0.5->1.0] [0.0->0.5,0.0->0.5] [0.5->1.0,0.5->1.0] [0.5->0.75, 0.25->0.5] [0.5->0.75, 0.0->0.25] [0.75->1.0, 0.0->0.5]
Multi-dimensional routing 3. Distributed Hash Tables 5. CAN Mapping content to node - Key-Value pair <K,V> mapped to point P in Cartesian space P=hash(K) - P belongs to region owned by node N - N stores <K,V> Retrieving entry for key K - compute P=hash(K) - if P not owned by requester or neighbours  -> route request in the CAN network Self-organizing routing  node learns and stores set of neighbours  neighbour : shares hyperplane of dimension (d-1) -> in (d-1) dimension, intervals overlap info stored per neighbour n IP(n), zone(n) A B E D C F IP(A), zone(A) IP(B), zone(B) …
Multi-dimensional routing  3. Distributed Hash Tables 5. CAN Neighbour nodes : examples ,[object Object],[object Object],[object Object]
Multi-dimensional routing 3. Distributed Hash Tables 5. CAN Routing in d dimensions Follow straight line from source to destination (1,0) (0,0) (0,1) (1,1) lookup(0.8,0.9)  (0.8,0.9)
Multi-dimensional routing 3. Distributed Hash Tables 5. CAN Routing in d dimensions Forward to closest neighbour (greedy forwarding) -> each node keeps track of at least d neighbours -> space complexity O(d) -> lookup cost O(dN 1/d ) (N number of nodes) (1,0) (0,0) (0,1) (1,1) lookup(0.8,0.9)  (0.8,0.9)
Node dynamics : Joining the CAN 3. Distributed Hash Tables 5. CAN 1. Find an active node in the CAN (Bootstrapping) -  CAN has DNS name - DNS resolves to IP address of bootstrapping node - each bootstrap node has list of probably active nodes - nodes that joined before - nodes can notify before they leave - nodes supposed to reply to ping-messages from bootstrap - bootstrap node replies to “join” by random selection from the   active node list - essential to minimize activity of the bootstrap node 2. Find a zone to care for 3. Publish new node to neighours
Node dynamics : Joining the CAN 3. Distributed Hash Tables 5. CAN ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],N X -> JOIN(P) N X
Node dynamics : Joining the CAN 3. Distributed Hash Tables 5. CAN Joining : example A B C D E F G H neighbour(B) = {A,C,D,F,G} A B C D E F G H neighbour’(B) = {A,C,G, X } neighbour’(X) = {A,D,F, B } X
Node dynamics : Joining the CAN 3. Distributed Hash Tables 5. CAN ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Node dynamics : Leaving the CAN 3. Distributed Hash Tables 5. CAN Normal exit - X che cks if zone(X) can be merged with zone(n) - if so, zone(X) is handed to n - if not, a neighbour zone will take care of multiple zones - which neighbour ? minimize maximum zone size of neighbours Unexpected departure (failure) -> Immediate take-over Failure detected through absence of update messages When node N detects X has departed (probably multiple N’s !) - start take over timer timeout = C zoneSize(N) when time-out { N sends TAKEOVER(zoneSize(N)) to neighbour(X) update zone(N) info } - on receipt of TAKEOVER(zoneSize(Y)) at node N if(zoneSize(Y)<zoneSize(N)) { cancel timer @ N update neighbour info } else send TAKEOVER(zoneSize(N)) to neighbour(X)
Node dynamics: Leaving the CAN 3. Distributed Hash Tables 5. CAN Unexpected departure (failure) Immediate take-over algorithm OK to handle single node failures If less than 50% of neighbour(X) nodes reachable -> locate active neighbours through expanding ring search    prior to take-over Expanded ring search @ node N TTL = 1 do { broadcast request for info to neighbours(N) TTL++ } while neighbourInfo incomplete Avoid too much fragmentation background zone-reassignment process
Advanced CAN 3. Distributed Hash Tables 5. CAN ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Advanced CAN 3. Distributed Hash Tables 5. CAN ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Research challenges 3. Distributed Hash Tables 5. CAN ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

O(1) DHT
O(1) DHTO(1) DHT
International Journal of Computational Engineering Research(IJCER)
 International Journal of Computational Engineering Research(IJCER)  International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
ijceronline
 
Lec9
Lec9Lec9
call for papers, research paper publishing, where to publish research paper, ...
call for papers, research paper publishing, where to publish research paper, ...call for papers, research paper publishing, where to publish research paper, ...
call for papers, research paper publishing, where to publish research paper, ...
International Journal of Engineering Inventions www.ijeijournal.com
 
Plenzogan technology
Plenzogan technologyPlenzogan technology
Plenzogan technology
plenzogan
 
Ch22
Ch22Ch22
Adhoc routing protocols
Adhoc routing protocolsAdhoc routing protocols
Adhoc routing protocols
Senthil Kanth
 
Research Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and ScienceResearch Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and Science
researchinventy
 
Ch1 internet Networks
Ch1 internet NetworksCh1 internet Networks
Ch1 internet Networks
cairo university
 
Taking R to the Limit (High Performance Computing in R), Part 2 -- Large Data...
Taking R to the Limit (High Performance Computing in R), Part 2 -- Large Data...Taking R to the Limit (High Performance Computing in R), Part 2 -- Large Data...
Taking R to the Limit (High Performance Computing in R), Part 2 -- Large Data...
Ryan Rosario
 
Default and On demand routing - Advance Computer Networks
Default and On demand routing - Advance Computer NetworksDefault and On demand routing - Advance Computer Networks
Default and On demand routing - Advance Computer Networks
Sonali Parab
 
internet services
internet servicesinternet services
internet services
Sanchit Jasuja
 
PERFORMANCE ANALYSIS AND COMPARISON OF IMPROVED DSR WITH DSR, AODV AND DSDV R...
PERFORMANCE ANALYSIS AND COMPARISON OF IMPROVED DSR WITH DSR, AODV AND DSDV R...PERFORMANCE ANALYSIS AND COMPARISON OF IMPROVED DSR WITH DSR, AODV AND DSDV R...
PERFORMANCE ANALYSIS AND COMPARISON OF IMPROVED DSR WITH DSR, AODV AND DSDV R...
ijp2p
 
internet applications
 internet applications internet applications
internet applications
Srinivasa Rao
 
Efficient algorithm for rsa text encryption using cuda c
Efficient algorithm for rsa text encryption using cuda cEfficient algorithm for rsa text encryption using cuda c
Efficient algorithm for rsa text encryption using cuda c
csandit
 
internet applications
internet applicationsinternet applications
internet applications
Srinivasa Rao
 
Routing in Manet
Routing in ManetRouting in Manet
Routing in Manet
shiujinghan
 
SIMULATION AND ANALYSIS OF AODV, DSDV, ZRP IN VANET
SIMULATION AND ANALYSIS OF AODV, DSDV, ZRP IN VANETSIMULATION AND ANALYSIS OF AODV, DSDV, ZRP IN VANET
SIMULATION AND ANALYSIS OF AODV, DSDV, ZRP IN VANET
ijfcstjournal
 
Ns2
Ns2Ns2
Detection of Duplicate Address in Mobile Adhoc Networks for On Demand Routing...
Detection of Duplicate Address in Mobile Adhoc Networks for On Demand Routing...Detection of Duplicate Address in Mobile Adhoc Networks for On Demand Routing...
Detection of Duplicate Address in Mobile Adhoc Networks for On Demand Routing...
IJMER
 

What's hot (20)

O(1) DHT
O(1) DHTO(1) DHT
O(1) DHT
 
International Journal of Computational Engineering Research(IJCER)
 International Journal of Computational Engineering Research(IJCER)  International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
Lec9
Lec9Lec9
Lec9
 
call for papers, research paper publishing, where to publish research paper, ...
call for papers, research paper publishing, where to publish research paper, ...call for papers, research paper publishing, where to publish research paper, ...
call for papers, research paper publishing, where to publish research paper, ...
 
Plenzogan technology
Plenzogan technologyPlenzogan technology
Plenzogan technology
 
Ch22
Ch22Ch22
Ch22
 
Adhoc routing protocols
Adhoc routing protocolsAdhoc routing protocols
Adhoc routing protocols
 
Research Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and ScienceResearch Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and Science
 
Ch1 internet Networks
Ch1 internet NetworksCh1 internet Networks
Ch1 internet Networks
 
Taking R to the Limit (High Performance Computing in R), Part 2 -- Large Data...
Taking R to the Limit (High Performance Computing in R), Part 2 -- Large Data...Taking R to the Limit (High Performance Computing in R), Part 2 -- Large Data...
Taking R to the Limit (High Performance Computing in R), Part 2 -- Large Data...
 
Default and On demand routing - Advance Computer Networks
Default and On demand routing - Advance Computer NetworksDefault and On demand routing - Advance Computer Networks
Default and On demand routing - Advance Computer Networks
 
internet services
internet servicesinternet services
internet services
 
PERFORMANCE ANALYSIS AND COMPARISON OF IMPROVED DSR WITH DSR, AODV AND DSDV R...
PERFORMANCE ANALYSIS AND COMPARISON OF IMPROVED DSR WITH DSR, AODV AND DSDV R...PERFORMANCE ANALYSIS AND COMPARISON OF IMPROVED DSR WITH DSR, AODV AND DSDV R...
PERFORMANCE ANALYSIS AND COMPARISON OF IMPROVED DSR WITH DSR, AODV AND DSDV R...
 
internet applications
 internet applications internet applications
internet applications
 
Efficient algorithm for rsa text encryption using cuda c
Efficient algorithm for rsa text encryption using cuda cEfficient algorithm for rsa text encryption using cuda c
Efficient algorithm for rsa text encryption using cuda c
 
internet applications
internet applicationsinternet applications
internet applications
 
Routing in Manet
Routing in ManetRouting in Manet
Routing in Manet
 
SIMULATION AND ANALYSIS OF AODV, DSDV, ZRP IN VANET
SIMULATION AND ANALYSIS OF AODV, DSDV, ZRP IN VANETSIMULATION AND ANALYSIS OF AODV, DSDV, ZRP IN VANET
SIMULATION AND ANALYSIS OF AODV, DSDV, ZRP IN VANET
 
Ns2
Ns2Ns2
Ns2
 
Detection of Duplicate Address in Mobile Adhoc Networks for On Demand Routing...
Detection of Duplicate Address in Mobile Adhoc Networks for On Demand Routing...Detection of Duplicate Address in Mobile Adhoc Networks for On Demand Routing...
Detection of Duplicate Address in Mobile Adhoc Networks for On Demand Routing...
 

Viewers also liked

Introduction P2p
Introduction P2pIntroduction P2p
Introduction P2p
Davide Carboni
 
chapter_11
chapter_11chapter_11
chapter_11
Vero Deg
 
Exploration network chapter4
Exploration network chapter4Exploration network chapter4
Exploration network chapter4
teknik komputer ui
 
chapter_10
chapter_10chapter_10
chapter_10
Vero Deg
 
chapter_6
chapter_6chapter_6
chapter_6
Vero Deg
 
The bigger picture
The bigger pictureThe bigger picture
The bigger picture
Suresh Iyer
 
2009 kalman.graffi emanics_aspects_ofautonomiccomputing_20090617
2009 kalman.graffi emanics_aspects_ofautonomiccomputing_200906172009 kalman.graffi emanics_aspects_ofautonomiccomputing_20090617
2009 kalman.graffi emanics_aspects_ofautonomiccomputing_20090617
Kalman Graffi
 
Criminals in the Cloud: Past, Present, and Future
Criminals in the Cloud: Past, Present, and FutureCriminals in the Cloud: Past, Present, and Future
Criminals in the Cloud: Past, Present, and Future
Jim Lippard
 
Kademlia(日本語版)
Kademlia(日本語版)Kademlia(日本語版)
Kademlia(日本語版)
Tasuku Takahashi
 
Exercises 10
Exercises 10Exercises 10
Exercises 10
AhusseinA
 
Dynamic Search Algorithm for unstructured Peer to Peer Networks
Dynamic Search Algorithm for unstructured Peer to Peer NetworksDynamic Search Algorithm for unstructured Peer to Peer Networks
Dynamic Search Algorithm for unstructured Peer to Peer Networks
Venkata Sai Manoj Illendula
 
IEEE CCNC 2011: Kalman Graffi - LifeSocial.KOM: A Secure and P2P-based Soluti...
IEEE CCNC 2011: Kalman Graffi - LifeSocial.KOM: A Secure and P2P-based Soluti...IEEE CCNC 2011: Kalman Graffi - LifeSocial.KOM: A Secure and P2P-based Soluti...
IEEE CCNC 2011: Kalman Graffi - LifeSocial.KOM: A Secure and P2P-based Soluti...
Kalman Graffi
 
Infinispan, a distributed in-memory key/value data grid and cache
 Infinispan, a distributed in-memory key/value data grid and cache Infinispan, a distributed in-memory key/value data grid and cache
Infinispan, a distributed in-memory key/value data grid and cache
Sebastian Andrasoni
 
Performance evaluation methods for P2P overlays
Performance evaluation methods for P2P overlaysPerformance evaluation methods for P2P overlays
Performance evaluation methods for P2P overlays
Knut-Helge Vik
 
Peer-to-Peer Systems
Peer-to-Peer SystemsPeer-to-Peer Systems
Peer-to-Peer Systems
Uwe Schmidt
 
DATA WAREHOUSING
DATA WAREHOUSINGDATA WAREHOUSING
DATA WAREHOUSING
King Julian
 
Managing warehouse operations. How to manage and run warehouse operations by ...
Managing warehouse operations. How to manage and run warehouse operations by ...Managing warehouse operations. How to manage and run warehouse operations by ...
Managing warehouse operations. How to manage and run warehouse operations by ...
Omar Youssef
 

Viewers also liked (17)

Introduction P2p
Introduction P2pIntroduction P2p
Introduction P2p
 
chapter_11
chapter_11chapter_11
chapter_11
 
Exploration network chapter4
Exploration network chapter4Exploration network chapter4
Exploration network chapter4
 
chapter_10
chapter_10chapter_10
chapter_10
 
chapter_6
chapter_6chapter_6
chapter_6
 
The bigger picture
The bigger pictureThe bigger picture
The bigger picture
 
2009 kalman.graffi emanics_aspects_ofautonomiccomputing_20090617
2009 kalman.graffi emanics_aspects_ofautonomiccomputing_200906172009 kalman.graffi emanics_aspects_ofautonomiccomputing_20090617
2009 kalman.graffi emanics_aspects_ofautonomiccomputing_20090617
 
Criminals in the Cloud: Past, Present, and Future
Criminals in the Cloud: Past, Present, and FutureCriminals in the Cloud: Past, Present, and Future
Criminals in the Cloud: Past, Present, and Future
 
Kademlia(日本語版)
Kademlia(日本語版)Kademlia(日本語版)
Kademlia(日本語版)
 
Exercises 10
Exercises 10Exercises 10
Exercises 10
 
Dynamic Search Algorithm for unstructured Peer to Peer Networks
Dynamic Search Algorithm for unstructured Peer to Peer NetworksDynamic Search Algorithm for unstructured Peer to Peer Networks
Dynamic Search Algorithm for unstructured Peer to Peer Networks
 
IEEE CCNC 2011: Kalman Graffi - LifeSocial.KOM: A Secure and P2P-based Soluti...
IEEE CCNC 2011: Kalman Graffi - LifeSocial.KOM: A Secure and P2P-based Soluti...IEEE CCNC 2011: Kalman Graffi - LifeSocial.KOM: A Secure and P2P-based Soluti...
IEEE CCNC 2011: Kalman Graffi - LifeSocial.KOM: A Secure and P2P-based Soluti...
 
Infinispan, a distributed in-memory key/value data grid and cache
 Infinispan, a distributed in-memory key/value data grid and cache Infinispan, a distributed in-memory key/value data grid and cache
Infinispan, a distributed in-memory key/value data grid and cache
 
Performance evaluation methods for P2P overlays
Performance evaluation methods for P2P overlaysPerformance evaluation methods for P2P overlays
Performance evaluation methods for P2P overlays
 
Peer-to-Peer Systems
Peer-to-Peer SystemsPeer-to-Peer Systems
Peer-to-Peer Systems
 
DATA WAREHOUSING
DATA WAREHOUSINGDATA WAREHOUSING
DATA WAREHOUSING
 
Managing warehouse operations. How to manage and run warehouse operations by ...
Managing warehouse operations. How to manage and run warehouse operations by ...Managing warehouse operations. How to manage and run warehouse operations by ...
Managing warehouse operations. How to manage and run warehouse operations by ...
 

Similar to Ods chapter7

OLPC Mesh networking improvements
OLPC Mesh networking improvementsOLPC Mesh networking improvements
OLPC Mesh networking improvements
OSLL
 
Tcp
TcpTcp
Tcp
giaolvq
 
DCN-chapter1.pdf
DCN-chapter1.pdfDCN-chapter1.pdf
DCN-chapter1.pdf
MakuBandar
 
Content addressable network(can)
Content addressable network(can)Content addressable network(can)
Content addressable network(can)
Amit Dahal
 
TransPAC3/ACE Measurement & PerfSONAR Update
TransPAC3/ACE Measurement & PerfSONAR UpdateTransPAC3/ACE Measurement & PerfSONAR Update
TransPAC3/ACE Measurement & PerfSONAR Update
International Networking at Indiana University
 
Networking interview questions
Networking interview questionsNetworking interview questions
Networking interview questions
zahadath
 
Sector Sphere 2009
Sector Sphere 2009Sector Sphere 2009
Sector Sphere 2009
lilyco
 
sector-sphere
sector-spheresector-sphere
sector-sphere
xlight
 
Network the 4th layer
Network the 4th layerNetwork the 4th layer
Network the 4th layer
kachbourimed
 
ip-basics.ppt
ip-basics.pptip-basics.ppt
ip-basics.ppt
GioSanBuenaventura1
 
ip net basic understanding slide show ppt
ip net basic understanding slide show pptip net basic understanding slide show ppt
ip net basic understanding slide show ppt
lolo749806
 
Ccent notes part 1
Ccent notes part 1Ccent notes part 1
Ccent notes part 1
ahmady
 
Networking presentation 9 march 2009
Networking presentation   9 march 2009Networking presentation   9 march 2009
Networking presentation 9 march 2009
Kinshook Chaturvedi
 
ipbasics.ppt
ipbasics.pptipbasics.ppt
ipbasics.ppt
QadarAhmed1
 
CNF.Chap.5.pptx
CNF.Chap.5.pptxCNF.Chap.5.pptx
CNF.Chap.5.pptx
halosidiq1
 
Introduction to networking
Introduction to networkingIntroduction to networking
Introduction to networking
Mohsen Sarakbi
 
DDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data LinksDDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data Links
Real-Time Innovations (RTI)
 
Introduction to tcp ip linux networking
Introduction to tcp ip   linux networkingIntroduction to tcp ip   linux networking
Introduction to tcp ip linux networking
Sreenatha Reddy K R
 
Peer-to-Peer Networking Systems and Streaming
Peer-to-Peer Networking Systems and StreamingPeer-to-Peer Networking Systems and Streaming
Peer-to-Peer Networking Systems and Streaming
Dilum Bandara
 
layering.pdf
layering.pdflayering.pdf
layering.pdf
BoostHub
 

Similar to Ods chapter7 (20)

OLPC Mesh networking improvements
OLPC Mesh networking improvementsOLPC Mesh networking improvements
OLPC Mesh networking improvements
 
Tcp
TcpTcp
Tcp
 
DCN-chapter1.pdf
DCN-chapter1.pdfDCN-chapter1.pdf
DCN-chapter1.pdf
 
Content addressable network(can)
Content addressable network(can)Content addressable network(can)
Content addressable network(can)
 
TransPAC3/ACE Measurement & PerfSONAR Update
TransPAC3/ACE Measurement & PerfSONAR UpdateTransPAC3/ACE Measurement & PerfSONAR Update
TransPAC3/ACE Measurement & PerfSONAR Update
 
Networking interview questions
Networking interview questionsNetworking interview questions
Networking interview questions
 
Sector Sphere 2009
Sector Sphere 2009Sector Sphere 2009
Sector Sphere 2009
 
sector-sphere
sector-spheresector-sphere
sector-sphere
 
Network the 4th layer
Network the 4th layerNetwork the 4th layer
Network the 4th layer
 
ip-basics.ppt
ip-basics.pptip-basics.ppt
ip-basics.ppt
 
ip net basic understanding slide show ppt
ip net basic understanding slide show pptip net basic understanding slide show ppt
ip net basic understanding slide show ppt
 
Ccent notes part 1
Ccent notes part 1Ccent notes part 1
Ccent notes part 1
 
Networking presentation 9 march 2009
Networking presentation   9 march 2009Networking presentation   9 march 2009
Networking presentation 9 march 2009
 
ipbasics.ppt
ipbasics.pptipbasics.ppt
ipbasics.ppt
 
CNF.Chap.5.pptx
CNF.Chap.5.pptxCNF.Chap.5.pptx
CNF.Chap.5.pptx
 
Introduction to networking
Introduction to networkingIntroduction to networking
Introduction to networking
 
DDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data LinksDDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data Links
 
Introduction to tcp ip linux networking
Introduction to tcp ip   linux networkingIntroduction to tcp ip   linux networking
Introduction to tcp ip linux networking
 
Peer-to-Peer Networking Systems and Streaming
Peer-to-Peer Networking Systems and StreamingPeer-to-Peer Networking Systems and Streaming
Peer-to-Peer Networking Systems and Streaming
 
layering.pdf
layering.pdflayering.pdf
layering.pdf
 

Recently uploaded

Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 

Recently uploaded (20)

Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 

Ods chapter7

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. Overlay routing 2. Overlays Full mesh overlay topology scales badly ! a b c d e f g h A B E H dest. next h c e c dest. next h f e d a c dest. next h g f dest. next h h g dest. next e e d dest. next hop H B E E A dest. next hop H E B IP layer Overlay dest. next hop H H E dest. next e c b
  • 17.
  • 18.
  • 19. DHT routing vs. IP routing 2. Overlays IP routing DHT routing Size IPv4 : 2 32 nodes > 2 128 GUIDs IPv6 : 2 128 nodes flat but: hierarchical structured Load balancing routes determined by topology any algorithm can be used (e.g. OSPF routes) objects can be relocated to optimize routing Dynamics static (time constant 1h) can be dynamic asynchronous w.r.t. application synchronous or asynchronous Resilience built in ensured through replication of objects Target IP destination maps to 1 node GUID can map to different replica’s
  • 20.
  • 21.
  • 22. Bootstrapping 3. Distributed Hash Tables 1. Introduction The bootstrapping problem how to find a network node ? Approaches - pre-configured static addresses of stable nodes - should have fixed IP address - should always be on - DNS-service domain name resolves to nodes Configuration info made available - routing table bootstrap info - GUID space the node is responsible for - protocol information
  • 23. DHT : GUID routing Concept Content Item hash function GUID Node is responsible for range of GUIDs it belongs to Nodes are responsible for part of GUID space {GUID} Node1 Node2 Node3 GUIDs in intersection are replicated e.g. Node Public key 3. Distributed Hash Tables 1. Introduction
  • 24. Circular routing Suppose : GUID consists of 4 hex symbols 0 FFFF Active node 2 Active node 1 Active node has Leaf set (size 2l) = Table (GUID,IP) of neighbours l=4 3. Distributed Hash Tables 2. Circular routing
  • 25. Circular routing 0 FFFF Source l=4 k=Destination a b c d e f g h i j l GUID IP a IPa b IPb c IPc d IPd GUID IP e IPe f IPf g IPg h IPh GUID IP i IPi j IPj k IPk l IPl N active nodes leaf set size = 2l => worst case N/2l hops 3. Distributed Hash Tables 2. Circular routing
  • 26.
  • 27. Prefix routing Routing table structure @active node n-bit GUID -> n/4 routing table rows (16 bit -> 4 rows) p = longest prefix match Routing table of node with GUID 53AF p 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 x x x x x x x x x x x x x x x 1 x x x x x x x x x x x x x x x 2 x x x x x x x x x x x x x x x 3 x x x x x x x x x x x x x x x [GUID,IP] of next hop for message destinated for 53A3 (=closest active node to 53A3) [GUID,IP] of next hop for message destinated for 5Cxx 3. Distributed Hash Tables 3. Pastry
  • 28. Prefix Routing Message m from S(ource) to D(estination) arrives in C(urrent) node Leaf set : size 2l (L -l -> L l ) R : routing matrix if (L -l ≤ D ≤ L l ) { forward m - to GUID i found in leaf set - to current node C } else { find longest prefix match p of D and C c = symbol (p+1) of D if(R pc ≠ null) forward m to R pc else { find GUID i in L or R with |GUID i – D|<|GUID i -C| forward m to GUID i } } Observation: correct routing possible with empty routing table 3. Distributed Hash Tables 3. Pastry
  • 29.
  • 30. Node dynamics : Joining Contructing R X {B 0 ,B 1 ,B 2 , ... ,B N-1 } = set of physical nodes visited by Join message B 0 =B B N-1 =F Row 0 : - used to route GUID with no common prefix - bootstrap node B 0 (very) close to X => R X [0]=R B0 [0] Row 1 : - used to route GUID with common prefix 1 - prefix(GUID B1 ,GUID X ) ≥1 => R X [1]=R B1 [1] ... Row i : => R X [i]=R Bi [i] Constructing L X X should be neighbour of F intial choice : L X =L F 3. Distributed Hash Tables 3. Pastry
  • 31.
  • 32. Chord 3. Distributed Hash Tables 4. Chord Basic Chord API lookup(key) : maps key -> IP address of node responsible for the key Application built on top on Chord - uses lookup(key) - gets informed by Chord when key-set of current node changes - is responsible for (if desired) - authentication - caching and replication Sample applications - cooperative mirroring (multiple servers cooperate to store content) - time shared storage (ensuring data availability, even if server off-line) - distributed indexes (content sharing) - large-scale combinatorial search (e.g. code breaking)
  • 33. Consistent hashing 3. Distributed Hash Tables 4. Chord Hash function (SHA-1) produces m-bit identifiers hash(nodeIP) hash(key) Identifiers mapped to identifier circle modulo 2 m Key k -> hash(k) -> node(hash(k)) = successor(k) = node with smallest identifier ≥ hash(k) n1 n12 n32 n56 n48 n36 n28 n24 m = 6 8 nodes 5 keys stored K=10 K=26 K=48 K=62 K=53
  • 34. Joining and Leaving 3. Distributed Hash Tables 4. Chord X Leaving keys associated with X -> reassigned to successor(X) X Joining X gets some of the keys assigned to successor(X) n1 n12 n32 n56 n48 n36 n28 n24 K=10 K=26 K=48 K=62 K=53 n54
  • 35. Simple Routing 3. Distributed Hash Tables 4. Chord Request lookup(id) arrives at node n Node n knows id of its successor n.findSuccessor(id) { if id in (n,successor] return successor else return successor.findSuccessor(id) } n1 n12 n32 n56 n48 n36 n28 n24 lookup(53) K=26 K=48 K=62 K=53 (a,b] Clockwise interval Excluding a, including b
  • 36. Skiplist routing 3. Distributed Hash Tables 4. Chord Each node has finger table ≈ leaf set with non-equidistant node intervals Finger table (m entries) Distance ID IP 1 2 4 8 … Routing to GUID send message to successor GUID = highest ID in finger table with ID ≤ GUID O(log N) hops needed Robustness node keeps track of n successors = circular routing in case finger table not valid
  • 37. Skiplist routing 3. Distributed Hash Tables 4. Chord Finger table Distance ID IP 1 2 4 More formally row i in finger table is node at distance larger than 2 i-1 finger[i] =successor(n+2 i-1 ) (i≥1) n1 n12 n32 n56 n48 n36 n28 n24 Finger table (m=6) n12+1 n24 n12+2 n24 n12+4 n24 n12+8 n24 n12+16 n28 n12+32 n48 Finger table (m=6) n48+1 n56 n48+2 n56 n48+4 n56 n48+8 n56 n48+16 n1 n48+32 n24
  • 38. Skiplist routing 3. Distributed Hash Tables 4. Chord Routing : take largest jump possible ! n1 n12 n32 n56 n48 n36 n28 n24 Finger table (m=6) n12+1 n24 n12+2 n24 n12+4 n24 n12+8 n24 n12+16 n28 n12+32 n48 Finger table (m=6) n48+1 n56 n48+2 n56 n48+4 n56 n48+8 n56 n48+16 n1 n48+32 n24 lookup(53) K=53
  • 39. Skiplist routing 3. Distributed Hash Tables 4. Chord Routing : take largest jump possible ! n.findSuccessor(id) { if id in (n,successor] return successor else { n’=closestPreceedingNode(id) return n’.findSuccessor(id) } } n.closestPreceedingNode(id) { for i=m downto 1 if finger[i] in (n,id] return finger[i] return n }
  • 40. Node dynamics : Joining 3. Distributed Hash Tables 4. Chord Bootstrapping (create a new ring) n.create() { predecessor=null successor=n } Joining a ring (containing n’) n.join(n’) { predecessor=null successor=n’.findSuccessor(n) }
  • 41.
  • 42. Node dynamics : Stability 3. Distributed Hash Tables 4. Chord n.stabilize() { x=successor.predecessor if x in (n,successor] successor = x // better successor found successor.notify(n) // adapt predecessor of successor } n.notify(n’) { //n’ thinks it is the predecessor of n if (predecessor==null) OR (n’ in (predecessor,n[) predecessor = n’ // better predecessor found } Steady-State : no changes ! P.stabilize() - adapts successor @P (s P ) - adapts predecessor @Q (p Q ) If successor and predecessor @P and Q correct, i.e. s P = Q, p Q = P x=successor.predecessor=(s P ).predecessor=p (sP) =p Q =P -> x in (P,Q] ? -> FALSE -> Q.notify(P) P in (p Q ,Q[ ? -> P in (P,Q[ ? -> FALSE NO UPDATES P( s P ,p P ) Q(s Q , p Q )
  • 43. Node dynamics : Join 3. Distributed Hash Tables 4. Chord X.join(Q) -> p X =null -> s X = Q.findSuccessor(X)=Q P( s P =Q ,p P =?) Q(s Q =?, p Q =P ) X(s X =null,p X =null) X joins, P<X<Q Ring stable P( s P =Q ,p P =?) Q(s Q =?, p Q =P ) X(s X =Q,p X =null)
  • 44. Node dynamics : Join 3. Distributed Hash Tables 4. Chord X.stabilize() -> x=successor.predecessor=(s X ).predecessor=p (sX) =p Q =P -> P in (X,Q] -> FALSE -> Q.notify(X) Q.notify(X) -> X in (p Q ,Q[ = (P,Q[ -> TRUE -> p Q =X P( s P =Q ,p P =?) Q(s Q =?, p Q =P ) X( s X =Q ,p X =null) P( s P =Q ,p P =?) Q(s Q =?, p Q =X ) X( s X =Q ,p X =null)
  • 45. Node dynamics : Join 3. Distributed Hash Tables 4. Chord P.stabilize() -> x=successor.predecessor=(s P ).predecessor=p (sP) =p Q =X -> X in (P,Q] -> TRUE -> s P =X -> X.notify(P) X.notify(P) -> p X == null -> p X =P P( s P =Q ,p P =?) Q(s Q =?, p Q =X ) X( s X =Q ,p X =null) P( s P =X ,p P =?) Q(s Q =?, p Q =X ) X( s X =Q , p X =P )
  • 46. Node dynamics : Join example 3. Distributed Hash Tables 4. Chord N200 {K125,K135, K175} N150 JOINS N100 {K85,K93,K99} N200 {K125,K135, K175} N100 {K85,K93,K99} N150 {} N150 COPIES KEYS FROM N200
  • 47. Node dynamics : Join example 3. Distributed Hash Tables 4. Chord N200 {K125,K135, K175} N100 {K85,K93,K99} N150 {K125,K135} N100, N150 and N200 stabilize N200 {K175} N100 {K85,K93,K99} N150 {K125,K135}
  • 48. Node dynamics : Stability 3. Distributed Hash Tables 4. Chord n.fixFingers() { next++ // f[next] will be fixed if (next>m) next = 1 finger[next]=findSuccessor(n+2 next-1 ) } n.checkPredecessors() { // allows active predecessor to enter if (predecessor failed) predecessor = null }
  • 49. Node dynamics : Failures 3. Distributed Hash Tables 4. Chord As long as each node knows successor -> correct operation of lookup Consider finger table @P P+1 Na P+2 Nb P+4 Nc P+8 Nd P+16 Ne P+32 Nf Suppose - lookup(id) is launched @P, Nd<id<Ne - nodes Na, Nb, Nc, Nd and Ne fail simultaneously -> successor(id)=Nf (instead of Ne) -> ERROR Robustness ? - each node has list of r first successors - to corrupt ring -> r nodes have to fail simultaneously - changes needed to stabilization and lookup code
  • 50. Node dynamics : Failures (pseudo code) 3. Distributed Hash Tables 4. Chord n.findSuccessor(id) { if id in (n,successor] return successor else { try { n’=closestPreceedingNode(id) return n’.findSuccessor(id) } catch(TimeoutException e) { invalidate n’ from finger and successor table return n.findSuccessor(id) } } } n.closestPreceedingNode(id) { for i=m downto 1 if finger[i] in (n,id] return finger[i] for i=r downto 1 if successor[i] in (n,id] return successor[i] return n }
  • 51. Multi-dimensional routing 3. Distributed Hash Tables 5. CAN CAN : Content addressable network Basic idea use d-dimensional space to map keys node is responsible for d-dimensional hypercube - Cartesian coordinates used - space is d-torus Example 2D (1,0) (0,0) (0,1) (1,1) [0.0->0.5,0.5->1.0] [0.0->0.5,0.0->0.5] [0.5->1.0,0.5->1.0] [0.5->0.75, 0.25->0.5] [0.5->0.75, 0.0->0.25] [0.75->1.0, 0.0->0.5]
  • 52. Multi-dimensional routing 3. Distributed Hash Tables 5. CAN Mapping content to node - Key-Value pair <K,V> mapped to point P in Cartesian space P=hash(K) - P belongs to region owned by node N - N stores <K,V> Retrieving entry for key K - compute P=hash(K) - if P not owned by requester or neighbours -> route request in the CAN network Self-organizing routing node learns and stores set of neighbours neighbour : shares hyperplane of dimension (d-1) -> in (d-1) dimension, intervals overlap info stored per neighbour n IP(n), zone(n) A B E D C F IP(A), zone(A) IP(B), zone(B) …
  • 53.
  • 54. Multi-dimensional routing 3. Distributed Hash Tables 5. CAN Routing in d dimensions Follow straight line from source to destination (1,0) (0,0) (0,1) (1,1) lookup(0.8,0.9) (0.8,0.9)
  • 55. Multi-dimensional routing 3. Distributed Hash Tables 5. CAN Routing in d dimensions Forward to closest neighbour (greedy forwarding) -> each node keeps track of at least d neighbours -> space complexity O(d) -> lookup cost O(dN 1/d ) (N number of nodes) (1,0) (0,0) (0,1) (1,1) lookup(0.8,0.9) (0.8,0.9)
  • 56. Node dynamics : Joining the CAN 3. Distributed Hash Tables 5. CAN 1. Find an active node in the CAN (Bootstrapping) - CAN has DNS name - DNS resolves to IP address of bootstrapping node - each bootstrap node has list of probably active nodes - nodes that joined before - nodes can notify before they leave - nodes supposed to reply to ping-messages from bootstrap - bootstrap node replies to “join” by random selection from the active node list - essential to minimize activity of the bootstrap node 2. Find a zone to care for 3. Publish new node to neighours
  • 57.
  • 58. Node dynamics : Joining the CAN 3. Distributed Hash Tables 5. CAN Joining : example A B C D E F G H neighbour(B) = {A,C,D,F,G} A B C D E F G H neighbour’(B) = {A,C,G, X } neighbour’(X) = {A,D,F, B } X
  • 59.
  • 60. Node dynamics : Leaving the CAN 3. Distributed Hash Tables 5. CAN Normal exit - X che cks if zone(X) can be merged with zone(n) - if so, zone(X) is handed to n - if not, a neighbour zone will take care of multiple zones - which neighbour ? minimize maximum zone size of neighbours Unexpected departure (failure) -> Immediate take-over Failure detected through absence of update messages When node N detects X has departed (probably multiple N’s !) - start take over timer timeout = C zoneSize(N) when time-out { N sends TAKEOVER(zoneSize(N)) to neighbour(X) update zone(N) info } - on receipt of TAKEOVER(zoneSize(Y)) at node N if(zoneSize(Y)<zoneSize(N)) { cancel timer @ N update neighbour info } else send TAKEOVER(zoneSize(N)) to neighbour(X)
  • 61. Node dynamics: Leaving the CAN 3. Distributed Hash Tables 5. CAN Unexpected departure (failure) Immediate take-over algorithm OK to handle single node failures If less than 50% of neighbour(X) nodes reachable -> locate active neighbours through expanding ring search prior to take-over Expanded ring search @ node N TTL = 1 do { broadcast request for info to neighbours(N) TTL++ } while neighbourInfo incomplete Avoid too much fragmentation background zone-reassignment process
  • 62.
  • 63.
  • 64.