Defining a useful channel involves both understanding the applications
requirements and recognizing the limitations of the underlying
technology. The gap between what applications expects and what the
underlying technology can provide is called semantic gap.