Network2: Difference between revisions

From OLPC
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(48 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{TOCright}}
{{TOCright}}
Last updated: [[User:Mstone|Michael Stone]] 04:15, 15 January 2010 (UTC) | '''[[Network2/Paper|paper version]]'''
= Introduction =


Sugar's desired realtime collaboration experience can only be provided atop a robust and efficient network stack designed to accommodate automated diagnosis and standardized workarounds -- anything less only wastes students' and teachers' time and patience, contrary to our [[OLPC Human Interface Guidelines/Design Fundamentals/Key Design Principles|human interface guidelines]].
Last updated: [[User:Mstone|Michael Stone]] 19:10, 25 July 2009 (UTC)


This '''unfinished''' essay summarizes an attempt to work out a simple way to realize this sort of network experience, with existing software and hardware, while also demonstrating the sort of thinking which might help other parts of the system achieve the same standard of quality.
== What is this project? ==


'''Quick links''': '''[[Network2/Paper|the Paper]]''' : (finished/''unfinished'' sections)
* [[Network2/Audience]]


* Prior work: [[networking]], [[collaboration]], [[network principles]]
This project proposes a design for networking based on previously realized [[Network Principles]]. It then explores and elaborates the design with analysis, example configuration, and experimental results after which it concludes by crediting those who have contributed to the design and by explaining future work inspired by current results.
* Background: [[Network2/Purpose|purpose]], [[Network2/Scenarios|scenarios]], [[Network2/Architecture|architecture]]
* Designs: [[Network2/Design|naming and internetworking]], ''[[Network2/Security|security ideas]]'', [[Network2/Diagnosis|diagnosis techniques]]
* Analyses: ''[[Network2/Dynamics|cost model]]'', ''[[Network2/Self-test|self-test algorithm]]''
* Experiments: [[Network2/Experiments/Dnshash|dnshash]], [[Network2/Experiments/Openvpn|openvpn]], ''[[Network2/Experiments/HE|6to4: HE]]'', ''[[Network2/Experiments/Sixxs|6to4: Sixxs]]'', ''[[Network2/Experiments/Simulation|simulation]]'', ''[[Network2/Experiments/openwrt|openwrt]]'', ''[[Network2/Experiments/tinydns|olpcdyndns1]]''


'''Personal goals...'''
* [[Network2/Purpose]]


# "I want to use familiar tools in my activities, -- like Twisted, curl, ssh, rsync, and email -- both under a tree, in a walled garden, and out on the public Internet, without modification or wrappers."
When judging, please also note that the design is '''not yet complete''' in several important respects:
# "I want a design that has 20% fewer ways to fail, and that offers manual overrides for the failure modes that remain."
* it has only a stub of a bandwidth model, hence we ''yet'' know how much it costs to scale it up
# "I want to chop 2-3 levels from the current collaboration stack's 6-level 'fast-path'."
* its self-test algorithm is not yet written, (though good diagnostic primitives are systematically identified)
# "I want to collaborate with people who only have web browsers -- they outnumber people with Jabber clients by millions."
* 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.


'''Finally, to help out''', please improve my writing, experiment with my ideas, and share this work with your friends!
= Design =


==Subpages==
[[Network2/Design]]
{{Special:PrefixIndex/{{PAGENAMEE}}/}}


= Analysis =


[[Network2/Dynamics]]
[[Category:Network2]]
[[Category:Subsystems]]

== Debugging Techniques ==

[[Network2/Diagnosis]]

== Self-Test Algorithm ==

[[Network2/Self-test]]

= Advice =

[[Network2/Advice]]

= Experiments =

[[Network2/Experiments/Dnshahs]]

[[Network2/Experiments/Openvpn]]

= Credits =

[[Network2/Credits]]

= Future Work =

[[Network2/Future work]]

Latest revision as of 04:15, 15 January 2010

Last updated: Michael Stone 04:15, 15 January 2010 (UTC) | paper version

Sugar's desired realtime collaboration experience can only be provided atop a robust and efficient network stack designed to accommodate automated diagnosis and standardized workarounds -- anything less only wastes students' and teachers' time and patience, contrary to our human interface guidelines.

This unfinished essay summarizes an attempt to work out a simple way to realize this sort of network experience, with existing software and hardware, while also demonstrating the sort of thinking which might help other parts of the system achieve the same standard of quality.

Quick links: the Paper : (finished/unfinished sections)

Personal goals...

  1. "I want to use familiar tools in my activities, -- like Twisted, curl, ssh, rsync, and email -- both under a tree, in a walled garden, and out on the public Internet, without modification or wrappers."
  2. "I want a design that has 20% fewer ways to fail, and that offers manual overrides for the failure modes that remain."
  3. "I want to chop 2-3 levels from the current collaboration stack's 6-level 'fast-path'."
  4. "I want to collaborate with people who only have web browsers -- they outnumber people with Jabber clients by millions."

Finally, to help out, please improve my writing, experiment with my ideas, and share this work with your friends!

Subpages