High-Level Data Link Control
送信デバイスでデータ内のオクテットがフレームデリミタの“01111110”(0x7E)か、もしくはエスケープオクテットの“01111101”(0x7D)と同じであるものを検知すると、そのオクテットの前にエスケープオクテット“01111101”(0x7D)を挿入し、そのオクテットの先頭(最下位)から3番目のビット(16進数で20)の0と1を入れ替える。受信デバイスはエスケープオクテットを検知するとエスケープオクテットを削除し、次のオクテットの3番目のビットの0と1を入れ替える。その他の予約ビット列(XONやXOFFなど)やエスケープオクテット自体についても、必要であれば同様にしてエスケープできる。
また、符号化を強化したものとして、7バイト(7オクテット)データ中の各オクテットから末尾のビットを取り除き、取り除いたビットを8バイト目に集約させる方法も規格化されている。これにより全てのオクテットの末尾が0になるため、誤り制御の強化につながる。
コントロール部は8ビットが基本だが、アドレス部と同じく16ビットのものも規格化されている。さらに、32ビットのコントロール部を持つ規格が2つ、64ビットのものが1つ規格化されている。
情報部には伝送すべきデータが書き込まれる。このデータに関する規定はないが、通常伝送される情報は8の倍数ビットになる。これは電話、テレタイプの長距離デジタル伝送装置が8ビットずつ伝送しているのにHDLCが適応した結果である。これによりHDLCは効率的にバイナリデータを送受信できる。
FCSは(Frame Check Sequence:フレームチェックシーケンス)の略でパリティチェックより洗練された方法であり、CRCによるデータのエラー検出と訂正を行う。 ISO/IEC 13239ではCRCの生成多項式として x 16 + x 12 + x 5 + 1 {\displaystyle x^{16}+x^{12}+x^{5}+1} を用いることが規定されている。なお、CRC-32によるCRC符号の生成も規格化されており、そちらでは x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x + 1 {\displaystyle x^{32}+x^{26}+x^{23}+x^{22}+x^{16}+x^{12}+x^{11}+x^{10}+x^{8}+x^{7}+x^{5}+x^{4}+x^{2}+x+1} を使う。