Đườ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).
Chƣơ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ể
đị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
mạ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ụ.
Phươ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.
Cá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ệc lọ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
chặ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
và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.
1.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.