Truyền thông dữ liệu - Chương 5: Cơ sở của giao thức - Nguyễn Hồng Sơn

Các yếu tố cơ bản của giao thức  Chế độ truyền (Transmission Mode)  Encapsulation/Decapsulation  Error control  Flow control  Thể lệ và qui trình hoạt động

pdf26 trang | Chia sẻ: thuongdt324 | Lượt xem: 721 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Truyền thông dữ liệu - Chương 5: Cơ sở của giao thức - Nguyễn Hồng Sơn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1CƠ SỞ CỦA GIAO THỨC TS. NGUYỄN HỒNG SƠN Bộ môn Mạng máy tính và Truyền số liệu Học viện Công nghệ Bưu Chính Viễn Thông CHƯƠNG 5 2Các yếu tố cơ bản của giao thức  Chế độ truyền (Transmission Mode)  Encapsulation/Decapsulation  Error control  Flow control  Thể lệ và qui trình hoạt động 3Các chế độ truyền  Connectionless (best-effort transmission): mục tiêu của giao thức loại này là truyền nhanh nhất có thể, không cài đặt cơ chế kiểm soát lỗi.  Connection-Oriented(reliable transmission): Cài đặt cơ chế kiểm soát lỗi, phương thức phổ biến là BEC với các cơ chế truyền lại khi phát hiện lỗi. Cần xây dựng một kết nối rõ ràng. 4ARQ (Automatic Repeat reQuest)  Là thủ tục kiểm soát lỗi tự động với biện pháp sửa sai chủ yếu là truyền lại.  Có hai loại ARQ:  Idle RQ: truyền có nghỉ (không liên tục)  Continuous RQ: truyền liên tục 5Idle RQ  Còn gọi là send-and-wait hay stop-and-wait  Máy phát truyền một frame và vào trạng thái đợi báo nhận từ máy thu.  Máy thu nhận một frame thấy tốt sẽ gửi một báo nhận ACK (Acknowledgment) cho máy phát  Khi nhận ACK từ máy thu, máy phát tiếp tục truyền frame kế tiếp, vào trạng thái đợi, và cứ thế.  Sửa sai tùy theo phiên bản, có hai phiên bản:  Implicit retransmission: ngầm định(không tường minh, kiểu ẩn)  Explicit request: yêu cầu rõ (tường minh, kiểu hiện) 6N N N+1 N+1 A C K ( N ) A C K ( N + 1 ) Máy phát Máy thu Đợi ACK Đợi ACK time Nguyên lý hoạt động Idle RQ 7Phiên bản của Idle RQ-Implicit Retransmission  Khi phát hiện sai máy thu không gửi bất kỳ thông báo nào  Máy phát dùng cơ cấu timer để tự sửa sai. N N N+1 N+1 A C K ( N ) Máy phát Máy thu stop timer Hết hạn timer time start timer start timer N+1 N+1 A C K ( N + 1 ) stop timerstart timer Timeout N+2 truyề n lại 8Phiên bản của Idle RQ-Explicit Request  Khi phát hiện sai máy thu gửi NAK (Negative ACK)  Máy phát truyền lại sớm hơn. N N N+1 N+1 A C K ( N ) Máy phát Máy thu stop timer time start timer start timer N+1 N+1 A C K ( N + 1 ) stop timer start timer N+2 truyề n lạiN A K ( N + 1 ) stop timer start timer 9Continuous RQ  Truyền liên tục không chờ  Khi nhận tốt máy thu sẽ gửi báo nhận ACK  Ở máy phát, các frame đã truyền chưa có báo nhận được đưa vào danh sách để theo dõi, khi nhận được báo nhận thì frame tương ứng được loại khỏi danh sách.  Ở máy thu cũng duy trì danh sách frame có nhiệm vụ đệm frame và chuyển giao theo đúng thứ tự cho giao thức lớp trên. 10 N N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12 N N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12 A C K ( N ) A C K ( N + 1 ) A C K ( N + 2 ) A C K ( N ) + 3 ) A C K ( N + 4 ) A C K ( N + 5 ) A C K ( N + 6 ) A C K ( N + 7 ) A C K ( N + 8 ) A C K ( N + 9 ) A C K ( N + 1 0 ) N N N+1 N N+1 N+2 N+1 N+2 N+3 N+2 N+3 N+4 N+3 N+4 N+5 N+4 N+5 N+6 N+5 N+6 N+7 N+6 N+7 N+8 N+7 N+8 N+9 N+8 N+9 N+10 N+9 N+10 N+11 N+10 N+11 N+12 N+11 N+12 N NVR N+1 N+1 N+2 N+2 N+3 N+3 N+4 N+4 N+5 N+5 N+6 N+6 N+7 N+7 N+8 N+8 N+9 N+9 N+10 N+10 N+11 N+11 N+12 N+12 NVS N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12 Máy phát Máy thu Nguyên lý hoạt động Continuous RQ 11 Các phiên bản của Continuous RQ  Selective Repeat  SR-Implicit Retransmission  SR-Explicit Request  Go-back-N 12 SR-Implicit Retransmission  Khi phát hiện sai máy thu không gửi bất kỳ thông báo nào.  Máy phát căn cứ vào các ACK trước và sau để suy ra frame bị mất và truyền lại.  Trạng thái truyền lại của máy phát: Treo biến VS, truyền lại, kết thúc truyền lại phục hồi truyền theo biến VS. 13 N N+1 N+2 N+3 N+4 N+1 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N X N+2 N+3 N+4 N+1 N+5 N+6 N+7 N+8 N+9 N+10 N+11 A C K ( N ) A C K ( N + 2 ) A C K ( N ) + 3 ) A C K ( N + 4 ) A C K ( N + 1 ) A C K ( N + 5 ) A C K ( N + 6 ) A C K ( N + 7 ) A C K ( N + 8 ) A C K ( N + 9 ) N N N+1 N N+1 N+2 N+1 N+2 N+3 N+1 N+2 N+3 N+1 N+3 N+4 N+1 N+4 N+5 N+1 N+5 N+6 N+5 N+6 N+7 N+6 N+7 N+8 N+7 N+8 N+9 N+8 N+9 N+10 N+9 N+10 N+11 N+10 N+11 N NVR N+1 N+2 N+1 N+2 N+1 N+2 N+1 N+1 N+1 N+5 N+5 N+6 N+6 N+7 N+7 N+8 N+8 N+9 N+9 N+10 N+10 N+11 N+11 N+12 NVS N+1 N+2 N+3 N+4 N+5 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12 N+4 Vào trạng thái truyền lại Kết thúc trạng thái truyền lại, phục hồi truyền theo VS N+3 N+3 N+4 N+2 N+3 N+4 N+12 14 SR-Explicit Request  Khi phát hiện sai máy thu gửi NAK yêu cầu máy phát truyền lại.  Bổ sung:  Trạng thái truyền lại của máy thu: trong trạng thái truyền lại máy thu không được gửi bất kỳ thông báo nào  Cho phép máy thu báo nhận đại diện ACK(N) báo nhận tốt cho tất cả các frame từ N trở về trước. 15 N N+1 N+2 N+3 N+1 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N X N+2 N+3 N+1 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 A C K ( N ) N A K ( N + 1 ) A C K ( N + 3 ) A C K ( N + 4 ) A C K ( N + 5 ) A C K ( N + 6 ) A C K ( N + 7 ) A C K ( N + 8 ) A C K ( N + 9 ) N N N+1 N N+1 N+2 N+1 N+2 N+3 N+1 N+2 N+3 N+1 N+2 N+3 N+1 N+2 N+3 N+4 N+5 N+6 N+5 N+6 N+7 N+6 N+7 N+8 N+7 N+8 N+9 N+8 N+9 N+10 N+9 N+10 N+11 N+10 N+11 N NVR N+1 N+2 N+1 N+2 N+1 N+1 N+1 N+4 N+4 N+5 N+5 N+6 N+6 N+7 N+7 N+8 N+8 N+9 N+9 N+10 N+10 N+11 N+11 N+12 NVS N+1 N+2 N+3 N+4 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12 Vào trạng thái truyền lại Kết thúc trạng thái truyền lại, phục hồi truyền theo VS N+3 N+2 N+3 N+12 Vào trạng thái truyền lại Kết thúc trạng thái truyền lại, phục hồi truyền ACK N+4 N+5 N+4 16 Go-back-N  Khi máy thu phát hiện sai sẽ gửi NAK yêu cầu máy phát truyền lại.  Khi nhận NAK máy phát phải vào trạng thái truyền lại, dừng truyền frame mới, truyền lại tất cả các frame đang có mặt trong danh sách chờ báo nhận (truyền lại một nhóm). Khi truyền lại hết các frame trong danh sách thì máy phát ra khỏi trạng thái truyền lại và truyền các frame mới theo biến VS.  Sau khi gửi NAK(i), máy thu chỉ tiếp nhận các frame có thứ tự từ i trở đi. 17 N N+1 N+2 N+3 N+4 N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 N N+2 N+3 N+4 N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 A C K ( N ) N A K ( N + 1 ) A C K ( N + 1 ) A C K ( N + 2 ) A C K ( N + 3 ) A C K ( N + 4 ) A C K ( N + 5 ) A C K ( N + 6 ) N N N+1 N N+1 N+2 N+1 N+2 N+3 N+1 N+2 N+3 N+1 N+2 N+3 N+2 N+3 N+4 N+3 N+4 N+4 N+5 N+6 N+5 N+6 N+7 N+6 N+7 N+8 N+7 N+8 N NVR N+1 N+2 N+1 N+3 N+1 N+4 N+1 N+1 N+1 N+2 N+5 N+3 N+6 N+4 N+7 N+5 N+8 N+6 N+9 N+7 N+10 N+8 N+11 N+12 NVS N+1 N+2 N+3 N+4 N+5 N+5 N+5 N+5 N+5 N+6 N+7 N+8 N+9 N+4 Vào trạng thái truyền lại Kết thúc trạng thái truyền lại, phục hồi truyền theo VS N+9 x N+4 N+1 N+2 N+3 N+4 N+1 N+2 N+3 N+4 N+5 18 ĐIỀU KHIỂN LUỒNG (FLOW CONTROL)  Điều khiển luồng nhằm điều tiết hoạt động truyền của máy phát để máy thu không bị tràn bộ đệm thu.  Điều khiển luồng  Harware flow control: Trên các giao tiếp vật lý, ví dụ RTS/CTS  Software flow control, tiêu biểu:  XON/XOFF  Sliding Window (cửa sổ trượt) 19 Sliding Window  Nhằm giới hạn số frame truyền liên tục một lần.  Kích thước cửa sổ truyền xác định số frame truyền liên tục một lần.  Chỉ được truyền frame khi cửa sổ còn mở.  Khi truyền một frame, cửa sổ khép một đơn vị.  Một ACK nhận được từ máy thu khiến cửa sổ mở một đơn vị.  Khi hoạt động bình thường với cửa sổ đã đóng lại hoàn toàn, cứ một ACK nhận thì một frame được truyền, khiến cho cửa sổ như trượt trên trục thời gian. 20 N N+1 N+2 N+3 N+4 Nguyên lý cửa sổ trượt N+5 N+6 N+7 N+8 Cửa sổ truyền K=3A C K A C K Các frame đã được báo nhận Các frame đang đợi truyền Các frame đang đợi báo nhận Dừng luồng 21 Chỉ số tuần tự frame  ARQ hoạt động dựa vào chỉ số tuần tự frame  Trong mỗi frame một vùng có số bit giới hạn xác định chỉ số tuần tự frame. Nếu truyền một lượng frame lớn hơn chỉ số tối đa thì làm sao đánh chỉ số các frame vượt quá?  Nhờ cửa sổ trượt để giải quyết vấn đề đánh chỉ số frame, đánh số theo kích thước cửa sổ.  Với SR đánh vòng từ 0 đến 2K, Go-back-N đánh vòng từ 0 đến K+1 22 7 0 1 2 34 5 6 Go-back-N, với K=7 Selective Repeat, với K=8 0 1 2 3 4 5 678 9 10 11 12 13 14 15 VÍ DỤ VỀ ĐÁNH CHỈ SỐ TUẦN TỰ THEO KÍCH THƯỚC CỬA SỔ 23 QUẢN LÝ LIÊN KẾT  Một liên kết truyền số liệu qua 3 pha:  Pha 1: Thiết lập liên kết  Pha 2: Truyền data  Pha 3: Xóa liên kết  Pha 1 và 3 gọi là quản lý liên kết  Hoạt động liên kết truyền số liệu với 3 pha được xúc tiến qua giao tiếp nội và ngoại (theo mô hình truyền thông ở chương 1)  Giao tiếp nội được thực hiện bằng cách gọi thực thi các hàm primitive 24 Ví dụ dùng hàm thực thể liên quan đến lớp liên kết dữ liệu LS-User data link data link LS-User Máy truyền Máy nhận VS=0 VR=0 L-CONNECT.request L-CONNECT.confirm L-DATA..request L-DISCONNECT.request L-DISCONNECT.confirm SETUP-Frame L-CONNECT.indication L-DATA..indication L-DISCONNECT.indication U A - F r a m e I-Frame A C K - F r a m e DISC-Frame U A - F r a m e thời gian Giao thức liên kết dữ liệu, ví dụ HDLC Giao tiếp nộiGiao tiếp nội Pha 1 Pha 2 Pha 3 25 ĐỀ NGHỊ  Đọc về phương pháp đặc tả giao thức để biết bước đầu phát triển một giao thức, phát triển ứng dụng mạng (lập trình truyền thông).  Đọc chương 6 trong textbook để tiếp cận các giao thức cụ thể, chuẩn bị cho môn mạng máy tính và các công nghệ truyền thông. 26 Bài tập 1. Nếu đã kiểm soát lỗi hoàn hảo thì có cần điều khiển luồng hay không? tại sao? 2. Khi truyền 15 frame theo Selective Repeat, hãy vẽ sơ đồ trình bày việc đánh số frame và hoạt động điều khiển luồng với kích thước cửa sổ K=7? 3.Mô tả quá trình truyền nhận 12 gói tin theo phương pháp selective repeat_explicit request, trong đó gói số 2 và 3 bị máy thu phát hiện sai; ACK (9) bị hỏng; các gói số liệu và gói báo hiệu khác đều tốt ?