kjelsrud.dev/node_modules/shiki/samples/fsl.sample

47 lines
1.2 KiB
Text
Raw Normal View History

2023-07-19 21:31:30 +02:00
machine_name : "TCP/IP";
machine_reference : "http://www.texample.net/tikz/examples/tcp-state-machine/";
machine_version : 1.0.0;
machine_author : "John Haugeland <stonecypher@gmail.com>";
machine_license : MIT;
jssm_version : >= 5.0.0;
Closed 'Passive open' -> Listen;
Closed 'Active Open / SYN' -> SynSent;
Listen 'Close' -> Closed;
Listen 'Send / SYN' -> SynSent;
Listen 'SYN / SYN+ACK' -> SynRcvd;
SynSent 'Close' -> Closed;
SynSent 'SYN / SYN+ACK' -> SynRcvd;
SynSent 'SYN+ACK / ACK' -> Established;
SynRcvd 'Timeout / RST' -> Closed;
SynRcvd 'Close / FIN' -> FinWait1;
SynRcvd 'ACK' -> Established;
Established 'Close / FIN' -> FinWait1;
Established 'FIN / ACK' -> CloseWait;
FinWait1 'FIN / ACK' -> Closing; // the source diagram has this action wrong
FinWait1 'FIN+ACK / ACK' -> TimeWait;
FinWait1 'ACK / Nothing' -> FinWait2; // see http://www.cs.odu.edu/~cs779/spring17/lectures/architecture_files/image009.jpg
FinWait2 'FIN / ACK' -> TimeWait;
Closing 'ACK' -> TimeWait;
TimeWait 'Up to 2*MSL' -> Closed;
CloseWait 'Close / FIN' -> LastAck;
LastAck 'ACK' -> Closed;
# From https://github.com/StoneCypher/jssm/blob/main/src/machines/linguist/tcp%20ip.fsl