Class TcpPacket.TcpHeader

    • Field Detail

      • logger

        private static final org.slf4j.Logger logger
      • SEQUENCE_NUMBER_OFFSET

        private static final int SEQUENCE_NUMBER_OFFSET
        See Also:
        Constant Field Values
      • ACKNOWLEDGMENT_NUMBER_OFFSET

        private static final int ACKNOWLEDGMENT_NUMBER_OFFSET
        See Also:
        Constant Field Values
      • ACKNOWLEDGMENT_NUMBER_SIZE

        private static final int ACKNOWLEDGMENT_NUMBER_SIZE
        See Also:
        Constant Field Values
      • DATA_OFFSET_AND_RESERVED_AND_CONTROL_BITS_OFFSET

        private static final int DATA_OFFSET_AND_RESERVED_AND_CONTROL_BITS_OFFSET
        See Also:
        Constant Field Values
      • DATA_OFFSET_AND_RESERVED_AND_CONTROL_BITS_SIZE

        private static final int DATA_OFFSET_AND_RESERVED_AND_CONTROL_BITS_SIZE
        See Also:
        Constant Field Values
      • IPV4_PSEUDO_HEADER_SIZE

        private static final int IPV4_PSEUDO_HEADER_SIZE
        See Also:
        Constant Field Values
      • IPV6_PSEUDO_HEADER_SIZE

        private static final int IPV6_PSEUDO_HEADER_SIZE
        See Also:
        Constant Field Values
      • 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
      • padding

        private final byte[] padding
    • Method Detail

      • calcChecksum

        private short calcChecksum​(java.net.InetAddress srcAddr,
                                   java.net.InetAddress dstAddr,
                                   byte[] header,
                                   byte[] payload)
      • 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
      • getPadding

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

        private java.util.List<byte[]> getRawFields​(boolean zeroInsteadOfChecksum)
      • buildRawData

        private byte[] buildRawData​(boolean zeroInsteadOfChecksum)
      • measureLengthWithoutPadding

        private int measureLengthWithoutPadding()