I always had a doubt why cant i simultaneously run my wifi and my data from my phone to increase my speed if not doing the same tasks i can maybe download an app while simultaneously uploading something on dropbox with another network Is it possible there is only one path in all devices which acts as an interface in data transfer? If thats the case why isnt research and innovation being done to achieve this so that we can simulataneously run tasks and increase speed. I had no idea on which stackexchange site to ask this so if an admin wants to shut this down please also tell me where to post this query


Say there are 2 ISPs (Internet Service Providers) viz XYZ and ABC.
When your gadget connects to XYZ, it establishes connection to the ISP via modem, ISP then assigns an IP address to your gadget, and data packets are sent to & fro to XYZ's servers.
But this is not that simple as mentioned above in 2 sentences. There are a whole lot of procedures running under the hood.
If you wish to switch connection to ABC, then connection to XYZ has to be disconnected, connection to ABC has to be established and the above mentioned procedure is carried out pragmatically by OS.
Further, there are different modems for different connections.
In case you wish to use same modem for another connections, you need to alter the settings inside it.
The whole set of parameters are different for different connections.
So, obviously the 2 connections can't be clubbed.
To give a crude example, if there are 2 trains running parallel, we can't take advantage of combining their speeds and making it double and reaching our destination in half time. We can board only 1 train at one time; of course, both trains need to be stopped for switching between; else jump like a typical hollywood movie ;-)

  • 2
    ... To expand the train analogy a bit: But if we have two parallel trains leaving town towards the same destination, over two distinct train operator's networks, and we have to move 2'000 people out of town (each representing one "session" or "connection", oversimplifying a bit), then there's a good chance to get them out in half the time, if we assign roughly half of them to each train. That's pretty much what "Dual WAN" firewalls are doing. The speed-up does not come for an individual traveller - but overall, things aremoving quicker. – Marc 'netztier' Luethi Sep 9 '19 at 9:47
  • @Marc'netztier'Luethi consider adding this as an answer (with some added details as to its configuration). – Vineet Sep 9 '19 at 10:05
  • Yes thats what i was talking about by speed we jjst want more packets to transfer in the same second so why isnt this happening everywhere whats the problem? – Saransh Agrawal Sep 11 '19 at 3:00
  • @SaranshAgrawal , you need to get hardware for "Dual WAN" as clarified by the answer of Marc – Vineet Sep 11 '19 at 4:31

I believe the problem can actually be split in two.

a) two (many) parallel tasks over different channels (as in your question)

Forcing incoming data to take different paths (channels, interfaces, etc.) is not a hard problem I think. You just need to make requests from different interfaces. To site A with LTE and to site B with Wi-Fi, for example. That will results in sites seeing different source addresses and reply using different paths. But AFAIK there is no mechanism to load balance source address choice in Linux (on which most popular mobile OS is based). Source address choice controlled by /etc/gai.conf, which conform to RFC6724. But, there are some proprietary mechanism which can do some tricks to use both channels for some downloads, see this. Same applies to outgoing traffic of course.

There probably can be some weird situations when one path failed and you got half working network access, and it will be not apparent whats broke. And your device probably need to remember what addresses was used to connect to site A, to not stuck with captchas, firewalls, etc.

b) one task over different channels

That's kinda solved problem. Solved because there are a solution - MP-TCP, kinda beacuse it's not in mainline kernel. You need to build custom kernel and put it in both server and client by yourself. But developers working to put it in vanilla Linux. In MP-TCP hosts exchange available addresses and can multiplex different sessions into one. If you want to learn more about it, this podcast is awesome.

  • No offense i tried hard but after a while this computer language stops making sense i guess i should read more before i will begin to understand better – Saransh Agrawal Sep 11 '19 at 3:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.