gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS development > faster downloads over tcp?

#175588 - 3dfx - Sat Jan 01, 2011 12:07 am

Is there anything I can edit in the dswifi src to enable some faster speeds?

#175589 - elhobbs - Sat Jan 01, 2011 7:22 am

Keep in mind the ds has a 2 mega bit connection. What are you getting for transfer rates?

#175590 - 3dfx - Sat Jan 01, 2011 9:00 pm

Sadly I'm getting 6 KB/sec 48 kbits/sec. This is over a school connection, work connection, and home connection. I heard some people getting faster speeds by tweaking the dswifi lib but I have no idea what to change.

#175591 - elhobbs - Sun Jan 02, 2011 3:29 am

dswifi does not deal well with congested networks as it only allows one packet in transmission at a time. there is/was an issue with duplicate packets getting generated during retransmission - not sure if that was fixed or not. 6 KB/s does seem a little low though. I want to say the norm is usually in the 40-60 KB/s range for a home network. It does depend a lot on what you are doing though. If you are creating something new than you will get better results using just UDP instead of TCP on the ds at the moment.

#175592 - PypeBros - Sun Jan 02, 2011 2:27 pm

I usually manage to receive 80K bytes / sec. over TCP, and that doesn't required a dswifi tweak. sending from the DS is a bit slower, and no dswifi tweak helped here.

Last speed issues I had with WiFi transfers came from a poor libFAT caching policy or missized recv buffers. I suggest you have a look at HappyHTTP library from Ben Campbell as a reference point.
_________________
SEDS: Sprite Edition on DS :: modplayer

#175595 - Ludo6431 - Sun Jan 02, 2011 8:54 pm

I don't know why but transfers trough internet are at about 6KB/s and transfers through a local network are at about 80/100KB/s.
_________________
Sorry for my poor english, I'm french.

#175613 - PypeBros - Tue Jan 04, 2011 3:57 pm

Ludo6431 wrote:
I don't know why but transfers trough internet are at about 6KB/s and transfers through a local network are at about 80/100KB/s.

(long-distance) Internet transfers have longer round-trip time before a retransmission can happen, and the DS has an insanely small reception window (1 ethernet packet). Add high loss ratio over the warioless link to the mix and any TCP performance estimators will tell you that you'll experience really painful transfers.

If that's your problem, the dswifi tweaking you might need to investigate the windowlen max size, but it look like it is stuck at the size of 1 ethernet packet to skip one (nasty) part of IP protocol (fragmentation), so I can't tell in advance to what extent you might be succesful.

Alternatively (e.g. for web browsing), you might want to go through a nearby HTTP proxy to improve your performance.
_________________
SEDS: Sprite Edition on DS :: modplayer

#175909 - tepples - Sat Feb 26, 2011 6:50 pm

PypeBros wrote:
Add high loss ratio over the warioless link

"warioless" being a pun on "wireless" and the fact that we don't have access to the (possibly more refined) warioworld libraries, right? Is it that the official libraries support fragmentation?
_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.