Apparatus and method for transmitting data on a time-shared basis between a plurality of low-speed sources and a high-speed source over a communication circuit. Byte-serial data is initially transmitted at a relatively low rate from a plurality of remote sources (terminals) to a nearby peripheral computer which temporarily stores the incoming data in a memory unit and arranges it into strings of data blocks. The stored data is later transmitted as messages of one or more data blocks at a much faster rate over a communication circuit to a central computer. These data blocks may be either text blocks containing the temporarily stored data or control blocks containing information regarding the status of remote terminals. In addition, each message contains an acknowledge block whose purpose is to facilitate the detection and correction of data transmission errors. The central computer checks all incoming blocks for errors and acknowledges only those that have been correctly received. Blocks received in error by the central computer are not acknowledged, and are retransmitted by the peripheral computer until they are correctly received. Conversely, messages consisting of acknowledge, text, and control blocks are transmitted from the central computer to the peripheral computer over the communication circuit at high speed, the data is temporarily stored in the peripheral computer's memory and is later transmitted to the correct remote destination (terminal) at low speed. Error detection and correction performed on these messages is similar to those performed on messages traveling in the opposite direction.