Network2: Difference between revisions

From OLPC
Jump to navigation Jump to search
Line 15: Line 15:
== Design ==
== Design ==


Networking is intimately related to all aspects of the Sugar experience, including both usage and creation. Here are some pages describing many aspects of this experience:
Networking is intimately related to all aspects of the Sugar experience, including both usage and creation. Here are some pages describing many aspects of this experience. (Caveat: When judging, please also note that the design is '''not yet complete''' in several important respects, as indicated below.)


; [[Network2/Advice|Activities]]
; [[Network2/Advice|Activities]]
: We provide advice for activity authors on special factors to consider when writing networked or collaborative activities.
: ''Stub.'' We provide advice for activity authors on special factors to consider when writing networked or collaborative activities.


; [[Network2/Design|Naming and Internetworking]]
; [[Network2/Design|Naming and Internetworking]]
: We intend to use DNS and IPv6 for naming and internetworking.
: ''Useful.'' We intend to use DNS and IPv6 for naming and internetworking.


; [[Network2/Security|Security]]
; [[Network2/Security|Security]]
: ''Incomplete'' thoughts on where we might want to go with communications security.
: ''Stub.'' Thoughts on where we might want to go with communications security.


; [[Network2/Management|Management]]
; [[Network2/Management|Management]]
: t.b.d.
: ''t.b.d.''


; [[Network2/Dynamics|Dynamics]]
; [[Network2/Dynamics|Dynamics]]
: In order to efficiently study scaling costs, we maintain bandwidth and latency models for our most important links, protocols, and implementations.
: ''Stub.'' In order to efficiently study scaling costs, we maintain bandwidth and latency models for our most important links, protocols, and implementations.


; [[Network2/Diagnosis|Diagnosis]]
; [[Network2/Diagnosis|Diagnosis]]
: Our [[Network2/Architecture|quality principles]] mandate that we provide fault diagnosis procedures even before providing implementations!
: ''Useful.'' Our [[Network2/Architecture|quality principles]] mandate that we provide fault diagnosis procedures even before providing implementations!


; [[Network2/Self-test|Self-test]]
; [[Network2/Self-test|Self-test]]
: A logical extension of good ''manual'' diagnosis procedures is the creation of good ''automated'' diagnosis procedures.
: ''Stub.'' A logical extension of good ''manual'' diagnosis procedures is the creation of good ''automated'' diagnosis procedures.


; [[Network2/Experiments|Experiments]]
; [[Network2/Experiments|Experiments]]
: We have begun experimenting with naming and tunneling technologies like [[Network2/Experiments/Dnshash|dnshash]] and [[Network2/Experiments/Openvpn|openvpn]].
: ''Useful.'' We have begun experimenting with naming and tunneling technologies like [[Network2/Experiments/Dnshash|dnshash]] and [[Network2/Experiments/Openvpn|openvpn]].

; [[Network2/Integration|Integration]]
: ''t.b.d.'' How do we get this merged?


; [[Network2/Future work|Future work]]
; [[Network2/Future work|Future work]]
: As with any ambitious project, there's always more to do!
: ''Stub.'' As with any ambitious project, there's always more to do!

'''Caveats'''

When judging, please also note that the design is '''not yet complete''' in several important respects:
* it has only a stub of a bandwidth model, hence we ''yet'' know how much it costs to scale it up
* its self-test algorithm is not yet written, (though good diagnostic primitives are systematically identified)
* it lacks truly clear implementation guidance and comprehensive sample code, and
* there are unresolved questions about
** how routing and timeouts should be configured so that peers search their target address space in a useful fashion
** how [[communications security]] might best be provided.
* it lacks an "integration and deployment" plan outlining how to get it adopted.


== Contributions ==
== Contributions ==

Revision as of 00:02, 27 July 2009

Last updated: Michael Stone 23:43, 26 July 2009 (UTC)

Introduction

There are many ways that children involved in the OLPC effort might fail to benefit from their involvement. Some of these educational failures stem from network design and implementation failures such as lack of interoperability, efficiency, and usability. Therefore, we have described this work's context, a number of designs, and several implementations that we think will help mitigate these threats. More information about these artifacts can be gleaned from other pages on Network2.

Unfortunately, providing truly dependable software is a challenging task at best. Fortunately, there are many ways that you can help out, both generically, particularly, or via role-based scaffolding according to your preferences. Finally, if you are interested in speaking with networking people, know that they are readily available.

Context

This network design effort is growing in the fertile ashes of previous network and collaboration attempts. Consequently, it proceeds from previously realized Network Principles according to a multi-faceted statement of purpose, a prioritized list of network scenarios, and a collection of architectural quality principles wrought from the aforementioned previous efforts.

Design

Networking is intimately related to all aspects of the Sugar experience, including both usage and creation. Here are some pages describing many aspects of this experience. (Caveat: When judging, please also note that the design is not yet complete in several important respects, as indicated below.)

Activities
Stub. We provide advice for activity authors on special factors to consider when writing networked or collaborative activities.
Naming and Internetworking
Useful. We intend to use DNS and IPv6 for naming and internetworking.
Security
Stub. Thoughts on where we might want to go with communications security.
Management
t.b.d.
Dynamics
Stub. In order to efficiently study scaling costs, we maintain bandwidth and latency models for our most important links, protocols, and implementations.
Diagnosis
Useful. Our quality principles mandate that we provide fault diagnosis procedures even before providing implementations!
Self-test
Stub. A logical extension of good manual diagnosis procedures is the creation of good automated diagnosis procedures.
Experiments
Useful. We have begun experimenting with naming and tunneling technologies like dnshash and openvpn.
Integration
t.b.d. How do we get this merged?
Future work
Stub. As with any ambitious project, there's always more to do!

Contributions

You can contribute to the education received by hundreds of thousands of children this year by:

writing software
Review the documentation cited above, then bring your questions and patches to the sugar-devel mailing list (subscribe).
refining the threat model and design
Did we miss an important threat (e.g. to availability)? If so, please work with us to fix our model.
Alternately, if you have expertise in a related field like mathematical modeling (how far can this scale?) or usability (how should we inform users of failure?), please improve our theories and recommended practices.
breaking assumptions
Networking is proven both in the mind and under fire. Here's your opportunity to crank up the heat.
organizing other people
Many people are capable of improving the networking ecosystem but for the lack of some critical resource like knowledge, motivation, or criticism. Find and provide the missing piece.
spreading the word
Many of our networking ideas are transferable to other operating systems and environments -- particularly to other Unix-like machines. Help port our ideas or software to another platform so that others can benefit from them and can help us improve them on their own terms.

Procedures

Some day soon, we'll try to write up some simple procedures to ease the task of making the networking contributions described above. Ping the sugar-devel list (subscribe) if you want this up.

Thanks

Many people, both named and anonymous have contributed to the network ecosystem containing the XO and hence to the quality and power of the education received by hundreds of thousands of kids this year. If you or your organization would like to be recognized for your contributions, please add your name and affiliation to the Network2 credits page along with a brief description of what you worked on.