TCP

Section: tcp 1.6 (3)
Updated: 19 July 2021
Index Return to Main Contents
 

NAME

packet.transport.tcp - 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.unpack(3), packet.utils(3)

 

BUGS

No known bugs.  

AUTHOR

Jorge Mora (mora@netapp.com)


 

Index

NAME
DESCRIPTION
CLASSES
class Flags(packet.utils.OptionFlags)
class Option(baseobj.BaseObj)
class Stream(baseobj.BaseObj)
class TCP(baseobj.BaseObj)
SEE ALSO
BUGS
AUTHOR

This document was created by man2html, using the manual pages.
Time: 16:08:34 GMT, July 19, 2021