Upload
gwen-wilkins
View
218
Download
1
Embed Size (px)
Citation preview
Cybikos: wireless handheld computersCybikos specifications:•32-bit processor running at 11mhz•4mhz coprocessor for its radio transmitter•512k of RAM•512k of flash memory (used for storage)•160x100 grayscale LCD display•300 foot range on their wireless communications.
Why we picked Cybikos:•They’re very cheap•They have a full-featured operating system•They have built-in support for ad-hoc wireless networking•The compiler runs under Windows or Linux, any PC can transfer files to the Cybiko
The solution:Each computer keeps a table telling it who it’s connected to. Whenever the user tries to send data through my interface, the computer checks against the table to see if it should allow the data to go through. This check is transparent to the user.
What I did: The computers will only talk over the lines colored in blue
a
db
ca b c d
abcd
connections
- √ x x√ - √ √x √ - xx √ x -
a
b
c
d
a
db
c
The Problem:
I had a wireless network, but I needed to make it behave as if it were a wired network.
In a wireless network, any computer can communicate with any other computer. In a wired network, computers can only communicate if they have a wire running between them.
What I had: All the computers are interconnected. What I wanted: Only adjacent computers are connected.
Virtual network administration:I made one of the nodes an administrator -- not participating in the virtual network as a node, but overseeing the simulation.
Virtual network startup routine:1) The administrator figures out what the network
will look like2) The administrator gathers all the computers it
needs and tells them to wait for the network3) The admin sends its network table, which
contains everything the nodes need to know
Code structure:
My virtual topology is made of multiple layers of abstraction from the Cybiko OS.
Cybiko OS
Send and receive, names
Virtual topology
Protocol
Provides a familiar interface to send and receive functions and the ability to use strings for source and destination, instead of serial numbers.
Keeps a record of the network topology and enforces it. Handles key presses, checking for messages, and provides a basic GUI.
Decides how to handle messages from other nodes (by forwarding them on to another Cybiko, for example).
Are there system messages?
place it in the data queue
yes yes
React appropriately
used in my interface?
yes
Pass the key press to the
protocol code
no
Are there messages in
the data queue?
from another node?
key press? yes
no
Consume the message
no
no
Topology change?
load the new topology
Message from the
administrator?
Pass it to the protocol code
yes
yes
pass the data to the protocol code
no
yes
Message system:
The single most complicated part of the virtual topology is handling messages. The Cybiko OS sends an application messages for any event: key presses, system events (low battery, etc), and messages from other Cybikos. System messages, and key presses that affect the GUI need to be responded to quickly, and data from other virtual nodes needs to be processed by the protocol code.
The system I developed reacts immediately to local messages, and queues messages from remote machines in a separate queue to keep the system’s queue from overflowing.
Conclusion:We have three completed protocols, demonstrating flooding, distance vector, and link state routing, and the underlying system is complete. Having successfully tested the programs on students, the simulation of wired networks is finished. We have begun work simulating wireless and low-level networking situations.
Nathaniel Waisbrot Advisor: Professor Brad RichardsVassar College, Poughkeepsie NY
Project GoalCreate a system for simulating an arbitrary wired network atop hand-held wireless computers.
Initial requirements:•The system must be robust enough to support a wide variety of protocols
•The system must provide a layer of abstraction, so that the protocol code can be understood by people without knowledge of the system
The eventual goal of this project is to create a series of labs, suitable for supplementing an undergraduate computer science course. These labs will allow students to experience and experiment with both wired and wireless networking in a hands-on fashion. The results of work will be presented to the National Science Foundation, which funded this project through its Course, Curriculum and Laboratory Improvement program.
Requirements of a virtual network:There are certain things which all the nodes of a virtual network need to know before they can work together• What is the shape of the network? (i.e.: which nodes are
connected, and what is the distance or cost of the connection)• What are the names of the other nodes? (They can’t talk to
each other without knowing their names)• Is the network running? (If some of the nodes get their
information faster than others, they can’t start networking early)