@startuml skinparam monochrome true skinparam defaultFontName Arial skinparam classFontSize 10 skinparam sequenceBoxBorderColor #black participant "**Host A**\nTCP Control Service Gate" as hosta_tcp_ctr participant "**Host A**\nAdministration Gate" as hosta_adm participant "**Host B**\nAdministration Gate" as hostb_adm participant "**Host B**\nTCP Control Application Gate" as hostb_tcp_ctr participant "**Host A**\nTCP Data Service Gate" as hosta_tcp_data participant "**Host B**\nTCP Data Application Gate" as hostb_tcp_data autonumber ...**Notation:** Gate Identifier : Pipe Session Open on [PIN,POUT]... hostb_adm->hosta_adm:EVT_ADM_BIND [**TCP_CTR,P20**] hosta_adm->hostb_adm:EVT_ADM_BIND [**TCP_CTR,P10**] note right : Pipe Session Open on [P20,P10] note left : Pipe Session Open on [P10,P20] ... hostb_tcp_ctr->hosta_tcp_ctr: TCP-REQUEST-CONNECTION-Service-Command[Parameters...] on P10 activate hosta_tcp_ctr activate hostb_tcp_ctr hosta_tcp_ctr-->hostb_tcp_ctr: eTCP-OK [CTX_ID0001] on P20 deactivate hostb_tcp_ctr deactivate hosta_tcp_ctr ... alt Successful connection hosta_adm->hostb_adm:EVT_ADM_BIND [**TCP_DATA,P11**] hostb_adm->hosta_adm:EVT_ADM_BIND [**TCP_DATA,P21**] note right of hostb_tcp_data : TCP_DATA: Pipe Session Open on [P21,P11] note left of hosta_tcp_data: TCP_DATA: Pipe Session Open on [P11,P21] ... loop hostb_tcp_data->hosta_tcp_data: TCP stream on P11 activate hosta_tcp_data activate hostb_tcp_data hosta_tcp_data->hostb_tcp_data: TCP stream on P21 deactivate hostb_tcp_data deactivate hosta_tcp_data hostb_adm->hosta_adm : EVT_ADM_RECEIVED hosta_adm->hostb_adm : EVT_ADM_RECEIVED hostb_adm->hosta_adm : EVT_ADM_CREDIT hosta_adm->hostb_adm : EVT_ADM_CREDIT end ... hostb_adm->hosta_adm:EVT_ADM_UNBIND [**P21**] note right of hostb_tcp_data : TCP_DATA: Pipe Session closed on [P21,P11] note left of hosta_tcp_data: TCP_DATA: Pipe Session closed on [P11,P21] else connection failure hosta_tcp_ctr->hostb_tcp_ctr: EVT-TCP-ERROR[CTX_ID0001, eUNREACHABLE] end @enduml