.3 Tiêu đề COPE

Một phần của tài liệu (LUẬN văn THẠC sĩ) mã hóa mạng không dây sử dụng giao thức ALOHA (Trang 50 - 52)

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

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

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

Một phần của tài liệu (LUẬN văn THẠC sĩ) mã hóa mạng không dây sử dụng giao thức ALOHA (Trang 50 - 52)

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

(77 trang)