Version 1.2 9/17/98

Software Requirements Specification of Protocol Stack Attachable Network Simulator (PSANS)


  1. Introduction
    1. Purpose:
      The purpose of this SRS is to help protocol developers understand and use the PSANS tool.
    2. Scope:
      The PSANS tool is being developed as a testing platform for protocol developers. It is meant for CIS725 students and anyone who wants to learn how to develop protocols as well as study existing protocols. The developer, having implemented their own protocol, can attach their stack to the NCARD module.
    3. Definitions:
      • PSANS - Protocol Attachable Network Simulator
      • NCARD - The Network Card Simulator for the PSANS tool
      • NCILIB - The Network Card Simulator Interface Library
      • Bus/Broadcast Network - A network environment where a single channel is shared by multiple machines.
      • Computer Networks - One or more computers which are connected together to allow for sharing of data and/or resources.
      • Physical Layer - A layer of the protocol stack, which deals with the transmission of raw data bits over a network connection.
      • Physical Medium - The actual fiber and hardware which connects nodes of the network.
      • Point-to-Point Network - A network environment made up of many cables, where each wire connects two machines.
    4. References:
      • Comer, Douglas E, Internetworking with TCP/IP. Vol. 1. 3d ed. New Jersey: Prentice Hall, 1997.
      • Fitzgerald, Jerry, and Alan Dennis, Business Data Communications and Networking. 5th ed. New York: John Wiley & Sons, Inc., 1996
      • Holzman, Gerard J, Design and Validation of Computer Protocols. New Jersey: Prentice Hall, 1991.
      • Hughes, Larry, Introduction to Data Communications: A Practical Approach. Maine: Jones and Bartlett, 1997.
      • Tanenbaum, Andrew S, Computer Networks. 2d ed. New Jersey: Prentice Hall, 1988.
    5. Overview:
      The remainder of this document will explain the use and requirements of the PSANS tool.
  2. Overall Description
    1. Project Perspective:
      PSANS is a non-graphical tool consisting of 2 parts: the NCARD module, and the protocol stack of the user, including calls from the NCILIB.
    2. Project Functions:
      The main function of the PSANS tool is to provide an educational tool, which allows protocol developers to test their stack out on a simulated physical layer of a network environment.
      • The developer launches the NCARD module.
      • The developer then launches their protocol stack module (one copy for each node on the network).
      • The developers protocol stack "attaches" to the NCARD module using the NCILIB's attach command.
      • The developers protocol stack can then send or receive data through the NCARD module utilizing the NCILIB's send or receive commands.
    3. User Characteristics:
      The initial target user of the PSANS tool is a student in CIS725, though the use of the tool is not limited to this group. Users of the tool are expected to be programmers with a firm understanding of network protocols.
    4. Constraints:
      The PSANS tool is being developed purely for educational use. It is meant as a tool for understanding and exercising the theories of protocol development. The system is not meant for commercial use of any kind.
    5. Assumptions and Dependencies:
      The PSANS tool is being developed for the Unix operating system. The system will require the use of multiple nodes to create the network environment. The user, therefore, will need access to multiple terminals in one location. Alternatively, if a workstation is available, the user may have multiple windows open to achieve the same results.

      There will be two differnet versions of the PSANS tool. The first is a compiled version written in C++. This must be run on the Unix platform. The second version will be a JAVA version. This version will be able to run on any machine which is capable of running a JAVA program.

      At the current time, there is a prototype, PStack, which has been written for PSANS. It is currently in use by the 725 students. Based on their results, the direction of this project may change.
    6. Apportioning of Requirements:
      Future Releases of the PSANS tool will include a C++ version of the NCARD module, as well as the NCILIB, which is written using Winsock. This will allow developers the choice of developing their stack on a UNIX system, PC system, or a combination of the two.
  3. Specific Requirements
  • Appendix 1:

    #This is a sample topology.dat file for PSANS
    #Loss Probability
    #Reorder Probability
    #end of section marker
    #Total number of nodes
    # Node entries
    # Format: node send_buffer_size receive_buffer_size
    A 10 25
    B 10 25
    C 10 25
    D 10 25
    #Total Number of Buses
    #Each Bus
    #Format: Bus_Number Bus_Length
    1 100
    #Total links for node
    #Format: Number Type_of_Connection
    2 PTP
    #Each Link
    #Format: Start_Node End_Node Line_number Capacity
    A B 0 10
    A C 1 15
    1 BUS
    #Bus entry
    #Format: Node Line_Number Bus_Number
    A 2 1
    3 PTP
    B A 2 25
    B C 1 30
    B D 0 20
    1 BUS
    B 3 1
    3 PTP
    C B 1 5
    C A 0 8
    C D 2 12
    1 BUS
    D 3 1
    2 PTP
    D B 1 33
    D C 0 16