At the start of the output is a header looking like this:
A B M D E M O HDLC SIMULATOR D T E A D T E B R V V F N N C T F N N V V R T S R R S R L I R S R S R T C A O C A C M C K M E K EThese are the headings for the columns of the simulation, which runs downwards with time. The left and right sides represent the A and B DTEs, and the ticks of the clock are in the middle.
The columns are:
1 1 0 I 0 0 P/F=0 ooo 0 0 0 0 1 1 0 OOO 1 0 0 0 1 1 0 OOO 2 0 0 0 1 1 0 OOO 3 0 0 0 1 1 0 OOO 4 0 0 0At this point, DTE A has sent one I frame of length 5.
2 2 0 I 1 0 P/F=0 ooo 5 ooo RR 1 P/F=0 0 1 0 2 2 0 XXX 6 OOO 0 1 0 2 2 0 XXX 7 OOO 0 1 0 2 2 0 XXX 8 OOO 0 1 0 1 2 0 XXX 9 0 1 0 1 2 0 10 0 1 0At this point frame 0 from DTE A has been acknowledged, but frame 1 was corrupted (the XXXX indicates a frame with an error) so DTE B ignores it. In this example, DTE A's "ack timer" runs out and triggers a recover sequence. Look for the RR P/F = 1.
1 2 0 11 0 1 0 1 2 0 12 0 1 0 1 2 0 13 0 1 0 [some clock ticks deleted to save space] 1 2 0 37 0 1 0 1 2 0 RR 0 P/F=1 ooo 38 0 1 0 1 2 0 OOO 39 0 1 0 1 2 0 OOO 40 0 1 0 1 2 0 OOO 41 0 1 0 1 2 0 42 ooo RR 1 P/F=1 0 1 0 1 2 0 43 OOO 0 1 0 1 2 0 44 OOO 0 1 0 1 2 0 45 OOO 0 1 0 1 2 0 I 1 0 P/F=0 ooo 46 0 1 0 1 2 0 OOO 47 0 1 0 1 2 0 OOO 48 0 1 0 1 2 0 OOO 49 0 1 0 1 2 0 OOO 50 0 1 0 1 2 0 51 ooo RR 2 P/F=0 0 2 0 1 2 0 52 OOO 0 2 0 1 2 0 53 OOO 0 2 0 1 2 0 54 OOO 0 2 0 0 2 0 55 0 2 0Note that no REJ frame is sent, as no I frame has been received out of sequence.