Date: Sun, 28 Nov 1999 04:04:50 +1100 From: death <death@southcom.com.au> To: freebsd-questions@FreeBSD.ORG Subject: pppd, mtu, lag, and icmp "need to frag" packets Message-ID: <4.2.1.19991128030900.00a9f380@mail.southcom.com.au>
next in thread | raw e-mail | index | archive | help
Hi, I'm having a major problem trying to defeat lag over my 56k modem connection with FreeBSD.. Once upon a time when i was using Windows 98 it was as simple as downloading a program, clicking 'optimize', and voila, it's now about 5 times as smooth/lagless as i've ever managed to get FreeBSD. I'm running 3.3-STABLE on a p166, 32MB ram, 1GB HDD. Connected to that, via a 'pppd' serial link, is a Windows 2000 machine. Both serial ports are at 115,200bps. The MTU/MRU setting in both ppp and pppd are 576 (which causes a problem for pppd which i'll discuss soon). Is there any way, apart from setting the MTU and MRU values in 'ppp' (i've set them to 576 - which seems to be a common, good number) - to decrease lag? When receiving data, lag rises to about 600-1000ms. When sending data, lag goes through the roof at ~1750ms. And strangely, when running cvsup, and even when it's only downloading, the lag is launched into orbit and sits at 2500ms MINIMUM. I thought that it might've been CPU usage doing this. A quick check reveals ~95% idle. This lag is present on both computers btw. So, any advice to lower this lag? Yes, i know 56k modems are slow, but it's still very possible to kill lag with say telnet and IRC, whilst i'm downloading via ftp at 5KB/s. I know i'm not going to get more than 5KB/s, i just want IRC and telnet to run smoother. I've done it with Windows 98 - even downloading 5 things at a time had no affect on anything else. Also, when the MTU of ppp0 is 576, FreeBSD keeps sending icmp "need to frag" packets to whatever sent me a packet that was supposedly too big. Here's a snippet from tcpdump: 00:47:52.999475 203.102.135.200.80 > 192.168.1.2.1142: P 1:645(644) ack 326 win 32120 (DF) (ttl 58, id 37803) 00:47:52.999753 210.84.240.102 > 203.102.135.200: icmp: 192.168.1.2 unreachable - need to frag (mtu 576) (DF) (ttl 255, id 51301) 00:47:53.089502 203.102.135.200.80 > 192.168.1.2.1141: P 1:610(609) ack 322 win 32120 (DF) (ttl 58, id 37804) 00:47:53.089700 210.84.240.102 > 203.102.135.200: icmp: 192.168.1.2 unreachable - need to frag (mtu 576) (DF) (ttl 255, id 51302) How do the packets get 644 or 609 bytes long? The MTU on tun0 is 576. Can't FreeBSD just fragment the packets and pass them through? I've looked everywhere for an option on this but to no avail.. BTW just a few configuration notes, i hope i cover them all: * i'm running ppp as 'ppp -nat'. i've only got one IP (which in the above example is 210.84.240.102) * ipfw is up and running, although it's only denying port 21, 23, and 25, and diverting port 113 to natd which then passes it on the windows machine. * 192.168.1.1 == freebsd.. 192.168.1.2 == windows. * the icmp frag packets don't appear on ppp0 at all when i use tcpdump. so i'm assuming that FreeBSD is creating them. I'm forced to change the MTU to 1500 which doesn't give me any of those frag errors. Considering that i'm only linked to FreeBSD via a 115,200bps serial cable, it's important that i get rid of lag on ppp0 too - which i was hoping i could do by setting the MTU down. It's only 12KB/s after all. Not a 100Mbps NIC. Thanks in advance. Cheers Death To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4.2.1.19991128030900.00a9f380>