On 9 Sep 2003 at 1:37, P Witte wrote:
> But does the incoming data need to be processed in any way before
> acknowledgement? Why cant the ISR simply receive and buffer the data and
> then send the ACK before exiting, leaving any processing to the higher
The reason is that it's part of the TCP processing and can not be done on ethernet packet level.
> In our January discussion you mentioned the case of echo. There is nothing
> to stop you from implementing time-critical routines, like echo, in the
> 'physical layer'. In fact you can take over the whole machine and do as you
Not a task where speed is relevant for the user. No point in speeding up ICMP echo only.
> he important thing is to split the driver correctly: Time
> critical, ie
> usually hardware related stuff, and in this case it appears also certain
> demands of the TCP/IP protocol (if I understand correctly) are rightly the
> provinance of the ISR. If this sort of thing is not clearcut in TCP/IP, then
> a messy solution is called for ;)
> Arent you trying to make the OS do something it was never designed to
> do? Writing drivers is a programming challenge. The OS is there to help
> where it can, but no OS author can anticipate any and every piece of
> hardware that is going to be attached to the machine in the future. That is
> the job of the driver. (Preferably without each driver author altering the
> OS to suit their own needs ;)
Somehow I doubt that you need to teach me that writing drivers
is a programming challenge or more trivialities and generalities
about OS and driver structure ;)
I guess you have to accept that QDOS (SMS?) has a principal shortcoming, not an author dependant need, and should be improved.
> Afterall, someone did implement TCP/IP on the Spectrum, which neither
A singletasking TCP/IP implementation is easier not harder.
Just in case you didn't notice: My TCP/IP package for QDOS works. I was talking the obstacles of higher data rates.
> nor (for all I know) understands interrupts.
Of course the Spectrum uses interrupts, and even singletasking TCP/IP needs some sort of timers.
All the best