(Illustration by Gaich Muramatsu)
Thanks for the pointers about packet sizes. I went and read some of the source code. It seems that data is only piggybacked if the resulting packet isn't too big. I changed the definition of too big, and recompiled the server. Now listing a directory doesn't cause fragments, but does have more side-effect stuff where previously there was not. I haven't tried this in the situation where I was having trouble before, but I did look at things with tcpdump. So this patch is problematic; it makes things work better in the wireless world, but worse on a wired ethernet. IMHO things work fine on a wired ethernet anyway, and the client on a poor network connection is more important. Ideally, rpc2/sftp would somehow know if repeated transmissions failed to arrive, and then lower the value. But I suppose ideally this would all run over TCP, as people have hinted at. On another subject, I've tried to run coda across a (non-NAT) firewall. packets from codasrv-se to venus-se get dropped until there is a venus-se to codasrv-se outgoing packet (standard stateful udp request/response stuff). I was able to read files by cat'ing a file outside of coda into coda; this provokes a client->server side effect. I can do this now by: dd if=/dev/zero of=foobar bs=1 count=2700 So, it would be cool if the client could somehow, on getting an rpc2 reply from the server of 'data sent in side-effect' when no side-effect packets were received to do a to-server sideeffect NOP rpc. I suspect this would greatly ease firewall troubles. I'm not very rpc2-clueful, so I toss out the idea in case someone gets to this before me Index: coda-src/rpc2/sftp.h =================================================================== RCS file: /coda-src/coda/coda-src/rpc2/sftp.h,v retrieving revision 4.18 diff -u -r4.18 sftp.h --- sftp.h 1999/09/14 19:01:25 4.18 +++ sftp.h 1999/11/05 16:04:44 @@ -60,7 +60,7 @@ /* Changed from 2 on 27 Feb 1997 by bnoble */ /* (header+body) of largest sftp packet (2 IP fragments on Ether) */ -#define SFTP_MAXPACKETSIZE 2900 +#define SFTP_MAXPACKETSIZE 1400 /* 2900 */ #define SFTP_MAXBODYSIZE (SFTP_MAXPACKETSIZE - \ sizeof(struct RPC2_PacketHeader))Received on 1999-11-05 11:32:31