bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: updated proposal


From: olafBuddenhagen
Subject: Re: updated proposal
Date: Sat, 29 Mar 2008 23:37:01 +0100
User-agent: Mutt/1.5.17+20080114 (2008-01-14)

Hi,

On Fri, Mar 28, 2008 at 06:04:51PM -0600, Joshua Stratton wrote:

> Basically, I was thinking the network stack could be divided into
> different translators per protocol and give the client access to
> different layers based on his needs.

Indeed, that was not explicitely mentioned in the project description,
but was part of the idea :-)

> A network interface that registers an IP address would be listed with
> the others interfaces with each having a respective hierarchy of
> transport protocols underneath.
> 
> For example,
> 
> /ip/eth0/tcp/
> /ip/eth0/udp/
> /ip/eth1/tcp/
> /ip/eth1/udp/
> /ip/lo/tcp/
> /ip/lo/udp/
> /ip/tcp/
> /ip/udp/
> 
> In this example, the client could choose from the first six options to
> get the interface of its choice.  The last two could would let the
> network stack decide which network interface provided the connection.
> In this way the client could request a link for a TCP connection, for
> example, for eth0 using /ip/eth0/tcp/ or might not care and use
> /ip/tcp/ and let the server decide using any heuristic it wants
> (round-robin, etc.)
> 
> In this way, it would be very versatile for providing different
> routing schemes and filtering options to the client.

Sounds good so far :-) (BTW, looking at the Plan9 network stack could
give some ideas about device organisation etc.)

What is still missing is some idea how the communication between the
layers happens. Mabye it's best to think of an example -- what happens
when a programm opens a TCP socket, sends some data, receives some data,
waits a bit, receives some more data, closes the socket again? What
information is passed between the various components of the network
stack at each step, and how?

-antrik-




reply via email to

[Prev in Thread] Current Thread [Next in Thread]