Bug#613687: general: ipv6 acquitment problem - causes problems in ipv4
I encountered a problem while using IPv6 : on non-local networks, the bandwidth
is dramatically low, around 8 Kb, while having around 10Mb if deactivating
ipv6. Problem is the following : the bandwidth drop is due to the fact that
when a packet is sent, the next one is sent only if the ACK of the previous
packet has been transfered (as if there was no congestion window at all).
This does not affect only ipv6 connexions, as ipv4 connexions are also
presenting the same syndrom, if ipv6 is active.
On some local transmissions, there seem to be no problem, but I could not figure
The following does not locate the problem, but removes some potential solutions:
Problem is not directly on tcp implementation of IPv6, as I could make it work
on local network.
Problem only happens while the IPv6 module is loaded. If ipv6 is disabled, then
there is no bandwidth problem (for example by setting "blacklist ipv6" in
Problem is not directly on the MTU, because fixing a lower MTU on the interface
(1400 for example) does not help.
Here is a sample of wireshark traces (ip have been truncated) :
address starting with 2001: is the client debian
address starting with 2a01: is the server (not running debian)
Exchange is a standard scp transfer between the two computers
93 26.585633 2001: 2a01: TCP 55611 > ssh [SYN] Seq=0
Win=5760 Len=0 MSS=1440 TSV=2652463 TSER=0 WS=7
94 26.638203 2a01: 2001: TCP ssh > 55611 [SYN, ACK] Seq=0
Ack=1 Win=65535 Len=0 MSS=1420 WS=3 TSV=730156014 TSER=2652463
After the establishment of the connexion, here are the first transmissions :
161 31.751915 2a01: 2001: SSHv2 Encrypted response
162 31.789951 2001: 2a01: TCP 55611 > ssh [ACK] Seq=2345
Ack=3617 Win=13440 Len=0 TSV=2653765 TSER=730161116
163 31.850036 2a01: 2001: SSHv2 Encrypted response
164 31.850052 2001: 2a01: TCP 55611 > ssh [ACK] Seq=2345
Ack=5025 Win=16256 Len=0 TSV=2653780 TSER=730161215
I did quite a few checks, on different connexions, and all the time the ACK
is corresponding to the previous packet.
This goes on as long as the transfer is not stopped or finishes : one packet,
and the corresponding acquitement. over and over.
Hope this helps,
-- System Information:
Debian Release: 6.0
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-5-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash