DANH MỤC TỪ TIẾT TẮT TT Từ viết tắt Tiếng anh Tiếng việt 1 OSPF Open Shortest Path Giao thức định tuyến đa đích với vecto khoảng cách Giao thức định tuyến đa đích đường liên kết đầu ti
Trang 1LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn đến toàn thể thầy cô giáo trong trường Đại Học Bách Khoa Hà Nội, đặc biệt là các thầy cô trong Viện Công nghệ thông tin và Truyền thông và Bộ môn Khoa học máy tính nói riêng, những thầy cô đã tận tình giảng dạy và truyền đạt cho em kiến thức quý báu về chuyên môn và đạo đước trong suốt thời gian học cao học tại trường
Bên cạnh đó, em xin chân thành gửi lời cảm ơn đến thầy PGS.TS Nguyễn Đức Nghĩa, thầy đã luôn tận tình chỉ bảo, cung cấp tài liệu, định
hướng và hướng dẫn em trong suốt quá trình làm luận văn Thầy đã cho em những lời khuyên ý nghĩa và quan trọng trong việc nghiên cứu Trong quá trình hoàn thành luận văn dưới sự hướng dẫn của thầy, em đã học được tinh thần làm việc nghiêm túc, cách nghiên cứu khoa học và hiệu quả Và đó là hành trang, là định hướng giúp em trong quá trình làm việc sau này
Cuối cùng em xin gửi lời cảm ơn đến những người thân trong gia đình
và bạn bè đã luôn có những lời động viên, khuyến khích em trong suốt quá trình học tập và thực hiện luận văn
Trong thời gian thực hiện luận văn, mặc dù có nhiều cố gắng nhưng luận văn không khỏi tránh những thiếu sót Kính mong các thầy cô giáo trong khoa cùng các bạn tận tình chỉ bảo và góp ý kiến để luận văn của em được hoàn thiện hơn
Em xin chân thành cảm ơn
Hà Nội, ngày tháng năm 2014
Trang 2DANH MỤC THUẬT NGỮ TIẾNG ANH SANG TIẾNG VIỆT
2 Multicast route Định tuyến đa đích
3 Multicast networks Mạng đa đích
4 Multicast session Một phiên đa đích
7 Delay Minimization Cực tiểu hóa độ trễ
8 Cost minimization Chi phí cực tiểu
9 Congestion minimization Cực tiểu hóa tình trạng tắc nghẽn
10 Cache placement Vị trí bộ nhớ cache
11 Steiner tree-based Cây cơ sở Steiner
12 Center – based tree Cây cơ sở trung tâm
13 Source – based routing Định tuyến cơ sở nguồn
14 Topological center Tâm tô pô
15 Steiner tree – based Cây Steiner cơ sở
16 Core Based Trees Cây dựa vào lõi
Trang 3DANH MỤC TỪ TIẾT TẮT
TT Từ viết tắt Tiếng anh Tiếng việt
1 OSPF Open Shortest Path
Giao thức định tuyến đa đích với vecto khoảng cách
Giao thức định tuyến đa đích đường liên kết đầu tiên theo chuẩn mở
6 PIM - DM PIM Dense Mode
Định tuyến đa đích không phụ thuộc giao thức chế độ dày
7 PIM – SM PIM Sparse Mode
Định tuyến đa đích không phụ thuộc giao thức chế độ thưa
Protocol
Giao thức định tuyến thông tin
10 RPT Rendezvous Point Tree Cây điểm hẹn
15 MASBR Multicast AS Border
Router
Bộ định tuyến biên đa đích
hệ thống độc lập
Trang 416 IETF Internet Engineering
Thuật toán định tuyến đa ràng buộc thích ứng đa điểm
Trang 5MỤC LỤC
LỜI CẢM ƠN i
DANH MỤC THUẬT NGỮ TIẾNG ANH SANG TIẾNG VIỆT ii
DANH MỤC TỪ TIẾT TẮT iii
DANH MỤC HÌNH ẢNH viii
LỜI MỞ ĐẦU 1
Chương 0: CÁC KHÁI NIỆM CẦN THIẾT 3
0.1 Lý thuyết đồ thị 3
0.2 Một số thuật toán cơ bản trên đồ thị 6
0.2.1 Thuật toán Prim 6
0.2.2 Thuật toán Dijkstra cơ bản 7
0.3 Các giao thức 8
0.3.1 Công nghệ multicast 8
0.3.2 Các giao thức Multicast chính 9
0.3.2.1 Giao thức định tuyến multicast với vecto khoảng cách 10
0.3.2.2 Giao thức PIM (Protocol Independent Multicast) 12
0.3.2.3 Multicast Open Shortest Path First (MOSPF) 14
0.3.2.4 MBonne (Multicast Backbone) 17
Chương 1: BÀI TOÁN ĐỊNH TUYẾN ĐA ĐÍCH 18
1.1 Đặt vấn đề 18
1.2 Giới thiệu bài toán định tuyến đa đích 20
1.3 Các bài toán tối ưu hóa 25
1.3.1 Bài toán cực tiểu hóa độ trễ (Delay Minimization) 25
1.3.2 Chi phí cực tiểu (cực tiểu hóa chi phí) (Cost Minimization) 25
1.3.3 Tình trạng tắc nghẽn cực tiểu (cực tiểu hóa tình trạng tắc nghẽn) (Congestion Minimization) 26
1.3.4 Vị trí bộ nhớ cache (Cache Placement) 26
Trang 61.4 Ứng dụng định tuyến đa đích 27
Chương 2: CÁC THUẬT TOÁN GIẢI BÀI TOÁN ĐỊNH TUYẾN ĐA ĐÍCH 29
2.1 Phân loại các thuật toán (Algorithm Classification) 29
2.2 Các thuật toán cơ bản 30
2.2.1 Thuật toán lan tràn (Flooding Algorithm) 30
2.2.2 Cây bao trùm tối thiểu với hạn chế độ trễ (Delay Constrained Minimum Spanning Trees) 32
2.2.3 Bài toán đường đi ngắn nhất với hạn chế độ trễ (Shortest Path Problems with Delay Constraints) 34
2.2.4 Cây cơ sở trung tâm và tâm topo (Center-Based Trees và Topological Center) 36
2.3 Các thuật toán phân tán 37
2.3.1 Thuật toán phân tán cho định tuyến đa đích ((Định nghĩa thuật toán phân tán)-(Distributed Algorithm Concepts)) 37
2.3.2 Dạng phân tán của KMB Heuristic (Distributed Version of the KMB Heuristic) 39
2.3.3 Ứng dụng giải thuật Prim (An Adaptation of Prim’s Algorithm) 40 2.3.4 Sử dụng lan tràn cho tính toán đường đi (Using Flooding for Path Computation) 41
2.3.5 Thuật toán phân tán cho audio và video trên đa đích (Distributed Algorithm for Audio and Video on Multicast) 42
2.3.6 Thuật toán cho các nhóm Sparse (Algorithms for Sparse Groups) 43
2.3.7 Sự cải biên của giải thuật Dijkstra (Modifications of Dijkstra’s Algorithm) 44 2.3.8 So sánh các phương pháp tiếp cận phân tán (A Comparison of
Trang 7Chương 3: GIẢI THUẬT DIJKSTRA CẢI BIÊN GIẢI BÀI TOÁN
ĐỊNH TUYẾN ĐA ĐÍCH 50
3.1 Phát biểu bài toán tối ưu trong mạng định tuyến đa đích 50
3.2 Phân tích 53
3.3 Áp dụng giải thuật dijkstra cải biên để giải quyết bài toán định tuyến đa đích 54
Chương 4: XÂY DỰNG CHƯƠNG TRÌNH VÀ CÀI ĐẶT THỰC NGHIỆM 60
4.1 Mô tả cài đặt 60
4.2 Mô tả dữ liệu thực nghiệm 60
4.3 Kết quả thực nghiệm 61
KẾT LUẬN 63 DANH MỤC TÀI LIỆU THAM KHẢO
Trang 8DANH MỤC HÌNH ẢNH, BẢNG
Hình 0.1.1: Một đồ thị đơn giản 3
Hình 0.3.1.1: Khái niệm tổ chức của một nhóm đa đích 9
Hình 0.3.2.1: Tìm hàng xóm trong DVMRP 11
Hình 0.3.2.2: Cắt nhánh trong DVMRP 11
Hình 0.3.3.3: Ghép nhánh trong DVMRP 12
Hình 1.2.1: Ví dụ đơn giản của vấn đề định tuyến đa đích (multicast routing) 20
Hình 3.1.1: Đồ thị G = (V, E) với nút nguồn s 51
Hình 3.1.2: Đồ thị G = (V, E) với đường màu đỏ thể hiện đường truyền tin từ nút nguồn s đến các nút đích 1, 2, 3 52
Hình 3.1.3 Đồ thị G = (V, E) với đường màu đỏ thể hiện đường truyền tin từ nút nguồn s đến các nút đích 1, 2, 3 52
Hình: 3.3.1: Đồ thị G = (V, E) và nút nguồn s 55
Hình 3.3.2: Bước 1 56
Hình 3.3.3: Bước 2 56
Hình 3.3.4: Bước 3 57
Hình 3.3.5: Bước 4 57
Hình 3.3.6: Bước 5 58
Hình 3.3.7: Bước 6 58
Hình 3.3.8: Đáp số của bài toán 59
Bảng 1: So sánh các thuật toán cho bài toán định tuyến đa đích với hạn chế độ trễ .47
Trang 9LỜI MỞ ĐẦU
Ngày nay với sự bùng nổ của nghành công nghệ thông tin, mạng internet có những bước nhảy vọt trong việc cung cấp dịch vụ cho khách hàng Điều này chứng tỏ internet ngày nay đã trở thành mạng dữ liệu công cộng rất quan trọng trong xã hội Với lượng dữ liệu lớn khiến cho việc trao đổi thông tin trở nên nhanh chóng, đầy đủ và thuận tiện hơn nhiều so với trước đây Khối lượng thông tin trao đổi qua internet được tăng theo cấp số nhân mỗi ngày Ngày càng nhiều các tổ chức, công ty, cá nhân… sử dụng internet cho các mục đích khác nhau Và đặc biệt đem lại cho chúng ta nhiều thuận lợi tạo mối quan hệ công việc trong xã hội, cho phép các nhân viên làm việc hiệu quả tại nhà và cho phép một doanh nghiệp kết nối một cách an toàn tới các đại lý của họ cùng các hãng hợp tác Điều này chứng tỏ internet đã và đang làm thay đổi cuộc sống của con người, làm cải thiện công việc kinh doanh, giải trí, giáo dục cũng như các phương thức liên lạc …
Một trong những hoạt động của mạng nói chung là việc truyền dữ liệu
từ nguồn tới đích Định tuyến là một chức năng không thể tách rời của mạng truyền thông khi kết nối từ điểm xuất phát tới điểm đích và có ý nghĩa đặc biệt quan trọng trong việc thiết kế và tối ưu hóa mạng Cấu trúc mạng, giải pháp công nghệ, phương pháp định tuyến và các phương pháp giải quyết bài toán thiết kế mạng là các vấn đề liên quan mật thiết với nhau và quyết định chất lượng hoạt động của mạng Chính vì vậy, bài toán thiết kế mạng với đường truyền ngắn nhất cần được quan tâm nghiên cứu để nhằm tối ưu hóa sử dụng tài nguyên mạng Trên thế giới đã có nhiều nghiên cứu về các phương pháp định tuyến với mục đích là tìm ra những phương pháp định tuyến thích hợp để áp dụng vào thực tế mạng lưới Trong thời gian gần đây, xu hướng định tuyến tối ưu cho mạng đã trở thành một chủ đề nghiên cứu quan trọng Bởi vì, lợi ích mang lại trên mạng được tối đa bằng việc tối ưu hóa các hàm
Trang 10mục tiêu Tùy thuộc vào cấu trúc và các đường truyền trên mạng mà các hàm mục tiêu và ràng buộc đi theo sẽ khác nhau
Mục đích của đề tài:
Tìm hiểu thuật toán phân tán giải bài toán định tuyến đa đích Tìm hiểu
về các thuật toán giải quyết bài toán Triển khai cài đặt các thuật toán và tiến hành thực nghiệm để đánh giá hiệu quả của các thuật toán đã tìm hiểu
Cơ sở khoa học và thực tiễn của đề tài:
Hiện nay mạng máy tính rất phổ biến, có mặt ở khắp mọi nơi trong cuộc sống của chúng ta Việc thiết kế mạng với hiệu quả cao là một vấn đề có ý nghĩa lý thuyết và ứng dụng thực tế quan trọng “Các thuật toán phân tán giải bài toán định tuyến đa đích” là một trong các cách tiếp cận để giải quyết vấn
đề đặt ra
Phương pháp nghiên cứu:
Kết hợp nghiên cứu lý thuyết, tìm hiểu về bài toán định tuyến đa đích
và phương pháp giải quyết, đánh giá…
Nội dung luận văn được chia làm 5 chương:
Chương 0: Các khái niện cần thiết
Chương 1: Bài toán định tuyến đa đích
Chương 2: Các thuật toán giải bài toán định tuyến đa đích
Chương 3: Giải thuật Dijkstra cải biên giải bài toán định tuyến đa đích Chương 4: Xây dựng chương trình và cài đặt thực nghiệm
Trang 11Chương 0: CÁC KHÁI NIỆM CẦN THIẾT
Chương này trình bày một số khái niệm cần thiết cho việc trình bày các nội dung tiếp theo của luận văn
0.1 Lý thuyết đồ thị
Một đồ thị G, được định nghĩa bởi tập các đỉnh V và tập các cạnh E
Các đỉnh thường được gọi là các nút (node) và chúng biểu diễn vị trí cho các thành phần trong mạng (ví dụ một điểm chứa lưu lượng hoặc một khu vực chứa thiết bị truyền thông, nguồn hoặc các điếm đến) Các cạnh được gọi là các liên kết và chúng biểu diễn phương tiện truyền thông Đồ thị có thể được biểu diễn như sau:
G = (V, E)
Đồ thị vô hướng: là đồ thị mà tất cả các cạnh trong đồ thị đều là cạnh vô
hướng Có nghĩa là cạnh (i, j) tương đương với cạnh (j, i), và không có cạnh (i, i) E, i V
Trang 12Trong đó N là số lượng nút Tương tự E được biểu diễn:
E = {ei | i = 1, 2, …, M}
Một liên kết, ej tương ứng với một kết nối giữa một cặp nút Có thể biểu diễn liên kết ej giữa nút i và k bởi:
ej = (vi,vk) hoặc ej = (i,k)
Một liên kết gọi là đường đi tới một nút nếu đó là một trong hai điểm
cuối của liên kết Nút i và k gọi là kề nhau nếu tồn tại một liên kết (i,k) giữa
chúng Những nút như vậy được xem là các nút “hàng xóm” Bậc của nút là
số lượng liên kết đi tới nút hay là số lượng nút hàng xóm Hai khái niệm trên
là tương đương nhau trong các graph thông thường Tuy nhiên với các graph
có nhiều hơn một liên kết giữa cùng một cặp nút, thì hai khái niệm trên là không tương đương Trong trường hợp đó, bậc của một nút được định nghĩa
là số lượng liên kết đi tới nút đó
Một liên kết có thể có hai hướng Khi đó thứ tự của các nút là không có
ý nghĩa Ngược lại thứ tự các nút có ý nghĩa Trong trường hợp thứ tự các nút
có ý nghĩa, một liên kết có thể được xem như là một cung và được định nghĩa:
aj = [vj,vk] hoặc aj = [i,k]
k được gọi là cận kề hướng ra đối với i nếu một cung [i,k] tồn tại và bậc
hướng ra của i là số lượng các cung như vậy
Một graph gọi là một mạng nếu các liên kết và các nút có mặt trong liên kết có các thuộc tính (chẳng hạn như độ dài, dung lượng, loại,…) Các mạng được sử dụng để mô hình các vấn đề cần quan tâm trong truyền thông, các thuộc tính riêng biệt của các nút và liên kết thì liên quan đến các vấn đề cụ thể trong truyền thông
Một đồ thị có các liên kết gọi là đồ thị vô hướng, tuy nhiên một graph
có các cung gọi là đồ thị hữu hướng Một graph hữu hướng có thể có cả các liên kết vô hướng Thông thường, các graph được giả sử là vô hướng, hoặc sự
Trang 13Có thể có khả năng xảy ra hiện tượng xuất hiện nhiều hơn một liên kết giữa cùng một cặp nút(điều này tương ứng với việc có nhiều kênh thông tin giữa hai chuyển mạch) Những liên kết như vậy gọi là các liên kết song song Một đồ thị có có cạnh lặp gọi là một đa đồ thị
Cũng có khả năng xuất hiện các liên kết giữa một nút nào đó và chính
nó Những liên kết đó được gọi là các khuyên Một đồ thị không có cạnh lặp hoặc các khuyên gọi là một đơn đồ thị
Với mỗi cạnh (i, j) E, chúng tôi có thể kết hợp các hàm đại diện cho đặc
điểm của các liên kết mạng Được sử dụng rộng rãi nhất của các chức năng như
vậy là thông lượng c(i, j), chi phí w(i, j) và chậm trễ d(i, j), từ i, j V
Hàm thông lượng (Capacity function) : Đối với mỗi cạnh (i, j) E, thông lượng c(i, j) cho biết số lượng dữ liệu tối đa có thể được gửi giữa các nút i và j Trong các ứng dụng multicast, các thông lượng là các số nguyên , vì vậy có thể nói c(i, j) Z + , với mọi (i, j) E
Hàm chi phí: hàm w(i, j): Z x Z R được sử dụng để mô tả bấy kỳ chi
phí phát sinh cho việc sử dụng các liên kết giữa các nút i và j bao gồm chi phí thuê và chi phí bảo trì Vv…
Hàm trễ : Một số ứng dụng, chẳng hạn như phân phối đa phương tiện,
rất nhạy cảm với sự truyền tải chậm trễ và yêu cầu tổng thời gian giữa giao hàng và đến của một gói dữ liệu bị hạn chế một số giá trị tối đa[69] Hàm trễ
d(i, j) được sử dụng để mô tả hạn chế này Độ trễ d(i, j) đại diện cho thời gian cần thiết để truyền tải thông tin giữa các nút i và j
Như một ví dụ điển hình, các ứng dụng video có thể yêu cầu cụ thể về thời gian truyền Mỗi gói tin i có thể được đánh dấu độ trễ tối đa di có thể cho phép cho quá trình truyền dẫn Trong trường hợp này, các bộ định tuyến phải xem xét duy nhất một đường với tổng độ trễ là di
Trang 140.2 Một số thuật toán cơ bản trên đồ thị
0.2.1 Thuật toán Prim
Ý tưởng:
Xây dựng một cây khung bắt đầu từ một đỉnh xuất phát
Thời điểm ban đầu, đỉnh xuất phát là đỉnh duy nhất trong một cụm C
Từng bước thêm vào cụm C một đỉnh w đang ở ngoài C mà w có nối với 1 đỉnh u trong C thông qua một cung (u,w) có giá trị nhỏ nhất tại thời
điểm đó
Algorithm PRIM_MST(G, v)
1 {Khởi tạo cây khung ban đầu, chứa đỉnh v} T {v}
2 Q = V-{v}; {Q là tập các đỉnh chưa ở trong cây khung}
3 {Thiết lập một mảng d chứa các giá trị trọng số của các cung để tiến hành chọn cung có giá trị nhỏ nhất nối một đỉnh trong cây với một đỉnh ngoài cây tại từng bước}
d[v] = 0;
for all w Q do begin
if (tồn tại cung (v,w)) then d[w] = weight(v,w); else d[w] =
;
end
4 {Lần lượt lựa chọn đỉnh đưa vào trong cây khung}
While (Q rỗng) do begin
4.1 Xác định đỉnh u trong Q mà d[u] = min{d[w] | w Q};
4.2 Xác định cung (r,u) với r trong T và weight(r,u) = d[u];
4.3 T {(r,u)}; Q = Q-{u};
{cập nhật lại các giá trị được lưu trong mảng d sau khi đã thêm u vào trong cây khung, mảng d mới sẽ tiếp tục sử dụng trong bước lựa chọn tiếp theo}
4.4 For all w Q do d[w] = min(d[w], weight(u,w));
End;
Trang 150.2.2 Thuật toán Dijkstra cơ bản
Lịch sử của giải thuật Dijkstra:
Thuật toán Dijkstra mang tên của nhà khoa học máy tính người Hà Lan Edsger Dijkstra vào năm 1956 và ấn bản năm 1959, là một thuật toán giải quyết bài toán đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh trong đồ thị (không có cạnh mang trọng số âm) Giải thuật là một trong những bài toán tối
ưu trên đồ thị và được ứng dụng rộng rãi trong thực tế cũng như các ứng dụng thú vị trong nghành toán học rời rạc(ví dụ như ứng dụng trong mạng định tuyến hay trong công nghệ Hệ thống định vị toàn cầu (GPS))
Đặc trưng của thuật toán dijkstra:
Giải quyết bài toán tìm đường đi ngắn nhất giữa 1 cặp đỉnh và bài toán tìm đường đi ngắn nhất từ một nguồn tới mọi đích (Chỉ áp dụng trên đồ thị có trọng số dương)
Ý tưởng:
* Với mỗi đỉnh v sẽ duy trì các thông số sau:
D[v]: khoảng cách ngắn nhất biết được tại thời điểm hiện tại từ đỉnh nguốn s tới đỉnh v
P[v]: Đỉnh trước của đỉnh v trên đường đi từ đỉnh nguồn s tới v
* Duy trì một cụm C chứa các đỉnh, cụm này lúc đầu chứa đỉnh xuất phát
đã cho Dần dần thêm các đỉnh vào trong cụm
*Tại mỗi bước của giải thuật
- Xác định đỉnh u chưa ở trong C có giá trị d[u] nhỏ nhất đưa vào trong C Cập nhật lại giá trị d của các đỉnh lân cận của u
Giải thuật Dijkstra:
Dữ liệu đầu vào:
- Đồ thị G(V,E) trong đó V là tập đỉnh, E là tập cạnh có trọng số không âm
- Đỉnh nguồn s: s V
Trang 16Dữ liệu ra: Đường đi ngắn nhất từ đỉnh nguồn S đến tất cả các đỉnh còn lại
Phương pháp:
Sử dụng hai mảng trung gian D và P gồm n phần tử Với n là số đỉnh trong đồ thị D[i] chứa khoảng cách từ đỉnh s đến đỉnh i, P[i] chứa đỉnh ngay trước i trong đường đi ngắn nhất từ s đến i tại một thời điểm Kết thúc giải thuật, thông tin về đường đi ngắn nhất từ đỉnh s đến các đỉnh khác nằm trong
P, độ dài các đường đi nằm trong D
1 {Khởi tạo D và P} for each đỉnh v trong G do begin D[v]= ; P[v] =
null; end
2 D[s]=0; Q=V;
3 While (Q rỗng) do begin
1 Xác định đỉnh u trong Q mà D[u] có giá trị nhỏ nhất; Q = Q-{u};
2 Với lần lượt các đỉnh w là lân cận của u mà w còn nằm trong Q
1 Temp = D[u] + weight(u,w);
2 If (temp<D[w] then begin D[w]=temp; P[w]=u; end;
dụng trong thời gian thực, với độ phức tạp O (n 3), trong đó n là số nút
Tuy nhiên với tiến bộ của internet và các dịch vụ mạng khác, sự xuất hiện các giao thức là cần thiết cho các mục tiêu khá lớn Xu hướng này trở nên quan trọng hơn do sự phát triển của các công nghệ mới như hội nghị ảo,
Trang 17video theo yêu cầu, và group-ware Đây là một loạt các đề nghị cho sự phát triển giao thức định tuyến đa đích (multicast routing multicast) (Hình 0.3.1.1)
Để xử lý các yêu cầu của định tuyến đa đích (multicast routing) Trong thập kỷ qua có nhiều công nghệ multicast đã được đề xuất và trình bày Một vài ví dụ về mảng các giao thức multicast và công nghệ bao gồm: PIM-Protocol Independent Multicast, DVMRP-Distance-Vector Multicast Routing Protocol, MOSPF-Multicast OSPF, và CBT-Core Based Trees
Hình 0.3.1.1: Khái niệm tổ chức của một nhóm đa đích
0.3.2 Các giao thức Multicast chính
Dưới đây là một số các giao thức quan trọng nhất và một vài thông tin chính xác về cách sử dụng kết nối multicast cho nhiều nút:
Được phân thành ba loại chính gồm:
Giao thức hoạt động theo mô hình tập trung (Dense Mode) như DVMRP và PIM-DM Hoạt động theo cơ chế quảng bá và loại bỏ trong đó các router cho rằng trên các mạng còn tồn tại ít nhất một máy nhận dữ liệu
Trang 18multicast, vì thế chúng gửi dữ liệu xuống tất cả các mạng cho đến khi nhận được thông báo dừng gửi dữ liệu Với cơ chế này các giao thức dense mode phù hợp với các mạng máy tính nhỏ, trong đó lưu lượng multicast được truyền tới hầu hết các máy trên mạng
Giao thức hoạt động theo mô hình phân tán (Sparse Mode) như
PIM-SM và CBT Hoạt động theo cách ngược lại, các router sẽ không gửi dữ liệu lên mạng trừ khi nó nhận được yêu cầu gửi dữ liệu từ các máy nhận Điều này làm giảm dữ liệu dư thừa truyền trên mạng, giúp cho các giao thức sparse mode phù hợp với các mạng lớn, với số lượng các máy tham gia nhận dữ liệu nhiều nhưng nằm rải rác trên các mạng con
Giao thức hoạt động theo mô hình trạng thái liên kết như MOSPF
0.3.2.1 Giao thức định tuyến multicast với vecto khoảng cách
DVMRP (Distance Vector Multicast Routing Protocol) là giao thức định tuyến multicast đầu tiên được sử dụng phổ biến DVMRP được phát triển dựa trên giao thức định tuyến unicast Routing Information Protocol (RIP) với một số thay đổi để phù hợp với cơ chế multicast
DVMRP được mô tả như là một giao thức dựa trên nguồn based protocol), vì nó tính toán đường đi (routes) bắt đầu từ nguồn đến một tập các điểm đích Một phiên bản phức tạp hơn của DVMRP là DVMRP phân cấp, phân chia mạng thành nhiều miền với mức thấp hơn Vấn đề này được giải quyết cho từng miền, và kết quả của giải pháp này là tạo thành một cây định tuyến toàn cầu
(source-Tìm kiếm hàng xóm: Là quá trình quan trọng các router sử dụng giao
thức DVMRP cần phải duy trì một danh sách các router hàng xóm để thực hiện chuyển tiếp multicast Điều này đặc biệt đúng khi DVMRP hoạt động trên mạng đa truy cập như mạng Ethernet, vì trên mạng có thể có nhiều router DVMRP cùng tham gia
Trang 19Hình 0.3.2.1: Tìm hàng xóm trong DVMRP Cắt nhánh: DVMRP sử dụng cây nguồn để điều khiển đường đi của
luồn dữ liệu, ban đầu dữ liệu multicast được gửi xuống tất cả các nhánh của cây Để giảm lưu lượng dư thừa cần có một cơ chế cắt bỏ các nhánh của cây
mà trên đó không có các máy nhận dữ liệu Tại các router không có máy nhận
dữ liệu kết nối trực tiếp thì router đó gọi là router lá, router này gửi một thông điệp DVMRP Prune lên cây multicast để yêu cầu dừng gửi dữ liệu và cắt bỏ nhánh khỏi cây multicast
Hình 0.3.2.2: Cắt nhánh trong DVMRP
Trang 20Ghép nhánh: Để thực hiện ghép nhánh thì router gửi một thông điệp
DVMRP Graft tới router phía trên để thông báo nó muốn được ghép nhánh trở lại cây multicast Sau khi router phía trên nhận được nó sẽ phản hồi lại bằng thông điệp Graft-ACk và chuyển lưu lượng multicast xuống router phía dưới
Hình 0.3.3.3: Ghép nhánh trong DVMRP
0.3.2.2 Giao thức PIM (Protocol Independent Multicast)
Là một giao thức phổ biến có thể kết nối bằng cách sử dụng công nghệ định tuyến cơ bản khác nhau PIM có thể được chia thành hai phiên bản chính: PIM-SM (PIM-Sparse Mode) và PIM-DM (PIM-Dense Mode)
Giao thức PIM Dense Mode
Là giao thức multicast hoạt động độc lập với giao thức định tuyến IP unicast PIM (Protocol Independent Multicast) không quan trọng giao thức nào được sử dụng để tạo ra bảng định tuyến unicast (bao gồm cả bảng định tuyến tĩnh) trên router, mà nó sử dụng thông tin từ bảng định tuyến unicast để thực hiện quá trình kiểm tra Reverse Path Forwarding (RPF) từ đó đưa ra quyết định gửi dữ liệu Bởi vì PIM không phải duy trì dữ liệu của bảng định tuyến, nó không cần thực hiện các giao thức gửi và nhận, thông báo cập nhật
Trang 21đường đi trong bảng định tuyến giữa các router như các giao thức khác, điều
đó làm giảm đáng kể lưu lượng truyền trên mạng PIM có thể cấu hình để hoạt động theo hai cơ chế là dense mode và sparse mode, trong phần này trình bày về PIM (PIM-DM) bao gồm các quá trình cơ bản như: tìm kiếm hàng xóm, cắt bỏ và ghép nhánh trên cây phân phối multicast, cơ chế xác nhận
RP Router ở chặng cuối muốn nhận dữ liệu từ một nhóm multicast nó sẽ tham gia vào cây chia sẻ Khi router không muốn nhận dữ liệu từ nhóm multicast nữa nó sẽ cắt bỏ khỏi cây chia sẻ
Thông điệp Join/Prune
Các phần trước đây đã nhắc đến thông điệp PIM Join và PIM Prune như hai thông điệp khác nhau với mục đích làm sáng tỏ quá trình tham gia hay cắt
bỏ nhánh Tuy nhiên thực tế PIM chỉ sử dụng một thông điệp đơn Join/Prune cho cả hai chức năng Mỗi thông điệp Join/Prune chứa cả hai danh sách Join
Trang 22và Prune và một trong hai danh sách đó có thể rỗng Các thực thể Join và Prune trong thông điệp Join/Prune có cùng một định dạng chung, bao gồm các thông tin sau:
Đăng ký nguồn dữ liệu
Trong cây chia sẻ PIM-SM chúng ta đã biết cách router gửi thông điệp (*,G) tới cây chia sẻ một chiều nên dữ liệu multicast chỉ có thể đi theo chiều
từ gốc cây xuống các nhánh Vì thế nguồn dữ liệu cần phải có một cách khác
để gửi dữ liệu của nó tới router RP Tuy nhiên trước tiên router RP cần phải được thông báo về nguồn đang tồn tại Để làm điều này PIM-SM sử dụng thông điệp PIM Register và Register-Stop để thực hiện quá trình đăng ký nguồn dữ liệu Quá trình này sẽ thông báo với router RP một nguồn đang hoạt động và phân phối các gói tin multicast đầu tiên tới RP để tiếp tục được gửi xuống các nhánh
Chuyển từ cây chia sẻ sang cây đường đi ngắn nhất
PIM – SM hỗ trợ khả năng cho phép router DR ở chặng cuối (là router kết nối trực tiếp với các máy nhận dữ liệu) có thể chuyển từ cây chia sẻ sang cây SPT cho một nguồn multicast Điều này được thực hiện tự động thông qua việc đặt ra một ngưỡng SPT- Threshold của băng thông mạng, khi giá trị băng thông đạt ngưỡng router DR sẽ tham gia vào cây SPT
0.3.2.3 Multicast Open Shortest Path First (MOSPF)
Là một mở rộng của giao thức định tuyến unicast trạng thái liên kết Open Shortest Path First (OSPF) MOSPF cung cấp sự mở rộng về định dạng
dữ liệu và các đặc tả hoạt động từ OSPF Sự mở rộng này cho phép dữ liệu multicast được truyền trên mạng OSPF bằng cách sử dụng cây đường đi ngắn nhất như là một phần của các router MOSPF
Kiến trúc OSPF mở rộng, phát triển giao thức MOSPF bằng cách thêm khái niệm các miền nhỏ (sub-domains) Đầu tiên phân chia mạng thành nhiều
Trang 23miền con (sub-domains), sau đó thuật toán tính toán một đường trục kết nối các miền, điều này để làm giảm độ phức tạp các vấn đề Giao thức MOSPF được Moy mô tả và giao thức này được phát triển, hoạt động tích cực
Định tuyến multicast trong vùng
MOSPF là mở rộng của giao thức định tuyến unicast OSPF và do vậy đòi hỏi OSPF như giao thức định tuyến cơ sở Khái niệm cơ bản của định tuyến MOSPF trong nhiều miền dựa vào giả thiết trạng thái trong mô tả OSPF
đó là “nếu các router trong một miền biết các phân đoạn mạng có các thành viên của nhóm multicast, các router đó có thể sử dụng thuật toán Dijkstra để xây dựng cây đường đi ngắn nhất cho bất kỳ các cặp nhóm, mạng nguồn trong vùng”
Một mở rộng quan trọng của MOSPF trong định dạng dữ liệu để hỗ trợ multicast là sử dụng một thông điệp quảng bá trạng thái liên kết của nhóm (group Link-State Advertisement – LSA nhóm) Thông điệp LSA nhóm nàyđược phát tán định kỳ trong cả vùng giống như LSA của giao thức OSPF Mỗi LSA nhóm có các thông tin cơ bản sau: địa chỉ nhóm multicast, định danh router quảng bá, danh sách các giao diện mạng của router (xác định bởi địa chỉ IP) có các thành viên của nhóm Sau khi cơ sở dữ liệu của các router trong vùng được đồng bộ, sự kết hợp của LSA nhóm với router và mạng LSA cung cấp cho mỗi router MOSPF thông tin cần thiết để xây dựng cây đường đi ngắn nhất cho các cặp nhóm và mạng trong vùng Để xây dựng cây này mỗi router MOSPF sử dụng thuật toán Dijkstra để xây dựng một cây đường đi ngắn nhất multicast đơn có gốc tại mạng nguồn
Định tuyến multicast trên nhiều vùng
Phần này minh họa cơ chế mà MOSPF thực hiện để chuyển tiếp gói tin giữa các vùng OSPF Khi một nguồn multicast ở trong một vùng gửi tới người nhận ở trong vùng khác Cách thức MOSPF sử dụng để quản lý định tuyến multicast trên nhiều vùng có nhiều điểm giống với cách OSPF thực
Trang 24hiện Trong OSPF các router kết một vùng thuộc lớp thứ hai tới vùng đường trục được gọi là ABR (area border router – router trên biên của vùng) và được chịu trách nhiệm để chuyển tiếp thông tin định tuyến (trong dạng của một thông điệp tóm tắt LSA – summary LSA) và dữ liệu unicast giữa hai vùng Các router ABR không truyền tuyến đường hay các thông điệp LSA giữa các vùng, mà chỉ truyền các thông điệp LSA tóm tắt giữa các vùng Để hỗ trợ multicast trên nhiều vùng, RFC 1584 định nghĩa chuyển tiếp multicact liên vùng là một tập con của các OSPF ABR trong mạng và được cấu hình để thực hiện các tác vụ multicast liên quan như: tóm tắt thông tin thành viên nhóm trong vùng 0 và chuyển tiếp gói tin multicast giữa các vùng Các router thực hiện chức năng này được gọi là router multicast trên biên của vùng (multicast area border routers – MABR) Để dữ liệu multicast theo cấu trúc phân cấp của OSPF (từ vùng đường trục tới các vùng lớp thứ hai) router trên vùng đường trục cần biết các router multicast trên biên của vùng (MABR) nào đang đượckết nối có thành viên hoạt động của nhóm multicast Các router MABR tóm tắt thông tin của thành viên nhóm multicast trong vùng và phát tán tới vùng đường trục thông qua LSA nhóm Tuy nhiên, không như OSPF tóm tắt được phát tán đối xứng xuyên qua biên của vùng, các LSA nhóm tóm tắt phát tán không đối xứng và chỉ theo từng vùng không là đường trục sang vùng đường trục
Định tuyến multicast trên các AS
Cơ chế mà MOSPF thực hiện khả năng định tuyến trên các vùng tự trị (autonomous system – AS) Trong định tuyến unicast OSPF sử dụng các router tại biên của các vùng tự trị (autonomous system border routers – ASBR) để chuyển tiếp dữ liệu tới các miền OSPF Tương tự MOSPF cũng sử dụng các router multicast trên vùng biên (Multicast AS Border Router – MASBR) để chuyển tiếp dữ liệu multicast tới các router trên vùng đường Khi lưu lượng vào từ một miền khác thông qua MASBR lưu lượng này được
Trang 25liệu từ các router MABR tiếp tục được phát tán tới các thành viên nhóm multicast dựa vào cây đường đi ngắn nhất
0.3.2.4 MBonne (Multicast Backbone)
Đường trục Multicast MBone là một hệ thống multicast để truyền thông điệp đến nhiều nơi nhận trên Internet Unicast là phương pháp truyền thống để truyền các gói dữ liệu trên internet Với unicast, một gói IP chỉ được truyền đến một đích đến trong khi multicast gửi bản sao của thông điệp đến từng thành viên nhóm Multicast hiệu quả hơn unicast trong trường hợp gửi một thông điệp đến nhiều người nhận Nguồn gốc của MBone là một thí nghiệm của IETF (internet Engineering Tast Force) về truyền thông tiếng nói (audiocast) – âm thanh được truyền đến nhiều điểm (multicast), trực tiếp từ cuộc họp của IETF đến một nhóm các thành viên trên khắp thế giới MBone
đã phát triển từ 40 mạng con ở 4 nước khác nhau vào năm 1992 đến hơn 3400 mạng con ở hơn 25 nước vào năm 1997 Các kỹ thuật và dịch vụ mới dựa trên multicast đang xuất hiện hàng ngày trên các phương tiện thông tin Hiện nay, MBone có mặt trên Internet nhờ kỹ thuật mạng ảo (Virtual Network) bởi vì nhiều router trên internet không hỗ trợ truyền thông IP nhiều điểm (IP multicast)
Trang 26Chương 1: BÀI TOÁN ĐỊNH TUYẾN ĐA ĐÍCH
1.1 Đặt vấn đề
Ngày nay, công nghệ thông tin và mạng internet phát triển mạnh mẽ nhằm đáp ứng nhu cầu ngày càng cao của cuộc sống, đem lại lợi ích thiết thực Mạng internet với nhiều ưu điểm như tính linh hoạt, khả năng mở rộng
dễ dàng, hiệu quả sử dụng cao đang chiếm ưu thế trên thị trường viễn thông trên thế giới và Việt Nam Đứng trước tình hình đó, việc nghiên cứu, tìm hiểu mạng IP và các ứng dụng của nó là rất cần thiết Nhưng điều này cũng đòi hỏi tốn nhiều thời gian và công sức vì có rất nhiều vấn đề cần nghiên cứu Trong luận văn này chúng ta sẽ tìm hiểu về vấn đề định tuyến đa đích và cách giải quyết bài toán này Định tuyến là một chức năng không thể thiếu trong mạng Mục đích của định tuyến là chuyển thông tin từ một điểm trong mạng (nguồn) tới một hoặc nhiều điểm khác (đích) Mỗi khi thực hiện thiết kế, xây dựng một mạng mới, hay cải tiến một mạng đã có, người thiết kế mạng phải đặc biệt quan tâm đến vấn đề định tuyến, bởi hoạt động của mạng có hiệu quả hay không, chất lượng dịch vụ cung cấp trên mạng có thỏa mãn được yêu cầu của người sử dụng mạng hay không phụ thuộc rất nhiều vào việc định tuyến trong mạng đó Trải qua một quá trình phát triển mạnh, rất nhiều phương pháp, kỹ thuật định tuyến đã được đưa ra Nghiên cứu về các kỹ thuật định tuyến là một lĩnh vực nghiên cứu rất rộng bởi mỗi mạng cần có một chiến lược định tuyến cho riêng mình, phù hợp với mục đích truyền dẫn, phù hợp với công nghệ mạng, phù hợp với yêu cầu của những người sử dụng mạng để trao đổi thông tin Không thể áp đặt hoàn toàn một chiến lược định tuyến của một mạng lên một mạng khác Do đó, đối với người thiết kế mạng, khi xác định
kỹ thuật định tuyến để sử dụng trong một mạng mới, cần phải nắm được những điều cơ bản về định tuyến Bên cạnh đó, cần phải biết kỹ thuật định tuyến được sử dụng trong một số mạng có đặc điểm tương tự Từ đó, có thể
Trang 27định ra được chiến lược định tuyến thích hợp cho mạng của mình Đối với những người nghiên cứu mạng, kỹ thuật định tuyến trong mạng là một điều rất đáng quan tâm
Quá trình định tuyến xảy ra khi hơn hai nút cần trao đổi dữ liệu, thì quá trình định tuyến này đòi hỏi tạo ra một liên kết hợp lý giữa các yếu tố liên quan, và nó bao gồm một tập hợp các nút cần thiết Kết quả cây định tuyến cần phải đáp ứng một ứng dụng cụ thể thì được coi là một giải pháp hợp lệ cho vấn đề này
Một tuyến đường mạng mà kết nối nhiều hơn hai nút cùng một lúc được gọi là định tuyến đa đích (multicast route) Mạng có sử dụng định tuyến đa đích (multicast route) này thì được gọi là mạng đa đích (multicast networks)
Định tuyến đa đích (Multicast routing) chủ yếu ứng dụng cho các kết nối mạng dữ liệu cần được chia sẻ bởi một nhóm người dùng Nhóm đó có thể nằm trong khoảng tương đối nhỏ so với một số lượng lớn của khách
Giao thức truyền dẫn Unicast là truyền dẫn điểm – điểm Nhiều host muốn nhận thông tin từ một bên gửi thì bên gửi đó phải truyền nhiều gói tin đến các bên nhận Điều này sẽ dẫn đến gia tăng băng thông khi có quá nhiều bên nhận và không hiệu quả về nguồn và bộ đệm
Trong khi hệ thống không dây (wireless) có thể tránh được một phần của sự lãng phí này (khi sử dụng phát sóng để kết nối các nút trong một phạm
vi kết nối) Trong điều kiện như vậy các giải pháp tối ưu hóa việc sử dụng tài nguyên mạng phải được tìm hiểu và đưa ra Đó là phương pháp truyền dẫn đa điểm, trong đó chỉ các host có nhu cầu nhận dữ liệu mới tham gia vào nhóm Điều này hạn chế tối đa sự lãng phí băng thông trên mạng, hơn nữa còn nhờ
cơ chế gửi gói dữ liệu multicast mà băng thông được tiết kiệm triệt để
Trong chuyên đề này tập trung nghiên cứu tối ưu hóa sử dụng tài nguyên (multicast) trong mạng đa đích (multicast networks) nói chung Chúng tối sẽ bắt đầu mô tả các nguồn tài nguyên có thể được sử dụng trong
Trang 28mạng đa đích (multicast network), và sẽ giới thiệu một số giải pháp tối ưu để giải quyết bài toán Đặc biệt chúng tôi quan tâm đến một vấn đề khá khó khăn
đó là giải quyết bài toán (NP-khó) Một số vấn đề chỉ có thể giải quyết được với sự trợ giúp của phương pháp xấp xỉ và heuristic có khả năng tìm kiếm giải pháp gần tối ưu
1.2 Giới thiệu bài toán định tuyến đa đích
Xét một ví dụ đơn giản của ứng dụng định tuyến đa đích (multicast routing) Một công ty cần phải cập nhật các phần mềm được sử dụng trên nhiều văn phòng đặt tại các khu vực khác nhau của Hoa Kỳ Ví dụ, trụ sở công ty có thể được đặt tại Chicago, trong khi các văn phòng chi nhánh ở một
số thành phố phía đông và bờ biển phía tây của Hoa Kỳ Công ty có một số lượng lớn dữ liệu cần phải được cập nhật định kỳ, và các liên kết trong mạng được định giá để sử dụng băng thông Ban đầu, mục tiêu của công ty là để giảm số lượng băng thông được sử dụng trong hoạt động này Hình 1.2.1 minh họa cấu hình của mạng như vậy
Hình 1.2.1: Ví dụ đơn giản của vấn đề định tuyến đa đích (multicast routing)
Khi đối mặt với vấn đề kỹ thuật mạng như thế này, phương pháp tiếp cận đơn giản có thể chỉ cần mở một kết nối khác nhau cho mỗi địa điểm, cho đến khi đảm bảo rằng tất cả các địa điểm của máy khách được phục vụ
Trang 29Phương pháp này đơn giản vì không cần tính toán bổ sung Kết quả thuật toán chạy trong thời gian thực và việc tìm kiếm routes sẽ không phải là một gánh nặng cho máy tính
Tuy nhiên, những bất lợi của phương pháp này đó là băng thông hầu hết chắc chắn bị lãng phi, do tính chất của đường truyền lặp đi lặp lại khi thực hiện trong cùng một tập các liên kết (các đường link) Bất cứ một liên kết được sử dụng kết nối nhiều hơn một khách, nó sẽ truyền theo dữ liệu nhiều hơn một lần Băng thông có thể giảm nếu thay vì gửi dữ liệu qua cùng liên kết
đó chúng ta chỉ cần làm một bản sao của nó khi cần thiết
Quan sát này là cơ sở cho định tuyến đa đích (multicast routing) Dữ liệu gửi đến các nút chỉ một lần, và nhiều bản sao được thực hiện nếu cần thiết, cho đến khi tất cả các nút đích được thỏa mãn, mỗi nút đều nhận được bản sao của dữ liệu gốc Các điểm tái tạo lại như vậy thường được gọi là truyền lại đa điểm, hoặc chỉ đơn giản là các nút nhớ cache
Quá trình định tuyến đa đích (multicast routing): gửi thông tin chỉ cần một lần duy nhất tới nhiều người có thể tiết kiệm rất nhiều băng thông Các thông điệp chỉ được nhân bản khi đi qua các router, và chỉ xảy ra khi router
đó là router chuyển tiếp thay router có chứa nhóm cần gửi Các router có khả năng multicast chỉ chuyển tiếp các gói tin multicast khi mà có các máy thuộc nhóm multicast nằm trong mạng của nó Các máy sử dụng giao thức IGMP để thông báo cho router biết các nhóm multicast nào mà nó tham gia Nếu các thành viên của nhóm trong cùng một phân đoạn mạng đều rời khỏi nhóm đóthì router sẽ không chuyển tiếp các gói tin đến phân đoạn mạng này nữa Router chỉ nhân bản gói tin IP multicast khi có quá trình rẽ nhánh trong đường đi, còn lại các trường hợp khác router chỉ gửi một gói tin duy nhất cho mỗi mạng Các giao thức định tuyến cho multicast gồm có: DVMRP, MOSPF, và PIM
Trang 30Các định nghĩa liên quan:
Định tuyến đa đích
Vấn đề đa đích là vấn đề định tuyến từ một nút nguồn đơn đến một tập gồm p nút đích, hay còn được gọi là định tuyến từ một điểm đến đa điểm (trong đó chỉ các host có nhu cầu nhận dữ liệu mới tham gia vào nhóm) Các tiến bộ trong công nghệ và các ứng dụng đa phương tiện nổi lên nhanh chóng
đã cung cấp động lực lớn cho các ứng dụng đa đích (thời gian thực) mới Nhiều ứng dụng đa đích (ví dụ: chơi geme, hội nghị truyền hình) sẽ không hoạt động đúng nếu như QoS không được đảm bảo Do đó, các thuật toán đa đích phải có khả năng đáp ứng một tập các ràng buộc về QoS
Một đặc tính cơ bản của định tuyến đa đích là sử dụng hiệu quả các nguồn tài nguyên Bởi vì mỗi nút trong số p đích sẽ nhận thông tin như nhau, việc gửi thông tin p lần trên mỗi đường dẫn ngắn nhất tới mỗi nút đơn lẻ (đơn đích) là không hiệu quả, vì rất có thể sẽ có một vài sự chồng chéo giữa tập các đường ngắn nhất Multicasting chỉ sao chép các gói tin nếu thấy cần thiết và điều này rõ ràng là hiệu quả hơn Đối với trường hợp của một metric đơn, định tuyến nguồn đa đích có thể được thực hiện bởi việc chuyển tiếp gói tin của một luồng lưu lượng hoặc cây các đường dẫn ngắn nhất Tuy nhiên, một cây đa đích có thể không phải luôn luôn đảm bảo các điều kiện ràng buộc về
QoS đã được yêu cầu, trong khi nhiều phiên QoS đơn điểm phức tạp lại có thể Tính chất này làm tăng sự phức tạp của định tuyến đa đích ràng buộc, vì chúng ta phải duy trì một tập hợp các đường dẫn hoặc các cây và chúng ta cần phải kiểm tra nếu không ràng buộc cực đại hoặc cực tiểu nào bị vi phạm (việclọc topo đơn thuần có thể là thiếu) Một sự cân bằng giữa hiệu quả sử dụng tài nguyên và QoS đã được thực hiện
Cuối cùng, lấy ý tưởng từ đa đích không kết nối (CLM), chúng ta có các cơ chế Diffserv đa đích và các phiên bản của nó Trong CML, tiêu đề gói tin mang địa chỉ IP của tất cả các thành viên đa đích Mỗi router xác định các
Trang 31chặng tiếp theo cho mỗi đích đến và xây dựng một tiêu đề mới cho mỗi chặng riêng biệt Tiêu đề mới chỉ chứa các điểm đến mà chặng tiếp theo là trên đường dẫn ngắn nhất Tương thích với Diffserv đơn điểm, chúng ta có thể mở rộng CLM, như vậy là mỗi gói tin thuộc về một lớp của dịch vụ nào đó (CoS)
và mỗi router có một bảng định tuyến cho từng (CoS)
Định tuyến đảm bảo QoS dựa trên đích đến có thể chỉ được đảm bảo trong một mạng đang hoạt động Nếu chúng ta lưu trữ lịch sử của một gói tin đang hoạt động trong phần đầu của nó, sau đó cho mỗi gói tin khi đến một bộ định tuyến, thì MAMCRA có thể được sử dụng để tính toán chiến lược chuyển tiếp hoặc sao chép tốt nhất Chiến lược CLM được sử dụng tốt nhất trong các môi trường mang tính động cao (ví dụ không dây), vì chúng ta không cần (để tính toán lại) bảng định tuyến Tuy nhiên, chung ta cần phải có
mô tả chính xác về mạng
Multicast network: là một tập hợp của các nút và các kết nối Dữ liệu
có thể được gửi bằng cách sử dụng chiến lược đa điểm (multicast) Một mạng
đa đích (multicast network) hoạt động bằng cách kết nối một nút nguồn đến một tập các điểm đến (điểm đích)
Multicast session: là tập hợp các đường truyền được hỗ trợ bởi mạng
đa đích (multicast network)
Multicast group: là một tập bao gồm bởi các nút nguồn và nút đích mà
cần được kết nối trong một phiên đa đích (multicast session) Hay nói cách khác, một nhóm multicast được xây dựng khi một máy chủ chạy một ứng dụng multicast như là cung cấp âm thanh, hình ảnh hoặc thông tin về tài chính Bất kỳ máy chủ nào có liên quan đến ứng dụng đều có thể gửi thông tin đến nhóm này thông qua địa chỉ nhóm Và khi một máy muốn nhận thông tin này nó gửi một thông điệp IGMP có chứa địa chỉ của nhóm muốn tham gia đến router Kể từ thời điểm này, nó có thể nhận được các gói tin mà router chuyển đến subnet Các nút mạng đều có thể tham gia vào hoặc rời khỏi nhóm
Trang 32vào bất cứ thời điểm nào Vì thế có khả năng là có rất nhiều thành viên trong một nhóm multicast và nằm rải rác trên Internet Router sử dụng giao thức xác định thành viên nhóm để biết về các thành viên được nối trực tiếp đến nhóm thuộc subnet mà nó quản lý
Một nhóm đa đích (multicast group) có thể được phân loại là tĩnh hoặc động tùy thuộc vào cách các thành viên của nhóm có thể được phép thay đổi Một nhóm tĩnh là một trong các thành viên không thể thay đổi toàn bộ quá trình sống của nhóm Các vấn đề về thông tin định tuyến trong nhóm tĩnh (static groups) thường được mô hình hóa như một loại vấn đề cây Steiner
Một tổ chức linh hoạt hơn cho các nhóm multicast (multicast groups) xảy ra khi các thành viên được phép vào hoặc rời khỏi nhóm khi cần thiết Nhóm multicast như vậy được gọi là động (dynamic) Nhóm động (dynamic groups) cần chăm sóc hơn, như kiểm soát chèn và xóa phải được xác định bởi các giao thức cơ bản Một trong những thách thức chính đối với các nhóm dynamic là để duy trì chất lượng của cây định tuyến mà không dùng hết quá nhiều thời gian trên mỗi nút bổ sung hoặc xóa
Nhóm multicast (Multicast groups) cũng có thể phân loại theo số lượng tương đối của người sử dụng như mô tả của Deering và Cheriton Trong nhóm thưa, số lượng người tham gia là nhỏ so với số lượng các nút trong mạng Mặt khác, khi hầu hết các nút trong mạng đang tham gia vào truyền thông đa chiều, các nhóm tham gia được gọi là nhóm phổ biến
Cây đa đích (multicast tree) là một tập các cung mà không cần vòng
kết nối các nút trong một nhóm multicast (multicast group) Cây đa đích (multicast tree) được ưu tiên tạo ra tuyến trong mạng multicast (multicast networks) vì sử dụng tránh dư thừa trong truyền dữ liệu Hầu hết các thuật toán trong cuấn sách này sẽ cho rằng một cây multicast (multicast tree) là giải pháp cần thiết cho vấn đề định tuyến multicast
Trang 331.3 Các bài toán tối ƣu hóa
Đối với một mạng lưới, một nút nguồn và một tập các điểm đến, vấn đề định tuyến trên mạng đa đích (multicast network) có thể được đánh giá bằng một số tiêu chí hoặc các số liệu
1.3.1 Bài toán cực tiểu hóa độ trễ (Delay Minimization)
Mục tiêu là để giảm thiểu độ trễ của các tuyến (routes) được sử dụng
Ví dụ, trong ứng dụng họp hội nghị truyền hình, rất quan trọng trong việc tối thiểu hóa độ trễ cho người dùng Điều này được gọi là hạn chế độ trễ cho định tuyến đa đích (multicast) Nếu giảm thiểu độ trễ là mục tiêu duy nhất trong vấn đề này, nó có thể giải quyết với một thuật toán thời gian thực Điều này là
có thể, bởi vì để tính toán độ trễ, những điểm đến có thể được xem xét độc lập Nếu quãng đường với độ trễ tối thiểu được tính cho mỗi điểm đến, sau đó tối đa các giá trị này có thể xem là giải pháp cho việc định tuyến độ trễ tối thiểu Việc áp dụng lặp đi lặp lại của một thuật toán đường đi ngắn nhất, ví dụ như thuật toán Dijkstra có thể được sử dụng để đạt mục tiêu này
Việc tối ưu hóa độ trễ thường được kết hợp với các biện pháp chất lượng dịch vụ (Q0S) Trong một số ứng dụng, điều quan trọng là duy trì chất lượng dịch vụ mạng cao nhất, và các tiêu chí của (Q0S) chủ yếu là liên quan đến thời gian truyền dữ liệu Ví dụ dõ nhất cho ứng dụng này là hội nghị truyền hình
1.3.2 Chi phí cực tiểu (cực tiểu hóa chi phí) (Cost Minimization)
Một mục tiêu chung chỉ đơn giản là để giảm thiểu các chi phí liên quan với các kết nối được sử dụng để định tuyến gói tin Đó là, giảm thiểu tổng chi phí của cây định tuyến Vấn đề cuối chính là tối thiểu hóa cho định tuyến đa đích Vấn đề này cũng được sử dụng thêm số liệu nhưng nó khó khăn hơn
Trang 34nhiều so với giải quyết vấn đề độ trễ tối thiểu Trong trường hợp này, mục tiêu tối ưu hóa có thể được chứng minh là tương đương với cây tối thiểu Steiner, một vấn đề kinh điển của bài toán NP-khó
1.3.3 Tình trạng tắc nghẽn cực tiểu (cực tiểu hóa tình trạng tắc nghẽn) (Congestion Minimization)
Một khía cạnh khác trong định tuyến đa đích đó là tối ưu hóa để giảm thiểu tối đa tắc nghẽn trong mạng Tắc nghẽn trong một liên kết được xem như là sự khác biệt giữa thông lượng và sử dụng Tắc nghẽn càng nhiều thì càng khó để giải quyết những sự cố gây trong đường liên kết mạng Ngoài ra, tình trạng tắc nghẽn cao làm cho các yếu tố mới khó tồn tại hơn trong nhóm định tuyến, và đó là một tình huống không mong muốn trong định tuyến động Như vậy, mạng lưới được thiết kế tốt thì điều cần quan tâm làm sao cho tình trạng tắc nghẽn ở mức tối thiểu
1.3.4 Vị trí bộ nhớ cache (Cache Placement)
Một thước đo cho định tuyến đa đích được khám phá trong cuấn sách này nữa là xác định vị trí tối ưu của các nút nhớ đệm Trong vấn đề này, mục tiêu trở thành sử dụng các nút trung gian để đáp ứng yêu cầu về dung lượng Đồng thời, nó cũng cần thiết để cung cấp cho tất cả các nút khách với dữ liệu
từ nguồn Điều này tồn tại trong bài toán NP-khó
Các mục tiêu tối ưu hóa ở trên có thể được tối ưu một cách riêng biệt như là một mục tiêu duy nhất Cũng có thể được kết hợp như một vấn đề nhiều mục tiêu Hơn nữa, một số ứng dụng xác định nhiều vấn đề có chung 1 mục tiêu duy nhất và các mục tiêu khác có thể xuất hiện như những hạn chế bên lề Ví dụ, một phiên bản của vấn đề định tuyến đa đích có thể yêu cầu xác định chi phí tối thiểu của cây định tuyến, nơi độ trễ được giới hạn bởi giá trị
cố định Định nghĩa như vậy rất phổ biến trong thực tế, tùy thuộc vào mục
tiêu của ứng dụng
Trang 35Các ứng dụng hiện nay trên mạng internet đều dựa vào giao thức truyền theo điểm, giống như là các ứng dụng trong mạng LAN truyên thống IP multicast giúp cho mạng tiết kiệm băng thông IP multicast là một sự thay thế tốt cho quá trình truyền unicast khi mà các công ty cần chuyển thông tin đến nhiều khách hàng trong cùng một thời điểm Sử dụng IP multicast có thể giảm tải cho mạng
Các ứng dụng của định tuyến đa đích rất rộng, từ doanh nghiệp đến chính phủ và giải trí Ứng dụng đầu tiên của định tuyến đa đích là truyền âm thanh qua mạng IP Tuy nhiên trong thực tế, Internet MBONE thực sự được
sử dụng đầu tiên vào năm 1992, đã được phát sóng âm từ kỹ thuật Internet trong quân sự, các cuộc họp qua Internet
Ví dụ điển hình của ứng dụng đa đích là cung cấp dữ liệu tài chính Nơi
có nguồn dữ liệu nhỏ, nhưng được đăng ký bởi hàng triệu người sử dụng Dữ liệu kinh doanh từ các trung tâm tài chính như Wall Street được truy cập bởi một số lượng lớn người dùng quan tâm, từ các nhà đầu tư để quản lý, phương tiện truyền thông và các trang web tài chính
Hệ thống phân phối đa phương tiện có thể được hưởng lợi trực tiếp từ việc cải thiện công nghệ định tuyến đa đích Ví dụ như: một số lượng rất lớn các video, âm nhạc và giải trí liên quan đến nội dung cần phải được cung cấp cho người dùng trên toàn thế giới Khi đó, hệ thống đa đích cũng được sử dụng hiệu quả để kết nối số lượng người tiêu dùng cho các nhà cung cấp
Trang 36Cung cấp và cập nhật phần mềm là một ứng dụng khác của định tuyến
đa đích Số lượng phần mềm được cài đặt ở các công ty là rất lớn, và nhờ vào
cơ sở hạ tầng này mà quá trình giao hàng tiện lợi hơn rất nhiều
Mạng đa đích còn được sử dụng trong nhiều ứng dụng khác, bao gồm giải pháp business-to-business (B2B), quản trị các dự án lớn, phần mềm nhóm, và thậm chí cả cộng đồng game
Một đặc điểm chung của tất cả các ứng dụng này là các dữ liệu có thể được truy cập qua internet, vì vậy, số lượng xem được tăng lên nhanh chóng Thêm vào đó, trên thực tế phát sinh ra bài toán NP-khó để giải quyết trong định tuyến đa đích
Trang 37Chương 2: CÁC THUẬT TOÁN GIẢI BÀI TOÁN ĐỊNH
TUYẾN ĐA ĐÍCH 2.1 Phân loại các thuật toán (Algorithm Classification)
Trong vài năm qua, một số kỹ thuật cơ bản đã được đề xuất cho việc xây dựng các định tuyến đa đích Diot et al[14] xác định và phân loại một số
kỹ thuật phổ biến nhất được sử dụng trong các tài liệu để tạo và tối ưu hóa cây định tuyến Kỹ thuật này được mô tả như chia thành định tuyến cơ sở nguồn, thuật toán cây Steiner cơ sở và thuật toán cây cơ sở trung tâm Trong định tuyến cơ sở nguồn, cây định tuyến bắt nguồn từ nút nguồn được tạo ra cho mỗi nhóm đa đích (ví dụ: trong giao thức DVMRP và PIM kỹ thuật này đã được sử dụng) Dalal và Metcalfe[16] trình bày triển khai một số định tuyến
cơ sở nguồn cần sử dụng thuật toán path-forwarding đảo ngược
Định tuyến cơ sở nguồn đã được sử dụng trong một số thuật toán Nó hiệu quả, nhưng có một số vấn đề về chất lượng của các giải pháp được tìm thấy bằng cách sử dụng thuật toán này Ví dụ Sriram et al.[20] quan sát thấy
kỹ thuật này làm việc rất kém cho các nhóm đa đích nhỏ, vì nó cố gắng tối ưu hóa cây định tuyến mà không xem xét sử dụng tiềm năng khác trong nhóm hiện tại
Trong số các thuật toán định tuyến cơ sở nguồn, phương pháp cây Steiner cơ sở tập trung vào việc giảm chi phí cây Đây có lẽ là cách tiếp cận được sử dụng nhiều nhất kể từ khi nó có thể tận dụng số lượng lớn các thuật toán hiện có, và heuristics cho bài toán cây Steiner Có rất nhiều ví dụ của kỹ thuật này, và một số ví dụ này có thể được tìm thấy trong tài liệu của Bharath-Kumar và Jaffe[18], Waxmam[3], và Wi và Choi[23]
Ngược lại định tuyến cơ sở nguồn, thuật toán cây cơ sở trung tâm tạo
ra cây định tuyến có quy định nút gốc Nút gốc này được tính toán để có một