Home >  T.A >  cs179 ( Fall 2002 ) >  FAQ

  Frequently Asked Questions
Print this Page   
 [  Main ::   Calendar  ::   Groups  ::   Readings  ::   Final Binder  ::   Topology Generator  ::   FAQ]

Since this is a group project, my intention is to give you detailed or step-by-step description on how to design/implement the various components of the protocol. This is your job! I will simply provide you with some general directions as well as pointers to various related tools so that you can grasp the project and accomplish it.

  1. What should we do in the Design phase?

    First of all read the paper and understand it thoroughly!
    Have you done it?....ok you can continue

    The Design phase is actually one of the most important parts since in this phase you need to "imagine" how things are going to work in your real implementation. It is quite possible that you will have to revisit this phase, during the implementation phase, and reconsider some of your initial assumptions and design choices. It is important though to have a solid design in order to make sure that things are going to work during the implementation phase. In order to help yourselves in the description phase consider how real application layer protocols are described. For instance you could start by having a look at RFC1939, Post Office Protocol - Version 3. Have a look at what kind of things are described in a protocol. Usually a protocol doesn't provide a detailed description of how somebody should implement it. It rather provides the "flow of the protocol" or in other words the kind of actions that take place during the execution of it.

    I would recommend you to follow the guidelines of an existing protocol, such as pop3, telnet, etc in order to describe your own version of the Narada protocol. Usually a protocol can be described adequately in a ASCII-only version so you don't need any fancy figures or colors.


  2. Can we enhance the Narada Protocol with new features?
    You can enhance the Narada Protocol with new features such as Security(e.g Identification), QoS as long as the core of the protocol remains unaffected. Of course you should only proceed to this phase if you are done with the design and implementation of all the basic operations of the protocol.


  3. What kind of programming language should we use for implementation phase?
    You may use any language you prefer as long as it of course provides support for networking (i.e. socket programming). You should already be familiar with Socket Programming in C/C++ since you toke cs166. Java is also ideal for Network Programming. If you already know Java basics then I would recommend you to go with it.

    C/C++ online guide: http://www.ecst.csuchico.edu/~beej/guide/net/

    Java Network Programming FAQ: http://www.davidreilly.com/java/java_network_programming/
    A Java UDP sockets tutorial is available at http://java.sun.com/docs/books/tutorial/networking/datagrams/index.html
    Book w/ java networking examples : Computer Networking: A Top-Down Approach Featuring the Internet by James F. Kurose and Keith W. Ross.


  4. What kind of topology should we use for our simulation?
    The paper indicates 3 kinds of topologies.
    1. Waxman Model of 1024 nodes (routers) and 3145 links
    2. Mapnet 1070 routers and 3170 links
    3. ASMap (Autonomous System Map) of 1024 routers and 3037 links

    Other possible topologies might be:
    1. Random with bounded Outdegree, where each nodes connects to min=0 and max=K random nodes. The only constrain is that each node connects to   log(base=2)N nodes, where N is the total number of nodes. Having this constrain your graph won't be disconnected (partitioned in 2 or more segments). Eg if N=128 you need to have K=7
    2. Power-Law, In simple words "a few hosts have a high-degree (connected to many others) and many hosts have small-degree".
    3. The ASMap is in fact be Power-Law (according to the following reference.
      Michalis Faloutsos, Petros Faloutsos, and Christos Faloutsos. On power-law relationships of the internet topology. In SIGCOMM, pages 251-262, 1999.


  5. What kind of application should we run on top of the protocol in order to illustrate it?
    For the moment suppose that you want to implement something like a Chat-Room for K users. More specifically suppose that a user sits in front of a terminal and types some text. Next his text is delivered by the multicast algorithm to K-1 other receivers. It would be nice if you could automatically visualize the route selected at each execution. You could also come up with any other application you want, as long as it illustrates the purpose of the protocol.


  6. How to visualize (get a picture of) a network topology graph?
    There are quite a few tools for visualizing network graph topologies. GraphViz is such a tool. It is an open source graph drawing software that runs under most major platforms including Win32 and Unix platforms. LEDA is another great tool which is unfortunately not publicly available anymore.



Top