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.
Hello,
When I send an TCP packet (1022 bytes) from my PC, I receive the packet in 2 times (with TCP_EVT_DATA). 536 bytes first and 486 bytes.
I don't understand why I can't receive it in one time.
Anybody can help me ?
Thanks.
And does that give you any guarantee that it will send only a single packet?
"It is the Microsoft Network Monitor program running on the PC which send the TCP packet."
Well, if that tells you that there were two packets, then I guess you'd better believe it!
I know there is 2 packets and I want to know why.
If I send an packet smaller than the Maximum Transfer Unit (MTU), normally I will be able to receive it in one packet.
Maybe there is something to configure in the TCP opening connection, but I find nothing
It's the PC that decided to send two packets, so this is a PC question - it has nothing to do with Keil or their libraries!
I don't think so, because with the same PC, same application, same send socket function, but Atmel 8 bits target, Only one packet is sent
"same PC, same application, same send socket function, but Atmel 8 bits target, Only one packet is sent"
Are you sure that only 1 packet is sent?
What does your sniffer say?
My sniffer says one packet with 1022 bytes
What version of RL-ARM are you using?
The latest (4.10) has a 'solved problem' stating:
Added: MSS option (maximum segment size) to SYN packet for outgoing TCP connections. Because this option was missing, PC used reduced segment size of 536 bytes in communication.
Go here for source of info:
http://www.keil.com/update/whatsnew.asp?p=RL-ARM&v=4.10
Aaaaah it seems be the problem.....thank you
Is it possible to have the patch to solve the problem ?
If you have an active license, then you can get the update via:
www.keil.com/.../4.10
I don't have an active licence........
The "nice" thing about the RL-ARM is that you don't get the full source code to the library - you have to pay extra for the TCP/IP code.
So having the support agreement expire means that you can't just fix the code yourself.
And it's not just a little extra!
I got a quote and very quickly decided not to bother wasting my time asking for a purchase approval.