Tin cậy lớp giao vận

Một phần của tài liệu Mã hóa mạng không dây sử dụng giao thức ALOHA (Trang 48)

MC LC

3.2.3.4.tin cậy lớp giao vận

ACK bất đồng bộ có thể gây ra hiện tượng sắp xếp lại gói, gây ra sự rối loạn với TCP như là tắc nghẽn. Do đó, COPE có một bộ phận sắp xếp lại gói (ordering agent), để bảo đảm rằng gói tin TCP được truyền theo thứ tự. Bộ phận này bỏ qua tất cả gói tin mà IP đích khác với nút hiện tại cũng như gói tin không phải là TCP. Những gói này được

chuyển qua giai đoạn xử lý tiếp theo ngay lập tức. Với mỗi luồng TCP kết thúc tại host, bộ phận duy trì một bộ đệm gói và ghi số dãy TCP cuối cùng sau đó chuyển đến lớp mạng. Gói dữ liệu vào không tạo ra một thiếu sót trong dòng chuỗi TCP, ngay lập tức được gửi đến lớp giao vận, sau khi cập nhật trạng thái số thứ tự. Nếu không, chúng được giữ trong bộ đệm cho đến khi chỗ trống trong số thứ tự được làm đầy, hoặc cho đến khi một bộ đếm thời gian hết hạn.

3.2.4. ô đun lắng nghe

Mục đích của mô đun lắng nghe là lưu trữ các gói tin có thể hữu ích cho việc giải mã gói tin mã hóa. Có hai lớp gói tin:

a) Gói tin đã truyền: Những gói này, nút đã truyền từ trước.

b) Gói tin nghe lén: Nút nghe lén và lưu trữ các gói tin nhận được từ các nút khác.

Các gói tin phải được lưu giữ cho tới khi chúng còn hữu ích cho giải mã. Khoảng thời gian lưu giữ này khó để xác định chính xác nhưng là giới hạn trên của giá trị lớn nhất độ trễ trong mạng lưới. Để đơn giản trong thiết kế, ta giữ những gói tin này trong 500ms (lớn hơn độ trễ của mạng lưới điển hình). Cuối cùng, khi mô đun lắng nghe, nghe lén được một gói, nó cũng quảng bá một thông báo nhận, báo cho các lân cận nó đã có gói tin đấy.

Các gói được giữ trong một bảng mà chìa khóa là các ID. Chúng ta sử dụng địa chỉ IP nguồn và kết hợp IP ID như sự nhận diện có tính duy nhất cho bảng này. Hơn nữa, mô đun lắng nghe xuất một tìm kiếm gọi API tới mô đun mã hóa. Chức năng là lấy địa chỉ IP nguồn và IP ID như là đối số và trả lại gói tin tương ứng nếu mô đun lắng nghe có nó.

3.2.5. ô đun học

Chức năng của mô đun học là theo dõi một lân cận đã lưu những gói tin nào trong mô đun lắng nghe. Thông tin này là cần thiết để có quyết định mã hóa chính xác như đã thảo luận trong mục 3.2.2. Mô đun học sử dụng hai kỹ thuật để theo dấu trạng thái nút lân cận:

a) Thông tin xác định: Nếu một nút lân cận gửi thông báo nhận một gói tin hoặc là hop liền trước trên đường của gói đó, thì mô đun học chắc chắn rằng nút lân cận đã có gói tin đó.

b) Thông tin theo xác suất: Khi mô đun học không có thông tin xác định, nó sẽ dự đoán. Nó tận dụng xác suất truyền tính bởi giao thức định tuyến. Nó ước lượng xác suất mà lân cận có gói tin như xác suất truyền giữa hop kề trước và lân cận đó.

Mô đun học cũng đưa ra một tìm kiếm API tới mô đun mã hóa. Đầu vào là ID của gói tin (IP nguồn + IP ID) và nhận diện lân cận (địa chỉ MAC) và trả lại xác suất mà lân

cận đã có gói tin. Nó lưu giữ thông tin này trong một bảng hai mức chìa khóa đầu tiên là ID của gói tin và tiếp theo là ID của lân cận.

3.3. Chi tiết thực hiện [4, 31]

COPE thêm tiêu đề gói đặc biệt và thay đổi điều khiển luồng của router cho gói tin mã hóa và giải mã. Mục này sẽ miêu tả cả hai phần.

Hình 3.3 Tiêu đề COPE

Theo Hình 3.3 khối đầu tiên chỉ ra gói tin gốc và các hop kế tiếp của chúng. Khối thứ hai chứa thông báo nhận. Mỗi thông báo gồm số chuỗi IP nguồn, đích cuối cùng nhận từ nguồn đó và một bit-map của các gói gần đây nhất từ nguồn đó. Khối thứ ba chứa ACK không đồng bộ. Mỗi mục chỉ ra một lân cận, và điểm cuối cho bản đồ ACK và một bit-map của gói tin đã ACK.

3.3.1. Định dạng gói tin

COPE chèn thêm tiêu đề mã hóa có chiều dài thay đổi vào trong mỗi gói như chỉ ra trong Hình 3.3. Nếu giao thức định tuyến đã có tiêu đề của nó (ví dụ Srcr [24]), tiêu đề của COPE sẽ ở giữa tiêu đề của định tuyến và tiêu đề MAC. Nếu không, nó nằm giữa tiêu đề của IP và MAC. Chỉ các trường in đậm trong Hình 3.3 là bắt buộc trong mọi tiêu đề COPE. Tiêu đề mã hóa gồm ba khối như dưới đây.

3.3.1.1. ID của gói tin gốc mã hóa

Khối đầu tiên ghi dữ liệu để cho gói tin giải mã được. Nó bắt đầu với ENCODE_NUM, là số gói tin gốc đã XOR với nhau. Với mỗi gói tin gốc, tiêu đề liệt kê các ID của nó, là 32 bit của địa chỉ IP nguồn và số chuỗi IP.Tiếp theo là địa chỉ MAC của hop kế tiếp. Khi một nút nhận được gói tin XOR, nó kiểm tra danh sách của các hop kế tiếp xác định nó có là phía nhận của gói tin gốc nào không, khi đó nó giải mã gói tin và xử lý tiếp.

3.3.1.2. Thông báo nhận

Thông báo nhận ở khối thứ hai trong tiêu đề XOR như trong Hình 3.3. Khối này bắt đầu với số các thông báo trong gói, REPORT_NUM. Mỗi thông báo chỉ rõ nguồn của gói tin thông báo SRC_IP. Tiếp theo là số dãy IP của gói cuối cùng nghe được từ nguồn đó Last_PKT, và bit-map của các gói nghe được gần đây. Ví dụ, một thông báo có dạng {128.0.1.9, 50, 10000001} có nghĩa là gói tin cuối cùng nút này nghe được từ nguồn 128.0.1.9 là gói 50 và nó cũng nghe được các gói 42 và 49 từ nguồn đó. Biểu diễn của thông báo nhận ở trên có hai ưu điểm: ngắn gọn và hiệu quả. Cụ thể, bit-map cho phép các nút thông báo mỗi gói nhiều lần mà không tốn kém thêm. Điều này đề phòng thông báo nhận bị loại bỏ khi có tắc nghẽn.

3.3.1.3. Biểu diễn ACK bất đồng bộ ngắn gọn và đơn giản

Để bảo đảm ACK truyền đi ít tiêu tốn đường truyền nhất, ta sử dụng ACK tích lũy. Mỗi nút duy trì một bộ đếm 16 bit trên một lân cận, gọi là Neighbor_Seqno_Counter. Bất cứ khi nào nút gửi một gói tin tới lân cận đó, bộ đếm được tăng lên và giá trị của nó được đánh vào gói tin như là số dãy cục bộ, Local_PKT_SEQ_NUM. Hai lân cận sử dụng dãy số này để nhận ra gói tin. Một nút có thể sử dụng ACK tích lũy trên một lân cận. Mỗi gói tin mã hóa chứa một tiêu đề ACK như trong Hình 3.3. Khối ACK bắt đầu với số của các mục ACK, tiếp theo là số chuỗi cục bộ gói tin. Mỗi mục ACK bắt đầu với một địa chỉ MAC lân cận. Sau đó là một con trỏ báo cho lân cận ACK tích lũy dừng ở đâu và bit-map chỉ thị các gói tin đã nhận và bị nhỡ từ trước. Ví dụ, một mục {A, 50, 01111111} ACK gói 50 cũng như dãy 43-49 từ lân cận A. Nó cũng chỉ ra rằng gói 42 vẫn bị nhỡ. Chú ý rằng mặc dù ta sử dụng ACK tích lũy, nhưng vẫn không bảo đảm truyền tin cậy tại lớp liên kết. Cụ thể, mỗi nút truyền lại gói tin bị mất một vài lần (mặc định là 2) và sau đó bỏ qua.

3.3.2. Điều khiển luồng

Hình 3.4 tóm tắt kiến trúc của COPE. Ở bên gửi (Hình 3.4(a)), bất cứ khi nào MAC báo hiệu một cơ hội để truyền, nút lấy gói tin ở đỉnh của hàng đợi và chuyển đến mô đun mã hóa (Mục 3.2.2). Nếu nút có thể mã hóa nhiều gói tin gốc, nó phải lên kế hoạch cho truyền lại bất đồng bộ. Và trước khi gói tin rời khỏi nút, thông báo nhận và ACK được thêm vào.

Tại bên nhận (Hình 3.4 (b)), khi gói tin đến, nút tách ACK được gửi bởi lân cận này tới nó. Nó cũng tách tất cả các thông báo nhận và cập nhật những gói mà lân cận của nó đã lưu. Các xử lý khác phụ thuộc vào gói tin được gửi cho nó hay không. Nếu nút không phải là hop kế tiếp của gói tin, gói tin được lưu trong Bộ trữ gói tin. Nếu nút là một hop kế tiếp, nó kiểm tra xem gói tin có được mã hóa không. Nếu có, nút cố gắng giải mã gói tin bằng cách XOR gói tin mã hóa với các gói tin gốc mà nó có trong Bộ trữ gói tin. Sau khi giải mã nó ACK việc nhận này tới hop kề trước và lưu gói tin đã giải mã trong Bộ trữ gói tin. Nút tiếp tục kiểm tra xem nó có là đích đến của gói tin không, nếu

đúng nó chuyển gói tin tới các lớp cao hơn. Nếu nút chỉ là hop trung gian, nó đẩy gói tin tới hàng đợi đầu ra. Nếu gói đã nhận không mã hóa, nó sẽ được lưu ngay vào Bộ trữ gói tin và được xử lý tương tự như gói tin giải mã.

Rời hàng đầu của hàng đợi đầu ra Mã hóa nếu có thể Mã hóa ? Không Có Lập lịch truyền lại (adsbygoogle = window.adsbygoogle || []).push({});

Thêm báo cáo tiếp nhận

Đến thiết bị không dây

(a) Bên người gửi

ó thể gửi

Thêm ack vào tiêu đề

Xếp vào hàng đợi đầu ra Tôi là đích ? Không Có Phân phát tới host Thêm vào bộ trữ gói tin

Mã hóa ?

Có thể giải mã Giải mã và lập lịch ack

Tôi là hop tiếp theo ? Có

Không

Thêm vào bộ trữ gói tin

Giải nén báo cáo tiếp nhận Cập nhật trạng thái hàng xóm

Giải nén ack ý nghĩa cho tôi Cập nhật các sự kiện truyền lại

Gói tin đến

(a) Bên người nhận

Hình 3.4 Lưu đồ cho thực hiện COPE

3.4. Hiệu quả của COPE [31]

Sự cải thiện thông lượng của COPE phụ thuộc vào sự xuất hiện của cơ hội mã hóa, cái phụ thuộc vào lưu lượng truyền. Mục này trình bày về tăng thông lượng và các yếu tố ảnh hưởng.

3.4.1. Hiệu suất mã hóa

Ta định nghĩa hiệu suất mã hóa là tỉ số của số lần truyền yêu cầu bởi phương pháp không mã hóa hiện tại với số lần truyền nhỏ nhất sử dụng bởi COPE để truyền cùng số gói tin. Theo định nghĩa, giá trị này sẽ lớn hơn hoặc bằng 1.

Trong thí nghiệm ở Hình 3.1, COPE giảm số lần truyền từ 4 xuống 3 do dó hiệu suất mã hóa là 4/3 = 1,33.

Nhưng giá trị lớn nhất mà hiệu suất mã hóa có thể đạt được (khả năng của mạng vô tuyến sử dụng COPE về lý thuyết) là bao nhiêu? Khả năng của mã hóa mạng tổng quát cho lưu lượng unicast vẫn là một câu hỏi mở với đồ thị tùy ý. Tuy nhiên, chúng ta phân tích những topo cơ bản để xem các yếu tố ảnh hưởng đến hiệu suất mã hóa của COPE. Phân tích ở đây giả định rằng các nút là đồng nhất, phần vô tuyến là đẳng hướng, khả năng nhận gói tin trong một bán kính nhất định nào đó là hoàn hảo, và ngoài khoảng bán kính này thì không thể nhận được tín hiệu và nếu một cặp nút có thể truyền tin cho nhau, định tuyến sẽ có đường truyền trực tiếp giữa hai nút. Thêm nữa, ta cho rằng các luồng là vô hạn và ta chỉ xem xét trạng thái ổn định.

Định lý 2.1 Nếu thiếu cơ hội nghe, hiệu suất mã hóa tối đa mà COPE có thể đạt được là 2.

Chứng minh:

Trước hết ta chứng minh giới hạn trên của hiệu suất mã hóa là 2. Chú ý rằng nếu nút trung gian mã hóa N gói với nhau, những gói này phải tới N hop kế tiếp khác nhau, bởi quy tắc mã hóa mục 2.1. Nếu thiếu cơ hội nghe, chỉ lân cận có một gói tin là hop liền kề trước của gói tin. Cho rằng hop trung gian mã hóa ≥ 2 gói tin từ cùng lân cận. Tất cả các lân cận khác phải có ≤ N - 2 gói tin trong gói mã hóa, điều này vi phạm quy tắc mã hóa. Kết quả là, hop trung gian chỉ có thể mã hóa nhiều nhất một gói tin từ một lân cận. Không có cơ hội nghe, chỉ có gói tin gốc trong gói mã hóa mà lân cận có. Theo quy tắc mã hóa, điều này dẫn đến hop trung gian chỉ có thể mã hóa nhiều nhất 2 gói cùng nhau. Từ đó tổng số lần truyền trong mạng nhiều nhất có thể giảm còn ½, cho hiệu suất mã hóa là 2.

Thực tế, hiệu suất này là có thể đạt được trong chuỗi N đường truyền ở Hình 3.5(a). Topo này là mở rộng của ví dụ ở Hình 3.1 khi N=2. Trường hợp không mã hóa yêu cầu tổng cộng là 2N lần truyền để gửi một gói từ S1 tới D1 và ngược lại. Nếu có mã hóa, mỗi

N-1 nút trung gian có thể truyền thông tin đồng thời tới các lân cận ở một trong hai phía bởi mã hóa hai gói tin truyền theo hai hướng ngược nhau, cho tổng cộng của N+1 lần truyền. Hiệu suất mã hóa trong trường hợp này là 2

1 (adsbygoogle = window.adsbygoogle || []).push({});

N

N , xấp xỉ 2 khi số nút tăng lên.

Trong khi chúng ta không biết hiệu suất tối đa của COPE khi có cơ hội nghe, ở đây đưa ra một số topo có thêm cơ hội nghe vào COPE. Ví dụ, xem xét topo “X” trong Hình 3.5(b). Topo này tương tự như trường hợp ở Hình 3.1 chỉ khác là hai luồng truyền theo những đường cắt nhau. COPE mà không có cơ hội lắng nghe không thể thu được bất cứ hiệu suất nào với topo này. Nhưng với cơ hội lắng nghe và dự đoán, nút trung gian có thể kết hợp các gói tin truyền qua theo 2 hướng ngược nhau và cho hiệu suất mã 4/3=1,33. Kết quả này là quan trọng vì trong mạng vô tuyến thực tế sẽ chỉ có một số lượng nhỏ các luồng truyền trên đường ngược nhau như S1 và D1, nhưng một trong những mong chờ nhiều luồng giao nhau tại một nút chuyển tiếp, và do đó có thể được mã hóa bằng cách sử dụng cơ hội lắng nghe và đoán.

Ví dụ “X” và S1-D1 có thể kết hợp để nâng cao hơn nữa hiệu quả của mã hóa, như trong topo chéo ở Hình 3.5(c). Nếu không có mã hóa, cần 8 lần truyền cho mỗi luồng để gửi một gói tới đích. Tuy nhiên, cho rằng nghe lén là hoàn hảo (N1n4 có thể nghe lén

n3n5 và ngược lại), N2 có thể XOR bốn gói tin trong mỗi lần truyền, do đó giảm số lần truyền từ 8 xuống 5, và hiệu suất mã là 8/5=1,6.

Hình 3.5 Những topo đơn giản để hiểu về mã hóa và hiệu suất mã hóa + MAC của COPE Ta chú ý rằng phần này tập trung trên giới hạn về mặt lý thuyết, hiệu suất trong thực tế thì thấp hơn do cơ hội mã hóa không phải lúc nào cũng có, tiêu tốn cho tiêu đề gói, mất gói trên đường truyền… Tuy nhiên, điều quan trọng là cần lưu ý rằng COPE làm tăng tốc độ thông tin thực tế của đường truyền vượt quá tốc độ bit, và do đó lợi ích của nó được duy trì ngay cả khi đường truyền được tận dụng tối đa. Điều này trái ngược với cách tiếp cận khác để cải thiện thông lượng không dây, chẳng hạn như định tuyến cơ hội [12], trong đó sử dụng các đường truyền tốt hơn khi nó không phải là hoàn toàn tắc nghẽn, nhưng không làm tăng dung lượng của nó.

3.4.2. Hiệu suất mã hóa + MAC

Khi thực hiện thí nghiệm với COPE, chúng ta ngạc nhiên khi thấy rằng sự cải thiện thông lượng đôi khi lớn vượt quá hiệu suất mã hóa cho topo tương ứng. Sự ảnh hưởng qua lại giữa mã hóa và MAC tạo ra hiệu quả gọi là hiệu suất mã hóa + MAC (Coding+MAC gain).

Ta sử dụng lại trường hợp của S1 và D1 để giải thích hiệu suất mã hóa+MAC. MAC chia băng thông bằng nhau giữa 3 nút: S1, D1 và router. Nếu không có mã hóa, router cần truyền gấp 2 lần so với S1 và D1. Lưu lượng router nhận từ các nút biên và tốc độ cấp phát bởi MAC là lệch nhau làm cho router bị tắc nghẽn kiểu thắt cổ chai, một nửa số gói

Một phần của tài liệu Mã hóa mạng không dây sử dụng giao thức ALOHA (Trang 48)