Trong mạng ngang hàng, một node muốn giao tiếp với các node khác trong mạng đều phải thông qua các node mà nó có liên kết trực tiếp tới, các node này được gọi là các hàng xóm của nó. Trong quá trình các thông điệp được gửi, các node hàng xóm đóng vai trò như các bộ định tuyến, nó giúp chuyển tiếp các thông điệp tới đích một cách chính xác. Đặc trưng này của mạng ngang hàng là điểm yếu mà kẻ tấn công muốn lợi dụng. Một kẻ tấn công nếu điều khiển được các node hàng xóm của node chuẩn thì nó có thể “che khuất” node chuẩn với các node khác trong mạng, hình thức tấn công như vậy được gọi là tấn công che khuất.
Có một phương pháp phòng chống tấn công che khuất hiệu quả được Atul Singh – một giảng viên của trường đại học Rice (Mỹ) cùng các đồng nghiệp đưa ra được trình bày trong bài báo [1] đó là phương pháp kiểm tra ẩn danh dựa vào việc giới hạn bậc của các node trong mạng. Để có thể đánh giá hiệu quả của phương pháp này, tôi đã xây dựng một chương trình mô phỏng phương pháp kiểm tra ẩn danh, kết quả thử nghiệm cho thấy có tới hơn 90% các node gây hại bị phát hiện.
55 trang |
Chia sẻ: luyenbuizn | Lượt xem: 951 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Khóa luận Chống tấn công che khuất trong các mạng ngang hàng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Mai Hữu Tiến
CHỐNG TẤN CÔNG CHE KHUẤT TRONG CÁC MẠNG NGANG HÀNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS. Nguyễn Đại Thọ
HÀ NỘI - 2009
Lời cảm ơn
Trước tiên, tôi xin chân thành cảm ơn các thày cô giáo trong khoa Công nghệ Thông tin trường Đại học Công Nghệ - Đại học Quốc gia Hà Nội đã dạy dỗ và chỉ bảo nhiệt tình cho tôi trong suốt bốn năm học qua.
Tôi xin gửi lời cảm ơn sâu sắc nhất tới TS. Nguyễn Đại Thọ - phó chủ nhiệm bộ môn Mạng và Truyền thông máy tính, là người hướng dẫn trực tiếp cho tôi trong quá trình thực hiện khóa luận. Thày đã cho tôi nhiều ý tưởng và kinh nghiệm quý báu để hoàn thành khóa luận này.
Tôi xin chân thành cảm gia đình, bạn bè và người thân đã luôn động viên và giúp đỡ tôi trong thời gian qua. Đây là chỗ dựa tinh thần vững chắc và là nguồn động viên to lớn giúp tôi vượt qua khó khăn trong thời gian thực hiện khóa luận cũng như trong cuộc sống.
Tôi xin chân thành cảm ơn!
Hà Nội, ngày 24/05/2009
Sinh viên
Mai Hữu Tiến
Tóm tắt
Trong mạng ngang hàng, một node muốn giao tiếp với các node khác trong mạng đều phải thông qua các node mà nó có liên kết trực tiếp tới, các node này được gọi là các hàng xóm của nó. Trong quá trình các thông điệp được gửi, các node hàng xóm đóng vai trò như các bộ định tuyến, nó giúp chuyển tiếp các thông điệp tới đích một cách chính xác. Đặc trưng này của mạng ngang hàng là điểm yếu mà kẻ tấn công muốn lợi dụng. Một kẻ tấn công nếu điều khiển được các node hàng xóm của node chuẩn thì nó có thể “che khuất” node chuẩn với các node khác trong mạng, hình thức tấn công như vậy được gọi là tấn công che khuất.
Có một phương pháp phòng chống tấn công che khuất hiệu quả được Atul Singh – một giảng viên của trường đại học Rice (Mỹ) cùng các đồng nghiệp đưa ra được trình bày trong bài báo [1] đó là phương pháp kiểm tra ẩn danh dựa vào việc giới hạn bậc của các node trong mạng. Để có thể đánh giá hiệu quả của phương pháp này, tôi đã xây dựng một chương trình mô phỏng phương pháp kiểm tra ẩn danh, kết quả thử nghiệm cho thấy có tới hơn 90% các node gây hại bị phát hiện.
Mục lục
Các chữ viết tắt
Từ viết tắt
Từ gốc
Nghĩa tiếng Việt
CRT
Constraints routing table
Ràng buộc bảng định tuyến
DHT
Distributed hash table
Bảng băm phân tán
GT-ITM
Georgia Tech Internetwork Topology Models
Mô hình topo liên mạng của trường Georgia
PNS
Proximity neighbor selection
Lựa chọn hàng xóm lân cận
P2P
Peer to peer
Mạng ngang hàng
Hình ảnh
Hình 1: Không gian định danh Pastry 4 bit với sáu khóa được ánh xạ vào năm node 10
Hình 2: Bảng định tuyến, tập lá, tập lân cận của node có định danh 10233102 12
Hình 3: Các node gây hại chia mạng xếp chồng ra làm hai mạng con. 20
Hình 4: Tập Con trỏ ngược - Back pointer set 27
Hình 5: A kiểm tra B thông qua node trung gian I 28
Hình 6: Minh họa mạng giao vận nhánh – Transit stub 33
Hình 7:Các loại thông điệp trong kiểm tra ẩn danh 37
Đồ thị
Biểu đồ 1: Tỉ lệ node gây hại bị phát hiện trong thí nghiệm 1 41
Biểu đồ 2: Tỉ lệ node chuẩn không vượt qua được kiểm tra trong thí nghiệm 1 42
Biểu đồ 3:Tỉ lệ node gây hại bị phát hiện trong thí nghiệm 2 43
Biểu đồ 4: Tỉ lệ node chuẩn bị kết luận nhầm là node gây hại trong thí nghiệm 2 43
Mở đầu
Số người dùng Internet tính đến năm 2008 là hơn 1,46 tỉ người (số liệu từ trang Internetworldstats.com) so với 35.000 người năm 1987 và tăng tới 46% trong hai năm từ 2006 đến 2008 (theo tờ Washington Post), điều này chứng tỏ Internet đang có tốc độ tăng trưởng rất cao trên toàn thế giới. Với sự phát triển nhanh của số người dùng Internet như vậy, mô hình phục vụ client-server đang dần bộc lộ điểm yếu của mình đó là việc quá tải băng thông dẫn đến server không thể đáp ứng hết tất cả yêu cầu từ phía client khi lượng client kết nối tới server quá cao. Một trong những công nghệ được hi vọng có thể giải quyết việc quá tải băng thông trong mô hình client-server đó chính là công nghệ mạng ngang hàng. Ngày nay, mạng ngang hàng đang dần trở nên phổ biến và thu hút được rất nhiều sự quan tâm của người dùng, các nhà phát triển ứng dụng và các nhà nghiên cứu. Giống như mô hình client-server, mạng ngang hàng cũng phải đối mặt với nguy cơ bị tấn công từ phía những kẻ xấu muốn phá hoại mạng và khống chế máy tính của người sử dụng.
Một trong những mục đích chính của người sử dụng Internet đó là chia sẻ dữ liệu mà mình có như các bộ phim, hình ảnh, bài hát… với người thân và những người khác trên toàn thế giới, công nghệ mạng ngang hàng có thể đáp ứng tốt nhu cầu này và nó đang được sử dụng phổ biến. Có những lúc cao điểm, mạng chia sẻ file ngang hàng đã chiếm tới 90% băng thông của mạng Internet (theo tờ Washington Post). Ngoài ứng dụng chia sẻ file, còn có một ứng dụng nổi bật dựa trên mạng ngang hàng không thể không nói tới đó là ứng dụng gửi tin nhắn tức thời với các nhà cung cấp dịch vụ nổi tiếng như ICQ, Yahoo, AOL,... Mạng ngang hàng đã quá phổ biến và đang là mục tiêu phá hoại của những kẻ xấu. Sẽ là thảm họa lớn cho người dùng khi bị kẻ xấu tấn công, nhất là trong mạng ngang hàng, bởi các máy tham gia vào mạng đều bình đẳng với nhau, thường không có một sự quản lý tập trung nào trong mạng. Do đó, kẻ tấn công có thể dễ dàng gia nhập vào mạng thực hiện các hành vi phá hoại như ngăn cản giao tiếp giữa các máy, khống chế việc gửi và nhận dữ liệu, cấy các chương trình phá hoại vào máy người dùng, phát tán các mã độc… Các dạng tấn công thường gặp trong mạng ngang hàng đó là: tấn công mạo nhận, tấn công che khuất, tấn công bằng các file độc … Trong các cách tấn công này, thì tấn công che khuất là phổ biến và khó phòng chống nhất. Muốn thực hiện tấn công che khuất, kẻ tấn công phải đưa các node gây hại vào trong tập hàng xóm của các node chuẩn, nếu tỉ lệ node gây hại trong tập hàng xóm của các node chuẩn càng cao thì hiệu quả của tấn công che khuất sẽ càng cao. Để có thể đưa các node phá hoại vào các tập hàng xóm, node phá hoại thường lợi dụng quá trình node mới tham gia vào mạng và quá trình cập nhật tập hàng xóm theo chu kì. Trong các quá trình này, tập hàng xóm của các node chuẩn sẽ được bổ xung node mới và thay thế các node lỗi, đây thời cơ thích hợp để node gây hại được đưa vào trong tập hàng xóm của các node chuẩn. Khi đã chiếm được nhiều vị trí trong tập hàng xóm của các node chuẩn, node gây hại có thể “che khuất” các node chuẩn với các node khác trong mạng, bởi khi gửi thông điệp cho các node khác đều phải qua các node gây hại trong tập hàng xóm, do đó mọi giao tiếp của node chuẩn với các node khác đều bị node gây hại khống chế và kiểm soát. Với cách thức tấn công như vậy, các node gây hại có thể khống chế toàn bộ băng thông và dữ liệu truyền trong mạng khi đã “che khuất” được nhiều node chuẩn.
Trước các tác hại do tấn công che khuất có thể gây ra, vấn đề cấp thiết đó là cần có một cơ chế hiệu quả ngăn chặn các hành vi “che khuất” của các node gây hại trong mạng ngang hàng để đảm bảo cho mạng hoạt động bình thường và ổn định. Phương pháp chống tấn công che khuất có thể được áp dụng trong kháng lỗi của mạng và để xây dựng mô hình kháng lỗi Byzantine[7] trong mạng nói chung và mạng ngang hàng nói riêng. Sự nguy hiểm của tấn công che khuất cùng với sự phổ biến của mạng ngang hàng cho ta thấy ý nghĩa to lớn và tầm quan trọng của chống tấn công che khuất trong thực tiễn. Do các yêu cầu thực tế đó, khóa luận này sẽ nghiên cứu phương pháp phòng chống tấn công che khuất, cụ thể là phương pháp được nêu ra trong bài báo [1] của tác giả Atul Singh cùng các đồng nghiệp tại trường đại học Rice của Mỹ. Trong bài báo này đã đưa ra một phương pháp phòng chống tấn công che khuất bằng cách tiến hành kiểm tra ẩn danh các node hàng xóm, kết hợp với việc giới hạn bậc của các node tham gia vào mạng để tìm ra các node gây hại và loại bỏ chúng ra khỏi tập hàng xóm. Phương pháp này lấy ý tưởng từ thực tế đó là một node gây hại muốn thực hiện tấn công che khuất cần có bậc trong và bậc ngoài (hay số liên kết vào và liên kết ra của node) rất cao, cao hơn bậc trong và bậc ngoài của các node chuẩn khác, do đó để hạn chế tấn công cần làm giảm bậc của các node gây hại, và có thể phát hiện các node gây hại bằng việc kiểm tra ẩn danh các node có trong mạng. Đáng chú ý là phương pháp này có thể áp dụng cho cả hai dạng mạng ngang hàng có cấu trúc và không có cấu trúc.
Do không có được mã nguồn chương trình của tác giả dùng trong bài báo[1], tôi đã vận dụng kiến thức tìm hiểu được trong bài báo để tự xây dựng một chương trình mô phỏng hoạt động của cơ chế kiểm tra ẩn danh trong mạng ngang hàng có cấu trúc Pastry. Sau khi chạy chương trình mô phỏng cơ chế kiểm tra ẩn danh để phát hiện các node gây hại trong mạng, kết quả thu được là rất cao, có tới 90% các node gây hại bị phát hiện dựa vào cơ chế kiểm tra này.
Khóa luận này được trình bày theo năm chương chính, nội dung chính gồm:
Chương 1. Tổng quan về mạng xếp chồng: giúp ta hiểu mạng xếp chồng là gì và các dạng mạng xếp chồng phổ biến của nó, cùng với mô tả chi tiết mạng xếp chồng ngang hàng có cấu trúc Pastry.
Chương 2. Tấn công trong mạng ngang hàng: đề cập đến hai dạng tấn công chính trong mạng ngang hàng là tấn công che khuất và tấn công mạo nhận.
Chương 3. Các cơ chế phòng chống tấn công che khuất: nêu ra các biện pháp chống tấn công che khuất với biện pháp chính là kiểm tra ẩn danh dựa vào giới hạn bậc của các node trong mạng.
Chương 4: Mô phỏng và đánh giá cơ chế kiểm tra ẩn danh dựa trên Pastry: trình bày về xây dựng chương trình mô phỏng cùng với kết quả và nhận xét các thí nghiệm mô phỏng.
Chương 5. Kết luận: đưa ra các nhận xét tổng quát về chống tấn công che khuất dựa vào kiểm tra ẩn danh.
Chương 1. TỔNG QUAN VỀ MẠNG XẾP CHỒNG
1.1. Giới thiệu mạng xếp chồng
Sự phát triển nhanh chóng của khoa học máy tính đang biến đổi cuộc sống của chúng ta từng ngày. Chưa bao giờ con người có thể giao tiếp, trao đổi thông tin và dữ liệu cho nhau thuận tiện và dễ dàng như ngày nay, đó là nhờ vào mạng Interner. Mạng Internet giúp liên kết các vùng miền, các quốc gia, các châu lục, nó mang cả thế giới đến gần nhau hơn bất chấp khoảng cách địa lý. Mạng Internet là một dạng mạng xếp chồng phổ biến nhất, đa phần các mạng mà chúng ta đang sử dụng là mạng xếp chồng. Vậy mạng xếp chồng là gì?
Định nghĩa cho mạng xếp chồng [5] là:
Mạng xếp chồng là một mạng ảo bao gồm các node và các kết nối vật lý được xây dựng dựa trên một mạng có sẵn với mục đích cung cấp các dịch vụ mạng mà mạng nó dựa trên không thể đáp ứng được.
Mạng xếp chồng là một lớp của kiếm trúc mạng ảo dựa trên mạng vật lý, chúng cung cấp khả năng tương tác trực tiếp với người dùng. Mạng Internet chúng ta đang sử dụng là một mạng xếp chồng được xây dựng dựa trên mạng cục bộ (ví dụ như Ethernet), đường điện thoại. Mạng xếp chồng cung cấp cho chúng ta rất nhiều tiện ích cùng với cơ hội tiếp cận và sử dụng một lượng lớn tài nguyên không ngừng tăng cao có trên mạng Internet. Mạng xếp chồng cho phép các nhà phát triển mạng cùng người sử dụng có thể thiết kế và cài đặt dễ dàng môi trường truyền thông của riêng mình hay một giao thức thức dựa trên mạng Internet, cũng như định tuyến dữ liệu và quản lý các file được chia sẻ. Việc định tuyến dữ liệu trong mạng xếp chồng rất linh hoạt, nó có thể phát hiện và tránh tắc nghẽn mạng một cách nhanh chóng bằng cách chuyển đổi tuyến đường đi dựa trên nhiều độ đo khác nhau, ví dụ như thăm dò độ trễ. Các node trong mạng xếp chồng được liên kết tới rất nhiều các node khác nhờ vào cơ chế định tuyến mềm dẻo. Cũng giống như các liên kết mạng vật lý đã có, một node có thể giao tiếp liên tục với một node khác thông qua mạng xếp chồng. Với những lợi ích mà mạng xếp chồng mang lại, việc phát triển mạng xếp chồng là một xu hướng tất yếu trong tương lai. Với việc có càng nhiều node tham gia vào mạng xếp chồng sẽ giúp cho việc chia sẻ lượng lớn tài nguyên thông tin mạng Internet càng đạt hiệu quả cao.
Các dạng điển hình của mạng xếp chồng bao gồm:
Mạng xếp chồng đa phát (Multicast overlay)
Mạng xếp chồng ngang hàng (Peer-to-peer overlay)
Mạng xếp chồng tải file song song (Parallel file downloading overlay)
Mạng định tuyến xếp chồng (Routing overlay)
Có rất nhiều ứng dụng của mạng xếp chồng đang được sử dụng rộng rãi trong cuộc sống như ứng dụng chia sẻ file BitTorrent, hay điện thoại VoIP của Skyper… Nhưng trong bài khóa luận này chỉ chú trọng đến mạng xếp chồng ngang hàng. Mạng xếp chồng ngang hàng được chia ra làm hai dạng chính là mạng xếp chồng có cấu trúc (Structured overlay network) và mạng xếp chồng không có cấu trúc (Unstructured overlay network).
1.2. Mạng xếp chồng ngang hàng
Mạng ngang hàng dựa trên hệ thống mạng xếp chồng đã thu hút được rất nhiều sự quan tâm của các nhà nghiên cứu và đã có nhiều hệ thống được xây dựng và đưa vào sử dụng trong cuộc sống hàng ngày. Có thể kể đến như ứng dụng chia sẻ file ngang hàng Gnutella, Kazaa. Ngoài ra, còn có rất nhiều các nghiên cứu hoạt động của Bảng băm phân tán (Distributed Hash Table) trên mạng xếp chồng như CAN, Chord và Pastry.
Hệ thống xếp chồng ngang hàng được mô tả như một hệ thống phân tán, trong đó tất cả các node có vai trò như nhau và tất cả giao tiếp là đối xứng. Hệ thống này có rất nhiều khả năng quan trọng như: phân quyền điều khiển, tự tổ chức, khả năng điều chỉnh và mở rộng.
Một trong những yêu cầu quan trọng trong mạng xếp chồng ngang hàng đó là cung cấp thuật toán hiệu quả cho việc duy trì liên kết trong mạng. Mỗi node trong mạng xếp chồng ngang hàng duy trì những con trỏ tới tập các node hàng xóm, đó là một tập chứa lượng nhỏ các node của mạng xếp chồng. Các con trỏ đó được sử dụng để duy trì liên kết xếp chồng, mỗi node có thể liên kết tới bất kì node nào trong mạng nhờ vào các con trỏ hàng xóm. Các con trỏ hàng xóm đó cũng được dùng để đáp ứng các chức năng chương trình ứng dụng. Hơn nữa, cập nhật tập hàng xóm sẽ thay đổi thông tin thành viên, các node hàng xóm được truy vấn để cung cấp thông tin về các con trỏ hàng xóm đó.
1.2.1. Tổng quan mạng xếp chồng ngang hàng không có cấu trúc
Một mạng ngang không có cấu trúc khi các liên kết giữa các node trong mạng xếp chồng được thiết lập một cách ngẫu nhiên (hay không theo một quy luật nào). Những mạng như thế vậy dễ dàng được xây dựng vì một máy mới khi muốn tham gia mạng có thể lấy các liên kết có sẵn của một máy khác đang ở trong mạng để tạo thành liên kết mới của riêng mình. Khi một node muốn tìm một dữ liệu trong mạng xếp chồng không cấu trúc, yêu cầu tìm kiếm sẽ được truyền trên toàn mạng để tìm ra càng nhiều máy chia sẻ càng tốt. Hệ thống này thể hiện rõ nhược điểm đó là: không đảm bảo tìm kiếm sẽ thành công. Đối với tìm kiếm các dữ liệu phổ biến được chia sẻ trên nhiều máy, tỉ lệ thành công là khá cao, ngược lại, nếu dữ liệu chỉ được chia sẻ trên một vài máy thì xác suất tìm thấy là khá thấp. Tính chất này là hiển nhiên vì trong mạng ngang hàng không cấu trúc, không có bất kì mối tương quan nào giữa một máy tính và dữ liệu nó quản lý trong mạng, do đó yêu cầu tìm kiếm được chuyển đi một cách ngẫu nhiên đến một số máy trong mạng. Số lượng máy trong mạng càng lớn thì khả năng tìm thấy thông tin càng nhỏ.
Một nhược điểm khác của hệ thống này là do không có định hướng, một yêu cầu tìm kiếm thường được chuyển cho một số lượng lớn máy trong mạng làm tiêu tốn một lượng lớn băng thông của mạng, dẫn đến hiệu quả tìm kiếm chung của mạng thấp.
Các mạng xếp chồng ngang hàng phổ biến hiện nay là Napster, Gnutella, Fasttrack và eDonkey2000.
1.2.2. Tổng quan mạng xếp chồng ngang hàng có cấu trúc
Mạng xếp chồng ngang hàng có cấu trúc khắc phục nhược điểm của mạng ngang hàng không có cấu trúc bằng cách sử dụng hệ thống Bảng băm phân tán (Distributed Hash Table - DHT). Hệ thống này định nghĩa liên kết giữa các node trong mạng xếp chồng theo một thuật toán cụ thể, đồng thời xác định chặt chẽ mỗi node sẽ chịu trách nhiệm đối với một phần dữ liệu chia sẻ trong mạng. Với cấu trúc này, khi một máy cần tìm một dữ liệu, nó chỉ cần áp dụng một giao thức chung để xác định node nào chịu trách nhiệm cho dữ liệu đó và sau đó liên lạc trực tiếp đến node đó để lấy kết quả. Giao thức này sử dụng bảng băm với các khóa.
DHT tạo ra một hạ tầng cơ sở có thể sử dụng để xây dựng lên các dịch vụ phức tạp, một số hệ thống sử dụng mạng xếp chồng có cơ chế DHT là:
BitTorrent: Phân tán file. BitTorrent lựa chọn sử dụng một DHT như một người theo dõi phân phối để cung cấp theo kế hoạch giữa client đang download một file đặc biệt.
The Circle: Chia sẻ file và tán gẫu.
Codeen: Web caching.
Coral Content Distribution Network.
CSpace: Các giao tiếp an toàn.
Dijjer: Freenet-like mạng phân tán.
eMule: Chia sẻ file.
FAROO: Công cụ nghiên cứu Web Peer to Peer.
GNUnet : Freenet-like mạng phân tán.
I2P: Mạng nạc danh.
JXTA: Mã nguồn mở P2P.
Limewire:P2P Chia sẻ file có gắn java applet gọi DHT.
NEOnet: Chia sẻ file.
Warez P2P: Chia sẻ file.
YaCy: Công cụ nghiên cứu phân tán.
1.2.2.1. Bảng băm phân tán
DHT là một lớp các hệ thống phân tán không tập trung cung cấp dịch vụ tra cứu tương tự như một bảng băm: cặp khóa-giá trị được lưu trữ trong DHT, và những node tham gia có thể truy vấn dữ liệu thuận tiện bằng cách đưa ra một khóa. Việc duy trì ánh xạ từ khóa ra giá trị được phân tán giữa các node, bằng cách này sự thay đổi trong một tập các node tham gia chỉ gây ra sự gián đoạn nhỏ. Điều này cho phép DHT có thể mở rộng ra một số lượng rất lớn các node và kiểm soát được sự tham gia của node mới, sự ra đi hay lỗi của các node cũ.
DHT nhấn mạnh vào các thuộc tính sau:
Phi tập trung (Decentralization): Các node tham gia cấu thành hệ thống không có thành phần trung tâm làm điều phối mạng.
Khả năng mở rộng: Hệ thống vẫn có thể hoạt động hiệu quả với hàng nghìn hoặc hàng triệu node.
Khả năng chịu lỗi: Hệ thống vẫn có thể làm việc ổn định ngay cả khi có các sự kiện node tham gia, rời bỏ, lỗi diễn ra liên tục.
Kỹ thuật khóa được sử dụng để đạt được mục đích là mỗi node chỉ cần liên kết với một số ít các node khác trong hệ thống, thường là O(logN) với N là số node tham gia. Vì vậy sự thay đổi trong các thành viên chỉ ảnh hưởng đến một phần nhỏ của hệ thống. Khi các thành phần này được đặt ở đúng vị trí của nó, thì cách thức sử dụng DHT cho việc lưu trữ và truy vấn dữ liệu sẽ được diễn ra như sau: Không gian khóa được sử dụng là một số rất lớn, có thể là các chuỗi 160 bit. Để lưu trữ một file với tên gọi filename và dữ liệu data trong DHT, giá trị băm của filename theo thuật toán SHA-1 được tính toán, tạo ra một khóa k có độ dài 160 bit,và một thông điệp put(k,data) được gửi tới một node bất kì tham gia trong DHT. Thông điệp được chuyển từ node này sang node khác thông qua mạng xếp chồng cho đến khi nó tới node cuối cùng chịu trách nhiệm quản lý khóa k, được xác định nhờ cách thức phân chia không gian khóa, ở đó cặp (k,data) được lưu trữ. Mọi node có thể truy xuất nội dung của file bằng cách băm filename để sinh ra khóa k và hỏi một node bất kì trong DHT để tìm dữ liệu ứng với khóa k đó với một thông điệp get(k). Thông điệp lại được định tuyến qua mạng xếp chồng tới node chịu trách nhiệm quản lý khóa k, node này sẽ trả lời với dữ liệu data được lưu trữ.
Một số thiết kế DHT tìm đến tính bảo mật chống lại những người tham gia có mưu đồ xấu và cho phép người tham gia ẩn danh tính, mặc dù điều này không phổ biến trong các hệ thống mạng chia sẻ file ngang hàng. DHT phải giải quyết những vấn đề cơ bản của các hệ thống phân tán đó là: cân bằng tải, toàn vẹn dữ liệu, hiệu năng.
1.2.2.2. Cách thức phân chia không gian khóa
Hầu hết DHT đều sử dụng một dạng băm nhất quán (Consistent hash) để ánh xạ các khóa vào các node. Kỹ thuật này áp dụng một hàm δ(k1, k2) định nghĩa một khái niệm trừu tượng về khoảng cách giữa hai khóa k1 và k2. Mỗi node được gán một khóa đơn được gọi là định danh (identifier). Một node với định danh i sở hữu tất cả các khóa mà i là định danh gần nhất của các khóa này, ước lượng theo hàm δ.
Ví dụ :
Hệ thống Chord có không gian định danh dạng vòng tròn, và δ(k1, k2) là khoảng cách đi theo chiều kim đồng hồ xung quanh đường tròn từ khóa k1 tới khóa k2. Do đó, không gian khóa đường tròn được chia thành các cung liên tiếp mà điểm cuối của cung này là các định danh ID của các node. Nếu i1 và i2 là hai ID liền kề nhau thì node có định danh ID i2 sở hữu tất cả các khóa nằm giữa i1 và i2.
Hàm băm nhất quán có một thuộc tính quan trọng thuộc về bản chất đó là việc gỡ bỏ hay thêm vào các node chỉ làm thay đổi một tập các khóa sở hữu bởi các node có định danh liền kề, và các node khác thì không bị ảnh hưởng. Vì mọi thay đổi trong quyền sở hữu đều gây ra những di chuyển tốn kém băng thông của các đối tượng được lưu trữ trong DHT từ node này đến node khác, nên việc giảm thiểu việc sắp xếp lại sẽ tăng tính hiệu quả cho việc hỗ trợ các yêu cầu vào ra của node hay các sự cố lỗi của các node.
Không gian khóa trong DHT rất đa dạng, có thể là không gian định danh một chiều như Chord và Pastry hoặc đa chiều như CAN.
1.3. Mạng xếp chồng ngang hàng có cấu trúc Pastry
Mạng xếp chồng có cấu trúc Pastry sẽ được sử dụng trong mô phỏng được trình bày trong chương 4, do đó khóa luận này sẽ trình bày chi tiết về hệ thống Pastry, đại diện cho mạng xếp chồng ngang hàng có cấu trúc.
Hệ thống định tuyến phân tán Pastry được đưa ra bởi Rowstron và Druschel vào năm 2001. Được xây dựng dựa trên cơ chế DHT. Mục đích chính của nó đó là tạo ra mạng ngang hàng phi tập trung hoàn toàn. Việc định tuyến của hệ thống được dựa trên việc đánh số gần nhau giữa các định danh. Ngoài việc chú trọng tới số bước trong định tuyến, Rowstron và Druschel cũng quan tâm tới miền mạng để đánh giá hiệu quả định tuyến trong Pastry.
1.3.1. Không gian định danh
Trong Pastry, mỗi node và thành phần dữ liệu được gắn với l bit định danh, đó là một số nguyên nằm trong khoảng từ 0 cho tới 2l-1, thông thường l bằng 128. Không gian định danh của Pastry được bố trí dạng vòng tròn giống như Chord. Đối với node, định danh được hiểu là NodeId, còn với dữ liệu thì nó là khóa (key).
Hình 1: Không gian định danh Pastry 4 bit với sáu khóa được ánh xạ vào năm node
Trong hình 1 là không gian định danh của Pastry với l = 4, số định danh có thể có trong hệ thống là 24 = 16, b = 2 nên các định danh là các số trong hệ cơ số 22 = 4. Các node có trong hệ thống là N01 có định danh là 01, N10, N21, N23, N33 và N01. Các khóa là K01 có định danh là 01, K03, K22, K32 và K33
Định danh trong Pastry là một chuỗi số cơ số 2b, thông thường b bằng 4 tức định danh là các số trong hệ cơ số 16. Một khóa được đặt (quản lý) tại node có nodeId được đánh số gần với khóa nhất. Ví dụ như khóa K01 được đặt tại node N01, khóa K03 được đặt tại node N10. Độ chênh giữa giá trị của khóa K22 với hai node N21 và node N23 là bằng nhau, do đó khóa K22 có thể được hai node đó quản lí.
1.3.2. Thông tin dùng trong định tuyến
Trạng thái của một node Pastry được chia làm 3 thành phần chính, đó là:
Bảng định tuyến (Routing table)
Tập lá (Leaf set)
Tập lân cận (Neighborhoot set)
Bảng định tuyến dùng để chứa các liên kết tới các node khác trong không gian định danh. Tập lá của một node chứa các node có định danh gần với định danh với nó. Các node gần nhau về mặt vị trí mạng sẽ được đưa vào trong tập lân cận.
Pastry đo vị trí mạng dựa trên độ đo lân cận mạng vô hướng, độ đo này dựa trên hạ tầng cơ sở mạng có thể dựa trên số bước IP hoặc khoảng cách địa lý của các node.
Hàng thứ 0
Hàng thứ 3
Mục thêm
Hình 2: Bảng định tuyến, tập lá, tập lân cận của node có định danh 10233102
Trong quá trình định tuyến, các node chỉ sử dụng thông tin liên kết từ tập lá và bảng định tuyến của mình để xác định node đích nhận dữ liệu.
1.3.3. Trạng thái node
1.3.3.1. Bảng định tuyến
Bảng định tuyến được kí hiệu là tập R. Bảng định tuyến của một node Pastry bao gồm l/b hàng, với 2b-1 mục trong mỗi hàng. Thứ tự hàng trong bảng định tuyến được tính từ 0, hàng 0 là hàng trên cùng của bảng. Trong bảng định tuyến của node n, mục ở hàng thứ i chứa các định danh của node Pastry có i số đầu tiên trong nodeId giống với i số đầu tiên trong nodeId của node n, việc so sánh này được tính lần lượt từng vị trí tương ứng với nhau của hai định danh và bắt đầu từ số đầu tiên bên trái. Nếu không có định danh của node nào thỏa mãn tính chất trên thì vị trí đó trong bảng định tuyến để trống. Do không gian định danh là rất lớn so với số lượng node có thể tham gia vào mạng, nên các hàng đánh số càng cao càng thưa hay số các mục trong bảng định tuyến để trống càng nhiều. Quá trình định tuyến sẽ lựa chọn node có các số đầu trong định danh phù hợp, và nó cũng khai thác vị trí mạng để lựa chọn node gần theo độ đo lân cận mạng.
Để dễ hiểu hơn, ta sẽ xem xét bảng định tuyến của node có nodeId là 10233102 như trong hình 2. Trong mục được khoanh ở hình 2, mục này chỉ đến node có nodeId là 10222302, nó ở hàng thứ ba, do đó nó có ba số đầu tiên trong nodeId là 102 giống với ba số đầu trong nodeId của node chủ bảng định tuyến này. Sau ba số đầu tiên là số ở vị trí thứ tư có giá trị là 2, tương ứng với giá trị của mục được thêm trong cùng một cột với nó.
1.3.3.2. Tập lá
Bảng đị
Các file đính kèm theo tài liệu này:
- Mai Huu Tien_K50MMT_Khoa luan tot nghiep dai hoc.doc