lidgren / lidgren-network-gen3

Lidgren Network Library
https://groups.google.com/forum/#!forum/lidgren-network-gen3
MIT License
1.19k stars 331 forks source link

Slow connection file Transfer does not arrive unless NetPeerConfiguration.AutoExpandMTU = true; #71

Open SonicTTH opened 8 years ago

SonicTTH commented 8 years ago

Hello,

I'm using Lidgren the primary networking component in one of my projects. Im trying file transfer with the libary and noticed that "larger" packages do not arrive at the other end when being transfered over a slow connection, unless the Setting AutoExpandMTU is enabled.

Ive tried it a dozen times with both the setting disabled and enabled and always only received the package from Lidgren at the other end when the setting is enabled.

The specific data where talking about is a 512 KB textfile and a maximum 100 kb/s upload rate. I also noticed that this data is send twice by the netserver, meaning that I am monitoring a transmition of about an entire megabyte instead of just approx. 512 kb which I would expect.

Did anyone ever had transmission problems with large data?

Greetings,

SonicTTH

SonicTTH commented 8 years ago

Actually I noticed that similar stuff happens when Im sending data from the remote client with even lower upload rate (around 55 kb/s) and trying to do this twice. I'm repeadedly sending packets from there (always with a pause inbetween, waiting for the arival of the previous packet) with sizes of around 40 kb. The first time I do this, it works. When I do it afterwards, none of the send packages from the client arrive at the server. Im though measuring the full bandwidth of the client being used by lidgren network produced traffic. So its sending a large amount of something which never arrives at the server!

How comes this?

I really am monitoring everything and logging every incoming and outgoing message at the server and the client. The client responds to stuff the server wants from it and sends it to the server but it just wont arrive.

AgentFire commented 8 years ago

Can we have a sample project? Sound like a major problem.

SonicTTH commented 8 years ago

Okay I will make one and try to reproduce the issue with that. I will post it this evening.

SonicTTH commented 8 years ago

Okay so here is the test project I made: http://venion.net/files/LNI/example_traffic_Issue_shared.zip

I also recorded a video to show how the application works and how to reproduce the behavior. It's here: http://venion.net/files/LNI/explanation.avi

The code itself is very simple to look through. I made the base project where it derived from in german so mabye theres german words there somewhere, but I hope its not too much. All the new stuff I made is in english.

When trying it out yourself you only need to set the correct target IP in the constructor of the ClientInstance class.


The way I see it is lidgren is sending so much data that I dont know at all what actually happens there, especially if its a slow connection there even seems to come out very much.

The current lidgren project is attached so it can be debugged directly.

I hope this can be resolved :)

SonicTTH commented 8 years ago

Hi again!

AngelFire, I just noticed, youve got a really nice avatar!

Did you look into it yet?

Greetings,

SonicTTH

AgentFire commented 8 years ago

I'm going to do it right away, sorry for the delay. @SonicTTH 404 Page not found it says

SonicTTH commented 8 years ago

Sorry,

I corrected the links, theyre working now.

AgentFire commented 8 years ago

@lidgren you may want to look into this.