Skip to content
Graphviz (DOT) templates

TCP State Machine

Classic TCP connection state diagram.

Template previewGraphviz (DOT)
Rendering…

Make it your own.

digraph tcp {
  rankdir=LR;
  graph [bgcolor=transparent];
  node [shape=ellipse, fontname=Inter, style=filled, fillcolor="#dbeafe"];

  CLOSED      -> LISTEN     [label="passive open"];
  CLOSED      -> SYN_SENT   [label="active open"];
  LISTEN      -> SYN_RCVD   [label="recv SYN"];
  SYN_SENT    -> ESTABLISHED[label="recv SYN+ACK"];
  SYN_RCVD    -> ESTABLISHED[label="recv ACK"];
  ESTABLISHED -> FIN_WAIT_1 [label="close"];
  ESTABLISHED -> CLOSE_WAIT [label="recv FIN"];
  FIN_WAIT_1  -> FIN_WAIT_2 [label="recv ACK"];
  FIN_WAIT_2  -> TIME_WAIT  [label="recv FIN"];
  CLOSE_WAIT  -> LAST_ACK   [label="close"];
  LAST_ACK    -> CLOSED     [label="recv ACK"];
  TIME_WAIT   -> CLOSED     [label="2MSL"];
}