3.4 Phƣơng pháp xây dựng mã sửa lỗi mạng.
Những phần trên đã giới thiệu về các khái niệm như kênh operator để khái quát kênh truyền các không gian véc-tơ, khoảng cách giữa hai không gian, các loại mã cũng như giới hạn về tốc độ mã hóa. Phần này sẽ đưa ra phương pháp để xây dựng một loại mã có khả năng sửa lỗi và mất mát trong mạng khi nó đi qua kênh operator. Phương pháp xây dựng mã tương tự như phương pháp được đề xuất bởi Wang, Xing và Safavi-Naini [7]. Đóng góp chính của phương pháp này thuật toán giải mã.
3.4.1 Bộ tạo mã.
Gọi là một trường hữu hạn, là trường mở rộng của . Ta có thể coi là không gian véc-tơ kích thước m trên trường .
{ } là tập các phần tử độc lập tuyến tính trong không gian véc-tơ này. Những phần tử này tạo ra một không gian véc-tơ
trên . Ta sẽ có một không gian véc-tơ tổng kích thước { }.
Gọi { } là khối các ký tự bản tin, gồm k ký tự trong trường , tương đương với ký tự trong trường . [ ] được ký hiệu là tập các đa thức tuyến tính có bậc trên trường . Hàm [ ]
được định nghĩa:
∑ [ ]
(3.9)
là một đa thức tuyến tính với các hệ số là các ký tự bản tin.
Với thì từng cặp được xem như là một véc-tơ trong . Do { } là tập các giá trị độc lập tuyến tính, nên
{ } cũng là các phần tử độc lập tuyến tính, do vậy nó sẽ tạo ra một không gian véc-tơ
Ta ký hiệu việc ánh xạ từ một đa thức bản tin [ ] sang một không gian tuyến tính | | là
Định lý 8: Gọi là ảnh của phép ánh xạ , với | | là một loại mã có dạng [ ].
Ta có thể tóm tắt quá trình mã hóa như sau:
Từ các ký tự của bản tin { } ta có một đa thức tuyến tính
Bộ mã hóa cung cấp một tập các véc-tơ độc lập tuyến tính{ } .
Đa thức tuyến tính sẽ được đánh giá tại giá trị độc lập tuyến tính
.
Các cặp { } tạo ra một không gian véc-tơ con kích thước từ không gian véc-tơ kích thước , tương đương với các ký tự bản tin { }
3.4.2 Bộ giải mã.
Giả sử được truyền trên kênh operator và không gian con kích thước được nhận sau khi qua kênh, trong trường hợp này, ta có lỗi và bộ xóa thì khoảng cách giữa hai không gian . Từ định nghĩa của kênh operator, nếu muốn khôi phục lại từ không gian nhận được thì ⁄
Để có thể giải mã được không gian véc-tơ từ không gian nhận được, thì phải thỏa mãn điều kiện , hay là bộ thu phải thu được ít nhất là véc-tơ cơ sở để tạo ra không gian , ta thu được hàm cơ sở:
{ }
Sau đó, bộ giải mã sẽ sử dụng hàm nội suy để suy ra đa thức tuyến tính sao cho ( ) .
Từ ( ) nên từ hàm ta có thể ta có thể khôi phục lại đa thức với các ký tự bản tin là các hệ số bằng hàm ( ) .
Thuật toán hàm : [2]
3.5 Tổng kết
Tóm lại, chương này đã giới thiệu khái niệm về kênh operator cho mô hình truyền tin trong kỹ thuật mã mạng tuyến tinh ngẫu nhiên, đầu vào và đầu ra của kênh là các không gian con của một không gian nào đó. Các giới hạn về tốc độ mã hóa cũng được nêu ra. Cuối cùng, một bộ mã hóa và giải mã cho việc mã hóa không gian con trong kỹ thuật mã mạng đã được nêu ra. Chương sau sẽ giới thiệu các kết quả đạt được cho việc mô phỏng lại bộ mã hóa và giải mã bằng phần mềm NECO với ngôn ngữ lập trình Python.
CHƢƠNG IV
MÔ PHỎNG 4.1 Giới thiệu phần mềm
NECO (NEtwork COding simulator) là một phần mềm mới được đưa ra năm 2009 để đánh giá hiệu năng của kỹ thuật mã mạng dựa vào các giao thức. Phần mềm được viết hoàn toàn trên ngôn ngữ Python và có thể dễ dàng phát triển các module mở rộng.
4.1.1 Cài đặt và sử dụng phần mềm
Có hai cách để cài đặt NECO là cài đặt trên máy ảo chạy hệ điều hành Ubuntu trong Windows sử dụng phần mềm VitualBox, hoặc cài đặt trực tiếp trên máy chạy hệ điều hành Ubuntu 10.04. [10]
4.1.2 Cấu trúc phần mềm
Phần mềm được chia làm hai module chính: core và gui.
Module core gồm các module nhỏ hơn cho việc điều khiển các bước mô phỏng, xây dựng mạng và các giao thức. Đồ thị UML biểu diễn module core
được chỉ ra trong hình 4.1. Các lớp chính của nó bao gồm các lớp liên quan đến mô phỏng như đồng bộ, đếm thời gian (NecoCore, Scheduler, SimulatorThread, NodeThread), các lớp liên quan đến sơ đồ mạng (Graph, Link, Node) và các lớp liên quan đến thực hiện các giao thức (Protocol, Routing).