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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 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 routing forwarding routing algorithm local forwarding table header value output link 0100 0101 0111 1001 2 Tham số header gói ñến 0111 Giải thuật ñịnh tuyến 4-3 Tổng quan: Đồ thị mạng u Graph: G = (N,E) v x w z y N = tập router = { u, v, w, x, y, z } E = tập 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 hữu dụng ngữ cảnh mạng khác Ví dụ: P2P, với N tâp peer E tập kết nối TCP Giải thuật ñịnh tuyến 4-4 Tổng quan: Chi phí liên kết (cost) u v x • c(x,x’) = chi phí liên kết (x,x’) w z y - ví dụ c(w,z) = • chi phí ñược xác ñịnh tùy theo yếu tố băng thông, mức ñộ nghẽn Chi phí ñường ñi (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp) Câu hỏi: Đâu ñường ñi có chi phí nhỏ u z ? Giải thuật ñịnh tuyến xác ñịnh ñường ñi có chi phí nhỏ 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 router biết toàn topo với thông tin chi phí ❒ Các giải thuật “link state” Phân tán: ❒ router biết láng giềng chi phí nối ñến ñó ❒ Quá trình tính toán lặp lại, trao ñổi thông tin với 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 thay ñổ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 thay ñổi chi phí 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 topo mạng ❍ Có ñược qua "quảng bá trạng thái liên kết ❍ Tất node có thông tin ❒ Tính toán ñường ñi có chi phí thấp từ node ñến tất 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 ñến k node ñích Ký hiệu: ❒ c(x,y): chi phí từ node x ñến y; = ∞ không nối trực tiếp ❒ D(v): chi phí hành từ nguồn ñến node v ❒ p(v): nút trước nút v ñường ñi từ nguồn tới ñích ❒ N: Tập nút mà ñường ñi ngắn ñã ñược xác ñịnh Giải thuật ñịnh tuyến 4-8 Giải thuật Dijsktra Initialization: N = {u} for all nodes v if v adjacent to u then D(v) = c(u,v) else D(v) = ∞ Loop 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 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 u v x w z y Giải thuật ñịnh tuyến 4-10 Ví dụ Bellman-Ford u v x w Đã biết, dv(z) = 5, dx(z) = 3, dw(z) = z y Theo phương trình B-F: du(z) = { c(u,v) + dv(z), c(u,x) + dx(z), c(u,w) + dw(z) } = {2 + 5, + 3, + 3} = Node ñạt chặng ñườ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ỏ từ x ñến y ❒ Node x biết chi phí ñến láng giềng v nó: c(x,v) ❒ Node x lưu giữ distance vector: Dx = [Dx(y): y є N ] ❒ Node x lưu giữ distance vector láng giềng ❍ Đối vớ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, node gửi ước lượng distance vector ñến láng giềng ❒ Bất ñồng ❒ Khi node x nhận ước lượng DV từ láng giềng, cập nhật DV phương trình B-F: Dx(y) ← minv{c(x,v) + Dv(y)} cho node y ∊ N ❒ Dưới ñiều kiện tự nhiên, ước lượng dần chi phí nhỏ thực 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ộ: hoạt ñộng lặp cục do: ❒ Thay ñổi chi phí liên kết cục ❒ 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 DV nút bên cạnh) Tính lại ước lượng DV ❒ Mỗi node thông báo cho láng giềng thay ñổi DV ❍ Đến lượt láng giềng thông báo cho láng giềng chúng 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} = node x table cost to x y z = min{2+1 , 7+0} = cost to x y z from from x y ∞∞ ∞ z ∞∞ ∞ node y table cost to x y z Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)} x y z x ∞ ∞ ∞ y z ∞∞ ∞ node z table cost to x y z from from x x ∞∞ ∞ y ∞∞ ∞ z 71 y 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} = x ∞∞ ∞ y ∞∞ ∞ z 71 x y z x y z from cost to x y z cost to x y z cost to x y z x y z x y z from from cost to x y z cost to x y z x y z = min{2+1 , 7+0} = x y z cost to x y z from from from x ∞ ∞ ∞ y z ∞∞ ∞ node z table cost to x y z from from x 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 y z 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 thay ñổi chi phí liên kết nội ❒ 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 x y 50 z Tại t0, y phát thay ñổi link-cost, cập nhật DV nó, thông báo cho láng giềng Tại t1, z nhận cập nhật từ y cập nhật bảng Nó tính lại chi phí nhỏ ñến x gửi DV cho láng giềng Tại t2, y nhận cập nhật từ z cập nhật bảng Chi phí nhỏ y không thay ñổi ñó y không gửi thông ñiệp ñế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 mạng ❒ Mỗi quản trị mạng muốn kiểm soát ñịnh tuyến bên mạng họ ñích bảng ñịnh tuyến! ❒ Việc trao ñổi bảng ñịnh tuyến làm tràn ngập liên kết! ❒ internet = mạng Định tuyến phân cấp Giải thuật ñịnh tuyến 4-22 Hierarchical Routing ❒ Tập hợp router vào vùng, “autonomous systems” (AS) ❒ Các router AS ❍ ❍ Gateway router ❒ Kết nối trực tiếp ñến router AS khác “intra-AS” routing protocol: giao thức ñịnh tuyến nội vùng Các router AS khác chạy intra-AS routing protocol khác Giải thuật ñịnh tuyến 4-23 Liên kết 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 liên vùng (intra-AS inter-AS routing protocol) ❍ Forwarding table ❍ intra-AS cài ñặt mục cho ñích nội vùng inter-AS & intra-As cài ñặt mục cho ñích nằm bên Giải thuật ñịnh tuyến 4-24 Các tác vụ liên AS ❒ Giả sử router AS1 nhận datagram có ñích nằm AS1: ❍ router nên chuyển gói ñến gateway router, ñến gateway nào? AS1 phải: Học ñể biết ñích ñến ñược thông qua AS2, ñích ñến ñược thông qua AS3 Phát tán thông tin khả ñến ñược ñến tất router AS1 Đây nhiệm vụ 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 Ví dụ: thiết lập forwarding table router 1d ❒ Giả sử AS1 học biết ñược (thông qua giao thức inter-AS) subnet x ñến ñược thông qua AS3 (gateway 1c), thông qua AS2 ❒ Giao thức inter-AS phát tán thông tin ñến tất router bên ❒ Từ giao thức intra-AS mà router 1d xác ñịnh ñược giao tiếp I tiếp tục ñường có chi phí nhỏ ñến 1c ❍ Ghi vào forwarding table mục (x,I) 3c … 3a 3b AS3 x 2a 1c 1a 1d 2c 2b AS2 1b AS1 Giải thuật ñịnh tuyến 4-26 Ví dụ: Chọn số nhiều AS ❒ Giả sử từ giao thức inter-AS, AS1 học biết subnet x ñến ñược từ AS3 từ AS2 ❒ Để cấu hình forwarding table, router 1d phải xác ñịnh gateway nên chuyển gói có ñích x ❍ Đây tác vụ giao thức ñịnh tuyến inter-AS 3c 3a 3b AS3 … … x 2a 1c 1a 1d 2c AS2 1b 2b AS1 Giải thuật ñịnh tuyến 4-27 Ví dụ: Chọn số nhiều AS ❒ Gửi gói ñến router có chi phí thấp Từ inter-AS protocol biết ñến subnet x nhiều ñường Dùng thông tin từ intra-AS protocol xác ñịnh ñường ñi có chi phí nhỏ ñến gateway Chọn gateway có chi phí ñường ñi nhỏ Xác ñịnh giao tiếp I dẫn ñến gateway ñã chọn, nhập (x,I) vào forwarding table Giải thuật ñịnh tuyến 4-28 [...]... 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... 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”... 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... 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... 2c 2b AS2 1b AS1 Giải thuật ñịnh tuyến 4-26 Ví dụ: Chọn trong số nhiều AS ❒ Giả sử từ giao thức inter-AS, AS1 học và biết subnet x có thể ñến ñược từ AS3 và từ AS2 ❒ Để cấu hình forwarding table, router 1d phải xác ñịnh gateway nào nó nên chuyển gói có ñích là x ❍ Đây là một tác vụ nữa của giao thức ñịnh tuyến inter-AS 3c 3a 3b AS3 … … x 2a 1c 1a 1d 2c AS2 1b 2b AS1 Giải thuật ñịnh tuyến 4-27 Ví dụ:... 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. .. 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... 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... 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... 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 ... hỏi: Đâu ñường ñi có chi phí nhỏ u z ? Giải thuật ñịnh tuyến xác ñịnh ñường ñi có chi phí nhỏ 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?... 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 topo mạng ❍ Có ñược qua "quảng bá trạng thái liên kết ❍ Tất node có thông tin ❒ Tính toán... ñịnh tuyến bên mạng họ ñích bảng ñịnh tuyến! ❒ Việc trao ñổi bảng ñịnh tuyến làm tràn ngập liên kết! ❒ internet = mạng Định tuyến phân cấp Giải thuật ñịnh tuyến 4-22 Hierarchical Routing ❒ Tập

Ngày đăng: 04/12/2015, 07:26

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan