Mạng máy tính P2P Mạng máy tính P2P được xây dựng dựa trên băng thông và hiệu năng củacác máy tính cá nhân trong mạng chứ không dựa trên là sự tập chung của một sốlượng nhỏ các máy serve
Trang 1MỤC LỤC
Chương 1: TỔNG QUAN VỀ PEER-TO-PEER (P2P) 2
1.1 Lịch sử hình thành 2
1.2 Mạng máy tính P2P 2
1.3 Phân loại P2P 4
1.3.1 Phân loại ứng dụng 7
1.3.2 Môi trường P2P hường tới 8
1.4 Các thành phần và thuật toán trong mạng P2P 9
1.4.1 Các thành phần cơ sở 9
1.4.2 Các thuật toán 12
1.4.2.1 Mô hình thư mục trung tâm 12
1.4.2.2 Mô hình tràn yêu cầu 13
1.4.2.3 Mô hình định tuyến thư mục 14
1.5 Một số tính chất của mạng P2P 18
1.5.1 Phân tán quyền 18
1.5.2 Khả năng co giãn 19
1.5.3 Khả năng giấu thông tin 21
1.5.4 Tự tổ chức 23
1.5.5 Chi phí của sở hữu 24
1.5.6 Kết nối không dự tính 24
1.5.7 Tính thực thi 25
1.5.8 Bảo mật 27
Chương 2: Kademlia 28
2.1 Giới thiệu 28
2.1.1 Chord 29
2.1.1.1 Kiến trúc hệ thống Chord 29
2.1.1.2 Điểm yếu của hệ thống Chord 32
2.1.2 Ý tưởng cơ bản của hệ thống Kademlia 34
2.2 Mô tả hệ thống 35
2.3 Trạng thái node 36
2.4 Định tuyến 38
2.4.1 Bảng định tuyến 38
2.4.2 Thuật toán tìm kiếm 40
2.5 Giao thức Kademlia 42
Chương 3: Xây dựng ứng dụng P2PKad 45
3.1 Mục đích 45
3.2 Kiến trúc P2PKad 45
3.2.1 Các phiên làm việc giữa các peer 46
3.2.2 Giao thức overnet 49
Trang 23.2.3 Xử lý thiết lập 50
3.2.3.1 Tìm kiếm Metadata 50
3.2.3.2 Tìm kiếm nguồn 51
3.2.4 Xử lý tìm kiếm 53
3.2.4.1 Tìm kiếm từ khóa 53
3.2.4.2 Tìm kiếm nguồn 54
3.2.5 Tham số trong OVERNET_SEARCH 56
3.2.6 Opcode OVERNET_PEER_NOTFOUND (33, 0x21) 57
3.2.7 Kiến trúc của các kiểu gói tin trong hệ thống Kademlia 57
Trang 3Chương 1: TỔNG QUAN VỀ PEER-TO-PEER (P2P)
1.1 Lịch sử hình thành
Mạng Internet được thiết kế ban đầu như một hệ thống peer-to-peer (P2P).Trải qua thời gian, do nhu cầu sử dụng internet phát triển mạnh mẽ đã khiến cho môhình P2P dần chuyển đổi và phát triển thành mô hình client/server Vào đầu nhữngnăm 1960, Internet ra đời và phát triển một cách nhanh chóng Số lượng máy clienttruy nhập internet gia tăng một cách chóng mặt khiến cho khôn gian địa chỉ IPkhông còn đủ để đáp ứng nhu cầu truy cập mạng của người sử dụng Bên cạnh đó,
sự phát triển của internet kéo theo nó là các yêu cầu về vấn đề bảo mật Đó là nhữngngăn cản khiến cho mô hình P2P khó có thể xây dựng và phát huy được sức mạnhthực sự của nó Mô hình client/server ra đời như một giải pháp cho các vấn đề đó
Dường như mô hình client/server đã thể hiện như một lựa chọn đúng nhưng
sự gia tăng về nhu cầu sử dụng internet một cách mạnh mẽ đã khiến các nhà pháttriển phải xem xét lại vấn đề đó Số lượng gói tin truyền đi trong mạng quá nhiềugây ra quá tải băng thông, số lượng thông tin và không gian lưu trữ tài nguyên cũng
là vấn đề gặp phải của các nhà quản lý, cung cấp dịch vụ mạng Vì vậy, chi phí chomột hệ thống server là rất cao Và bài toán cho các vấn đề đó đã đưa những nhàphát triển mạng quay lại với mô hình mạng P2P nguyên thủy
1.2 Mạng máy tính P2P
Mạng máy tính P2P được xây dựng dựa trên băng thông và hiệu năng củacác máy tính cá nhân trong mạng chứ không dựa trên là sự tập chung của một sốlượng nhỏ các máy server Các mạng P2P được sử dụng để kết nối các node theocác kết nối ad_hoc (không dự tính) và rất hữu dụng cho một số mục đích như: chia
sẻ file nội dung, tìm kiếm tài nguyên, …
Một mạng P2P thuần túy không có khái niệm khách/chủ (clients/servers) màcác node (peer) ngang bằng nhau thì có các chức năng như cả client và server đốivới các node khác trong mạng Mô hình này không giống với mô hình client-server,
Trang 4tiêu biểu cho chia sẻ file không phải P2P là một server FTP, các chương trình client
và server không giống nhau, trong đó các máy client thiết lập các yêu cầudownload/upload và các máy server gửi trả lời cho các yêu cầu đó
Hình 1.2.1: Minh họa sự khác nhau giữa P2P và Client/Server
Không có ranh giới rõ ràng giữa một mô hình P2P và một hô hình server Cả hai mô hình đó có thể được tích hợp trong cùng một mạng với mục đích
client-sử dụng khác nhau Một vài mạng như: Napster, OpenNAP và IRC@find client-sử dụngcấu trúc client-server cho một vài mục đích như tìm kiếm và sử dụng cấu trúc P2Pcho các mục đích khác Các mạng khác như Gnutella hay Freenet sử dụng cấu trúcP2P cho mọi mục đích và đó là những mạng hoàn toàn P2P
Hình 1.2.1: Hệ thống phân tán
Trang 5Kiến trúc P2P là một trong những khái niệm quan trọng của Internet, đượcđưa ra cùng với sự ra đời của Internet vào khoảng những năm 1960 Ngày nay, kháiniệm đó đã được thừa nhận bởi tích hữu dụng của nó đem lại trong các kiến trúctrao đổi file đa phương tiện (multimedia)
1.3 Phân loại P2P
Phân loại các hệ thống máy tính được biểu diễn như sau:
Hình 1.3.1: Phân loại của các hệ thống máy tính theo cấu trúc
Tất cả các hệ thống máy tính có thể được phân thành 2 loại: Phân tán và Tậpchung Hệ thống phân tán có thể được phân ra thành 2 mô hình: client-server vàP2P Trong mô hình client-server tất cả các máy client chỉ liên lạc với một máyserver đơn, hoăc có thể được phân cấp để phát triển khả năng co giãn Trong môhình phân cấp, server của một cấp sẽ đóng vai trò như một client của cấp cao hơn
Mô hình P2P được phân ra thành 2 loại: pure P2P (thuần P2P) và hybrid P2P(lai P2P) Trong mô hình thuần P2P không tồn tại server trung tâm, các peer đóngvai trò của cả server và client Gnutella và Freenet là 2 ví dụ điển hình cho mô hìnhthuần P2P Trong mô hình lai P2P, một server được sử dụng để lưu thông tin nhưcác thông tin nhận dạng của peer hoặc để kiểm tra tính bảo mật ủy quyền
Trang 6Hình 1.3.2: Mô hình lai P2P
Hình 1.3.2 là một ví dụ về mô hình lai P2P Để kết nối vào mạng P2P, đầutiên các peer khởi tạo một liên lạc với server (1) để lưu giữ vị trí hoặc đặc điểmnhân dạng của peer, sau đó các peer liên lạc trực tiếp với nhau (2) Một vài ví dụđiển hình cho mô hình lai P2P bao gồm: Napster, Groover, Aimster, Magi, Softwax
và iMesh…
Có một vài hệ thồng mạng kết hợp cả 2 mô hình thuần P2P và lai P2P đểphát triển các dự án cá nhân như: Skype, KaZaa Giải pháp đưa ra là bên cạnh việc
sử dụng một server trung tâm để xác nhân các thông tin đăng nhập của peer ra còn
sử dụng các peer có public IP làm các SuperPeer (SuperNode) Các SuperPeer này
có thể sẽ lưu trữ một vài thông tin hoặc không, các peer khác sẽ tìm kiếm thông tintại các SuperPeer Tùy thuộc vào mục đích phát triển của dự án mà có thể sử dungmột trong 2 mô hình của P2P hoặc kết hợp cả 2 như một vài sự án đã nêu ở trên
Ngoài ra ta có thể đưa ra nguyên tắc phân loại các hệ thống P2P như sau:
Hình 1.3.3: Nguyên tắc phân loại của các hệ thống P2P theo chức năng
Các hệ thống P2P được phân thành các loại như sau:
Tính toán phân tán: SETI@home, Avaki, Entropia
Chia sẻ file: Napster, Gnutella, Free Haven, Publius
Trang 7 Cộng tác: Magi, Groove, Jabber
Platform: JXTA, NET My Services
Dựa trên nguyên tắc như trên, ta có được một phân loại các hệ thống P2P như sau:
Hình 1.3.3: Phân loại của các hệ thống P2P theo chức năng
Hình 1.3.3 cho thấy các hệ thống P2P rất khác biệt theo chức năng (tính toán,lưu trữ, liên lac) Trong đó, platform hỗ trợ cho tất cả phân loại chức năng khác
1.3.1 Phân loại ứng dụng
Có 3 phân loại chính cho các ứng dụng P2P bao gồm: Thực thi song song,
quản lý nội dung và file, và cộng tác
Hình 1.3.1.1: Phân loại ứng dụng P2P
Trang 8 Thực thi song song Các ứng dụng P2P có khả năng thực thi song song bằng
cách chia sẻ công việc có quy mô lớn thành nhiều thành phần nhỏ, các thànhphần này có thể được thực thi song song trên các node(peer) độc lập Hầu hếtcác thực thi của mô hình này hướng vào các ứng dụng có độ tính toán cao,phức tạp và chuyên sâu Ý tưởng cơ bản của các ứng dụng P2P loại này làtận dụng sự nhàn rỗi của bất cứ máy tính nào kết nối vào mạng để có thể giảiquyết các khó khăn về các tính toán đặc biệt phức tạp Các công việc giốngnhau được thực thi trên mỗi peer thì sử dụng các thiết lập khác nhau cho cáctham số chuyền vào Ứng dụng của thực thi song song trong các lĩnh vưc baogồm: tìm kiếm sự sống ngoài trái đất (SETI@home), code breaking, định giáđầu tư, tính toán mức độ nguy hiểm, ước lượng thị trường và tài chính, vàphân tích tiếng nói … Các ứng dụng thành phần vẫn chưa được thừa nhậnnhư P2P Mặc dù vậy, chúng ta hãy mường tượng các ứng dụng được tíchhợp từ nhiều thành phần mà mỗi thành phần này được thực thi song songtrên nhiều node Cũng giống như các ứng dụng tính toán phức tạp chạy cáccông việc như nhau trên nhiều peer, các ứng dụng thành phần chạy các thànhphần khác nhau trên mỗi peer Ví dụ như các ứng dụng: Workflow,JavaBean, Web Services …
Quản lý nội dung và file Các ứng dụng P2P về quản lý nội dung và file
hướng vào việc lưu trữ thông tin và gửi trả thông tin từ rất nhiều peer trongmạng Mô hình phổ biến cho lớp ứng dụng này là mô hình truyền đổi nộidung Các ứng dụng như Napster và Gnutella cho phép các peer tìm kiếm vàtải các file, chủ yếu là các file nhạc, từ các peer khác Các ứng dụng nàykhông hướng nhiều vào khả năng cùng cấp cũng như việc phục hồi và trả vềcác file khi tải về bị lỗi Chúng hướng tới việc tận dụng số lượng lớn khônggian lưu trữ không được sử dụng như một server cho người dùng Các ứngdụng này đảm bảo độ tin cậy bằng vịệc sử dụng nhiều công nghệ lưu trữtryền thống để tái tạo dữ liệu Một số dự án nghiên cứu khảo sát nền móngcủa hệ thống file P2P đã dẫn tới sự ra đời của các ứng dụng sàng lọc và khaiphá như OpenCOLA và JXTA Search Thay vì hướng vào thông tin chia sẻ,các ứng dụng này hướng tới công nghệ sàng lọc cộng tác tích hợp khả năng
Trang 9tìm kiếm chỉ số trên một mạng peer Công nghệ JXTA Search có thể kết hợpvới một ứng dụng như Gnutella để tăng hiệu quả tìm kiếm trên một diện rộnghơn, nội dung bị phân tán lớn hơn.
Cộng tác Các ứng dụng P2P cộng tác cho phép người dùng có thể cộng tác
với nhau trong thời gian thực mà không cần thông qua một server trung tâm
để thu thập và sắp xếp thông tin Instant messaging là một dạng của lớp ứngdụng này Các dich vụ như Yahoo!, AOL, Jabber instant messaging đã trởnên rất phổ biến đối với người sử dụng Tương tự vậy, các ứng dụng chia sẻcho phép mọi người (ví dụ: đồng nghiệp,…) tương tác với nhau trong khixem và sửa đổi cùng một thông tin Buzzpad và Distributed Power Point lànhững ví dụ tiêu biểu cho lớp ứng dụng này Game là một dạng khác của lớpứng dụng P2P cộng tác Các game P2P được tổ chức trên tất cả các peer vàcập nhật được phân tán tới tất cả các peer mà không cần gửi yêu cầu tớiserver trung tâm Ví dụ như các game: NetZ1.0, Scour Exchange, Descent,Cybiko,…
1.3.2 Môi trường P2P hường tới
Những môi trường hướng tới cho P2P gồm có: Internet, Intranets và ad-hocnetworks Các hệ thống P2P kết nối với mạng Internet bằng đường dial up, băngthông rộng (DSL), ….Kiến trúc cơ bản dựa trên máy tính cá nhân, máy để bàn, máysách tay, các thiết bị cầm tay, …
Môi trường thường xuyên nhất là máy tính cá nhân có kết nối Internet Do
đó, các hệ thống P2P ngày nay chủ yếu hướng vào lĩnh vực chia sẻ nội dung Tínhtoán phân tán trong kiến trúc P2P cũng đã bắt đầu trên những máy để bàn có kết nốiInternet như dự án SETI@home những cũng đã đạt được thành công nhất địnhtrong mạng Intranet như dự án DataSynapse
Đối với các mạng ad-hoc của các thiết bị cầm tay mới chỉ phát triển các ứngdụng cộng tác
Trong tương lai, môi trường cho hệ thống P2P sẽ có khả năng được mở rộnghơn và có thể triển khai nhiều loại ứng dụng trên các môi trường khác nhau Thêm
Trang 10vào đó, Internet2 được đưa ra sẽ hỗ trợ tốt hơn cho các hệ thống P2P và các ứngdụng P2P.
1.4 Các thành phần và thuật toán trong mạng P2P
1.4.1 Các thành phần cơ sở.
Hệ thống P2P gồm nhiều thành phần cơ sở được phân theo từng lớp như sau:
Hình 1.4.1.1: Kiến trúc hệ thống P2P không chính thức
Liên lạc Mô hình P2P hội tụ nhiều kiểu liên lạc Từ những máy tính để bàn
kết nối Internet tốc độ cao và ổn định cho tới những thiết bị không dây nhỏgọn như các máy PDA hoặc ngay cả những thiết bị cảm biến kết nối kiểu ad-hoc theo dạng không dây tốc độ trung bình Khó khăn chủ yếu của liên lạctrong một cộng đồng P2P là khắc phục những vấn đề về các peer động Cảcác nhóm peer cố định (ví dụ như người dùng tắt máy) và các nhóm peerkhông cố định (ví dụ lỗi ở các đường kết nối mạng, đường dial up) thườngxuyên thay đổi Và để duy trì kết nối với lớp ứng dụng trong một môi trường
là một trong những khó khăn lớn nhất đối với những nhà phát triển P2P
Trang 11 Quản lý nhóm Quản lý nhóm peer bao gồm phát hiện ra các peer khác
nhau, định vị và định tuyến giữa các peer Việc phát hiện ra các peer có thểđược quy về tập chung như trong hệ thống Napster hoặc có thể là phân tánnhư trong hệ thống Gnutella hoặc kết hợp cả 2 giải pháp Trong các mạngP2P có một số thành phần tác động tới việc thiết kế các thuật toán tìm kiếm,phát hiện Ví dụ như mobile, các thiết bị không dây có thể phát hiện ra cácpeer khác dựa trên tần sóng liên lạc Còn đối với các máy tính để bàn thìđược tích hợp các giao thức gần giống như các thư mục trung tâm
Các thuật toán định vị và định tuyến sử dụng nguyên tắc thông thường là cốgằng đánh giá đường dẫn của một chu trình bản tin từ peer này tới peer khác.Trong khi các hệ thống đã được triển khai như Napster và Gnutella cố gắngđánh giá các thành phần cơ bản của mạng thì các nghiên cứu mới đây đã đưa
ra được các thuật toán tối ưu hơn
Robustness Có 3 thành phần chính được mở rộng để duy trì tính mạnh mẽ
của các hệ thống P2P Đó là:
Bảo mật
Kết hợp tài nguyên
Độ tin cậyBảo mật là một trong những khó khăn lớn nhất cho hạ tầng cơ sở P2P Lợiích của P2P là cho phép các node có chức năng của cả server lẫn client Tuynhiên, việc chuyển đổi một thiết bị client chuẩn thành một server sinh ra mộtvài nguy cơ tiềm ẩn cho hệ thống Chỉ có những ngồn đựoc ủy thác hay đượcxác nhận mới được truy cập thông tin và các dịch vụ được cung cấp bởi cácnode Và yêu cầu về bảo mật phải đảm bảo được các yêu cầu rất lớn trực tiếp
từ phía người dùng hoặc từ một trung gian đã được ủy thác
Mô hình P2P cung cấp nền tảng cho phép các peer tương tác với nhau để kếthợp tài nguyên có giá trị trên các hệ thống của họ Phân loại kiến trúc thànhphần kết hợp tài nguyên P2P là điều khó khăn bởi vì có rất nhiều loại tàinguyên được kết hợp giữa các peer Một mặt, các tài nguyên bao gồm cácfile hoặc thuộc về một nội dung nào đó trên máy tính Mặt khác, các tài
Trang 12nguyên có thể được định nghĩa theo các nhóm của thiết bị peer như khả năng
xử lý của CPU, băng thông và không gian đĩa …
Mức độ tin cậy trong các hệ thống P2P là một vấn đề khó Sự phân tán vốn
dĩ của các mạng peer tạo ra khó khăn cho nó để đảm bảo tính tin cậy Giảipháp thông thường nhất cho việc đảm bảo mức độ tin cậy của các hệ thốngP2P là tận dụng những lợi ích của các thông tin lặp Ví dụ, trong trường hợpcác ứng dụng tính toán phức tạp đang thực hiện một tác vụ thì gặp một lỗi,tác vụ đó sẽ được khởi động lại trên các máy khác Trong các ứng dụng chia
sẻ file, dữ liệu có thể được sao chép lại trên nhiều peer Hoặc đối với các ứngdụng nhắn tin, các tin nhắn bị mất có thể được gửi lại hoặc có thể được gửitheo nhiều đường dẫn khác nhau
Đặc tả lớp Trong khi các thành phần đã được đề cập ở trên là có thể áp
dụng được cho bất cứ kiến trúc P2P nào thì các thành phần đặc tả ứng dụngđược đưa ra từ chức năng của mỗi lớp ứng dụng P2P Bản danh mục được ápdụng cho các ứng dụng song song hoặc các ứng dụng tính toán phức tạp.Đánh dấu dữ liệu được áp dụng cho các ứng dụng quản lý file và nội dung.Bản tin được áp dụng cho các ứng dụng cộng tác
Đặc tả ứng dụng Các công cụ, các ứng dụng và các dịch vụ thực hiện các
chức năng đặc tả ứng dụng phù hợp để chạy các ứng dụng P2P trên cơ sở hạtầng P2P Nó phù hợp với các trường hợp đặc tả của bảng danh mục phântán, chia sẻ file và nội dung, hoặc các ứng dụng đặc tả chạy trên các hệ thốngcộng tác và liên lạc
1.4.2 Các thuật toán
Trong các hệ thống P2P có 3 thuật toán thông thường được sử dụng baogồm:
Mô hình thư mục trung tâm
Mô hình tràn yêu cầu
Mô hình định tuyến thư mục
1.4.2.1 Mô hình thư mục trung tâm
Trang 13Mô hình thư mục trung tâm được đưa ra bởi Napster Trong mô hình này,các peer kết nối với thư mục trung tâm để thiết lập thông tin về nội dung chia sẻ Cóthể minh họa như sau:
Hình 1.4.2.1.1: Thuật toán thư mục trung tâm
Trên yêu cầu từ một peer, chỉ mục trung tâm sẽ đối sánh yêu cầu đó với peerphù hợp nhất trong thư mục của nó Sau đó, file trao đổi sẽ được chuyền trực tiếpgiữa 2 peer
Mô hình này yêu cầu một vài cơ sở hạ tầng để quản lý (như là server thưmục) để chuyền và lưu trữ thông tin về tất cả các các nhân trong cộng đồng Đó lànguyên nhân làm giảm khả năng co giãn, bởi vì cần phải có một vài server đủ lớn
để đáp ứng số lượng yêu cầu tăng lên và cần không gian lưu trữ đủ lớn để đáp ứng
số lượng người sử dụng tăng lên
1.4.2.2 Mô hình tràn yêu cầu
Mô hình tràn yêu cầu rất khác so với mô hình thư mục trung tâm Đây là môhình thuần P2P mà trong đó không có thông tin thông báo của các tài nguyên chia
sẻ Thay vào đó, mỗi yêu cầu từ một peer sẽ được gửi tới các peer kết nối trực tiếpvới nó, và các peer nhận được yêu cầu sẽ tìm kiếm trong dữ liệu của mình, nếu có
sẽ gửi thông tin trực tiếp tới peer yêu cầu, nếu không có thì sẽ tiếp gửi yêu cầu đóđến các peer khác kết nối trực tiếp với nó Quá trình gửi yêu cầu cứ tiếp tục cho đếnkhi có trả lời hoặc đạt tới số bước gửi tối đa (khoảng từ 5 đến 9 bước)
Trang 14Hình 1.4.2.2.1: Thuật toán tràn yêu cầu
Mô hình này được phát triển bởi Gnutella Nó yêu cầu một số lượng lớnbăng thông của mạng và vì vậy mà không chứng tỏ được khả năng co giãn của nó,tuy nhiên nó rất phù hợp cho việc phát triển các mạng công ty Một vài công ty đãphát triển các phần mềm client “super-peer”, tại đó tập chung rất nhiều các yêu cầu.Mục đích là để điều khiển các yêu cầu từ đó làm giảm yêu cầu về băng thông
1.4.2.3 Mô hình định tuyến thư mục
Mô hình định tuyến thư mục được sử dụng bởi Freenet là mô hình ra đời saucùng Mỗi peer trong mạng được đánh một ID ngẫu nhiên và mỗi peer có thông tin
về một số ID của peer khác Xem hình mô tả sau:
Hình 1.4.2.3.1: Thuật toán định tuyến thư mục
Trang 15Khi một thư mục được thiết lập (được chia sẻ) trong hệ thống thì nó sẽ đượcđánh một số ID dựa trên một hàm băm của nội dung thư mục và tên thư mục Mỗipeer sẽ định tuyến thư mục đó đến peer có ID gần với ID của thư mục đó nhất Quátrình đó được lặp đi lặp lại nhiều lần cho đến khi tới được peer phù hợp Mỗi bộđiều hành định tuyến sẽ lưu lại một bản sao của thư mục Khi một peer yêu cầu thưmục đó từ hệ thống P2P, yêu cầu sẽ tới peer có ID gần với ID của thư mục nhất.Quá trình đó được lặp đi lặp lại cho tới khi một bản sao của thư mục được tìm thấy.Sao đó, thư mục được truyền về cho peer yêu cầu, trong khi đó, mỗi peer cá nhânđịnh tuyến sẽ giữ lại một bản sao của thư mục.
Mặc dù mô hình định tuyến thư mục rất phù hợp cho việc phát triển các liên lạc trêndiện rộng nhưng nó vẫn có vấn đề, đó là các ID của thư mục phải được biết trướckhi đưa ra yêu cầu đối với thư mục Do đó, mô hình này khó xây dựng tìm kiếmhơn mô hình tràn yêu cầu Bên cạnh đó, mô hình này dễ dẫn tới việc phân mảnhmạng khi mạng bị chia sẻ thành các mạng con độc lập mà không có kiên kết vớinhau
Có 4 thuật toán chính để xây dựng một mạng P2P theo mô hình định tuyến thư mụcbao gồm: Chord, CAN, Tapestry và Pastry Mục đích của các thuật toán mày khágiống nhau.Chúng đều có mục đích làm giảm số lương các bước nhảy P2P và làmgiảm số lượng trạng thái định tuyến Sự khác nhau giữa các thuật toán này là khánhỏ, tuy nhiên chúng được phát triển để phù hợp với mỗi môi trường phát triển P2P
Thuật toán Chord xây dựng mô hình không gian nhận dạng như một đơn vịthứ nguyên, không gian nhận dạng vòng Các peer được đánh ID dựa trênmột hàm băm địa chỉ IP của peer Khi một peer tham gia vào mạng, nói liên
hệ với một peer gateway và định tuyến tới vị trí kế thừa của nó Bảng địnhtuyến tại mỗi peer lưu thông tin của logN peer (N là tổng số peer trongmạng) Để định tuyến tới peer khác, bảng định tuyến tại mỗi bước nhảy đượctra cứu và bản tin được chuyển tới peer được yêu cầu Khi peer kế thừa củapeer mới được tìm thấy, peer mới gửi trả một thông điệp cho các thư mục có
số xác nhận nhỏ hơn hoặc bằng số xác nhận của peer mới và thiết lập bảngđịnh tuyến cho nó Sau đó, nó cập nhật trạng thái định tuyến của tất cả cácpeer khác có ảnh hưởng ở trong mạng Để tăng thêm tích mạnh mẽ cho thuật
Trang 16toán, môic thư mục có thể được lưu tại một số peer kế thừa Do đó, nếu mộtpeer nào đo lỗi thì mạng có thể được sửa chữa lại và thư mục có thể được tìmthấy ở peer khác
Hình 1.4.2.3.2: Thuật toán Chord
Thuật toán CAN xây dựng mô hình không gian nhận dạng như một đa thứnguyên Mỗi peer lưu vết của các peer xung quanh nó trong từng thứ nguyên.Khi một peer mới vào mạng, nó lựa chọn ngẫu nhiên một điểm trong khônggian nhận dạng và liên hệ với peer tại vị trí đó Peer được liên hệ sẽ chia toàn
bộ không gian nó liên hệ thành 2 phần và chuyền một nửa cho peer mới Peermới cũng liên hệ tới tất cả các peer xung quanh nó để cập nhật các lối địnhtuyến Để tăng thêm tính mạnh mẽ cho thuật toán này, không gian xác nhận
có thể được sao chép lại để tạo ra 2 hay nhiều hơn tính xác thực Trong mỗi
A ) Tìm vị trí kế thừa
B) Khởi tạo bảng định
tuyến
C) Cập nhật các bảng định tuyến khác
Trang 17xác thực, môic peer sẽ thiết lập thông tin khác nhau Vif vậy, nếu một thưmục không được tìm thấy tại một xác thực thì có thể sử dụng thông tin địnhtuyến cho xác thực thứ 2 để tìm thông tin được yêu cầu.
Tapestry và Pastry khá là giống nhau và đều dựa trên ý tưởng của một lướiPlaxton Các ID được đưa ra dựa trên một hàm băm địa chỉ IP của mỗi peer.Khi một peer tham gia vào mạng, nó liên hệ với một peer gateway và đinhtuyến tới peer có ID gần với ID của peer mới nhất Trạng thái định tuyến củapeer mới được xây dựng bằng cách sao chép các trạng thái định tuyến củacác peer nằm trên đường dẫn tới vị trí của peer mới Để lấy peer n, bảng địnhtuyến của nó sẽ chứa i cấp, với nội dung cấp i-th tham chiếu tới b node (b tựđưa ra) Việc định tuyến được dựa trên giao thức hậu tố dài nhất, đó là lựachọn bước nhảy tiếp theo sao cho peer có hậu tố phù hợp với vị trí mongmuốn trong số lượng lớn nhất có thể Điểm mạnh của giao thức này là dựatrên thực tế rằng tại mỗi bước nhảy, đa node do đó đa đường dẫn có lẽ đươcjvượt qua
Bước nhảy
Trạng thái định tuyến
Peer tham gia
Cố định Cố định Cố định
Server trung tâm trả về nhiều vị trí download
Không chắc chắn
Cố định (3- 7) Cố định
Nhận thông tin trả về từ các peer
Chord
Đơn nguyên,
không gian ID
vòng
N logN lgoN (logN) 2 Sao chép dữ liệu
trên nhiều peer
CAN Không gian ID đa
thứ nguyên N,d d - N3/d 2 - d 2 – d
Các peer gửi trả cho từng nhóm
dữ liệu
Tapestry Lưới toàn cầu kiểu
Plaxton N,b log b N log b N logN
Sao chép dữ liệu trên nhiều peer, lưu về đường dẫn tới mỗi peer
Trang 18Pastry Lưới toàn cầu kiểuPlaxton N,b log b N b - log b N +b logN
Sao chép dữ liệu trên nhiều peer, lưu về đường dẫn tới mỗi peer
Bảng 1: So sánh sự khác nhau của các thuật toán P2P
1.5 Một số tính chất của mạng P2P
Trong phần này, ta sẽ đi tìm hiểu một số tính chất của công nghệ P2P Có rấtnhiều vấn đề được đề cập trong khi phát triển công nghệ P2P bao gồm: phân quyền,khả năng co giãn của mạng, khả năng che giấu thông tin, khả năng tự tổ chức mạng,kết nối đặc biệt, thực thi, bảo mật, trong suốt, tiện lợi, khả năng phục hồi lỗi, …Những vấn đề này có tác động chính đến hiệu lực và sự phát triển của các hệ thốngP2P cùng với các ứng dụng P2P
1.5.1 Phân tán quyền
Các mô hinh P2P chỉ xem xét khả năng lưu trữ và xử lý dữ liệu trên cácserver trung tâm, và truy xuất nội dung thông qua các giao thức yêu cầu-đáp ứngyêu cầu (request-response) Trong mô hình client-server truyền thống, thông tinđược lưu trữ trên các server trung tâm và phân phát tới các máy client thông quamạng Các hệ thống trập trung như vậy phù hợp với một số ứng dụng và một số tác
vụ Ví dụ như việc truy nhập và bảo mật là dễ quản lý hơn Tuy nhiên, cấu trúc củacác hệ thống tập trung tỏ ra thiếu hiệu quả, dễ bị sự cố nút cổ chai, và phí phạm tàinguyên Hơn nữa, để thiết lập và duy trì một hệ thống tập trung như vậy phải bỏ ramột chi phí rất lớn Chúng đòi hỏi nhân lực kỹ sư chất lượng cao để xây dựng vàphát triển nội dung
Một trong những ý tưởng chính của mô hình phân tán là nhấn mạnh vào việc
sở hữu, điều khiển dữ liệu và tài nguyên của người sử dụng Trong một hệ phân tánđầy đủ, mọi peer đều ngang bằng nhau Chính điều này tạo ra khó khăn trong việcxây dựng các mô hình P2P bởi vì không có server trung tâm để quản lý tất cả cácpeer hoặc những thông tin mà các peer cung cấp Vì vậy mà một vài hệ thống fileP2P được xây dựng theo mô hình lai P2P như trường hợp của mạng Napster Trong
Trang 19mạng Napster có một thư mục trung tâm lưu trữ các file nhưng các node tải file trựctiếp từ các node khác.
Trong các hệ thống phân tán đầy đủ như Freenet hay Gnutella, việc tìm kiếmtrong mạng là rất khó khăn Ví dụ, các node mới tham gia mạng phải biết địa chỉcảu các node khác hoặc phải sử dụng danh sách các máy có địa chỉ IP thông dụng.Node tham gia mạng P2P bằng cách thiết lập kết nối với ít nhất một peer hiện tạitrong mạng Sau đó, nó có thể tìm kiếm các peer khác và lưu giữ địa chỉ của cácpeer đó
Một cách để phân theo quyền của một hệ thống P2P là thông qua việc đánhgiá giữa kiến trúc thuần P2P với kiến trúc lai P2P Hình minh họa sau sẽ mô tả chitiết sự phân tách đó:
Hình 1.5.1.1: Ví dụ về các cấp độ phân tán quyền trong các hệ thống P2P
1.5.2 Khả năng co giãn
Lợi ích dễ nhận thấy của hệ phân tán là để phát triển khả năng co giãn củamạng Khả năng co giãn của mạng bị giới hạn bởi các thành tố như số lượng củacác hệ điều hành trung tâm (ví dụ: khả năng đồng bộ hóa) cần để thực thi, số lượngtình trạng để duy trì, các tính chất ứng dụng song song và mô hình lập trình được sửdụng để mô tả tính toán …
Napster giải quyết vấn đề về khả năng co giãn mạng bằng việc cho phép cácpeer trực tiếp tải file nhạc từ các peer khác có thông tin lưu trữ trong thư mục trungtâm Kết quả là số lượng peer trọng mạng Napster có thể lên tới 6 triệu peer Mạng
Trang 20SETI@home hướng vào việc chia sẻ các tác vụ chạy song song, nó tận dụng lúc rỗirãi của CUP của các peer để phân tích những dữ liệu thu thập được từ các kính viêcvọng với mục đích tìm sự sống ngoài trái đất Số lượng peer trong mạngSETI@home có thể lên tới 3.5 triệu peer Các hệ thống khác như Avaki giải quyếtvấn đề về khả năng co giãn mạng bằng cách cung cấp một mô hình đối tượng phântán.
Thiết kế khả năng co giãn mạng tốt không được làm ảnh hưởng tới các tínhnăng khác như phải đảm bảo được khả năng nhận dạng và khả năng thực thi Đểgiải quyết vấn đề này, các mạng lai P2P đưa ra giải pháp tập chung một vài thôngtin điều hành và các file
Các hệ thống P2P ra đời sớm như Gnutella hay Freenet khá đặc biệt Mộtpeer phải gửi yêu cầu của nó tới một vài peer khác để tìm kiếm thông tin Điều nàykhiến cho thời gian để gửi trả yêu cầu có thể không giới hạn được Hơn nữa, việctìm kiếm một đối tượng có thể bị gửi trả về là lỗi không tồn tại mặc dù đối tượng đó
có tồn tại tạo nên tính không nhất quán của hệ thống
Các hệ thống P2P ngày nay sử dụng các thuật toán CAN,Chord, Kademlia,PAST,… lưu trữ bản đồ khóa đối tượng và node lưu chuyển Vì vậy, một đối tượng
có thê luôn luôn được gửi về miễn là các node lưu chuyển có thể được tới nơi Cácnode trong các hệ thống như vậy bao gồm một mạng bao trùm lên trên Mỗi nodechỉ lưu trữ thông tin của một vài node khác trong mạng Điều đó dẫn tới việc giớihạn về số lượng trạng thái để duy trì mạng và do đó làm giảm khả năng co giãnmạng Cấu trúc logic bao trùm cung cấp một số đảm bảo cho việc tìm kiếm Các hệthống như vậy được thiết kế cho hàng tỉ người dùng, hàng triệu server cùng với sốlượng file lên tới 1014
Trong tương lai, khi băng thông và khả năng tính toán vẫn tiếp tục phát triểnmạnh thì các platform sẽ có khả năng tạo ra nhiều lợi ích lớn để đưa ra nhiều ứngdụng hơn nữa Tác động của mạng làm cho các kiến trúc tăng khả tăng mở rộngmạng hơn, tài nguyên được phân phối nhiều hơn, các ứng dụng được mở rộng hơn
…
1.5.3 Khả năng giấu thông tin
Trang 21Một mục đích quan trọng của khả năng giấu thông tin là cho phép ngườidùng sử dung hệ thống mà không cần quan tâm tới tính hợp pháp hay các thànhphần khác Một mục đích xa hơn là đảm bảo nội dung số Những nhà phát triển củaFreenet đã xây dựng theo các mẫu cho khả năng giấu thông tin như sau:
Tác giả: tác giả của thư mục hoặc người tạo ra thư mục không thể bị nhậndạng
Người thiết lập: Người thiết lập thư mục cho hệ thống không thể bị nhậndạng
Người đọc: Người đọc hay sử dụng dữ liệu không thể bị nhận dạng
Server: Các server lưu trữ thư mục không thể bị nhận dạng thông qua thưmục lưu trữ
Thư mục: Các server không thể biết được rằng chúng lưu trữ những thưmục nào
Truy vấn: Các server không cho biết thông tin về thư mục được trả vềcho truy vấn của người sử dụng
Trong mỗi liên lạc có 3 dạng khác nhau của khả năng giấu thông tin Đó là:
Giấu thông tin người gửi: Các xác nhận của người gửi được ẩn đi; Giấu thông tin người nhận: Các xác nhận của người nhận được ẩn đi; Giấu thông tin chung: Các
xác nhận của ngươi gửi và người nhận đều được ẩn đi đối với nhau và đối với cảcác peer khác
Bên cạnh các dạng của che giấu thông tin như trên, cần phải hiểu được mức
độ che giấu thông tin của một kỹ thuật nào đó Có 6 kỹ thuật thông dụng được dùng
để che giấu thông tin bao gồm:
Trang 22Tên dự án Các dạng và kỹ thuật che dấu thông tin
Người thiết lập Người đọc Server Thư mục Gnutella Multicast, Chuyển đổi
Freenet Chuyển đổi đường dẫn,Bắt chước nhận dạng Chuyển đổiđường dẫn Sắp xếp khôngtự nguyện Mã hóa
APFS Chuyển đổi đường dẫn Chuyển đổi
Fee Haven Chuyển đổi đường dẫn Chuyển đổiđường dẫn Broadcast thành các phần chia sẻMã hóa/Chia cắt file
Publius Chuyển đổi đường dẫn Không Sắp xếp không
tự nguyện Mã hóa/Chia cắt Key
tự nguyện Mã hóa
Bảng 2: Các dạng của che dấu thông tin và các kỹ thuật sử dụng
Gnutella và Freenet cung cấp một cấp che dấu thông tin trong cách các peeryêu cầu/gửi một thư mục Trong Gnutella, một yêu cầu được broadcast và lặp lạicho đến khi tìm thấy một peer có nội dung yêu cầu Trong Freenet, một yêu cầuđược gửi đi và chuyển tiếp đến peer có nhiều khả năng chứa thông tin yêu cầu nhất.Nội dung được trả về theo đường dẫn của yêu cầu gửi đi
Free Haven và Publius được thiết kế để bảo vê chống lại sự kiểm duyệt.Chúng củng cố việc che dấu thông tin của thư mục bằng cách phân tách các file vàlưu trữ trên mỗi server Theo đó, không có server nào lưu trữ toàn bộ dữ liệu cầnthiết để thực hiện tấn công vào nội dung file đã được mã hóa Việc che giấu thôngtin giữa một cặp peer liên lạc với nhau (người thiết lập/server, người đọc/server) sửdụng kỹ thuật chuyển đổi đường dẫn
PAST, CAN, Chord tiêu biểu cho một lớp mới của hệ thống P2P cung cấpmột cơ sở đáng tin cậy Một thuộc tính chung giữa các hệ thống này là việc sắp xếpđối tượng có thể hoàn toàn không tự nguyện Kết quả là, khi một đối tượng bị thaythế trên một node, node đó có thể được dữ lại để nhận đối tượng đó Các kỹ thuậtđịnh tuyến được tích hợp vào các hệ thồng này cũng dễ dàng được sửa lại cho phùhợp để chuyển đổi đường dẫn cho việc che dấu thông tin chung
Trang 231.5.4 Tự tổ chức
Trong các hệ thống P2P, khả năng tự tổ chức mạng là cần thiết bởi vì các lý
do về khả năng co giãn mạng, khả năng phục hồi lỗi, gián đoạn kết nối của tàinguyên và chi phí của quyền sở hữu Các hệ thống P2P có thể định mức những thayđổi về số lượng người sử dụng, số lượng các hệ thống, số lượng tải… Rất khó đểbiết trước những số lượng đó, yêu cầu thường xuyên cấu hình lại hệ thống trungtâm Độ quan trọng của định mức là để làm giảm các lỗi có thể xảy ra và đưa đếnkhả năng tự duy trì, tự sửa chữa của hệ thống Bên cạnh đó, rất khó để những cấuhình xác định trước có thể giữ nguyên như cũ sau một thời gian dài hoạt động Vìvậy, yêu cầu phải được sửa lại để giữ lại những thay đổi do các peer kết nối và ngắtkết nối khỏi các hệ thống P2P Khả năng tự tổ chức còn được thể hện ở việc quản lýđược phân tán giữa các peer
Có một vài hệ thống và sản phẩm hoàn toàn hướng tới khả năng tự tổ chứcmạng Trong OceanStone, khả năng tự tổ chức được thêm vào cơ sở đinh vị và địnhtuyến Do sự gián đoạn hiệu lực peer, sự khác biệt về tiềm năng mạng và khác biệt
về băng thông nên cơ sở hạ tầng mạng phải tự chỉnh sửa hỗ trợ định vị và địnhtuyến
Trong Pastry, tự tổ chức mạng được điều khiển thông qua các giao thức chonode đến và đi dựa trên một chịu lỗi bao trùm mạng Các yêu cầu phía client đượcđảm bảo để được định tuyến trung bình ít hơn [log16N] bước Các đáp trả file cũngđược phân tán và lưu trữ là ngẫu nhiên để tạo ra sự cân bằng
FastTrack cho tìm kiếm nhanh và tải để tự tổ chức mạng phân tán Trongnhững mạng như vậy, các máy tính cấu hình mạnh thì trở thành các SuperNode vàhoạt động như các trung tâm tìm kiêm Bất cứ máy client cũng có thể là SuperNodenếu đảm bảo các yêu cầu về mạng (có tiềm năng, băng thông rộng,…)
SearchLing sử dụng khả năng tự tổ chức để sửa chữa mạng của nó cho phùhợp với kiểu tìm kiếm Kết quả là, làm giảm lưu thông mạng, giảm thông tin thừa
1.5.5 Chi phí của sở hữu
Một trong những tiền đề của P2P là chia sẻ quyền sở hữu Chia sẻ quyền sở
Trang 24chúng Đó là một ứng dụng có thể áp dụng cho tất cả các lớp của các hệ thống P2P.Điều này rất rõ ràng trong tính toán phân tán Ví dụ, SETI@home tính toán nhanhhơn cả máy tính nhanh nhất trên thế giới mà với chi phí chỉ bằng 1%.
Trong khi đó, khái niệm chia sẻ âm nhạc của Napster dựa trên sự phân phốicủa mỗi thành viên tạo thành thư viện các file nhạc khổng lồ Giống như việc chophép các peer sử dụng các hệ thống file khác của OceanStone
Trong các hệ thống cộng tác P2P và liên lạc P2P và trong các platform, việcloại bỏ các máy tính trung tâm để lưu trữ thông tin cũng được đưa ra để làm giảmchi phí sở hữu va duy trì
1.5.6 Kết nối không dự tính
Tính không dự tính trước của kết nối có ảnh hưởng lớn tới tất cả các lớp củacác hệ thống P2P Trong tính toán phân tán, các ứng dụng song song không thể thựcthi trên tất cả các hệ thống tại mọi thời điểm; một vài hệ thống có hiệu lực tại mọithời điểm, một vài hệ thống có hiệu lực ở một số thời điểm và một vài hệ thốngkhông hề có hiệu lực Các hệ thống và các ứng dụng P2P trong tính toán phân táncần phải nhận thức được tính không dự tính trước và phải có khả năng điều khiểncác hệ thống tham gia và rýt khỏi các hệ thống P2P có hiệu lực Trong khi ở các hệthống phân tán truyền thống, đó là một sự kiện ngoại lệ thì đối với các hệ thốngP2P, điều đó được coi là bình thường
Trong các hệ thống và ứng dụng P2P chia sẻ nội dung, người dùng mongmuốn có khả năng truy nhập nội dung một cách gián đoạn, dễ kết nối tới nhà cungcấp nội dung Trong các hệ thống có tính đảm bảo cao hơn như các thỏa thuận cấpdịch vụ, tính không dự tính trước bị giảm đi bởi các nhà cung cấp dịch vụ khôngcần thiết, nhưng các phần của nhà cung cấp có lẽ vẫn không có hiệu lực
Trong các hệ thống và ứng dụng P2P cộng tác, tính không dự tính trước củakết nối thể hiện rõ hơn Những người sử dụng các thiết bị mobile mong muốn kếtnối mạng Internet và có khả năng cộng tác nhiều hơn Để giải quyết tình huống này,các hệ thống cộng tác hỗ trợ làm trong suốt độ trễ của liên lạc tới các hệ thống đãngắt kết nối Điều này có thể được giải quyết bằng việc đặt các proxy trên các mạng
để nhận tin nhắn, hoặc có các kiểu relay khác nhau trên hệ thống gửi tin hoặc ở bất
Trang 25cứ nơi nào trong mạng để làm nơi lưu trữ liên lạc tạm thời cho hệ thống không cònhiệu lực.
Hơn nưa, không phải mọi thứ sẽ được kết nối vào mạng Internet Ngay cảtrong tình huống đó, các nhóm đặc biệt vẫn phải có khả năng thực hiện mạng ad-hoc để cộng tác Các hạ tầng cơ sở mạng ad-hoc hỗ trợ như 802.11b, Bluetooth vàhhồng ngoại chỉ có một giới hạn tần số Vì vậy, cả ứng dụng và hệ thống P2P đềucần được thiết kế để chịu ngắt kết nối đột ngột và không dự tính tùy thuộc vào cácnhóm của peer
1.5.7 Tính thực thi
Tính thực thi là một quan tâm đặc biệt trong các hệ thống P2P Các hệ thốngP2P hướng tới phát triển thực thi bằng việc tập hợp dung lượng lưu trữ phân tán(Napster, Gnutella,…) và chu kỳ tính toán (SETI@home, ) của các thiết bị trảikhắp trong mạng Do tính phân tản quyền của những mô hình đó mà tính thực thi bịtác động theo 3 dạng tài nguyên: xử lý, lưu trữ và mạng Riêng độ trễ của mạng cóthể đáng kể đối với mạng diện rộng Băng thông là nhân tố chính khi số lượng lớntin nhắn được lan truyền đi trong mạng và số lượng lớn các file đang được truyền đigiữa các peer Điều đó làm giới hạn khả năng co giãn của hệ thống Thực thi trongphạm vi đó không nhấn mạnh vào cấp độ mili giây, nhưng hãy thử tìm hiểu xem nó
sẽ mất bao lâu để gửi trả về một file và một truy vấn tiêu thụ hết bao nhiêu băngthông
Trong các hệ thống kết hợp (Napster, SETI@home, ), sự kết hợp giữa cácpeer được điều khiển và được điều chỉnh bởi một server trung tâm, mặc dù sau đócác peer cũng kết nối trực tiếp với nhau Điều đó làm cho các hệ thống dễ bị tấncông bởi các vấn đề mà server trung tâm đang gặp phải Để vượt qua những giớihạn của hệ thống kết hợp tập chung, các kiến trúc lai P2P khác đã được đưa ra đểphân tán chức năng của hệ thống kết hợp thành các server đánh chỉ mục, các servernày sẽ kết hợp với nhau để thỏa mãn yêu cầu của người sử dụng DNS là một ví dụcủa hệ thống P2P có thứ bậc, hệ thống này phát triển khả năng thực thi bằng cáchđịnh nghĩa một cây kết hợp, với mỗi kết hợp sẽ đáp trả một nhóm peer Liên lạc
Trang 26giữa các peer trong các nhóm khác nhau thì thiết lập lên một kết hợp cấp độ caohơn.
Trong các hệ thống kết hợp phân tán như Gnutella và Freenet, không có kếthợp trung tâm, liên lạc được điều khiển riêng rẽ bởi mỗi peer Tiêu biểu, chúng sửdụng bộ máy lưu chuyển bản tin tìm kiếm thông tin và dữ liệu Vấn đề với những hệthống như vậy là chúng gửi đi một số lượng lớn bản tin qua một vài bước nhảy từpeer này tới peer khác Mỗi bước nhảy góp phần làm giảm băng thông trên cácđường kết nối liên lạc và góp phần vào thời gian yêu cầu để nhận kết quả từ mộttruy vấn Băng thông cho một truy vấn tìm kiếm tương ứng với số lượng bản tinđược gửi đi, lần lượt tương ứng với số lượng peer phải xử lý yêu cầu trước khi tìmkiếm dữ liệu
Có 3 nhân tố chính để đánh giá khả năng thực thi: khả năng tái tạo, khả nănglưu trữ vết, và mức độ thông minh trong định tuyến
Khả năng tái tạo Khả năng tái tạo đưa các bản sao đối tượng/file tới các
peer đang yêu cầu, vì vậy làm giảm đến múc tối thiểu khoảng cách kết nốigiữa các peer đang yêu cầu với nơi cung cấp các đối tượng Những thay đổicủa các đối tượng dữ liệu phải được thông báo tới tất cả các mô hình bản saođối tượng OceanStone sử dụng một bảng lịch trình lan truyền cập nhật dựatrên sự đối lập về quyết định để hỗ trợ một phạm vi rộng lớn của các ng ữnghĩa trước sau như một Sự phân bố về địa lý của các peer giúp làm giảm
sự tắc nghẽn của cả peer và mạng Kết hợp với định tuyến thông minh, bộtái tạo giúp làm giảm tối thiểu khoảng trễ bằng việc gửi các yêu cầu tới cácpeer đã được định vị Bộ tái tạo cũng giúp đương đầu với việc không xuấthiện của các peer Bởi vì các peer có khuynh hướng là các máy của người sửdụng hơn là trở thành các máy server, không có đảm bảo chắc chắn rằng cácpeer sẽ không ngắt kết nối khỏi mạng một cách ngẫu nhiên
Khả năng lưu trữ viết Lưu trữ vết làm giảm độ dài đường dẫn yêu cầu để
lấy về một file/đối tượng cho nên số lượng bản tin trao đổi giữa các peercũng giảm đi Giảm những chuyển giao như vật là rất quan trọng bởi vì hiệunăng liên lạc giữa các peer là một vấn đề rất nghiêm trọng mà các hệ thốngP2P đang phải đối mặt Freenet là một ví dụ, khi một file được tìm thấy và
Trang 27lan truyền tới node đang yêu cầu, file đó được lưu trữ cục bộ trong tất cả cácnode nằm trên đường dẫn trả về Những phương án lưu trữ có ảnh hưởngnhiều hơn có thể được sử dụng để trư trữ số lượng lớn dữ liệu hiếm hoi.Mục đích của việc lưu trữ là để làm giảm tối thiểu các hiệu năng truy nhậppeer, để làm tăng tối đa thông lượng truy vấn và để cân bằng khối lượngcông việc trong hệ thống Đối tượng tái tạo có thể được sử dụng để tạo cânbằng và giảm tiềm tang.
Định tuyến thông minh và tổ chức mạng Để nhận thức đầy đủ tiềm năng
của mạng P2P, điều quan trọng là phải hiểu và khảo sát tỉ mỉ các ảnh hưởnglẫn nhau giữa các peer
1.5.8 Bảo mật
Các hệ thống P2P chia sẻ hầu hết những cần thiết về bảo mật của họ với các
hệ thống phân tán thông thường: các chuỗi tín nhiệm giữa các peer và các đối tượngchia sẻ, các kế hoạch thực hiện phiên chuyển đổi khóa , mã hóa, sắp xếp hệ thống
số, chữ ký Những nghiên cứu mở rộng đã làm ở các lĩnh vực trên Đối với các hệthống P2P cần có yêu cầu bảo mật mới
Trang 28Chương 2: Kademlia
2.1 Giới thiệu
Kademlia là một hệ thống P2P định tuyến các truy vấn và định vị các nodedựa trên một cấu trúc ma trận cơ sở thuật toán XOR Cấu trúc này có thuộc tính rấtquan trọng là mọi bản tin được trao đổi có chứa hoặc củng cố thông tin liên hệ hữuích Hệ thống khai thác những thông tin đó để gửi các bản tin truy vấn song song,không đồng bộ, đó là các bản tin chịu lỗi, mà không cần người dùng phải đợi thờigian trễ timeout
Kademlia được thiết kế để đáp ứng một số tính năng mà các hệ thống P2Ptrước đó không có Nó làm giảm tối thiểu số lượng bản tin cấu hình mà các nodephải gửi đi để nhận biết các node khác Thông tin cấu hình tự động chuyền đi nhưmột tác dụng của việc tìm kiếm khóa Các node có đủ hiểu biết và độ linh hoạt đểđịnh tuyến các truy vấn theo những đường dẫn ít tiềm tàng Kademlia sử dụng cáctruy vấn song song và không đồng bộ để tránh độ trễ timeout từ những node bị lỗi.Thuật toán được sử dụng để các node ghi lại sự tồn tại của node khác chịu đựngđược các tấn công từ chối dịch vụ
Kademlia được đưa ra dựa trên nền tảng cơ bản của một vài hệ thống P2P.Như các hệ thống P2P trước đó, Kademlia xây dựng hệ thống tìm kiếm và lưu trữ
<khóa, giá trị> Các khóa sử dụng 160 bit và được đưa ra nhờ một hàm băm của dữliệu Mỗi máy tính các nhân có một node ID trong không gian 160 bit khóa Các cặp
<khóa, giá trị> được lưu trữ trên những node có ID gần với khóa nhất Thuật toánđịnh tuyến node ID cơ sở để cho bất cứ node nào định vị các server gần một khóa
dự định
Một vài tính hữu dụng của Kademlia là kết quả của việc nó sử dụng ma trậntoán tử XOR để tính khoảng cách giữa các điểm trong không gian khóa Toán tửXOR là toán tử đối xứng, cho phép các cá nhân Kademlia nhận các truy vấn tìmkiếm từ việc phân bố của các node được lưu trữ trong bảng định tuyến của chúng.Nếu không có tính chất đó, các hệ thống P2P (vi dụ Chord là một điển hình) khôngbiết cách sử dụng lại thông tin trong các truy vấn nhận được Do ma trận của Chord
Trang 29là bất đối xứng nên các bảng định tuyến Chord khá cứng nhắc Mỗi cổng vào trongmột bảng của node Chord phải lưu trữ chính xác node đang xử lý một khoảng trongkhông quan ID; bất cứ node nào ở trong khoảng đó sẽ lớn hơn một vài khóa trongkhoảng đó và do đó rất xa so với khóa của node Kademlia có thể gửi một truy vấntới bất cứ node nào trong một khoảng, điều đó cho phép nó lựa chọn các định tuyếndựa trên những cơ sở tiềm tàng hoặc gửi các truy vấn song song bất đối xứng.
Để định vị các node gần một ID cá nhân, Kademlia sử dụng thuật toán địnhtuyến đơn từ đầu đến cuối Ngược lại, các hệ thống khác sử dụng một thuật toán đểlấy ID và sử dụng thuật toán khác cho các bước nhảy cuối cùng Trong các hệ thống
đã tồn tại, Kademlia giống với Pastry nhất Khác nhau ở chỗ, Kademlia sử dụngtoán tử XOR để tính khoảng cách giữa 2 điểm thì Pastry lại tính khoảng cách giữa 2điểm bằng phép trừ thông thường giá trị ID của 2 điểm
Để hiểu kỹ hơn về các tính năng do Kademlia đem lại, ta hãy xem xét kiếntrúc của Chord và cách thức Chord làm việc