Class TcpPacket.TcpHeader

All Implemented Interfaces:
Serializable, Packet.Header, TransportPacket.TransportHeader
Enclosing class:
TcpPacket

public static final class TcpPacket.TcpHeader extends AbstractPacket.AbstractHeader implements TransportPacket.TransportHeader
Since:
pcap4j 0.9.12
See Also:
  • Field Details

    • logger

      private static final org.slf4j.Logger logger
    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • SRC_PORT_OFFSET

      private static final int SRC_PORT_OFFSET
      See Also:
    • SRC_PORT_SIZE

      private static final int SRC_PORT_SIZE
      See Also:
    • DST_PORT_OFFSET

      private static final int DST_PORT_OFFSET
      See Also:
    • DST_PORT_SIZE

      private static final int DST_PORT_SIZE
      See Also:
    • SEQUENCE_NUMBER_OFFSET

      private static final int SEQUENCE_NUMBER_OFFSET
      See Also:
    • SEQUENCE_NUMBER_SIZE

      private static final int SEQUENCE_NUMBER_SIZE
      See Also:
    • ACKNOWLEDGMENT_NUMBER_OFFSET

      private static final int ACKNOWLEDGMENT_NUMBER_OFFSET
      See Also:
    • ACKNOWLEDGMENT_NUMBER_SIZE

      private static final int ACKNOWLEDGMENT_NUMBER_SIZE
      See Also:
    • DATA_OFFSET_AND_RESERVED_AND_CONTROL_BITS_OFFSET

      private static final int DATA_OFFSET_AND_RESERVED_AND_CONTROL_BITS_OFFSET
      See Also:
    • DATA_OFFSET_AND_RESERVED_AND_CONTROL_BITS_SIZE

      private static final int DATA_OFFSET_AND_RESERVED_AND_CONTROL_BITS_SIZE
      See Also:
    • WINDOW_OFFSET

      private static final int WINDOW_OFFSET
      See Also:
    • WINDOW_SIZE

      private static final int WINDOW_SIZE
      See Also:
    • CHECKSUM_OFFSET

      private static final int CHECKSUM_OFFSET
      See Also:
    • CHECKSUM_SIZE

      private static final int CHECKSUM_SIZE
      See Also:
    • URGENT_POINTER_OFFSET

      private static final int URGENT_POINTER_OFFSET
      See Also:
    • URGENT_POINTER_SIZE

      private static final int URGENT_POINTER_SIZE
      See Also:
    • OPTIONS_OFFSET

      private static final int OPTIONS_OFFSET
      See Also:
    • MIN_TCP_HEADER_SIZE

      private static final int MIN_TCP_HEADER_SIZE
      See Also:
    • IPV4_PSEUDO_HEADER_SIZE

      private static final int IPV4_PSEUDO_HEADER_SIZE
      See Also:
    • IPV6_PSEUDO_HEADER_SIZE

      private static final int IPV6_PSEUDO_HEADER_SIZE
      See Also:
    • srcPort

      private final TcpPort srcPort
    • dstPort

      private final TcpPort dstPort
    • sequenceNumber

      private final int sequenceNumber
    • acknowledgmentNumber

      private final int acknowledgmentNumber
    • dataOffset

      private final byte dataOffset
    • reserved

      private final byte reserved
    • urg

      private final boolean urg
    • ack

      private final boolean ack
    • psh

      private final boolean psh
    • rst

      private final boolean rst
    • syn

      private final boolean syn
    • fin

      private final boolean fin
    • window

      private final short window
    • checksum

      private final short checksum
    • urgentPointer

      private final short urgentPointer
    • options

      private final List<TcpPacket.TcpOption> options
    • padding

      private final byte[] padding
  • Constructor Details

  • Method Details

    • calcChecksum

      private short calcChecksum(InetAddress srcAddr, InetAddress dstAddr, byte[] header, byte[] payload)
    • getSrcPort

      public TcpPort getSrcPort()
      Specified by:
      getSrcPort in interface TransportPacket.TransportHeader
      Returns:
      Source port
    • getDstPort

      public TcpPort getDstPort()
      Specified by:
      getDstPort in interface TransportPacket.TransportHeader
      Returns:
      Destination port
    • getSequenceNumber

      public int getSequenceNumber()
      Returns:
      sequenceNumber
    • getSequenceNumberAsLong

      public long getSequenceNumberAsLong()
      Returns:
      sequenceNumber
    • getAcknowledgmentNumber

      public int getAcknowledgmentNumber()
      Returns:
      acknowledgmentNumber
    • getAcknowledgmentNumberAsLong

      public long getAcknowledgmentNumberAsLong()
      Returns:
      acknowledgmentNumber
    • getDataOffset

      public byte getDataOffset()
      Returns:
      dataOffset
    • getDataOffsetAsInt

      public int getDataOffsetAsInt()
      Returns:
      dataOffset
    • getReserved

      public byte getReserved()
      Returns:
      reserved
    • getUrg

      public boolean getUrg()
      Returns:
      urg
    • getAck

      public boolean getAck()
      Returns:
      ack
    • getPsh

      public boolean getPsh()
      Returns:
      psh
    • getRst

      public boolean getRst()
      Returns:
      rst
    • getSyn

      public boolean getSyn()
      Returns:
      syn
    • getFin

      public boolean getFin()
      Returns:
      fin
    • getWindow

      public short getWindow()
      Returns:
      window
    • getWindowAsInt

      public int getWindowAsInt()
      Returns:
      window
    • getChecksum

      public short getChecksum()
      Returns:
      checksum
    • getUrgentPointer

      public short getUrgentPointer()
      Returns:
      urgentPointer
    • getUrgentPointerAsInt

      public int getUrgentPointerAsInt()
      Returns:
      urgentPointer
    • getOptions

      public List<TcpPacket.TcpOption> getOptions()
      Returns:
      options
    • getPadding

      public byte[] getPadding()
      Returns:
      padding
    • getRawFields

      protected List<byte[]> getRawFields()
      Description copied from class: AbstractPacket.AbstractHeader
      Returns a list of byte arrays which represents this header's fields. This method is called by calcLength() and buildRawData().
      Specified by:
      getRawFields in class AbstractPacket.AbstractHeader
      Returns:
      a list of byte arrays which represents this header's fields
    • getRawFields

      private List<byte[]> getRawFields(boolean zeroInsteadOfChecksum)
    • buildRawData

      private byte[] buildRawData(boolean zeroInsteadOfChecksum)
    • measureLengthWithoutPadding

      private int measureLengthWithoutPadding()
    • calcLength

      protected int calcLength()
      Description copied from class: AbstractPacket.AbstractHeader
      This method calculates the value length() will return by adding up the lengths of byte arrays in the list getRawFields() returns.
      Overrides:
      calcLength in class AbstractPacket.AbstractHeader
      Returns:
      a calculated length
    • buildString

      protected String buildString()
      Description copied from class: AbstractPacket.AbstractHeader
      This method builds the value toString() will return.
      Overrides:
      buildString in class AbstractPacket.AbstractHeader
      Returns:
      a string representation of this object
    • equals

      public boolean equals(Object obj)
      Description copied from class: AbstractPacket.AbstractHeader
      Indicates whether some other object is "equal to" this one using return values of getRawData(). This method should be overridden so that it does more strict comparisons more efficiently.
      Overrides:
      equals in class AbstractPacket.AbstractHeader
    • calcHashCode

      protected int calcHashCode()
      Description copied from class: AbstractPacket.AbstractHeader
      This method builds the value hashCode() will return using the byte array getRawData() returns. This method may be better to be overridden for performance reason.
      Overrides:
      calcHashCode in class AbstractPacket.AbstractHeader
      Returns:
      a calculated hash code value for the object