From 7a182731d3b749090e6ba53adcf01386bd84adff Mon Sep 17 00:00:00 2001 From: TudbuT Date: Sat, 20 Aug 2022 18:22:56 +0200 Subject: [PATCH] FAQ section added --- README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/README.md b/README.md index affd1f9..17812cc 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,8 @@ here as an indicator that no more data will be exchanged between the "previously - You can add a number to the end of both of your commands (after the filename) to boost transfer speeds (higher = faster), but a too large number might cause unreliability due to local network conditions or VPNs. The maximum possible is 65532 (65535 - 3). +- You can run a helper yourself, as the "helper" mode argument suggests. This helper should simply + be run on a server which is reachable from all over the web (a cheap VPS will definitely do). - Helpers don't **have to** be run on a public server, they work in LAN too, but that way, only computers in the same LAN will be able to use them. - You can allow streaming (for example when you want to transmit from /dev/stdin) by setting @@ -119,3 +121,29 @@ peer-to-peer. ## [Relevant XKCD](https://xkcd.com/949) ![Relevant XKCD Image](https://imgs.xkcd.com/comics/file_transfer.png) + +## FAQ + +#### What is a helper? + +As explained above, it is used to establish the connection between the two partners. + +#### Why is a helper needed? + +Your router uses a thing called **N**etwork **A**ddress **T**ranslation. It is required because +otherwise, there would be way too many IP addresses in use and the internet would cease to work +during busy times. This NAT is also a problem however, because it is a layer between your PC and the +open internet. When there is a new incoming connection, the NAT won't know which PC in your LAN to +forward the connection to, so the connection is simply rejected. Any Peer-to-Peer software therefore +needs a helper server (also called "STUN" server) which both peers will ask for the other's IP +address and port. Both peers can then send a bunch of outgoing connections to eachother. If +everything goes well, both peers have sent an outgoing with the right timing, causing both NATs to +*think* they are outgoing connections, when actually, they are a sort of combination of incoming and +outgoing ones. + +TL;DR: P2P networking is impossible without a helper server, because of Routers. Port-forwarding +would be required otherwise, which can be hard to set up. + +#### How to make a public/private helper? + +Read the 2nd bullet point in the Tips 'n Tricks section.