Tùy chọn Protocol

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Sửa lỗi mạng sử dụng mã hóa không gian con (Trang 40 - 45)

Số gói tin được tạo ra cho nút nguồn được tùy chọn trong TrafficGenerator (hình 4.7). Trong mô phỏng, phương thức Deterministic được chọn với hàm tạo số gói tin là , với là thời gian đếm. Kiểu dữ liệu trong gói tin và kích thước dữ liệu được chọn trong các Tab Size of dataType of data.Mô phỏng trong luận văn được thực hiện với kích thước gói tin bằng 8 byte.

Trong giao thức mới được tạo ra, điều ta cần quan tâm là hoạt động của các nút nguồn, nút đích và nút trung gian. Trong đó, nút nguồn làm nhiệm vụ mã hóa bản tin hay ánh xạ bản tin sang một không gian véc-tơ và truyền nó đi, các nút trung gian thực hiện kỹ thuật mã mạng tuyến tính ngẫu nhiên các gói tin nhận được, nút đích làm nhiệm vụ giải mã không gian véc-tơ nhận được.

4.2.1 Cấu trúc gói tin

Việc thực hiện kết hợp các gói tin chỉ được thực hiện trong một

generation, các nút phải có khả năng phân biệt các gói tin từ các generation

khác nhau. Vì vậy, trường generation ID được đưa vào trong header của gói tin. Ngoài ra, trong header của gói tin còn có các trường xác định đỉa chỉ nút nguồn, nút đích, và trường chứa véc-tơ mã hóa để phục vụ cho việc giải mã tại bộ thu.

def __init__(self, sourceNode, genId, gcv, dl, data): self.sourceNode = sourceNode

self.genId = genId

self.globalCodingVector = gcv self.destinationList = list(dl)

4.2.2 Hoạt động của nút nguồn

Nút nguồn mã hóa dữ liệu nguồn và truyền các gói tin là các véc-tơ của không gian vừa được mã hóa, các gói tin này có cùng một generation ID.

Ta có các bước mã hóa của nút nguồn:

 Tạo ra đa thức tuyến tính ∑ [ ]

. Một hàm được định nghĩa như sau:

def fx(self,x,lst): f=0 i=0 m=len(lst) item=0 for k in range(m): item = lst[m-1-k] * x**(2**(k)) i+=1 f = f+item return f

 Đánh giá đa thức trên các giá trị được tạo ra từ trường

 Các cặp tạo thành một không gian con. Các gói tin truyền đi là các véc-tơ hàng của không gian con. Trong mô phỏng, ta sẽ thực hiện việc tạo ra một danh sách các giá trị

trước:

for i in range(len(alpha)): p.append(alpha[i])

for j in range(10):

p.append(self.fx(alpha[i],matrixData[j]))

rồi sau đó mới thực hiện tách từng cặp :

for i in range(len(alpha)): p.append(alpha[i])

p.append(self.fx(alpha[i],matrix.row(0)))

 Gắn cùng một generation ID cho các gói tin này.

 Thêm địa chỉ nút nguồn, nút đích.

4.2.2 Hoạt động của nút trung gian

Nút trung gian gian nhận các gói tin và đưa vào bộ đệm, các gói tin trong cùng một generation phải đảm bảo là độc lập tuyến tính, vì vậy quá trình khử Gauss được tiến hành để biết gói tin nhận được có phải là innovative packets không, nếu sai nó sẽ bị loại bỏ. Quá trình kết hợp tuyến tính các gói tin

trong cùng một generation cũng được thực hiện. Việc kiểm tra gói tin đến có phải là innovative không được thực hiện bởi một hàm:

def innovativeFunc(self, pairId, rlncPacket): self.tmpMatrixGCV.put(pairId, rlncPacket.globalCodingVector) m = self.tmpMatrixGCV.get(pairId) M = self.SAGE.matrix(m) lastRank = self.rankForPairId[pairId] newRank = M.rank() if newRank > lastRank: self.rankForPairId[pairId] = newRank return True else: self.tmpMatrixGCV. removeLastInsertedElement(pairId) return False 4.2.3 Hoạt động của nút đích

Nút đích sẽ thu thập các gói tin có cùng generation ID để tạo ra không gian véc-tơ Nếu điều kiện * + được thỏa mãn thì ứng dụng các thuật toán để khôi phục lại đa thức

Sau đó tìm lại bằng thuật toán

( )

Những gói tin được giải mã sẽ được thông báo:

self.updateUIInfo.shellAppend("Node"+str(self.nodeId)+" received all packets from node " + str(pairId[0]))

self.sinksTerminated.append(pairId[0])

4.3 KẾT QUẢ

Mô hình truyền tin là truyền tin đa điểm với nút nguồn là nút 11, các nút đích lần lượt là 14, 10 và 1. Mô phỏng được thực hiện với các tham số: kích thước không gian con , bản tin nguồn được chọn từ trường hữu hạn .

Kết quả được hiển thị với xác xuất mất đường truyền lep (link erasure probability) lần lượt là 0.2 và 0.9. Xác suất mất đường truyền trong phần mềm được hiểu theo một nghĩa là với giá trị lep ta đặt thì hệ thống sẽ tự động sinh ra một giá trị ngẫu nhiên và so sánh với nó, nếu giá trị ta đặt lớn hơn giá trị được sinh ra thì đường truyền bị xóa. Vì vậy với giá trị ta đặt càng nhỏ thì khả năng đường truyền bị xóa càng lớn và ngược lại.

Khi ta đặt lep=0.9 tức là hầu như không xảy ra trường hợp đường truyền bị xóa, quá trình giải mã thành công và được hiện trong tab Shell.

Khi một đường truyền nào đó bị mất có thể ảnh hưởng đến việc mất gói tin tại nút đích, dẫn đến điều kiện giải mã không đạt được và không thể nội suy ra không gian véc-tơ đã mã hóa tại nút nguồn từ không gian véc-tơ nhận được.

Với một giá trị tiếp theo lep=0.2, thì chỉ có nút 14 đủ điều kiện để giải mã, các nút 1 và 10 do bị mất mát gói tin, không đủ điều kiện giải mã nên không thể giải mã được.

Ta thấy rằng với xác suất mất mát đường truyền tăng thì nhiều gói tin bị mất và xác suất không gian nhận có thể giải mã giảm.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Sửa lỗi mạng sử dụng mã hóa không gian con (Trang 40 - 45)

Tải bản đầy đủ (PDF)

(52 trang)