Epmp force 200 TCP throughput

Hello guys,

I have two PTPs with force 200 in bonding in mikrotik, everything works fine however the troughput of the link in TCP tests does not exceed 200mbps, 100mbps per link in one direction, with 20.40 or 100 TCP sessions does not matter, already in UDP the test reaches more than 300 mbps in the same direction, technically speaking this radio should reach 200 mbps and what I hoped for was the same 300 mpbs in TCP and UDP 150 mbps per link. I have already checked the processing of the routerboards during the test and this is definitely not the problem. I do not know if something I can do to improve troughput on TCP?

First, not trying to be mean, the following is meant as educational not an attack.

The problem is not the links nor the routerboards. Its an understanding issue. TCP is a connection oriented protocol and UDP is a connectionless protocol. UDPhits higher speeds because its only one way and is not a stream of data, its more like a shot gun. Just send it flying! TCP on the other hand requires a two way handshake and builds a stream. Port bonding or similar sees this stream and places every packet on the same path so the sequence numbers are in as good of order as possible. This is normal and the expected behaviour. TCP does not like changing paths or spreading across paths. At any time your max TCP through put will be the sum of one links speed.

What you can do about it if you really want to test the link:
Iperf with jperf for friendly display format.
4 simultaneous connections and use a large tcp window of 1500 or larger.

If that does not work then your bond is an lacp bond on a channel group and you need two pairs of computers, two vlan aware switches and some cabling. Build from these switches 2 access ports using vlans 10 and 11 and a trunk to the microtik. On the other end do the same and setup a computer on each vlan as an iperf server. On the end your testing from, run both tests at the same time with the same settings, they wont see the wrong iperf server if you set things up correctly. This should give you your max tcp through put if you add the two tests together.

2 Likes