Simple Module TelnetApp

File: Applications/TCPApp/TelnetApp.ned

C++ definition: click here

Models Telnet sessions with a specific user behaviour. The server app should be TCPGenericSrvApp. Compatible with both IPv4 and IPv6.

NOTE: This module emulates a very specific user behaviour, and as such, it should be viewed as an example rather than a generic Telnet model. If you want to model realistic Telnet traffic, you are encouraged to gather statistics from packet traces on a real network, and write your model accordingly.

Usage diagram:

The following diagram shows usage relationships between modules, networks and channels. Unresolved module (and channel) types are missing from the diagram. Click here to see the full picture.

TelnetApp

Parameters:

Name Type Description
address string

may be left empty ("")

port numeric const

port number to listen on

connectAddress string

server address (may be symbolic)

connectPort numeric const

port number to connect to

startTime numeric

time first session begins

numCommands numeric

user types this many commands in a session

commandLength numeric

commands are this many characters (plus Enter)

keyPressDelay numeric

delay between keypresses

commandOutputLength numeric

commands produce this much output (bytes)

thinkTime numeric

user waits this much before starting to type new command

idleInterval numeric

time gap between sessions

reconnectInterval numeric

if connection breaks, user waits this much before trying to reconnect

Gates:

Name Direction Description
tcpIn input
tcpOut output

Source code:

simple TelnetApp
    parameters:
        address: string, // may be left empty ("")
        port: numeric const, // port number to listen on
        connectAddress: string,  // server address (may be symbolic)
        connectPort: numeric const, // port number to connect to
        startTime: numeric, // time first session begins
        numCommands: numeric, // user types this many commands in a session
        commandLength: numeric, // commands are this many characters (plus Enter)
        keyPressDelay: numeric, // delay between keypresses
        commandOutputLength: numeric, // commands produce this much output (bytes)
        thinkTime: numeric, // user waits this much before starting to type new command
        idleInterval: numeric, // time gap between sessions
        reconnectInterval;  // if connection breaks, user waits this much before trying to reconnect
    gates:
        in: tcpIn;
        out: tcpOut;
endsimple