TCPSpoof

Package: inet.transportlayer.tcp_common

TCPSpoof

simple module

Sends fabricated TCP packets. This is a base implementation, you'll probably have to customize it in C++ according to what you want to send and when you want to send it.

Compatible with both IPv4 (IPv4) and IPv6.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Parameters

Name Type Default value Description
srcAddress string ""

local address; may be left empty ("")

destAddress string ""

destination address

srcPort int

local port number

destPort int

destination port number

seqNo int

sequence number (-1 for TCP ISS)

isSYN bool true

whether to set SYN bit on packet

t double

simulation time to send at

Properties

Name Value Description
display i=block/square

Gates

Name Direction Size Description
ipOut output
appIn [ ] input

Not used!

ipIn input

Not used!

appOut [ ] output

Not used!

Signals

Name Type Unit
sentPk cPacket

Statistics

Name Title Source Record Unit Interpolation Mode
sentPk packets sent sentPk count, sum(packetBytes), vector(packetBytes) none

Source code

//
// Sends fabricated TCP packets. This is a base implementation,
// you'll probably have to customize it in C++ according to
// what you want to send and when you want to send it.
//
// Compatible with both IPv4 (~IPv4) and ~IPv6.
//
simple TCPSpoof like ITCP
{
    parameters:
        string srcAddress = default("");  // local address; may be left empty ("")
        string destAddress = default(""); // destination address
        int srcPort; // local port number
        int destPort; // destination port number
        int seqNo; // sequence number (-1 for TCP ISS)
        bool isSYN = default(true); // whether to set SYN bit on packet
        double t @unit("s"); // simulation time to send at
        @display("i=block/square");
        @signal[sentPk](type=cPacket);
        @statistic[sentPk](title="packets sent"; source=sentPk; record=count,"sum(packetBytes)","vector(packetBytes)"; interpolationmode=none);

    gates:
        output ipOut @labels(TCPSegment,IPv4ControlInfo/down,IPv6ControlInfo/down);

        input appIn[] @labels(TCPCommand/down); // Not used!
        input ipIn @labels(TCPSegment,IPv4ControlInfo/up,IPv6ControlInfo/up); // Not used!
        output appOut[] @labels(TCPCommand/up); // Not used!
}

File: src/inet/transportlayer/tcp_common/TCPSpoof.ned