210 likes | 338 Views
Algorithm. 0. Preliminaries. An AS a ’s neighbors: N a = [b,c,d, …, n] b i : i ’s base reputation downloaded from the server f i : feedback from a neighbor i α: weight value for observed evaluation (0≤α ≤ 1) β: weight value for neighbors’ feedbacks (0 ≤ β ≤ 1)
E N D
0. Preliminaries • An AS a’s neighbors: Na = [b,c,d, …, n] • bi : i’s base reputation downloaded from the server • fi: feedback from a neighbor i • α: weight value for observed evaluation (0≤α≤1) • β: weight value for neighbors’ feedbacks (0≤β≤1) • h: history of providing feedbacks each AS has towards its neighbors in++ when a neighbor has provided a feedback out++ when an AS has provided a feedback to a neighbor h=in-out probability of providing a feedback to a neighbor (if 0, random decision)
1. Base reputation 1. Each AS downloads a base reputation from the server.(http://rtg.cis.upenn.edu/qtm/ascred/report.php) b a Ra=50 Rc=70 Re=90 c Rb=100 Rb=100 Re=90 e d Rb=100 Rc=70 Rd=90 Rf=30 Re=90 f Re=90
2. Observation 2. Observe each neighbor’s behavior for a time period and evaluate the services provided (evaluations will be discussed later). b a 1.3.0.0/16, [v, x, y, z] 1.2.0.0/16, [a] c 1.2.0.0/16 1.2.0.0/16, [a, b] 1.3.0.0/16, [v, x, y, z, c] e d f
3. Take a vote 3.At the time of evaluation, each AS takes a vote to its neighbors except the target agent. Neighbors can repeat the vote to their neighbors. b c d f b a Ra=50 Rc=70 Re=90 c Rb=100 Rb=100 Re=90 e d Rb=101 Rc=65 Rd=95 Rf=10 Re=90 f Re=90
3. Continued E.g. e asks about f to its neighbors (b, c, d). b is not sure about f and takes another vote to its neighbors (a, c). g b a c ask(f) ask(f) e ask(f) d f
3. Continued • Neighbors may decide not to cast a vote. • Neighbors are responsible for collecting feedbacks of the vote they took and propagate the result to the asker. • If the feedback is not in time, the node who asked for feedback might not include the feedback from the neighbor and the neighbor won’t get a credit. g ask(f) ask(f) b ask(f) a feedback feedback c feedback ask(f) ask(f) feedback e ask(f) d f
4. update Rf = αbE + (1-αb)V V = Σβifi/|N| oute++ ina++ Rf = αcE + (1-αc)V V = Σβkfk/|N| oute++ ing++ outc++ g outb++ ask(f) ask(f) b ask(f) a feedback feedback c feedback ask(f) ask(f) feedback |N|: number of neighbors who provided feedbacks β = <βi,βj, …., βn> βi+βj+…+βn =1 e ask(f) d Rf = αeE + (1-αe)V V = Σβifi/|N| inb++ inc++ f
5. broadcast • An AS can broadcast when it found a particularly bad behavior of its neighbor. • Weather to take the reporting AS’s opinion or not is up to its neighbors. • If some neighbors decide the reporting is worth to spread, they can broadcast by themselves.
bucket brigade effect by history • Reputation cannot be propagated <- the network is not built on reputations • Nodes cannot explicitly exchange reputations <- distributed algorithm • History distributions could be used to track the characteristics of each ASes • History also indirectly triggers feedbacks b c a ask(b) ask(a) ask(b) d e ask(a)
A New edge Download the base reputation Observe the behavior and Evaluate Take a vote and get feedbacks Update the reputation g Rc=70 b a Ra=50 Rc=70 Re=90 c Rb=100 Rb=100 Re=90 Rg=33 e d Rb=100 Rc=70 Rd=90 Rf=30 Re=90 f Re=90
Resource • AS-CRED: http://rtg.cis.upenn.edu/qtm/ascred/main.php • Prefix AS mapping: http://www.caida.org/data/routing/routeviews-prefix2as.xml
evaluation of service For each service s = {prefix, AS_PATH},where AS_PATH = [AS1, AS2, … , ASN] • Check if the originator of the prefix owns it.-if it doesn’t punish all the neighbors in the path-may broadcast the originator • Prevalence and persistence • Valley free: infer relationship -> check validity • infected IPs
DATa • Prefix to AS mapping dataset • Internet Traces 2012 • BGP update data
feedback • [-1, 0, 1]
P2P simulator • Trace Generator • Trace Simulator (trace file, trust algorithm, strategy)
Base Reputation • http://rtg.cis.upenn.edu/qtm/ascred/main.php
beta distribution • [β1,β2,β3, …,βn] • βk= Rk/(R1+…+Rn) • Only distributed to the neighbors with R > 0. • if h=0, i.e. in == out, the probability of providing a feedback is 50%. • -1 < R < 1
summary • Download the base reputation and convert. • Observe the services for a given time period. • Broadcast when needed. • Evaluate the services and take votes. • With feedbacks and the evaluation, update reputations of neighbors. • Adjust beta and alpha values as needed.
Case 1 A node, in this case ‘c’, gets more influence. Assuming each node uses same alpha values, and assuming the node ‘a’ uses same beta values for all the neighbors, ‘c’ gets α(1-α)2 discounts when ‘b’, ‘d’, ‘e’, ‘f’ get α(1-α)/4 discount. In general, Lth neighbor contributes α(1-α)L b d c a e f
case 2 The vote comes around to the node who started it. -> When taking a vote, a node should include the ‘originator’ and ‘target’. -> Or an originator of the vote generates an ID for each vote and when it comes around to itself, it knows itself generated the vote. b c a f d e