Skip to main content
GameDev.net gamedev.net
🔒 Locked

increase bandwidth - multiple ips

Started by skillfreak Jan 19, 2004 at 10:31 PM 10 replies 2.7k views
Original Post
skillfreak
skillfreak
Kind of an interesting question: Say I want to upload a file to someone over the internet. over ftp for sake of discussion. Generally you establish a tcp connection with that user with a single ip and send the data to them. Nothing special. Say I grab a handfull of ip address, all not in use, on my same local segment. I''ll call this group set A. If I were to send this file to some user, with the same packets, changing ONLY the source ip to an address in set A for each packet... would the dst computer still accept the file seamlessly? hah. eof. Please let me know if there is anything i can clarify. Any input is much appreciated. --- Andy
Evangelion
Evangelion
They already have similar programs for downloading called download acceleators. Basicly, the download acceleator program acts like its two or more different computers, and gets data 2x+ faster
antareus
antareus
That wouldn''t make any sense - TCP is connection-oriented. The connection is only from the source to the server. Packets from other IPs would be discarded. The protocol has to support this explicitly, and you''d either end up a) make a ton of connections (at which point you''d have to handle sequencing the portions of the file) or b) use UDP, which is inherently lossy and you''d have to write portions that TCP convers already (sequencing, retransmision).
--God has paid us the intolerable compliment of loving us, in the deepest, most tragic, most inexorable sense.- C.S. Lewis
skillfreak
skillfreak
if everything else is taken care of, sequencing being mainly ''everything else'', it still wouldn''t work? Seem kind of a question i couldn''t get directly answered. It wouldn''t entirely make sense, but i''m not entirely sure either.

and i don''t think download accelerators work in the same fashion that follows the context of my question - thanks for your input however.
jermz
jermz
Using 2 different machines will probably not increase your effective bandwidth. Its unlikely that your machines are maxing out their local interface but rather that the constraint is somewhere upstream on your network.

TCP has its own congestion control. It will start slowly and linearly increase bandwidth usage until it hits packetloss and backs off. If you have 2 machines sending to the same destination server, they will just be sharing the same pipe that 1 could be using twice as effectively.

There are some caveats: procotols such as HTTP/1.1 want to limit you to 2 simultaneous connections and some server/app setups may have their own throughput caps. Making multiple connections from different machines may help you here. You could also use 2 different NETWORKs like people used to do with separate phone lines and modems (shotgunning).
SiCrane
SiCrane
quote:
Original post by skillfreak
If I were to send this file to some user, with the same packets, changing ONLY the source ip to an address in set A for each packet... would the dst computer still accept the file seamlessly?



No, this won''t work. The destination computer will get confused and start dropping packets. This is the same kind of thing that can happen if you have a bad SNAT or DNAT rule for a router.
skillfreak
skillfreak
Let me attempt to be more direct with my question - though the core of it is probably along the lines of what i've already stated.

Once upon a time there was a class C range of ips. say: 1-254 ( disregard the previous 3 octets for now, just know they are all the same ).

All of these possible hosts, some not assigned or up, are all connected to the same networking device ( bandwidth isn't capped here ).

So if bandwidth is blocked on a per ip basis, rather than per port, I could grab the ips not in use and use them for increase 'packet shares'.

However;
A) Something like this should have already been done, because the idea isn't profound.
b) doesn't sound kosher sending random return ips on packets to a machine who thought.. 'he.. was.. uh.. who is this ?' kinda thing.
-----
Does anyone else have any possible solution to this? Somehow using the unused ip addresses to increase bandwidth? - and without writing client side software for the users i would possibly negotiate with ( the computers receiving packets from random hosts )?

- thank you for the input thus far. - andy

[edited by - skillfreak on January 20, 2004 3:50:07 PM]
jermz
jermz
I still don''t understand exactly what you are asking and I think you may not either.

Regardless of how many machines are behind your router, it still is only physically able to pass X packets per second. If you rewrite the source address in packets randomly, your receiving machine will drop them because they do not conform to what it is expecting.

If you are asking about increasing bandwidth of transfers by receiving from multiple machines, it has already been done. See peer-2-peer, distributed storage and programs like KaZaa, eDonkey and bitorrent. They do this by receiving the data from DIFFERENT network paths. Suppose you had 30 machines on one side of a router and 1 machine on the other. If you ran KaZaa on all of them, pulling a file down to the one machine wouldn''t be any faster and would likely be slower than ftp due to protocol overhead. This is because the machines all have the same network path to the receiver and compete for flow.
skillfreak
skillfreak
The bandwidth exists... i'm just wondering if there is anyway i can grab it via the use of multiple ips and assuming that connections are not capped on a perport basis. qed.

[edited by - skillfreak on January 20, 2004 4:34:53 PM]
skillfreak
skillfreak
ooo.. ic. that must be exactly y i asked the question.
Polydone
Polydone
It might work, since your simultaneous connections aren't just competing with each other, but also with other people's connections. I've noticed that downloading files simultaneously (On shared bandwidth networks) is quite a bit faster than downloading them in sequence.
(Simple example - 100 people, including yourself, are downloading using the same shared bandwidth, you get 1/100 of the total bandwidth available. Now if you instead have 2 downloads going, you'll be getting 2/101 of the bandwidth)

Edit: But as Kylotan said, I don't know if using different IP's would make a difference.
***
For Java games and Java related resources, go to http://www.javaengines.dk
***

[edited by - blackone on January 21, 2004 5:11:13 AM]

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.