Next: 3.2 SAM
Up: 3 Functional Requirements
Previous: 3 Functional Requirements
  Contents
Subsections
3.1 FCM
FCM will be broken down further into two components, which will each
run on a different host. Hosts running FCM are either Routers or Receivers.
The following functionality will be provided by FCM:
The component of FCM which runs on a Router will have the following
functionality:
- If an incoming packet is being sent on the low bandwidth network
interface and is a valid
TCP packet, then a representation of
will be transmitted to the
Receiver. However, if this will cause the packet to become larger than the
interface's maximum data unit, no modification should occur.
The value of
is the queue size after the packet is sent, which
is the number of bytes waiting to be transmitted across the
low bandwidth network link by the Router.
The Receiver in this case is the destination of the original TCP packet.
- All packets which have been altered by FCM and were originally
valid TCP/IP packets shall be valid
TCP/IP packets as specified by reference [7], including the
extensions in reference [5].
- Packets which have an invalid TCP or IP checksum should not be
modified in such a way that their checksum is made correct.
- The user must specify the output rate
of the low
bandwidth link. This will be specified in units of kilobits/sec.
- The user may optionally choose to specify values for
the following constants used in the window sizing algorithm; any not
selected will use the given default values:
- A constant which determines how sensitive the queue
size is to the number of streams passing through it. Default
value is 10.
- The queue size above which
becomes
non-zero, specified in bytes. Default value is 20000 bytes.
- Create Network Log
Researchers must be able to collect data from the Router module to be
analysed by SAM afterwards. The following functions are
required:
- Choose file
The user must specify a filename to dump records to.
The format of the file
will be known as NETLOG and is the same as that created
and loaded by SAM.
- Logged Fields
The following fields will be recorded in every Network
Log:
- Timestamp
- Queue size, in bytes
- Queue size, in packets
- Number of packets transferred since last dump
- Logging Interval
The user must specify the interval at which data is to be
dumped into the network log file.
After the user-specified amount of time has passed since
the last dump, data about the packets (as specified above) will
be logged.
Allowed time intervals are 100 ms and
any multiple of 100 ms, up to 1 hour.
- Duration
The user must specify how long the log will last. The maximum
time for any log is 24 hours.
- The user must be able to install and uninstall the Router part of
FCM to and from the kernel.
The component of FCM which runs on a Receiver will have the following core
functionality:
- If a TCP packet containing a representation of
(as produced
by the Router functionality)
has been received, then any TCP packets for new TCP connections
originating at the
Receiver shall have their TCP Window Size calculated by the
algorithm specified in the Client's paper in section 11.
Otherwise the standard
window size calculated by the Linux kernel will be used.
- A record will be kept of the current representation of
on
the Router.
- Upon receiving a packet containing a representation of
, the
local record
of this value will be updated to the value received.
- The user may optionally choose to specify values for
the following constants used in the window sizing algorithm; any not
selected will use the given default value:
- A constant which affects the rate at which the
window increases. It has units of Bytes/sec. Default
value is 1.
- A smoothing factor, normalised to the interval
, but given to the module on the interval
as an
integer. Default value is 25.
- PS_THRESH - A constant used to determine when to end the
prime start phase of the window size updating. Default value is -0.2.
- All packets which have been altered by FCM and were originally
valid TCP/IP packets shall be valid
TCP/IP packets as specified by reference [7].
- The user must be able to install and uninstall the Receiver part of
FCM to and from the kernel.
- Window size must be correctly calculated for connections making use
of the window scaling extension specified by reference [5].
Next: 3.2 SAM
Up: 3 Functional Requirements
Previous: 3 Functional Requirements
  Contents