Định tuyến là quá trình kết hợp giữa các quy tắc và các hàm chức năng tại một nút mạng router nhằm thực hiện các nhiệm vụ: Thuật toán định đường Truyền gói dữ liệu Giao thức định tuyế
Trang 1Ki ểm soát tắc nghẽn
… Chương 2 Cấu trúc các tầng trong mô hình OSI
1
Trang 2Tầng mạng Tầng mạng sẽ thực hiện chức năng truyền gói dữ liệu từ điểm
nguồn tới đích qua các liên kết trong mạng hoặc các mối liên kết giữa các mạng với nhau
Chú ý : Tầng liên kết dữ liệu chỉ có chức năng đảm nhiệm việc truyền
dữ liệu giữa các nút theo liên kết điểm nối điểm (kết nối trực tiếp)
Trang 3Chức năng của tầng mạng`
Các chức năng thông thường của tầng mạng bao gồm
Đánh địa chỉ chỉ định địa chỉ để nhận biết các nút mạng trong quá
trình truyền thông dữ liệu.
Định truyến – Routing: xác định đường đi tối ưu của gói dữ liệu giữa
các nút mạng
Kết nối các mạng với nhau – internetworking: thực hiện các công việc
để kết nối giữa các mạng khác nhau để tạo mối liên kết dữ liệu
Kiểm soát chất lượng dịch vụ
Điều khiển tắc nghẽn
3
Trang 4Tính liên tục của băng thông.
Tốc độ lỗi khung dữ liệu nhỏ nhất có thể.
Dịch vụ của
tầng mạng
Tầng mạng
Trang 5 Gói dữ liệu được gọi là datagram.
Mỗi gói dữ liệu được định tuyến độc lập bởi các bộ định
tuyến (router) khác nhau.
Gói dữ liệu nhận được ở một router và được lưu vào bộ
đệm của router đó và nó sẽ được chuyển tới (forward) tới
một router khác tại cổng đầu ra tương ứng.
Việc xác định cổng đầu ra cho gói dữ liệu tại router thông
qua bảng định tuyến
Địa chỉ đich`
Cổng đầu ra tương ứng
1345 12
2458
7 07
85
6
12 1566
Trang 62 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 được xây dựng thông qua các thuật toán định tuyến tại
các router.
Dịch vụ của tầng mạng
Trang 7Next identifier
Liên kết dữ liệu được thiết lập thông qua việc chỉ định
một chuỗi các kết nối từ đích tới nguồn Chuỗi kết nối
được gọi là mạch ảo – VC.
Các gói dữ liệu được truyền lần lượt qua cùng một
router trên chuỗi kết nối.
Các gói dữ liệu có thể được truyền thẳng qua router
mà không cần chứa vào bộ đệm
Trang 9dễ dàng Khó thực hiện
Hiệu quả của quá trình
định tuyến
Khi VC được thiết lập, các gói
dữ liệu chỉ cần truyền qua các router trên tuyến liên kết.
Mỗi gói tin được định tuyến độc lập tại các router
Định tuyến
Mạch ảo yêu cầu router dành một bộ đệm trống cho mỗi kết nối
Router không cần giữ các thông tin trạng thái của kết nối
Thông tin trạng thái
Mỗi gói tin chỉ cần chứa chỉ số của gói
Mỗi gói tin chứa địa chỉ đầy đủ của điểm đích và nguồn
Thiết lập địa chỉ cho gói
9Dịch vụ của tầng mạng
Trang 10Thông báo về trạng thái hoặc các sự thay đổi cho các nút kế cận trong mạng.
Xác định đường dẫn tối ưu cho luồng dữ liệu trong mạng
Truyền tải các gói dữ liệu từ điểm nguồn tới điểm đích theo con đường tối ưu đã đưa ra.
Định tuyến là quá trình kết hợp giữa các quy tắc và các hàm chức
năng tại một nút mạng (router) nhằm thực hiện các nhiệm vụ:
Thuật toán định đường
Truyền gói
dữ liệu
Giao thức
định tuyến
Yêu cầu với một kỹ
thuật định đường + Các thuật toán định đường phải có tính chính xác
+ Thực hiện đơn giản, ổn định và thiết thực + Tính bình đẳng
+ Tính tối ưu
Định tuyến - Routing
Trang 11Định tuyến - Routing
Trang 12 Đồ thị: G = (N,E)
N = Tập các bộ định tuyến = { u, v, w, x, y, z }
E = Tập hợp các mối liên kết trực tiếp
= { (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Biểu diễn đồ thị
c(x,x’) = “giá” (chi phí) của liên kết giữa x và x’
VD: c(w,z) = 5
Thông thường “giá” là 1 hoặc là giá trị nghịch đảo tương ứng với băng
thông hoặc độ tắc nghẽn của mối liên kết đó.
Chí phí tổng cộng của tuyến liên kết
(x 1 , x 2 , x 3 ,…, x p ) = c(x 1 ,x 2 ) + c(x 2 ,x 3 ) + … + c(x p-1 ,x p )
Các khái niệm cơ bản
Trang 13Nguyên lý tối ưu.
Nếu router D nằm trên đường đi tối ưu từ A Æ C thì đường đi đường
đi tối ưu từ D Æ C bao gồm đường đi tối ưu từ A Æ C
¾ Đường đi từ A Æ C: A-D-I-C
¾ Giả thiết D-H-E-J-C là đường đi tối ưu giữa
D và C.
¾ Khi đó D-H-E-J-C sẽ có giá thấp hơn D-I-C
¾ Như vậy đường đi tối ưu giữa A Æ C là:
¾A-D-H-E-J-C
Các khái niệm cơ bản
Trang 14 Tập hợp tất cả các tuyến đường tối ưu từ tất cả các nút nguồn tới 1 nút đích là
1 cây có gốc đặt tại đích Cây đó được gọi là cây khung “Sink tree”
Nếu gọi G là một đơn đồ thị, một cây sẽ được gọi là cây khung của G nếu nó là
1 đồ thị con của G và chứa tất cả các đỉnh của G.
Không có cấu trúc lặp trong cây khung.
Thuật toán định tuyến để tìm ra cây khung.
Các khái niệm cơ bản
Trang 15Phân loại kỹ thuật định đường
Theo chức năng định đường của tất cả
các nút mạng.
Định đường tập trung:
Tất cả các router phải xác định được topo
mạng và các thông tin trạng thái của các
tuyến liên kết.
Kỹ thuật định đường “trạng thái liên kết
-link state”
Định đường phân tán:
Router phải biết về các liên kết vật lý tới
các router kế cận (gọi là neighbors)
Việc tính toán được lặp đi lặp lại theo chu
kỳ và được phân bố cho các router
Kỹ thuật định đường “khoảng cách vector”
Theo cách thức tổ chức cập nhật thông tin cho định đường.
Định đường theo thay đổi tải trọng.
Các thuật toán định tuyến
Trang 16Định đường tĩnh:
Kết quả định đường không dựa vào hiện
trạng lưu lượng thông tin của mạng mà
nó chỉ dựa vào 1 tuyến đường tối ưu đã
được tính toán và lựa chọn từ trước.
Đường định tuyến được chọn một lần và
không có sự thay đổi trong quá trình
truyền dữ liệu.
Không có sự trao đổi hay cập nhật thông
tin giữa các router trong quá trình định
tuyến.
Æ Nếu mạng ổn định thì kỹ thuật định
tuyến tĩnh rất phù hợp, tiết kiệm thời
gian, tài nguyên, giảm tắc nghẽn.
Định đường động:
Thay đổi các quyết định định đường phù hợp với sự thay đổi về tình trạng của mạng và lưu lượng dữ liệu trên mạng.
Æ Kết quả định đường phụ thuộc vào hiện trạng mạng
Có sự trao đổi thông tin và cập nhật thông tin giữa các router trong quá trình định tuyến.
Æ Kỹ thuật định đường này thích hợp với các dịch vụ thời gian thực
Phân loại kỹ thuật định đường
Trang 17Các thuật toán định đường
Thuật toán tràn “Floating”
Nguyên tắc:
Một nút mạng khi nhận được gói tin
thì nó sẽ sao ra nhiều bản và gửi ra
các đường xuất ra tại nút đó
Nhận xét:
Không có phần tính toán
Æ Thực hiện đơn giản
Tăng tải, tạo ra tải giả trên mạng
ÆTăng khả năng tắc nghẽn mạng
Nhiều gói tin đi “luẩn quẩn” trên
mạng
Trang 18Các gói tin được đánh chỉ số thứ tự Các nút sẽ kiểm tra số thứ tự của gói
tới Nếu số thứ tự này nằm trong danh sách các gói tin mà nút nhận và sao
trước đó thì gói tin sẽ được bỏ qua Nếu gói tin chưa được nhận thì nút vẫn
thực hiện sao ra nhiều bản và chuyển tới các đầu ra Æ Tránh trường hợp gói
tin đi “luẩn quẩn” trong mạng
Gắn vào phần điều khiển của gói tin thêm một trường mới chỉ định thời
gian gian tồn tại của gói tin trên mạng gọi là “thời gian sống” Giá trị của
trường dữ liệu này sẽ giảm đi 1 đơn vị khi nó qua mỗi nút mạng Nếu giá trị
này bằng 0 thì gói tin sẽ bị hủy để tránh việc tăng tải giả cho mạng Æ
Thường đặt “thời gian sống” = n + 1 Trong đó n là “đường kính” mạng lớn
nhất.
Việc sao gói dữ liệu có thể không cần thiết cho tất cả các đầu ra của nút mà
nút chỉ sao để xuất tới một số đầu ra của nút, và việc chọn các đầu ra này là
ngâu nhiên (đảm bảo tính bình đẳng trong quá trình định tuyến)
Thuật toán định tuyến này thường được áp dụng cho những mạng có kích
thước nhỏ và lưu lượng dữ liệu đánh giá là không cao
Thuật toán tràn “Floating”
Trang 19Tìm ra cây khung chứa các đường dẫn ngắn nhất từ nút nguồn – nút gốc tới tất cả các nút còn lại trong mạng.
Thuật toán Dijkstra
Cấu trúc mạng (topology) phải xác định và
giá của đường liên kết phải được biết tại
tất cả các nút mạng.
Các thông này phải giống nhau tại các nút
mạng.
Việc tính toán của thuật toán sẽ trả về
bảng “ forwarding” t ại nút mạng sau k lần
lặp, khi đó đường đi có chi phí ít nhất được
xác định từ nút đích tới nút thứ k trong
mạng
Yêu cầu với thuật toán:
c(x,y): giá của mối liên kết giữa hai nút x và y Nếu x và y không kết nối trực tiếp với nhau thì giá = ∞
D(v): Giá trị hiện tại tuyến liên kết
từ nút gốc tới nút đích v tương đương với tổng chi phí của các liên kết trong tuyến.
N: Tập các nút đã xác định trên đường đường ngắn nhất từ nút gốc.
p(v): nút mạng được xác định trong lần lặp trước đó trên đường
từ nút gốc tới v
Các ký hiệu:
Các thuật toán định đường
Trang 20¾ Tìm nút w không thuộc N mà D(w) là nhỏ nhất, thêm w vào N
¾ Thiết lập giá trị D(v) cho tất cả các nút v liên kết với w và không thuộc N theo quy tắc:
D(v) = min( D(v), D(w) + c(w,v) ) v à p(v) = w
Giá của liên kết mới tới v là giá cũ tới v được tính trước đó hoặc tổng giá trị giữa đường ngắt nhất tới nút w và giá của liên kết từ w tới v
Thuật toán Dijkstra
Thiết lập ban đầu:
Trang 212,u 2,u 2,u
D(w),p(w)
5,u 4,x 3,y 3,y
21
Ví dụ 1:
Thuật toán Dijkstra
Trang 23Thuật toán Dijkstra
Độ phức tạp của thuật toán: với n nút mạng.
Mỗi quá trình lặp cần kiểm tra lại tất cả các nút w không thuộc N
Số lần tính toán n*(n+1)/2 tương đương với O(n2)
Hiệu quả thực hiện tối ưu có thể đạt được là: O(nlogn)
Trang 24Thuật toán vector khoảng cách Distance Vector Algorithm (1)
Định nghĩa dx(y) là giá của đường ngắn nhất từ x đến y
Khi đó dx(y) = min {c(x,v) + dv(y) }
Giá trị min được xác định thông qua tất cả các nút lân cận của x
Phương trình Bellman-Ford
Dx(y) là giá trị ước lượng của giá nhỏ nhất của đường nối từ x tới y
Vector khoảng cách Dx = [Dx(y): y ∈ N ]
(chú ý vector khoảng cách Dx là một tập hợp các giá trị chi phí nhỏ nhất của
các tuyến liên kết giữa x với các nút mạng khác trong mạng)
Nút x biết giá của các kết nối tới các nút lân cận v là c(x,v)
Nút x xác nhận Dx v à vector khoảng cách tại các nút lân cận nó.
Như vậy với hai nút lân cận v, x đều xác nhận vector Dv = [Dv(y): y ∈ N ]
Trang 25Tính ước lượng, 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 26Dx(y) ← minv{c(x,v) + Dv(y)} với mỗi nút y ∊ N
Mỗi nút Router sẽ duy trì 1 bảng vector trong đó đưa ra khoảng cách
đã biết tốt nhất tới các nút khác.
Mỗi nút định kỳ gửi các thông tin về bảng vector khoảng cách mà nó ước lượng tới các nút các liền kề.
Khi một nút nhận được thông tin về vector khoảng cách ước lượng
từ nút kế cận nó sẽ thiết lập lại bảng vector khoảng cách tại nút đó
bằng phương trình B-F
Thuật toán vector khoảng cách (2)
Một số trường hợp việc ước lượng vector khoảng cách Dx bằng cách
tính trung bình các “giá” thực dx(y)
Nguyên tắc cơ bản:
Trang 27Xử lý tại mỗi nút:
27
Tính chất lặp và không đồng bộ.
9 Khi chi phí của liên kết giữa các
nút trong một mạng cục bộ thay đổi
thì việc tính toán giá trị của bảng
vector khoảng cách tại một nút sẽ
được thiết lập lại.
9 Khi có sự thay đổi mỗi nút sẽ
thông báo tới các nút lân cận và các
nút này cũng thông báo tới các nút
lân cận với nó nếu thấy cần thiết
Thuật toán vector khoảng cách (3)
Trang 28¾ Thiết lập giá trị ban đầu (lần lặp thứ 1):
D(i,i) = 0 ; D(i,k) = c(i,k) nếu k là nút lân cận
D(i,j) = ∞ Với tất cả các nút j không phải là nút lân cận của i Chú ý: tập hợp các giá trị D(i,*) là vector khoảng cách tại nút i.
¾ Thuật toán cũng lưu giữ nhưng giá trị “bước nhảy – next hop” thông
qua bảng forwarding với mỗi nút đích j Thiết lập ban đầu các giá trị này
như sau:
next-hop(i) = i;
next-hop(k) = k nếu k là nút lân cận, ngược lại
next-hop(j) = UNKNOWN nếu j không phải là nút lân cận
Thuật toán vector khoảng cách
¾ Sau mối lần lặp mối nút ngay lập tức truyền giá trị của vector khoảng cách
tại nút đó tới các nút lân cận
Với bất kỳ một nút lân cận k nào, nếu c(i,k) + D(k,j) < D(i,j), khi đó:
D(i,j) = c(i,k) + D(k,j) next-hop(j) = k
Sau mỗi lần lặp, tiêu chuẩn hội tụ dần đạt được.
Trang 29x y zx
yz
yz
yz
yz
∞ ∞
∞ ∞ ∞
Giá tới nút
x y zx
yz
yz
yz
yz
Trang 30Định tuyến khoảng cách vector Distance vector:
-Tại tất cả các nút thiết lập một “biển chỉ đường” khoảng cách tới các nút đích gọi là vector
Việc thiết lập tại một nút có sự chỉ dẫn của các nút “lân cận”.
Các phương pháp định tuyến động
Định tuyến trạng thái liên kết
(Link state routing):
Xác định sơ đồ của mạng dưới dạng
trạng thái liên kết tại tất cả các nút và
tìm ra các nút “nhảy” – “next hop”
trên đường định tuyến
Nếu xác định chắc chắn được “sơ
đồ” mạng sẽ xác định chắc chắn
được các nút nhảy.
Trang 31Định đường khoảng cách vector
Trang 32Định đường khoảng cách vector
Mỗi router chứa một bảng thông tin định tuyến chứa thông tin về chi phí tối ưu
tới các router khác trong mạng Nội dung của bảng này được cập nhật động bởi các thông tin do các nút lân cận gửi đến
Vector khoảng cách
Bảng thông tin định tuyến tại nút J
Trang 33Định đường khoảng cách vector
Thiết lập bảng vector khoảng cách
Trang 34Các nút sẽ gửi bảng khoảng cách vector
cho các nút lân cận.
Định đường khoảng cách vector
Trang 35Khi nhận đuợc thông tin (bảng khoảng cách vector) từ các nút lân cận, mỗi nút
mạng sẽ tính toán và thiết lập lại khoảng cách vector hay bảng khoảng cách
Trang 36Bảng khoảng cách vector được cập nhật tại các nút mạng sau lần lặp thứ 1
Bảng khoảng cách vector được cập nhật tại các nút mạng sau lần lặp thứ 1
Quá trình tính toán tại các nút mạng chỉ kết thúc khi không nhận được bảng
khoảng cách vector do các nút lân cận gửi tới hoặc thông tin cập nhật giống với thông tin được thiết lập trong lần tính toán trước đó.
Định đường khoảng cách vector
Trang 37Định tuyến khoảng cách vector
VD: Cho cấu hình mạng như hình vẽ Mạng
áp dụng phương pháp định tuyến vector
khoảng cách Trình bày các bước xử lý tại
các nút mạng để tìm ra đường đi tối ưu từ
các nút này tới nút F.
Bước 0: Các nút tiến hành đo chi phí tới các nút lân cận bằng cách gửi đi các
gói tin đặc biệt Khi các nút lân cận nhận được các gói tin này sẽ gửi trả lại, nút phát đi gói tin đặc biệt sẽ xác định chi phí của tuyến liên kết
thông qua các mốc thời gian phát và nhận về gói tin này (Có nhiều cơ chế đo chi phí của mối liên kết)
Trang 38Định tuyến khoảng cách vector
Bước 1: Các nút thiết lập ban đầu bảng vector khoảng cách của mình Sau khi
thiết lập các nút sẽ gủi thông tin về bảng vector khoảng cách của nút
đó cho các nút lân cận với nó.
• Nút C xác định được chi phí của mối liên kết với F là 1
• Nút E xác định được chi phí của mối liên kết với F là 2
¾ Nút C và E thiết lập bảng vector khoảng cách và gủi cho các nút lân cận với nó.
(chú ý trong bước này các nút khác cũng có những xử lý như tại nút C và E)
Trang 39Định tuyến khoảng cách vector
Bước 2:
Nút A nhận được thông tin về bảng vector khoảng cách gủi từ C và
“nhận thấy” rằng có thể xác định được đường tới nút F thông qua nút
Bước 3: Quá trình xử lý tại các nút trong bước này và các bước tiếp theo như
đã chỉ định trong phương pháp định tuyến
Quá trình này chỉ kết thúc khi thông tin cập nhật sau khi tính toán lại không tối ưu hơn so với giá trị trước đó hay bảng vector khoảng cách tại nút đó không cần tiết lập lại, và không có thông tin nào được gủi và nhận tại mỗi nút.
Trang 40Định tuyến khoảng cách vector
Với ví dụ trên các thông số định tuyến (tương ứng với nút F) được xác định
thông qua bảng sau:
Hàng cuối cùng của bảng là giá trị tối ưu nhận được sau nhiều lần lặp tại các
nút mạng Từ hàng này ta có thể xác định được đường đi tối ưu từ một nút
trong mạng tới nút F đang xét
VD: A Î F: A Æ C Æ F