OLSR là giao thức định tuyến theo bảng, nó thừa hưởng sự ổn định của thuật toán liên kết trạng thái và có một sốưu điểm khi có thể thiết lập tuyến ngay lập tức. OLSR là một sự tối ưu so với các giao thức liên kết trạng thái cổ điển, hoàn toàn
Mai Văn Linh-ĐTVT2-CH2009 32
thích hợp cho mạng di động Ad hoc. OLSR tối thiểu hóa overhead từ việc phát tràn lan lưu lượng điều khiển bằng cách chỉ sử dụng các nút được chọn là MPR, để
truyền các bản tin điều khiển. Kỹ thuật này giảm đáng kể số lượng yêu cầu truyền
để phát tràn lan một bản tin tới tất cả các nút trong mạng. Hơn nữa, OLSR chỉ cần một phần của trạng thái liên kết được phát tràn lan để tạo ra tuyến đường ngắn nhất. Sự tối thiểu của tập hợp thông tin trạng thái liên kết được yêu cầu là tất cả các nút
được lựa chọn là MPR phải khai báo các liên kết tới tất cả các selector MPR của chúng. Các thông tin topo mạng thêm vào được sử dụng để làm tăng khả năng dự
phòng.
OLSR có thể tối ưu khi topo mạng thay đổi bằng cách giảm khoảng thời gian lớn nhất khi truyền bản tin điều khiển định kỳ. Hơn nữa, OLSR duy trì các tuyến một cách liên tục tới tất cả các nút trong mạng, giao thức này phù hợp cho mẫu lưu lượng nơi mà một tập con lớn các nút giao tiếp với một tập con khác, nơi mà cặp nguồn-đích thay đổi theo thời gian.
OLSR được thiết kế để làm việc trong một hoàn cảnh cụ thể và không phụ
thuộc vào bất cứ một thực thể trung tâm nào. OLSR không yêu cầu cơ chế truyền tin cậy của bản tin điều khiển: mỗi nút gửi bản tin điều khiển định kỳ và có thể bị
mất một số bản tin. Sự mất gói này diễn ra thường xuyên trong mạng vô tuyến do sự
xung đột hoặc các vấn đề vềđường truyền. Ngoài ra, OLSR không yêu cầu bản tin phát đi phải sắp xếp theo thứ tự. Mỗi bản tin điều khiển chứa một số thứ tự, và sẽ
tăng cho mỗi bản tin. Do đó, người nhận các bản tin điểu khiển có thể dễ dàng xác
định thông tin nào là gần đây hơn, thậm chí nếu bản tin được yêu cầu lại trong khi truyền. Thêm vào đó, OLSR hỗ trợ mở rộng giao thức như sleep mode hay định tuyến multicast. OLSR không thay đổi định dạng của bất kỳ gói tin IP nào.
Mai Văn Linh-ĐTVT2-CH2009 33
Hình 2.3 Quá trình phát tràn lan bản tin quảng bá
MPRs là để tối thiểu hóa overhead khi phát tràn lan bản tin trong mạng bằng cách giảm số lần truyền lại trong cùng một vùng. Mỗi nút trong mạng lựa chọn một tập hợp nút trong hàng xóm trực tiếp của nó. Tập hợp của các nút hàng xóm được lựa chọn gọi là MPR của nút đó. Hàng xóm của nút A mà không nằm trong tập hợp MPR của A có thể nhận và xử lý các bản tin quảng bá nhưng không thể truyền các bản tin quảng bá được nhận từ A.
Mỗi nút lựa chọn tập hợp MPR từ những hàng xóm trực tiếp (one-hop) của nó. Tập hợp MPR của nút A, kí hiệu là MPR(A), là tập con của tập hợp các hàng xóm trực tiếp của A, phải thỏa mãn những điều kiện sau: mỗi nút trong hàng xóm hai bước (two-hop) của A phải có một liên kết trực tiếp đến MPR(A). Tập hợp MPR càng nhỏ thì overhead lưu lượng điều khiển từ giao thức định tuyến càng nhỏ. Mỗi nút phải duy trì thông tin về tập hợp hàng xóm mà chúng chọn làm một MPR. Tập hợp này gọi là “MPR selector set” của một nút.
Mai Văn Linh-ĐTVT2-CH2009 34
Hình 2.4 Giao thức định tuyến OLSR
Trong OLSR, mỗi nút truyền bản tin Hello định kỳ ( ví dụ một giây một bản tin) trên mỗi giao diện của nút. Mục đích chính của bản tin Hello cho phép mỗi nút có thể khám phá tuyến trực tiếp tới hàng xóm của nó. Bản tin Hello được quảng bá từng chặng một (hop-by-hop) và phải không được truyền trước đó. Bản tin Hello bao gồm tên của nút khởi tạo, hàng xóm trực tiếp mà nút khởi tạo truyền bản tin khám phá, và các nút mà nút khởi tạo chọn làm MPRs. Khi một nút nghe thấy bản tin Hello, nó kiểm tra liệu bản tin đó có phải được phát sinh từ hàng xóm mới hay không, và nếu đúng, nút sẽ cập nhật vào danh sách hàng xóm trực tiếp của nút. Bản tin Hello rất quan trọng trong việc hỗ trợ khái niệm MPR. Mỗi nút kiểm tra bản tin Hello nhận được từ hàng xóm của nó để xem nó liệu có được lựa chọn làm MPR của bất kỳ hàng xóm nào không. Nếu vậy, nút sẽ phát tràn lan các cập nhật định tuyến được phát sinh từ các hàng xóm mà đã chọn nó là MPR. Mỗi nút cũng có thể
khám phá liệu các nút có là hàng xóm hai bước từ bản tin Hello, bởi vì danh sách các hàng xóm hai bước đã được liệt kê trong bản tin Hello của nút hàng xóm trực tiếp của nó . Mỗi nút lựa chọn MPR trên cơ sở hàng xóm hai bước, do vậy mỗi hàng xóm hai bước phải nhận được bản tin MPR.
Mai Văn Linh-ĐTVT2-CH2009 35
2.3.3 Sự hoạt động của giao thức
OLSR được modul hóa thành “lõi” chức năng, chức năng đó luôn cần thiết cho giao thức để hoạt động, và một tập hợp các chức năng hỗ trợ. Lõi quy định rằng một giao thức có thể đưa ra định tuyến trong mạng Ad hoc độc lập. Mỗi chức năng hỗ trợ cung cấp thêm các chức năng, và chúng có thể ứng dụng trong những kịch bản đặc biệt (ví dụ, trong trường hợp một nút cung cấp kết nối giữa Ad hoc và miền
định tuyến khác). Tất cả các chức năng hỗ trợ là tương thích khi chúng được thực hiện với lõi. Hơn nữa, giao thức cho phép các nút khác loại mà thực hiện các tập con khác nhau của các chức năng hỗ trợđể cùng tồn tại trong mạng. Mục đích phân chia sự thực thi OLSR thành lõi chức năng và một tập hợp của các chức năng hỗ trợ đểđưa ra sựđơn giản và dễ dàng để hiểu về giao thức.
2.3.4 Sự hoạt động của lõi
Sự thực thi lõi của OLSR là cách thực hiện của mỗi nút, được cung cấp với giao diện OLSR, tham gia vào mạng Ad hoc và chạy giao thức định tuyến OLSR. Nó bao gồm các đặc điểm quan trọng của bản tin giao thức OLSR và cơ chế truyền của nó trên mạng như nhận thức liên kết, sự quảng bá topo, và tính toán tuyến
đường.
Lõi bao gồm các thành phần sau:
2.3.4.1 Định dạng và gửi gói tin
Một đặc điểm quan trọng của định dạng gói tin và tối ưu thuật toán phát tràn lan là được sử dụng như cơ chế vận chuyển cho tất cả các lưu lượng điều khiển OLSR. OLSR giao tiếp sử dụng một định đạng gói tin kết hợp cho tất cả các gói tin dữ liệu. Mục đích của nó là để dễ dàng hơn trong việc mở rộng giao thức mà không bị mất tương thích. Nó cũng đưa ra con đường dễ dàng khi cõng các “dạng” khác nhau của thông tin trong chỉ một lần truyền, và dó đó có thể tận dụng được tối đa frame-size. Những gói tin này được chèn vào trong gói dữ liệu (datagram) UDP để truyền trên mạng.
Mai Văn Linh-ĐTVT2-CH2009 36
Mỗi gói tin đóng gói một hoặc nhiều hơn một bản tin. Những bản tin chia sẻ
một định dạng header chung, nó cho phép các nút nhận và truyền các bản tin mà không biết dạng.
Bản tin có thể được phát tràn lan trên toàn bộ mạng, hoặc có thểđược giới hạn trong một đường kính (số chặng) từ nút gửi. Do đó, truyền một bản tin tới nút hàng xóm của nút là một trường hợp của sự phát tràn lan. Khi phát tràn lan bản tin điều khiển, các bản sao của bản tin sẽ bị loại bỏ và được tối thiểu hóa trong mạng.
Hơn thế, mỗi nút có thể kiểm tra header của một bản tin để thu được thông tin từ một số chặng tới nút gửi. Do đó, thông tin thời gian về một bản tin điều khiển
được cất giữ trong một nút phụ thuộc vào khoảng cách từ nút đó tới nút gửi. Mỗi gói tin OLSR bao gồm: packet header, message header, message. Packet header:
• Packet length: chiều dài gói tin, tính theo byte.
• Packet sequence number(PSN): PSN được tăng thêm một mỗi khi có một gói OLSR được truyền đi
Message header:
• Message Type: trường này để chỉ định dạng bản tin, có phạm vi từ 0-127 và có thể mở rộng được.
• Vtime: là khoảng thời gian sau khi nhận được bản tin một nút sẽ cất giữ bản tin đó như một giá trị hợp lệ.
• Message Size: trường này chỉ ra kích thước của bản tin này, nó được tính là từ điểm bắt đầu của trường “Message Type” của gói tin này cho đến điểm bắt đầu “Message Type” của gói tin kế tiếp.
• Originator Address: trường này chỉ ra địa chỉ nút khởi tạo bản tin, trường này là cốđịnh và không bị thay đổi khi truyền bản tin.
• Time to Live: chỉ ra số chặng lớn nhất mà bản tin đi qua. Trường này sẽ
giảm đi 1 trước khi bản tin được truyền đi. Khi một nút nhận được TTL bằng 0 hoặc 1 thì bản tin này sẽ không được truyền nữa. Thông thường, một nút sẽ không nhận bản tin với TTL bằng 0.
Mai Văn Linh-ĐTVT2-CH2009 37
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Packet Length | Packet Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Type | Vtime | Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originator Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time To Live | Hop Count | Message Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |
: MESSAGE : | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Type | Vtime | Message Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originator Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time To Live | Hop Count | Message Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | : MESSAGE : | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : : (etc)
Hình 2.5 Định dạng gói tin OLSR
• Hop Count: trường này chứa số chặng mà bản tin đã đi qua. Nó được khởi tạo bằng 0, và trước khi truyền một bản tin, trường này sẽ tăng thêm 1.
• Message Sequence Number: nút khởi tạo sẽ xác định một giá trị duy nhất cho mỗi bản tin. Nó được chèn vào trường Sequence Number của bản tin. Trường Message Sequence Number được sử dụng để đảm bảo rằng bản tin sẽ không bị truyền lại.
Mai Văn Linh-ĐTVT2-CH2009 38
Nhận thức với liên kết được thực hiện thông qua các bản tin Hello định kỳ qua kết nối đã được kiểm tra. Một bản tin Hello được phát sinh cho mỗi giao diện. Sự
nhận thức này tạo ra một tập hợp liên kết cục bộ. Nếu lớp liên kết cung cấp đầy đủ
thông tin, nó có thểđược tận dụng để phổ biến các tập hợp liên kết cục bộ thay vì trao đổi bản tin Hello.
2.3.4.3 Phát hiện hàng xóm
Một mạng trong đó các nút chỉ có một giao diện, một nút có thể bỏ đi tập hợp hàng xóm trực tiếp từ các thông tin được thay đổi trong khi nhận thức liên kết: “địa chỉ chính” của các nút giao diện đơn chính là địa chỉ của cổng trên nút đó. Trong một mạng mà một nút có nhiều giao diện, thông tin thêm vào để ánh xạđịa chỉ giao diện sang địa chỉ chính. Những thông tin thêm vào này được thực hiện thông qua bản tin MID (Multiple Interface Declaration).
2.3.4.4 Sự chọn lọc MPR và tín hiệu hóa MPR
Mục tiêu của sự chọn lọc MPR cho mỗi nút là lựa chọn một tập con trong số
hàng xóm của chúng để truyền bản tin quảng bá và sẽ được nhận ở tất cả các nút hàng hàng xóm hai bước. Tập hợp MPR của một nút được tính toán cho mỗi giao diện. Thông tin cần thiết để thực hiện sự tính toán này được thực hiện thông qua trao đổi định kỳ bản tin Hello.