Trong chế độ này, trạm sơ cấp khởi động việc trao đổi dữ liệu, trạm thứ cấp chỉ có thể truyền khi nhận được chỉ thị đặc biệt của trạm sơ cấp.. Chế độ này thường được sử dụng trong các cấ
Trang 1ĐẠI HỌC MỎ- ĐỊA CHẤT KHOA CÔNG NGHỆ- THÔNG TIN
BÁO CÁO BÀI TẬP NHÓM
Đề tài : TÌM HIỂU GIAO THỨC HDLC
GVHD: Ths Trần Thị Thu Thúy
Sinh viên thực hiện : Nhóm 05
Nguyễn Thị Kim Oanh : 1421050539
Đỗ Thị Bích Phượng : 1421050156
Trần Công Quyết : 1421050162
Phạm Tấn Sang : 1421050166
Phạm Ngọc Sáng : 1421050570
Hà Nội, tháng 12/2017
Trang 2PHỤ LỤC
Trang 3I Giới thiệu giao thức HDLC
1. Khái niệm.
-Giao thức HDLC là giao thức liên kết dữ liệu mức cao, thuộc tầng 2 –tầng liên kết dữ liệu-trong mô hình tham chiếu OSI
-Giao thức HDLC là một giao thức chuẩn hóa quốc tế và đã được định nghĩa bởi ISO để dùng cho cả liên kết điểm- nối- điểm và đa điểm Nó hỗ trợ hoạt động ở chế độ trong suốt, song công hoàn toàn và ngày nay được dùng một cách rộng rãi trong các mạng đa điểm và trong các mạng máy tính
-Tiền thân của HDLC là giao thức SDLC (Synchronuous Data Link Control) Đây là một nghi thức liên kết dữ liệu rất quan trọng, rất nhiều nghi thức liên kết dữ liệu khác tương
tự hoặc dựa trên nghi thức này HDLC là một nghi thức hướng đến bit
2. Nghi thức điều khiển liên kết dữ liệu cấp cao ( High-level Data Link Control-HDLC)
a Đặc điểm chung của giao thức HDLC là:
- Hoạt động ở chế độ full-duplex
- Liên kết điểm-nối-điểm hoặc đa điểm
- Truyền dẫn đồng bộ
Trang 4- Điều khiển lỗi “Continuous RQ”.
- Dùng cho các liên kết với giá trị lớn và nhỏ của a ( ví dụ vệ tinh và kết nối trực tiếp khoảng cách ngắn)
b Ưu điểm:
- Không phụ thuộc mã điều khiển
- Khả năng thích ứng
- Hiệu quả cao
- Độ tin cậy cao
c Cấu hình mạng dùng HDLC
Hình 1: Cấu hình mạng dùng HDLC
II Các đặc tính cơ bản của HDLC
1. Cấu hình liên kết.
• Phân loại các trạm:
-Trạm chính, trạm sơ cấp (Primary Station)
+ Điều khiển hoạt động của liên kết
+ Các khung (frame) phát ra được gọi là lệnh (command)
Trang 5-Trạm phụ, trạm thứ cấp (Secondary Station)
+ Hoạt động dưới sự điều khiển của trạm sơ cấp
+ Các khung phát ra được gọi là đáp ứng
+ Trạm sơ cấp duy trì các liên kết luận lý riêng cho các trạm thứ cấp
-Trạm kết hợp (Combined Station)
+ Kết hợp đặc điểm của cả trạm sơ cấp và trạm thứ cấp
+Có thể phát ra các lệnh và đáp ứng
• Cấu hình liên kết:
- Không cân bằng (Unbalanced)
+ Bao gồm một trạm sơ cấp, một hoặc nhiều trạm thứ cấp
+ Hỗ trợ truyền Half-Duplex và Full-Duplex
-Cân bằng (Balanced)
+ Bao gồm 2 trạm tổ hợp
+ Hỗ trợ truyền Half-Duplex và Full-Duplex
2. Các chế độ hoạt động của giao thức HDLC
-HDLC có 3 chế độ hoạt động:
+ Chế độ đáp ứng thông thường NRM (Normal Response Mode): Chế độ này được dùng trong cấu hình không cân bằng Trong chế độ này, trạm sơ cấp khởi động việc trao đổi dữ liệu, trạm thứ cấp chỉ có thể truyền khi nhận được chỉ thị đặc biệt của trạm
sơ cấp Liên kết này có thể là điểm-nối-điểm hay đa điểm Trong trường hợp đa điểm chỉ cho phép một trạm sơ cấp
+ Chế độ đáp ứng bất đồng bộ ARM (Asynchronous Response Mode): Chế độ này cũng được dùng trong cấu hình không cân bằng Nó cho phép một trạm thứ cấp xúc tiến một hoạt động truyền mà không cần sự cho phép từ trạm sơ cấp Chế độ này thường được sử dụng trong các cấu hình điểm-nối-điểm và các liên kết song công và cho phép thứ cấp truyền các frame một cách bất đồng với bộ sơ cấp
+ Chế độ cân bằng bất đồng bộ ABM (Asynchronous Balanced Mode): Chế độ này được dùng chủ yến trên các liên kết song công điểm-nối-điểm cho ứng dụng truyền số liệu máy tính-đến-máy tính và cho các kết nối giữa máy tính và mạng số liệu công cộng (PSDN) Trong chế độ này, mỗi trạm có một trạng thái như nhau và thực hiện cả hai chức năng sơ cấp và thứ cấp Nó là chế độ được dùng trong giao thức nổi tiếng X.25
III Cấu trúc khuôn dạng Frame.
1. Cấu trúc chung.
-Các khuôn dạng của frame: Không giống như BSC, trong HDLC cả số liệu và thông tin điều khiển đều được tải trong cùng một dạng frame chuẩn Dạng frame này được trình
Trang 6bày trên hình 2 cùng với các kiểu frame khác nhau được xác định trong vùng điều khiển của phần header Có 3 nhóm frame được dùng trong HDLC:
+ Các frame không đánh số: Các frame này được dùng cho các chức năng như thiết lạp liên kết và xóa liên kết Tên được gọi là không đánh số vì chúng không chứa bất kì thông tin báo nhận bào, nên cũng không có chỉ số tuần tự
+ Các frame thông tin: Các frame này mang các thông tin thực hay số liệu và thường được xem như là các I-frame Các I-frame cũng có thể được dùng để tải thông tin báo nhận liên hệ đến luồng I-frame theo hướng ngược lại khi liên kết đang hoạt động ở chế độ ABM hay ARM
+ Các frame quản lý: Các frame này được dùng đẻ kiểm soát lỗi và điều khiển luồng, do đó chứa các số tuần tự truyền và nhận
-Cấu trúc chung của một frame
+ HDLC sử dụng chế độ truyền tải đồng bộ, các bit dữ liệu truyền đi được gói vào trong các khung và sử dụng một cấu trúc khung cho tất cả các loại dữ liệu cũng như thông tin điều khiển
Cấu trúc khung trong giao thức HDLC có dạng như sau:
Trong đó:
+ Flag: Mã đóng khung cho Frame được chọn là 01111110
+ Address: Ghi địa chỉ trạm đích của frame
+ Control: Định danh các loại frame khác nhau
+ Data: Ghi thông tin cần chuyển đi
+ FSC: Mã kiểm tra lỗi
2. Các trường của Frame.
• Cờ điều khiển (Flag)
-Dùng để phân cách khung (đầu và cuối), xác định điểm bắt đầu và kết thúc của khung Giá trị: 01111110
-Có thể dùng vừa là kết thúc khung này, vừa là bắt đầu khung khác
-Sử dụng kỹ thuật chèn bit (bit stuffing) để tránh xuất hiện cờ trong dữ liệu
-Bit stuffing: bit 0 được chèn thêm mỗi khi xuất hiện 5 số 1 liên tiếp trong phần dữ liệu
Ví dụ:
Trang 7Phần dữ liệu ban đầu là:
111111111111011111101111110
Phần dữ liệu sau khi sử dụng kỹ thuật Bit Stuffing:
1111101111101101111101011111010
Ví dụ các lỗi có thể:
• Trường địa chỉ (Address)
-Dùng để xác định trạm thứ cấp đã gửi hoặc sẽ nhận khung
Không cần thiết trong liên kết điểm-nối-điểm nhưng vẫn được giữ để nhất quán
Trường địa chỉ thường dài 8 bit
-Nội dung của vùng địa chỉ phụ thuộc vào chế độ hoạt động Trong NRM, ví dụ trên đường dây đa nhánh, mỗi trạm thứ cấp đều được gán một địa chỉ duy nhất Bất cứ khi nào trạm sơ cấp thông tin với một trạm thứ cấp, thì vùng địa chỉ này chứa địa chỉ của trạm thứ cấp Có thể có địa chỉ được xem như là địa chỉ nhóm và được gán cho một nhóm các trạm thứ cấp Tất cả các frame được truyền với địa chỉ nhóm kèm theo sẽ được tất cả các trạm thứ cấp trong nhóm nhận Tương tự, một địa chỉ broadcast (quảng bá) có thể được dùng để truyền cho tất cả các trạm thứ cấp trên liên kết
-Khi một trạm thứ cấp gửi một thông điệp phúc đáp cho sơ cấp, vùng địa chỉ luôn chứa địa chỉ duy nhất của thứ cấp này Trong trường hợp các mạng lớn có nhiều trạm thứ cấp, vùng địa chỉ có thể được mở rộng hơn 8 bit Bit có ý nghĩa nhỏ nhất trong mỗi vùng 8 bit được dùng để chỉ định phía sau nó có một octet (byte) nào khác không Nếu bit này
là 0 thì phía sau có một octet khác, ngược lại thì đây là octet sau cùng (hay chỉ có một
Trang 8octet) Lưu ý rằng trong ABM vùng địa chỉ không được dùng theo cách này bởi chỉ có các liên kết điểm-nối-điểm trực tiếp Thay vì vậy, nó được dùng để dịnh hướng cho các lện và các đáp ứng liên hệ với chúng
-Khi trường địa chỉ có giá trị là 11111111 thì đây là địa chỉ broadcast (gửi đến tất cả) Vùng địa chỉ nhận dạng trạm thứ cấp đã gửi frame, và là vùng không cần đến trong các liên kết điểm-nối-điểm Tuy nhiên, đối với liên kết đa điểm thì vùng địa chỉ có thể là 8 bit_chế độ thường_ hoặc là bội số của 8 bit_chế độ mở rộng Trong trường hợp sau, bit
1 của octet địa chỉ có giá trị thấp nhất được set là 0 và bit 1 trong octet sau cùng được set là 1 Các bit còn lại hình thành nên địa chỉ Trong cả hai chế độ, địa chỉ có tất cả các bit đều là 1 được dùng làm địa chỉ broadcast
• Trường điều khiển (Control)
Trường này dùng để xác định loại khung
Tương ứng với 3 khuôn dạng của frame có 3 loại trường điều khiển:
+ Khung thông tin I-frame chứa dữ liệu cần truyền điều khiển dòng và điều khiển lỗi được gửi kèm trong các khung thông tin (Piggybacking)
+ Khung giám sát (S-frame, Supervisor Frame) dùng cho ARQ khi Piggybacking không được dùng
+ zKhung không số (Unnumbered frame, U-frame) bổ sung các chức năng điều khiển liên kết
Trang 9Hình 2: 8 bit trường điều khiển được hình thành 3 loại khung.
-Giao thức HDLC sử dụng một cửa sổ trượt với số thứ tự khung 3 bít Trường seq trong khung I để chỉ số thứ tự của khung thông tin hiện tại Trường Next để chỉ số thứ tự của khung thông tin mà bên gởi đang chờ nhận ( thay vì là khung đã nhận tốt như giao thứ cửa sổ trượt đã giới thiệu ở phần trước)
-Bit Poll/Final: ý nghĩa tùy theo ngữ cảnh
Trong khung lệnh (Command Frame)
+ Ý nghĩa là bit P
+ 1 để mời gọi (Poll) khung đáp ứng của các trạm ngang hàng
Trong khung đáp ứng (Response Frame)
+ Ý nghĩa là bit F
+ 1 là chỉ thị khung đáp ứng là kết quả của lệnh mời gọi
-Khung S (Supervisory Frame) là khung điều khiển, dùng để kiểm soát lỗi và luồng dữ liệu
trong quá trình truyền tin Khung S có 4 kiểu được xác định bởi tổ hợp giá trị của 2 bit trong trường Type
+ SS=00 RR (Receive Ready), là khung báo nhận, thông báo sẵn sàng nhận dữ
liệu, đã nhận tốt đến khung Next-1 và đang đợi nhận khung Next Được dùng đến khi không còn dữ liệu gửi từ chiều ngược lại để vừa làm báo nhận (Figgyback)
+ SS=01 REJ (Reject): đây là một khung báo không nhận (Negative
Acknowledge), yêu cầu gửi lại các khung từ khung Next
+ SS=10 RNR (Receive Not Ready): thông báo không sẵn sàng nhận tin, đã nhận đến khung thứ Next-1, chưa sẵn sàng nhận khung Next
+ SS=11 SREJ (Selective Reject): yêu cầu gửi lại một khung có số thứ tự là Next
-Khung U (Unnumbered Frame) thường được sử dụng cho mục đích điều khiển đường
truyền, nhưng đôi khi cũng được dùng để gởi dữ liệu trong dịch vụ không nối kết Các lệnh của khung U được mô tả như sau:
+ 1111P100: Lệnh này dùng để thiết lập chế độ truyền tải SABM (Set Asynchronous Balanced Mode)
+ 1100P001: Lệnh này dùng để thiết lập chế độ truyền tải SNRM (Set Normal Response Mode)
+ 1111P000: Lệnh này dùng để thiết lập chế độ truyền tải SARM (Set Asynchronous Response Mode)
+ 1100P010: Lệnh này để yêu cầu ngắt xóa nối kết DISC (Disconnect)
+ 1100F110 UA (Unnumbered Acknowledgment) Được dùng bởi các trạm thứ cấp
để báo với trạm sơ cấp rằng nó đã nhận và chấp nhận các lệnh loại U ở trên
Trang 10+ 1100F001 CMDR/FRMR (Command Reject/Frame Reject) Được dùng bởi trạm thứ cấp để báo rằng nó không chấp nhận một lệnh mà nó đã nhận chính xác Khung thông tin và khung giám sát có thể mở rộng 16 bit, Sử dụng chỉ số tuần tự là 7 bit
• Trường thông tin (Information)
Chỉ có trong các khung thông tin (I-frame) và một số khung không số (U-frame)
Phải là một số nguyên các octet (8 bits)
Chiều dài thay đổi, giới hạn tùy thuộc vào hệ thống
• Trường FCS
-Dùng để phát hiện lỗi
-Được tính dựa trên các bit còn lại của khung
-CRC 16 bit, Có thể dùng CRC 32 bit
Trang 11-Tuần tự kiểm tra frame FCS (Frame Check Sequence) là một mã CRC 16 bit cho toàn bộ phần nội dung của frame được đóng bởi 2 cờ Đa thức sinh được dùng với HDLC thường là CRC-CCITT:
X16 + X12 + X5 + 1
-FCS được tăng cường bởi các thủ tục khác nhằm làm cho sự kiểm tra tinh vi hơn Ví dụ như thêm 6 bit 1 vào đuôi của số bị chia trước khi chia (thay vì bit 0) và đảo ngược số
dư Điều này có tác dụng là làm cho số dư được tính lại bởi máy thu không phải tất cả đều là 0 mà là một mẫu bit đặc biệt_0001 1101 0000 1111
IV Hoạt động của giao thức
1. Quản lý liên kết, tạo kết nối.
-Trước khi truyền bất kỳ thông tin số liệu nào giữa sơ cấp và một trạm thứ cấp trên một liên kết đa điểm hoặc giữa hai trạm được nối với nhau qua một liên kết điểm-nối-điểm, một cầu nối luận lý giữa 2 chủ thể truyền tin phải được thiết lập Điều này được hoàn thành nhờ sự trao đổi 2 frame không đánh số
-Trong một liên kết đa điểm, trước tiên trạm sơ cấp truyền một SNRM- frame với bit P/F được set là 1 và địa chỉ của thứ cấp được đặt trong vùng địa chỉ Thứ cấp đáp ứng bằng một UA- frame với bit kết (final) được set là 1 cùng với địa chỉ của nó trong vùng địa chỉ Như chúng ta có thể thấy, thủ tục thiết lập có tác dụng khởi động các biến tuần tự trong mỗi trạm Các biến này được dùng trong các thủ tục điều khiển luồng và kiểm soát lỗi Cuối cùng, sau khi tất cả số liệu đã được truyền, liên kết bị xóa khi sơ cấp gửi một DISC- frame và thứ cấp đáp ứng một UA- frame
-Các chế độ đáp ứng:
+ Chế độ đáp ứng thông thường trên liên kết đa điểm
+ Chế độ cân bằng bất đồng bộ trên liên kết điểm-nối-điểm
-Thủ tục thiết lập một liên kết điểm-nối-điểm giống như thủ tục thiết lập liên kế được dùng trong liên kết đa điểm Tuy nhiên, chế độ đáp ứng thông thường trên liên kết đa điểm thì ABM được chọn và do đó một SABM- frame được truyền trước tiên Trong chế độ này cả 2 phía của liên kết đều có thể khởi động truyền các I- frame một cách độc lập, vì vậy mỗi trạm thường là một trạm kết hợp cả sơ cấp và thứ cấp Cả hai trạm đều có thể khởi động và xóa liên kết trong chế độ này Trong chế độ cân bằng bất đồng bộ trên liên kết điểm-nối-điểm, trạm A khởi động thiết lập liên kết còn trạm B khởi động xóa
Trang 12cầu nối luận lý này (sau khi đã truyền xong dữ liệu) Chỉ cần một lần trao đổi các frame này đã thiết lập một liên kết theo cả hai hướng Như chúng ta có thể thấy, vùng địa chỉ được dùng để định hướng cho frame lệnh ( SABM/DISC) và các đáp ứng liên hệ với
nó Nếu máy thu từ chối lệnh thiết lập cầu nối trong cả 2 chế độ, nó sẽ phúc đáp một DM- frame (Disconnected Mode-frame) khi nhận frame xác lạp chế độ (SNRM hoặc SABM) DM-frame chỉ ra rằng trạm đang đáp ứng cắt cầu nối luận lý
-Tóm tắt quá trình khởi tạo kết nối:
Gửi U-frame khởi tạo 1 trong 6 chế độ:
+ SNRM/SNRME
+ SARM/SARME
+ SABM/SABME
Nếu đồng ý kết nối gửi lại U-frame UA (Unnumbered Acknowledged)
Nếu không đồng ý kết nối gửi lại U-frame DM (Disconnected Mode)
2. Trao đổi dữ liệu
Sau khi đã thiết lập kết nối giữa các trạm thì quá trình trao đổi dữ liệu bắt đầu được diễn ra
I-frame:
Cả hai bên đều có thể gửi I-frame (chỉ số tuần tự bắt đầu từ 0)
– Mỗi frame có số thứ tự N(S)
– Cơ chế ACK:
+ N(S) = số thứ tự của frame đang gửi
+ N(R) = số thứ tự của frame đợi nhận tiếp theo, xác nhận đã nhận OK các frame
có số thứ tự đến N(R)-1
– Sử dụng 3 hoặc 7 đánh số thứ tự các frame: Kích thước cửa sổ cực đại là 7 hoặc 127
– P/F: Trong NRM, chế độ hỏi vòng của primary (P=1), secondary thiết lập F=1 khi gửi đáp ứng với khung I cuối cùng
S-frame:
Các S-frame có thể được dùng để điều khiển dòng và điều khiển lỗi nếu:
– RR : SS=00, ACK đã nhận OK N(R)-1 frame
– RNR : SS=10, bên nhận bận, sau đó phải phát RR để tiếp tục nhận dữ liệu ACK
đã nhận OK frame N(R)-1, không nhận tiếp các I-frame
Trang 13– REJ : SS=01, NACK frame N(R) đầu tiên có lỗi, phải gửi lại frame N(R) và các frame sau đó
– SREJ : SS=11, NACK cho frame N(R) và yêu cầu truyền lại frame này
(Selective Repeat)
U-frame:
– Cung cấp commands + response: mode settings, recovery
– Mode settings: thiết lập chế độ liên kết
+ SABM: Set Asynchronous Balanced Mode
+ UA: ACK đã chấp nhận các lệnh thiết lập chế độ
+ DISC: Hủy bỏ liên kết logic đã thiết lập
– Truyền tin giữa các trạm sử dụng unnumbered info (UI)
– Recovery: khi error/flow control không thực hiện được
+ FRMR: frame có FCS đúng, nhưng sai cú pháp
+ RSET: Tx khởi tạo lại số thứ tự các frame được gửi
3. Ngắt các kết nối
-Một trong hai bên ngắt kết nối bằng cách gửi U-frame DISC (Disconnect) Bên kia phải chấp nhận ngắt kết nối, gửi lại U-frame UA (Unnumbered Acknowledgement) Các khung quá độ có thể bị mất (việc phục hồi phải do các lớp trên)
Ví dụ hoạt động của HDLC:
Hình 3: Hoạt động của HDLC