Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to send data over global internet like torrents do?

I am developing a mobile app where I want to send data to other devices without servers over the global internet.

Suppose that there are 2 mobile devices with IP addresses X and Y that are on the global internet. They both know each other's addresses and want to communicate with each other without a remote server. They decided to use port A1 for that. If X will send data to Y on the port A1 will it be delivered without ISPs blocking it?

I am not that familiar with networking, only know some basics. In theory, it should deliver it without problems as long as IP's port is open and they are connected through some networks. The reason I am asking this is that I am interested in how do torrents send data to each other on the global internet without servers and static IPs, also I am not sure if there are any standard blocks that ISPs could put, for example, every ISP only allows ports from A1-A100. I know most of the rules might depend on ISP but for this example let's consider some typical normal ISP. Any explanation would be appreciated.

like image 337
Raguel Avatar asked Jul 23 '20 06:07

Raguel


People also ask

How do ISP know you are torrenting?

Your ISP will only know that you are torrenting when someone who has monitored your IP address engaged in torrenting and proceeds to tip the ISP off. That said, ISPs can usually guess when you are torrenting by analyzing the amount of bandwidth you are consuming.

How can I download torrents without internet provider?

A VPN, or Virtual Private Network, encrypts your internet connection and routes it through an intermediary server. This protects you while torrenting in two important ways: The encryption prevents your internet service provider and any other third parties on your network from seeing what you're downloading.

Can BitTorrent be tracked?

torrent"- file or magnet link only contains the information you need to download the target files of the torrent but nothing of the content. tl;dr: You are most likely be tracked if you are downloading/uploading the contents of the ". torrent" file or magnet link but not downloading the ".

Is BitTorrent still popular?

In 2019, BitTorrent was a dominant file sharing protocol and generated a substantial amount of Internet traffic, with 2.46% of downstream, and 27.58% of upstream traffic. As of 2013, BitTorrent had 15–27 million concurrent users at any time.

How do I send torrents?

Click on "File" > "Create new torrents". Send a single file by clicking on "Add File" or send a folder by clicking on "Add Directory". Browse through your computer and select the appropriate file. Avoid deleting the file/folder or changing the location of it on your hard drive if you wish to share it.

How do I share torrents through my firewall?

Before you get started, click the Options menu, choose Setup Guide, and run the tests to make sure you can share torrents through your computer or router's firewall. [1] Click the File menu and select Create New Torrent…. A new window will expand. Select the file (s) you want to share.

How do I send large files over the Internet?

Here are several ways to send large files over the internet. One easy solution is to upload the file to a cloud storage service for the other person to then access and download from their device. Free tiers from Box (10GB), Dropbox (2GB), Google Drive (15GB), iCloud (5GB), and OneDrive (5GB) offer storage space that may solve your issue.

How to transfer large files for free?

WeTransfer A free file access and distribution system that handles files of up to 2 GB and can be upgraded for a fee to manage files up to 20 GB in size. 1. Upload your files to cloud storage Uploading files to cloud storage is a great way to transfer large files such as photos and video.


Video Answer


1 Answers

It's called Hole Punching, can be used for TCP or UDP. The concept is pretty simple actually:

  1. clients are giving their sockets information between intermediary server
  2. the server update the socket information (if there is a NAT or Proxy between client and server)
  3. server share the socket information to target client
  4. client connect on each through other socket information via peer-to-peer connection

Many of those are already in Github. Check it.

like image 188
Fahim Bagar Avatar answered Oct 21 '22 03:10

Fahim Bagar