I want to use the lwip TCP/IP stack with two TCP connections at the same time.
Additionally, I would like to use TCP protocol control blocks without
RTOS. For one connection everything is fine.
But, if I use two connections parallel, I get messages, which only should send over the first connection, over the second connection.
The problem in details:
At first, I connect the client with the server over TCP/IP. Than I send a message over this open connection. The message arrives at the server.
The server sends the confirmation-signals (ACK) of every receive message fragment to the client.
The message ends normally with an
MESSAGE-ACK. Everything is fine.
In the next step I open a new connection (second) from the client to the server (client: same IP-address, but other port, server: same IP-Address, but other port).
After this, I send a message over the second connection while the first connection is still open. The server sends the confirmation-signals (ACK) of every receive message to the client.
And now the problem:
Once, the sending process over the second connection is finished, than the server sends all confirmation-signals (ACK, MACK), which was sent to confirm every receive message fragment over the second connection, in one message
over the first connection to the client.
This is not normal.
I find out that all confirmation-signals are stored in the unsent and
unacked buffer for every TCP protocol control block. But every TCP protocol control block uses the same unsent and
unacked buffer. Is that correct ?
Important is, that two connections should be open in the same time.
I would be glad, if you can help me with my problem.
Thank you for your efforts in advance.
Tobias Klawonn, M.Sc.
Softwareentwickler Embedded Systems
Software Embedded Systems
Telefon : +49 (0) 451 5855 24121