Toàn cục: ❒ Tất cả các router biết toàn bộ topo với thông tin về chi phí ❒ Các giải thuật “link state” Phân tán: ❒ router biết các láng giềng và chi phí nối ñến ñó ❒ Quá trình tính toán
Trang 1Chương 8
GIẢI THUẬT ĐỊNH TUYẾN (ROUTING ALGORITHM)
Trang 2Giải thuật ñịnh tuyến 4-2
Trang 32 3
0111
Tham số trong header của gói ñến
routing algorithm
local forwarding table header value output link
0100 0101 0111 1001
3 2 2 1
Tổng quan: Phối hợp giữa routing và
forwarding
Trang 4Giải thuật ñịnh tuyến 4-4
u
y
x
wv
Trang 5Tổng quan: Chi phí liên kết (cost)
u
y
x
wv
- ví dụ c(w,z) = 5
• chi phí ñược xác ñịnh tùy theo các yếu tố như băng thông, mức ñộ nghẽn
Chi phí của ñường ñi (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
Câu hỏi: Đâu là ñường ñi có chi phí nhỏ nhất giữa u và z ?
Giải thuật ñịnh tuyến sẽ xác ñịnh ñường ñi có chi phí nhỏ nhất
Trang 6Giải thuật ñịnh tuyến 4-6
Tổng quan: Phân loại giải thuật ñịnh tuyến
Thông tin toàn cục hay
phân tán?
Toàn cục:
❒ Tất cả các router biết toàn
bộ topo với thông tin về chi phí
❒ Các giải thuật “link state”
Phân tán:
❒ router biết các láng giềng và
chi phí nối ñến ñó
❒ Quá trình tính toán lặp lại,
trao ñổi thông tin với các láng giềng
❒ Các giải thuật “distance
vector”
Tĩnh hay ñộng?
Tĩnh:
❒ Các tuyến ñược xác lập và thay ñổi bởi người quản trị
Trang 8Giải thuật ñịnh tuyến 4-8
Một giải thuật Link-State
Giải thuật Dijkstra
❒ Các node biết tất cả topo
Trang 9Giải thuật Dijsktra
13 /* new cost to v is either old cost to v or known
14 shortest path cost to w plus cost from w to v */
15 until all nodes in N'
Trang 10Giải thuật ñịnh tuyến 4-10
D(v),p(v)
2,u2,u2,u
D(w),p(w)
5,u4,x3,y3,y
D(x),p(x)
1,u
D(y),p(y)
∞2,x
D(z),p(z)
∞
∞
4,y4,y4,y
u
y
x
wv
5
Trang 11Kết quả có cây SPT (shortest-path tree) từ u:
v x y w
(u,v) (u,x) (u,x) (u,x) ñích link
Xây dựng forwarding table cho u:
Trang 12Giải thuật ñịnh tuyến 4-12
Trang 13Giải thuật Distance Vector (1)
Phương trình Bellman-Ford (qui hoạch ñộng)
Định nghĩa:
If dx(y) := chi phí nhỏ nhất từ x ñến y
Then
dx(y) = min {c(x,v) + dv(y) }
Trong ñó min lấy tất cả các láng giềng v của x
v
Trang 14Giải thuật ñịnh tuyến 4-14
5
Đã biết, dv(z) = 5, dx(z) = 3, dw(z) = 3
du(z) = min { c(u,v) + dv(z),
c(u,x) + dx(z), c(u,w) + dw(z) }
Trang 15Giải thuật Distance Vector (2)
❒ Dx(y) = ước lượng chi phí nhỏ nhất từ x ñến y
❒ Node x biết chi phí ñến mỗi láng giềng v của
Trang 16Giải thuật ñịnh tuyến 4-16
Giải thuật Distance vector (3)
Cơ sở:
❒ Theo thời gian, mỗi node gửi ước lượng distance
vector của nó ñến các láng giềng
❒ Bất ñồng bộ
❒ Khi node x nhận một ước lượng DV mới từ láng giềng,
nó cập nhật DV của nó bằng phương trình B-F:
❒ Dưới các ñiều kiện tự nhiên, ước lượng Dx(y) h ộ i t ụ
d ầ n v ề chi phí nh ỏ nh ấ t th ự c s ự dx(y)
Trang 17Giải thuật Distance vector (4)
❒ Mỗi node chỉ thông báo cho
láng giềng khi thay ñổi DV
của nó
❍ Đến lượt các láng giềng
thông báo cho các láng
giềng của chúng nếu cần
Mỗi node:
Chờ (Thay ñổi trong DV của
nút bên cạnh)
Tính lại ước lượng DV
Nếu DV thay ñổi, Báo chonút bên cạnh
Trang 18Giải thuật ñịnh tuyến 4-18
x y z x
y z
y z
y z
∞ ∞
∞ ∞ ∞ cost to
x y z x
Trang 19x y z x
y z
y z
y z
y z
∞ ∞
∞ ∞ ∞
cost to
x y z x
y z
y z
y z
y z
Trang 20Giải thuật ñịnh tuyến 4-20
Thay ñổi chi phí liên kết
Các thay ñổi chi phí liên kết:
❒ node phát hiện thay ñổi chi phí liên
kết nội bộ
❒ Cập nhật thông tin ñịnh tuyến, tính
toán lại distance vector
❒ Nếu DV thay ñổi, thông báo cho láng
giềng
1 4
Nó tính lại chi phí nhỏ nhất ñến x và gửi DV mới cho các láng giềng.
Tại t2, y nhận cập nhật từ z và cập nhật bảng của nó Chi phí nhỏ nhất của y không thay ñổi và do ñó y không gửi bất kỳ thông ñiệp nào ñến z
Trang 22Giải thuật ñịnh tuyến 4-22
❒ Mỗi quản trị mạng muốn kiểm soát ñịnh tuyến bên trong
mạng của họ
Định tuyến phân cấp
Trang 24Giải thuật ñịnh tuyến 4-24
AS1
AS2
1a
2c2b1b
Intra-AS Routing algorithm
Inter-AS Routing algorithm
Forwarding table
3c
Liên kết giữa các AS
❒ forwarding table ñược xây dựng nhờ vào giao thức ñịnh tuyến nội vùng và liên vùng (intra-AS và inter-AS
routing protocol)
❍ intra-AS cài ñặt các mục cho các ñích nội vùng
❍ inter-AS & intra-As cài ñặt các mục cho các ñích nằm bên ngoài
Trang 253b 3a
1c
2aAS3
AS1
AS2
1a
2c2b1b
AS1 phải:
1 Học ñể biết các ñích nào
có thể ñến ñược thông qua AS2, ñích nào có thể ñến ñược thông qua AS3
2 Phát tán thông tin về khả
năng ñến ñược này ñến tất cả các router trong AS1
Đây là một nhiệm vụ của giao
thức ñịnh tuyến inter-AS
Trang 26Giải thuật ñịnh tuyến 4-26
Ví dụ: thiết lập forwarding table trong router 1d
❒ Giả sử AS1 học và biết ñược (thông qua giao thức inter-AS) subnet
x có thể ñến ñược thông qua AS3 (gateway 1c), không thể thông quaAS2
❒ Giao thức inter-AS phát tán thông tin này ñến tất cả các router bên trong
❒ Từ giao thức intra-AS mà router 1d xác ñịnh ñược giao tiếp I của nó
là tiếp tục con ñường có chi phí nhỏ nhất ñến 1c
❍ Ghi vào forwarding table một mục (x,I)
3c
x
…
Trang 27Ví dụ: Chọn trong số nhiều AS
❒ Giả sử từ giao thức inter-AS, AS1 học và biết subnet
x có thể ñến ñược từ AS3 và từ AS2.
❒ Để cấu hình forwarding table, router 1d phải xác
ñịnh gateway nào nó nên chuyển gói có ñích là x
❍ Đây là một tác vụ nữa của giao thức ñịnh tuyến
AS1
AS2
1a
2c2b1b
Trang 28Giải thuật ñịnh tuyến 4-28
Chọn gateway
có chi phí ñường ñi nhỏ
nhất
Xác ñịnh giao tiếp I dẫn ñến gateway ñã chọn, nhập (x,I) vào forwarding table
Ví dụ: Chọn trong số nhiều AS
❒ Gửi gói ñến router nào có chi phí thấp
nhất.