Subject: ftp over ppp problem
To: None <tech-net@netbsd.org>
From: Brad du Plessis <bradd@cat.co.za>
List: tech-net
Date: 12/08/2004 14:44:07
Hi,

I'd previously posted a similar mail to netbsd-help, but with a little more
detail, I thought this list may be more suited to my question. I've got 2
Multitech 128ST-USB ISDN terminal adapters connected to 2 i386 boxes both
running NetBSD 2.0_RC5.

My goal was to setup a 128K MLPPP connection (with pppd) between these 2
boxes but I'm see the same issue (mentioned below) when both terminal
adapters are set to single channel 64K PPP mode, so I've done all testing in
single channel 64K mode eliminating any problems the channel bundling may
introduce.

The issue I'm seeing is that while a telnet session between the two seems to
work fine, an ftp session does not. After initiating the ftp connection,
doing a directory listing on the remote system (ls) works ok most of the
time. However, attempting to transfer a file in either direction appears to
transmit no data whatsoever.

What's more interesting, is that when I set the transmit and receive buffer
size for the ftp session to 512 bytes, I can transfer data without a problem
(albeit very slowly, about 2KBytes / second).

I've tried both active and passive ftp with no luck. I can confirm that this
connection works perfectly when the terminal adapters are set to use V.120
protocol, both ftp and telnet work fine.

I've disabled all pppd compression options that I could find. I couldn't
find an AT command to disable any hardware compression the terminal adapters
might use.

Below are the relevant tcpdump printouts: (I've included tcpdump printouts
from a file transfer with the transmit and receive buffer sizes set to 512
bytes, as well as an attempted file transfer with the buffer sizes set to
1024 bytes)

Any help would be most appreciated!

Thanks,
 Brad

tcpdump of ppp0 (host) at connection initialisation

13:41:42.913456 LCP: Conf-Req(1), ACCM=00000000, Magic-Num=558a07e6, PFC,
ACFC
13:41:42.943596 LCP: Conf-Rej(1), Magic-Num=558a07e6, PFC, ACFC
13:41:42.945310 LCP: Conf-Req(2), ACCM=00000000
13:41:42.972585 LCP: Conf-Ack(2), ACCM=00000000
13:41:44.918237 LCP: Conf-Req(1), ACCM=00000000
13:41:44.919843 LCP: Conf-Ack(1), ACCM=00000000
13:41:44.920852 IPCP: Conf-Req(1), IP-Addr=192.168.50.2, IP-Comp VJ-Comp
13:41:44.951228 IPCP: Conf-Req(1), IP-Addr=1.1.1.1
13:41:44.952806 IPCP: Conf-Ack(1), IP-Addr=1.1.1.1
13:41:44.957213 IPCP: Conf-Rej(1), IP-Comp VJ-Comp
13:41:44.958838 IPCP: Conf-Req(2), IP-Addr=192.168.50.2
13:41:44.984221 IPCP: Conf-Nak(2), IP-Addr=1.1.1.2
13:41:44.985863 IPCP: Conf-Req(3), IP-Addr=1.1.1.2
13:41:45.015211 IPCP: Conf-Ack(3), IP-Addr=1.1.1.2
13:41:45.027098 IP: 1.1.1.2.20023 > 1.1.1.1.20023: udp 128
13:41:45.046195 IP: 1.1.1.1.20023 > 1.1.1.2.20023: udp 128
13:41:45.068192 IP: 1.1.1.1.20023 > 1.1.1.2.20023: udp 128



Transfer of a file with receive and transmit buffers set to 512 bytes

13:52:39.796430 IP: 1.1.1.2.65389 > 1.1.1.1.ftp: P 404:419(15) ack 1570 win
33580 <nop,nop,timestamp 670 653> (DF) [tos 0x10]
13:52:39.842791 IP: 1.1.1.1.ftp > 1.1.1.2.65389: P 1570:1580(10) ack 419 win
33580 <nop,nop,timestamp 670 670> (DF) [tos 0x10]
13:52:39.842893 IP: 1.1.1.2.65389 > 1.1.1.1.ftp: P 419:425(6) ack 1580 win
33580 <nop,nop,timestamp 670 670> (DF) [tos 0x10]
13:52:39.893784 IP: 1.1.1.1.ftp > 1.1.1.2.65389: P 1580:1628(48) ack 425 win
33580 <nop,nop,timestamp 670 670> (DF) [tos 0x10]
13:52:39.894248 IP: 1.1.1.2.65380 > 1.1.1.1.65348: S
3299686080:3299686080(0) win 512 <mss 1460,nop,wscale 0,nop,nop,timestamp 1
0> (DF)
13:52:39.939774 IP: 1.1.1.1.65348 > 1.1.1.2.65380: S
1691259113:1691259113(0) ack 3299686081 win 32768 <mss 1460,nop,wscale
0,nop,nop,timestamp 0 1> (DF)
13:52:39.939799 IP: 1.1.1.2.65380 > 1.1.1.1.65348: . ack 1 win 512
<nop,nop,timestamp 1 0> (DF)
13:52:39.939860 IP: 1.1.1.2.65389 > 1.1.1.1.ftp: P 425:440(15) ack 1628 win
33580 <nop,nop,timestamp 671 670> (DF) [tos 0x10]
13:52:40.015757 IP: 1.1.1.1.ftp > 1.1.1.2.65389: P 1628:1698(70) ack 440 win
33580 <nop,nop,timestamp 670 671> (DF) [tos 0x10]
13:52:40.108739 IP: 1.1.1.1.65348 > 1.1.1.2.65380: . 1:513(512) ack 1 win
33580 <nop,nop,timestamp 0 0> (DF)
13:52:40.108774 IP: 1.1.1.2.65380 > 1.1.1.1.65348: . ack 513 win 512
<nop,nop,timestamp 1 0> (DF) [tos 0x8]
13:52:40.210015 IP: 1.1.1.2.65389 > 1.1.1.1.ftp: . ack 1698 win 33580
<nop,nop,timestamp 671 670> (DF) [tos 0x10]
13:52:40.251728 IP: 1.1.1.1.65348 > 1.1.1.2.65380: . 513:1025(512) ack 1 win
33580 <nop,nop,timestamp 1 0> (DF)
13:52:40.251762 IP: 1.1.1.2.65380 > 1.1.1.1.65348: . ack 1025 win 512
<nop,nop,timestamp 1 1> (DF) [tos 0x8]
13:52:40.258712 IP: 1.1.1.1.ftp > 1.1.1.2.65389: P 1698:1722(24) ack 440 win
33580 <nop,nop,timestamp 671 671> (DF) [tos 0x10]
13:52:40.401694 IP: 1.1.1.1.65348 > 1.1.1.2.65380: . 1025:1537(512) ack 1
win 33580 <nop,nop,timestamp 1 0> (DF)
13:52:40.401725 IP: 1.1.1.2.65380 > 1.1.1.1.65348: . ack 1537 win 512
<nop,nop,timestamp 2 1> (DF) [tos 0x8]
13:52:40.450017 IP: 1.1.1.2.65389 > 1.1.1.1.ftp: . ack 1722 win 33556
<nop,nop,timestamp 672 671> (DF) [tos 0x10]
13:52:40.547657 IP: 1.1.1.1.65348 > 1.1.1.2.65380: . 1537:2049(512) ack 1
win 33580 <nop,nop,timestamp 1 0> (DF)
13:52:40.547686 IP: 1.1.1.2.65380 > 1.1.1.1.65348: . ack 2049 win 512
<nop,nop,timestamp 2 1> (DF) [tos 0x8]
13:52:40.691652 IP: 1.1.1.1.65348 > 1.1.1.2.65380: . 2049:2561(512) ack 1
win 33580 <nop,nop,timestamp 2 0> (DF)
13:52:40.691686 IP: 1.1.1.2.65380 > 1.1.1.1.65348: . ack 2561 win 512
<nop,nop,timestamp 2 2> (DF) [tos 0x8]
13:52:40.802614 IP: 1.1.1.1.65348 > 1.1.1.2.65380: FP 2561:2904(343) ack 1
win 33580 <nop,nop,timestamp 2 0> (DF)
13:52:40.802636 IP: 1.1.1.2.65380 > 1.1.1.1.65348: . ack 2905 win 168
<nop,nop,timestamp 2 2> (DF) [tos 0x8]
13:52:40.802658 IP: 1.1.1.2.65380 > 1.1.1.1.65348: . ack 2905 win 512
<nop,nop,timestamp 2 2> (DF) [tos 0x8]
13:52:40.803214 IP: 1.1.1.2.65380 > 1.1.1.1.65348: F 1:1(0) ack 2905 win 512
<nop,nop,timestamp 2 2> (DF) [tos 0x8]
13:52:40.803874 IP: 1.1.1.2.65389 > 1.1.1.1.ftp: P 440:455(15) ack 1722 win
33580 <nop,nop,timestamp 672 671> (DF) [tos 0x10]
13:52:40.862625 IP: 1.1.1.1.65348 > 1.1.1.2.65380: . ack 2 win 33580
<nop,nop,timestamp 2 2> (DF)
13:52:40.877599 IP: 1.1.1.1.ftp > 1.1.1.2.65389: P 1722:1742(20) ack 455 win
33580 <nop,nop,timestamp 672 672> (DF) [tos 0x10]
13:52:41.070017 IP: 1.1.1.2.65389 > 1.1.1.1.ftp: . ack 1742 win 33580
<nop,nop,timestamp 673 672> (DF) [tos 0x10]






Attempted transfer of a file with receive and transmit buffers set to 1024
bytes

13:53:25.451674 IP: 1.1.1.2.65389 > 1.1.1.1.ftp: P 455:470(15) ack 1742 win
33580 <nop,nop,timestamp 762 672> (DF) [tos 0x10]
13:53:25.498476 IP: 1.1.1.1.ftp > 1.1.1.2.65389: P 1742:1752(10) ack 470 win
33580 <nop,nop,timestamp 761 762> (DF) [tos 0x10]
13:53:25.498589 IP: 1.1.1.2.65389 > 1.1.1.1.ftp: P 470:476(6) ack 1752 win
33580 <nop,nop,timestamp 762 761> (DF) [tos 0x10]
13:53:25.550468 IP: 1.1.1.1.ftp > 1.1.1.2.65389: P 1752:1800(48) ack 476 win
33580 <nop,nop,timestamp 762 762> (DF) [tos 0x10]
13:53:25.550933 IP: 1.1.1.2.65379 > 1.1.1.1.65347: S 540520613:540520613(0)
win 1024 <mss 1460,nop,wscale 0,nop,nop,timestamp 0 0> (DF)
13:53:25.596453 IP: 1.1.1.1.65347 > 1.1.1.2.65379: S
3249818927:3249818927(0) ack 540520614 win 32768 <mss 1460,nop,wscale
0,nop,nop,timestamp 0 0> (DF)
13:53:25.596479 IP: 1.1.1.2.65379 > 1.1.1.1.65347: . ack 1 win 1024
<nop,nop,timestamp 0 0> (DF)
13:53:25.596544 IP: 1.1.1.2.65389 > 1.1.1.1.ftp: P 476:491(15) ack 1800 win
33580 <nop,nop,timestamp 762 762> (DF) [tos 0x10]
13:53:25.678430 IP: 1.1.1.1.ftp > 1.1.1.2.65389: P 1800:1870(70) ack 491 win
33580 <nop,nop,timestamp 762 762> (DF) [tos 0x10]
13:53:25.870016 IP: 1.1.1.2.65389 > 1.1.1.1.ftp: . ack 1870 win 33580
<nop,nop,timestamp 763 762> (DF) [tos 0x10]
13:53:25.914391 IP: 1.1.1.1.ftp > 1.1.1.2.65389: P 1870:1894(24) ack 491 win
33580 <nop,nop,timestamp 762 762> (DF) [tos 0x10]
13:53:26.110015 IP: 1.1.1.2.65389 > 1.1.1.1.ftp: . ack 1894 win 33556
<nop,nop,timestamp 763 762> (DF) [tos 0x10]