Giới thiệu bài toán định tuyến đa đích

Một phần của tài liệu Các thuật toán phân tán giải bài toán định tuyến đa đích (Trang 28 - 33)

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.

Một phần của tài liệu Các thuật toán phân tán giải bài toán định tuyến đa đích (Trang 28 - 33)