We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Greetings,
Intro: I am developing a TCP Server (TCP Passive Open) using LPC2364 (ARM7TDMI). I need to transmit/ receive approximately 35 Kb of data through an active TCP connection. As per document references, the TCP_MAXSEGSZ macro defines the maximum size of the packet transmitted in a single transaction. The possible range that can be defined is between 536 to 1460 bytes.
Issue: Even if I configure the maximum value 1460 as the Maximum segment size(TCP_MAXSEGSZ ), I am able to transmit only 554 bytes through an active connection.
I also came across the statement of Keil that the Maximum Segment size will be negotiated during initial handshake of the TCP connection. But the TCP client I am communicating with, is a Linux based system which has a minimum value of 4096 as Maximum Segment Size.
How can I solve this issue?
Requirement: I need the Maximum Segment size during transmission to be at least 1024 (1Kb).
Kindly help me out in this regard. Thanks in advance.
Just a side note to the reply from Kevin. Since you are using ARM7 based LPC2364, you are probably not using MDK middleware pack, instead you are probably still using the old RL_TCPNet library. If this is the case, the "patch" mentioned in http://www.keil.com/support/docs/3846.htm won't work for you, since the function net_tcp_get_mss() has different name and implementation in the old RL_TCPNet library. But anyway the "patch" is not really recommended, because TCP is really a "handshake" protocol, and the Tx MSS should be decided and announced by the remote node. Thus, the right way to fix this issue is really to check the reason on your remote node, why it only accepts 554 bytes.