Giao thức định tuyến mạng MANET
Mạng MANET l Mobile Adhoc Network. l Gồm các thiết bị di động, kết nối không dây l Multi-hop routing
Thách thức trong định tuyến cho mạng MANET l Cần định tuyến động Topo thay đổi rất thường xuyên l Cần giữ lượng thông tin điều khiển định tuyến tối thiểu Wireless à băng thông thấp Mobile à năng lượng thấp Cần giảm thiểu số lượng các gói tin điều khiển định tuyến Cần giảm thiểu lượng thông tin trạng thái lưu tại mỗi nút.
Các giao thức định tuyến trong mạng MANET l Topology based routing Proactive approach, e.g., DSDV. Reactive approach, e.g., DSR, AODV, TORA. Hybrid approach, e.g., Cluster, ZRP. l Position based routing Location Services: l DREAM, Quorum-based, GLS, Home zone etc. Forwarding Strategy: l Greedy, GPSR, RDF, Hierarchical, etc.
Routing Protocols l Reactive (On-demand) protocols Khám phá đường đi khi cần Quá trình tìm kiếm được khởi tạo từ nguồn l Proactive protocols Tìm kiếm đường đi ngắn nhất theo các giao thức định tuyến phân tán truyền thống Cần các quá trình cập nhật thông tin định tuyến thường xuyên. Lượng thông tin điều khiển định tuyến lớn l Vấn đề cân đối giữa 2 phương pháp Thông lượng để cập nhật trạng thái vs. thông lượng để khám phá đường đi Định tuyến dữ liệu theo các tuyến đường cũ vs. trễ khi khám phá đường đi.
Reactive (on-demand) routing: l Định tuyến khi cần 0 query(0) reply(0) 1 query(0) query(0) 3 reply(0) query(0) query(0) 2 4 query(0) reply(0) query(0) 5 Ưu điểm: Không tạo trước một cấu trúc định tuyến nào (bảng định tuyến) Không cần các cập nhật định kỳ Thích nghi với sự thay đổi động của mạng Nhược điểm: l Overhead do phát tán thông tin khám phá lớn Độ trễ đến thời điểm tìm được đường đi lớn.
Reactive Routing Định tuyến nguồn l Nguồn sẽ phát tán (kiểu ngập lụt) trong mạng bản tin route request khi có yêu cầu về đường đi đến một đích. Phát tán xuất phát từ nguồn Ngập lụt = mọi nút trong mạng đều nhận được yêu cầu 1 lần l Đích trả lời bằng cách gửi bản tin route reply Trả lời bằng cách sử dụng đường đi xác định bởi route request Thiết lập đường chuyển dữ liệu l 2 giao thức đặc trưng: DSR and AODV
Dynamic Source Routing (DSR) l Quá trình hợp tác giữa các nút l Hoạt động trên bán kính mạng nhỏ (5-10 hops) l Hoạt động trên các liên kết 1 chiều và 2 chiều
Route Discovery RREQ FORMAT A-B-D-G A B A-B A-B-D-G D A-B-D-G A-B-D G Initiator ID Initiator seq# Target ID Partial route A A-C-E A C A-C E A-C-E A-C-E H A-B-C Route Request (RREQ) A-B-C F Route Reply (RREP)
Route Discovery: ở nguồn A A need to send to G Lookup Cache for route A to G Start Route Discovery Protocol Buffer packet no Route found? wait Continue normal processing yes yes Write route in packet header Route Discovery finished Packet in buffer? no done Send packet to next-hop
Route Discovery: Ở nút trung gian Accept route request packet <src,id> in recently seen requests list? yes Discard route request no Host s address already in patrial route yes Discard route request Append myaddr to partial route no no myaddr =target Store <src,id> in list yes Send route reply packet Broadcast packet done
DSR - Route Discovery l Route Reply chứa thông tin đường đi tìm được được gửi bởi đích l Mỗi nút chứa một Route Cache chứa các bản ghi đường đi mà nút này học được (nhận được) trong quá trình hoạt động l Toàn bộ đường đi sẽ được đưa vào header của gói tin cần vận chuyển (khác AODV).
Duy trì đường đi l Đường đi được duy trì chỉ khi nó vẫn đang được sử dụng l Phát hiện lỗi: Kiếm soát tính hợp lệ của các đường đi đang có bằng cách nghe thụ động các quá trình truyền dữ liệu của các nút hàng xóm Nhờ cơ chế ACK của tầng thấp hơn. l Khi phát hiện có vấn đề, gửi bản tin Route Error về nguồn để thực hiện một quá trình khám phá đường đi mới.
Duy trì đường đi RERR B RERR G D G A Route Cache (A) G: A, B, D, G G: A, C, E, H, G F: B, C, F E H C F
Tóm tắt về DSR " Hoàn toàn on-demand, nói chung không gây overhead " Loop-free " source routing " Hỗ trợ cả liên kết unidirectional và bidirectional. " Có độ trễ truyền/jitters gây ra do on-demand routing " Đòi hỏi không gian lưu trữ đường đi trong caches
AODV Routing Protocol A S C E F B G D l AODV = Ad Hoc On-demand Distance Vector l Nguồn gửi ngập lụt route request đi toàn mạng. l Đích D l Tuyến đường ngược về nguồn được xác định khi một nút nhận được route request. l Mỗi nút chỉ forward gói tin request 1 lần (pure flooding).
AODV Route Discovery A S C E F B G D l Reverse paths được tạo khi một nút nhận được một gói route request.
AODV Route Discovery A S C E F B G D l Reverse paths được tạo khi một nút nhận được một gói route request.
AODV Route Discovery A S C E F B G D l Route reply được chuyển ngược lại dựa trên reverse path.
AODV Route Discovery A S C E F B G D l Route reply được chuyển ngược về nguồn sử dụng reverse path do đó tạo lập forward path l Forward path được dùng để vận chuyển dữ liệu từ nguồn đến đích sau này. l Các nút trung gian lưu bảng định tuyến có next hop trong forward path hướng đến đich (khác DSR)
Vấn đề hết hạn của tuyến đường A S C E F B G D l Đường đi không sử dụng sẽ hết hạn theo timers. Đường đi được lưu trong bảng định tuyến khi chưa hết hạn
AODV l Một nút trung gian biết đường đi tới Đích sẽ trả lời lại nguồn bằng cách gửi gói tin route reply Giúp quá trình tìm đường đi diễn ra nhanh hơn. l Tuy nhiên hình thức trả lời này có thể gây ra lặp khi có các kết nối bị lỗi. Kết nối bị lỗi từ nút trung gian đến đích trong khi nút này không biết.
AODV: Lặp do lỗi A B C D E l Giả sử, C-D bị lỗi nút A không biết (do gói tin Route error từ C bị mất). l C thực hiện route discovery tìm đường đến D. l Nút A nhận được RREQ (qua đường C-E-A) l Nút A trả lời vì A biết đường đi tới D qua B l Kết quả tạo ra đường đi có lặp từ C-D: C-E-A-B-C
AODV: Sử dụng Sequence Numbers l Mỗi nút X có một số sequence number Hoạt động như một nhãn thời gian Seq# tăng mỗi khi X gửi một gói tin (có thể là RREQ hoặc RREP) l Mỗi tuyến đường đến X (tại nút Y) cũng có Seq# là số Seq# mới nhất của X mà Y biết. l Seq# thể hiện tính tươi của một tuyến đường Càng lớn thì càng tươi
AODV: Sử dụng Sequence Numbers S Y? D Dest seq. no. = 10 RREQ carries 10 Has a route to D with seq. no = 7 Seq. no. = 15 Y does not reply, but forwards the RREQ l Tránh lặp: Nút trung gian gửi RREP (thay vì forward RREQ) chỉ khi nó có một tuyến đường có seq# lớn hơn seq# trong bản tin RREQ.
Tránh lặp DSN = Destination Sequence Number. 9 A B C D 7 9 10 E 5 Tất cả các DSN hiển thị là của D l Sự kiện lỗi trên liên kết C-D làm cho tăng DSN ở C (sẽ tăng lên 10). l Nếu C cần một đường đi đến D, nó sẽ phát bản tin RREQ với DSN (10). l A sẽ không trả lời vì DSN của nó <10.
Duy trì đường đi 3 3 1 3 Destination 1 Destination Source 2 4 Source 2 4 l Các nút không nằm trên các tuyến đường active di chuyển thì cũng sinh ra sự kiện gì l Nếu nguồn di chuyển è khởi tạo lại quá trình khám phá đường đi l Khi đích hoặc các nút trung gian di chuyển Một số liên kết bị đứt Nút phía đầu liên kết bị đứt broadcast gói tin Route Error (RERR) RERR chứa danh sách tất cả các đích không thể đi đến được do liên kết bị đứt
Tóm tắt về AODV l AODV duy trì tối đa 1 tuyến đường cho 1 đích Khi 1 liên kết đứt, tất cả các tuyền đường sử dụng liên kết đó bị xóa. l Tuyến đường hết hạn theo cơ chế timeout. l Sử dụng Seq để tránh lặp.
Acknowledgements l DSR Slides: Yinzhe Yu (umn.edu)
Tìm hiểu các giao thức định tuyến trong MANET l Các nhóm 3 người tìm hiểu về hoạt động của các giao thức sau và trình bày. DSDV: Perkins, Charles E.; Bhagwat, Pravin (1994). "Highly Dynamic Destination-Sequenced Distance-Vector Routing (DSDV) for Mobile Computers http://wireless.cs.tku.edu.tw/~kpshih/course/ wireless94/dsdv.pdf AODV: RFC 3561 OLSR: RFC 3626