BT

BitTorrent Tit-for-Tat Peer Choking Simulator

Protocol Swarm Throughput & Reciprocity Model
Modeled Down / Up 0 / 0 KB/s
Selected-Peer Down/Up Ratio 0.00
Client Piece Completion 0%
Current Round 0

Client Choking Config READY

Max upload bandwidth available to swarm
Top downloading peers allocated upload streams
Round period to rotate random peer unchoke

Swarm Network Topology

Our Client
Unchoked Stream
Optimistic Unchoke
Choked Link

Piece Rarest-First Bitfield Map

Allocated Upload Fraction
0.0%
0 / 1024 KB/s Allocated
Clipped Down/Up Display
100%
Selected-peer rate ratio × 100, capped at 100
Optimistic Peer Modeled Rate
0 KB/s
Peer ID: None

Modeled Rate History (KB/s)

Client Policy Schema & Topology State (JSON)

{}

Allocation does not create unavailable pieces

Why can the balanced preset stop below 100%?

Its peer bitfields contain no copy of piece 15. The client can acquire the other available pieces, but selecting a missing piece cannot create a provider. Completion is the client’s piece fraction, not a measure of the entire swarm.

This model grants at most one available missing piece per round; rate values do not determine its byte-transfer duration. Dynamic peer responses are randomized. The rate ratio and upload fraction are arithmetic on modeled values, not measured efficiency.

Try a worked example

There are 16 client flags. In the balanced fixture, piece 15 is absent from every peer. Even after the client obtains pieces 0–14, it holds only 15/16 = 93.75%, displayed as 94%. A higher authored download rate cannot supply the absent flag.

Compare with the real protocol

BEP 3 describes advertising available pieces and verifying their hashes before announcing completion. Actual transfers involve requests, piece data, choking and interest state. This page updates flags without file bytes, sockets or integrity checks; it cannot establish protocol conformance. BEP 3: BitTorrent Protocol Specification

Read rates and timing as authored rules

The selected-peer ratio divides modeled incoming rates by allocated outgoing rates. Its percentage display is capped at 100, so it hides larger ratios. Optimistic rotation uses round(interval parameter/3) simulation rounds, while Auto Run advances once per second; the parameter is not an exact protocol timer.

Inspect the state before comparing policies

Reset loads a fixture and executes its first round immediately. Pause and step to examine selections and bitfields. Export and Copy JSON include model scope and rules. A new random optimistic peer or modeled response can change the next trace, so one run cannot prove an optimal strategy.

Sources and further reading
Super generates helpful tools and automates fact-checking across the internet proactively. If you enjoyed this tool, build your own with Super and share it with a friend.