Các phiên bản và tương lai của JXTA

Một phần của tài liệu Nghiên cứu và đánh giá hiệu năng của giao thức chord trên mạng ngang hàng (Trang 48)

Ớ JXTA 1.0 (2001) - Chỉ hỗ trợ J2MẸ - Hỗ trợ ngôn ngữ C, Javạ Ớ JXTA 2.0 (2004) - Hỗ trợ cho J2SE, J2MẸ

- Hỗ trợ các ngôn ngữ Java, C, Perl, Python, Rubỵ

Tương lai ca JXTA :

Ớ Cộng ựồng phát triển mở:

- JXTA là dự án mã nguồn mở.

- Xây dựng bởi rất nhiều chuyên gia trên thế giớị

- Môi trường cộng tác phát triển trên nền Web (jxtạorg). - được sự hỗ trợ rất lớn của cộng ựồng các nhà phát triển P2P.

Ớ Ứng dụng ngày càng rộng rãi:

- Truyền thông không dây: JXTA for J2MẸ - Chắnh phủ: Video conference, e-Government.

- Giải trắ: Game online, Music sharing.

- Các ứng dụng truyền thông và cộng tác: File sharing, chat, các ứng dụng chia sẻ có thể sử dụng cho quản lý, giáo dụcẦ

Chương 3

NGHIÊN CỨU GIAO THỨC CHORD TRÊN MẠNG NGANG HÀNG

Chương này sẽ trình bày những vấn ựề cơ bản của giao thức Chord. Mở ựầu chương là những giới thiệu qua về mạng ngang hàng dựa trên bảng băm phân tán (thế hệ mạng ngang hàng thứ ba) bao gồm những khái niệm về: Bảng băm phân tán (Distributed Hash Table) và những ựặc ựiểm chắnh của mạng ngang hàng dựa trên bảng băm phân tán. Phần tiếp theo của chương này sẽ tập trung vào vấn ựề cốt lõi của chương ựó là giao thức Chord. đây là một trong những DHTs ựơn giản nhưng hiệu quả. Phần này sẽ trình bày về mô hình hệ thống, cấu trúc vòng tròn Chord, phân tắch tiến trình tìm kiếm dữ liệu, vấn ựề ổn ựịnh khi các Node gia nhập và rời khỏi mạng, ựồng thời ựưa ra các giải pháp ựể nâng cao hiệu năng của Chord dưới ựiều kiện churn rate caọ

3.1. Thế h mng P2P da trên bng băm phân tán

Mạng ngang hàng ựã trải qua ba thế hệ. Trong ựó thế hệ thứ ba ựược biết ựến với cái tên là mạng ngang hàng dựa trên bảng băm phân tán. Thế hệ thứ ba ựược bắt ựầu với các dự án nghiên cứu như Chord, Patry, P-grid và Tapestrỵ Các dự án này ựều tập trung nghiên cứu về bảng băm phân tán (Distributed Hash Table). Một Node trong các hệ thống này có thể ựược nhận dạng dựa trên việc băm một vài thuộc tắnh ựặc trưng của Node như ựịa chỉ IP của Nodẹ

3.1.1.Bảng băm phân tán 3.1.1.1.Hàm băm

Vào những năm 1953, nhà toán học Hans P.Luhn, lúc ựó ựang làm việc cho IBM ựã mô tả và thử một hàm toán học mới mà nó có thể tạo ra các biến ngẫu nhiên với một ựịnh dạng duy nhất. Khái niệm này có thể cho phép tìm ựược dữ liệu nhanh hơn mà máy tắnh không cần phải ựọc mọi dòng của văn bản, thay vào ựó nó cho phép truy nhập tới các chỉ số trong một mảng tuyến tắnh sau này ựưa ra khái niệm về chuỗị Với chuỗi (chaining) này, Luhn ựã nảy ra một ý tưởng là sử dụng một không gian ảo trong ma trận ựể lưu trữ dữ liệu theo thứ tự và từ ựó thực hiện các tìm kiếm bên ngoàị

Mặc dù Luhn ựã ựưa ra thuật ngữ ỘbămỢ nhưng nó chưa ựược viết thành tài liệụ Dumey ựã mô tả về kỹ thuật băm ựầu tiên trong cuốn sách của ông ỘComputers and AutomationỢ. Năm 1956, Dumey ựã tiến xa hơn một bước khi ông ựề xuất một hàm băm ựơn giản ựó là thực hiện phép chia cho một số nguyên tố và số dư ựược sử dụng như ựịa chỉ băm.

Bảng băm (Hash Table) bao gồm nhiều mảng kết hợp và ựược biết ựến như là bảng tìm kiếm. Những bảng này lần lượt ựược sử dụng ựể liên kết ựến nguồn tài nguyên. để có thể ánh xạ một giá trị ựến một khóa thì hàm băm ựược sử dụng. Hàm băm sẽ thực hiện băm giá trị có liên quan ựến thông tin về tài nguyên ựể thu ựược một khóạ Khi một khóa ựược tạo ra thì nó sẽ ựược ánh xạ tới không gian ma trận, trong không gian ma trận này thì mỗi tài nguyên ựược kết hợp với một khóạ Một hàm băm tốt khi ựó ta có thể xem rằng các khóa ựược phân tán và ngẫu nhiên.

Giả sử ta có một từ ỘcanỢ và từ này có thể ựược biểu diễn bởi x, và ta thực hiện băm x bởi một hàm băm h. Tức là:

0 h(x) n Ờ 1

Ở ựây n là số không gian có trong bảng băm. Giả sử n = 97, các bước thực hiện có thể ựược diễn tả như sau:

Ớ Bước 1: Chuyển giá trị của trường khóa ỘcanỢ thành một chuỗi các giá trị thập phân sử dụng bảng mã ASCII (American Standard Code for Information Interchange), kết quả là: 99, 97, 110.

Ớ Bước 2: Cộng các giá trị ta ựược kết quả là 306.

Ớ Bước 3: thực hiện phép tắnh: 306 mod 97 ta ựược số dư là 15.

Ớ Bước 4: Gán từ ỘcanỢ với số 15.

Vắ dụ ở trên chỉ là một hàm băm ựơn giản. Nó có thể tránh ựược những xung ựột bởi vì kắch thước của bảng băm là một số nguyên cố ựịnh (n = 97). Tuy nhiên, nếu bảng này có kắch thước không xác ựịnh thì rất khó ựể xác ựịnh các khóa ựược ánh xạ ở ựâu trong không gian của bảng băm và vấn ựề xung ựột hoàn toàn có thể xảy rạ

Các hàm mật mã (Criptographic Hashs) thường ựược sử dụng trong DHTs nhằm tạo ra các message digests, ựể kết hợp một tài nguyên với một khóạ Hàm mật mã

thường ựược sử dụng là SHẠ Phiên bản hàm mật mã SHA-1 vẫn ựược sử dụng rộng rãi ngày nay. Chuẩn của thuật toán SHA bao gồm bốn thuật toán tắnh hash code ựó là: SHA-1, SHA-256, SHA-384, và SHA-512 dùng ựể tắnh rút gọn dữ liệu ựiện tử (Message). Khi message có ựộ dài nhỏ hơn 264 bit (dùng SHA-1 và SHA- 256) hoặc nhỏ hơn 2128 bit (dùng SHA-384 và SHA-512) sẽ cho output ra là gọi là message digest. Message digest này có ựộ dài từ 160 ựến 512 bit tùy thuộc vào thuật toán ựược dùng. SHA ựược mặc ựịnh sử dụng với một thuật toán mã hóa khác như thuật toán chữ ký số (Digital Signature Algorithms). Những thuật toán này luôn luôn ựảm bảo sự an toàn, bởi vì sự tắnh toán ựều là không thể trong cả hai trường hợp sau:

Ớ Không thể tìm ra ựược message gốc khi mà biết ựược message digest.

Ớ Không thể có hai message gốc khác nhau mà lại có cùng message digest. Mỗi thuật toán SHA trên ựều tiến hành qua hai quá trình, quá trình thứ nhất là tiền xử lý (Preprocessing) và quá trình thứ hai là quá trình tắnh hash (Hash Computation). Quá trình tiền xử lý ban ựầu sẽ chuyển message thành một khối m bit và ựồng thời thiết lập các giá trị sẽ ựược sử dụng trong quá trình tắnh hash. Quá trình tắnh hash sẽ tạo ra một sự sắp xếp các message, lặp ựi lặp lại quá trình tạo ra một chuỗi các hash code, và giá trị cuối cùng sẽ ựược dùng ựể tạo message digest.

Trong bốn thuật toán về SHA nói trên, các thuật toán khác nhau về kắch cỡ của khối dữ liệu ựầu vào, về khối dữ liệu ựầu rạ Bảng 3.1 sau ựây mô tả chi tiết về các thuật toán SHA nói trên:

3.1.1.2.Khái niệm bảng băm phân tán

Như vậy, chúng ta có thể hình dung về bảng băm là cấu trúc dữ liệu sử dụng hàm băm nhằm ánh xạ các khóa (Keys) với các giá trị băm (Hash Values) ựể xác ựịnh nơi lưu trữ tài nguyên. Bảng băm cho phép truy cập tới các khóa một cách nhanh chóng thông qua thuật toán tìm kiếm.

Bảng băm phân tán (Distributed Hash Table) tức là bảng băm ựược phân tán trên tất cả các Node tham gia trong mạng. Một tên ựược sử dụng ựể nhận dạng một Nodẹ Bảng băm phân tán cung cấp một dịch vụ tìm kiếm giống như một bảng băm (gồm tên và khóa) ựược cất giữ tại DHT và bất kỳ Node tham gia nào cũng có thể khôi phục hiệu quả khóa có liên hệ với tên ựã chọ Chịu trách nhiệm về việc bảo trì sự ánh xạ từ tên ựến khóa ựược phân cho các Node, như vậy một sự thay ựổi trong tập hợp những người tham gia mạng sẽ gây ra sự tan rã là nhỏ nhất. điều này cho phép DHT với quy mô số Node rất lớn có thể xử lý các Node khi ựi vào hoặc ra khỏi mạng.

3.1.1.3.Mô hình bảng băm phân tán

Trong mạng, các máy ựược gọi là các Node và tài nguyên ựược gọi là các ựối tượng. Một tên ựược sử dụng ựể nhận dạng một Node và nói chung mỗi Node chỉ có một tên trong một không gian tên. Một tên tiêu biểu cho một Node trong Internet chắnh là ựịa chỉ IP của nó. Mỗi Node sẽ ựược tham chiếu ựến một số nhận dạng duy nhất trong một không gian nhận dạng. Trong mạng ngang hàng thì số nhận dạng của Node có ựược từ việc băm tên của Node (chắnh là ựịa chỉ IP của Node): P = hash(IP). Một khoá là nhận dạng duy nhất của tài nguyên và có thể có ựược từ việc băm tên của tài nguyên giống như K = hash(V). Trong kỹ thuật DHT của mạng ngang hàng, các tài nguyên có liên hệ với các khoá (tạo ra bằng cách băm tên tài nguyên), mỗi Node trong hệ thống sẽ xử lý một phần không gian băm và chịu trách nhiệm cất giữ một phạm vi nhất ựịnh của khoá. Chức năng DHT cho phép các Node lưu vào và lấy ra ựược các tài nguyên dựa trên khoá của chúng, và nó tỏ ra rất hữu ắch cho những hệ thống phân tán lớn. Hình 3.1 thể hiện mô hình bảng băm phân tán.

Hình 3.1. Bng băm phân tán.

Theo mô hình này thì bảng băm phân tán chứa các Key và Datạ Key ở ựây chắnh là thông tin về tài nguyên ựược chia sẻ trên mạng ngang hàng còn Data là thông tin về các Node ựang chia sẻ tài nguyên ựó. Khi một Node chia sẻ một tài nguyên nào ựó thì ựầu tiên hàm băm sẽ thực hiện băm ựịa chỉ IP của Node ta ựược Data và băm tên của tài nguyên ựược chia sẻ ựể ựược Keỵ Sau ựó, Key và Data sẽ ựược lưu trữ trong bảng băm phân tán thể hiện bằng thủ tục: Insert(Key,Data). Khi một Node tìm kiếm tài nguyên trên mạng thì tên tài nguyên cần tìm kiếm cũng ựược băm ra ựể ựược Keỵ Sau ựó Key sẽ ựược tìm kiếm trên bảng băm phân tán thể hiện bằng hàm: Lookup(Key). Bảng băm phân tán sẽ trả kết quả cho Node ựang tìm kiếm. Kết quả tìm kiếm ở ựây chứa thông tin về ựịa chỉ IP của những Node ựang nắm giữ tài nguyên cần tìm kiếm. Từ ựó, Node tìm kiếm có thể liên kết trực tiếp tới Node nguồn ựể lấy tài nguyên.

Bảng băm phân tán hỗ trợ nhiều loại giao thức như: Chord, CAN, Kademlia, Pastry, Tapestry, P_Grid, Kelips. Bài luận này sẽ tập trung nghiên cứu về Chord. đây là một giao thức ựơn giản nhưng rất hiệu quả và chắnh xác.

3.1.2.Ưu ựiểm của thế hệ mạng ngang hàng dựa trên bảng băm phân tán Thế hệ mạng ngang hàng dựa trên bảng băm phân tán có nhiều ưu ựiểm nổi trội so với các thế hệ mạng ngang hàng trước ựó. điểm quan trọng nhất trong mạng ngang hàng là sự ựịnh vị có hiệu quả vị trắ của Node lưu trữ tài nguyên mong muốn trong hệ thống. Node phải có thể ựi vào và rời bỏ hệ thống thường xuyên mà không ảnh hưởng tới hệ thống và tải phải ựược cân bằng trên những Node ựang tồn tạị Ở

thế hệ thứ nhất của mạng ngang hàng có sự tồn tại của máy chủ chỉ mục ựể tìm tài nguyên mong muốn. Với hệ thống tập trung, máy chủ chỉ mục sẽ lưu trữ tất cả các thông tin về ựịa chỉ của tài nguyên. Khi một Node yêu cầu một tài nguyên nó sẽ tìm kiếm tại máy chủ và trả lại ựịa chỉ tài nguyên mong muốn, rồi truy nhập tới Node lưu trữ tài nguyên ựể lấy về. Hệ thống này tuy ựơn giản nhưng tồn tại những vấn ựề làm cho nó không thắch hợp với hệ thống lớn. đó là trong mạng có thể xảy ra tình trạng lỗi ựơn, lưu lượng mạng và lưu trữ tập trung vào máy chủ nên dễ xảy ra tình trạng quá tải, rớt mạng. Ở thế hệ thứ hai của mạng ngang hàng thì lại không có thông tin ựể ựịnh vị tài nguyên, sử dụng cơ chế phát quảng bá ựể truy tìm tài nguyên. điểm bất lợi của nó là không có nội dung tin cậy ựể ựịnh vị thông tin, sử dụng nhiều tài nguyên mạng cho việc tìm kiếm.

Chắnh những ựiểm bất lợi của hai thế hệ ựầu ựã dẫn ựến sự ra ựời của thế hệ thứ ba với kỹ thuật DHT. Mạng ngang hàng dựa trên bảng băm phân tán có những ưu ựiểm chắnh sau:

Ớ Khả năng phân quyền: Các Node trong hệ thống ựược thiết lập không cần bất kỳ trung tâm phối hợp nàọ

Ớ Khả năng mở rộng: Hệ thống hoạt ựộng có hiệu quả thậm trắ với hàng trăm, hàng nghìn Nodẹ

Ớ Khả năng chịu lỗi: Hệ thống vẫn làm việc có hiệu quả thậm trắ khi Node vào hoặc ra hệ thống hoặc bị lỗị

Ớ Tắnh cân bằng tải: So với các hệ thống mạng ngang hàng trước thì mạng mạng ngang hàng dựa trên bảng băm phân tán có tắnh cân bằng tải tốt hơn.

Ớ Việc tìm kiếm dữ liệu: Nhanh chóng và chắnh xác bằng việc sử dụng bảng ựịnh tuyến, ựồng thời tài nguyên mạng sử dụng cho việc tìm kiếm thông tin trên mạng ắt hơn nhiều so với phương pháp tìm kiếm theo kiểu ngập lụt các câu truy vấn.

3.2. Nghiên cu v giao thc Chord trên mng ngang hàng

Phần này của chương sẽ mô tả các vấn ựề cốt lõi của giao thức Chord, bắt ựầu với một vài nét sơ qua về nguồn gốc lịch sử của giao thức Chord, tiếp theo ựó là mô hình hệ thống, cấu trúc của vòng tròn Chord, các Node gia nhập và rời khỏi mạng như thế nào, và các bảng ựịnh tuyến ựược cập nhật ra saỏ Tiến trình tìm kiếm dữ liệu ựược thực hiện như thế nàỏ Cuối cùng sẽ phân tắch về ảnh hưởng của churn rate ựến hiệu năng của mạng ựồng thời ựề xuất một số giải pháp nhằm nâng cao hiệu năng của Chord khi churn rate ở mức caọ

3.2.1.Tổng quan về giao thức Chord

Giao thức Chord ựược thiết kế như là một giao thức ựịnh tuyến DHT bởi một nhóm sinh viên trường ựại học California ở Berkeley và MIT. Những người thiết kế ra Chord ựã ựề xuất một cách mới và thú vị ựể phân tán dữ liệu cũng như thực hiện các tìm kiếm, gán các ID và Key tới các Node với nhiều ựiểm thú vị chẳng hạn như khả năng mở rộng mạng tốt, hoàn toàn phân tán, hiệu quả trong cân bằng tải và ựơn giản. điểm cốt lõi của giao thức Chord là Chord ánh xạ một khóa tới một Node cụ thể và nhờ hàm băm duy nhất ựể phân tán các khóa tới các Node quản lý các khóa ựó, ựảm bảo tắnh cân bằng và hiệu quả.

Chord là một giải thuật tìm kiếm trong mạng P2P. Nó cho phép một tập hợp những người tham gia phân tán ựồng ý trên một Node ựơn như một ựiểm hẹn gặp cho một khoá ựã cho không cần bất kỳ trung tâm phối hợp nàọ

3.2.2.Mô hình hệ thống

Giao thức Chord ựược biết ựến như là một giao thức ựơn giản và dễ triển khaị đây chắnh là ựặc ựiểm ựã làm cho giao thức Chord ựược xây dựng một cách dễ dàng, có thể chỉnh sửa và ựoạn code có thể ựược mở rộng ựể thắch nghi với nhiều ứng dụng khác nhau của mạng ngang hàng. đây là một trong những lý do tại sao mà giao thức Chord ựã ựạt ựược nhiều thành công ở nhiều nơi trên thế giới bởi tắnh ựơn giản và hiệu quả của nó. Giao thức Chord cũng là một giao thức phù hợp với các yêu cầu của hệ thống mạng ngang hàng mà mạng ựó ựược phân tán về mặt ựịa lý. đặc tắnh này ựược thể hiện bởi việc các Node ựược trải rộng khắp nơi mà không cần các máy chủ tập trung, nó hoàn toàn tự trị và tự tổ chức. Nhờ ựặc ựiểm phân tán này ựã làm cho mạng trở nên hiệu quả hơn và có thể chống lại nhiều lỗi, bởi vì nếu

như một khu vực ựịa lý nào ựó của mạng ựột ngột bị hỏng bởi bất kỳ một lỗi không

Một phần của tài liệu Nghiên cứu và đánh giá hiệu năng của giao thức chord trên mạng ngang hàng (Trang 48)