Routing in Packet NetworksShortest Path Routing... Các giải pháp Shortest PathCác giao thức Vector Cự ly Distance Vector Protocols Các nút kề neighbors trao đổi danh sách ca
Trang 1Bài giảng Mạng Viễn thông (33BB)
Trang 2Routing in Packet Networks
Shortest Path Routing
Trang 4Định tuyến trong Packet Networks
Có 3 tuyến (routes) từ 1 tới 6:
Tuyến nào “tốt nhất”?
nhất? Chi phí thấp nhất? Tin cậy nhất?
Trang 5Yêu cầu về thuật toán định tuyến
Cấu hình hay băng thông, nghẽn
Xác định nhanh các router tạo nên tập hợp các tuyến
Mức độ sử dụng tài nguyên, độ dài đường
Làm việc được trong điều kiện tải cao, nghẽn mạch,
hỏng hóc thiết bị, triển khai nhầm….
Thực hiện phần mềm hiệu quả, tải xử lý nhỏ
Trang 6C
D
1 5
2 3
7 1
8
5
3 6
5
2
Switch or router Host VCI
Định tuyến trong Virtual-Circuit
Packet Networks
tiếp theo tuyến đã chọn
Trang 7 From A & VCI 5 → 3 & VCI 3 → 4 & VCI 4
Trang 82 2
3 3
4 4
5 2
6 3
Node 1 Node 2 Node 3 Node 4 Node 6 Node 5 1 1
2 4
4 4
5 6
6 6
1 3
2 5
3 3
4 3
5 5
Destination Next node 1 1
3 1
4 4
5 5
6 5
1 4
2 2
3 4
4 4
6 6
1 1
2 2
3 3
5 5
6 3
Destination Next node
Destination Next node Destination Next node
Destination Next node Destination Next node
Bảng Định tuyến trong
Datagram Packet Networks
Trang 90000
0111
1010 1101
0001
0100
1011 1110
0011
0101
1000 1111
0011
0110
1001 1100
R1
1
4 3
Không có quan hệ giữa các địa chỉ gần nhau
Bảng định tuyến cần 16 số
Trang 100000
0001
0010 0011
0100
0101
0110 0111
1100
1101
1110 1111
1000
1001
1010 1011
1
4 3
Địa chỉ có Phân cấp và Định tuyến
Các tiếp đầu chỉ thi mạng trạm nối tới
Bảng định tuyến chỉ cần 4 số
Trang 11Định tuyến Đặc biệt
Trang 12Gửi một packet tới tất cả các nút trong mạng
Sử dụng khi cần quảng bá packet tới tất cả các nút (VD: lan truyền thông tin trạng thái link)
Giải pháp
Gửi packet tới tất cả các ports trừ port tới
Trang 16Flooding Giới hạn
hàm mu, có thể gây tắc nghẽn mạng
Giải pháp giới hạn số packets
chặng tới một đường kính nhất định
loại bỏ truyền lặp
lại địa chỉ nguồn và số thứ tự và loại bỏ truyền lặp
Trang 17Deflection Routing
port)
packet tới port khác
topology)
Mạng Manhattan street
Mảng vuông của các nút
Nút được ký hiệu ( i,j)
Hàng chạy một chiều
Cột chạy 1 chiều
Đề xuất cho mạng optical packet
Trang 21Shortest Paths & Routing
Có nhiều đường nối nguồn bất kỳ tới đích bất kỳ
Định tuyến liên quan đến việc chọn ra đường sử dụng để thực hiện một chuyển tiếp packet
Có thể gắn một giá trị “chi phí” hay “cự ly” cho một tuyến nối hai nút mạng
Định tuyến trở thành bài toán tìm đường ngắn nhất (shortest path problem)
Trang 22Routing Metrics
Là phương tiện đo độ mong muốn của một đường (path)
Số chặng (Hop count): là đại lượng thô (rough) về tài nguyên sử dụng
Độ tin cậy (Reliability): độ khả dụng của tuyến; BER
Trễ (Delay): tổng trễ theo đường (path); phức tạp & có tính động
Băng thông (Bandwidth): “dung lượng khả dụng” trong một đường
Tải (Load): Mức độ sử dụng tuyến & router trên một đường
Chi phí: $$$
Trang 23Các giải pháp Shortest Path
Các giao thức Vector Cự ly (Distance Vector Protocols)
Các nút kề (neighbors) trao đổi danh sách các cự ly tới đích
Xác định chặng tiếp theo tốt nhất cho từng đích
Thuật toán (phân tán) đường ngắn nhất Ford-Fulkerson
Các giao thức Trạng thái Tuyến (Link State Protocols)
Thông tin trạng thái tuyến được đánh tràn (flood) tới tất cả các routers
Các routers có đầy đủ thông tin về topology của mạng
Tính toán đường ngắn nhất (Shortest path) và chặng tiếp theo
Thuật toán (tập trung) đường ngắn nhất Dijkstra
Trang 24g Q L
Vector Cự ly
Do you know the way to Hạ Long?
Trang 25Vector Cự ly
Các biển chỉ đường tại chô
Bảng định tuyến
Danh sách thông tin cho
trao đổi các dữ liệu (entries)
theo tốt nhất hiện xác định được
kề biết
Theo chu kỳ
Sau khi có thay đổi
dest next dist
Trang 26Đường ngắn nhất tới HL
Hạ Lo ng
Cij
Di Nếu Di là cự ly ngắn nhất từ nút i tới HL,
và nếu j là nút kề trên đường ngắn nhất tìm được, thì D = C + D
Các nút tìm đường ngắn nhất tới một nút
đích, vd., tới Hạ Long
Trang 27i không biết đường ngắn nhất tới HL mà
chỉ có thông tin tại chỗ từ các nút kề
Dj"
Cij”
i
Hạ Lo ng
Đường ngắn nhất tới HL
Trang 28Why Distance Vector Works
Hạ
Long
1 Hop From HL
2 Hops From HL
Hop-1 nodes calculate current (next hop, dist), & send to neighbors
Trang 29Bellman-Ford Algorithm
Xét tính toán cho một đích d
Khởi tạo
Bảng của mỗi nút có 1 hàng cho đích d
Cự ly của nút d tới chính nó bằng 0: D d =0
Cự ly của một nút khác j tới d bằng vô cùng: D j =, for j d
Nút của chặng tiếp theo n j = -1 chỉ thị chưa được xác định cho j d
Thay (nj, Dj(d)) cu bằng (nj*, Dj*(d)) mới nếu tìm
thấy nút tiếp theo mới hoặc có cự ly mới
Chuyển tới Bước Truyền
Trang 30Bellman-Ford Algorithm
Xét trường hợp tính toán song song cho tất cả các đích d
Khởi tạo
Mỗi nút có 1 hàng cho mỗi đích d
Cự ly của nút d tới bản thân bằng 0: D d (d)=0
Cự ly của một nút khác nút j tới d bằng vô cùng: D j (d)= , for j
Thay (nj , D i (d)) cu bằng (n j *, D j *(d)) mới nếu tìm thấy nút tiếp theo
mới hay cự ly mới
Chuyển đến Bước Truyền
Trang 31Iteration Node 1 Node 2 Node 3 Node 4 Node 5
5
4
6 2
2
3
4
2 1
1
2 3
Long
Dữ liệu Bảng
@ nút 1tới đích HL
Dữ liệu Bảng
@ nút 3tới đích HL
Trang 32Iteration Node 1 Node 2 Node 3 Node 4 Node 5
D6=0
D 3 =D 6 +1
n 3 =6
3 1
5
4
6 2
2
3
4
2 1
1
2 3
Iteration 1: Nút 6 truyền
thông tin cho 3 và 5
Trang 33Iteration Node 1 Node 2 Node 3 Node 4 Node 5
3 1
5
4
6 2
2
3
4
2 1
1
2 3
5
0 1
2
3
3
6
Iteration 2: Nút 3 và nút 5
truyền thông tin cho 1, 4 và 2
Trang 34Iteration Node 1 Node 2 Node 3 Node 4 Node 5
3 1
5
4
6 2
2
3
4
2 1
1
2 3
5
0 1
2 4
3 3
4
Iteration 3: Cập nhật
Trang 35Iteration Node 1 Node 2 Node 3 Node 4 Node 5
3 1
1
2 3
5
0 1
2
3 3
Trang 36Iteration Node 1 Node 2 Node 3 Node 4 Node 5
3 1
5
4
6 2
2
3
4
2 1
1
2 3
Trang 37Iteration Node 1 Node 2 Node 3 Node 4 Node 5
3 1
5
4
6 2
2
3
4
2 1
1
2 3
2
5
5 7
4
7
6
Trang 385
4
6 2
2
3
4
2 1
1
2 3
0
7 7
5
6 9
2
Trang 39Counting to Infinity Problem
Nodes believe best path is through each other
(Destination is node 4)
Trang 40Problem: Bad News Travels Slowly
Giải pháp khắc phục
nút kề đã nhận thông tin
đã nhận thông tin, nhưng với cự ly bằng vô cùng
Trang 41Split Horizon with Poison Reverse
Nodes believe best path is through
each other
Update Node 1 Node 2 Node 3
Before break (2, 3) (3, 2) (4, 1)
After break (2, 3) (3, 2) (-1, ) Node 2 advertizes its route to 4 to
node 3 as having distance infinity; node 3 finds there is no route to 4
1 (2, 3) (-1, ) (-1, ) Node 1 advertizes its route to 4 to
node 2 as having distance infinity; node 2 finds there is no route to 4
2 (-1, ) (-1, ) (-1, ) Node 1 finds there is no route to 4
Trang 42Link-State Algorithm
Mỗi nút nguồn lấy một bản đồ của tất cả các nút và link
metrics (link state) của toàn bộ mạng
Tìm đường ngắn nhất trên bản đồ từ nút nguồn đến nút đích
Tất cả các nút i trong mạng phát quảng bá tới tất cả các
nút khác trong mạng:
Các ID của các nút kề: Ni=tập hợp các nút kề của nút i
Cự lý tới các nút kề với nó: {Cij | j Ni}
Sử dụng đánh tràn để quảng bá packets
Trang 43Tìm các đường ngắn nhất bằng
thuật toán Dijkstra
Nút kề gần nhất cách s 1 chặng
w
"
x
x'
Nút kề gần thứ hai tiếp theo
cách s hay w” 1 chặng
x
z z'
Nút gần kề thứ 3 cách s một chặng từ s, w”, hay x
w '
Tìm các đường ngắn
nhất từ nguồn s tới tất
cả các đích
Trang 44Thuật toán Dijkstra’s
N: tập hợp các nút nằm trên đường shortest path dã chọn
Khởi tạo: (Bắt đầu từ nút nguồn s)
N = {s}, Ds = 0, “s cách bản thân cự ly bằng không”
Dj=Csj với tất cả j s, cự ly s tới các nút kề nối trực tiep
Bước A: (Tìm nút có cự ly nhỏ nhất i)
Find i N sao cho
Di = min Dj for j N
Bổ xung vào N
Nếu N chứa tất cả các nút thì dừng lại
Step B: (cập nhất các chi phí tối thiểu
Với mỗi nút j N
Dj = min (Dj, Di+Cij)
Quay về bước A
Cự ly tối thiểu từ s tới j qua nút i
trong N
Trang 45Execution of Dijkstra’s algorithm
3 23
5 2
3 23
5 2
4
3 3
3 23
5 2
3 23
5 2
4
33 1
3 23
5 2
3 23
5 2
4
33 1
3 23
5 2
Trang 46Shortest Paths in Dijkstra’s
3 23
5 2
3 23
5 2
3 23
5 2
3 23
5 2
3 23
3 23
5
2 33
48
Trang 47Phản ứng với Hỏng hóc
Nếu có tuyến bị lỗi,
Bộ định tuyến đặt cự ly tuyến bằng vô cùng & đánh tràn mạng bằng môtk packet cập nhật
Tất cả các bộ định tuyến cập nhật ngay cơ sở dữ liệu của chúng & tính toán lại các đường ngắn nhất
Cho phép khôi phục rất nhanh
Tuy nhiên, cần thận trọng với các bản tin cập nhật cu
Cần bổ sung time stamp hay số thứ tự vào mỗi bản tin cập nhật
Kiểm tra xem mỗi bản tin cập nhật nhận được có phải mới hay không
Nếu mới, bổ sung bản tin vào database và quảng bá
Nếu cu, gửi bản tin cập nhật trên tuyến tới
Trang 48Tại sao thuật toán trạng thái
tuyến tốt hơn?
Nhanh, hội tụ không cần lặp
Hỗ trợ các metrics chính xác, và đa metrics nếu cần thiết (throughput, delay, cost,
reliability)
Hỗ trợ đa đường tới một đích
ngắn nhất
Trang 49Source Routing
Strict: chuỗi các nodes trong đường được chèn vào header
Loose: chuỗi các nodes trên path được xác định
loại bỏ địa chỉ
route server
thông tin đi qua trong mạng
các dịch vụ của nhà cung cấp
Trang 50B Source host