There is:

  • Server "A"
  • Server "B"

I have root permission on both. They can ONLY ping each other. I installed ptunnel on both.

On Server "A", I tried to:

ptunnel -p SERVER-B-IP -lp 6969 -da SERVER-B-IP -dp 22

Then on Server "B" I did a:


then I could scp from Server "A" to Server "B":

scp -P 6969 test.raw

But it is hellish slow. With a:

ping -M do -s 1364 SERVERIP

I can see that the max MTU is 1364. If I do a:

tcpdump -i eth0 -p icmp

on Server "B" while doing the transfer, I can see the "length 1060" (very rarely some 32 or 64). So almost the max 1364.

The purpose is to copy data via ICMP as fast as possible.

The Question: is there a way to speed up the TCP over ICMP? Or did I missed out any setting? For a 100 MByte testfile it starts at 1.5 MByte/sec, but ends up 100 KByte/sec after about 30 seconds.

I tried to do a:

echo "1" >  /proc/sys/net/ipv4/icmp_echo_ignore_all

But didn't helped on the speed. Tried in opposite direction, the same 100 KByte/sec. Or is there a better solution?

  • Set them both to the lowest common MTU denominator eg. 1060. – Rui F Ribeiro Apr 30 at 21:48
  • Tried to set MTU on both sides for: 1000, 1060, 1080, 8950, the same, after about 30 seconds, scp slowed down to about 100 KByte/sec :) – cirka547 May 1 at 10:38
  • 1
    It is rather well known ssh tunnels on top of ssh ate slow, think they should not be so slow over icmp. Any applicational aware firewall? – Rui F Ribeiro May 1 at 13:10
  • Guess: Some firewall in between your servers thinks that that many ICMP packets are unusual and possibly an attack, and throttles them. You can verify this by using two systems you fully control, connect them up, do the same kind of tunnel between them and see if they behave differently. – dirkt May 2 at 6:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.