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) Display the flag names which are set, e.g., in the above example the output will be "bit1,bit3" (bit1=1, bit3=1) Use "__str__ = OptionFlags.str_flags" to have it as the default string representation
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) 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 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: 3294175829, ack: 3395739041, 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: 3294175829, ack: 3395739041, 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)
Referenced By
packet.internet.ipv4(3), packet.internet.ipv6(3).
14 February 2017 NFStest 2.1.5 tcp 1.5