Jim Breen's HDLC (High-Level Data-link Control protocol) Server

Here is an explanation of the display you will see from the simulator.

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           E
These 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:

Then we see some frames being sent:

  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  0 

At 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  0 

At 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  0 

Note that no REJ frame is sent, as no I frame has been received out of sequence.