The University of Western Ontario
Department of Computer Science
CS9668 Internet Algorithmics
- Roberto Solis-Oba
- Office: MC 417
- Email: firstname.lastname@example.org
- Office hours: Wednesday from 2:30 pm to 3:30 pm and Friday from 3:30 pm to 5:00 pm.
Assignment 1. Due date: October 21 during class.
Assignment 2. Due date: November 9.
Due date: December 2 during class.
- Project due date: December 14
- Organization of your report
- Presentations (December 8-13)
- cnaiapi library. Computer Networks and Internets API
Library (Written by Michael H. Evangelista)
- Cnaiapi library documentation
- readln auxiliary library
- compile script
- chat server
- chat client
- To compile the chat client and chat server, place all above files in the same
to compile the chat client and type
to compile the chat server. To run the server type
where portnumber is the port number that you
want to use for the server. To run the client type
chatclient serveraddress portnumber
where serveraddress is the symbolic address of the machine running the chat
server, and portnumber is the port number selected by the chat server. The
chat server must be started first.
Chat server and chat client in Java
- To compile the programs type
java ChatClient.java ChatServer.java
To run the chat server type
java ChatServer portnumber
To run the client type
java ChatClient serveraddress portnumber
where serveraddress is
the symbolic address
of the machine running the chat server, and portnumber is the port number selected by the
chat server. The chat server must be started first.
- You can see your marks using OWL.
Simulator for Synchronous Distributed Systems
There are two versions of the simulator. The first version does not have
a graphical user interface. When an algorithm is executed, the simulator
prints messages on the screen describing the different events taking place
during the execution of the algorithm. This version of the simulator and
instructions to use it can be found below.
The second version of the simulator is by Daniel Servos and it has a
nice graphical user interface. You need to read the instructions from
the first version of the simulator and the instructions below to be
able to use it.
- Simulator (simulator.jar) No GUI.
- How to use this version of the
Below you can find examples of distributed algorithms and the inputs needed
to run them on the simulator.
- Simulator (simulator.jar) With GUI.
- How to use the GUI.
Papers and notes
- Leader election algorithm (LeaderElection.java)
- Input file for the leader election algorithm
- Broadcasting algorithm (Broadcast.java)
- Input file for the broadcasting algorithm
- runsim script (for UNIX)
- runsim script (for Windows)
- compile java file (for UNIX)
- compile java file (for Windows)
Paper about name servers
Lecture notes on distributed algorithms by Hagit Attiya.
Paper about consistent hashing
Paper describing the architecture of a web crawler
Paper describing PageRank
Paper about the structure of the Web Graph
Paper describing the greedy dual size algorithm