A
digital data system comprises a plurality of links for passing messages between nodes, which may be end points such as memory or
processing units, or intermediate or
branch points such as routers or other devices in the
system. A
link level flow control is implemented by control symbols passed between adjacent nodes on a link to efficiently regulate message burden on the link. The control symbols may be embedded within in a message packet to quickly effect control on a link—such as reducing data flow, requesting
retransmission of corrupted data, or other intervention—without disruption of the ongoing
packet reception. A control symbol may be recognized within the packet by a flag bit, a marker such as a transition in a
signal, or a combination of characteristics. The control symbol may be a short word, having a control action identifier code at defined bit positions to indicate the desired link-level
control function. A node receiving the control symbol implements the designated control action while maintaining packet order data (such a bit positions and
byte counts), and applying message
housekeeping processing (such as
error checking) as though the control symbol were absent. The control symbol is thus embedded in a manner such that a receiving node need not receive a complete message, or even a complete packet, before acting on the control symbol. The beginning and end of the interrupted packet, meanwhile, are handled as a single message packet, and are processed by the receiving node in properly-aligned bit positions, allowing
message flow to continue along the link without interruption. Thus,
retransmission of the affected packet or message is not required. The result is that control operations dictated by the embedded control symbol are effected immediately and without slowing down communications.