[bittorrent] BitTorrernt and clients behind NAT & Firewall (newbie)
brian at dessent.net
Sun Apr 9 12:08:10 EDT 2006
Thomas Tuft Muller wrote:
> If a client is behind a firewall and no port forwarding is set up, no peers can connect it
This is not true.
> but as far as I understand my client is still seeding (upload speed > 0.0). How does this work?
In TCP peer can establish a connection either by initiating an outbound
connection or receiving an inbound connection. But once established,
the connection is fully bidirectional, so the distinction of "seeding vs
downloading" is irrelevant.
This means that peers that cannot receive inbound connections (due to
incorrectly configured NAT or firewall) can still fully participate, but
they can only connect by initiating outbound connections to connectable
peers. It does limit the number of peers available to them, and hence
can limit their performance, but in most cases with a sufficient pool of
peers they can still participate fully.
> Is it somehow proxied by the tracker, or by the peer(s) my client is connected to to download files?
No, all data is sent directly.
> Configuring port forwarding correctly is obviously important for sharing files,
Yes, this is true. It's simply a matter of education. Most bittorrent
users are aware at this point that they need to setup port forwarding
for best performance.
> I think I read somewhere that about 70% of BitTorrent users don't accept incoming traffic to 6881-6889 and are not contributing to the network.
The 70% figure seems very high, but it might be true. There are some
trackers with web-based stats enables that show every peer in the swarm
and whether they are connectable, and in my experience at least
two-thirds to three-quarters of the peers are fully connectable.
> The tracker could check the port of any client and report back to the client when it makes reqeusts to the tracker that it can't reach it on the port it announces sharing on. This message could be translated into a serious "warning" to the user. Is this a bad idea?
Most trackers already have the NAT check built in, and this has been
present since the beginning in the stock/mainline tracker. Trackers
with web stats interfaces and user accounts will typically tell the user
whether they are connectable or not in their profile and when listing
More information about the BitTorrent