Professional Documents
Culture Documents
ĐỊNH TUYẾN
Khái niệm Định tuyến
Định tuyến là sự lựa chọn một con đường để truyền một đơn vị
dữ liệu từ trạm nguồn đến trạm đích trong một liên mạng.
Chức năng định tuyến, được thực hiện ở tầng mạng, cho phép bộ
định tuyến đánh giá các đường đi sẵn có tới đích.
Để đánh giá đường đi, định tuyến sử dụng các thông tin tôpô
mạng. Các thông tin này có thể do người quản trị thiết lập hoặc
nhờ các giao thức định tuyến.
Đối với mạng hoạt động theo hướng phi kết nối, quyết định định
tuyến được thực hiện cho mỗi gói tin. Đối với các mạng hướng kết
nối, quyết định định tuyến được thực hiện một lần, tại thời điểm
thiết lập kênh.
Định tuyến (Routing) khác với chuyển tiếp (Forwarding)!:
Forwarding: Select the output path using routing table
Routing: Management and updating the routing tables
Khái niệm Định tuyến
<Router>display ip routing-table
Routing Tables:
Destination/Mask proto pref Cost Nexthop Interface
0.0.0.0/0 STATIC 60 0 10.0.1.1 Ethernet1/0
1.0.0.0/8 RIP 100 1 10.0.1.1 Ethernet1/0
1.1.1.0/24 STATIC 60 0 10.0.1.1 Ethernet1/0
1.1.1.1/32 OSPF 10 2 10.0.1.1 Ethernet1/0
2.2.2.2/32 DIRECT 0 0 127.0.0.1 InLoopBack0
10.0.1.0/30 DIRECT 0 0 10.0.1.2 Ethernet1/0
10.0.1.2/32 DIRECT 0 0 127.0.0.1 InLoopBack0
Định tuyến
Có hai kiểu định tuyến:
Định tuyến tĩnh (Static - Non-Adaptive): thông tin
trong các bảng định tuyến được người quản trị
mạng tạo lập trực tiếp
routes never update or update slowly over time
Examples: Dijkstra, Flooding algorithm
Định tuyến động (Dynamic - Adaptive):
routes update more quickly use dynamic information of
current topology such as load, delay, …
Examples: Distance Vector, Link State Routing
Định tuyến tĩnh
Sau khi người quản trị nhập các lệnh cấu hình
để khởi tạo định tuyến động, thông tin về tuyến
sẽ được cập nhật tự động mỗi khi nhận được
một thông tin mới từ liên mạng.
Các thay đổi về tôpô mạng được trao đổi giữa
các router.
Định tuyến động
Định tuyến động hoạt động linh hoạt hơn định
tuyến tĩnh khi mạng có sự thay đổi trạng thái:
„Có sự cố
„Khôi phục sau sự cố
Các giao thức định tuyến động cũng có thể
chuyển lưu lượng từ cùng một phiên làm việc
qua nhiều đường đi khác nhau trong mạng để
có hiệu suất cao hơn. Tính chất này được gọi là
chia sẻ tải (load sharing)
Định tuyến động
Sự thành công của định tuyến
động phụ thuộc vào hai chức năng
cơ bản của Router:
„Duy trì bảng định tuyến
Hiệu quả sử
dụng băng thông
cho định tuyến
Tính bảo mật
Cần sử dụng
giao thức định
tuyến
Q&A
b4
300 km 200 km
a5
200 km 400 km 150 km b3
100 km
150 km
A 200 km a4 400 km b5
100 km 200 km
100 km
200 km 300 km b2
100 km 150 km 200 km
a3 100 km
300 km
200 km a2 200 km
a1 b1
: Nút mạng 200 km
100 km
Q: Tìm đường đi từ A đến B với số
hopcount không vượt quá 5. B
Q&A
b4
a5 3 2 b3
1 4 2
2
2
A a4 b5
2 4 2
7 1 1 b2
1 2 1 2
a3 1
3
2 a2 2
a1 b1
: Nút mạng 2
1
Q: Tìm đường đi từ A đến B có giá
(cost) thấp nhất. B
Q&A
b4
5 5
a5
2 10 10 b3
10 10
a4 100
A 10
b5
3
10
10
2 5 10 b2
10 100
a3 5
5
2 a2 10
a1 b1
: Nút mạng 3
10
Khi một giao thức định tuyến cập nhật bảng định tuyến, mục
đích của nó là xác định đâu là thông tin tốt nhất để lưu trong
bảng định tuyến thông qua giải thuật định tuyến.
Mỗi giải thuật định tuyến xác định thông tin tốt nhất theo cách
riêng của nó.
„Giải thuật tạo ra một số, được gọi là giá trị metric, cho mỗi
đường qua mạng. Thường thì giá trị metric càng nhỏ thì đường
đi càng tối ưu.
„Có thể tính toán các metric dựa trên một đặc tính đơn lẻ của
đường đi; hoặc cũng có thể tính các metric phức tạp hơn bằng
cách kết hợp nhiều đặc tính.
Giải thuật định tuyến
I d1 distance
K
d2
d1 + d2 is minimal
J d3
Other path from J to K
d3 > d2
Set of all optimal routes as
• from all sources d1 + d3 > d1 + d2
• to a given destination
is a tree: sink tree
Nguyên lý tuyến tối ưu
Thuật toán
Tại mỗi bước trong một router:
Nhận bảng định tuyến từ các hàng xóm
Tính toán khoảng cách tới các hàng xóm
Tính toán cập nhật lại bảng định tuyến
Các đặc tính:
Lặp
Không đồng bộ
Phân tán
Giải thuật Bellman-Ford
Thuật toán gồm các bước sau:
Mỗi nút tính khoảng cách giữa nó và tất cả các nút
nút lân cận, nó tính các tuyến đường ngắn nhất tới
tất cả các nút khác và cập nhật bảng thông tin của
chính mình.
Giải thuật Bellman-Ford
Lặp: Tiếp diễn tới khi không có thông tin nào thay đổi
Phân bổ: Mỗi nút truyền thông chỉ với hàng xóm trực tiếp
Mỗi router duy trì:
„Hàng cho mỗi đích khả thi
„Cột cho mỗi hàng xóm trực tiếp tới nút
„Mục trong hàng Y và cột Z của nút X: khoảng cách tốt nhất từ X tới Y
qua hop tiếp theo là Z
„Chú ý: Để đơn giản, ở ví dụ này chỉ cho thấy khoảng cách
ngắn nhất tới đích.
Mỗi nút thông báo các hàng xóm chỉ khi có đường đi giá
thành thấp nhất tới bất kỳ đích nào đó có thay đổi
Khi đó hàng xóm lại thông báo tới hàng xóm của nó nếu cần.
36
Giải thuật Bellman-Ford
neighbor: j
1 C
B A B D
7
8 2
A A 1 14 5
destination: i
1 E D B 7 8 5
source 2
C 6 9 4
E’s neighbor A D 4 11 2
B’s neighbor E
Distance table: D(i, j)
B
D (A,C) node E, for dest. A via neighbor B: DE(A,B)
C E
A
D (A,B)=
B B
E c(E,B) = c(E,B) + min w{D (A,w)}
…
= 8 + 6 = 14
Định tuyến vector khoảng cách
Ưu điểm:
Đơn giản, dễ cấu hình
Router ít tốn CPU và bộ nhớ
Nhược điểm:
Hội tụ chậm, dẫn đến việc sai lệch trong bảng định tuyến.
Chiếm nhiều băng thông khi cập nhật do phải gửi toàn bộ bảng định
tuyến
Tin tốt thì truyền nhanh, tin xấu thì truyền chậm
Các thay đổi của tô-pô mạng không được ghi nhận nhanh do các cập
nhật được lan truyền theo từng nút một.
Đếm dần đến vô cùng (nếu liên kết hỏng hoặc nút mạng hỏng làm
cho một nút bị tách khỏi một tập các nút khác, các nút này vẫn sẽ
tiếp tục ước tính khoảng cách tới nút đó và tăng dần giá trị tính được,
trong khi đó còn có thể xảy ra việc định tuyến thành vòng tròn)
Định tuyến vector khoảng cách
Example: Propagation of good news
The count-to-infinity problem
A goes down after initially
3+1
4+1
B thinks that there is a path to A thru C but
4+1
C itself go to A via B!
40
Định tuyến theo trạng thái liên kết
đó
Lặp lại: sau k lần lặp lại, sẽ tính được tuyến ngắn
nhất tới k đích
Giải thuật Dijkstra
5 5
Ký hiệu: 3 C
B
N: Tập các node trong mạng 2 5
A 3 1
c(i,j): chi phí liên kết (link cost) 23 F
từ node i tới j. Nếu I và j không 1 2
kết nối trực tiếp với nhau thì D E
1
c(i,j) nhận giá trị vô cùng
Example: N: A, B, C, D, E, F
p(v): các node dọc theo tuyến C(A,C)=5; C(C,A)=5
từ nguồn tới v C(B,D)=2; C(D,B)=3
…
D(v): Giá trị hiện tại của chi phí
Source=A
tuyến từ nguồn tới đích V
p(F): A-D-E-F
D(F)=4
Giải thuật Dijkstra
50
51
52
53
54
55
56
Giải thuật Dijkstra
Example: computes least cost paths from node A to all other nodes
5
D(v): Distance (cost) of A to v. 3
P(v): nodes along path fromA to v. B C
2 5
A 3 1
2 F
1 2
D E
1
Giải thuật Dijkstra
Thảo luận:
Độ phức tạp thuật toán:
Giả sử có n nodes, trừ node nguồn
Vòng lặp đầu tiên: Tìm qua n nodes để xác định node có giá trị nhỏ nhất, w.
Vòng lặp thứ hai: Kiểm tra n-1 nodes để xác định node có giá trị nhỏ nhấ.
Vòng lặp thứ ba: n-2 nodes, ...
Tổng số nodes được tìm: n(n+1)/2
Như vậy khi n lớn, thuật toán sẽ trở lên phức tạp
Ưu nhược điểm của định tuyến LS
Ưu điểm chính của định tuyến bằng trạng thái kết nối là
phản ứng nhanh nhạy hơn, và trong một khoảng thời gian
có hạn, đối với sự thay đổi kết nối
Gói được gửi qua mạng trong định tuyến bằng trạng thái
liên kết thì nhỏ hơn những gói dùng trong định tuyến bằng
vector. Định tuyến bằng vector đòi hỏi bảng định tuyến
đầy đủ phải được truyền đi, trong khi định tuyến bằng
trạng thái kết nối thì chỉ có thông tin về “hàng xóm” của
node được truyền đi. Vì vậy, các gói này dùng tài nguyên
mạng ở mức không đáng kể.
Khuyết điểm chính của định tuyến bằng trạng thái liên kết
là nó đòi hỏi nhiều sự lưu trữ và tính toán để chạy hơn
định tuyến bằng vector.
Định tuyến phân cấp (1)
Hai vấn đề cần xem xét khi mạng có số lượng lớn router:
Phạm vi (scale): Khi số lượng các router lớn, khối lượng thông tin phải
tính toán, lưu trữ và trao đổi giữa các bảng chứa thông tin định tuyến trên
mỗi router (ví dụ các cập nhật về đường đi ngắn nhất) cũng trở nên cực
lớn. Các thông tin trao đổi cập nhật giữa các router sẽ “ngốn” toàn bộ
băng thông của đường truyền. Do đó nẩy sinh ra nhu cầu làm giảm độ
phức tạp trong việc xác định đường đi trên một mạng lớn như Internet.
Quản trị (Administrative automomy) : Mặc dù các nhà thiết kế
thường bỏ qua yêu cầu của các tô chức - chẳng hạn khả năng lựa chọn
thuật toán định tuyến hay che dấu cấu trúc mạng bên trong của tổ chức
với bên ngoài - nhưng trên thực tế đây là những vấn đề quan trọng. Lý
tưởng mà nói, một tổ chức phải giữ khả năng quản trị và kiểm soát mạng
máy tính của mình nhưng vẫn có khả năng kết nối với các mạng bên
ngoài.
Định tuyến phân cấp (2)
Cả hai vấn đề trên đều có thể giải quyết bằng cách nhóm các
router thành các vùng hay Miền tự trị (Autonomous System
- AS).
Các router trong cùng AS sử dụng cùng một thuật toán định
tuyến (ví dụ như thuật toán LS hay DV) và biết đầy đủ về nhau .
Thuật toán định tuyến chạy trong mỗi AS được gọi là intra AS
routing protocol.
Như vậy cần phải kết nối các AS với nhau - và vì thế một số
router trong AS phải có thêm nhiệm vụ định tuyến gói tin ra phía
ngoài AS. Các router định tuyến gói tin ra phía ngoài như vậy
được gọi là gateway router.
Thuật toán định tuyến được sử dụng tại các gateway router là
inter AS routing protocol.
Định tuyến phân cấp (3)
Phân cấp định tuyến:
Chia mạng thành các vùng nhỏ hơn, router trong
vùng này chỉ biết cách định tuyến tới các router
khác trong cùng vùng với nó.
Giảm khối lượng thông tin mà một router cần phải
thực hiện định tuyến
Router không biết về cấu hình nội bộ của các
vùng khác.
Gateway là router mà biết về các vùng khác
Định tuyến phân cấp (4)
C.b
B.a
A.a
Host2
b A.c c
a a
b
C a B
d Intra-AS routing
c
A b within AS B
Intra-AS routing
Host1 within AS A
Định tuyến phân cấp (5)
Ưu điểm:
Có khả năng mở rộng. Mỗi router cần ít thông tin hơn
In Ex. Distance table reduce from 17 entries to 7
Nhược điểm:
Sub optimal routes. The average path length increases
65