CHƯƠNG 1: TỔNG QUAN VỀ MẠNG NGANG HÀNG 1. Khái niệm mạng ngang hàng Mạng ngang hàng (peer-to-peer network) là mô hình mạng máy tính phân tán phi tập trung, các thành phần tham gia được gọi là các nút (nodes/ peers) nối với nhau qua các liên kết, có chức năng vừa là máy chủ, vừa là máy khách. Mỗi tác vụ (tra cứu, phát lại các đoạn video, tải file,.) được chia sẻ giữa các nút qua các liên kết mạng, mỗi nút lại tự đóng góp một phần tài nguyên sẵn có (băng thông, dung lượng bộ nhớ,.) của mình cho hệ thống vì vậy thông tin được chia sẻ giữa các nút mà không cần thiết phải có máy chủ trung tâm và vẫn hoạt động tốt cả khi có một số nút gặp sự cố. Mô tả cấu trúc một mạng ngang hàng.
Các ứng dụng của mạng ngang hàng Mô hình mạng ngang hàng được ứng dụng rộng rãi trong trong thực tế từ những ứng dụng cơ bản như chia sẻ file, cung cấp các nội dung video, điện thoại trực tuyến đến những ứng dụng cho tính toán phân tán, đào tạo trực tuyến,. - Hệ thống chia sẻ tập tin (file): là một loại ứng dụng cơ bản của mô hình mạng ngang hàng, các ứng dụng này kết nối các nút tham gia cho phép phân phối và tải về các tệp tin giữa các nút. Tiêu biểu là BitTorrent (với giao thức bitTorrent), eDonkey2000 (với giao thức overnet), KaZaA (với giao thức fastTrack) và những hệ thống tương đương, rất hiệu quả trong việc phổ biến và chia sẻ file trên mạng Internet nhất là các file lớn. BitTorrent sử dụng 1 chương trình ứng dụng có gọi là BitTorrent client, mỗi BitTorrent client có khả năng so sánh, yêu cầu và vận chuyển file trên hệ thống sử dụng giao thức bitTorrent, file có thể chứa bất kỳ thông tin nào, bao gồm cả văn bản, âm thanh, phim và nội dung đã được mã hóa.
Tốc độ tải về của file phụ thuộc vào số lượng các nút tham gia chia sẻ. BitTorrent z 11 được đánh giá cao về độ tin cậy và chi phí, theo ước tính chiếm khoảng 30% lưu lượng trên Internet (Wikipedia). Tuy nhiên, BitTorrent cũng có 1 số nhược điểm: không giúp ẩn danh địa chỉ người dùng, không khuyến khích các nút tham gia tái upload dữ liệu,. - Truyền hình trực tuyến: là các ứng dụng phân phát những nội dung đa phương tiện dựa trên mạng ngang hàng cung cấp cho người xem mọi lúc, mọi nơi mà không cần đòi hỏi phải có thiết bị đầu cuối hoặc hệ thống mạng, thích nghi cho những mạng lớn với môi trường có tần suất vào/ ra liên tục, ví dụ các giao thức PPLive/ DOnet/ GridMedia hoạt động dựa trên phương thức kéo hoặc kéo- đẩy gói tin giữa các nút, phân phối luồng các nội dung trực tuyến hoặc đã ghi sẵn.
Sự khác biệt giữa các gói tin truyền hình trực tuyến và các gói tin trong ứng dụng chia sẻ file là phải đáp ứng thời hạn phát lại, đồng thời trong hệ thống phải tồn tại những điểm nút có chức năng như máy chủ nhằm trợ giúp các nút mới tham gia vào hệ thống cũng như quản lý thành viên. - Tính toán phân tán: các ứng dụng được thiết kế nhằm tập trung nguồn lực tài nguyên từ các máy tính trong mạng. Ý tưởng chính là tận dụng chu kỳ nhàn rỗi của các máy tính tham gia để phân phối tính toán cho các vấn đề lớn, như Seti@home [3] một dự án xây dựng một máy tính ảo lớn dựa trên sự nhàn rỗi của hệ thống các máy thành phần tham gia vào một mạng ngang hàng, hệ thống gồm có các máy chủ cơ sở dữ liệu, phân phối công việc cho mỗi nút và thu thập, tổng hợp kết quả khi tính toán xong. - Các ứng dụng trong đào tạo trực tuyến: được xây dựng như mô hình lớp học ảo, các nút tham gia vào hệ thống không hưởng thụ các bải giảng được phát trực tiếp mà còn chủ động phát lại các nội dung thu được cho các nút khác trên cùng một kênh để tận dụng tối đa băng thông phát của tất cả các nút nhờ đó tăng độ tin cậy, giảm thiểu chi phí đầu tư vào nguồn phát ban đầu.
Mô hình đào tạo này còn có tính tiện dụng và xã hội hóa cao, người học và giáo viên có thể ở bất kỳ đâu chỉ cần sử dụng máy tính cá nhân có giao tiếp mạng, người học có thể xem/ nghe bất cứ lớp học nào mà họ thích, ngoài ra hệ thống còn có tính năng cho phép người học đặt câu hỏi trực tiếp đến giáo viên hoặc trao đổi với những người học khác đang cùng tham gia lớp. - Ứng dụng thoại qua Internet: một số ứng dụng sử dụng mạng Internet như mạng nền cấu thành hệ thống, tiêu biểu là mạng Skype. Skype là một mạng điện thoại Internet theo mô hình mạng ngang hàng được thành lập bởi Niklas Zennström và Janus Friis (những người sáng lập ra ứng dụng chia sẻ file KaZaA). Trong Skype thư mục người dùng được phân tán hoàn toàn trên các nút là các máy tính tham gia mạng vì vậy rất dễ dàng trong việc mở rộng mà không đòi hỏi z 12 một cơ sở hạ tầng tập trung, phức tạp và đắt tiền (đã có trên 300 triệu người dùng trên toàn thế giới, số liệu thống kê từ Skype).
Skype nổi bật nhờ các tính năng: hội thoại, hình ảnh miễn phí, tin nhắn. Bên cạnh đó Skype còn sử dụng phương pháp “giao tiếp an toàn” gồm tập hợp những giải thuật má hóa mạnh mẽ, phổ biến để mã hóa các thông điệp khiến ứng dụng này trở nên đáng tin cậy. Các mô hình mạng ngang hàng Dựa vào cấu trúc liên kết giữa các nút mạng trong lớp mạng phủ, mạng ngang hàng có thể được chia thành hai loại sau: - Mạng ngang hàng không có cấu trúc, - Mạng ngang hàng có cấu trúc. Mạng ngang hàng không có cấu trúc Là mô hình mạng có đặc điểm: liên kết giữa các nút trong mạng được thiết lập một cách ngẫu nhiên, không theo theo 1 luật nhất định nào, vì vậy cũng không có mỗi liên quan nào giữa nút với dữ liệu mà nó đang lưu trữ, quản lý.
Một nút khi mới gia nhập mạng sẽ kết nối với nút đang ở trong mạng, nó sao chép các liên kết có sẵn của nút này, sau đó dần dần tự bản thân nó sẽ thêm vào các liên kết mới cho mình. Chúng có thể đột ngột rời mạng mà không cần phải hoàn thiện bất cứ 1 thủ tục nào. Về cơ bản để tìm kiếm dữ liệu trong mô hình này, mỗi nút sẽ sử dụng một kỹ thuật gửi yêu cầu tìm kiếm (ví dụ: gửi tràn,.) truyền lên cả mạng, vì vậy mà các yêu cầu tìm kiếm luôn lặp lại giữa các nút. Khi nút nhận được 1 truy vấn, nó sẽ gửi trả lại một danh sách các nội dung đúng hoặc phù hợp với truy vấn.
Hiệu quả truy vấn thành công phụ thuộc vào số lượng nút tham gia chia sẻ dữ liệu. Các mạng ngang hàng không cấu trúc phổ biến trong thực tế: Napster, Gnutella,… Gnutella [13] sử dụng kỹ thuật gửi tràn để quảng bá yêu cầu tìm file lên mạng. Có 4 kiểu thông điệp trong Gnutella, Ping: gửi yêu cầu tới máy chủ nhất định, Pong: thông điệp trả lời ping trong đó có thông tin về địa chỉ IP/ số hiệu cổng và số lượng file chia sẻ của máy chủ, Query: thông điệp truy vấn chứa nội dung truy vấn có yêu cầu tốc độ chia sẻ tối thiểu, Query hit: thông điệp trả lời query có chứa thông tin về địa chỉ IP/ số hiệu cổng/ tốc độ đáp ứng tối thiểu từ máy chia sẻ và danh sách file chia sẻ có nội dung gần nhất với truy vấn yêu cầu. Khi một nút đăng nhập Gnutella, nó sẽ gửi thông điệp ping tới các nút mà nó kết nối được, các nút này gửi lại pong trả lời đồng thời quảng bá thông điệp ping của nút mới tới các nút hàng xóm của nó.
Gnutella có sử dụng tham số TTL để duy trì thông điệp ping và query (truy vấn), gán định danh cho mỗi thông điệp để tránh đụng độ và trùng lặp. Cuối cùng, khi nút nguồn nhận được thông điệp query hit z 13 (hồi đáp), file yêu cầu sẽ được xác định trên 1 nút nào đó, nó sẽ kết nối với nút đó và tải về thông tin. Hình dưới đây mô tả quá trình gửi tràn tìm kiếm file. Truy vấn TTL = 2 Hồi đáp Kết nối giữa các nút Hình 1.
Mô tả kỹ thuật tìm kiếm trong mạng Gnutella Nhược điểm của mô hình mạng này là các mẫu dữ liệu được tìm kiếm, chia sẻ nhiều thì tốc độ tìm kiếm nhanh và tỷ lệ thành công cao, ngược lại các mẫu dữ liệu ít được chia sẻ, chỉ luân chuyển qua 1 vài nút thì yêu cầu tìm kiếm đối với chúng ít có khả năng thành công. Mạ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, mạng ngang hàng có cấu trúc sử dụng hệ thống bảng băm phân tán (DHT). Hệ thống này định nghĩa liên kết giữa các nút trong mạng phủ theo một thuật toán cụ thể: xác định khóa (key) cho mẫu dữ liệu, ánh xạ khóa vào nút mạng, đồng thời xác định chặt chẽ mỗi nút sẽ chịu trách nhiệm đối với một phần dữ liệu chia sẻ. Với cấu trúc này, khi một nút cần tìm một mẫu dữ liệu, nó “băm” dữ liệu lấy khóa và áp dụng một giao thức chung để xác định nút nào sẽ chịu trách nhiệm cho dữ liệu đó, sau đó liên lạc trực tiếp đến nút đó để lấy kết quả.
Các mạng ngang hàng có cấu trúc phổ biến trong thực tế: CAN, Pastry, Chord, Tapestry,. Phần dưới đây sẽ xem xét một vài mô hình mạng ngang hàng có cấu trúc. - Mô hình mạng CAN [13]: là mô hình mạng được thiết kế cho khả năng chống chịu lỗi, tự tổ chức, khả mở. CAN được xây dựng dựa trên kỹ thuật phân hoạch nhiều vùng nhỏ ảo có tính chất hợp tác qua lại lẫn nhau.
Không gian khóa được chia thành các vùng ảo và phân chia cho các nút quản lý. Mỗi cặp (khóa, giá trị) được ánh xạ vào nút quản lý vùng khóa tương ứng bởi các hàm băm. Các nút sẽ duy trì thông tin định tuyến với các nút hàng xóm của nó, là các nút có vùng quản lý tiếp giáp với nhau. Các nút hàng xóm này sẽ liên lạc với nhau để định z 14 tuyến tìm tới các nút lưu giữ khóa ở xa hơn.
Mỗi thông điệp tìm kiếm chứa tọa độ điểm đích, một nút khi nhận được thông điệp truy vấn sẽ chuyển tiếp đến nút quản lý vùng gần với tọa độ cần tìm nhất.