Cấu trúc phân tán với nhiều server

Một phần của tài liệu Dịch vụ luồng trên mạng xếp chồng (Trang 60)

Trong trường hợp này, một mạng lưới các server được thay thế cho một server duy nhất của trường hợp trên. Bởi vậy, cả mạng gồm nhiều mạng con. Mạng eDonkey là mạng chia sẻ file dùng kiến trúc này. Hoạt động của mạng được minh họa như hình 2.9

Việc trao đổi file trong mạng con diễn ra như trường hợp 1. Trao đổi file giữa các mạng con là không được phép.

2.3.3Cấu trúc phân tán.

Trong trường hợp này, không tồn tại server được sử dụng chung, tất cả các máy đều có thêt là client và server. Việc tìm hiểu cấu trúc mạng của máy khi kết nối vào mạng thực hiện bằng bản tin broadcast. Gnutella là một trong những mạng nổi tiếng nhất sử dụng kiến trúc này. Hình 2.10 mô tả cấu trúc này.

Hình 2.10: Mô hình phân tán 2.3.4Cấu trúc mạng sử dụng Super-peer.

Đây là kiến trúc lai ghép, pha trộn giữa mô hình client- server và công nghệ P2P. Những máy có băng thông cao được sắp xếp thành các Super-peer, sau đó, những máy có băng thông thấp được kết nối đến các super-peer này bằng theo mô hình client-server. Các super-peer phụ trách quản lý miền các peer kết nối với nó. Mạng thực tế sử dụng công nghệ này là KaZaA. Kiến trúc mạng được mô tả như hình 2.11

Hình 2.11: Mô hình sử dụng super-peer

Gần đây, để tránh sự sai hỏng thì người ta bố trí có nhiều super-peer hoạt động thay vì một super-peer trong một miền.

Để cụ thể hơn hoạt động của mạng P2P chia sẻ file, phần tiếp theo trình bày đôi nét về hoạt động của mạng BitTorrent là một mạng P2P chia sẻ file mạnh mẽ và rất phổ biến hiện nay, hình 2.12

Hình 2.12: Chia sẻ file trong mạng BitTorren

BitTorrent chuyển gánh nặng dò tìm tập tin mà bạn muốn tải về sang một máy chủ trung tâm, gọi là tracker. Sự khác nhau nữa là nó sử dụng nguyên tắc gọi là tit-for- tat, nghĩa là bạn phải chia sẻ những phần tập tin mà bạn đã tải về được cho những người khác trong quá trình đang tải toàn bộ tập tin. Một số thuật ngữ dùng trong hoạt động của Bittorrent.

Leeches: máy tính có yêu cầu download tập tin nhưng không chia sẻ.

Seed / seeder: máy tính có chứa một phần hoặc toàn bộ tập tin và có chia sẻ

qua phần mềm máy khách BitTorrent Client, còn gọi là “hạt giống”. • Swarm: nhóm các máy đồng thời gửi đi hoặc nhận về cùng một tập tin.

.torrent: tập tin có phần mở rộng này là tập tin con trỏ chứa thông tin về các

seed/seeder để máy tính có thể tải các phần của tập tin ở nhiều máy khác nhau.

Tracker: máy chủ quản lý tiến trình truyền tập tin BitTorrent.

• Trên máy tính của mình, bạn mở một website cung cấp các tập tin dạng .torrent và chọn tải một tập tin.

• Phần mềm máy khách BitTorrent Client trên máy của bạn giao tiếp với máy chủ Tracker để tìm các máy khác cũng đang chạy BitTorrent Client mà có chứa tập tin này (gọi là các hạt giống) và những máy khác đang có một phần của tập tin này (những máy ngang hàng mà cũng đang tải tập tin này).

• Tracker xác định các máy swarm, tức đang kết nối và có đầy đủ hay một phần của tập tin và đang gửi hoặc nhận nó.

• Tracker giúp phần mềm máy trạm trao đổi các phần của tập tin bạn muốn với các máy khác trong swarm. Máy tính của bạn sẽ nhận nhiều phần tập tin một cách đồng thời.

• Nếu bạn tiếp tục chạy phần mềm máy khách BitTorrent sau khi tải về thành công, các máy khác có thể nhận được tập tin .torrent từ máy của bạn; trong tương lai tốc độ tải về của bạn sẽ được cải thiện vì bạn được xếp bậc cao hơn trong hệ thống tit-for-tat.

CHƯƠNG 3

CÁC THUẬT TOÁN DÙNG TRONG MẠNG P2P 3.1 Định tuyến cho P2P thế hệ mới:

Nhằm đáp ứng các vấn đề mở rộng quy mô một số nhóm nghiên cứu độc lập đã tạo ra một thế hệ mới các hệ thống P2P hỗ trợ tính năng bảng hàm băm phân tán (DHT), trong số đó là Tapestry, Pastry, Chord và CAN(Content- Addressable Networks). Trong các hệ thống này (còn gọi là các hệ thống DHT), các file được ràng buộc với các khoá (key) - ví dụ được tạo ra bằng cách băm các tên file – và mỗi node trong hệ thống có trách nhiệm lưu giữ một dải các key nào đó. Có một toán tử cơ bản trong các DHT này là tìm kiếm – lookup (key), nó sẽ trả lại nhận dạng (ví dụ như địa chỉ IP) của node lưu giữ đối tượng với key đó. Toán tử này cho phép các node đưa và lấy (put, get ) các file trên cơ sở key của chúng, nhờ đó hỗ trợ giao diện dạng bảng băm.

Tính năng DHT này được chứng minh là một cơ sở hữu ích cho các hệ thống phân phối lớn; một số các dự án đang được đề xuất để xây dựng các dịch vụ ứng dụng DHT như: các hệ thống file phân tán, truyền thông đa hướng (multicast) mức ứng dụng, các dịch vụ khai báo sự kiện, và các dịch vụ trò chuyện (chat). Với rất nhiều các ứng dụng đang được phát triển trong thời gian qua, chúng ta mong đợi tính năng DHT sẽ trở thành một phần tích hợp trong P2P tương lai. Cốt lõi của các hệ thống DHT này là thuật toán định tuyến. Các node DHT tạo một mạng chồng với mỗi node có một vài node khác làm lân cận. Khi một lookup(key) được tạo ra, việc truy tìm được định tuyến thông qua mạng chồng tới node có trách nhiệm với key đó. Tính mở rộng của các thuật toán DHT này gắn liền với hiệu năng của các thuật toán định tuyến.

Hầu như các thuật toán hiện tại ứng dụng trong mạng ngang hàng thế hệ mới (mạng có cấu trúc) đều định tuyến dựa trên key. Nó nhận một key, và để hồi đáp, chúng định tuyến một bản tin tới node có trách nhiệm với key ấy. Các key là các chuỗi số có một độ dài nào đấy. Các node là các bộ nhận dạng, lấy từ

cùng không gian với các key (có nghĩa là cùng số lượng digits). Mỗi node lưu giữ một bảng định tuyến bao gồm một tập nhỏ các node trong hệ thống. Các thuật toán định tuyến đều cố gắng định tuyến tới node có key phù hợp và qua ít số hop nhất. Dưới đây là một số thuật toán định tuyến hiện tại:

Định tuyến dựa vào tiền tố (Prefix routing) - PRR: đây là thuật toán đầu

tiên cho việc tìm kiếm và định tuyến của mạng ngang hàng. Bằng cách ánh xạ nhận dạng đối tượng thành không gian địa chỉ của các peers, PRR định tuyến dựa trên key và có thể trợ giúp các thao tác: đọc, chèn và xóa đối tượng lưu trữ trong mạng chồng phủ. Nguyên lý của thuật toán này là nền tảng cho các thiết kế DHT sau này. PRR là định tuyến dựa trên hậu tố, là trường hợp đối xứng của định tuyến tiền tố. Định tuyến hậu tố và tiền tố đều dựa trên sự giống nhau để tăng vị trí của địa chỉ đích tại mỗi hop dọc theo đường cho đến khi đích đạt tới. Thiết kế PPR dựa trên tập các node tĩnh; không quan tâm tới thành viên là các node động, không có kỹ thuật cập nhật bảng định tuyến khi node ra nhập hoặc rời mạng. Phiên bản đơn giản của PRR được gọi là SPRR được đưa ra bởi Li and Paxton. Một số các thuật toán Tapestry, Pastry, P-Grid, Cycloid, and Z- Grid. Plaxton, Rajaraman đều dựa trên PRR.

Plaxon et al: Plaxon et al là một phiên bản của PRR, đây là thuật toán đầu

tiên được sử dụng trên quy mô lớn bởi các DHT, nhưng không cung cấp việc định tuyến tìm kiếm hiệu quả. Thuật toán của Plaxton ban đầu được tạo ra để định tuyến các truy vấn Web tới các cache lân cận, và nó ảnh hưởng đến thiết kế của Pastry, Tapestry và Chord. Phương pháp Plaxton có độ phức tạp tham gia/rời bỏ theo hàm loga. Plaxton đảm bảo các truy vấn không bao giờ đi xa hơn trong khoảng cách mạng so với peer mà lưu giữ key. Tuy nhiên, Plaxton cũng có một số nhược điểm: yêu cầu hiểu biết toàn bộ để xây dựng mạng chồng; peer gốc của đối tượng là điểm lỗi đơn; không có sự chèn thêm hoặc xoá bỏ peer; không có sự tránh các điểm tắc nghẽn nóng. Đối với một hệ thống n node, mỗi node có

O(log n) lân cận, độ dài đường định tuyến O(logn) bước nhảy.

Tapetry: Sử dụng một biến thể của thuật toán Plaxon et al và thêm vào tính năng động cho các pees trong mạng chồng. Sử dụng định tuyến dựa trên tiền tố, Tapestry sử dụng thuật toán SHA-1 để băm địa chỉ các node thành các

ID biểu diễn theo hệ cơ số 2b. Mỗi node lưu giữ một bảng định tuyến gồm log2b(N) hàng và 2b-1 cột. Hàng thứ nhất trong bảng định tuyến chứa các node có ID khác với ID của node đó ở chữ số thứ nhất. Hàng thứ hai trong bảng định tuyến chứa các node có ID giống với ID của node đó ở chữ số thứ nhất nhưng khác ở chữ số thứ hai. Các hàng còn lại của bảng định tuyến cũng được tổ chức tương tự. Quá trình tìm kiếm được thực hiện bằng cách so sánh lần lượt các chữ số tiền tố của ID ví dụ 4*** =>42** => 422* => 4227, quá trình này gọi là “ánh xạ lân cận”. Bảng định tuyến của một node X được chia thành nhiều mức (log2b(N)), mỗi mức i bao gồm các liên kết (2b-1) đến các node có tiền tố giống đến chữ số thứ i-1 với ID của X. Khi một node định tuyến đến node đích nó sẽ đi theo đường đến node có ID gần giống với ID đích nhất (dựa theo bảng định tuyến). Sau mỗi chặng node tiếp theo sẽ có mức cao hơn ít nhất là 1, vì vậy sau nhiều nhất là log2b(N) chặng quá trình tìm kiếm sẽ kết thúc. Trong điều kiện bình thường độ phức tạp tìm kiếm của Tapestry là O(log2b (N)).

Pastry: Trong Pastry việc định tuyến bao gồm việc chuyển truy vấn tới node lân cận có tiền tố được chia sẻ dài nhất với key (và, trong trường hợp chặt chẽ, thì tới node có bộ nhận dạng gần nhất về số đối với key). Pastry có O(log

n) lân cận và định tuyến trong vòng O(log n) bước nhảy.

Chord: Chord sử dụng một không gian ID vòng tròn kích thước N. Một node Chord với ID là u có một con trỏ tới node đầu tiên đứng sau nó trong không gian ID theo chiều kim đồng hồ, ký hiệu là Succ(u) và một con trỏ tới node đứng trước nó trong không gian ID, ký hiệu là Pred(u). Các node tạo thành một danh sách liên kết hai chiều. Bên cạnh đó, một node Chordlưu M=log2(N) con trỏ gọi là các finger. Tập các finger của node ID u được xác định như sau F(u)={Succ(u+2i-1)}, 1 ≤ i ≤ M. Với cách lựa chọn finger thế này, trong mạng Chord, các node quan sát không gian ID của vòng tròn bắt đầu từ ID của chúng. Đồng thời với cách lựa chọn finger của Chord, không gian ID sẽ được chia đôi, nửa thứ nhất cũng được chia đôi, rồi phần tư thứ nhất lại được chia đôi …Quá trình tìm kiếm là kết quả tự nhiên theo cách chia không gian

ID dựa trên việc tìm ID successor. Trong điều kiện thông thường, độ phức tạp của thuật toán là O(log2(N)).

CAN: CAN có một hiệu năng định tuyến O(dN^(1/d) ) và trạng thái định tuyến ở trong biên 2.d. CAN chọn các key của nó từ một không gian d chiều. Mỗi node được gắn với một miền lập phương của không gian key này, và các lân cận của nó là những node sở hữu các khối lậpphương kề cận. Định tuyến bao gồm chuyển tới lân cận gần key hơn. CAN có tính chất về hiệu năng khác các thuật toán khác, các node có O(d) lân cận và chiều dài đường dẫn là

O(dn^(1/d)). Khi d= log n thì CAN có O(log n) lân cận và chiều dài đường dẫn

O(log n), giống với các thuật toán khác.

3.2 Khảo sát và đánh giá các thuật toán lập lịch cho mạng P2P-TV

Phần này chúng ta tập trung khảo sát và đánh giá các thuật toán lập lịch hiện có cho mạng P2P-TV, cũng như một số cơ chế giúp các thuật toán nhận biết tài nguyên mạng, để đưa ra quyết định đúng đắn. Các thuật toán này đóng vai trò quyết định tới hiệu năng của mạng.

3.2.1 Khái niệm cơ bản.

Mỗi thuật toán này đều phải đồng thời thực hiện được 2 việc sau:

- Chọn peer nào ( trong số các peer hàng xóm của peer đó ) sẽ nhận được dữ

liệu tiếp theo?

- Đoạn dữ liệu nào ( chunk nào ) trong số các chunks mà peer đó đang có sẽ được truyền đi ?

Các thuật toán peer/chunk selection/ scheduling algorithm được phân làm 2 loại chính : push và pull

- Push : tương ứng với phía phát (sender) sẽ thực hiện các thuật toán lựa chọn,

thích hợp cho các mạng p2p mà băng thông gửi dữ liệu ( upload ) < băng thông tải dữ liệu về (download) ( ví dụ như mạng ADSL )

- Pull : tương ứng với phía nhận ( receiver) thực hiện các thuật toán lựa chọn,

thích hợp với mạng P2P mà băng thông gửi dữ liệu đi (upload ) > băng thông tải dữ liệu về (download)

Trong cả 2 trường hợp trên, thuật toán luôn thực hiện ở các phía có băng thông hạn chế hơn, nhằm tránh các trường hợp gây tắc nghẽn do sự không đồng nhất về băng thông. Nhiều nghiên cứu chỉ ra rằng không có nhiều sự khác biệt giữa 2 thuật toán push và pull. Do mạng hiện tại chủ yếu sử dụng công nghệ ADSL, có băng thông tải dữ liệu về lớn hơn hẳn băng thông gửi dữ liệu đi, nên các phân tích chủ yếu tập trung vào thuật toán push, tức là quan tâm chủ yếu đến việc sử dụng hiệu quả băng thông gửi dữ liệu (upload bandwidth) [1]. Trong những phần tiếp theo của đồ án, giới hạn chỉ xem xét thuật toán push. Và trong nhiều trường hợp coi rằng băng thông tải về đủ lớn hơn nhiều so với băng thông gửi đi, để không cần quan tâm tới sự hạn chế của băng thông tải dữ liệu(download bandwith).

3.2.1.1Mc tiêu đặt ra cho vic thiết kế mng P2P-TV.

Người sử dụng có thể tham gia hoặc rời khỏi mạng bất cứ khi nào và hoàn toàn ngẫu nhiên, không thể dự đoán trước được thời điểm họ kết nối hay ngắt kết nối. Mỗi khi có peer mới tham gia vào mạng, hay ngắt bỏ kết nối, kiến trúc mạng sẽ bị thay đổi, và mất đi tính tối ưu ban đầu. Trong tiếng Anh, sự xáo trộn này được gọi là churn. Khi mạng có số lượng người sử dụng càng lớn thì số người vào, ra mạng càng cao, và ảnh hưởng của nó tới mạng càng lớn. Do mỗi peer bất kì trên mạng đều sở hữu rất nhiều peer làm nguồn phát cho nó, cho nên rất dễ xảy ra hiện tượng một đoạn video(chunk) được gửi lặp đi lặp lại nhiều lần tới, gây lãng phí băng thông. Giữa các peer phải có cơ chế thông tin về tập dữ liệu nó đang sở hữu để giảm thiểu số lượng dữ liệu trùng lặp. Việc báo hiệu này phải làm sao giảm xuống mức thấp nhất có thể, để tiết kiệm tài nguyên kênh truyền. Những người sử dụng có thể nằm trên rất nhiều nhà cung cấp dịch vụ (ISP) riêng biệt. Mục tiêu đặt ra là với cùng một chất lượng dịch vụ thì lượng thông tin trao đổi giữa 2 ISP khác nhau càng nhỏ càng tốt.

3.2.1.2Đánh giá hot động ca P2P-TV qua các ch tiêu k thut.

Người ta thường đo đếm tốc độ nhanh chậm của 1 mạng p2p bằng thời gian trễ của 1 chunk từ lúc phát ra từ nguồn phát tới khi tất cả các peer trong mạng nhận được chunk đó. Thời gian trễ này quyết định thời gian playout delay tại người máy sử dụng. Người sử dụng phải chời ít nhất khoảng thời gian này trước khi có thể xem chương trình, do đó rất cần được giảm nhỏ. Thời gian này càng nhỏ thì sự chênh lệch chất lượng giữa các nút gần nguồn phát và các nút xa càng nhỏ, tạo sự đồng đều cho mạng.

™ Độ mất gói

Liên quan đến chất lượng của đoạn live stream đó, nó cũng liên hệ chăt chẽ với tốc độ và băng thông.Ngoài việc mất gói do nghẽn, hay những yếu tố khác trên kênh truyền, những gói đến bộ đệm của máy nhận trong khoảng thời gian trễ cho phép

Một phần của tài liệu Dịch vụ luồng trên mạng xếp chồng (Trang 60)

Tải bản đầy đủ (PDF)

(117 trang)