Tải bản đầy đủ (.pdf) (28 trang)

Bài giảng mạng máy tính giải thuật định tuyến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (215.2 KB, 28 trang )

Chương 8

GIẢI THUẬT ĐỊNH TUYẾN
(ROUTING ALGORITHM)

Giải thuật ñịnh tuyến

4-1


NỘI DUNG
Tổng quan
Link state
Distance Vector
Hierarchical routing

Giải thuật ñịnh tuyến

4-2


Tổng quan: Phối hợp giữa routing và
forwarding
routing algorithm

local forwarding table
header value output link
0100
0101
0111
1001



3
2
2
1

Tham số trong
header của gói ñến
0111

1
3 2

Giải thuật ñịnh tuyến

4-3


Tổng quan: Đồ thị mạng
5
2

u

2
1

Graph: G = (N,E)

v


x

3

w
3

1

5

z

1

y

2

N = tập các router = { u, v, w, x, y, z }
E = tập các liên kết={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Đồ thị mạng cũng hữu dụng trong các ngữ cảnh mạng khác
Ví dụ: P2P, với N là tâp các peer và E là tập các kết nối TCP
Giải thuật ñịnh tuyến

4-4


Tổng quan: Chi phí liên kết (cost)

5
2

u

v
2

1

x

• c(x,x’) = chi phí của liên kết (x,x’)
3

w
3

1

5

z

1

y

- ví dụ c(w,z) = 5


2

• 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
Giải thuật ñịnh tuyến

4-5


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ị
Động:
❒ Các tuyến thay ñổi nhanh,
tự ñộng
❍ Cập nhật theo thời gian
❍ Thích ứng với các thay
ñổi của chi phí trên liên
kết
Giải thuật ñịnh tuyến

4-6


NỘI DUNG
Tổng quan
Link state
Distance Vector
Hierarchical routing

Giải thuật ñịnh tuyến

4-7


Một giải thuật Link-State

Giải thuật Dijkstra
❒ Các node biết tất cả topo

mạng
❍ Có ñược qua "quảng bá
trạng thái liên kết
❍ Tất cả các node có cùng
thông tin
❒ Tính toán các ñường ñi có chi
phí thấp nhất từ một node
ñến tất cả các node khác
❍ Tạo forwarding table cho
node ñó
❒ Lặp : sau k lần lặp, biết ñường
ñi có chi phí thấp nhất ñến k
node ñích

Ký hiệu:
❒ c(x,y): chi phí từ node x
ñến y; = ∞ nếu không nối
trực tiếp
❒ D(v): chi phí hiện hành từ
nguồn ñến node v
❒ p(v): nút ngay trước nút v
trên ñường ñi từ nguồn tới
ñích
❒ N: Tập các nút mà ñường ñi
ngắn nhất ñã ñược xác ñịnh

Giải thuật ñịnh tuyến


4-8


Giải thuật Dijsktra
1 Initialization:
2 N = {u}
3 for all nodes v
4
if v adjacent to u
5
then D(v) = c(u,v)
6
else D(v) = ∞
7
8 Loop
9 find w not in N such that D(w) is a minimum
10 add w to N
11 update D(v) for all v adjacent to w and not in N :
12
D(v) = min( D(v), D(w) + c(w,v) )
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'
Giải thuật ñịnh tuyến

4-9


Ví dụ (1)

Bước
0
1
2
3
4
5

N
u
ux
uxy
uxyv
uxyvw
uxyvwz

D(v),p(v) D(w),p(w)
2,u
5,u
2,u
4,x
2,u
3,y
3,y

D(x),p(x)
1,u

D(y),p(y)


2,x

D(z),p(z)



4,y
4,y
4,y

5
2

u

v
2

1

x

3

w
3

1

5


z

1

y

2
Giải thuật ñịnh tuyến 4-10


Ví dụ (2)
Kết quả có cây SPT (shortest-path tree) từ u:

v

w

u

z
x

y

Xây dựng forwarding table cho u:
ñích

link


v
x

(u,v)
(u,x)

y

(u,x)

w

(u,x)

z

(u,x)
Giải thuật ñịnh tuyến

4-11


NỘI DUNG
Tổng quan
Link state
Distance Vector
Hierarchical routing

Giải thuật ñịnh tuyến 4-12



Giả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) }
v
Trong ñó min lấy tất cả các láng giềng v của x
ñể xét
Giải thuật ñịnh tuyến

4-13


Ví dụ Bellman-Ford
5
2

u

v
2

1

x

3


w
3

1

Đã biết, dv(z) = 5, dx(z) = 3, dw(z) = 3
5

z

1

y

2

Theo phương trình B-F:
du(z) = min { c(u,v) + dv(z),
c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4

Node ñạt min là chặng kế tiếp trên ñường ñi
ngắn nhất, dùng ñể lập bảng forwarding table
Giải thuật ñịnh tuyến 4-14



Giả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

nó: c(x,v)
❒ Node x lưu giữ một distance vector:
Dx = [Dx(y): y є N ]
❒ Node x cũng lưu giữ các distance vector của
các láng giềng


Đối với mỗi láng giềng v, x lưu giữ:
Dv = [Dv(y): y є N ]
Giải thuật ñịnh tuyến 4-15


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:

Dx(y) ← minv{c(x,v) + Dv(y)}

cho mỗi node y ∊ N

❒ Dưới các ñiều kiện tự nhiên, ước lượng


dần về chi phí nhỏ nhất thực sự dx(y)

Dx(y) hội tụ

Giải thuật ñịnh tuyến 4-16


Giải thuật Distance vector (4)
Lặp, bất ñồng bộ: mỗi hoạt
ñộng lặp cục bộ là do:
❒ Thay ñổi chi phí liên kết
cục bộ
❒ Thông ñiệp cập nhật (DV
update message) từ láng
giềng

Phân tá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

❒ 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

Nếu DV thay ñổi, Báo cho
nút bên cạnh

Giải thuật ñịnh tuyến 4-17


Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2

node x table
cost to
x y z

= min{2+1 , 7+0} = 3

cost to
x y z
from

from

x 0 2 7
y ∞∞ ∞
z ∞∞ ∞
node y table
cost to

x y z

Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}

x 0 2 3
y 2 0 1
z 7 1 0

2

x ∞ ∞ ∞
y 2 0 1
z ∞∞ ∞
node z table
cost to
x y z
from

from

x

x ∞∞ ∞
y ∞∞ ∞
z 71 0

y
7


1

z

time
Giải thuật ñịnh tuyến 4-18


Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2

x ∞∞ ∞
y ∞∞ ∞
z 71 0

x 0 2 3
y 2 0 1
z 7 1 0

x 0 2 3
y 2 0 1
z 3 1 0

from

cost to
x y z

cost to
x y z


cost to
x y z

x 0 2 7
y 2 0 1
z 7 1 0

x 0 2 3
y 2 0 1
z 3 1 0

from

from

cost to
x y z

cost to
x y z
x 0 2 7
y 2 0 1
z 3 1 0

= min{2+1 , 7+0} = 3

2

x


y
7

1

z

cost to
x y z
from

from

from

x ∞ ∞ ∞
y 2 0 1
z ∞∞ ∞
node z table
cost to
x y z

from

from

x 0 2 7
y ∞∞ ∞
z ∞∞ ∞

node y table
cost to
x y z

from

node x table
cost to
x y z

Dx(z) = min{c(x,y) +
Dy(z), c(x,z) + Dz(z)}

x 0 2 3
y 2 0 1
z 3 1 0
time
Giải thuật ñịnh tuyến 4-19


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

x

y
50

1

z

Tại t0, y phát hiện thay ñổi link-cost, cập nhật DV của nó, và thông
báo cho các láng giềng của nó.
Tại t1, z nhận cập nhật từ y và cập nhật bảng của nó.
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

Giải thuật ñịnh tuyến 4-20


NỘI DUNG
Tổng quan
Link state
Distance Vector
Hierarchical routing

Giải thuật ñịnh tuyến 4-21



Hierarchical Routing
Qui mô: với hàng
trăm triệu ñích:

Nhu cầu tự quản:

❒ Không thể lưu tất cả

các mạng
❒ Mỗi quản trị mạng
muốn kiểm soát ñịnh
tuyến bên trong
mạng của họ

các ñích trong bảng
ñịnh tuyến!
❒ Việc trao ñổi bảng
ñịnh tuyến sẽ làm
tràn ngập các liên
kết!

❒ internet = mạng của

Định tuyến phân cấp

Giải thuật ñịnh tuyến 4-22



Hierarchical Routing
❒ Tập hợp các router vào

các vùng, “autonomous
systems” (AS)
❒ Các router trong cùng
AS




Gateway router
❒ Kết nối trực tiếp ñến
router trong AS khác

“intra-AS” routing
protocol: giao thức ñịnh
tuyến nội vùng
Các router trong AS
khác nhau chạy các
intra-AS routing
protocol khác nhau

Giải thuật ñịnh tuyến 4-23


Liên kết giữa các AS
3c

3a

3b
AS3

2a
1c
1a

1d

2c
AS2

1b

Intra-AS
Routing
algorithm

AS1

Inter-AS
Routing
algorithm

2b

❒ 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)


Forwarding
table



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
Giải thuật ñịnh tuyến 4-24


Các tác vụ liên AS
❒ Giả sử router trong

AS1 nhận datagram có
ñích nằm ngoài AS1:
❍ router nên chuyển
gói ñến gateway
router, nhưng ñến
gateway nào?

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

3c
3b

3a
AS3

2a
1c
1a

1d

2c
AS2

1b

2b

AS1
Giải thuật ñịnh tuyến 4-25



×