- java.lang.Object
-
- org.pcap4j.packet.AbstractPacket.AbstractHeader
-
- org.pcap4j.packet.TcpPacket.TcpHeader
-
- All Implemented Interfaces:
java.io.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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private booleanackprivate static intACKNOWLEDGMENT_NUMBER_OFFSETprivate static intACKNOWLEDGMENT_NUMBER_SIZEprivate intacknowledgmentNumberprivate shortchecksumprivate static intCHECKSUM_OFFSETprivate static intCHECKSUM_SIZEprivate static intDATA_OFFSET_AND_RESERVED_AND_CONTROL_BITS_OFFSETprivate static intDATA_OFFSET_AND_RESERVED_AND_CONTROL_BITS_SIZEprivate bytedataOffsetprivate static intDST_PORT_OFFSETprivate static intDST_PORT_SIZEprivate TcpPortdstPortprivate booleanfinprivate static intIPV4_PSEUDO_HEADER_SIZEprivate static intIPV6_PSEUDO_HEADER_SIZEprivate static org.slf4j.Loggerloggerprivate static intMIN_TCP_HEADER_SIZEprivate java.util.List<TcpPacket.TcpOption>optionsprivate static intOPTIONS_OFFSETprivate byte[]paddingprivate booleanpshprivate bytereservedprivate booleanrstprivate static intSEQUENCE_NUMBER_OFFSETprivate static intSEQUENCE_NUMBER_SIZEprivate intsequenceNumberprivate static longserialVersionUIDprivate static intSRC_PORT_OFFSETprivate static intSRC_PORT_SIZEprivate TcpPortsrcPortprivate booleansynprivate booleanurgprivate static intURGENT_POINTER_OFFSETprivate static intURGENT_POINTER_SIZEprivate shorturgentPointerprivate shortwindowprivate static intWINDOW_OFFSETprivate static intWINDOW_SIZE
-
Constructor Summary
Constructors Modifier Constructor Description privateTcpHeader(byte[] rawData, int offset, int length)privateTcpHeader(TcpPacket.Builder builder, byte[] payload)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private byte[]buildRawData(boolean zeroInsteadOfChecksum)protected java.lang.StringbuildString()This method builds the valuetoString()will return.private shortcalcChecksum(java.net.InetAddress srcAddr, java.net.InetAddress dstAddr, byte[] header, byte[] payload)protected intcalcHashCode()This method builds the valuehashCode()will return using the byte arraygetRawData()returns.protected intcalcLength()This method calculates the valuelength()will return by adding up the lengths of byte arrays in the listgetRawFields()returns.booleanequals(java.lang.Object obj)Indicates whether some other object is "equal to" this one using return values ofgetRawData().booleangetAck()intgetAcknowledgmentNumber()longgetAcknowledgmentNumberAsLong()shortgetChecksum()bytegetDataOffset()intgetDataOffsetAsInt()TcpPortgetDstPort()booleangetFin()java.util.List<TcpPacket.TcpOption>getOptions()byte[]getPadding()booleangetPsh()protected java.util.List<byte[]>getRawFields()Returns a list of byte arrays which represents this header's fields.private java.util.List<byte[]>getRawFields(boolean zeroInsteadOfChecksum)bytegetReserved()booleangetRst()intgetSequenceNumber()longgetSequenceNumberAsLong()TcpPortgetSrcPort()booleangetSyn()booleangetUrg()shortgetUrgentPointer()intgetUrgentPointerAsInt()shortgetWindow()intgetWindowAsInt()private intmeasureLengthWithoutPadding()-
Methods inherited from class org.pcap4j.packet.AbstractPacket.AbstractHeader
buildHexString, buildRawData, getRawData, hashCode, length, toHexString, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.pcap4j.packet.Packet.Header
getRawData, length
-
-
-
-
Field Detail
-
logger
private static final org.slf4j.Logger logger
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
SRC_PORT_OFFSET
private static final int SRC_PORT_OFFSET
- See Also:
- Constant Field Values
-
SRC_PORT_SIZE
private static final int SRC_PORT_SIZE
- See Also:
- Constant Field Values
-
DST_PORT_OFFSET
private static final int DST_PORT_OFFSET
- See Also:
- Constant Field Values
-
DST_PORT_SIZE
private static final int DST_PORT_SIZE
- See Also:
- Constant Field Values
-
SEQUENCE_NUMBER_OFFSET
private static final int SEQUENCE_NUMBER_OFFSET
- See Also:
- Constant Field Values
-
SEQUENCE_NUMBER_SIZE
private static final int SEQUENCE_NUMBER_SIZE
- 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
-
WINDOW_OFFSET
private static final int WINDOW_OFFSET
- See Also:
- Constant Field Values
-
WINDOW_SIZE
private static final int WINDOW_SIZE
- See Also:
- Constant Field Values
-
CHECKSUM_OFFSET
private static final int CHECKSUM_OFFSET
- See Also:
- Constant Field Values
-
CHECKSUM_SIZE
private static final int CHECKSUM_SIZE
- See Also:
- Constant Field Values
-
URGENT_POINTER_OFFSET
private static final int URGENT_POINTER_OFFSET
- See Also:
- Constant Field Values
-
URGENT_POINTER_SIZE
private static final int URGENT_POINTER_SIZE
- See Also:
- Constant Field Values
-
OPTIONS_OFFSET
private static final int OPTIONS_OFFSET
- See Also:
- Constant Field Values
-
MIN_TCP_HEADER_SIZE
private static final int MIN_TCP_HEADER_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
-
options
private final java.util.List<TcpPacket.TcpOption> options
-
padding
private final byte[] padding
-
-
Constructor Detail
-
TcpHeader
private TcpHeader(byte[] rawData, int offset, int length) throws IllegalRawDataException- Throws:
IllegalRawDataException
-
TcpHeader
private TcpHeader(TcpPacket.Builder builder, byte[] payload)
-
-
Method Detail
-
calcChecksum
private short calcChecksum(java.net.InetAddress srcAddr, java.net.InetAddress dstAddr, byte[] header, byte[] payload)
-
getSrcPort
public TcpPort getSrcPort()
- Specified by:
getSrcPortin interfaceTransportPacket.TransportHeader- Returns:
- Source port
-
getDstPort
public TcpPort getDstPort()
- Specified by:
getDstPortin interfaceTransportPacket.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 java.util.List<TcpPacket.TcpOption> getOptions()
- Returns:
- options
-
getPadding
public byte[] getPadding()
- Returns:
- padding
-
getRawFields
protected java.util.List<byte[]> getRawFields()
Description copied from class:AbstractPacket.AbstractHeaderReturns a list of byte arrays which represents this header's fields. This method is called bycalcLength()andbuildRawData().- Specified by:
getRawFieldsin classAbstractPacket.AbstractHeader- Returns:
- a list of byte arrays which represents this header's fields
-
getRawFields
private java.util.List<byte[]> getRawFields(boolean zeroInsteadOfChecksum)
-
buildRawData
private byte[] buildRawData(boolean zeroInsteadOfChecksum)
-
measureLengthWithoutPadding
private int measureLengthWithoutPadding()
-
calcLength
protected int calcLength()
Description copied from class:AbstractPacket.AbstractHeaderThis method calculates the valuelength()will return by adding up the lengths of byte arrays in the listgetRawFields()returns.- Overrides:
calcLengthin classAbstractPacket.AbstractHeader- Returns:
- a calculated length
-
buildString
protected java.lang.String buildString()
Description copied from class:AbstractPacket.AbstractHeaderThis method builds the valuetoString()will return.- Overrides:
buildStringin classAbstractPacket.AbstractHeader- Returns:
- a string representation of this object
-
equals
public boolean equals(java.lang.Object obj)
Description copied from class:AbstractPacket.AbstractHeaderIndicates whether some other object is "equal to" this one using return values ofgetRawData(). This method should be overridden so that it does more strict comparisons more efficiently.- Overrides:
equalsin classAbstractPacket.AbstractHeader
-
calcHashCode
protected int calcHashCode()
Description copied from class:AbstractPacket.AbstractHeaderThis method builds the valuehashCode()will return using the byte arraygetRawData()returns. This method may be better to be overridden for performance reason.- Overrides:
calcHashCodein classAbstractPacket.AbstractHeader- Returns:
- a calculated hash code value for the object
-
-