Class Notes for Tuesday, November 17, 1998
(Pat Kelly)
Logical structure of programs - typically hierarchical
Computations are usually done by divide and conquer method - broken down into separate functions and subroutines
Large software system structures generally resemble the structures of the organizations that created them
In a hierarchical organization information is pushed up and down the communication lines
All nodes in the hierarchy are important to the functionality of the total system
Survivability has to do with preserving an organizations mission, or purpose
Concerns with survivability: How many nodes should be preserved to fulfill the mission?
How many can we lose?
Standard protections for survivability: security, redundancy, diversity, control system
Diversity involves different implementations for different copies
Control system involves observing the system, i.e. intrusion detection, and will try to remedy any problems
However, the control system represents a single point of failure. For example, even though the control system is placed outside of the Internet, it can be spoofed should certain nodes be taken control of
Other single points of failure include nodes, links / communication paths, and data repositories
Weve talked mainly about logical views. It is worth noting that logical and physical views are often mapped 1: 1
Lets play with an algorithm! Consider an unbounded number of nodes in an unbounded two-dimensional space. Each node executes the algorithm:
Moving on .
With n (unbounded) nodes you can remove any number and see no difference
We can take out (attack) any constant number and still be OK, BUT, if we take any fraction out were in trouble
The constant number of attacks - < O ( N ) - versus the number of proportional attacks - ³ O ( C )
O( logN ) is in between - its smaller than N and greater than C
As N increases arbitrarily, so does logN
Anything less than O (N) is acceptable
How much are these algorithms dependent on central control? Some are at the start with similar algorithms, but after that, none
With the Internet we dont like central control
With respect to nodes, the participants dont know when theyre successful
THE ANT CEMETARY ALGORITHM!!!!!!!!!!!!!!!!!! (Or, I will never look at another ant in the same way again)
Basically, all ants can move around and wander aimlessly until they encounter one of their dead brothers or sisters. They then pick up their fallen comrade and proceed to wander some more. If they are unfortunate enough to come across yet another stiff relative, they are obliged to drop the first carcass, pick up the new one, and wander some more. Somehow, eventually, this leads to all the dead ants winding up in the same pile. Cool. Id love to see this.
There is no central control involved here, no global visibility, no feedback involved
There is local visibility involved, which is exactly what we want in a network - that nodes will know their neighbors
(I personally question the no feedback issue - what if an ant runs into a buddy thats also carrying a dead ant? Do they just ignore it? I would think someone would say something, like, I couldnt help notice that youve got ole Jeremiah draped over your shoulder. Whats up?)
CHARACTERISTICS OF UNBOUNDED NETWORKS
THE END