Next: 8.2 Design Issues
Up: 8 Design Constraints and
Previous: 8 Design Constraints and
  Contents
Subsections
This section describes how the constraints presented in the SRS are addressed
in the design.
The only performance constraints in the project concern the running of FCM.
While it's impossible to design for a precise performance criteria, it is
possible to have a design which is close to optimal.
This is how the design caters for the performance constraints [SRS Reference
4.2.1]:
- Clearing of the global hash table in the Receiver module will be
performed only once every
packets, where
will be determined
empirically. This choice can be made, because the connections will not
change for every packet, since at most one connection can be added or
removed for every packet.
- The checksum will not be checked and recalculated for every packet
which passes through the modules. Instead, any changes made will have
the corresponding change made to the checksum.
- Testing will be performed to ensure the product meets the
performance targets. If it does not, further optimisations will be
made, or if it proves impossible, the targets may have to be
renegotiated.
The design of FCM:
- Contains two modules which are to be implemented
as standard Linux kernel modules [SRS Reference: 4.2.2.1]
- Will require no modification to existing Linux kernel code; that is,
the two FCM kernel modules are designed to be stand-alone modules [SRS
Reference 4.2.2.2]
- Uses the Client's window sizing algorithm on the Receiver [SRS
Reference 4.2.2.3]
- Will be able to be implemented using the C programming language, but
is not language specific [SRS Reference 4.2.2.4]
The design of SAM:
- Is written to be implemented using the language Python, which may
easily be installed
under Debian 3.0 (woody) [SRS Reference 4.2.2.5]
- When implemented in Python, will be able to be made into a Debian
package, which will include all source code of SAM, and also any extra
necessary packages to run SAM [SRS Reference 4.2.2.6, 4.2.2.7]
The design of RAMI is created under the assumptions that the user has a
processor capable of running the Linux kernel 2.4.18, and which also has access
to a network. During implementation, a processor with the Linux kernel 2.4.18
which has access to a network will be used. [SRS Reference 4.2.3]
Next: 8.2 Design Issues
Up: 8 Design Constraints and
Previous: 8 Design Constraints and
  Contents