Я сейчас создаю прозрачный прокси в Java.Этот прозрачный прокси размещается между клиентом и сервером, используя iptables для перенаправления потока TCP.
С точки зрения связи TCP у меня есть следующий диалог:
Client Server
| ---- TCP Packet 1 ---> |
| ---- TCP Packet 2 ---> |
| <--- TCP Packet 3 ---- |
| <--- TCP Packet 4 ---- |
С точки зрения прозрачного прокси (с использованием сокетов) я получаю:
Client Server
| ---- TCP Payloads from packet 1 + 2 ---> |
| <--- TCP Payloads from packet 3 + 4 ---- |
Моя проблема заключается в том, что сокеты объединяют несколько полезных нагрузок TCP.Я хотел бы избежать такого поведения.
Я мог бы обойти проблему, используя размер пакетов, но этот размер не является постоянным.Я попытался использовать опцию tcpNoDelay, но тоже не повезло с этим.Я использовал сетевую среду netty, но у меня та же проблема.
Есть ли способ избежать этой конкатенации полезных нагрузок TCP в Java?