This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

low tcp/ip

I send data from evaluation board MCB2300 (with LPC 2378 microprocessor)
to a user's PC via Ethernet using TCP/IP protocol.
A program named Ethereal shows that MCB2300 transfers 1024 bytes segment
during 7-8 ms after ACK is received from PC. Why the transfer is so low?
(Program sample is EasyWeb).

Parents
  • So you don't use Keil RL.

    But the theory of operation is almost certainly similar to that of the protocol stack you are using.

    There will be a service call that checks carries out pending transmission, checks for a response and triggers appropriate actions.

    Speed up the frequency that this functionality is called at, and you might just speed up your throughput.

Reply
  • So you don't use Keil RL.

    But the theory of operation is almost certainly similar to that of the protocol stack you are using.

    There will be a service call that checks carries out pending transmission, checks for a response and triggers appropriate actions.

    Speed up the frequency that this functionality is called at, and you might just speed up your throughput.

Children
  • Sorry to "invade" this thread, but I don't know why NOBODY replied to mine - see http://www.keil.com/forum/docs/thread13709.asp.
    I have a similar problem, my transmission rate is quite slow, 10msec maximum rate. I MUST achieve 1msec or less. How can I do? I'm quite sure this is possible, also referring to http://www.keil.com/forum/docs/thread9914.asp
    But I couldn't find anything to be changed, to improve the rate - all the suggestions were already put in practice. There surely is a missing HW setting.

  • Ok, I proved I am DEFINITELY stupid - provided a link to the WRONG thread. :P I'm sorry.
    So,
    I'm developing a real-time network application UDP based on a MCB-STR9 evaluation board.
    I implemented a very simple application using the HTTP_demo and the examples on UDP communication provided on the website and in the examples code.
    It sends very small packets (10 bytes) at the fastest possible rate, without waiting for any acknoledgment.
    And, I'm testing it with WireShark (=Ethereal).
    There's not a big problem, it just shows that doesn't matter how small I set the timer tick in the RTXconfig (or NETconfig which anyway can't be smaller than 10msec, and the specifications say to set it the higher the better) settings, the packets are sent at a minimum rate of 1pk/10msec.
    HOW can I improve the transfer time? The mainTCPNet task is always ready, so I think I can't improve its call frequency without improving the CPU speed, am I right? Speaking about available CPU time, the only thing CPU is doing right now is setting a GPIO port (to set LEDs) and updating the LCD display, that shouldn't keep CPU overloaded.
    My network is a 100T Ethernet based system.
    I tested the program quite extensively, and read the documentation, but I didn't find out anything related to my specific case, only this thread: http://www.keil.com/forum/docs/thread9914.asp.
    But I couldn't find anything to be changed, to improve the rate - all the suggestions were already put in practice.
    Is there some other suggestions?

    The 2 problems look actually very similar, although I AM using the RL-Arm library AND targeting it to RTX.

    Thank you all in advance :)

  • It sends very small packets (10 bytes) at the fastest possible rate

    why are you doing that? you are introducing delays into your stack. performance will absolutely improve if you send larger chunks (say, 512 - 1024 bytes...?)
    have you considered what your transmission policy mean in terms of bus congestion control algorithems (en.wikipedia.org/.../Nagle's_algorithm) ?

  • I know, but the end receiver is a small precision device working with very small amounts of data at a fast rate.
    I can't change that. Specified transmission time is 1 msec. How can I do? :(