>
>
> > I think this approach would fit nicely into the Hurd's translator
> > architecture.  However, I'm not sure if I like the directory structure
> they
> > use.  I would think the network interface should be shown like
> >
> > /net/eth0/tcp/2
> >
> > It might be worthwhile--but possible bad style?--to duplicate both
> > hierachies so on may browse the connections by device or generally.
> >
> > Any preferences/comments on this?
>
> It's clearly a mistake to map the directory tree to the protocols stack.
> The TCP implementation is a global layer, it handles network interfaces
> internally and must not be bound to any interface (ask yourself how to
> implement INADDR_ANY, or IPv4 capable IPv6 sockets). In addition,
> separating the network and transport layers implies several problems.
> The most obvious one concerns performance. The Mach IPC subsystem
> provides nice virtual copy support, but this facility creates an
> important overhead that severely impacts high speed connections.
> Carefully shared memory between the servers may help though.


I'm not sure what you mean  that it's a mistake to map the directory tree to
the protocol stack.  Do you think the Plan9 implementation, for example, is
also clearly a mistake then?  I'm not sure if I see the problem.  Wouldn't
something like INADDR_ANY be a simple hook into the IP layer?  From what I
understand, a bind on INADDR_ANY locks that port for all interfaces anyway
so I don't see why this would be a problem.  Just have a special IP binding
for getting every interface and that connection is shown in every interface
directory.  Is the problem here with my implementation or a fault you
generally see in the Plan9 implementation?

Thanks,
Josh

Reply via email to