Giao th ức định tuyến cổ điển

Một phần của tài liệu Cải thiện lưu lượng giao thông sử dụng thuật toán virtual traffic light và giao thức định tuyến dymo trên nền omnet++ (Trang 41 - 45)

Hiện nay, các giao thức định tuyến đưa ra với Ad hoc đều dựa trên một giao thức định tuyến cổđiển làm thuật toán cơ bản; do đó, việc tìm hiểu nghiên cứu các hoạtđộng cơ bản của các giao thức này là hết sức cần thiết.

Giao thức cổđiển như: định tuyến theo vector khoảng cách, định tuyến theo trạng thái liên kết[5] đã được sử dụng từ rất lâu và đã trở nên rất quen thuộc. Tuy nhiên, các giao thức này chỉ thích hợp cho cấu trúc mạng tĩnh, hoạtđộng hiệu quảở mạng Ad hoc có tốc độ di chuyển thấp, cấu trúc mạng ít thay đổi. Ngoài ra, giao thức này hoạt động phụ thuộc vào bản tin điều khiển định tuyến, nên với số lượng nút mạng tăng, yêu cầu trao đổi giữa các nút mạngtăng lên, thông tin cập nhậtđịnh tuyến lớn, chúng sẽ tiêu tốnbăng thông, năng lượng và CPU. Bởi vì hai loại giao thức định tuyến trên duy trì định tuyến đến tất cả các nút mạng, nó không quan tâm nút mạng có tham giao truyền thông tin trong mạng tại mọi thời điểm hay không. Hơn nữa, giao thức định tuyến cổ điển rằng buộc liên kết phải là hai chiều, nên cần có những cải thiện nhất định cho thông tin vô tuyến nói chung và mạng Ad hoc nói riêng.

3.1.1 Định tuyến dựa trên trạng thái liên kết

Phương pháp này được thực hiện bằng cách truyền định kỳ các bản sao của bảng định tuyến từ router này sang router khác. Mỗi router nhận được bảng định tuyến của những router láng giềng kết nối trực tiếp với nó. Dựa vào thông tin cung cấp bởi các router láng giềng, thuật toán vectơ khoảng cách sẽ lựa chọn đường đi tốt nhất. Việc tính toán đường đi trong t huật toán định tuyến theo vectơ khoảng cách dựa vào thuật toán Bellman-Ford.

Thuật toán Bellmen-Ford thường được áp dụng trong giao thức định tuyến tĩnh RIP để xây dựng bảng định tuyến. Thuật toán này cũng t ương tự như thuật toán Dijlkstra nhưng nó không áp dụng phương pháp tham lam trong việc chọn ra đỉnh v có trọng nhỏ nhất lân cận với đỉnh u đang xét.

Thuật toán Bellman Ford tính toán đường đi ngắn nhất từ nguồn tới đích được mô tả như sau:

Input: Đồ thị (G, w, s);

Bellman-Ford-More(G, w, s) - Bước 1: Khởi tạo nút nguồn s

- Bước 2: for i = 1 to V[G] –1 do for mỗi cạnh (u, v) ∈ E[G] do

if d( v) > d(u) + w then {d(u), d(v) là chi phí được tính từ nút gốc đến các đỉnh u, v}

d(v) : = d(u) + w;

- Bước 3: for mỗi cạnh (u,v) ∈ E[G] do if d[u] + w(u, v) < d[v] then

return False;

else

return True;

Output: Cây đường đi ngắn nhất từ nút s đến các nút khác, kết quả hàm là true nếu không có đỉnh nào mà đường đi đến nó có giá trị lớn hơn tổng đường đi đến nút kề đứng trước nó với trọng số trên cạnh nối hai đỉnh u và v, ngược lại hàm trả về giá trị là false.

Sử dụng các giao thức định tuyến theo vectơ khoảng cách thường tốn ít tài nguyên của hệ thống. Tuy nhiên, tốc độ đồng bộ giữa các router lại chậm và thông số được sử dụng để chọn đường đi có thể không phù hợp với những hệ thống mạng lớn.

3.1.2 Định tuyến dựa trên vector khoảng cách

Trạng thái liên kết là một mô tả đặc điểm các mối liên kết từ bộ định này tới các bộ định tuyến lân cận. Các đặc điểm này bao gồm: địa chỉ IP, mặt nạ, kiểu mạng kết nối, và các bộđịnh tuyến kết nối mạng đó.

Giao thức định tuyến trạng thái liên kết được thực hiện dựa trên các bản tin thông báo trạng thái liên kết (LSA), mỗi bộ định tuyến xây dựng cho mình một cơ sở dữ liệu trạng thái riêng dựa vào nội dung của các bản tin này. Do đó các bộ định tuyến biết rõ và chinh xác thông tin topo về mạng và thực hiện truyền dẫn các gói tin từ nút nguồn đến nút đích trong mạng dễ dàng.

Gói thông báo trạng thái liên kết (LSA: Link State Advertisment) là các gói tin nhỏ chứa thông tin định tuyến được truyền qua lại giữa các bộ định tuyến, được làm tràn trên mạng theo định kỳ hay khi có thay đổi thông tin của một bộ định tuyến nào đó trong mạng. Cơ sở dữ liệu trạng thái liên kết (LSDB: Link State Database) được tạo và cập nhật từ thông tin của các bản tin thông báo LSA.

Thuật toán trạng thái liên kết được dùng để xây dựng và tính toán đường đi ngắn nhất từ nút nguồn đến tất cảcác nút đích trong mạng. Thuật toán Dijkstra được áp dụng trong giao thức định tuyến trạng thái liên kết được thực hiện qua các bước sau:

Input: Đồ thị (G, w, s);

Dijkstra(G, w, s) - Bước 1: Khởi tạo nút nguồn s;

- Bước 2: S : = {}; {Cuối cùng S sẽ chứa các đỉnh có trọng số đường đi ngắn nhất từ s}

- Bước 3: Khởi tạo hàng đợi ưu tiên Q : = V[G] {Q chứa các đỉnh trong đồ thị G}

- Bước 4: While Q <> {} do

u : = EXTRACT_MIN(Q) {Chọn ra đỉnh v trong Q lân cận đỉnh u có trọng số cạnh (u,v) nhỏ nhất gán cho u}

- Bước 5: S : = S ∪ {u} ; Q : = Q \ {u}

- Bước 6: for mỗi đỉnh v ∈ Adj[u] do {v các đỉnh liền kề với u}

if d( v) > d(u) + w then {d(u), d(v) là chi phí được tính từ nút gốc đến các đỉnh u, v}

d(v) : = d(u) + w; {quay lại Bước 4}

Output: Cây đường đi ngắn nhất từ đỉnh s đến các nút trong mạng.

Sử dụng giao thức định tuyến trạng thái liên kết sẽ dẫn đến một số nhược điểm:

- Router sử dụng định tuyến theo trạng thái kết nối sẽ phải cần nhiều bộ nhớ hơn và hoạt động xử lý nhiều hơn là sử dụngđịnh tuyến theo vectơ khoảng cách.

- Router phải có đủ bộ nhớ để lưu cơ sở dữ liệu về cấu trúc mạng, bảng định tuyến.

Khi khởi động việc định tuyến, tất cả các router phải gửi gói LSA cho tất cả các router khác, khi đó băng thông đường truyền sẽ bị chiếm d ụng làm cho băng thông dành cho đường truyền dữ liệu của người dùng bị giảm xuống. Tuy nhiên, sau khi các router đã

thu thập đủ thông tin để xây dựng cơ sở dữ liệu về cấu trúc mạng thì băng thông đường truyền không bị chiếm dụng nữa.

Một phần của tài liệu Cải thiện lưu lượng giao thông sử dụng thuật toán virtual traffic light và giao thức định tuyến dymo trên nền omnet++ (Trang 41 - 45)

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

(97 trang)