giao thức định tuyến mạng - users.soict.hust.edu.vn routing.pdf · mạng manet l cần...
TRANSCRIPT
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
5
1
2
4
3
query(0)
query(0)
query(0)
query(0)
query(0)
query(0)
query(0)
reply(0)
reply(0)
reply(0)
Ư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
A
B
C
E
D
G
H
F
A
A
A-B
A-C
A-C-E
A-C-E A-C-E
A-B-D
A-B-D-G A-B-D-G A-B-D-G
Route Discovery
A-B-C
A-B-C
Route Request (RREQ)
Route Reply (RREP)
Initiator ID
Initiator seq#
Target ID Partial route
RREQ FORMAT
Route Discovery: ở nguồn A A need to send to G
Lookup Cache for route A to G
Route found
?
Start Route Discovery Protocol
Continue normal
processing
Route Discovery finished
Packet in
buffer?
Send packet to next-hop done
Buffer packet
no
Write route in packet header
yes
yes
no
wait
Route Discovery: Ở nút trung gian
Accept route request packet
<src,id> in recently
seen requests
list?
Discard route
request
yes
no Host’s address
already in patrial route
Discard route
request
yes
Store <src,id> in list
Broadcast packet
Send route reply packet
done
myAddr=target
no Append myAddr to
partial route no
yes
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.
A
B
C
E
D
G
H
F
G
RERR RERR
Route Cache (A) G: A, B, D, G G: A, C, E, H, G F: B, C, F
Duy trì đường đi
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
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).
A
S E F
B
C
G D
AODV Route Discovery
A
S E F
B
C
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 E F
B
C
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
l Route reply được chuyển ngược lại dựa trên reverse path.
A
S E F
B
C
G D
AODV Route Discovery
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)
A
S E F
B
C
G D
Vấn đề hết hạn của tuyến đường
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
A
S E F
B
C
G D
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
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
A B C D
E
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
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.
S Y D ?
Dest seq. no. = 10 Has a route to D with seq. no = 7 Seq. no. = 15
RREQ carries 10 Y does not reply, but forwards the RREQ
Tránh lặp
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.
A B C D
E 10 9
9
7
5 Tất cả các DSN hiển thị là của D
DSN = Destination Sequence Number.
Duy trì đường đi
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
Source
Destination 1
2
3
4
3’
Source
Destination 1
2 4
3’
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