I currently have the following requirement: I have a networked device
communicates with a server "B" using a custom protocol over a TCP port.
The server connects with the device, sends data (roughly 2k), and then
connection. The device does not send any acknowledge to the server. In
environment, where device and server are located in the same network,
pretty well. The server is implicitly rate limited by the speed with
device accepts connections and simply blocks until the device is ready
to accept data.
In the real-world deployment, my device sits behind several
administrated by at least three separate companies, so we decided to
traffic using DeleGate via Socks (since a Socks tunnel is already
requires no changes to the firewall/router configuration). I have a
running in my network, which forwards the used TCP ports (with the
option) via Socks to an upstream DeleGate, which then relays the
connections to the
The problem I'm running into is that now, if the server sends data at a
rate much higher than what the device can accept, connections are
simply dropped without
my server being informed that the connection couldn't be forwarded.
setting the 'listen' and 'conpch' MAXIMA parameters to one in an
attempt to force
DeleGate to behave more like the direct connection (i.e. the server is
blocked on the
send until the device accepts the connection), but haven't had much
luck - it's
still silently loosing data.
Is there any way to force DeleGate to refuse to accept new connections
all previous connections have been successfully forwarded ? Or do I
have to implement
some form of rate limiting in my server ?