Simulating smaller MTU? ie sending small packets.
- From: Ed W <norealaddress@xxxxxxxxxxx>
- Date: Tue, 16 Aug 2005 22:44:55 GMT
Hi, for various reasons I'm writing a little stress test app which tries to simulate the effects of varying sized TCP packets on the overall transfer speed.
So I have written a little app which acts as a server, waits for a connection and then spews data in fixed sized chunks of your choice. I also turn off nagle, turn on autoflush, and as far as I can tell ask for the data to go out immediately
What I observe (using an ethernet dump) is that once the receiver is not keeping up with the speed the sender is spewing packets, the *sender* (which in this case is linux 2.6.12) is starting to coallesce the packets
So for example if I ask it to send 1000 byte packets I can see from the network trace that it starts to send lots of MTU sized packets instead (larger).
This is not what I was expecting at all, in fact I had no idea that there was some clever process in linux to coallesce small network packets? Am I tripping over some perl buffering instead? Any thoughts on where to look?
Note, that it's not a mis-measurement problem at the receiving side. A Network trace is showing me that the packets are coming out at MTU sized (in general, but with a smattering of packets the size I requested).
If I slow down the sending rate, or speedup the receiver then the packets go through at the correct size...
Grateful for any help trying to work around this
Ed W .
- Follow-Ups:
- Re: Simulating smaller MTU? ie sending small packets.
- From: Tassilo v. Parseval
- Re: Simulating smaller MTU? ie sending small packets.
- From: Jim Gibson
- Re: Simulating smaller MTU? ie sending small packets.
- Prev by Date: fork() slowness.
- Next by Date: How to use a value instead of a string in regular expression?
- Previous by thread: fork() slowness.
- Next by thread: Re: Simulating smaller MTU? ie sending small packets.
- Index(es):
Relevant Pages
|