---
name: "tcpclo"
section: "1"
platform: "linux"
package: "ion"
version: "3.2.1+dfsg-1.1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/tcpclo"
---

# tcpclo(1)

DTN TCPCL-compliant convergence layer adapter output task

## NAME

tcpclo - DTN TCPCL-compliant convergence layer adapter output task

## SYNOPSIS

**tcpclo** *remote\_hostname*\[:*remote\_port\_nbr*\]

## DESCRIPTION

**tcpclo** is a background "daemon" task that connects to a remote node's TCP socket at *remote\_hostname* and *remote\_port\_nbr*.  It sends a contact header, and it records the acknowledgement flag, reactive fragmentation flag and negative acknowledgements flag in the contact header it receives from its peer **tcpcli** task.  It then begins extracting bundles from the queues of bundles ready for transmission via TCP to this remote bundle protocol agent and transmitting those bundles over the connected socket to that node.  Each transmitted bundle is preceded by message type, segmentation flags, and an SDNV indicating the size of the bundle (in bytes).

If not specified, *remote\_port\_nbr* defaults to 4556.

Note that **tcpclo** is not a "promiscuous" convergence layer daemon: it can transmit bundles only to the node to which it is connected, so scheme configuration directives that cite this outduct need only provide the protocol name and the outduct name as specified on the command line when **tcpclo** is started.

**tcpclo** is spawned automatically by **bpadmin** in response to the 's' (START) command that starts operation of the Bundle Protocol, and it is terminated by **bpadmin** in response to an 'x' (STOP) command.  **tcpclo** can also be spawned and terminated in response to START and STOP commands that pertain specifically to the TCP convergence layer protocol.

## EXIT STATUS

- "0"

  **tcpclo** terminated normally, for reasons noted in the **ion.log** file.  If this termination was not commanded, investigate and solve the problem identified in the log file and use **bpadmin** to restart the TCPCL protocol.

- "1"

  **tcpclo** terminated abnormally, for reasons noted in the **ion.log** file. Investigate and solve the problem identified in the log file, then use **bpadmin** to restart the TCPCL protocol.

## FILES

No configuration files are needed.

## ENVIRONMENT

No environment variables apply.

## DIAGNOSTICS

The following diagnostics may be issued to the **ion.log** log file:

- tcpclo can't attach to BP.

  **bpadmin** has not yet initialized Bundle Protocol operations.

- No such tcp duct.

  No TCP outduct with duct name matching *remote\_hostname* and *remote\_port\_nbr* has been added to the BP database.  Use **bpadmin** to stop the TCP convergence-layer protocol, add the outduct, and then restart the TCP protocol.

- CLO task is already started for this duct.

  Redundant initiation of **tcpclo**.

- Can't get IP address for host

  Operating system error.  Check errtext, correct problem, and restart TCP.

## BUGS

Report bugs to \<ion-bugs@korgano.eecs.ohiou.edu\>

## SEE ALSO

[*bpadmin*(1)](/bpadmin/1.md), [*bprc*(5)](/bprc/5.md), [*tcpcli*(1)](/tcpcli/1.md)
