Tymnet collected segments of the streams in circuits and sent them over a link from one node to the next in packets, several segments per packet.
Packets were error controlled between nodes.
Here is an e-mail note by Laroy Tymes that he sent in response to a question I sent him in late 2003 regarding Tymnet flow control.
There are two separate subjects here, packet acknowledgement between nodes
and flow control on channels. The first packet control used a 3 bit field
for a window size of 4. Up to 4 packets could be sent before
acknowledgement. The reason for the 3 bit field for a window size of 4 was
to eliminate ambiguity between new and old records, a distinction lost in
subsequent protocols such as X.25. The first X.25 also had a 3 bit count
field, but a window size of 7, requiring the transmitter to resend all 7
packets for dropped packet recovery instead of only those packets needing
retransmission.
Each virtual circuit that ran between 2 nodes was represented by a channel
between those 2 nodes. Every half second a bit vector was sent from the
receiver back to the transmitter. A 1 bit reset the flow control counter for
the corresponding channel (30 for low speed circuits and 120 for high speed
circuits). When the transmitter sent data on a particular channel, the
counter was reduced by the number of bytes. When the number reached 0,
traffic on that channel stopped until a 1 bit from the backpressure vector
reset the counter.
Several more ambitious schemes were considered, including “blaster” mode
which dedicated whole packets for certain high data rate circuits, but they
were never implemented.