Professional Documents
Culture Documents
6.0.chuong - 6 - DINH TUYEN IP
6.0.chuong - 6 - DINH TUYEN IP
Lớp Network 1
Tác động lẫn nhau giữa routing,
forwarding
giải thuật routing
3 2
Lớp Network 2
Mô hình đồ thị
5
v 3 w
2 5
u 2 z
1
3
1
x y 2
đồ thị: G = (N,E) 1
E = tập các kết nối ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Ghi chú: Mô hình đồ thị cũng dùng được trong những ngữ cảnh khác
Ví dụ: P2P, trong đó N là tập các điểm và E là tập các kết nối TCP
Lớp Network 3
Mô hình đồ thị: các chi phí
5 • c(x,x’) = chi phí kết nối (x,x’)
v 3 w
5 - ví dụ: c(w,z) = 5
2
u 2 z
1 •chi phí có thể luôn luôn là 1, hoặc
3
1 ngược lại liên quan đến băng thông,
x y 2
hay liên quan đến tắc nghẽn
1
chi phí của đường (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
giải thuật Routing: giải thuật tìm đường có chi phí thấp nhất
Lớp Network 4
phân lớp giải thuật Routing
thông tin toàn cục hoặc không
tập trung
Tĩnh hay động?
toàn cục: Tĩnh:
tất cả router có toàn bộ thông
tin về chi phí kết nối, cấu trúc việc tìm đường đi thay
mạng đổi chậm chạp theo
các giải thuật “trạng thái kết thời gian
nối” - Link State
không tập trung: Động:
biết các kết nối vật lý đến các
việc tìm đường đi thay
điểm lân cận và chi phí của nó
lặp lại quá trình tính toán, trao đổi rất nhanh
đổi thông tin với các điểm lân cập nhật theo chu kỳ
cận
phản ứng với những thay
các giải thuật “vector khoảng
cách” – Distance Vector đổi chi phí kết nối
Lớp Network 5
1 giải thuật Routing “trạng thái kết
nối”
giải thuật Dijkstra Ký hiệu:
biết chi phí kết nối, cấu trúc c(x,y): chi phí kết nối từ
mạng của tất cả các nút nút x đến y; = ∞ nếu không
tất cả các nút có thông kết nối trực tiếp đến điểm
tin giống nhau lân cận
tính toán đường đi chi phí D(v): giá trị chi phí hiện tại
thấp nhất từ 1 nút (nguồn) của đường từ nguồn đến đích
đến tất cả các nút khác v
cho trước bảng
p(v): nút trước nằm trên
forwarding của nút đó
đường từ nguồn đến nút v
sau k lần duyệt, biết được
đường đi chi phí thấp nhất N': tập các nút mà đường đi
của k đích chi phí thấp nhất đã được
xác định
Lớp Network 6
giải thuật Dijkstra
1 Khởi tạo:
2 N' = {u}
3 for tất cả các nút v
4 if v kề với u
5 then D(v) = c(u,v)
6 else D(v) = ∞
7
8 Lặp
9 tìm w không có trong N' nhưng D(w) tối tiểu
10 thêm w vào N'
11 cập nhật lại D(v) cho tất cả v kề với w và không có trong N' :
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* chi phí mới đến v là chính nó hoặc chi phí đường đi ngắn nhất
14 cộng với chi phí từ w đến v */
15 cho đến khi tất cả các nút nằm trong N'
Lớp Network 7
giải thuật Dijkstra: ví dụ
Bước N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
0 u 2,u 5,u 1,u ∞ ∞
1 ux 2,u 4,x 2,x ∞
2 uxy 2,u 3,y 4,y
3 uxyv 3,y 4,y
4 uxyvw 4,y
5 uxyvwz
v 3 w
2 5
u 2 z
1
3
1
x y 2
1
Lớp Network 8
giải thuật Dijkstra: ví dụ (2)
Cây kết quả đường đi ngắn nhất từ u:
v w
u z
x y
A A A A
1 1+e 2+e 0 0 2+e 2+e
D 0
B D B D B D B
0 0 1+e 1 0 0 1+e 1
0 C e 0 0 1 e
C C 1+e 0 C
1 1
e tính toán lại … tính toán lại … tính toán lại
khởi tạo
routing
Lớp Network 10
giải thuật Vector khoảng cách
công thức Bellman-Ford
định nghĩa
dx(y) := chi phí thấp nhất của đường đi từ x đến y
thì
Lớp Network 11
Bellman-Ford: ví dụ
5
rõ ràng, dv(z) = 5, dx(z) = 3, dw(z) = 3
v 3 w
2 5
u 2 z công thức B-F cho:
1
3
1 du(z) = min { c(u,v) + dv(z),
x y 2
1 c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
chú ý rằng tối tiểu đạt được là hop kế tiếp
trong đường đi ngắn nhất
Lớp Network 12
giải thuật Vector khoảng cách
Dx(y) = ước lượng chi phí thấp nhất từ x đến
y
nút x biết chi phí đến mỗi lân cận v: c(x,v)
Nút X duy trì vectơ khoảng cách Dx =
[Dx(y): y є N ]
Nút X cũng duy trì các vectơ khoảng cách
đến các lân cận của nó
với mỗi lân cận v, x duy trì
Dv = [Dv(y): y є N ]
Lớp Network 13
giải thuật Vector khoảng cách (4)
Ý tưởng chính:
mỗi nút định kỳ gửi ước lượng vector khoảng cách
của nó đến các lân cận
khi 1 nút x nhận ước lượng Dv mới từ lân cận, nó cập
nhật DV của mình dùng công thức B-F:
Lớp Network 14
giải thuật Vector khoảng cách (5)
lặp, không đồng bộ: mỗi lặp mỗi nút:
cục bộ được gây ra bởi:
chi phí kết nối cục bộ thay
đổi chờ cho (thay đổi trong chi
phí kết nối cục bộ hoặc thông
DV cập nhật thông báo từ
báo từ lân cận)
lân cận
phân bố: tính toán lại các ước lượng
mỗi nút thông báo đến các
lân cận chỉ khi DV của nó
thay đổi nếu DV đến bất kỳ đích nào
các lân cận sau đó thông có thay đổi, thông báo cho
báo đến các lân cận của nó các lân cận
nếu cần thiết
Lớp Network 15
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dx(z) = min{c(x,y) +
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
bảng nút x = min{2+1 , 7+0} = 3
chi phí đến chi phí đến
x y z x y z
x 0 2 7 x 0 2 3
y ∞∞ ∞ y 2 0 1
từ
từ
z ∞∞ ∞ z 7 1 0
bảng nút y
chi phí đến
x y z y
2 1
x ∞ ∞ ∞
x z
y 2 0 1 7
từ
z ∞∞ ∞
bảng nút z
chi phí đến
x y z
x ∞∞ ∞
y ∞∞ ∞
từ
z 71 0
thời gian
Lớp Network 16
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dx(z) = min{c(x,y) +
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
bảng nút x = min{2+1 , 7+0} = 3
chi phí đến chi phí đến chi phí đến
x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3
y ∞∞ ∞ y 2 0 1 y 2 0 1
từ
từ
từ
z ∞∞ ∞ z 7 1 0 z 3 1 0
bảng nút y
chi phí đến chi phí đến chi phí đến
x y z x y z x y z y
2 1
x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z
y 2 0 1 y 2 0 1 y 2 0 1 7
từ
từ
từ
z ∞∞ ∞ z 7 1 0 z 3 1 0
bảng nút z
chi phí đến chi phí đến chi phí đến
x y z x y z x y z
x ∞∞ ∞ x 0 2 7 x 0 2 3
y ∞∞ ∞ y 2 0 1 y 2 0 1
từ
từ
từ
z 71 0 z 3 1 0 z 3 1 0
thời gian
Lớp Network 17
Vector khoảng cách: các thay đổi chi phí
kết nối
các thay đổi chi phí kết nối:
1
nút kiểm tra thay đổi chi phí kết nối y
4 1
cập nhật thông tin dẫn đường, tính
x z
toán lại vector khoảng cách 50
nếu DV thay đổi, thông báo các lân
cận
Tại thời điểm t0, y kiểm tra thay đổi chi phí kết nối, cập nhật DV
và thông báo đến các lân cận của nó
“duyệt Tại thời điểm t1, z nhận được cập nhật từ y và cập nhật bảng của nó.
tin tức Nó tính toán chi phí thấp nhất mới đến x và gửi DV của nó đến các
tốt lân cận
nhanh” Tại thời điểm t2, y nhận được cập nhật của z và cập nhật bảng khoảng
cách của nó. Các chi phí thấp nhất của y không thay đổi và hơn nữa
y không gửi bất kỳ thông báo nào đến z.
Lớp Network 18
Vector khoảng cách: các thay đổi chi phí
kết nối
các thay đổi chi phí kết nối:
60
duyệt tin tức tốt nhanh y
duyệt tin tức xấu chậm - vấn đề 4 1
x z
“đếm đến vô tận”!
50
44 lần duyệt trước khi ổn định
Poisoned reverse:
Nếu Z dẫn đường từ Y thẳng tới
X:
Z nói với Y khoảng cách của nó
đến X là ∞ (vì thế Y sẽ không
dẫn đường đến X đi qua Z)
sẽ giải quyết triệt để vấn đề
đếm vô tận?
Lớp Network 19
So sánh các giải thuật LS và DV
thông báo phức tạp sự linh hoạt: điều gì xảy ra nếu
router hoạt động sai chức
LS: với n nút, E kết nối, O(nE)
năng?
các thông báo được gửi
LS:
DV: chỉ trao đổi giữa các lân
nút có thể thông báo chi phí
cận kết nối không chính xác
Tốc độ hội tụ mỗi nút chỉ tính toán bảng
riêng của nó
LS: giải thuật O(n2) yêu cầu
DV:
O(nE) thông báo
nút có thể thông báo chi phí
có thể có các dao động
đường đi không chính xác
DV: thời gian hội tụ thay đổi bảng của nút có thể được nút
có thể do các quá trình lặp khác dùng
tìm đường • lỗi lan truyền thông qua mạng
vấn đề đếm vô hạn
Lớp Network 20
Hierarchical Routing
nghiên cứu trong môi trường lý tưởng hóa
tất cả các router đồng nhất
mạng “phẳng”
… không đúng trong thực tế
Lớp Network 21
Hierarchical Routing
các router gom thành các
Gateway router
vùng, “các hệ thống tự trị-
autonomous systems” (AS) trực tiếp kết nối đến
các router trong cùng AS router trong AS khác
chạy giao thức routing giống
nhau
giao thức “intra-AS”
routing
các router trong AS khác
nhau có thể chạy giao thức
intra-AS routing
Lớp Network 22
Kết nối các AS
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1 bảng Forwarding được cấu
hình bởi cả giải thuật intra-
và inter-AS routing
g.thuật g.thuật Intra-AS thiết lập các
Intra-AS Inter-AS điểm đăng nhập vào các
đích nội mạng
Routing Routing
Lớp Network 23
các tác vụ Inter-AS AS1 cần:
giả sử router AS1 nhận 1. học các đích nào có
datagram với đích nằm thể chạm đến thông
ngoài nó qua AS2 và AS3
Router sẽ forward về 2. lan truyền thông tin
một trong những
này đến tất cả các
gateway router kế tiếp,
nhưng là cái nào? router trong AS1
công việc của inter-AS
routing!
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
Lớp Network 24
Ví dụ: thiết lập bảng forwarding trong router 1d
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
Lớp Network 25
Ví dụ: Chọn giữa nhiều AS
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
Lớp Network 26
Ví dụ: Chọn giữa nhiều AS
Lớp Network 27
8.2. Routing trong Internet
Lớp Network 28
Intra-AS Routing
Lớp Network 29
RIP ( Routing Information Protocol)
u đích số hop
v
u 1
A B w v 2
w 2
x 3
x y 3
z C D z 2
y
Lớp Network 30
các thông báo của RIP
Các vector khoảng cách: trao đổi giữa các
lân cận mỗi 30s thông qua Response
Message (cũng được gọi là thông báo).
Mỗi thông báo: danh sách lên đến 25 mạng
đích trong mỗi AS
Lớp Network 31
RIP: ví dụ
z
w x y
A D B
C
Network đích Router kế tiếp Số hop đến đích
w A 2
y B 2
z B 7
x -- 1
…. …. ....
bảng Routing trong D
Lớp Network 32
RIP: ví dụ
Đích Kế tiếpSố hop
w - 1 thông báo
x - 1 từ A đến D
z C 4
…. … ...
z
w x y
A D B
C
Network đích Router kế tiếp Số hop đến đích
w A 2
y B 2
z B A 7 5
x -- 1
…. …. ....
bảng Routing trong D Lớp Network 33
RIP: kết nối sai & phục hồi
Nếu không có thông báo nào sau 180s lân cận/kết nối
được xem như đã “chết”
những đường đi qua lân cận không còn dùng được
gửi thông báo mới cho các lân cận
các lân cận tiếp tục gửi ra những thông báo mới đó
(nếu các bảng thay đổi)
thông tin kết nối lỗi nhanh chóng (?) lan truyền trên
toàn mạng
poison reverse dùng để ngăn chặn các vòng lặp ping-
pong (khoảng cách vô hạn = 16 hop)
Lớp Network 34
RIP: xử lý bảng
các bảng RIP routing được quản lý bởi các tiến trình
mức application gọi là route-d (daemon)
các thông báo gửi trong các gói UDP, lặp lại theo
chu kỳ
routed routed
Transprt Transprt
(UDP) (UDP)
network bảng bảng network
(IP) forwarding forwarding (IP)
link link
physical physical
Lớp Network 35
OSPF (Open Shortest Path First)
“open”: sẵn sàng công khai
dùng giải thuật Link State
phân phối gói LS
bản đồ cấu trúc mạng tại mỗi nút
tính toán đường đi dùng giải thuật Dijkstra
thông báo OSPF mang 1 entry vào mỗi router lân cận
các thông báo phân tán đến toàn bộ AS (thông qua cơ
chế flooding)
thông điệp OSPF trực tiếp trên IP (chứ không phải là TCP hoặc
UDP)
Lớp Network 36
các đặc tính OSPF “cao cấp” (không có
trong RIP)
bảo mật: chứng thực tất cả các thông điệp OSPF (ngăn
những kẻ có ý đồ xấu)
cho phép nhiều đường đi có chi phí giống nhau (RIP chỉ
cho 1)
với mỗi kết nối, có nhiều không gian chi phí cho TOS
khác nhau (vd: chi phí kết nối vệ tinh được thiết lập
“thấp” để đạt hiệu quả tốt, “cao” cho thời gian thực)
hỗ trợ uni- và multicast tích hợp:
Multicast OSPF (MOSPF) dùng cùng cơ sở dữ liệu
cấu trúc như OSPF
OSPF phân cấp trong những miền lớn.
Lớp Network 37
OSPF phân cấp
Lớp Network 38
OSPF phân cấp
phân cấp mức 2: vùng địa phương, backbone.
các thông báo Link-state chỉ bên trong vùng
mỗi nút có cấu trúc vùng chi tiết; chỉ biết hướng
(đường đi ngắn nhất) đến các mạng trong các vùng
khác
các router ngoài biên vùng: “tổng hợp” khoảng cách
đến các mạng trong vùng của nó, thông báo đến các
router ngoài biên vùng
các Backbone routers: chạy OSPF routing hạn chế
đến backbone.
các router ngoài biên: kết nối đến các AS khác.
Lớp Network 39
Internet inter-AS routing: BGP
Lớp Network 40
các cơ sở BGP
Các cặp router (BGP peers) trao đổi thông tin
routing trên các kết nối TCP bán bền vững: BGP
sessions
các phiên BGP không cần các kết nối vật lý tương xứng
Khi AS2 thông báo 1 prefix đến AS1, AS2:
AS2 có thể tích hợp các prefix trong thông báo của nó
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
AS1 1d
eBGP session
iBGP session
Lớp Network 41
Phân phối thông tin khả chạm đích
Với phiên eBGP giữa 3a và 1c, AS3 gửi thông tin khả chạm cho
AS1.
1c sau đó có thể dùng iBGP phân phối thông tin khả chạm đến
tất cả router trong AS1.
1b sau đó có thể thông báo lại thông tin khả chạm đến AS2
trên phiên eBGP từ 1b-đến-2a
Khi router học xong prefix mới, tạo entry cho prefix trong
bảng forwarding của nó.
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
AS1 1d
eBGP session
iBGP session
Lớp Network 42
các thuộc tính đường đi & BGP
khi thông báo 1 prefix, trong đó có chứa các
thuộc tính BGP
prefix + các thuộc tính = “dẫn đường”
2 thuộc tính quan trọng:
AS-PATH: chứa các AS qua đó thông báo prefix
truyền đi: AS 67 AS 17
NEXT-HOP: Chỉ định router bên trong AS là hop kế
tiếp (có nhiều kết nối từ AS hiện tại đến AS hop kế
tiếp)
Khi gateway router nhận thông báo tìm đường,
nó dùng import policy để chấp nhận/từ chối.
Lớp Network 43
chọn BGP route
Router có thể học nhiều hơn một nhưng chỉ
được chọn một.
Các quy tắc hạn chế:
1. Thuộc tính giá trị ưu tiên cục bộ: quyết định
chính sách
2. AS-PATH ngắn nhất
3. NEXT-HOP router gần nhất: hot potato routing
4. Tiêu chuẩn bổ sung
Lớp Network 44
các thông điệp BGP
trao đổi các thông điệp BGP dùng TCP
các thông điệp BGP:
OPEN: mở kết nối TCP đến peer và chứng thực người
gửi
UPDATE: thông báo đường đi mới
KEEPALIVE giữ kết nối sống (alive), cũng gọi là yêu
cầu OPEN các ACK
NOTIFICATION: thông báo các lỗi trong thông
điệp trước đó, dùng để đóng kết nối
Lớp Network 45
chính sách BGP routing
legend: provider
B network
X
W A
customer
C network:
Lớp Network 46
chính sách BGP routing (2)
legend: provider
B network
X
W A
customer
C network:
Lớp Network 48
8.3. Broadcast và multicast
routing
Lớp Network 49
Broadcast Routing
Chuyển các gói từ nguồn đến tất cả các nút khác
Nguồn trùng lặp thì không có hiệu quả
tạo/truyền dẫn
trùng lặp R1 trùng lặp R1
trùng lặp
R2 R2
R3 R4 R3 R4
Lớp Network 51
Cây mở rộng
Đầu tiên xây dựng Cây mở rộng
Các nút forward các bản sao chỉ trên Cây
mở rộng
A A
B B
c c
D D
F E F E
G G
(a) Broadcast khởi đầu tại A (b) Broadcast khởi đầu tại D
Lớp Network 52
Cây mở rộng: tạo
Nút trung tâm
Mỗi nút gửi thông điệp gia nhập unicast đến nút
trung tâm
Thông điệp forward cho đến khi gặp một nút đã nằm trên
cây mở rộng
A A
3
B B
c c
4
2
D D
F E F E
1 5
G G
(a) các bước xây dựng (b) cây mở rộng đã xây
một cây mở rộng dựng xong
Lớp Network 53
Multicast Routing: phát biểu vấn đề
Mục tiêu: tìm một cây (trong các cây) kết nối
các router có các thành viên nhóm Multicast
cây: không phải tất cả các đường đi giữa các router được dùng
cây dựa trên nguồn: cây khác nhau từ nơi gửi đến nơi nhận
cây chia sẻ: cây giống nhau dùng bởi tất cả các thành viên
nhóm
S: nguồn Ký hiệu
R1 2
1 R4 router với các thành viên của
nhóm đã gắn vào
R2 5
router không có các thành
3 4
R5 viên của nhóm gắn vào
S: nguồn Ký hiệu
Ký hiệu