Luận văn giải pháp sử dụng p2p như công cụ truyền thông cho các ứng dụng client server

Luận văn giải pháp ứng dụng P2P tăng cường truyền thông cho mô hình Client-Server. Tìm hiểu cách P2P cải thiện hiệu suất, giảm tải cho server.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Luận Văn Thạc Sĩ

2013

75
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Hướng dẫn sử dụng P2P làm công cụ truyền thông Client Server

Trong bối cảnh công nghệ thông tin phát triển, mô hình client-server đã trở thành nền tảng cho vô số ứng dụng phân tán nhờ sự đơn giản trong phát triển và quản lý. Theo định nghĩa, mô hình này phân chia rõ vai trò: server cung cấp tài nguyên, và client sử dụng tài nguyên đó. Tuy nhiên, sự phụ thuộc vào một máy chủ trung tâm cũng chính là điểm yếu lớn nhất, dẫn đến các vấn đề về hiệu năng và khả năng mở rộng (scalability). Luận văn “Giải pháp sử dụng P2P như công cụ truyền thông cho các ứng dụng Client-Server” của tác giả Lương Quý Thọ (2013) đã đề xuất một hướng đi đột phá. Hướng đi này tận dụng sức mạnh của mạng ngang hàng (peer-to-peer) để giải quyết các nhược điểm cố hữu của kiến trúc client-server. Bài viết này sẽ phân tích sâu về giải pháp kết hợp, hay còn gọi là mô hình hybrid P2P, biến các client thành những nút mạng vừa tiêu thụ vừa cung cấp dữ liệu. Qua đó, hệ thống không chỉ giảm tải server mà còn tối ưu hóa băng thông một cách hiệu quả. Đây là một chủ đề quan trọng, đặc biệt hữu ích cho các nhà phát triển đang tìm kiếm giải pháp cho các đồ án tốt nghiệp công nghệ thông tin hoặc luận văn thạc sĩ mạng máy tính, nơi hiệu năng và khả năng mở rộng là yếu tố then chốt. Việc tích hợp kiến trúc P2P không phải là thay thế hoàn toàn, mà là một công cụ truyền thông bổ trợ, giúp các ứng dụng client-server trở nên linh hoạt và mạnh mẽ hơn.

1.1. Giới thiệu tổng quan về mạng ngang hàng và mô hình P2P

Mạng ngang hàng, hay peer-to-peer (P2P), là một kiến trúc phân tán nơi các máy tính (peers) tham gia mạng có vai trò và chức năng ngang bằng nhau. Khác biệt cơ bản so với mô hình client-server, trong mạng P2P, mỗi peer vừa là client (yêu cầu dịch vụ) vừa là server (cung cấp dịch vụ). Điều này tạo ra một hệ thống phân tán tự tổ chức, không phụ thuộc vào một máy chủ trung tâm. Các peer kết nối và trao đổi dữ liệu trực tiếp với nhau, chia sẻ tài nguyên như băng thông, dung lượng lưu trữ, và năng lực xử lý. Ưu điểm chính của kiến trúc P2Pkhả năng mở rộng (scalability) vượt trội; khi càng có nhiều peer tham gia, tổng năng lực của hệ thống càng tăng lên. Đồng thời, nó cũng có khả năng chống chịu lỗi tốt hơn, vì sự cố tại một vài peer không làm sập toàn bộ mạng. Tuy nhiên, việc triển khai P2P cũng phức tạp hơn do các thách thức về tìm kiếm tài nguyên, bảo mật và quản lý các peer trong một môi trường không ổn định.

1.2. Sự kết hợp giữa P2P và Client Server Một kiến trúc lai

Mô hình lai (hybrid) kết hợp những ưu điểm của cả hai kiến trúc. Trong mô hình hybrid P2P, máy chủ trung tâm vẫn tồn tại nhưng vai trò của nó được giảm nhẹ. Máy chủ thường đảm nhận các tác vụ quản lý, điều phối và xác thực, chẳng hạn như duy trì danh sách các peer đang hoạt động, xử lý đăng nhập, và cung cấp thông tin metadata về tài nguyên. Trong khi đó, quá trình truyền tải dữ liệu chính, đặc biệt là các dữ liệu lớn, sẽ diễn ra trực tiếp giữa các peer. Cách tiếp cận này giúp giảm tải server một cách đáng kể, vì máy chủ không còn phải xử lý toàn bộ lưu lượng dữ liệu. Đồng thời, nó vẫn giữ được sự đơn giản trong quản lý và bảo mật của mô hình client-server. Đây chính là giải pháp cốt lõi được đề xuất trong nhiều nghiên cứu, bao gồm cả luận văn tham khảo, nhằm nâng cấp các ứng dụng client-server hiện có để đối phó với các yêu cầu về hiệu năng và băng thông ngày càng tăng.

II. Thách thức của mô hình Client Server Vượt qua giới hạn

Mô hình client-server là kiến trúc phổ biến nhất nhờ vào các ưu điểm như quản lý tập trung, dễ bảo trì và kiểm soát bảo mật tốt. Luận văn của Lương Quý Thọ (2013) cũng khẳng định: “dữ liệu được lưu trữ tập trung trên server... giúp đơn giản hóa việc truy xuất và cập nhật”. Tuy nhiên, chính đặc tính tập trung này lại tạo ra những thách thức nghiêm trọng khi quy mô ứng dụng tăng lên. Gánh nặng xử lý và truyền tải dữ liệu đều đổ dồn về máy chủ duy nhất, gây ra hiện tượng “thắt cổ chai” (server bottleneck). Khi số lượng client truy cập đồng thời tăng cao, máy chủ sẽ bị quá tải, dẫn đến độ trễ (latency) cao và trải nghiệm người dùng suy giảm. Các giải pháp truyền thống như nâng cấp phần cứng (scale-up) hay sử dụng cân bằng tải (load balancing) thường rất tốn kém và có giới hạn. Đặc biệt, với các ứng dụng yêu cầu truyền thông thời gian thực (real-time communication) như hội nghị video hay chia sẻ file dung lượng lớn, băng thông của server trở thành một rào cản gần như không thể vượt qua. Những hạn chế này thúc đẩy nhu cầu tìm kiếm một giải pháp kiến trúc hiệu quả hơn, có khả năng phân tán tải và tận dụng tài nguyên của chính các client.

2.1. Phân tích điểm nghẽn server bottleneck và giới hạn băng thông

Server bottleneck là tình trạng máy chủ không thể xử lý kịp các yêu cầu từ client do tài nguyên bị cạn kiệt. Các tài nguyên này bao gồm CPU, RAM, ổ cứng và quan trọng nhất là băng thông mạng. Khi một ứng dụng chia sẻ file hoặc streaming video, mỗi client đều tạo một kết nối trực tiếp đến server để tải dữ liệu. Nếu có 1000 client cùng tải một file 1GB, server sẽ phải xử lý một lưu lượng ra (egress traffic) khổng lồ, nhanh chóng làm cạn kiệt băng thông cho phép. Tình trạng này không chỉ làm chậm tốc độ của tất cả người dùng mà còn có thể làm sập dịch vụ. Các cơ chế cache phía client có thể giảm bớt phần nào gánh nặng, nhưng theo luận văn, “nếu cache miss xảy ra, client vẫn phải liên lạc với server để lấy dữ liệu. Như vậy tính co giãn của hệ thống vẫn không được đảm bảo”. Do đó, bottleneck vẫn là một vấn đề cốt lõi cần giải quyết triệt để.

2.2. Chi phí leo thang và vấn đề về khả năng mở rộng scalability

Để giải quyết vấn đề bottleneck, giải pháp trực tiếp nhất là tăng cường năng lực cho server (scale-up) bằng cách nâng cấp CPU, thêm RAM hoặc mua các gói băng thông lớn hơn. Tuy nhiên, phương pháp này có chi phí tăng theo cấp số nhân và bị giới hạn bởi công nghệ phần cứng. Một giải pháp khác là phân tán tải ra nhiều server (scale-out) bằng load balancer. Mặc dù hiệu quả hơn, nó đòi hỏi chi phí đầu tư và vận hành lớn. Cả hai cách tiếp cận đều đặt gánh nặng tài chính và kỹ thuật lên phía nhà cung cấp dịch vụ. Vấn đề về khả năng mở rộng (scalability) trong mô hình client-server là tuyến tính và tốn kém. Ngược lại, một hệ thống phân tán dựa trên mạng ngang hàngkhả năng mở rộng tốt hơn nhiều với chi phí thấp, vì nó tận dụng chính tài nguyên của người dùng để phục vụ cho hệ thống.

III. Phương pháp P2P lai ghép Tối ưu hóa mô hình Client Server

Để khắc phục những nhược điểm của mô hình client-server truyền thống, giải pháp được đề xuất trong luận văn là một mô hình hybrid P2P kết hợp với cơ chế chia sẻ cache. Hướng tiếp cận này không loại bỏ server trung tâm mà tái định vị vai trò của nó. Thay vì là trung tâm phân phối dữ liệu, server sẽ hoạt động như một “nhạc trưởng”, điều phối các kết nối và quản lý thông tin trạng thái. Gánh nặng truyền tải dữ liệu chính sẽ được phân bổ cho các client (peers) trong mạng. Cụ thể, khi một client cần một tài nguyên, thay vì yêu cầu trực tiếp từ server, nó sẽ hỏi server để biết những peer nào khác đang sở hữu tài nguyên đó. Sau đó, nó sẽ thiết lập kết nối peer-to-peer trực tiếp với các peer này để tải dữ liệu. Cách làm này mang lại hai lợi ích lớn: giảm tải servertối ưu hóa băng thông. Server chỉ cần xử lý các yêu cầu metadata nhẹ, trong khi dữ liệu lớn được trao đổi qua lại giữa các client. Mô hình này được gọi là “Mô hình chia sẻ Cache sử dụng P2P” (Shared-caching model), một giải pháp thông minh để nâng cấp các ứng dụng client-server hiện có mà không cần phải thiết kế lại toàn bộ hệ thống.

3.1. Mô hình chia sẻ Cache Shared caching model sử dụng P2P

Shared-caching model là một kiến trúc cốt lõi được trình bày trong luận văn. Cơ chế hoạt động của nó như sau: mỗi client duy trì một bộ đệm (cache) cục bộ chứa các dữ liệu đã truy cập gần đây. Khi một client A cần dữ liệu X, nó trước tiên sẽ kiểm tra cache của mình. Nếu không có (cache miss), nó sẽ gửi yêu cầu đến server. Server không trả về dữ liệu X, mà thay vào đó, nó truy vấn cơ sở dữ liệu của mình để tìm danh sách các client khác (ví dụ: B, C) cũng đang giữ dữ liệu X trong cache của họ. Server sau đó trả danh sách này về cho A. Client A sẽ sử dụng thông tin này để thiết lập kết nối peer-to-peer trực tiếp với B và C để tải dữ liệu X. Bằng cách này, dữ liệu được chia sẻ và luân chuyển trong một mạng lưới các cache phân tán, biến tập hợp các client thành một bộ nhớ đệm khổng lồ. Server chỉ đóng vai trò điều phối viên, giúp hệ thống có khả năng mở rộng (scalability) gần như không giới hạn.

3.2. Vai trò của Server điều phối trong kiến trúc P2P lai ghép

Trong mô hình hybrid P2P, vai trò của server là tối quan trọng nhưng đã được thay đổi. Server không còn là nút cổ chai mà là bộ não của hệ thống. Các chức năng chính của server bao gồm: 1. Quản lý Peer: Theo dõi trạng thái trực tuyến/ngoại tuyến của các peer, địa chỉ IP và thông tin cần thiết khác. 2. Chỉ mục tài nguyên: Lưu trữ metadata, ghi nhận peer nào đang sở hữu tài nguyên nào. 3. Hỗ trợ kết nối: Giúp các peer vượt qua các rào cản mạng như tường lửa và NAT traversal thông qua các máy chủ STUN/TURN server. 4. Xác thực và phân quyền: Đảm bảo chỉ những người dùng hợp lệ mới có thể tham gia mạng và truy cập tài nguyên. Bằng cách tập trung các chức năng điều khiển phức tạp này tại server, việc phát triển các ứng dụng client trở nên đơn giản hơn rất nhiều so với mô hình P2P thuần túy, đồng thời vẫn giữ được hiệu năng và tính linh hoạt của kiến trúc P2P.

IV. Bí quyết triển khai P2P Giao thức và kỹ thuật kết nối

Việc triển khai thành công một hệ thống peer-to-peer đòi hỏi phải giải quyết được thách thức cốt lõi: làm thế nào để các peer có thể tìm thấy và kết nối trực tiếp với nhau, đặc biệt khi chúng nằm sau các thiết bị mạng như router và tường lửa (NAT/Firewall). Đây là lúc các giao thức truyền thông và kỹ thuật chuyên dụng phát huy vai trò. Công nghệ WebRTC (Web Real-Time Communication) là một trong những lựa chọn hàng đầu hiện nay cho việc xây dựng các ứng dụng P2P trên nền tảng web. WebRTC cung cấp một bộ API JavaScript mạnh mẽ, cho phép trình duyệt thiết lập các kênh truyền thông thời gian thực để truyền video, âm thanh và dữ liệu tùy ý. Để hỗ trợ WebRTC, các kỹ thuật NAT traversal là không thể thiếu. Các máy chủ STUN/TURN server đóng vai trò trung gian giúp các peer khám phá địa chỉ IP công cộng của nhau và chuyển tiếp lưu lượng khi kết nối trực tiếp không thể thực hiện. Việc lựa chọn và cấu hình đúng các giao thức truyền thông này là chìa khóa để đảm bảo kết nối P2P ổn định và hiệu quả, tạo nền tảng vững chắc cho kiến trúc phân tán hoạt động như mong đợi. Đây là kiến thức nền tảng trong mọi luận văn thạc sĩ mạng máy tính về chủ đề này.

4.1. Kỹ thuật vượt NAT NAT traversal với STUN TURN server

NAT (Network Address Translation) là một cơ chế phổ biến cho phép nhiều thiết bị trong một mạng nội bộ chia sẻ một địa chỉ IP công cộng duy nhất. Mặc dù hữu ích, NAT lại gây khó khăn cho kết nối peer-to-peer vì các peer không biết địa chỉ IP thực của nhau. Để giải quyết vấn đề này, kỹ thuật NAT traversal được sử dụng. STUN (Session Traversal Utilities for NAT) là một giao thức cho phép một peer nằm sau NAT có thể khám phá ra địa chỉ IP công cộng và loại NAT mà nó đang sử dụng. Peer sẽ gửi một yêu cầu đến một STUN server trên mạng công cộng, server này sẽ phản hồi lại địa chỉ IP mà nó nhìn thấy. Trong trường hợp NAT quá nghiêm ngặt (Symmetric NAT), kết nối trực tiếp vẫn thất bại. Lúc này, TURN (Traversal Using Relays around NAT) sẽ được sử dụng. Một TURN server hoạt động như một trạm chuyển tiếp, nhận dữ liệu từ peer này và gửi nó cho peer kia. Mặc dù làm tăng độ trễ (latency), TURN đảm bảo kết nối luôn được thiết lập thành công.

4.2. Giới thiệu công nghệ WebRTC cho truyền thông thời gian thực

WebRTC là một dự án mã nguồn mở được Google hậu thuẫn, cung cấp cho các trình duyệt và ứng dụng di động khả năng truyền thông thời gian thực (real-time communication) thông qua các API đơn giản. Nó cho phép thiết lập các kênh giao tiếp peer-to-peer để truyền tải âm thanh, video và dữ liệu mà không cần đến các plugin hay phần mềm trung gian. Kiến trúc của WebRTC bao gồm các thành phần chính như getUserMedia (truy cập camera/microphone), RTCPeerConnection (quản lý kết nối P2P), và RTCDataChannel (truyền dữ liệu tùy ý). WebRTC tích hợp sẵn các cơ chế NAT traversal sử dụng ICE (Interactive Connectivity Establishment), một framework kết hợp cả STUN và TURN để tìm ra con đường kết nối tốt nhất giữa hai peer. Nhờ sự tiện lợi và mạnh mẽ, WebRTC đã trở thành công nghệ tiêu chuẩn để xây dựng các ứng dụng P2P hiện đại, từ hội nghị video, chia sẻ file đến game trực tuyến.

V. Case study Ứng dụng chia sẻ file P2P và hiệu năng vượt trội

Để chứng minh tính hiệu quả của mô hình hybrid P2P và “Shared-caching model”, luận văn đã tiến hành xây dựng và thử nghiệm một ứng dụng chia sẻ file thực tế có tên Quicknade. Ứng dụng này được thiết kế để so sánh trực tiếp hiệu năng truyền tải dữ liệu giữa phương pháp client-server truyền thống và phương pháp P2P lai ghép. Trong kịch bản thử nghiệm, nhiều client cùng lúc tải một file có kích thước lớn. Kết quả thực nghiệm, được minh họa chi tiết qua các đồ thị trong Chương 4 của luận văn, đã cho thấy sự vượt trội rõ rệt của giải pháp P2P. Tốc độ tải file trung bình khi sử dụng mạng ngang hàng cao hơn đáng kể so với việc chỉ tải từ server. Điều này xảy ra bởi vì mỗi client sau khi tải về một phần của file sẽ ngay lập tức trở thành một nguồn cung cấp, chia sẻ phần dữ liệu đó cho các client khác. Quá trình này giúp tối ưu hóa băng thông toàn hệ thống, biến gánh nặng của server thành lợi thế của mạng lưới. Kết quả này là một minh chứng mạnh mẽ cho thấy việc áp dụng P2P không chỉ là lý thuyết mà còn mang lại lợi ích thực tiễn, đặc biệt cho các hệ thống đòi hỏi khả năng chia sẻ dữ liệu quy mô lớn.

5.1. Phân tích kết quả thực nghiệm So sánh tốc độ download

Trong phần thực nghiệm của luận văn, tác giả đã so sánh tốc độ download một file có kích thước 48.11MB. Đồ thị 4.3 và 4.4 cho thấy sự khác biệt rõ ràng. Với mô hình client-server, khi số lượng client tăng, tốc độ download của mỗi client giảm dần do băng thông server bị chia sẻ. Ngược lại, với mô hình peer-to-peer, tốc độ download ban đầu có thể chậm hơn một chút, nhưng khi các peer bắt đầu chia sẻ dữ liệu cho nhau, tốc độ tổng thể tăng lên và duy trì ở mức cao và ổn định. Điều này chứng tỏ khả năng mở rộng (scalability) của hệ thống P2P: càng nhiều người tham gia, hệ thống càng mạnh. Server trung tâm chỉ chịu tải lúc đầu để cung cấp các mẩu dữ liệu ban đầu, sau đó gánh nặng được san sẻ cho toàn mạng. Kết quả này khẳng định giải pháp P2P là một công cụ truyền thông hiệu quả để giảm tải server và cải thiện tốc độ truyền tải dữ liệu.

5.2. Các ứng dụng thực tiễn của mô hình P2P trong hệ thống lớn

Thành công của mô hình P2P không chỉ dừng lại ở các ứng dụng chia sẻ file như BitTorrent. Nhiều dịch vụ quy mô lớn đã và đang ứng dụng kiến trúc P2P hoặc hybrid để tối ưu hóa hoạt động. Spotify, dịch vụ streaming nhạc hàng đầu, từng sử dụng P2P để giảm tải cho server của họ, cho phép người dùng truyền các mẩu bài hát cho nhau. Skype sử dụng P2P để thiết lập các cuộc gọi thoại và video, giảm thiểu chi phí vận hành server. Các nền tảng cập nhật game lớn như của Blizzard (World of Warcraft) hay Steam cũng dùng P2P để phân phối các bản vá và nội dung game khổng lồ đến hàng triệu người chơi. Gần đây nhất, các mạng phân phối nội dung (CDN) cũng bắt đầu tích hợp WebRTC để tạo ra các mạng lưới P2P-CDN, nơi người xem video streaming cũng đồng thời là người phát lại luồng video đó cho những người xem khác ở gần. Những ví dụ này cho thấy P2P là một công nghệ đã được kiểm chứng và có tiềm năng to lớn.

VI. Tương lai của Client Server Kỷ nguyên của kiến trúc P2P lai

Kết luận từ luận văn “Giải pháp sử dụng P2P như công cụ truyền thông cho các ứng dụng Client-Server” và các xu hướng công nghệ hiện đại đều chỉ ra một tương lai rõ ràng: mô hình hybrid P2P sẽ ngày càng trở nên phổ biến. Việc kết hợp sự ổn định, dễ quản lý của client-server với khả năng mở rộng (scalability) và hiệu quả chi phí của mạng ngang hàng tạo ra một giải pháp tối ưu cho các hệ thống phân tán thế hệ mới. Thay vì xem P2P và client-server là hai mô hình đối nghịch, các nhà phát triển giờ đây coi chúng là những công cụ bổ trợ cho nhau. Server sẽ tiếp tục đóng vai trò là trung tâm điều phối, xác thực và bảo mật, trong khi P2P đảm nhận việc truyền tải dữ liệu nặng. Hướng đi này không chỉ giải quyết được bài toán về chi phí và hiệu năng mà còn mở ra những khả năng mới cho các ứng dụng đòi hỏi độ trễ (latency) thấp và truyền thông thời gian thực. Sự phát triển của các công nghệ như WebRTC, 5G và điện toán biên (Edge Computing) sẽ càng thúc đẩy kỷ nguyên của kiến trúc P2P lai, biến mọi thiết bị thành một phần của một mạng lưới toàn cầu mạnh mẽ và linh hoạt.

6.1. Tổng kết ưu điểm của giải pháp P2P cho ứng dụng Client Server

Giải pháp tích hợp peer-to-peer vào mô hình client-server mang lại nhiều ưu điểm vượt trội. Thứ nhất, Giảm tải Server: Chuyển gánh nặng truyền tải dữ liệu từ server sang các client, giúp server hoạt động ổn định và hiệu quả hơn. Thứ hai, Tăng khả năng mở rộng: Hệ thống có thể phục vụ số lượng người dùng lớn hơn nhiều mà không cần đầu tư tốn kém vào hạ tầng server. Thứ ba, Tối ưu hóa băng thông: Tận dụng băng thông upload của người dùng để phân phối nội dung, giảm chi phí băng thông cho nhà cung cấp dịch vụ. Thứ tư, Cải thiện tốc độ và giảm độ trễ: Dữ liệu có thể được truyền theo con đường ngắn nhất giữa các peer ở gần nhau, thay vì phải đi qua một server ở xa. Cuối cùng, Tăng tính bền vững: Hệ thống ít phụ thuộc vào server trung tâm, giảm nguy cơ sụp đổ toàn bộ khi server gặp sự cố. Những lợi ích này làm cho kiến trúc P2P lai trở thành một lựa chọn hấp dẫn cho các nhà phát triển ứng dụng.

6.2. Hướng phát triển và nghiên cứu trong tương lai cho hệ thống phân tán

Lĩnh vực hệ thống phân tán và P2P vẫn còn nhiều tiềm năng để khám phá. Các hướng nghiên cứu trong tương lai có thể tập trung vào việc cải thiện các thuật toán lựa chọn peer để tối ưu hóa đường truyền và tốc độ. Bảo mật và quyền riêng tư trong mạng P2P vẫn là một thách thức lớn, đòi hỏi các cơ chế mã hóa và xác thực tinh vi hơn. Sự kết hợp giữa P2P với các công nghệ mới như Blockchain có thể tạo ra các hệ thống phân tán hoàn toàn phi tập trung và đáng tin cậy. Ngoài ra, việc xây dựng các framework và thư viện cấp cao để đơn giản hóa quá trình phát triển ứng dụng P2P lai cũng là một hướng đi quan trọng. Những nỗ lực này sẽ giúp công nghệ P2P trở nên dễ tiếp cận và được ứng dụng rộng rãi hơn, định hình lại cách chúng ta xây dựng các ứng dụng trên Internet trong tương lai.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI từ nội dung tài liệu gốc; tài liệu do người dùng đóng góp và được kiểm duyệt trước khi xuất bản. Báo lỗi nội dung.

11/09/2025
Luận văn giải pháp sử dụng p2p như công cụ truyền thông cho các ứng dụng client server

Trích đoạn nội dung tài liệu

BO GIAO DUC VA DAO TAO TRUONG BAI HOC BACH KHOA HA NO! LƯƠNG QUY THO GIẢI PHÁP SỬ DỤNG P2P NIIƯ CÔNG CỤ TRUYEN THONG CHO CÁC ỨNG DỰNG CLIENT-SERVER Chuyên ngành : Công nghệ thông tin TUẬN VĂN THẠC §Ĩ CÔNG NGHỆ THONG TIN NGƯỜI HƯỚNG DẪN KIIOA HỌC: PGS.TS IIA QUOC TRUNG Hà Nội — 2013 LOTCAM DOAN Tôi là Lương Quy Thọ, học viên cao học lớp 11BCNTT khóa 2011B do giảo viên hưởng din là PGS. 1a Quốc 'Irung hướng dẫn. 'Tôi xin cam đoan toàn bộ nội dung duợc trình bày trong bản luận văn “Giới pháp sử dụng P2P nh công cụ truyễn thông cha cde teng dung Client-Server" nay 1a két quả Lim hiểu và nghiên cứu của riêng lôi dưới sự hướng đẫn của PGS. Hà Quốc Trung, Các kết quả và dữ liệu dược nêu trong luận văn là hoàn toàn trung thực và rõ rang.

Moi théng tin trích đẫn đều được tuân theo luật sở hữu trí tuệ, liệt kê rõ rằng các tài liệu ưưn khảo. Tôi xin chịu hoán toàn lrách nhiệm với những nội địng được viết trong luận vẫn này, Hà nội, ngày 18 tháng 12 năm 2013. Hoc viên Tương Quy Thọ LOI CAM ON ‘T6i xin giti lai cam on sau sic t6i PGS.'T'S a Quéc 'Trung; người đã tận tỉnh hướng, dan dé 161 c6 thé hoan thanh luan van. Tôi cũng xin gửi lời cảm ơn chân thành tới quy thay o6 vign Cong nghệ thông tin và truyền thông, viện Dào tạo sau đại học đã truyền dạy những kiến thức quy bau trong khoá học này, “Tôi xm gửi lời cam ơn tới ban tổ chức hội nghị khoa học ACM-SolCT 2013 đã cho tôi cơ hội hoàn thiện hơn các nạ hiên cứu của mình.

Cuối cùng, tôi xin gửi lời cảm ơn tới gia đình, bạn bê, cơ quan công tác đã giúp đỡ trong quá trình thực hiện luận văn nảy Hà nội, ngày 18 thẳng 12 năm 2013. Luong Quy Tho bo dung cache cé thé không giất quyết được bài toán chia sẽ dữ liệu roaltine, khi có nhiều. client cing đăng ký nhận thẳng tỉn broadoast từ server Giải pháp khác có thể giải quyét bottleneck ở server là triển khai ứng dụng theo xnô hình Peor-to-peer (F2P). P2P là một mỏ hình triển khai ứng dụng phân tán, trong, đó mỗi node trong mạng (được gợi là “peer”) vừa đóng cá vai trả là nođe cung cấp lan nodc sử dụng địch vụ, khác với mô hình clent-server trang dé client chi sit dung dịch vụ cung cấp bởi server.

Việc mỗi node trong mô hình P2P vừa dóng vai trỏ lả node sử dung Hin cung cân dịch vụ dẫn đến các xử lý trên toàn bộ hệ thống được phan chia ra các nodc trong mạng do dỏ giải quyết vân để bottlencck của mô hình client-scrvcr, đặc biệt khi ứng dụng chia sẻ đữ liệu lớn, băng thông hệ thống được chia ra trên các máy, đâm bão khã năng mö rộng hệ thống với chi phí tối tru. ‘Tuy nhién mồ hình P2P cũng có yếu điểm đó lá: triển khai phức tạp hơn do các thao tác: tìm kiểm đữ liệu, lưu trữ phân tán đữ liệu trên các nođe và cáo cơ chế dam ‘bao đữ liệu sắm sàng kú có số lượng mode nhất. định rời khỏi hệ thống. Mặt khác mô tính P2P cũng khó khăn hơn trong việc bảo trí và năng cấp hệ thống so với ứng, dụng, client-server xử lý tập trung trên server.

Ngoài ra 1 điểm khác làm cho P2P không phải lựa chọn số 1 cho các ứng dụng phân tán là tính an toàn của đữ liệu được lưu trữ phân tan tại nhiều node. Mét sé ing dụng thậm chí không thể triển khai theo mô hình P2P do yêu cầu an toàn và lưu trữ tập trung dữ liệu: các ứng dụng có dữ liệu nhạy cứm: ứng dung ngan hang core-banking, img dung chimg khoán, ứng dụng mail. Qua các tìm hiểu ta có thể trên rút ra: « Ứng dụng dựa trên mô binh Client-Server dé phát triển nhưng gặp server batileneck va giới hạn bắng thông © Ứng đụng đựa trên mẻ hình P2P làm hệ thống có tính co dan cao nhìmg khó trién khai do: lookup service, protocol pluie tap,co ché phan tan dit liéu trên các nods và đăm báo tính dữ liệu sẵn sảng cao phức †ạp. DANH MUC HiNH VE, DO THI Hinh 2.1: Mé hinh Client-Server.2: Trao đối dữ liệu giữa Client va Server trang chế độ bị phong tỏa Hình 2.3: Năng lực xử lý của Nginx sơ với Apache web server.4: So sánh khả nẵng quán lý hộ nhớ giữa Nginx va Apache web server .5: Cơ chế hoạt động của blocking-server.6: cơ chế hoạt động của non-blocking server [ref|.7: Phân loại clieni Hình 2.8: Phan loai Client-Server theo kiển trúc logic.9: Kiến trúc Client-Server 2 tầng Hình 2.10: Kiến trúc Client-Server3 tang.11: Kiến trúc Client-Server n tầng.12: Mạng phi cấu trúc.13: Mô hình mạng có cấu trúc Hình 2.14: Cơ chế của bằng bẩm phân tán DHT Hình 2.15: Mỏ hình ứng dụng Spotify.16: Mô hình mạng Napster.17: Mô hình mạng Gnutella.18: Kiến trúc JXTA Hình 2.19: Kiển trúc WebRTC, Hinh 3.1: Caching model Hình 3.2: Cơ chế hoạt đồng mô hình Caching model.3: Mô hình Local-Proxy Hình 3.4: Shared-caching Model Hình 3.5: Cơ chế hoạt động mô hình Shared-caching model Hình 4.1: Mô hình hoạt động ứng dụng Quicknade.2: Cac module trong ứng dụng Quicknade Hình 4.3: Tốc đô download P2P và Client-Server.4: Đồ thị thời gian và tốc độ download file (kích thước 48,11MB} w MỤC LỤC LỠI CAM BOAN.

LOI CAM ON. MỤC LỤC DANH MỤC HÌNH VẼ, ĐỒ THỊ. CHUONG |; TONG QUAN CHƯƠNG II: CƠ SỞ LÝ THUYẾT. Méhinh Client-Server.

Phân loại server. Tu điểm và nhược điểm cra ma hinh client-server. Binh tuyén va dé tim tai nguyén 2. Phần laại mang P2P.

Ứng dụng của P2P trong thực 2-1. 232 Quá trình tiền đạn sạch. _ Quảnlý trang trước kỷ bạn.34, Thuậttoán đánh đấu 2. Thuật toán thay thế trang.

Công nghệ triển khai ứng thmg P2P. CHƯƠNG lIl: MÔ HÌNH CHIA SẺ CACHE SỬ DỤNG P2P. MỤC LỤC LỠI CAM BOAN. LOI CAM ON.

MỤC LỤC DANH MỤC HÌNH VẼ, ĐỒ THỊ. CHUONG |; TONG QUAN CHƯƠNG II: CƠ SỞ LÝ THUYẾT. Méhinh Client-Server. Phân loại server.

Tu điểm và nhược điểm cra ma hinh client-server. Binh tuyén va dé tim tai nguyén 2. Phần laại mang P2P. Ứng dụng của P2P trong thực 2-1.

232 Quá trình tiền đạn sạch. _ Quảnlý trang trước kỷ bạn.34, Thuậttoán đánh đấu 2. Thuật toán thay thế trang. Công nghệ triển khai ứng thmg P2P.

CHƯƠNG lIl: MÔ HÌNH CHIA SẺ CACHE SỬ DỤNG P2P. « Ứng dựng sau khi được phân tích nghiệp vụ sẽ thiết kể duge protocol chuẩn giao liếp giữa cHenL và sơrver «Tuân theo protocol, ứng dụng client và server có thế phát triển độc lặp, và có thể sử dung các công nghệ khác nhau với rất nhiều tủy chọn linh hoạt (server: Java, Python, Ruby; client: Java Swing, C# Winform, IITMLS, Mobile). Các ling dung cliont-server duge phat tridn déc lap cing dim bao khé ning dé nang cấp, báo trí. «_ Ứng dụng client-server còn dễ dàng phát triển ở chổ: có rất nhiều tủy chọn giao thức kết nổi giữa elient-server và các tùy chọn nay déu hỗ trợ mặc định trong các ngôn ngữ phái triển.

Các giao thức phố biển có thế kế đến như: TCP/TP, UDP, HTTP. «_ Việc triển khai ứng đụng cũng dễ dàng: cải dặt server trên máy chủ vật lý. Các img dung client được phản phối qua mạng và được người đúng cải đặt vào máy của minh. Cac céng nghé: web application, Java Webstart, NET Oneclick cho phép ủng dụng tự động nâng cấp khi có thay đổi trên server.

Tiên cạnh các ưn điểm của mỏ hình client-server, các đặc điểm của mô hình nảy cũng lạo ra các yéu didi dé 1a server bottleneck. Server bottleneck gó thế xử lý bằng các giải phảp scale-up ung dung như: nàng cấp server, sử dụng load balancing! dé phân tải ra nhiều máy chủ vật lý. Tuy nhiên các giải pháp trên thường có chỉ phí rất cao. Với các ứng dụng chủa số giao tiếp thời gian thực (Audio, Video) hay các ứng dụng chia sẻ ñle cũng cần server có băng thông rất lớn.

Bén cạnh giải pháp seale-ap hệ thống, giải pháp sử dụng cache tại clenL là giải pháp thường sử dụng nhất. Lữ liệu dược chuyển qua client sẽ dược cache lại phục vụ. cho lần sử đụng tiếp theo, một cơ chế cache hiệu quả có thê cải thiện đáng kế hiệu năng truy cập service ti server. Các thuật toán cache được gọi là: “page replacement algorithm’), ‘ruy nhién néu cache miss xay ra, client van phai lién lac véi server dé lây dữ liệu.

Như vậy tính co giãn của hệ thống vẫn không được đăm bảo. Ngoài ra sử « Ứng dựng sau khi được phân tích nghiệp vụ sẽ thiết kể duge protocol chuẩn giao liếp giữa cHenL và sơrver «Tuân theo protocol, ứng dụng client và server có thế phát triển độc lặp, và có thể sử dung các công nghệ khác nhau với rất nhiều tủy chọn linh hoạt (server: Java, Python, Ruby; client: Java Swing, C# Winform, IITMLS, Mobile). Các ling dung cliont-server duge phat tridn déc lap cing dim bao khé ning dé nang cấp, báo trí. «_ Ứng dụng client-server còn dễ dàng phát triển ở chổ: có rất nhiều tủy chọn giao thức kết nổi giữa elient-server và các tùy chọn nay déu hỗ trợ mặc định trong các ngôn ngữ phái triển.

Các giao thức phố biển có thế kế đến như: TCP/TP, UDP, HTTP. «_ Việc triển khai ứng đụng cũng dễ dàng: cải dặt server trên máy chủ vật lý. Các img dung client được phản phối qua mạng và được người đúng cải đặt vào máy của minh. Cac céng nghé: web application, Java Webstart, NET Oneclick cho phép ủng dụng tự động nâng cấp khi có thay đổi trên server.

Tiên cạnh các ưn điểm của mỏ hình client-server, các đặc điểm của mô hình nảy cũng lạo ra các yéu didi dé 1a server bottleneck. Server bottleneck gó thế xử lý bằng các giải phảp scale-up ung dung như: nàng cấp server, sử dụng load balancing! dé phân tải ra nhiều máy chủ vật lý. Tuy nhiên các giải pháp trên thường có chỉ phí rất cao. Với các ứng dụng chủa số giao tiếp thời gian thực (Audio, Video) hay các ứng dụng chia sẻ ñle cũng cần server có băng thông rất lớn.

Bén cạnh giải pháp seale-ap hệ thống, giải pháp sử dụng cache tại clenL là giải pháp thường sử dụng nhất. Lữ liệu dược chuyển qua client sẽ dược cache lại phục vụ. cho lần sử đụng tiếp theo, một cơ chế cache hiệu quả có thê cải thiện đáng kế hiệu năng truy cập service ti server. Các thuật toán cache được gọi là: “page replacement algorithm’), ‘ruy nhién néu cache miss xay ra, client van phai lién lac véi server dé lây dữ liệu.

Như vậy tính co giãn của hệ thống vẫn không được đăm bảo. Ngoài ra sử DANH MUC HiNH VE, DO THI Hinh 2.1: Mé hinh Client-Server.2: Trao đối dữ liệu giữa Client va Server trang chế độ bị phong tỏa Hình 2.3: Năng lực xử lý của Nginx sơ với Apache web server.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ