Re: Simulating smaller MTU? ie sending small packets.



This is probably a moot venture. The smaller the packets are, the lower
the overall throughput is going to be. This is due to the fact that TCP
packet have to be acknowledged.

Be careful with your generalisation. The point of my experiment is to test an unreliable (and very slow) satellite network to determine whether faster speed would be achieved using smaller MTU due to less retranmissions. 1500 bytes represents up to 7 seconds of transmission time...


In order to do your measurements, you should probably adjust parameters
on the receiving side. If you want smaller packets, try to set the
window size (TCP_WINDOW_CLAMP, I think). TCP_MAX_SEG also needs to be
set there as the MSS is announced by the receiver during the
three-way-handshake when the connection is established.

I'm not sure I can see how window size affects things, but it's interesting to see that I can influence it on a per connection basis?


I'm trying to change TCP_MAX_SEG and the docs imply it can be changed once the connection is established, but at least using perl this doesn't appear to work.

If I change it on a listening socket then I observe that the subsequent tcp handshake uses the original max values, but that TCP then uses the smaller values for sending data (ie it does what I expect). It would just be useful to be able to change the MSS while the connection is operating

It might for example be useful to change the MSS if we observe more corrupted tcp packets arriving, or other similar algorithm.


Also, is it possible to observe how full the network buffers are? getsockopt(xxx)? Again, it might be useful to observe this value in the situation above and slow down sending when the buffers are filling up (for example with these huge latencies I might want to have more control over the amount of outstanding data)


Any thoughts?

Thanks

Ed W
.



Relevant Pages

  • Re: Speed test results
    ... How do you calculate the exact ratio? ... For any TCP based protocol you need to send one TCP packet with an ACK for every "n" full packets you receive, where "n" depends on your TCP window size and MSS. ...
    (uk.telecom.broadband)
  • Re: oracle threads increasing, even after closing sessions
    ... intact and TCP connection state is still established. ... the software client ... DCD works at lower level, SQLNET, Server sends a TCP packet and waits ...
    (comp.databases.oracle.server)
  • Re: Simple question about access lists
    ... I'm using a very old router and I don't think it supports what ... "established" bit in the TCP packet pretty easily, ... application is not going to accept a new connection from a packet with ... BernieM wrote: ...
    (comp.dcom.sys.cisco)