Các loại giao thức đồng bộ
Một hệ thống thông tin có thể được định dạng bằng các giao thức khác nhau. Trong chế độ truyền đồng bộ, có thể chia giao thức ra làm hai loại : - Giao thức điều khiển Byte hay ký tự (Byte - Controlled Protocol, BCP, hay ...
Một hệ thống thông tin có thể được định dạng bằng các giao thức khác nhau.
Trong chế độ truyền đồng bộ, có thể chia giao thức ra làm hai loại :
- Giao thức điều khiển Byte hay ký tự (Byte - Controlled Protocol, BCP, hay Character-Oriented Protocol).
- Giao thức hướng Bit (Bit - Orientied Protocol, BOP).
- Trong giao thức điều khiển byte (BCP), khối dữ liệu bao gồm nhiều ký tự, mỗi ký tự là một đơn vị thông tin (7 hoặc 8 bit) và các thông tin điều khiển cũng xuất hiện dưới dạng từ. Các ký tự dữ liệu (bản tin chính thức) hợp với từ điều khiển thành một khung thông tin. Một khung thông tin thường bắt đầu bằng một hay nhiều từ dùng cho sự đồng bộ, thường là từ SYNC, nó báo cho máy thu biết bắt đầu một khối dữ liệu. Ngoài ra, trước và sau bản tin chính thức còn có các từ điều khiển, bao gồm các địa chỉ các đài, trạm, các từ báo bắt đầu và kết thúc văn bản, các từ báo mã kiểm tra lỗi ...
- Trong giao thức hướng bit (BOP), khối dữ liệu xem như một chuỗi bit, các từ điều khiển và ký tự dữ liệu không hẳn là các từ 8 bit mà có thể là một tập hợp các bit tùy theo giao thức cụ thể.
Giống như trong BCP, bắt đầu khối tin cũng có tín hiệu báo, đó là từ 8 bit gọi là Cơ (Flag) , cờ này cũng được đặt ở cuối bản tin. Như vậy tác dụng của cờ là thiết lập sự đồng bộ và đánh dấu điểm bắt đầu và điểm kết thúc. Khối dữ liệu bao gồm cả các cờ hình thành một Khung (Frame). Trước và sau bản tin chính thức có các từ điều khiển, được gọi chung là Trường điều khiển (Control Field). Tất cả qui định chi tiết về bản tin, các thông báo hỏi nhận đều thực hiện trong trường điều khiển này. (H 6.2) cho ta hai dạng khung của hai protocol này
(H 6.2)
Chúng ta giới thiệu dưới đây:
- Giao thức điều khiển byte được đề nghị bởi IBM vào năm 1964 và được sử dụng rất rộng rãi trong các ứng dụng điểm - điểm (poin - point) và nhiều điểm (multipoint) với các phương thức đơn công và bán song công. Đó là giao thức truyền đồng bộ nhị phân (Binary Synchronous Communication, BSC, đôi khi gọi là BISYNC). Giao thức BSC được ISO lấy làm cơ sở để xây dựng giao thức hướng ký tự chuẩn quốc tế với tên Basic Mode (dữ liệu dùng mã EBCDIC thay cho mã ASCII và mã dò sai là CRC thay cho BCC)
- Giao thức hướng bit, do hãng IBM phát triển và sử dụng có tên là Điều khiển liên kết dữ liệu đồng bộ (Synchronous Data Link Control - SDLC) và ISO lấy làm cơ sở để phát triển thành giao thức điều khiển liên kết dữ liệu mức cao (High Level Data Link Control, HDLC).
Giao thức đồng bộ nhị phân
Đây là giao thức điều khiển việc truyền nhận dữ liệu nhờ một số ký tự đặc biệt trong các bảng mã. Các thông tin dữ liệu được gửi đi trong các khung dữ liệu mà hai biên là các ký tự SYNC để báo máy thu biết bắt đầu bản tin.
Các từ điều khiển dùng trong BISYNC lấy từ bản mã ASCII, gồm một số từ như sau :
SYN Ký tự đồng bộ mã ASCII dạng Hex 16H
SOH Ký tự bắt đầu của Header 01H
STX Ký tự bắt đầu văn bản 02H
ETX Ký tự kết thúc văn bản 03H
EOT Ký tự kết thúc phát 04H
ETB Ký tự kết thúc truyền khối 17H
ENQ Ký tự hỏi 05H
ACK Ký tự báo cho biết đã nhận dữ liệu 06H
NAK Ký tự báo cho biết chưa nhận dữ liệu 15H
NUL Ký tự rỗng 00H
DLE Ký tự giải phóng đường dữ liệu 10H
CAN Ký tự hủy 18H
Một khung dữ liệu của BISYNC tiêu biểu có cấu trúc sau :
SYN SYN SOH header STX text ETX BCC
Đầu Cuối
- Phần văn bản (text) chứa dữ liệu thông tin. Kích thước vùng text có giới hạn nên với các văn bản lớn người ta chia thành những khối nhỏ (block) và trong phần Header có phần identifier (id) để chỉ thứ tự các khối.
- Phần header chứa điạ chỉ đến và tín hiệu trả lời ACK/NAK nếu có yêu cầu.
- BCC là ký tự 1 Byte dùng kiểm tra khung. Đây là byte duy nhất được tạo ra để kiểm tra lỗi trong toàn khối. BCC có thể là một phép kiểm tra chẵn lẻ (dùng trong BSC), hoặc chặc chẽ hơn là kiểm tra dư thừa theo chu kỳ (Cycle Redundancy Check, CRC ) (Dùng trong Basic Mode, với CRC - 16).
Dưới đây là ví dụ truyền chữ TEST và kiểm tra chẵn lẻ theo hàng
STX | T | E | S | T | EXT | BCC | |
01000001 | 00101011 | 10100011 | 11001010 | 00101011 | 11000000 | 11101000 | b0b1b2b3b4b5b6b7 |
Đối với ví dụ trên các bit sẽ được truyền như sau :
STX T E S T ETX BCC
01000001 00101011 10100011 11001010 00101011 11000000 11101000
Đầu Cuối
Trong ví dụ này người ta dùng kiểm tra chẵn và BCC chỉ kiểm tra các ký tự từ STX đến ETX. Trên thực tế, sự kiểm tra được thực hiện trên toàn khối (từ SOH đến ETX).
Khi nhận được bản tin, máy thu thực hiện phép tính kiểm tra tổng, so sánh với BCC nhận được, sau đó sẽ trả lời bằng tín hiệu ACK (Đúng) hoặc NAK (Không đúng).
Máy phát sẽ không gửi bản tin khác khi chưa được xác nhận rằng bản tin trước đã nhận đúng (phương thức bán song công).
Dưới đây là một số thủ tục chính trong BSC/Basic Mode:
- Mời truyền tin:
Giả sử trạm A muốn mời trạm B truyền tin, trạm A sẽ gửi lệnh sau đây tới B:
EOT B ENQ
Trong đó B là địa chỉ của trạm được mời truyền tin
EOT để chuyển liên kết sang trạng thái điều khiển
Khi B nhận được lệnh này, có thể xảy ra 2 trường hợp:
- Nếu B có tin để truyền thì B tạo cấu trúc tin theo dạng chuẩn và gửi đi
- Nếu B không có tin để truyền thì gửi đi lệnh EOT để trả lời
Ở phía A một khoảng thời gian xác định sau khi gửi lệnh đi mà không được trả lời hoặc nhận được trả lời sai thì A sẽ chuyển sang trạng thái phục hồi (Recovery state).
- Mời nhận tin:
Giả sử trạm A muốn mời trạm B nhận tin, trạm A sẽ gửi lệnh sau đây tới B:
EOT B ENQ
Có thể bỏ qua lệnh EOT.
Khi nhận được lệnh này, nếu B sẵn sàng nhận tin thì nó gửi lệnh ACK để trả lời, nếu không thì gửi lệnh NAK
Ở phía A một khoảng thời gian xác định sau khi gửi lệnh đi mà không được trả lời hoặc nhận được trả lời sai thì A sẽ chuyển sang trạng thái phục hồi (Recovery state).
- Yêu cầu trả lời:
Khi một trạm cần trạm kia trả lời một yêu cầu nào đó đã gửi đi trước đó thì nó chỉ cần gửi lệnh ENQ đến trạm kia
- Ngừng truyền tin (tạm thời): Gửi lệnh EOT
- Giải phóng liên kết: Gửi lệnh DLE EOT
- Trạng thái phục hồi: Khi một trạm nào đó đi vào trạng thái "phục hồi" nó sẽ thực hiện một trong các hành động sau:
- Lặp lại lệnh đã gửi đi n lần (n là số nguyên chọn trước) hoặc
- Gửi "yêu cầu trả lời" n lần hoặc kết thúc truyền bằng lệnh EOT
- Chế độ thông suốt (Transparent Mode).
Trong trường hợp các mã điều khiển xuất hiện trong văn bản (Text) nhưng không mang ý nghĩa điều khiển mà phải được hiểu như là dữ liệu, hệ thống được chuyển sang chế độ thông suốt bằng cách dùng ký tự DLE đặt trước STX và DLE đặt trước ETX để chấm dứt chế độ này.
Giao thức hướng bit.
Giao thức hướng bit được thiết kế để thoả mãn nhiều yêu cầu trong cách truyền đồng bộ, bao gồm :
- Truyền giữa hai đài (trạm) (point to point) hay nhiều đài (multipoint).
- Bán song công hay song công.
- Liên lạc giữa trạm sơ cấp và trạm thứ cấp.
- Liên lạc với khoảng cách ngắn (nối trực tiếp), hoặc rất xa (vệ tinh).
Giao thức này có một số tính chất sau :
- Người sử dụng có thể sử dụng bất cứ loại mã nào.
- Có khả năng thích hợp với nhiều loại đường truyền.
- Hiệu suất cao : giảm tối thiểu tỉ lệ hao hụt.
- Độ tin cậy cao : cho phép kiểm tra lỗi có hiệu quả và có khả năng phục hồi dữ liệu.
Có thể nói các tính chất của giao thức hướng bit được thể hiện ở trường điều khiển bởi các tổ hợp bit mã hóa các từ điều khiển.
Có nhiều giao thức hướng bit đã được đề nghị bởi các cơ quan khác nhau và được sử dụng rộng rãi :
- Thủ tục điều khiển thông tin dữ liệu cao cấp (Advanced Data Communication Control Procedure - ADCCP) phát triển bởi Viện chuẩn quốc gia Hoa Kỳ (American National Standard Institute - ANSI) đây là chuẩn trong hệ thống thông tin quốc gia.
- Thủ tục truy xuất đường truyền cân bằng (Link Access Procedure, balance - LAP-B) thực hiện bởi Hội đồng Tư vấn Điện tín và Điện thoại quốc tế (International Telegraph & Telephone Consultative Committee - CCITT) Đây là một chuẩn về mạng.
- Điều khiển liên kết dữ liệu đồng bộ (Synchronous Data Link Control - SDLC) được dùng bởi hãng IBM (International Business Machine Corporation) và ISO lấy làm cơ sở để phát triển thành giao thức điều khiển liên kết dữ liệu mức cao (High Level Data Link Control, HDLC).
Thật ra không có mấy khác biệt giữa các chuẩn nói trên: HDLC và ADCCP có thể xem là một còn LAP-B và SDLC là những tập con của HDLC.
Phần sau đây sẽ bàn tới chuẩn SDLC.
Đặc tính cơ bản :
SDLC định nghĩa 3 loại trạm, 2 dạng truyền và 2 chế độ vận hành.
* 3 loại trạm :
- Trạm sơ cấp: (Primary) có trách nhiệm điều khiển vận hành của hệ thống, những khung phát bởi trạm sơ cấp gọi là lệnh (command)
- Trạm thứ cấp: (secondary) vận hành dưới sự điều khiển của trạm sơ cấp, những khung phát bởi trạm thứ cấp là lời đáp (response) Trạm sơ cấp duy trì việc nối logic với từng trạm thứ cấp trong hệ thống một cách riêng rẽ .
- Trạm hỗn hợp: Các trạm đồng thời giữ vai trò sơ và thứ cấp.
* 2 dạng truyền :
- Dạng không cân bằng : dùng giữa 2 trạm hoặc nhiều trạm, gồm một trạm sơ cấp và một hoặc nhiều trạm thứ cấp, có thể truyền song công và bán song công.
- Dạng cân bằng : chỉ dùng giữa 2 trạm hỗn hợp, có thể truyền song công hoặc bán song công.
* 2 chế độ vận hành :
- Chế độ trả lời chuẩn (Normal Response Mode - NRM) : đây là một dạng truyền không cân bằng, một trạm sơ cấp có thể khởi động để truyền dữ liệu đến trạm thứ cấp và trạm thứ cấp chỉ có thể truyền dữ liệu để trả lời khi trạm sơ cấp yêu cầu.
- Chế độ bình thường không kết nối (DISC) : Ở chế độ này trạm thứ cấp nhận tin nhưng không tác động được vào bản tin.
(H 6.3) mô tả dạng truyền cân bằng và không cân bằng.
Primary | Commands→ Responses | | | |
Secondary | Secondary |
(a) Dạng không cân bằng
Combined | Commands →---------------------------------------------- Responses → | Combined |
b) Dạng cân bằng
(H 6.3)
Cấu trúc của khung : (H 6.4)
Một khung thông tin trong SDLC gồm các trường sau đây :
- Cờ : 8 bit
- Điạ chỉ : 1 byte.
- Điều khiển : 8 bit.
- Thông tin : thay đổi theo bản tin.
- Chuỗi kiểm tra khung (Frame Check Sequence - FCS) : 16 bit.
- Cờ : 8 bit.
Các trường cờ, điạ chỉ và điều khiển đặt trước trường thông tin gọi là đầu khung (header) và các trường FCS và cờ đặt sau trường thông tin gọi là cuối khung (Trailer). (H 6.4) cho dạng của khung và các trường trong khung
FLAG | AADDRESS | CONTROL | INFORMATION | FCS | FLAG |
8 bit → 8 bit → 8 bit → variable → 16 bit → 8 bit →
(H 6.4) Dạng khung thông tin SDLC
a. Trường cờ (Flag Field) :
Trường cờ đặt ở đầu và cuối một khung để giới hạn khung, gồm 8 bit theo qui định là 01111110 (6 bit 1 liên tiếp giữa 2 bit 0 ).
Giữa 2 khung có thể có một trong các trường hợp sau đây:
- Một cờ xuất hiện giữa bản tin gọi là cờ đơn vừa dùng chấm dứt một khung đồng thời bắt đầu một khung khác.
- Một cờ chấm dứt khung trước và một cờ bắt đầu khung sau. Giữa 2 cờ này có thể chỉ dùng một bit 0.
- Có thể chèn vào giữa 2 cờ một số cờ khác.
Khung x : Khung x+1
. . . . 01111110 . . . .
. . . . 01111110 : 01111110 . . . .
. . . . 011111101111110 . . . .
. . . . 01111110 01111110 : 01111110 01111110 . . . .
Do SDLC không có qui định chặt chẻ về mã dùng cho dữ liệu nên các mã có dạng của cờ có thể xuất hiện trong bản tin và gây nên nhầm lẫn ở máy thu. Để tránh sự hiểu lầm ở máy thu khi nhận dữ liệu, máy phát dùng kỹ thuật nhồi bit nghĩa là khi thấy trong chuỗi dữ liệu có 5 bit 1 liên tiếp thì thêm vào bit 0 ngay sau 5 bit 1 này. Ở máy thu sau tín hiệu cờ khi gặp liên tiếp 5 bit 1 thì tự động bỏ bit 0 theo sau đó để phục hồi dữ liệu. Như vậy bảo đảm sự chính xác của dữ liệu.
Thí dụ: Trạm B có địa chỉ là C2 phát đi văn bản “C?”
- Khung thông tin chưa nhồi bit: (Viết theo chiều mũi tên hướng về bên trái)
01111110 01000011 01111110 11111110 11000011 11110110
Cờ Đ/c= C2 TĐK mã “=7F mã C= C3 mã ?= 6F
11111110 FCS 01111110 111111111111. . . .
“=7F Cờ Bit nghỉ
- Khung thông tin có bit nhồi (o):
01111110 01000011 011111o10 11111o110 11000011 111o10110
Cờ Đ/c= C2 TĐK mã “=7F mã C= C3 mã ?= 6F
11111o110 FCS 01111110 111111111111. . . .
“=7F Cờ Bit nghỉ
b. Trường địa chỉ (Address field)
Trường địa chỉ dùng để xác định trạm thứ cấp trong hệ thống. Địa chỉ trong bản tin luôn luôn là địa chỉ của trạm thứ cấp dù nó do trạm sơ cấp hay thứ cấp gửi đi.
Trường này không cần thiết trong trường hợp hệ thống chỉ gồm hai trạm.
Trường địa chỉ dài 8 bit. Nếu tất cả các bit trong trường địa chỉ đều =1 có nghĩa trạm sơ cấp yêu cầu liên lạc với tất cả trạm thứ cấp.
Giá trị 00 không được xem là một địa chỉ (gọi là void address)
c. Trường điều khiển (Control field) (H 6.5)
SDLC định nghĩa 3 loại khung của trường điều khiển, mỗi loại có dạng khác nhau
Một hoặc hai bit đầu tiên của trường điều khiển dùng định nghĩa khung : bit thứ nhất = 0 chỉ khung thông tin, bit thứ nhất và hai = 10 chỉ khung giám sát và = 11 chỉ khung không số. Những bit còn lại được tổ chức như những tập bit con mà ý nghĩa của nó sẽ được giải thích cụ thể đối với từng loại khung.
Một frame của SDLC được coi là bất hợp lệ nếu nó không được đóng khung bởi 2 Cờ ở hai đầu hoặc có tổng kích thước các vùng nằm giữa 2 Cờ nhỏ hơn 32 bit.
1 (LSB) 2 3 4 5 6 7 8
I : Information | 0 | Ns | P/F | Nr | |
S : Supervisory | 1 | 0 | S | P/F | Nr |
U : Unnumbered | 1 | 1 | M | P/F | M |
Ns = Send sequence number Nr = Receive sequence number
S = Supervisory function bits M = Unnumbered function bits
P/F = Poll/Final bit
(H 6.5) Dạng trường điều khiển
- Khung loại I: (Thông tin, Information frame, I-frame) , đây là khung chứa bản tin cần phát đi của người sử dụng.
Khi khung I được dùng thì bản văn phát đi được đánh số thứ tự.
Bit 5 trong khung thông tin có tên là bit P/F (Poll/Final).
* Nếu bản tin phát đi từ trạm sơ cấp đến trạm thứ cấp thì đây là bit P, nếu P=0 thì trạm thứ cấp không cần thiết phải trả lời ngay, nếu P=1 thì đây là bit thăm dò và trạm thứ cấp phải trả lời ngay.
* Nếu bản tin phát đi từ trạm thứ cấp đến trạm sơ cấp thì đây là bit F, nếu F=0 thì đây chưa phải là bản tin cuối cùng và trạm sơ cấp không cần thiết phải trả lời ngay, nếu F=1 có nghĩa đây là bản tin cuối cùng và trạm sơ cấp phải trả lời ngay.
* Ns chỉ số thứ tự bản tin đang được phát đi.
* Nr là số thứ tự nhận, nếu phát đi từ trạm sơ cấp thì liên hệ đến số Ns phát đi từ trạm thứ cấp và nếu phát đi từ trạm thứ cấp thì liên hệ với Ns phát đi từ trạm sơ cấp. Nr chỉ số thứ tự bản tin mà trạm đang chờ và đồng thời xác nhận đã nhận tốt các bản tin trước đó (tức đến số Nr-1)
Thí dụ, trạm thứ cấp phát đi Ns=2 và Nr=3 có nghĩa là nó đang phát đi bản tin thứ 2 và đã nhận tốt các bản tin thứ 2 trở về trước.
Do các số Ns chỉ có 3 bit nên số lượng tối đa mỗi lần phát chỉ được 7 bản tin, như vậy buộc máy thu phải xác nhận trước khi số Ns vượt quá 7 (Ns=111).
Dưới đây là một thí dụ, Giả sử trạm sơ cấp đang phát và các số Nr và Ns đều bắt đầu bằng số 0
Sơ cấp | Thứ cấp | ||
Ns P Nr | Ns F Nr | ||
0 000 0 0000 100 0 0000 010 1 0000 110 0 0100 001 0 0100 101 0 0100 011 0 0100 111 0 0100 000 1 0100 011 0 1010 111 0 1010 000 0 1010 100 1 1010 010 0 1010 110 0 1010 001 0 1010 101 0 1010 011 1 101 | 0 000 0 1100 100 1 1100 010 0 0110 110 0 0110 001 1 01110 00 1 01010 00 1 101(RR)or10 01 1 101(REJ) | Trạm sơ cấp phát 3 khung thông tin.Khung thứ 3 là khung thăm dòTrạm thứ cấp báo nhận với Nr=3.Nó gửi lại 2 khung thông tin.Trạm sơ cấp báo nhận tốt 2 khung với Nr=2. Gửi tiếp 6 khungVì Nr=6, Trạm thứ cấp báo nhận Nr-1=5 khung và yêu cầu phát lại khung 6. Vì trạm sơ cấp không biết chỉ khung 6 hay tất cả các khung theo sau có sai FCS nên nó phát lại tất cả từ khung 6Trạm sơ cấp báo nhận tốt khung 4 với Nr=5.Tiếp tục phát lại khung 6. (Lưu ý là số đếm Ns đã vượt trị cho phép nên trở về 0)Trạm thứ cấp báo nhận tất cả các khung với Nr=2. Vì trạm thứ cấp không còn gì để gửi, khung giám sát được dùng Trạm sơ cấp gửi tiếp 5 khungTrạm thứ cấp xác nhận khung 4 và yêu cầu phát lại từ khung 5 (Nr=5) |
- Khung loại S: (Giám sát , Supervisory frame, S-frame), dùng để đếm số khung gửi/nhận; một số lệnh và lời đáp báo tình trạng của máy thu (như sẵn sàng hay bận) kiểm soát và báo lỗi.
Khung giám sát bắt đầu bởi 2 bit 10.
Bit 3 và 4 (vị trí S trong khung) xác định các lệnh của khung giám sát
b3b4= 00 : Ready to receive (RR)
b3b4= 10 : Not ready to receive (RNR)
b3b4= 01 : Reject (REJ)
Trạm thứ cấp sẽ xóa khung RNR bằng cách gửi một khung thông tin với bit F=1 và đối với các khung RR và REJ thì F=0 hay 1.
Trạm sơ cấp sẽ xóa khung RNR bằng cách gửi một khung thông tin với bit P=1 và đối với các khung RR và REJ thì P=0 hay 1.
- Khung loại U: (Không số, Unnumbered frame, U-frame), cung cấp những chức năng điều khiển phụ như khởi động trạm thu, kiểm tra trạm, giải phóng liên kết khi cần thiết . . . .
Khung không số bắt đầu bởi 2 bit 11.
Khi dùng khung U để phát thì không cần đánh số thứ tự bản tin.
Bảng 6.2 cho các lệnh trong khung U:
Mã nhị phân | Lệnh | Phát đi từ trạm sơ cấp | Phát đi từ trạm thứ cấp | Cho phép phát bản văn |
1100 P/F 0001110 P 0001110 F 0001100 P 0011111 F 0001100 F 0101100 P 0101100 P/F 1101110 F 001 | UISIMRIMSNRMDMRDDISCUAFRMR | xxxxx | xxxxxx | xx |
UI - Unumbered Information (NSI - Nonsequenced Information): Cho phép dữ liệu người sử dụng được phát theo kiểu không tuần tự
SIM - Set Initialization Mode: Dùng để khởi tạo một cuộc liên lạc giữa trạm sơ và thứ cấp. Lệnh này sẽ reset số đếm Ns và Nr và trạm sơ cấp chờ trạm thứ cấp trả lời với lệnh UA.
RIM - Request Initialization Mode (RQI - Request Initialization): Trạm thứ cấp yêu cầu trạm sơ cấp phát lệnh SIM
SNRM - Set Normal Response Mode: Đặt trạm thứ cấp vào chế độ chỉ trả lời. Trong chế độ này trạm thứ cấp có thể trả lời với các loại khung I, U và S.
Trạm thứ cấp không thể tự đặt mình vào một trong hai chế độ NRM và DISC
DM - Disconnect Mode (ROL - Request On-Line): Được phát bởi trạm thứ cấp để báo cho trạm sơ cấp biết nó đang ở chế độ bình thường không kết nối. Thường khi được báo thì trạm sơ cấp sẽ đặt chế độ trả lời bình thường cho nó (SNRM).
RD - Request Disconnect (RQD - Request Disconnect): Dùng ở trạm thứ cấp để yêu cầu không kết nối.
DISC - Disconnect: Phát bởi trạm sơ cấp để đưa trạm thứ cấp vào chế độ bình thường không kết nối. Ở chế độ này trạm thứ cấp nhận tin nhưng không tác động được vào bản tin.
UA - Unumbered Acknowledgement (NSA - Nonsequenced Ack.): Phục vụ như một tín hiệu ACK (trạm thứ cấp báo nhận) đối với khung SNRM, DISC hoặc SIM.
FRMR - Frame Reject (CMDR - Command Reject): được dùng bởi trạm thứ cấp để từ chối một khung sai FCS.
Để phát lệnh FRMR, trạm thứ cấp phải ở chế độ trả lời bình thường (NRM). Lệnh này báo cho trạm sơ cấp biết khung thông tin trạm thứ cấp nhận được có một trong các lỗi:
- Trường điều khiển không có nghĩa.
- Trường thông tin quá dài (dài hơn bộ đệm của máy thu).
- Số Nr phát từ trạm sơ cấp không có giá trị (không tương thích với số Ns của trạm thứ cấp).
Trạm thứ cấp sau khi phát lệnh này chỉ trở về chế độ bình thường khi nhận được một trong các lệnh đặt chế độ như DISC, SIM hoặc SNRM từ trạm sơ cấp. Ta nói các lệnh này reset lệnh FRMR.
Khi gửi khung FRMR, trạm thứ cấp phải dùng dạng văn bản cố định, trong đó có chỉ rõ lý do sai:
Flag | Addressfield | FRMRcontrol field | control field of rejected frame | [ Ns Nr]0 xxx 0 xxx | [ ]wxyz 0000 | FCS | Flag |
- Nr và Ns là số thứ tự hiện hành của trạm thứ cấp.
Lý do sai xác định bởi các bit wxyz (các số 0 thêm vào sau các bit wxyz cho đủ 8 bit)
- w=1 nếu trạm thứ cấp nhận được lệnh không có giá trị hay không thể thi hành được.
- x=1 khung thông tin không đúng.
- y=1 đệm thu bị tràn.
- z=1 nếu số Nr không khớp với số Ns.
Dưới đây là một thí dụ về mẫu đối thoại trong hệ thống nhiều điểm, phương thức truyền song công hoàn toàn (F/FDX). Trạm A khởi động ở chế độ NRM và trạm B ở chế độ DM
_____________________________________________________________________
Flag A RR FCS Flag Trạm sơ cấp thăm dò trạm A
7E C 1 11 7E
Flag A Text FCS Flag A gửi khung thông tin thứ nhất;
7E C 1 00 7E Nr=Ns=0 , F=0
Flag A Text FCS Flag A gửi khung thông tin thứ hai;
7E C 1 02 7E Nr= F =0 , Ns =1
Flag A Text FCS Flag A gửi khung thông tin thứ ba;
7E C 1 14 7E Nr=0 , F=1 , Ns=2
Flag A Text FCS Flag Sơ cấp gửi văn bản trả lời;
7E C 1 60 7E Nr=3 , P=0 , Ns=0
Flag A Text FCS Flag Sơ cấp gửi khung thông tin thứ 2;
7E C 1 72 7E Nr=3 , P=1 , Ns=1
Flag A REJ FCS Flag Trạm A báo khung thứ 2 sai FCS;
7E C 1 39 7E Nr=1, F=1
Flag A Text FCS Flag Sơ cấp phát lại khung thứ 2;
7E C 1 72 7E Nr=3, P=1, Ns=1
Flag A RR FCS Flag Trạm A báo nhận khung thứ 2;
7E C 1 51 7E Nr=2, F=1
Flag B Text FCS Flag Sơ cấp gửi khung thông tin trạm B;
7E C 2 10 7E Nr=Ns=0, P=1
Flag B DM FCS Flag Trạm B báo nó đang ở chế độ DM;
7E C 2 1F 7E
Flag B SNRM FCS Flag Sơ cấp đặt trạm B vào chế độ NRM;
7E C 2 93 7E Nr=Ns=0, P=1
Flag B UA FCS Flag Trạm B trả lời bằng lệnh UA;
7E C 2 73 7E
Flag B Text FCS Flag Sơ cấp gửi khung tt 1 tới trạm B;
7E C 2 00 7E Nr=Ns=0, P=0
Flag B Text FCS Flag Sơ cấp gửi khung tt 2 tới trạm B;
7E C 2 02 7E Ns=1, Nr=0, P=0
Flag B Text FCS Flag Sơ cấp gửi khung tt 3 tới trạm B;
7E C 2 04 7E Ns=2, Nr=0, P=0
Flag B Text FCS Flag Sơ cấp gửi khung tt 4 tới trạm B;
7E C 2 16 7E Ns=3, Nr=0, P=1
Flag B RR FCS Flag Trạm B báo nhận tất cả các khung;
7E C 2 91 7E Nr=4, F=1
Flag B DISC(Text) FCS Flag Sơ cấp gửi lệnh disconnect tới trạm
7E C 2 53 7E B đồng thời gửi theo một bản tin
Flag B FRMR DISC -- -- FCS Flag Trạm B trả lời với khung FRMR,
7E C 2 97 53 80 02 7E DISC là trường ĐK của lệnh sai
80 Nr=4, Ns=0 : số đếm hiện thời của trạm B
02: x=1: Bản văn không được phép
Flag B DISC FCS Flag Sơ cấp gửi lệnh disconnect tới trạm B
7E C 2 53 7E
Flag B UA FCS Flag Trạm B trả lời với lệnh UA;
7E C 2 73 7E
______________________________________________________________________________________
d. Trường thông tin (Information field)
Trường thông tin xuất hiện trong khung I , đôi khi trong khung U. Trường thông tin có thể chứa một số bit bất kỳ là bao nhiêu, chiều dài của nó không xác định nhưng thường là bội của 8.
e. Trường kiểm tra khung (Frame check sequence field, FCS)
Trường kiểm tra khung FCS chứa nội dung chỉ phương pháp thực hiện việc kiểm tra. FCS thông dụng trong SDLC là loại 16 bít kiểm tra độ dư thừa theo chu kỳ (CRC) do CCITT thiết lập (CRC-16).
Vận hành
Vận hành của SDLC bao gồm việc trao đổi các khung I, khung S và khung U giữa trạm sơ và thứ cấp hay giữa hai trạm sơ cấp.
Ngoài các lệnh đề cập ở trên, ta lưu ý thêm vài chi tiết sau:
- Bản văn báo bỏ: đó là bản văn chứa từ 7 đến 14 số 1 liên tiếp (bit nhồi không được thêm vào cho đoạn văn bản này), ở máy thu, sau khi nhận được Flag, nếu gặp liên tiếp từ 7 đến 14 số 1 thì hiểu rằng không phải quan tâm tới tất cả những gì nhận được cho đến lúc đó. Xung đồng bộ vẫn được duy trì khi nhận được bản văn báo bỏ. Điều kiện bỏ cũng dùng để kết thúc một khung và bắt đầu cho khung khác ưu tiên hơn.
- Trạng thái nghỉ: Hệ thống vẫn vận hành nhưng không có một khung thông tin hay điều khiển được phát đi thì hệ thống vào trạng thái nghỉ, lúc này máy thu nhận được liên tiếp ít nhất 15 bit 1.
- Mã dùng trong SDLC:
Để đảm bảo máy thu duy trì được đồng bộ phải có một sự thay đổi thường xuyên ở dòng dữ liệu tới. Do đã thực hiện biện pháp nhồi bit nên không bao giờ có quá 5 bit 1 liên tiếp vậy chỉ còn trường hợp một loạt bit 0 liên tiếp có thể xảy ra. Để giải quyết trường hợp này, người ta dùng loại mã non-return-to-zero inverted (NRZI) cho dữ liệu trong SDLC . Tính chất của loại mã này là Không có sự thay đổi mức tín hiệu khi gặp bit 1 và mức tín hiệu bị đảo khi gặp bit 0.
(H 6.6)
- Các bước tiến hành để chuẩn bị phát một bản tin:
* Tạo bản văn và trường điều khiển: Control field Text
* Thêm địa chỉ vào: Address Control field Text
* Tạo khung FCS: Address Control field Text FCS
* Thực hiện nhồi bit: Bit nhồi được thực hiện cho khung thông tin kể từ địa chỉ và khung FCS.
* Thêm các cờ ở đầu và cuối bản tin.
Lưu ý là bit nhồi thực hiện sau khi tính toán cho khung FCS nên trong khung FCS cũng có thể có bit nhồi và ở máy thu phải loại bit nhồi trước khi dùng thuật toán kiểm tra lỗi.
Dưới đây thêm vài ví dụ về các lệnh trong vận hành của SDLC (không ghi lại mã)
Dạng tổng quát của một lệnh A , C/R P/F (0)
A địa chỉ trạm thứ cấp
C/R Lệnh hỏi hoặc lời đáp
Khoảng trống dùng cho số Ns, có thể thêm dấu ( ) vào nếu cần
P/F Poll hoặc Final bit (P = On = Off, tương tự cho F)
(0) số Nr (nếu cần)
1/ Trạm thứ cấp được nối vào đường dây và trao đổi khung I, U
B , RR - P(0) → A Polls B
B , RIM - F B Request Initialization
B , SIM - P → A Sets B to initialization mode
B , UA - F B Acknowledges
B is brought online through system procedures when initialization complete
B , SNRM - P → A Set B 's response mode.Nr and Ns counts are reset to 0
B , UA - F B Acknowledges
B , RR - P(0) → A Polls B for transmission
B , I(0) (0) → Duplex exchange of numbered I - Frame
B , I(0) (0)
B , I(1) (0) → A Sends frame 1
B , I(2) (0) → A Sends frame 2. B confirms frame 0-1
B , I(1) (2) and sends frame 1
B , I(3) (1) → A confirms frame 0 and sends frame 3
B , I(2) F(3) B confirms frame 2 and sends frame 2
B , RR - P(3) → A confirms frame 1-2 and Poll B
B , RR - F(4) B confirms frame 3 ( B remains in NRM)
-----------------------------------------------------------------------------------------------------------------
2/ Trạm thứ cấp bận
B , I(4) (3) → A sends numbered I - Frames
B , I(5) (3) →
B , I(6) (3) →
B , I(7) (3) →
B , I(0) P(3) → A Polls B
B , RNR - F(0) B becomes busy, but confirms frame 4-7
B , RR - P(3) → A asks if B is still busy
B , RR - F(0) B can receive again and expects frame 0
B , I(0) (3) → A sends frame 0 again
B , I(1) (3) → A continues with frame 1
B , I(2) P(3) → A sends frame 2 and poll B(gửi thăm dò)
B , RR - F(3) B confirms frame 0 - 2 (B remains in NRM)
-----------------------------------------------------------------------------------------------------------------
3/ Trạm sơ cấp bận
B , SNRM - P → A sets B 's response mode and reset the Nr and Ns counts to 0
B , UA - F B Acknowledges
B , RR - P(0) → A Polls B
B , I(0) (0) B sends numbered I - frame
B , I(1) (0)
B , I(2) (0)
B , I(3) (0)
B , RNR - (3)→ A becomes busy, but confirms frame 0 - 2
B , RR - F(0) B stops sending
B , RR - P(3) → A Polls B
B , I(3) (0) B retransmits frame 3
B , I(4) (0) B sends frame 4
(CRC error) A has a CRC error on frame 4
B , RR - P(4) → A Polls B, confirms frame 3
B , I(4) F(0) B sends frame 4 again
B , RR - (5) → A confirms frame 4 (B remains in NRM)
------------------------------------------------------------------------------------------------------------------------------------
4/ Lệnh không có giá trị
B ,XXX- P → A sends frame with an undefined C field.
B , FRMR - F B rejects the frame
Higher level at A processes the status reported by B in FRMR response.
B ,SNRM - P → A resets B 's error condition
Nr and Ns counts are reset to 0.
B , UA - F B acknowledges (B remains in NRM)
------------------------------------------------------------------------------------------------------------------------------------
5/ Số thứ tự sai trong trao đổi song công
B , RR - P(0) → A polls B for transmission
B , I(0) (0) B sends numbered I- frame
B , I(0) (0) →
B , I(1) (0) Duplex exchange of numbered I - Frame
B , I(2) (0)
(CRC error) B receives frame 0 with CRC error
B , I(1) (2) → A ' s frame 1 is out of numerical order
(Lẻ ra phải phát lại khung 0)
B , I(3) (0)
B , I(4) F(0)
B , SREJ - (0) B expects frame 0.
B , I(0) (5) → A sends frame 0 again and confirms
frame 0 - 4
B , I(5) F(0) B sends final I--frame
B , I(1) (5) → A retransmits frame 1
B , RR - P(6) → A confirms frame 5 and polls B for
confirmation
B , RR - F(2) B confirms frame 1 (B remains in NRM)
-----------------------------------------------------------------------------------------------------------------
Các thí dụ cho hệ multipoint
Các trạm thứ cấp online, trạm sơ cấp gửi tín hiệu tới một trạm thứ và đồng thời nhận tín hiệu từ một trạm khác
6/ B , RR - P → A Polls B for status
B , RIM - F B asks for initialization mode
B , SIM - P → A sets B to initalization mode
B , UA - F B acknowledges
B is brough on line through system procedures when initialization is complete
B , SNRM - P → A sets B on line. Nr & Ns counts are reset
B , UA - F B acknowledges
n , RR - P(0) → A Polls n for transmission
B , I(0) (0) →
n , I(0) (0) n sends numbered frames to A while A sends to B
B , I(0) (0) →
n , I(1) (0)
n , I(2) (0)
n , I(3) (0) n completes its transmission of numbered frames
B , RR - P(0) → A Polls B for confirmation
B , I(1) - P(0)
B , RR - F(2) B confirms 0 - 1
n , RR - (4) → A confirms frames 0-3 (B&n remain in NRM)
7/ n , I(0) (4) → A sends numbered frames to n
B , I(2) (0) → A sends numbered frames to B
n , I(1) P(4) → A concludes sending to n and requests confirmation
B , I(3) (0) → n , RR - F(2) A continues sending to B, n confirms frame 0 - 1
B , I(4) P(0) → A concludes sending to B and requests confirmation
B , RR - F(5) B confirms (B & n remain in NRM)
Ví dụ 6, các trạm thứ cấp được kết nối, trạm sơ cấp gửi tín hiệu tới một trạm trong khi nhận tín hiệu của trạm khác
Ví dụ 7, trạm sơ cấp gửi tín hiệu tới các trạm thứ cấp.
So sánh giữa Bisynch và SDLC:
Bisynch là giao thức hướng ký tự trong lúc SDLC là giao thức hướng bit. Bisynch có thể dùng mã ASCII hay EBCDIC trong lúc SDLC chỉ dùng EBCDIC. Để dò lỗi, nếu là ASCII thì dùng phép kiểm tra khối (BCC) còn khi dùng mã EBCDIC thì dùng kiểm tra dư thừa theo chu kỳ (CRC) với chiều dài mã kiểm tra là 2 byte. Cả hai giao thức đều dùng chung kích thước khung thông tin là 256 byte. Ở Bisynch có chế độ thông suốt dữ liệu (để tránh nhầm lẫn dữ liệu và ký tự điều khiển) trong lúc ở SDLC thì dùng phương pháp nhồi bit (để tránh nhầm lẫn với mã Cờ).
Giao thức Điều khiển liên kết dữ liệu cấp cao (HDLC)
HDLC được ISO cho ra đời năm 1975 nhằm bổ sung một số chức năng của SDLC của IBM. Một số bổ sung có thể kể ra như sau:
- Trường địa chỉ mở rộng, gồm nhiều byte:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 8n
0 | 0 | ------------- | 1 |
(H 6.7) Trường địa chỉ mở rộng
Trong trường địa chỉ mở rộng, địa chỉ xác định bơi một số là bội của 7 bit. Bit LSB trong một byte là 0 hoặc 1 (là 0 khi byte đó chưa phải là byte cuối cùng và là 1 khi là byte cuối cùng của trường địa chỉ) 7 bit còn lại hình thành địa chỉ của trạm thứ cấp (H 6.7).
- Trường điều khiển mở rộng, gồm 2 byte (H 6.8):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Information | 0 | Ns | P/F | Nr | |||||
Supervisory | 1 | 0 | S | 0 | 0 | 0 | 0 | P/F | Nr |
Unnumbered | 1 | 1 | M | 0 | M | P/F | 0 0 0 0 0 0 0 0 |
(H 6.8) Trường điều khiển mở rộng
Trong trường điều khiển mở rộng, các số Ns và Nr gồm 7 bit như vậy cho phép phát một lần 127 bản tin.
- Dạng khung dữ liệu: SDLC chỉ dùng mã EBCDIC 8 bit còn HDLC cho phép dùng bất cứ loại mã nào
- Dạng khung giám sát: ngoài các lệnh RR, RNRvà REJ, HDLC có thêm lệnh SREJ (selective reject), lệnh này do thứ cấp yêu cầu phát lại một khung có số Nr.
- HDLC có thêm 2 chế độ vận hành:
* Chế độ trả lời bất đồng bộ (Asynchronous Response Mode - ARM) : đây là dạng truyền không cân bằng. Trạm thứ cấp có thể khởi động để phát mà không cần lệnh của trạm sơ cấp. Nó có thể trả lời mà không cần phải nhận được một khung với bit P =1. Tuy nhiên, khi nó nhận được một khung với bit P =1 thì khung trả lời phải có bit F =1. Trong trường hợp này F=1 không có nghĩa là khung cuối cùng của trạm thứ cấp.
- Chế độ không kết nối bất đồng bộ (Asynchronous Disconnect Mode - ADM) : ADM tương tự như DM ngoại trừ một điểm là trạm thứ cấp có thể khởi động chế độ DM hay RIM bất cứ lúc nào.