TCP/IP network cannot TX more than 2890 bytes

Hi, there,
I am developing the tcp/ip application working with SoCFPGA and RHEL5 under Qt4 environments.
SoCFPGA is server side, and RHEL5 is client side.

When the client RHEL5 sends 30,000 bytes to SoCFPGA, there is no problem but, opposite direction, when the SoCFPGA returns the reply data to the client RHEL5, just 2,900 bytes transferred. The RHEL5 has been already verified that receiving the large sized file - more than 30,000 bytes - is ok with other PC.

I tried to expand the receive buffer and send buffer with SO_RECVBUF and SO_SENDBUF options but those were failed inspite I checked both buffer sizes are set to 327,680 bytes.

Are there anyone who had experience like me?
uname -a … is
Linux socfpga 4.1.33-ltsi #1 SMP Thu Oct 19 11:27:40 PDT 2017 armv7l GNU/Linux
Thank you in advance.

Here is my sysctl -a of ipv4
[root@socfpga ~]$ sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_window_scaling = 1
net.core.wmem_max = 12582912
net.core.rmem_max = 12582912
net.ipv4.tcp_rmem = 10240 87380 12582912
net.ipv4.tcp_wmem = 10240 87380 12582912