Enum NetStat.BusyPort.TcpState
- java.lang.Object
-
- java.lang.Enum<NetStat.BusyPort.TcpState>
-
- org.terracotta.utilities.test.net.NetStat.BusyPort.TcpState
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Comparable<NetStat.BusyPort.TcpState>
- Enclosing class:
- NetStat.BusyPort
public static enum NetStat.BusyPort.TcpState extends java.lang.Enum<NetStat.BusyPort.TcpState>
TCP Connection states.This class maps the states observed by the utilities used to examine the TCP connections on the platform to a common form. Where the state maps to a state described in RFC-793 Transmission Control Protocol, that state name is used for the enumeration constant.
The following diagram shows the usual TCP state transitions. For a discussion of this diagram, see RFC-793 Transmission Control Protocol and TCP/IP Illustrated, Volume 1, 1ed: The Protocols by W. Richard Stevens.


- The CLOSE_WAIT and FIN_WAIT_2 states are paired -- one side of the connection will be in CLOSE_WAIT and the other in FIN_WAIT_2. Until the application in CLOSE_WAIT actually closes the connection, the connection remains with neither socket endpoint being available for re-use. (According to (Stevens 1994), some TCP implementations will move a socket in FIN_WAIT_2 to CLOSED after 10+ minutes of idle time.)
- The TIME_WAIT state is applied to a newly closed connection and is used to prevent immediate re-use of the socket to allow delivery of potentially delayed packets. The amount of time the socket remains in TIME_WAIT varies by implementation (and potentially configuration) but is commonly 2 minutes.
Implementation Notes
Mac OS X
Thenettoputility used for Mac OS X is closed source but source for a variant (netbottom.c) is available. The TCP state constants returned bynettopare neither documented nor listed in an available source file. The values used in this enum are presumed from the known values and the names of external references, in the form ofkNStatSrcTcpStateXxxxxxxxxx, made bynetbottom.c.- See Also:
-
Get-NetTCPConnection,
MSFT_NetTCPConnection class,
lsof/dialects/linux/dsock.c,
apple/darwin-xnu/bsd/netinet/tcp_fsm.h,
netbottom.cSources, "Stevens, W. Richard (1994) TCP/IP Illustrated, Volume 1, 1ed: The Protocols, Addison-Wesley", RFC-793 Transmission Control Protocol
-
-
Enum Constant Summary
Enum Constants Enum Constant Description BOUNDAwaiting applicationlisten,connect,accept, orclosecall followingbind(lsof).CLOSEAwaiting applicationclosefollowing a socket/connection error (lsof/Linux).CLOSE_WAITAwaiting application-level connection termination (socket close) (RFC-793).CLOSEDNot connected (RFC-793).CLOSINGAwaiting connection termination request acknowledgement from remote (RFC-793).DELETE_TCBIndicates the control block representing the TCP connection is being deleted (MSFT_NetTCPConnection).ESTABLISHEDAn "open" TCP connection over which data may be transferred (RFC-793).FIN_WAIT_1Awaiting connection termination request or acknowledgement of sent connection termination request from remote (RFC-793).FIN_WAIT_2Awaiting connection termination request from remote (RFC-793).IDLEAwaiting applicationbind,connect, orcloseon socket (lsof).LAST_ACKAwaiting acknowledgement of connection termination request sent to remote (RFC-793).LISTENAwaiting a connection request (RFC-793).SYN_RECEIVEDAwaiting connection request acknowledgement after having sent and received a connection request (RFC-793).SYN_SENTAwaiting a matching connection request after having sent a connection request (RFC-793).TIME_WAITAwaiting expiration of TCP implementation-defined timeout before socket of closed connection can be re-used (RFC-793).UNKNOWNConnection state is unknown (MSFT_NetTCPConnection).
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.String>lsofStateStringsState values reported bylsof.private intmsStateNumberNumber associated with Microsoft's .Net TcpState enum.private java.lang.StringmsStateStringString representation used by Microsoft.private java.lang.StringnettopStateStringState value reported by Mac OS Xnettopcommand.
-
Constructor Summary
Constructors Modifier Constructor Description privateTcpState(java.lang.String msStateString, int msStateNumber, java.lang.String nettopStateString, java.lang.String... lsofStateStrings)
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static NetStat.BusyPort.TcpStatefromLsofString(java.lang.String lsofStateString)Determine theTcpCodefrom the state string from thelsofcommand.static NetStat.BusyPort.TcpStatefromMicrosoftNumber(int msStateNumber)Determine theTcpStatefrom the state number corresponding to a MicrosoftSystem.Net.NetworkInformation.TcpStateenum value.static NetStat.BusyPort.TcpStatefromMicrosoftString(java.lang.String msStateString)Determine theTcpStatefrom the state string from the MicrosoftGet-NetTCPConnectioncmdlet.static NetStat.BusyPort.TcpStatefromNettopString(java.lang.String nettopStateString)Determine theTcpCodefrom the state string from thenettopcommand.static NetStat.BusyPort.TcpStatevalueOf(java.lang.String name)Returns the enum constant of this type with the specified name.static NetStat.BusyPort.TcpState[]values()Returns an array containing the constants of this enum type, in the order they are declared.
-
-
-
Enum Constant Detail
-
UNKNOWN
public static final NetStat.BusyPort.TcpState UNKNOWN
Connection state is unknown (MSFT_NetTCPConnection).
-
CLOSED
public static final NetStat.BusyPort.TcpState CLOSED
Not connected (RFC-793).
-
LISTEN
public static final NetStat.BusyPort.TcpState LISTEN
Awaiting a connection request (RFC-793).
-
SYN_SENT
public static final NetStat.BusyPort.TcpState SYN_SENT
Awaiting a matching connection request after having sent a connection request (RFC-793).
-
SYN_RECEIVED
public static final NetStat.BusyPort.TcpState SYN_RECEIVED
Awaiting connection request acknowledgement after having sent and received a connection request (RFC-793).
-
ESTABLISHED
public static final NetStat.BusyPort.TcpState ESTABLISHED
An "open" TCP connection over which data may be transferred (RFC-793).
-
FIN_WAIT_1
public static final NetStat.BusyPort.TcpState FIN_WAIT_1
Awaiting connection termination request or acknowledgement of sent connection termination request from remote (RFC-793).
-
FIN_WAIT_2
public static final NetStat.BusyPort.TcpState FIN_WAIT_2
Awaiting connection termination request from remote (RFC-793).
-
CLOSE_WAIT
public static final NetStat.BusyPort.TcpState CLOSE_WAIT
Awaiting application-level connection termination (socket close) (RFC-793).
-
CLOSING
public static final NetStat.BusyPort.TcpState CLOSING
Awaiting connection termination request acknowledgement from remote (RFC-793).
-
LAST_ACK
public static final NetStat.BusyPort.TcpState LAST_ACK
Awaiting acknowledgement of connection termination request sent to remote (RFC-793).
-
TIME_WAIT
public static final NetStat.BusyPort.TcpState TIME_WAIT
Awaiting expiration of TCP implementation-defined timeout before socket of closed connection can be re-used (RFC-793).
-
DELETE_TCB
public static final NetStat.BusyPort.TcpState DELETE_TCB
Indicates the control block representing the TCP connection is being deleted (MSFT_NetTCPConnection).
-
BOUND
public static final NetStat.BusyPort.TcpState BOUND
Awaiting applicationlisten,connect,accept, orclosecall followingbind(lsof).
-
CLOSE
public static final NetStat.BusyPort.TcpState CLOSE
Awaiting applicationclosefollowing a socket/connection error (lsof/Linux).
-
IDLE
public static final NetStat.BusyPort.TcpState IDLE
Awaiting applicationbind,connect, orcloseon socket (lsof).
-
-
Field Detail
-
msStateString
private final java.lang.String msStateString
String representation used by Microsoft.
-
msStateNumber
private final int msStateNumber
Number associated with Microsoft's .Net TcpState enum.
-
nettopStateString
private final java.lang.String nettopStateString
State value reported by Mac OS Xnettopcommand.
-
lsofStateStrings
private final java.util.List<java.lang.String> lsofStateStrings
State values reported bylsof. Multiple values are permitted because of differences in representation by platform.
-
-
Method Detail
-
values
public static NetStat.BusyPort.TcpState[] values()
Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:for (NetStat.BusyPort.TcpState c : NetStat.BusyPort.TcpState.values()) System.out.println(c);
- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
public static NetStat.BusyPort.TcpState valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)- Parameters:
name- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
java.lang.IllegalArgumentException- if this enum type has no constant with the specified namejava.lang.NullPointerException- if the argument is null
-
fromNettopString
public static NetStat.BusyPort.TcpState fromNettopString(java.lang.String nettopStateString)
Determine theTcpCodefrom the state string from thenettopcommand.- Parameters:
nettopStateString- the state string fromnettop- Returns:
- the
TcpStatecorresponding tonettopStateString - Throws:
java.lang.EnumConstantNotPresentException- ifnettopStateStringis not a recognizedTcpState
-
fromLsofString
public static NetStat.BusyPort.TcpState fromLsofString(java.lang.String lsofStateString)
Determine theTcpCodefrom the state string from thelsofcommand.- Parameters:
lsofStateString- the state string fromlsof- Returns:
- the
TcpStatecorresponding tolsofStateString - Throws:
java.lang.EnumConstantNotPresentException- iflsofStateStringis not a recognizedTcpState- See Also:
- lsof-org/lsof Source Repository
-
fromMicrosoftString
public static NetStat.BusyPort.TcpState fromMicrosoftString(java.lang.String msStateString)
Determine theTcpStatefrom the state string from the MicrosoftGet-NetTCPConnectioncmdlet.- Parameters:
msStateString- the state string from theGet-NetTCPConnectioncmdlet- Returns:
- the
TcpStatecorresponding tomsStateString - Throws:
java.lang.EnumConstantNotPresentException- ifmsStateStringis not a recognizedTcpState- See Also:
- MSFT_NetTCPConnection class
-
fromMicrosoftNumber
public static NetStat.BusyPort.TcpState fromMicrosoftNumber(int msStateNumber)
Determine theTcpStatefrom the state number corresponding to a MicrosoftSystem.Net.NetworkInformation.TcpStateenum value.- Parameters:
msStateNumber- theTcpStateenum number- Returns:
- the
TcpStatecorresponding tomsStateNumber - Throws:
java.lang.EnumConstantNotPresentException- ifmsStateNumberis not a recognizedTcpState- See Also:
- TcpState Enum
-
-