A short presentation about Distributed Hash Tables (DHT) p2p systems and how they cope with Network Address Translators (NAT).
The presentation aims at giving a bird-perspective of the subject, without entering too much into the details.
This is brief presentation on BitTorrent technology.
(caution: avoid using site mentioned in the ppt for downloading torrent file.. b t jun kie ....it may not be safe..)
(Thanks to Soumya and my other colleagues for the help.)
A short presentation about Distributed Hash Tables (DHT) p2p systems and how they cope with Network Address Translators (NAT).
The presentation aims at giving a bird-perspective of the subject, without entering too much into the details.
This is brief presentation on BitTorrent technology.
(caution: avoid using site mentioned in the ppt for downloading torrent file.. b t jun kie ....it may not be safe..)
(Thanks to Soumya and my other colleagues for the help.)
P2P in 2020 - The Push for Supplier Self-ServiceTradeshift
We are pleased to bring you the first installment of the P2P in 2020 series with Paystream Advisors. This presentation will discuss how organization can and should be positioning themselves for the future especially when it comes to connecting and collaborating with suppliers. The last decade has brought forward a few indisputable mega-trends (cloud, mobile, social, big data, etc) that will have a profound impact on the way businesses transact, connect and collaborate.
BitTorrent is a peer-to-peer file sharing protocol used to distribute large amounts of data. A user can obtain multiple files simultaneously without any considerable loss of the transfer rate .
Peer-to-peer networks are right solution for distributing mostly static content to multiple clients while exploiting bandwidth of all clients to share file chunks and available bandwidth.
Torrent is currently most used P2P network protocol, but in this day and age it suffers from lack of official specification and has stigma attached to it. However, if you want to distribute software updates or create multiple disaster recovery sites it makes sense to create private torrent network which will to it's job.
In this presentation I will try to explain what it takes to create your own peer-to-peer cloud based on torrent protocol.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
P2P in 2020 - The Push for Supplier Self-ServiceTradeshift
We are pleased to bring you the first installment of the P2P in 2020 series with Paystream Advisors. This presentation will discuss how organization can and should be positioning themselves for the future especially when it comes to connecting and collaborating with suppliers. The last decade has brought forward a few indisputable mega-trends (cloud, mobile, social, big data, etc) that will have a profound impact on the way businesses transact, connect and collaborate.
BitTorrent is a peer-to-peer file sharing protocol used to distribute large amounts of data. A user can obtain multiple files simultaneously without any considerable loss of the transfer rate .
Peer-to-peer networks are right solution for distributing mostly static content to multiple clients while exploiting bandwidth of all clients to share file chunks and available bandwidth.
Torrent is currently most used P2P network protocol, but in this day and age it suffers from lack of official specification and has stigma attached to it. However, if you want to distribute software updates or create multiple disaster recovery sites it makes sense to create private torrent network which will to it's job.
In this presentation I will try to explain what it takes to create your own peer-to-peer cloud based on torrent protocol.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
2. INTRODUCTION
DHT = DISTRIBUTED HASH TABLE
(It’s like a hash table, where the payload is divided up across many nodes.)
BitTorrent, Inc / 2013 Tech Talks 02
3. INTRODUCTION
The DHT is primarily used to introduce peers to each other.
Who e
lse is
PEER on sw
arm X
?
172.4
119.7 .12.7
217.1 3.53.
3.98.
...
83
220 DHT
BitTorrent, Inc / 2013 Tech Talks 03
4. INTRODUCTION
protocol <what do nodes say to each other?>
topology <how are nodes organized?>
routing <how are target nodes found?>
routing table <representation of routing info>
traversal algorithm <search implementation?>
BitTorrent, Inc / 2013 Tech Talks 04
6. PROTOCOL
ping <are you still around?>
announce_peer <hey, i’m on this swarm!>
get_peers <who else is on this swarm?, or who can I ask?>
find_node <who is close to this ID?, or who can I ask?>
PEER
DHT
BitTorrent, Inc / 2013 Tech Talks 06
7. PROTOCOL
ping <are you still around?>
ONE-OFF MESSAGES
announce_peer <hey, i’m on this swarm!>
get_peers <who else is on this swarm?, or who can I ask?>
find_node <who is close to this ID?, or who can I ask?>
PEER
DHT
BitTorrent, Inc / 2013 Tech Talks 07
8. PROTOCOL
ping <are you still around?>
ONE-OFF MESSAGES
announce_peer <hey, i’m on this swarm!>
get_peers <who else is on this swarm?, or who can I ask?>
RECURSIVE
find_node <who is close to this ID?, or who can I ask?>
PEER
DHT
BitTorrent, Inc / 2013 Tech Talks 08
9. PROTOCOL
ping <are you still around?>
announce_peer <hey, i’m on this swarm!>
get_peers <who else is on this swarm?, or who can I ask?>
find_node <who is close to this ID?, or who can I ask?>
get_peers (x)
PEER nodes: <...>
DHT
BitTorrent, Inc / 2013 Tech Talks 09
10. PROTOCOL
ping <are you still around?>
announce_peer <hey, i’m on this swarm!>
get_peers <who else is on this swarm?, or who can I ask?>
find_node <who is close to this ID?, or who can I ask?>
get_ peers (x)
nod es: <...>
get_peers (x)
PEER nodes: <...>
get_pee
rs (x)
DHT
nodes:
REPEATS <...>
BitTorrent, Inc / 2013 Tech Talks 10
11. PROTOCOL
ping <are you still around?>
announce_peer <hey, i’m on this swarm!>
get_peers <who else is on this swarm?, or who can I ask?>
find_node <who is close to this ID?, or who can I ask?>
get_peers (x)
PEER nodes: <...>
get_pee
rs (x)
DHT
nodes:
TERMINATES WHEN WE <...>
RECEIVE VALUES (I.E. PEERS)
AND NO BETTER NODES
BitTorrent, Inc / 2013 Tech Talks 11
12. PROTOCOL
ping <are you still around?>
announce_peer <hey, i’m on this swarm!>
get_peers <who else is on this swarm?, or who can I ask?>
find_node <who are close to this ID?, or who can I ask?>
EACH MESSAGE INCLUDES ONES OWN NODE ID.
THIS ENABLES NODES TO LEARN ABOUT NEW
NODES AS PART OF THE PROTOCOL CHATTER.
BitTorrent, Inc / 2013 Tech Talks 12
14. PROTOCOL
Spoof protection
get_peers responds with a write-token
Write-token is typically a MAC of:
- source (IP, port)
- target info-hash
- local secret (which may expire in tens of minutes)
announce_peer requires a valid write token to insert the node in the peer list
BitTorrent, Inc / 2013 Tech Talks 14
15. TOPOLOGY
This section describes how nodes can
respond to recursive lookup queries like this,
with nodes closer and closer to the target.*
*Spoiler alert: it has to do with the topology
BitTorrent, Inc / 2013 Tech Talks 15
16. TOPOLOGY
The DHT is made up by all BitTorrent peers, across all swarms.
PEER PEER
PEER PEER PEER
PEER PEER PEER PEER
PEER PEER PEER PEER
PEER PEER PEER
PEER
BitTorrent, Inc / 2013 Tech Talks 16
18. TOPOLOGY
Consider all nodes lined up in the node ID space....
0 2 160
BitTorrent, Inc / 2013 Tech Talks 18
19. TOPOLOGY
Consider all nodes lined up in the node ID space....
0 node-ID space 2 160
....all nodes appear evenly distributed in this space.
BitTorrent, Inc / 2013 Tech Talks 19
20. TOPOLOGY
IDs are 160 bits (20 bytes) long...
Keys in the hash table (info-hashes) are also 160 bits.
0 node-ID space 2 160
BitTorrent, Inc / 2013 Tech Talks 20
21. TOPOLOGY
IDs are 160 bits (20 bytes) long...
Keys in the hash table (info-hashes) are also 160 bits
info-hash
0 node-ID space 2 160
Nodes whose ID is close to an info-hash are responsible for
storing information about it.
BitTorrent, Inc / 2013 Tech Talks 21
22. TOPOLOGY
IDs are 160 bits (20 bytes) long...
Keys in the hash table (info-hashes) are also 160 bits
info-hash
0 node-ID space 2 160
Nodes whose ID is close to an info-hash are responsible for
storing information about it.
BitTorrent, Inc / 2013 Tech Talks 22
24. ROUTING
It is impractical for every node to know about every other node.
There are millions of nodes.
Nodes come and go constantly.
Every node specializes in knowing about all nodes close to itself.
The farther from itself, the more sparse its knowledge of nodes become.
BitTorrent, Inc / 2013 Tech Talks 24
25. ROUTING
The routing table orders nodes based on their distance from oneself.
distance distance
0 node-ID space self 2 160
BitTorrent, Inc / 2013 Tech Talks 25
26. ROUTING
The routing table orders nodes based on their distance from oneself.
distance distance
0 node-ID space self
2 160
self distance from self
This is simplified. The euclidian distance is not actually used.
BitTorrent, Inc / 2013 Tech Talks 26
27. ROUTING
The euclidian distance has a problem that it “folds” the space,
and nodes are no longer uniformly distributed (in the distance-space).
distance distance
0 node-ID space
2 160
self
BitTorrent, Inc / 2013 Tech Talks 27
28. ROUTING
The XOR distance metric is: d(a,b) = a ⊕ b
0 self distance from self
2 160
The XOR distance metric makes it so that the
distances are still uniformly distributed. It doesn't
“fold” the space the way euclidian distance does.
BitTorrent, Inc / 2013 Tech Talks 28
29. ROUTING
The distance space is divided up into buckets. Each bucket holds no more than 8 nodes.
0 self distance from self
2 160
BitTorrent, Inc / 2013 Tech Talks 29
30. ROUTING
The distance space is divided up into buckets. Each bucket holds no more than 8 nodes.
The space covered by a bucket is half as big as the previous one.
You know about more nodes close to you.
0 self 2 160
distance from self
... bucket 2 bucket 1 bucket 0
BitTorrent, Inc / 2013 Tech Talks 3-
31. ROUTING
For every hop in a recursive lookup, the nodes distance is cut in half.
Lookup complexity:
O(log n)
0 2 160
node ID space
target
This illustration is also simplified, the XOR Distance metric will
make you jump back and forth a bit.
Cutting your distance in half every hop still holds.
BitTorrent, Inc / 2013 Tech Talks 31
33. ROUTING TABLE
The XOR distance metric applied to the routing table just counts the length of the common bit-prefix.
OUR NODE ID: 10101110100010101001110...
OTHER NODE ID: 10101011010010110100101...
BitTorrent, Inc / 2013 Tech Talks 33
34. ROUTING TABLE
The XOR distance metric applied to the routing table just counts the length of the common bit-prefix.
OUR NODE ID: 10101110100010101001110...
OTHER NODE ID: 10101011010010110100101...
shared bit prefix: 5 bits
node belongs in bucket 5
BitTorrent, Inc / 2013 Tech Talks 34
35. ROUTING TABLE
A 160 bit space can be cut in half 160 times. There is a max of 160 buckets.
... prefix = 00 prefix = 0 no prefix
0 2 160
... bucket 2 bucket 1 bucket 0
BitTorrent, Inc / 2013 Tech Talks 35
36. ROUTING TABLE
View of the routing table in node ID space (instead of distance space).
bucket 0 3 4 bucket 2 bucket 1
0 self
2 160
bit 0
bit 1
bit 2
bit 3
BitTorrent, Inc / 2013 Tech Talks 36
37. ROUTING TABLE
A naïve routing table implementation would be an array of 160 buckets....
bucket 4
bucket 3
bucket 2
bucket 1
bucket 0
... bucket 5
BitTorrent, Inc / 2013 Tech Talks 37
38. ROUTING TABLE
A naïve routing table implementation would be an array of 160 buckets...
Not very efficient, since the majority of buckets will be empty.
bucket 4
bucket 3
bucket 2
bucket 1
bucket 0
... bucket 5
BitTorrent, Inc / 2013 Tech Talks 38
39. ROUTING TABLE
A typical routing table starts with only bucket 0.
When the 9th node is added, the bucket is split into bucket 0 and
bucket 1, with the nodes moved to their respective bucket.
Only the highest numbered bucket is ever split.
BitTorrent, Inc / 2013 Tech Talks 39
48. TRAVERSAL ALGORITHM
A deeper look at the get_peers and announce_peer query.
BitTorrent, Inc / 2013 Tech Talks 48
49. TRAVERSAL ALGORITHM
Pick known nodes out of routing table, close to the target we're looking up.
Sort by distance to target.
(IP, Node ID)
closer to target (IP, Node ID)
(IP, Node ID)
(IP, Node ID)
BitTorrent, Inc / 2013 Tech Talks 49
50. TRAVERSAL ALGORITHM
Send requests to 3 (or so) at a time.
s( ih)
pe er
g et_
(IP, Node ID) x
get_peers (ih)
closer to target (IP, Node ID) x
(IP, Node ID) x get
_pe
(IP, Node ID) ers
(ih)
BitTorrent, Inc / 2013 Tech Talks 50
51. TRAVERSAL ALGORITHM
Send requests to 3 (or so) at a time.
s( ....)
n ode
(IP, Node ID) x
nodes (....)
closer to target (IP, Node ID) x
(IP, Node ID) x
nod
es (
(IP, Node ID) ....)
BitTorrent, Inc / 2013 Tech Talks 51
52. TRAVERSAL ALGORITHM
Nodes are inserted in sorted order.
Nodes we already have are ignored. Nodes that don't respond, are marked as stale
(IP, Node ID)
closer to target (IP, Node ID)
(IP, Node ID)
(IP, Node ID)
(IP, Node ID) x
(IP, Node ID)
(IP, Node ID) x
(IP, Node ID) x
(IP, Node ID)
(IP, Node ID)
BitTorrent, Inc / 2013 Tech Talks 52
53. TRAVERSAL ALGORITHM
Keep requests 3 outstanding at all times.
s( ih)
pe er
g et_
(IP, Node ID) x
get_peers (ih)
closer to target (IP, Node ID) x
(IP, Node ID) x get
_pe
(IP, Node ID) ers
(ih)
(IP, Node ID) x
(IP, Node ID)
(IP, Node ID) x
(IP, Node ID) x
(IP, Node ID)
BitTorrent, Inc / 2013 Tech Talks 53
54. TRAVERSAL ALGORITHM
Terminating condition: the top 8 nodes have all been queried (and responded).
(IP, Node ID) x
closer to target (IP, Node ID) x
(IP, Node ID) x
(IP, Node ID) x
(IP, Node ID) x
(IP, Node ID) x
(IP, Node ID) x
(IP, Node ID) x
(IP, Node ID)
BitTorrent, Inc / 2013 Tech Talks 54
55. PROTOCOL
Send announce_peer to the top 8 nodes.
r( ih)
pee
n ce_ ih)
nn ou ee r(
(IP, Node ID) x
a
nc e_p ih)
nn ou ee r(
a e_p
closer to target (IP, Node ID) x u nc ih)
an no er (
_pe
(IP, Node ID) x ou nce r( ih)
ann e_ pee
(IP, Node ID) x ou nc r( ih)
a nn e_ pee
(IP, Node ID) x o unc ih)
a nn er (
_pe
(IP, Node ID) x ou nce r( ih)
ann e_ pee
(IP, Node ID) x no unc
an
(IP, Node ID) x
(IP, Node ID)
BitTorrent, Inc / 2013 Tech Talks 55