Mail Archives: djgpp/2001/02/06/19:06:28
Hello.
I'm CC'ing the libsocket list on my reply, since it's relevant.
Wojciech Galazka wrote:
[snip]
> Since the mission is to develop a BSD compliant networking library then
> I'd consider a entry level library that supports:
> * data link level
> * ARP / RARP
> * IP + fragmentation (both IPv4 & INv6)
> * ICMP
> * UDP
> * no TCP at the moment
> * limited ioctls
> * no selec()t, pool() (oh no , perhaps could anyone suggest select()
> under DOS ?)
> * no async i/o
I would suggest that support of the Unix98 specification's networking is
about all you need, from an applications point of view. TCP support is
IMHO required, if the library is to be any use. This is much more vital
than RARP/BOOTP/DHCP support for getting addressses.
ioctl support could just be FIONBIO, for flipping into non-blocking mode,
since not much else is used. select() is probably also a requirement.
DJGPP doesn't support multithreading, so select() is the only the real way
of supporting multiple connections in a server.
IPv6 support is probably an ambitious aim, since it's still changing. BTW
I don't think the concept of fragmentation exists in IPv6 as it does in
IPv4. I think path MTU discovery is always used. All network types have to
support minimum MTU packets (1280 bytes, if memory servers), so senders
can always fall back to that packet size.
> Dave took the top-down approach, that is with wsock.vxd he got TCP and
> UDP protocols and tried to go down to IP which is almost impossible
> under Windows as most of the stack inrternals are undocumented
> I'd opt for quite the opposite direction
Dave is my brother. ;) I think you mean "Dawe", my last name. 8)
Going down to IP has never been an option. ICMP echo ("ping") would be
possible, by writing a helper application that uses the ping DLL. It never
seemed that important, though.
Writing it from the bottom only makes sense on DOS, where you have direct
hardware access. I remember you suggested porting the BSD stack a while
ago. That would give you a TCP/IP stack more advanced than Watt-32,
because FreeBSD's stack currently has support for IPv4, IPv6, IPSec (AH
and ESP). I'm not sure how simple it would be to port the IPSec facilities
though.
> PS Could anyone, please, forward this to the dossock list, I can post at
> the usenet only now
Yes, done. I sent it to the libsocket list too, so that this reply makes
sense.
Bye,
--
Richard Dawe <richdawe AT bigfoot DOT com> http://www.bigfoot.com/~richdawe/
"The soul is the mirror of an indestructible universe."
--- Gottfried W. Leibniz
- Raw text -