A channel is a one-way or two-way directed connection. It is characterised by the signals that it may carry; these constitute the signal list(s) of the channel. A channel has a signal list for each direction.

One or two arrows indicate the direction(s) of the channel.

Channels connect blocks or block sets with other blocks or block sets, or with the environment of the system. It provides a (one or two way) communication path for signals. If there is no channel between two blocks, then processes in these two blocks cannot communicate by signal exchange. Processes may, however, communicate by means of remote procedure calls without channels connecting the enclosing blocks. A channel cannot connect a block or block set with itself.

Channels may be delaying or non-delaying.

A delaying channel is specified by a channel symbol with the arrows at the middle of the channel:

The delay of signals is non-deterministic, but the order of signals is maintained.

A non-delaying channel is specified as follows, that is with the arrows at the endpoints:

Associated with each direction of a channel are the types of signals that may be conveyed by the channel. The list enclosed by the signal list symbol can be signals (as e.g. Code) or signal lists (as e.g. validity) enclosed in ().

Channels connected to the frame symbol represent the connections to the environment.