Unix Service example - Telnet Login

The user start a telnet session. His session is accepted by the inet daemon and passed on to login process. The user send a correct password on the first attempt. The session is then handed over to the shell process which can handle the command. In this example the user decides to exit. This example is more about the TCP messages, use the pop-up in the ASCII below to see more information. Currently there are not that many permutations (24) as it is straight forward and also limited in amount of repetitions. Perhaps if there is interest than the intended flows are added in the future. Use the choices on the right to make different diagrams.

The generated MSG-Flow

User TCP-CL telnetd login shell
| | | | |
+-start-telnet
Info for start-telnet
No link information between act and comp for start-telnet
| | | |
|--tcp-cl-connect
Info for tcp-cl-connect
No link information between msg and prot for tcp-cl-connect
-->| | | |
| |---SYN
Info for SYN
No link information between msg and prot for SYN
dst_port23
src_port33333
--->| | |
| | +-invoked-via-inetd
Info for invoked-via-inetd
No link information between act and comp for invoked-via-inetd
| |
| |<-SYN+ACK
Info for SYN+ACK
No link information between msg and prot for SYN+ACK
dst_port33333
src_port23
-| | |
|<-tcp-cl-connected
Info for tcp-cl-connected
No link information between msg and prot for tcp-cl-connected
dst_port33333
src_port23
-| | | |
| |---ACK
Info for ACK
No link information between msg and prot for ACK
dst_port23
src_port33333
--->| | |
| | +-alloc-pty-create-login
Info for alloc-pty-create-login
No link information between act and comp for alloc-pty-create-login
| |
| | |------Invoke-login
Info for Invoke-login
No link information between msg and prot for Invoke-login
------>| |
| | |<---------stdout
Info for stdout
No link information between msg and prot for stdout
datalogin:
---------| |
| |<---DATA
Info for DATA
No link information between msg and prot for DATA
dst_port33333
src_port23
datalogin:
--| | |
| |---ACK
Info for ACK
No link information between msg and prot for ACK
dst_port23
src_port33333
datalogin:
--->| | |
|<--tcp-cl-receive
Info for tcp-cl-receive
No link information between msg and prot for tcp-cl-receive
datalogin:
--| | | |
|----tcp-cl-send
Info for tcp-cl-send
No link information between msg and prot for tcp-cl-send
data[user]
--->| | | |
| |---DATA
Info for DATA
No link information between msg and prot for DATA
dst_port23
src_port33333
data[user]
-->| | |
| |<---ACK
Info for ACK
No link information between msg and prot for ACK
dst_port33333
src_port23
data[user]
---| | |
| | |----------stdin
Info for stdin
No link information between msg and prot for stdin
data[user]
--------->| |
| | |<---------stdout
Info for stdout
No link information between msg and prot for stdout
datapassword:
---------| |
| |<---DATA
Info for DATA
No link information between msg and prot for DATA
dst_port33333
src_port23
datapassword:
--| | |
| |---ACK
Info for ACK
No link information between msg and prot for ACK
dst_port23
src_port33333
datapassword:
--->| | |
|<--tcp-cl-receive
Info for tcp-cl-receive
No link information between msg and prot for tcp-cl-receive
datapassword:
--| | | |
|----tcp-cl-send
Info for tcp-cl-send
No link information between msg and prot for tcp-cl-send
data[password]
--->| | | |
| |---DATA
Info for DATA
No link information between msg and prot for DATA
dst_port23
src_port33333
data[password]
-->| | |
| |<---ACK
Info for ACK
No link information between msg and prot for ACK
dst_port33333
src_port23
data[password]
---| | |
| | |----------stdin
Info for stdin
No link information between msg and prot for stdin
data[password]
--------->| |
| | |<---------stdout
Info for stdout
No link information between msg and prot for stdout
datalast login
---------| |
| | | |-Invoke-shell
Info for Invoke-shell
No link information between msg and prot for Invoke-shell
->|
| | |<-----------------stdout
Info for stdout
No link information between msg and prot for stdout
datacmd:
-----------------|
| |<---DATA
Info for DATA
No link information between msg and prot for DATA
dst_port33333
src_port23
datacmd:
--| | |
| |---ACK
Info for ACK
No link information between msg and prot for ACK
dst_port23
src_port33333
datacmd:
--->| | |
|<--tcp-cl-receive
Info for tcp-cl-receive
No link information between msg and prot for tcp-cl-receive
datacmd:
--| | | |
+-enter-exit
Info for enter-exit
No link information between act and comp for enter-exit
| | | |
|----tcp-cl-send
Info for tcp-cl-send
No link information between msg and prot for tcp-cl-send
dataexit
--->| | | |
| |---DATA
Info for DATA
No link information between msg and prot for DATA
dst_port23
src_port33333
dataexit
-->| | |
| |<---ACK
Info for ACK
No link information between msg and prot for ACK
dst_port33333
src_port23
dataexit
---| | |
| | |------------------stdin
Info for stdin
No link information between msg and prot for stdin
dataexit
----------------->|
| | |<-----------------stdout
Info for stdout
No link information between msg and prot for stdout
dataexit output
-----------------|
| |<---DATA
Info for DATA
No link information between msg and prot for DATA
dst_port33333
src_port23
dataexit output
--| | |
| |---ACK
Info for ACK
No link information between msg and prot for ACK
dst_port23
src_port33333
dataexit output
--->| | |
|<--tcp-cl-receive
Info for tcp-cl-receive
No link information between msg and prot for tcp-cl-receive
dataexit output
--| | | |
| | |<-------------------eof
Info for eof
No link information between msg and prot for eof
dataexit output
------------------|
| |<---FIN
Info for FIN
No link information between msg and prot for FIN
dst_port33333
src_port23
dataexit output
---| | |
| |-FIN+ACK
Info for FIN+ACK
No link information between msg and prot for FIN+ACK
dst_port23
src_port33333
dataexit output
->| | |
|<---tcp-cl-closed
Info for tcp-cl-closed
No link information between msg and prot for tcp-cl-closed
dataexit output
--| | | |
+-exit-telnet
Info for exit-telnet
action exit-telnetThe telnet process was stopped.
section Visible actions
component UserRepresents an external user.
| | | |

You can and paste the above flow representation in a text file or in your favourite text editor using a monospace font. Ofcourse you will loose the context sensitive output and the links towards additional information.

Decission table

The decission table shows which decissions have been made so far and which to make. The header contains the choice number and the entity making the choice. The choices are shown from left (latest) to right (earlier) which make it handier to follow or adapts. All choices you could have choisen on a specific level are displayed. You can click on the description to make a different choice.

telnet-flows : The main start of a telnet flow.

Additional Generated Information

Below is the graphical representaion rendered using PlantUML Try it yourself online

Cannot render UML

You can the following url to refer to the graph. Or copy as to have it embeded in usable HTML code.

Be aware that changes/improvements will not be reflected in the graph.
The plain text, which can be used by some editors, is given below. Use it if you want to make edit in you favorite editor. It does not contain links as they are not supported by some editors. You can copy the text and paste it e.g. into WebSequenceDiagrams, SequenceDiagram or SwimLanes. You can also copy it for and paste it into PlantUML.