Sponsor:

Your company here ā€” click to reach over 10,000 unique daily visitors

packet.transport.tcp - Man Page

TCP module

Description

Decode TCP layer.

RFC Ā 793 TRANSMISSION CONTROL PROTOCOL RFC 2018 TCP Selective Acknowledgment Options RFC 7323 TCP Extensions for High Performance

Classes

class Flags(packet.utils.OptionFlags)

TCP Option flags


Methods defined here:
---------------------

__str__ = str_flags(self)

class Option(baseobj.BaseObj)

Option object


Methods defined here:
---------------------

__init__(self, unpack)
Constructor which takes an unpack object as input

class Stream(baseobj.BaseObj)

TCP stream buffer object


Methods defined here:
---------------------

__init__(self, seqno)
Constructor

Initialize object's private data according to the arguments given.
Arguments can be given as positional, named arguments or a
combination of both.

add_fragment(self, data, seq)
Add fragment data to stream buffer

missing_fragment(self, seq)
Check if given sequence number is within a missing fragment

class TCP(baseobj.BaseObj)

TCP object

Usage:
    from packet.transport.tcp import TCP

    x = TCP(pktt)

Object definition:

TCP(
    src_port    = int, # Source port
    dst_port    = int, # Destination port
    seq_number  = int, # Sequence number
    ack_number  = int, # Acknowledgment number
    hl          = int, # Data offset or header length (32bit words)
    header_size = int, # Data offset or header length in bytes
    flags = Flags(     # TCP flags:
        rawflags = int,#   Raw flags
        FIN = int,     #   No more data from sender
        SYN = int,     #   Synchronize sequence numbers
        RST = int,     #   Synchronize sequence numbers
        PSH = int,     #   Push function. Asks to push the buffered
                       #     data to the receiving application
        ACK = int,     #   Acknowledgment field is significant
        URG = int,     #   Urgent pointer field is significant
        ECE = int,     #   ECN-Echo has a dual role:
                       #     SYN=1, the TCP peer is ECN capable.
                       #     SYN=0, packet with Congestion Experienced
                       #     flag in IP header set is received during
                       #     normal transmission
        CWR = int,     #   Congestion Window Reduced
        NS  = int,     #   ECN-nonce concealment protection
    ),
    window_size = int, # Window size
    checksum    = int, # Checksum
    urgent_ptr  = int, # Urgent pointer
    seq         = int, # Relative sequence number
    options = list,    # List of TCP options
    psize = int,       # Payload data size
    data = string,     # Raw data of payload if unable to decode
)


Methods defined here:
---------------------

__init__(self, pktt)
Constructor

Initialize object's private data.

        pktt:
    Packet trace object (packet.pktt.Pktt) so this layer has
    access to the parent layers.

__str__(self)
String representation of object

The representation depends on the verbose level set by debug_repr().
If set to 0 the generic object representation is returned.
If set to 1 the representation of the object is condensed:
    'TCP 708 -> 2049, seq: 0xc4592255, ack: 0xca66dda1, ACK,FIN'

If set to 2 the representation of the object also includes the
length of payload and a little bit more verbose:
    'src port 708 -> dst port 2049, seq: 0xc4592255, ack: 0xca66dda1, len: 0, flags: FIN,ACK'

See Also

baseobj(3), packet.application.dns(3), packet.application.krb5(3), packet.application.rpc(3), packet.transport.mpa(3), packet.unpack(3), packet.utils(3)

Bugs

No known bugs.

Author

Jorge Mora (mora@netapp.com)

Referenced By

packet.internet.ipv4(3), packet.internet.ipv6(3).

21 March 2023 NFStest 3.2 tcp 1.7