Mê Huffman lợi dụng xâc suất xảy ra của câc ký tự khâc nhau mă gân câc từ mê ngắn cho câc ký tự có xâc suất xảy ra lớn vă ngược lại.
Với phương phâp năy số bit trung bình dùng cho mỗi ký tự sẽ giảm. Nhưng do câc mê dăi ngắn khâc nhau, để mây thu phđn biệt được, người ta phải chọn câc từ mê ngắn sao cho không trùng với câc bit đầu của câc từ mê dăi hơn. Gọi lă tính tiền tố (prefix property).
Giải thuật Huffman: Dưới đđy lă câc bước tạo mê Huffman
- Bước 1: Tương ứng với mỗi dữ kiện liín kết một cđy nhị phđn chứa duy nhất một nút. Ở mỗi cđy ghi tần số xuất hiện mă ta gọi lă trọng lượng của cđy.
- Bước 2: Tìm hai cđy nhẹ nhất. Nếu có nhiều hơn hai, ta chọn ngẫu nhiín hai cđy trong số câc cđy có trọng lượng nhẹ nhất, ghĩp chúng lại thănh một cđy đơn với nút gốc mới. Tổng trọng lượng hai cđy năy lă trọng lượng của cđy mới.
- Bước 3: Lặp lại câc bước trín cho tới lúc chỉ còn một cđy duy nhất.
Câc cđy ban đầu trở thănh câc lâ của cđy nhị phđn cuối cùng năy. Ta biết rằng đối với cđy nhị phđn thì chỉ có một đường duy nhất từ gốc cho tới lâ. Với mỗi lâ, đường từ gốc đến nó chính lă mê Huffman tương ứng. Mê năy xâc định bằng câch ghi trị 0 cho nhânh bín trâi vă 1 cho nhânh bín phải (hoặc ngược lại).
Một ưu thế của phương phâp Huffman lă có thể lập trình để thực hiện việc mê hóa. 3.3.2. Mê Run length
Mê Huffman tuy có lăm giảm số bit truyền đi nhưng nó đòi hỏi dữ liệu phải được tập hợp thănh từng nhóm hay ký tự để xâc định tần số lặp lại của câc nhóm hay ký tự năy. Việc năy đôi khi rất khó thực hiện đối với một số loại dữ liệu.
Ví dụ: Trường hợp bản fax, dữ liệu được phât đi không phải lă câc ký tự mă lă câc bit tương ứng với điểm sâng tối trín tờ giấy, như vậy phải có một kỹ thuật phù hợp để nĩn chuỗi dữ liệu năy, đó chính lă mê Run length.
Mê Run length được tạo ra bằng câch quan sât chuỗi bit 0 (hoặc 1) liín tiếp vă thay thế chiều dăi chuỗi bit năy bởi một số nhị phđn. Ở mây thu khi nhận được câc số nhị phđn sẽ thay câc số năy bởi câc bit 0 (hoặc 1) đồng thời chỉn câc bit khâc loại văo.
3.3.3. Mê vi phđn (Differential encoding)
Mê vi phđn (Differential encoding) hay còn goi lă mê tương đối (Relative encoding) Trong nhiều trường hợp, câc dữ liệu liín tiếp nhau thay đổi rất ít .
Ví dụ: Trường hợp mê tín hiệu hình ảnh trong kỹ thuật video, do phải xử lý 30 bân ảnh (khung) trong một giđy để tạo ảnh động, nín chi tiết của câc ảnh không khâc nhau bao nhiíu, thay vì phải nĩn tín hiệu từng khung người ta nghĩ tới việc xâc định sự khâc nhau của câc khung liín tiếp, mê thông tin năy vă gửi đi.
Nguyín tắc của mê vi phđn như sau: khung thứ nhất được phât đi đồng thời lưu ở bộ đệm của mây phât vă thu. Mây phât sẽ so sânh khung thứ hai với khung thứ nhất năy, mê sự khâc biệt vă phât đi dưới dạng một khung. Mây thu khi nhận khung thứ hai, nhờ câc mê chỉ sự khâc biệt mă so sânh với khung thứ nhất (đê lưu trước đó) để tâi tạo khung thứ hai, đồng thời nó lưu khung thứ hai năy trong bộ đệm vă quâ trình tiếp tục với câc khung mới.
3.4. Câc giao thức liín kết dữ liệu.
Kiểm soât lỗi vă điều khiển luồng lă hai thănh phần thiết yếu của một chủ đề tổng quât hơn đó lă giao thức điều khiển truyền số liệu. Về cơ bản, một giao thức lă một tập hợp câc tiíu chuẩn hay quy định phải tuđn theo bởi cả hai đối tâc ở hai dầu, nhằm đảm bảo thông tin đang trao đổi xuyín qua một liín kết số liệu nối tiếp được tiếp nhận vă được biín dịch ra một câch chính xâc. Bín cạnh kiểm soât lỗi vă điều khiển luồng, giao thức liín kết số liệu cũng định nghĩa những chi tiết sau:
Khuôn dạng của mẫu số liệu đang trao đổi, nghĩa lă số bit trín một phần tử thông tin vă dạng lược đồ mê bâo đang được dùng.
Dạng vă thứ tự câc thông điệp được trao đổi để đạt được độ tin cậy giữa hai đối tâc truyền.
C) TĂI LIỆU HỌC TẬP
1. Nguyễn Hồng Sơn (2009), Kỹ thuật truyền số liệu , NXB Lao động xê hội
2. Trần Văn Sư (2005), Truyền số liệu vă mạng thông tin số , NXB ĐH Quốc Gia TP.HCM
D) CĐU HỎI, BĂI TẬP, NỘI DUNG ÔN TẬP VĂ THẢO LUẬN Cđu 1: Trình băy giải phâp chung để kiểm soât lỗi truyền?
Cđu 2: Trình băy vai trò điều khiển luồng(flow control)?
Cđu 3: Hêy tính CRC cho chuỗi dữ liệu sau: 01110011010110
Cho đa thức sinh lă G(x)=x^3+x+1 ?
Cđu 4: Trình băy hoạt động nĩn vă truyền từ gamma theo phương phâp Huffman động.
Cđu 5: Cho khối tin 10010 01101 10111
Lập mê khối cho khối tin trín theo nguyín tắc Paraty lẻ.
Cđu 6: Viết đoạn chương trình cập nhật cđy mỗi khi một ký tự mới được truyền trong phương phâp Huffman động: Cho phĩp dung mê giả.
CHƯƠNG 4
Điều khiển liín kết dữ liệu
Số tiết: 08 (Lý thuyết: 05 tiết, Băi tập: 03 tiết)
A) MỤC TIÍU
Ở chương năy giới thiệu về điều khiển liín kết dữ liệu. Người học cần đạt được câc mục tiíu sau:
+ Sinh viín hiểu về việc cấu hình đường truyền tín hiệu, câc phương phâp điều khiển luồng, điều khiển lỗi, cũng như câc giao thức điều khiển liín kết số liệu.
+ Sinh viín vận dụng kiến thức đê học để hiểu rõ hơn câc giao thức đang được sử dụng trong mạng truyền số liệu, ví dụ mạng LAN vă ISDN.
+ Sinh viín hứng thú khi được học về điều khiển liín kết dữ liệu, tìm hiểu câc giao thức truyền số liệu đang được sử dụng rộng rêi.
B) NỘI DUNG
4.1. Cấu hình đường truyền tín hiệu
Bố trí sắp xếp câc trạm trín không gian/trong môi trường truyền tin Điểm - điểm – hai trạm
ví dụ: giữa hai bộ định tuyến (routers) / mây tính Đa điểm – nhiều trạm:
- Truyền thống lă giữa mây chủ vă mây con (thiết bị đầu cuối) - Hiện nay, thường lă mạng nội bộ (LAN)
Dữ liệu được trao đổi dưới hai dạng
- Bân song công (half duplex): lă chỉ một trạm có thể truyền tại một thời điểm, vă chỉ yíu cầu một đường dẫn.
- Song công (full duplex): lă truyền vă nhận đồng thời giữa hai trạm, vă cần hai đường dữ liệu riíng biệt
4.2. Điều khiển luồng
- Đảm bảo bín truyền không lăm quâ tải bín nhận: nghĩa lă bín nhận thường sử dụng một bộ đệm. Vă bộ đệm năy được quyết định bởi:
+ Thời gian truyền (transmission time): lă thời gian truyền tất cả câc bit văo môi trường truyền, vă phụ thuộc văo chiều dăi của khung
+ Thời gian lan truyền (propagation time): lă thời gian một bit đi từ nguồn đến đích
- Giả thiếtmọi khung đều truyền thănh công, không bị mất, đến đúng thứ tự không lỗi, vă có tồn tại thời gian truyền mỗi khung vă thời gian năy thay đổi.
Hình 4.1. Mô hình của truyền theo khung
- Dừng vă đợi: Lă dạng điều khiển luồng đơn giản nhất. Vă câch lăm việc như sau: + Nguồn truyền khung dữ liệu
+ Đích nhận khung vă trả lời bằng một xâc nhận đê nhận được (acknowledgement - ACK) + Nguồn đợi xâc nhận (ACK) trước khi gửi khung dữ liệu kế tiếp
+ Đích có thể dừng việc truyền bằng câch không gửi xâc nhận (ACK)
4.3. Điều khiển lỗi
4.3.1. Phât hiện vă sửa câc lỗi- Mất khung - Mất khung
- Khung có dữ liệu bị hư 4.3.2. Câc kỹ thuật thường dùng
- Phât hiện lỗi - error detection
- Bâo nhận khẳng định (positive acknowledgment)
- Tự truyền lại sau một khoảng thời gian xâc định (timeout) - Bâo nhận phủ định (negative acknowledgement) vă truyền lại
4.4. Câc giao thức điều khiển liín kết số liệu
Lớp điều khiển số liệu liín quan đến việc chuyển thông tin số liệu qua một lớp liín kết số liệu nối tiếp. Liín kết số liệu có thể lă một kính vật lý điểm-nối-điểm (dùng câp xoắn , câp đồng trục hay câp quang) hoặc một kính vô tuyến như liín kết vệ tinh hoặc một liín kết vật lý hay lôgic qua câc mạng chuyển mạch. Chế độ truyền có thể lă bất đồng bộ vă dựa trín giao thức điều khiển truyền thiín hướng bit hay thiín hướng ký tự. Do đó lớp điều khiển liín kết số liệu lă nền tảng hoạt động của tất cả câc ứng dụng truyền số liệu văthường gọi tắt lă lớp liín kết số liệu.
Trong câc ứng dụng điểm-nối-điểm đơn giản, lớp liín kết số liệu đóng vai trò lă lớp ứng dụng trực tiếp ..Trong câc ứng dụng phức tạp hơn, chẳng hạn như câc ứng dụng thông qua câc mạng chuyển mạch, lớp liín kết số liệu cung cấp một dịch vụ xâc định cho tập hợp câc giao thức mức cao hơn. Tuỳ thuộc văo ứng dụng, dịch vụ user được cung cấp bởi lớp liín kết số liệu có thể lă dịch vụ không tạo cầu nối (connectionless) hay dịch vụ có tạo cầu nối (connection-oriented). Hai loại dịch vụ được trình băy trín sơ đồ tuần tự theo thời gian ở Hình 4.1
Dịch vụ không tạo cầu nối có ý nghĩa lă cho dù có câc bit kiểm tra để phât hiện lỗi, nhưng nếu phât hiện bất kỳ frame năo bị lỗi thì thực thể giao thức lớp liín kết chỉ lăm một thao tâc đơn giản lă loại bỏ frame năy. Dịch vụ năy cũng được xem lă dịch vụ không bâo nhận vă chức năng truyền lại trở thănh một chức năng hiển nhiín của một lớp giao thức cao hơn.
Ví dụ: Được thực hiện trong câc ứng dụng dựa trín câc mạng chuyển mạch trong đó tham số BER của câc đường truyền rất thấp do đó xâc suất truyền lại nhỏ, chẳng hạn như trong câc mạng LAN vă ISDN.
Nhớ lại rằng với loại dịch vụ năy, giao thức liín kết số liệu dùng câc thủ tục kiểm soât lỗi vă điều khiển luồng để tạo ra dịch vụ tin cậy. Do đó xâc suất số liệu không lỗi, không trùng khâ cao vă câc thông điệp sẽ được phđn phối theo thứ tự giống như khi được nạp để truyền đi. Để đạt được điều năy, trước khi truyền bất cứ một frame thông tin năo, một cầu nối logic giữa hai thực thể giao thức được thiết lập thông qua dịch vụ L_CONNECT. Tất cả số liệu được chuyển giao nhờ văo giao thức điều khiển luồng vă truyền lại thích hợp. Khi tất cả câc số liệu đê được trao đổi, cầu nối logic bị xoâ bằng dịch vụ L_DISCONNECT.
Hình 4.1 Câc hăm thực thể dịch vụ lớp điều khiển liín kết dữ liệu: (a) không tạo cầu nối (b) có tạo cầu nối
4.4.1. Câc giao thức thiín hướng ký tự
Câc giao thức thiín hướng ký tự được dùng trong câc ứng dụng điểm-nối-điểm vă cả đa điểm. Đặc trưng của câc giao thức năy lă dùng câc ký tự điều khiển truyền để thực hiện câc chức năng điều khiển liín quan đến quản lý dữ liín kết, đânh dấu đầu vă cuối frame, kiểm soât
lỗi vă “trong suốt” dữ liệu. Trong suốt dữ liệu lă chức năng đặc biệt nhằm ngăn chặn sự nhầm lẫn dữ liệu vă thông tin điều khiển.
Trong khi đề cập đến câc giao thức hướng ký tự, chúng ta đê xem xĩt một liín kết số liệu điểm-nối-điểm vă một luồng frame đơn công (một chiều) để trình băy câc khía cạnh khâc nhau của câc giao thức liín kết.
4.4.1.1. Câc giao thức đơn công (simplex protocols).
Lớp giao thức năy lă đơn giản nhất vì nó chỉ cho phĩp chuyển số liệu theo một hướng từ mây tính (DTE) năy đến một mây tính khâc qua một liín kết số liệu điểm-nối-điểm. Nó được dùng với cấu hình trong Hình 4.2(a). Một ứng dụng tiíu biểu lă truyền tập tin dữ liệu từ mây tính năy đến mây tính khâc. Một trong những giao thức được dùng rộng râi nhất lă kermit. Kermit được dùng rộng rêi để truyền nội dung của một hay nhiều tập tin từ một mây tính năy tới một mây tính kia thông qua một liín kết điểm-nối-điểm. Liín kết có thể lă một kính được thiết lập thông qua mạng điện thoại công cộng (chuyển mạch analog) sử dụng câc modem hay một cặp dđy xoắn đôi với câc bộ điều khiển thu/phât thích hợp. Thường dùng truyền đồng bộ .
Một số phiín bản của Kermit cho phĩp nó truyền tập tin giữa hai mây tính câ nhđn hoặc giữa một mây tính câ nhđn với một mây tính server hay mainframe. Cơ cấu truyền tập tin cơ bản trong mỗi phiín bản lă giống nhau. Câc khâc biệt chủ yếu lă câch thức mă user cảu mây nguồn dùng chương trình kermit để truy nhập văo chương trình kermit ở mây tính đích ở thời điểm khởi đầu. Trước hết chúng ta sẽ xem xĩt phiín bản được dùng để truyền câc tập tin giữa hai mây tính câ nhđn.
Một tập lệnh đơn giản sẵn săng cho cả hai user sau khi chương trình đê được chạy ở cả hai hệ thống.Chúng được trình băy trong lược đồ tuần tự theo thời gian ở Hình 4.3.
4.4.1.2. Câc giao thức bân song công
Như bao hăm trong tín gọi của nó, BSC thường được dùng trong câc lược đồ điều khiển truyền đồng bộ. Nó lă giao thức có tạo cầu nối (connection-oriented) vă được dùng chủ yếu trong câc ứng dụng đa điểm, trong đó có một trạm (mây tính) chủ điều khiển tất cả câc thông điệp truyền đến vă đi từ một nhóm câc trạm phụ thuộc (trạm tớ). Câc trạm phụ thuộc được kết nối đến trạm chủ bằng câc mạng đa điểm nếu tất cả câc trạm đều toạ lạc tại những địa điểm câch xa nhau vă dùng câc modem, hoặc được kết nối đến trạm chủ thông qua mạng bus đa điểm nếu tất cả câc trạm đều cùng ở một địa điểm vă dùng câc bộ thu/phât. Hai cấu hình được trình băy trín Hình 4.3.
Hình 4.3 Câc mạng thiín hướng ký tự (a) đa điểm (b) bus đa điểm
a) Câc dạng frame
Để thực hiện câc chức năng khâc nhau liín quan đến quản lí liín kết, cần dùng thím câc frame điều khiển bín cạnh câc frame mang thông tin. Ngoăi ra đối với truyền đồng bộ thiín hướng ký tự, mây thu cần phải đạt cho được sự đồng bộ ký tự vă đồng bộ frame.
Câc kiểu frame thông tin khâc nhau_trong BSC được gọi lă câc khối dữ liệu (data block)_được trình băy trín hình 4.4.(a).
Identifier: chỉ số tuần tự của khối
Hình 4.4(b) Câc dạng frame của BSC (b) quản lý b) Hoạt động của giao thức
Mây tính chủ chịu trâch nhiệm lập lịch cho tất cả câc hoạt động truyền trín mỗi liín kết số liệu chia sẻ. Bản tin điều khiển quĩt được dùng để yíu cầu một mây phụ thuộc năo đó gửi bất kì số liệu đang đợi năo mă nó có; bản tin điều khiển chọn dùng để hỏi mây phụ thuộc có sẵn săng nhận số liệu hay không.
Hình 4.5. (a) (b) câc tuần tự Frame của BSC (a) lược đồ quĩt chọn (b) chọn
Thời gian
Hình 4.5. (c) câc tuần tự Frame của BSC (c ) quĩt
Hình 4.5 (a) trình băy một tuần tự quĩt vă chọn tiíu biểu. Một tuần tự của câc frame trao đổi trín một đường dđy đa nhânh được mô tả trín hình 4.5 (b) vă 4.5 (c). Phần (b) trình băy cả tuần tự thănh công vă không thănh công liín quan đến hoạt động chọn (select), trong khi phần (c) mô tả tuần tự liín quan đến hoạt động quĩt (poll).
4.4.1.3. Câc giao thức song công hoăn toăn
Có một giao thức thiín hướng ký tự hoạt động trong chế độ song công hoăn toăn (full- duplex). Để minh hoạ chúng ta sẽ xem xĩt giao thức liín kết số liệu dùng sớm nhất trong mạng ARPANET để điều khiển luồng frame thông tin xuyín qua câc liín kết nối đến câc node chuyển mạch trong một mạng. Câc node chuyển mạch như vậy cũng được gọi lă câc bộ xử lý thông điệp giao tiếp viết tắt lă IMP (Interface Message Processor). Giao thức năy hoạt động thông qua câc liín kết song công điểm -nối-điểm kết nối hai node chuyển mạch với nhau.
Giao thức năy giúp truyền câc frame thông tin theo cả hai hướng một câch đồng thời vă dùng lược đồ điều khiển truyền continuous RQ cho cả hai hướng. Giao thức hoạt động hiệu quả với cửa sổ truyền K=8 cho câc liín kết mặt đất hoặc K=16 cho câc liín kết vệ tinh. Để
đảm bảo một luồng frame liín tục, cho phĩp 8 (hay 16 đối với vệ tinh) luồng thông tin dừng-