Một client không, chia sẽ bắt cứ tải nguyên nảo với các client khảc ngoại trừ việc giửi truy vẫn tới các địch vụ của máy server Mé hinh client-server duge phát triển bởi Xerox PARC vào
Trang 1
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
Trang 2LOTCAM 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.TS 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.TS 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ọ
Trang 4MỤ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
Trang 6DANH MUC HiNH VE, DO THI Hinh 2.1: Mé hinh Client-Server enceetcsi
Hình 2.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
Hình 2.4: So sánh khả nẵng quán lý hộ nhớ giữa Nginx va Apache web server
Hình 2.5: Cơ chế hoạt động của blocking-server
Hình 3.6: cơ chế hoạt động của non-blocking server [ref|
Hình 2.7: Phân loại clieni
Hình 2.8: Phan loai Client-Server theo kiển trúc logic
Hinh 3.1: Caching model
Hình 3.2: Cơ chế hoạt đồng mô hình Caching model
Hình 3.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
Hình 4.2: Cac module trong ứng dụng Quicknade
Hình 4.3: Tốc đô download P2P và Client-Server
Hình 4.4: Đồ thị thời gian và tốc độ download file (kích thước 48,11MB}
Trang 7
CHƯƠNG T: TONG QUAN
Mô hình chent-server là mô bình triển khai ứng dụng phân tán phổ biến hiện nay bởi khá năng piuát triển và triển khai ứng dụng, dễ đảng, Trong mô hình náy, thành phần cưng cấp các dịch vụ hay lài nguyên được gọi là server, thành phan gọi các service
được cung cấp bởi server gọi lả clent Thông thường các chent và server dược dặt trên
các máy vật lý khác nhau và giao tiếp với nhau thông qua hệ thông mạng Một máy server chạy một hoặc nhiều ứng đụng server, các tmạ dụng server chia sê tài nguyên với các chent Một client không, chia sẽ bắt cứ tải nguyên nảo với các client khảc ngoại
trừ việc giửi truy vẫn tới các địch vụ của máy server
Mé hinh client-server duge phát triển bởi Xerox PARC vào năm 1970, Các ứng
il, WWW là các ví dụ điển hình cửa mô hình chient-server Đặc điểm nói bật
dung Bir
của kiên trúc client-servor gồm:
œ Quản lý tập trung: đữ liệu dược lưu trữ tập trung trẻn server thay vi nằm rải
rác trên nhiêu máy, giúp đơn giân hóa việc truy xuất và cập nhật đữ liệu
© Dé bao tri: nho khả năng quản lý tập trung mà cảng việc bảo trì cũng trở nên
dễ dàng hơn vì phần lớn việc bão trì chỉ ämn thực hiện trên server Trong
trường hợp hệ thông có nhiều server với thiết bị dự phỏng, quá trình bảo trì (như sửa chữa, thay thê server) có thể điễn ra hoàn toàn trong suốt với client
ø _ lão mật: dữ liệu tập trung trên server đồng nghĩa với việc kiểm soát dễ dang
và an toàn hơn
Các ưu điểm trên khiến ứng, dụng phát triển theo mỏ hình Client-Server trở nên dé
dảng và linh hoạt
Trang 8UDP, 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ử
Trang 9dung 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.
Trang 10TÔ tải lôi chợn nghiên cứu trong luậu văn là “Giải pháp sử dụng P3P như công cụ truyền thông cho các ímg dụng Client-Server” Mô hình được tôi nghiên cứu trong luận
văn sử dụng mô hình P2P két hop vai Client-Server va Cache dé scale-out hé théng, giải quyết bottleneck của server cũng như sự phúc tạp trong triển khai ủng dung P2P đồng thời vẫn tân dụng được tính đơn giản của mô hình Client-Server và khả năng co giãn cao của hệ thống đựa trên P2P Ngoài ra hướng tiếp cận để xuất trong hiận văn của tôi hưởng tới việc nâng cấp ứng dung Client-Server co sin dé sit dung thêm kết nỗi
POP va Cache
Trong phan thé nghiém, tôi tiến hành áp dụng mô hình đẻ xuất vào ứng dụng chia
sẻ file để đưa ra các số liệu về hiệu năng của mỏ hình cũng như khả năng ửng dụng ruô hình vào các hệ thẳng sử dụng mô hình Client-Server đã có
Trang 11CHƯƠNG II: CO SO LY THUYET
Trong phản nảy tôi trình bảy về cơ sở lý thuyết liên quan dén mé hinh Client-
Server, mô hình P2P, thuật toán thay thẻ trang (page replacement algorithm!*)) str dung trong quản lý cache và các công nghệ sử dụng trong triển khai ứng dụng P2P
Dựa trên cơ sở lý thuyết nảy, tôi sẽ đẻ xuất mô hình lý thuyết và ứng dụng thí
nghiệm được trình bảy trong các phân sau của luận văn
2.1 M6 hinh Client-Server
Trong khoa học máy tính, mô hình Client-Server là một mô hình ứng dụng phân tán
mã các địch vụ được xử lý và cung cấp bởi ứng dụng gọi là server; các ứng dụng gửi
yêu cau cung cap dich vu tdi server goi la client Thong thường client và server giao
tiếp với nhau thông qua hệ thông mạng máy tỉnh trên các máy vật lý khác nhau, tuy
nhién ca client va server van co kha ning chay trên củng một máy vật lý Một server
vật lý có thẻ chạy một hoặc nhiều ứng dụng server vả chia sẻ tải nguyên với các client
Một client không chia sẽ bắt cứ tài nguyên nào của nó ngoại trừ thông qua việc gửi dữ
liệu yêu câu cung cấp dịch vụ tới server Do đó, client là ứng dụng khởi tạo phiên kết
nổi tới server và server là ứng dụng luôn thực hiện chờ kết nồi từ client
©
Hình 2.1: Mõ hình Client-Server
Trang 12M6 hinh Client-Server dude phat triểu bởi Xerox PARC vao những rửm 1970 Hiện
tại mô hình rất phố biển trang các ứng dung mang Email, WWW 1a cac img đụng điển
tình của mô hình này
Client-Server mé t4 mdi quan hệ cộng tác giữa nhiều ứng dụng trong một hệ thông
Thành phẩn server cùng cấp dịch vụ cho một hoặc nhiều client khi nhậm dược yêu cầu
'Trong mô hình nảy, mỗi máy tỉnh rong mạng, giữ một trong hai vai trỏ: chent hoặc
server Server là máy tính chia sẽ có chọn lọc tải nguyên mà nó quản lý; elient là một
may tinh he
chương trình khỏi tạo liên lạc với server dễ sử dụng các tải nguyên mà
server cưng cấp Dữ liệu, CPU, máy in, thiết bị luu trữ đữ liệu là một vài trong sỏ các
tai nguyén ma mt server thường cưng câp
Chia sé thi nguyén méy tinh trong mé hinh Client-Server cdn goi IA time-sharing bởi nó cho phép nhiều ứng dụng sử dụng cùng lãi nguyên được clna sẽ lại cửng một
thời điểm
Một máy tính cho dù là client hay server hay cả 2, nó dễu cỏ thẻ thục hiện nhiều
chức năng như: chạy ửng dụng máy chủ web, file server cùng lúc để cung cấp các loại
đữ liệu khác nhau cho từng yêu câu khác nhau từ client Ứng đựng client cũng có thế
giao liếp với ứng dựng server trên dùng một máy vật lý Giao tiếp giữa 2 ứng dụng máy chủ, chăng hạn như thục hiện đồng bộ hóa đứt liệu, gọi là giao tiếp server-tc-server
Client va Server trao dỗi thông diệp theo cơ chế requssi-response: client gửi yêu câu; server nhận và trả về kết quả Đề thực hiện giao tiếp giữa các máy tính, trước tiên chúng cần phải sở dụng cùng một ngôn ngữ, tuân theo một quy lắc giao tiếp đã định
sẵn Ngôn ngữ và quy tắc giao tiếp gọi chung lả giao thức giao tiếp Lắt cũ các giao
thức Client-Server được xử lý ở tâng ứng đụng (applieation layer)
11
Trang 13
Hình 2.2: Trao doi dit lidu gitta Client va Server trong ché dé bi phong téa
Qué trinh trac déi théng diép pitta client va server có thê diễn ra theo hai chế độ: bi
phong tóa (blocking) va khéng bj phong téa (non-blocking)
a Ché dé bị phong tồa
Trong chế độ bị phong tỏa, khi tiên trình client hoặc server phát ra lệnh gửi dữ
liệu, việc thực thí của liễn trình sẽ tạm ngừng cho tới khi tiên trình nhận phát ra
lệnh nhận đữ liệu Tương tự với tiền trình nhận đữ liệu, nêu tiên trình nảo đó (client hoặc server) phát ra lệnh nhận dữ liệu mà tại thời điểm đó chưa có đữ liệu gửi tới thì việc thực thị của tiến trình cũng sẽ bị tạm ngừng chơ tới khi cỏ
dữ liệu gửi tới
b Chế độ không bị phong téa
Trong chế độ này, khi tiền trinh client hay server phát ra lệnh gửi đử liệu, việc
thực tị của liền Irình vẫn được tiến hành mã không quan tâm đến việc có tiến
trình nào phát ra lệnh nhận và phán hỏi đữ liệu đỏ hay không, Tương tự cho
trường hợp nhận đữ liệu, khi tiền trinh phátra lệnh nhận dữ liệu, nó sẽ nhận đít liệu hiện có, việc thực thị của tiền trình vẫn được tiên hành mả không quan tim
đến việc có tiến trinh nào phát ra lệnh gửi đổ liệu tiếp hay không,
Rất nhiều nên tăng cho phép phát triển các ừng, dụng, client-server sử dựng request-
response theo chế độ: bị phong tỏa Các công nghệ có thể kế đến như Java Socket,
12
Trang 14NET Socket, PHP Phat trién tmg dung 6 ché dé nay dé dang cho người phát triên do:
thue hién request tai mét noi và chờ nhận được kết quả (hoặc exception néu timeout) ngay tại đó Tuy nhiên yêu điểm của chế độ nảy là việc các thread bi block cho téi khi
có kết quả của thao tác (hoặc exception) do đó khi hoạt đông hệ thông có thể tồn tại rắt
nhiều thread chờ dẫn tới làm chậm ứửng dụng (đặc biệt là ứng dụng server) Đề khắc
phục yếu điểm của chế độ này, các nên tảng như: Java, /NET đưa ra các cài đặt hiệu
quả cho phép sử dụng đồng thời các cơ chẻ sau đề cải thiện hiệu năng hệ thông:
© Tap cac thread gọi là ThreadPool để kiểm tra dữ liệu (đã nhận, đã gửi hoặc đã
có kết quả chưa)
© Co che wait/ notify sé dong bang thread khi can phai ché dit ligu va kich hoạt
thưead trở lại khi dữ liệu đã săn sảng Việc kích hoạt được thực hiện bởi các
thread trong ThreadPool
Các cơ chế trên cải thiện rất nhiều hiệu năng hệ thông, tuy nhiên đề hiệu năng đạt
tới cấp độ cao hơn, Non-bloek thường được sử dụng
Các nên tảng cho phép phát triển ứng dụng Non-blocking như: NET asynchronous
IO, Java Vertx và Nodejsfl Bên cạnh đó 1 số server cũng được phát triển theo hướng,
tiếp cận nảy, điện hình lả Nginx Hình vẽ sau so sánh khả năng đáp ứng vả quản lý bộ
nhớ của web server Nginx và Apache (blocking-server):
Trang 15Hình 2.4: So sánh khả năng quản lý bộ nhớ giữa Nginx và Apache web server
Khác biệt vẻ cơ chế hoạt động giữa server blocking va non-blocking cé thé thay qua
hình vẽ sau:
Thread}
Thread 2 Roquest
Threaded server Thread 3
Athraad Attead Thread 4 the request ‘Thread S
Hình 2.5: Cơ chế hoạt động của blocking-server
Blocking server thưởng sử dụng 1 thread đề xử lý 1 request, do đó đẻ phục vụ hàng, nghin request tai một thời điểm, cản có hang nghìn thread tương ứng Mặt khác tải
nguyên sử dụng để tạo vả duy trì 1 thread không nhỏ nên blocking server có hiệu năng,
sử dụng tải nguyên thấp hơn
Xử lý request trong non-blocking server không ánh xạ 1-1 với thread Thay vào đó
server non-blocking sử dụng vòng lặp IO (input-output) và cơ chế event-driven đề xử
ly request Khi cé request, event driven server phat ra sự kiện va dua vao IO Loop, IO
14
Trang 16Toop sit dung 1 thread duy ubAt trên méi core CPU để lặp qua và xử lý tất cã các sự
kiện được đua đến cho tới khi xử lý xeng và loại bả sự kiện ra khỏi vòng lặp
Request
Event driven sever
handiss the wrt ont
Tha 10 loops evant
diven
Hình 2.6: co ché hoat doug ela non-blocking server [ref]
Đặc điểm của server triển khai theo cơ chế này:
« Server không phải tạo và quân lý nhiều thread Khong phai lo ti threadsafe hoặc deadleck như blocking server nên hiệu năng hệ thống cao hơn
® Ứng dụng khó phát triển hơn do tỉnh bat déng bộ: gửi yêu cầu tại 1 nơi, nhận kết
quả tại một nơi khác
2.1.1 Phân loại server
Server được chia làm 2 loại như sau:
a Interactive server server phục vụ cdc client mét cach tuần tự, sau khi phục vụ client nay xơng, sẽ phục vụ cho các yêu câu của cñent khác Quá tình phục vụ
Trang 17b Coneunrcnl server: server có thế phục vụ cho niiéu chent, tai mét thon di¢m Qua
trình phục vụ theo vòng lặp như sau
Chờ đợi yêu câu từ chen => Khởi tạo một tiễn trình để xứ lý yêu cầu của cliert
> Quay Iai bude 1
Để sử đụng concurrent server 6 thé ding mét trang 2 cach sau:
Mỗi triển trình phục vụ riéng 1 client
Sử dụng 'TlveadPool: tạo ra một tập các triển trinh để cỏ thẻ xứ lý cac yêu cau
của client
2.2.2 Phan loaiclient
Dựa tiên các chức năng vả khỏi lượng công việc mà chent thực hién, client ¢4 thé
được phân thành hai loại:
a at client: là cào client có đủ sửe mạnh và hoạt động hạn chế sự phụ thuộc vảo
cac server
Fat chent (hay com goi 14 heavy, rich bode thick client) là một máy vật lý
trong mé hinh client-server hoặc trong hệ thống mạng, cưng cấp nhiều xử lý độc
lập với máy chủ trung tảm
So voi Thin client, Fal chent van yêu cầu một kết nổi thường xuyên lới máy
clrú trung tâm (hoặc kết nối vào 1 mạng), nhưng thưởng nó được đặc trưng bởi khả năng thực hiện nhiều tính toàn mà không cẩn kết nội tới server Tương phân với thin client luôn tránh các xử lý nhiều nhất có thẻ vả gửi yêu câu xử lý tới server mỗi lần đữ liệu được nhập và cân xử lý hoặc validate
Thin client: là các clienL rất hạn chế chức nồng và phụ thuộc nhiễu vào server
‘Yhin chent (hay còn gọi là lean client hoặc slim clienQ là một máy vật lý hoặc
một chương trình cỏ hoạt động phụ thuộc rất nhiều vào các máy tỉnh hoặc
chương trình khác (server) Khác với các TaL clenL được thiết kế đề thực hiện
công việc tương đối độc lập với server (các yêu câu xử lý ở server ít và thường,
16
Trang 18khong phic tap) 6 thin chenL server cung cấp địch vu cho client tir luu trữ đữ
liệu tới xử lý đữ liệu client gũi lên
Thịn clienL lá một thành phần của mdi ha tang ứng dụng lớn, trong đó vất
nhiều elient chia sẽ thực hiện yêu câu tính toán tối củng mét server Do đó, nhìn theo kiến trúc hướng dich vu (Service Oriented Architecture-SOA) thin
clienl cũng có thể được xem nhủ là hệ thống cúng cấp các dịch vụ xử lý nghiệp
vụ thông qua cac giao diện người đủng má nó cung cấp
Tiện toán sử đụng thin-client cũng làm giảm đáng kế chỉ phí phần cứng và
bản quyền phản mềm cho toản bộ hệ thông, khi các máy clicnt cần chạy câu hình thấp với các phần mẻm rất cơ bán (hệ điều hành nguồn mớ, trình đuyệt, các
phần mềm hỗ trợ khác)
Hau hét các hệ thống sử dụng thin-client la cac may cé ning lực tỉnh toán
thấp và chỉ cung cắp giao điện đồ họa cho người sử đụng, ngoài ra các xử lý khác được cung cấp bởi server
rat (| thin thin { Fat
Le L
Functionality & Functionality &
brovessing had processing load
Hình 2.7: Phân loại chent
Kin tric client-server
V6 mặt logic, một ứng dung client-server thuéng được chia thành 3 tẳng:
œ- Tầng trình điển: chị trách nhiệm bién thi cac thang tin va Luong tác với người đúng, Tầng trình diễn năm ở Client,
Trang 19* Tang nghiép vu: xtt ly cac yéu cu nghiép vu va phdi hop ung dung ‘Tang này
thường nằm ở server với các ứng dung sir dung thin-clicnt Voi các ứng dụng sử
dụng fat-client, ting nay có thể nằm ở cá client và server
© Tang co s6 dit ligu: quan ly dit ligu eda chuong wink Tang nay nin 6 server
Taln client Thin cleat Cllent Fat client Fat client
Pragantation Preenia ion Presentation Presentation Presentation
1Hình 2.8: Phân loại Client-Server theo kién tric logic Tuy nhiên tủy thuộc vào mức độ phức tạp và cách thiết kể, ứng đụng client server
có thể là ứng dụng: 2-tằng, 3 mg hoặc m-iẳng
a Client-server 2 tang
Tiến trúc client server don giãn nhất là kiến trúc Hai lẳng Một ứng dụng hai tầng, cung cấp nhiều trạm làm việc với một tầng trình diễn thống, nhất, tầng, nảy
truyền tin với tảng hưu trữ đữ liệu tập trung Tâng trình diễn thông thường là
client, và tầng lưu trữ dữ liệu là server
Trang 20Hầu hết các ứng dung Internet nhu la email, telnet, ftp tham chi la ca Web la
các ứng dung hai tang
Trong ứng dụng hai tằng truyền thông, khối lượng công việc xử lý được
đảnh cho phía client trong khi server chỉ đơn giản đỏng vai trỏ như lả chương
trình kiểm soát luông vào ra giữa ứng dụng và dữ liệu Kết quả là không chỉ
hiệu năng của ứng dụng bị giảm đi do tài nguyên hạn chế của PC, mã khối
lượng dữ liệu truyền đi trên mạng cũng tăng theo, Khi toàn bộ ứng dụng được
xử lý trên một PC, ứng dụng bắt buộc phải yêu câu nhiêu dữ liệu trước khi đưa
ra bắt kỳ kết quả xử lý nảo cho người dùng Nhiều yêu cầu dữ liệu cũng làm
giảm hiệu năng của mạng Một van đề thường gặp khác đổi với ứng dụng hai tang la van dé bao tri Chi can mot thay doi nhé doi với ửng dụng cũng cân phải
thay đối lại toàn bộ ứng dung client va server
Ta có thẻ tránh được các vân để của kiên tric client server hai tang bang
cách mở rộng kiến trúc thành ba tầng Một kiến trúc ba tầng cỏ thêm một tầng,
mới tách biệt việc xử lý dữ liệu ở vị trí trung tâm.
Trang 21Tier 1 Tier2 Tier 3
Hinh 2.10: Kién tric Client-Server 3 tang
Theo kién tnic ba tang, một ứng dung duoc chia thanh ba tang tach biét nhau
ve mat logic Tang dau tién la tang trinh dién thường bao gồm các giao diện đỏ họa Tâng thứ hai, còn được gọi lả tầng trung gian hay tầng tác nghiệp Tầng thứ
ba chứa đữ liệu cần cho ứng dụng Tầng thứ ba về cơ bản là chương trình thực
hiện các lời gọi bàm để tìm kiếm dữ liệu cân thiết Tầng trình diễn nhận đữ liêu
và định dạng nó đề hiển thị Sự tách biệt giữa chức năng xử lý với giao diện đã
tạo nên sự linh hoạt cho việc thiết kế ứng dụng Nhiễu giao diện người dùng,
được xây dựng và triển khai mà không lâm thay đổi logic ứng dụng
'Tảng thứ ba chửa dữ liệu cân thiết cho ứng dụng Dữ liệu này có thể bao
gồm bất kỳ nguồn théng tin nao, bao gồm cơ sở dữ liệu như Oracale, SQI,
Server hoặc tải ligu XML
c Client-server n tang
Kien trie n-tang duoc chia thanh cac tang nhu sau:
© Tang giao diện người dùng: quản lý tương tác của người dùng với ứng dung
© Tang logic trình diễn: xác định cách thức hiển thị giao diện người dùng vả các yêu cau của người dùng được quản lý như thẻ nảo
Trang 22Tang logic téc nghiép: mé hinh héa các quy tắc tác nghiệp,
© Tang cac dich vụ hạ tầng: cung cấp một chức năng bỏ trợ cân thiết cho ứng, dụng như các thành phân (truyền thông điệp, hỗ trợ giao tác)
Tier 1 Tier 2 Tier 3 Tier 4
client / server client/ server client / server
interaction interaction interaction
Hình 2.11: Kién tric Client-Server n tang
Uu diém ctia m6 hinh 3 tang, n tang (nhieu tang) la:
«Tăng khả năng linh động, việc thay đồi các tầng logic là độc lập với
nhau
« Tăng tỉnh bảo mật
e Tăng hiệu năng khi các tác vụ được chia sẻ giữa các tầng
Nhược điểm của mô hình nhiều tầng là
e_ Tăng sự phức tạp trong triển khai và kiêm thử
«_ Tăng sự cản thiết của việc cân bằng tải vả chịu lỗi
2.2.4 Ưu điểm và nhược điểm của mô hình client-server
a Ưu điểm
Trang 23« lập trung: tài nguyên tập trung lảm cho né dé dàng hơn để sao lưu các tập tim, bão về chống lại các muối đo dọa độc hại và clua sẻ lài nguyên Irong một mô hình client-server, may in va cac 4 dia lưu trữ
có thế được chia sẻ Thay vì cài đặt một máy in cho mỗi máy tính, các
công ty có thể cải đặt máy m ở cáp độ may chủ, cho phép các may in được chia sẽ như một tải nguyên Diều nảy giúp tiết kiệm không chỉ là tiên, mà còn là không gian có giá trị Một không gian lưu trữ tập trung
Tam cho né
§ dang hom để sao lưu và lây các lập tin trong trường hợp
mắt đữ liệu Ngoài ra, máy chủ có thể quản lý chính sách mạng, làm
cho một mang cHem-server an toàn hơn,
«Tỉnh linh hoạt: một lợi thể quan trọng khác sinh ra trong quán lý tập trung là nó rất dé đàng đẻ triển khai cập nhật hoặc nâng cấp Một mrưạng clienl-server có thể tự động Iriển khai toản hệ thống thay doi
khác nhau, từ một nâng cấp lớn cho hệ điêu hành mới để cập nhật
thường xuyên ular các tập tin dữ liệu ching virus hole các bản vá lỗi
của Miierosoft với sự can thiệp của người dùng tỏi thiểu Nâng cấp và cập nhật cũng có thé lam việc trong nên mà không có người sử dụng biết rằng các chương trình dang được cập nhật hoặc nâng cấp
«_ Khả nắng mở rộng: trong một mô hình client-server, một quản trị viên
có thể để đàng kết hợp các máy tỉnh vào mạng và cải đặt Ất cả các ứng dụng cần thiết Tất cả mọi thứ cân thiết có thể được day dé dang
tử server đến các client
+ Nócóthể Ban tăng khả năng của máy nhồ, giúp các mấy nhỏ thực
hiện được những công việc mà trước đây chỉ thực hiện được trên các
máy lớn, từ đỏ dẫn tới giảm chỉ phí thiết bị
h Nhược điểm
22
Trang 24«+ Chỉ phí cho server lớn: thông thưởng, các máy chú trung tầm phái đủ
mạnh để duy tri và chúa sẽ tải nguyên với các máy linh khác trên
mang Điều nảy đòi hỏi một chỉ phi đảng kể
+ Sự phụ thuộc: mô hình mạng client-server dựa trêu chức nẵng và
server Néu server gap van dễ, toàn bỏ mạng không thẻ hoạt đông
+ _ Thắt cỗ chai: server phải xử lý phân lớn công việc điểu này có thể gây
Ta lắc nghữn mạng trên nung và làm chậm thời gián tả lời cho các
client + Bảo tr: mô hình Client Server thường đòi hỏi một đội ngũ nhân viên
với it nhất một quấn trị viên mạng lưới duy nhật để quản lý và duy trì
các thiết bị và mạng Trong mê bình khác, chẳng hạn như peer-to-
peer, không yêu cầu một quan oi dé duy trỉ mảy móc, công việc này được phân phối cho các peer
œ An toán: bởi vi tật cả các thông tin quan trong duoc lưu trữ trên server, điều nảy tạo ra một mỗi quan tâm an ninh Lập trung các thông tin và dữ liệu nảy phải được bão vệ từ tin tặc nguy hiểm, sự cổ, các mối de doa tiểm năng
2.2 M6 hinh peer-to-peer
Mạng ngang hàng là kiến trúc mang phi tập trung và phân tán trong đó các node
trong mạng (được gọi là peer) vừa đóng vai trỏ lả node cưng cập lẫn sử đụng tài
nguyễn, khác với mô hình tập trung của client-server trong do cde node client y@u cau
†ruy cập tải nguyên cưng cấp hỏi server trung tâm
Trong một hệ thống mạng ngang hàng, các tác vụ (như là: tìm kiếm file, streaming
video/ audio) được chia sẽ giữa các node được kết nối với nhau, mỗi peer đành một
phần tải nguyên của rninh (như năng lực xử lý, khả năng lưu trữ, băng thông mang) cho
các thành viền khác trong mạng mà không cần tới server trung tâm
23
Trang 25221 Mang P2P
Mạng P2P được thiết kế để đảm bảo vai trò của một nođe vừa là chen, vừa là
server dỗi với 1 node khác trong mạng Sắp xép mang trong P2P khác với clent-server
ở chỗ: mô hình client-server một giao tiếp thông thường đến và đi từ một server trưng tâm Ví dụ điển hình của ứng đụng truyền le theo mà hình client-server là sử dựng,
aiao thức FIP (Hile 1ransfer Protoeoll, trong đó ứng dụng elient vả server phản biệt nhau: client khởi tạo việc truyền file, server đáp fmg các yêu câu liên quan của client
Một cách tổng quát, mạng P2P chính là một dạng mạng phủ trên nền các cầu trúc
liên kết mạng vật lý, trong đỏ các node trong mạng phú tạo thành tập con của các node trong mạng vật lý Dữ liệu vẫn được trao đối thông qua mạng TCP/TP nằm đưới nhưng,
ở tăng ứng dụng, các pecr có thể giao tiếp trực tiếp với peer khác thông qua các hiên kết
logic mà mạng phủ cung cấp (mỗi liên kết trơng ứng với một đường đi trong mạng vật )
Mạng phủ sử dụng để đánh chỉ muục và đỏ tìm cae peer, va cing Jam cho hệ thống, P2P dộc lập với câu trúc liên kết mạng, vật lý Dựa vào cách thức liên kết các node vá cách đánh chỉ mục cững như bổ tri tài nguyên, mạng P2P được chia ra: mạng có cầu
trúc và phi cấu trúc (hoặc phiên bản Ìai giữa 2 loại này)
2.2.3 Phân loại mạngP2P
a Mạng phi cấu trúc
Trang 26@ =8
Hình 2.12: Mạng phi câu trúc Mạng P2P phi cấu trúc là mạng không bắt buộc các node trong mạng phủ
phải tuân theo một cầu trúc sắp xếp nảo mà chúng tạo bởi các node có kết nôi
ngau nhién v6i nhau (Gnutella, Gossip và Kazaa là những vi dụ của mạng P2P
phi cầu trúc)
Bởi vì không có cầu trúc mạng bắt buộc, mạng phi câu trúc để dàng khởi tạo
và cho phép tôi ưu hóa trong một tập các node nhất định (trong một tập các
node, hệ thông dựa vào thông số câu hình có thể đưa ra liên kết mạng có lợi nhất
trong trao đổi dữ liệu) Ngoài ra do các node trong mạng có vai trò ngang bang nhau nên hạn chế ảnh hưởng khi có lượng lớn các node vào và ra khỏi mạng
Tuy nhiên giới hạn chính của mạng phi câu trúc cũng xuất phát từ tính phi câu
trúc của nó Đặc biệt khi một peer muốn tìm kiếm một dữ liệu trong mạng, truy
vấn này sẽ làm lụt mạng vì phải gửi tới nhiêu nhát có thẻ các node Việc làm lụt
hệ thống sinh ra lượng lớn băng thông, CPU, memory (do yêu cau moi node
phải thực hiện tật cả các truy van tìm kiểm) Hơn thể nữa, với câu trúc mạng
như trên, việc làm lụt hệ thống cũng không đảm bảo dữ liệu tương ứng sẽ được
tim thấy Với các dữ liệu phố biến, được lưu trên nhiều peer việc tìm kiểm các
dữ liêu này bởi mọi nút trên mạng có tỉ lệ thành công cao và tương đương nhau
25
Trang 27Với các dữ liệu không phỏ biến được lưu trữ trên lượng nhỏ các peer, việc tìm
kiếm nó từ các peer khác nhau cỏ thẻ tốn chỉ phí rất khác nhau hoặc không
Hình 2.13: Mô hinh mạng có câu trúc
Trong mạng P2P cỏ câu trúc, mạng phủ được tổ chức thảnh một cầu trúc liên
ket xác định với giao thức đảm bảo bất kỳ node nảo có thê tìm được dữ liệu nó cân một cách hiệu quả cho dủ dữ liệu có thẻ không phải dữ liệu phô thông (rất ít
Trang 28Hầu hết các mạng P2P có câu trúc sử đụng cơ chế bảng bam phan tan
(DIT- đistributed hash table) để lưu trữ ánh xạ của định danh dữ liệu và định danh peer chứa đứ liệu đó Bảng băm lưu trữ các cặp (key, value) cho phép các
nodc tham gia có thẻ lấy dữ liệu (value) gắn với key chơ trước Có rất nhiều giải
thuật thực thi cơ chế mảng băm phân tán như: ChordÏ”l CAN, Tapestry
Tuy nhiên để việc tìm kiếm dữ liệu hiệu quả, các node trong mang 06 cầu
trúc phải lưu trữ được danh sách các node lân cận thỏa mãn các ràng buộc xác
định Diễu nảy đẫn tới các mạng có tần suất một node tham gia và ra khỏi hệ
thống lớn trở nẻn không hiệu quả do cân thời gian trễ dễ các nodc cập nhật lại
danh sách lân cận cúa xinh trước khi có thể thực hiện tìm kiểm dữ liệu Nhiều
đánh giả gần đây dựa trên các mạng thực tế chỉ ra rằng giải pháp sử dụng DHT
có một số vẫn đề như: (¡) chi phi cho quảng bá (thông bảo cho các peer biết về
tình trạng hiện tại của mình) vá tim kiếm tài nguyên trong mang, cao (ii) tai trên
ắc peer khong dân bằng,
Cae mang phân tàn sử dụng DHT có the ké dén nhu: BitTorrent, Kad
network, Storm botnet, YaCy, Coral Content Distribution Network Mét số đự
án nghiên cứu về DHT: Chord project, Kademlia, PAST storage ultility, P-Grid
và CoopNet content distribution system Trong lĩnh vực điện toán lưới DILT được sử dụng đề tim tải nguyên rất hiệu quả: giúp quản lý tài nguyên và lên kê
hoạch cho các ứng dụng
„Ö Mô hình lai
‘M6 hinh lai kết hợp giữa P2P va client-server Mé hinh lai phd bién sit dung một máy chủ trưng tâm giúp các peer tim kiếm các peer khác trong mạng Spotify la mét vi du vé mô hình này
Trang 29224 Ứng dung cla P2P trong thực tế
2241 Spotify
Spotify là một địch vụ âm nhạc trực tuyển sử đựng công nghệ P2P Dịch vụ nảy
hiện cung cắp 8 triệu bân nhạc cho phép người dùng tủy chọn phát bản nhạc mình thích
và chuyển tới nghe 1 doạn bất kỳ trong bản nhạc Dữ liệu được truyền từ cả server lẫn
mang P2P LIiện tại địch vụ có khoảng 7 triệu người dùng
với do we
Mới trong những điểm khác biệt của ứng đụng Spotify client là cho phép choi nhac
áp Độ trế trung bình đề bắt đầu chơi 1 bản nhạc khoảng 265m
a Givi thigu vé Spatify
Giao thức sử đụng trong Spotify la giao thực được thiết kẻ đặc biệt cho streaming file nhac Spotify phat trién client cho trên OSX, Windows cũng như
trên một sé nén tang smartphone Tuy nhién trén nén tang smartphone, client
không tham gia vao mang P2P ma.nhan diy ligu streaming truc tiop Lr server Ve giao điện người dùng, ứng dụng cũng tương tự như các trinh nghe nhạc phê biến khác trên đesktop Người đùng có thế tổ chức các bản nhạc thành playlisL và chia sẻ với mọi người Tổ chức tìm kiểm nhac dựa trên 2 khải niệm: tìm kiếm và duyét Người dùng có thể tim kiểm bản nhạc, albumn, tác giả và cũng có thể
duyệt qua các bân nhạc: khi click vào một tác giả, người dùng được đưa lới
trang thông tin của tác giá với các bải hát được hệ thống đẻ xuất
Audio stream duge ma hoa stt dung Oge Vorbis với chất lượng, mặc định ở
mức q5 (cô tổo độ phát khoảng, 160kbps) Người dùng trả phí có thế chơi nhạc ở xuức chỗt lượng g9 khoảng 320kbps) Cả 2 loại trên (q5 và q9) đến có thể cùng
cấp từ nguồn server hoặc mạng P2P, Tại các peer, dử liệu không dược mã hóa lại đa đó một peer có bản nhạc ở mức q9 không thế cung cấp cho một peer khảo dang cần bản nhạc Lương ửng ở mức q5
Trang 30Khi chơi nhạc, Spobfy clienL sẽ theơ đối bufTer của các Bm thanh Niều buiTer không được làm đây, client roi vào tỉnh trạng bị lặp (giật) khi phát nhạc đo dit
liệu không đủ đề lắp đây một khimg thời giam Tình Irạng lắp này xây ra có thể
do mạng hoặc do chent không đủ tải nguyên CPU/ memory dẻ xử lý hiệu quả dữ liệu cache
Khác với hau hết các ứng dựng streaming kháo, Spotify sử dụng TCP thay vì TTP giúp tăng cộ tin cậy của hệ thông va don giản hóa thiết kế Ngoài ra TỚP
có cơ chế gửi lại gói từa bị mất rất cân thiết cho các ứng đụng,
Kết nỗi giữa các node là kết nối TCP và trao đổi message trên kết nổi nảy là trao đối 2 chiều (multiplex) Khi một client đang online, nó duy trì một kết nói
server Cae me
Idi Spotily ge lang img dung duge buffer, sắp xếp theo thứ Lự
uu tién trude khi được gửi xuống buffer của TCP
Caching
Cache cực kỷ quan trong vi 2 ly do: đầu tiên từ thói quen cua người dùng có thế nghe cùng một bản nhạc nhiều lần do đỏ cache ngăn việo download lai ban nhạc người dùng vừa nghe 1hử 2, dữ hệu cache được dùng đễ cung cáp cho node khac trong mang Cache có thể lưu trừ tùng phần của một track do đỏ khi
chent chỉ dowrload 1 phần cửa track, phẫn dữ liệu đỏ cũng sẽ được cache lai Nội dung cache được mã hóa và không thể sứ dụng bởi chương trình chơi nhạc nào khác
Câu hình ruặc định của client cho phép sử đựng 10% đứng lương chưa sử
dụng của ỗ cứng và trong giới hạm: íL nhất SÓMB, nhiều nhất 10GB Người dùng cũng cỏ thẻ thay đổi cấu hình này Theo thống kê có 56% client ding hết từ
5GB cache trở lên, tương ứng với khoảng 1000 traok trên cache
Trang 31Lớp thuật toán dùng để quần lý cache trong Spatily 14 LRU (Least, Recently
Used) Thang kê đữ liệu log của hệ thống cũng chỉ ra rằng khi đữ liệu cache tương đối lớn, sử dụng các thiật toán cache khác nhau không làm tác động nhiều nhiều tới hiệu năng hệ thông
Truy cập ngẫu nhiên
rường hợp dơn giản nhất khi streaming là các track dược choi theo the tự định trước Giả sử băng thông mạng cha phép, ứng dung chai nhạc sẽ lấy trước một phần đữ liệu trước khi nó thực sự cần dùng tới Tuy nhiên thực tế thường, khó và thú vị hơn nhiều, đó là trường hợp track duoc truy cập ngẫu nhiền Khoảng 39% track trén Spotify được truy cập ngẫu nhiên Trữ trường hẹp client
có dit liGu trong cache, ngoài ra hệ thống thường mất khoảng 15 giây để cliem truy vấn server để tìm thấy đữ liệu
'Truy cập có thể đoán trước
1iâu hết (619) track được truy cập theo thử tự cỏ thể đoản trước Chẳng han người đùng thường nghe nhạc theo thứ tự tử 1 tới hết hoặc chọn Next để chuyến tới bải tiếp theo trong danh sách Chương trình client sẽ lẫy trước một phần bán
nhạc tiếp theo trước khi nó thực sự được chơi Việc lấy trước đữ liệu bản nhạc
cũng phải cân bằng giữa chỉ phí và lợi ich Nêu clienL bất đầu lẫy trước đữ liệu quá muộn dữ liệu sẽ không đú để phát bản nhạc ngay tức khắc Xẻu việc lẫy trước đữ liệu quá sớm, băng thông bị làng phí nêu người đùng chuyên sang truy cập ngẫu nhiên và bố qua bản nhưạc đã lây sẵn
Spotily client bat dau tìm kiểm trong mạng P2P traek tiếp theo khi track đang chơi còn ít hơn hoặc bằng 30 giây Khi track hiện tại còn ít hơn hoặc bằng,
10 giây, ná có thế bắt đâu đi lây track đó nếu cần thiết Cáo con số t=L0, 30 là
Trang 32Hệ thống cũng nghĩ nhận được: khi tỉnh năng lấy trước bản nhạc bị tắt bỏ độ
trể trung bình khi chơi một bản nhạc lả 390 ms so với mức trước đỏ là 265 ms
Hơn nữa số lần phát nhạc rơi vảo tình trạng lặp là 1,8% so với 1,0% so với trước
đỏ Điều đó chứng tỏ hiệu quả của việc lây trước dữ liệu
điều đó cẩn thiết đề tăng chất lượng phát nhạc hoặc giảm trể hệ thông Như mô
tả ở trên, khi một người dùng truy cập ngầu nhiên, một request lẫy đữ liệu được gửi tới server Client đưa ra quyết định lây dữ liệu tiếp theo ở đâu dựa trên khả
năng của buffer Giả sử kết nói tới server ôn định hơn kết nói tới các peer, nêu
dữ liêu trong buffer của client it, nó sẽ yêu cầu lây dữ liệu trục tiếp từ server Nếu buffer client đã đủ lớn đữ liệu sẽ chỉ lẫy từ cac peer
Trường hợp đặc biệt, khi buffer thap xuống mức nghiệm trọng (dưới 3 giây
phát nhac), client sẽ tạm dừng upload data tới các peer đang lấy dữ liệu của nó
31
Trang 33
Ly do 6 chỗ: rất nhiều người dùng có kết nội mạng bất đẳng bộ, tình huông xây
ra khi việc nén ACK làm giảm băng thông kênh download của đường truyền
bef]
Khi chen lây đữ hệu từ server, client sẽ điều tiết để không lây quá 15 giây phát trước tính từ thời điểm hiện tại, nếu tồn tại peer có chứa đỡ liệu track tương, ứng (sau đó nỏ sẽ tm cách lẫy đữ liệu từ peer đỏ thay vì lây tiếp từ server) Khi download tir mang P2P, việc điểu tiết không cân thiết, chen sẽ lấy Loàn bộ bản nhạc cần thiết Nếu người dùng dùng phát bản nhạc hiện tại, việc lây dữ liệc từ
peer hign tai bị hủy bỏ
File trong mang P2P duce chia thành các đoạn độ dài 16k Khi quyết định
được các pưer có dữ liệu cân, clienL sắp ›
p cdc peer theo thứ tự thời gian
download cần thiết (số lượng byte cén chia cho tốc độ download trung binh tir
peer này) sau đó thực hiện download lần lượt các đoạn và
ập nhật thời gián còn lại tương ứng với cắc pcer
Mạng P2P của Spolily six dung mang pli cau true, didu đó nghĩa là tắt cã các
peertham gia trong mang cỏ vai trỏ như nhau đo đỏ không cỏ một siêu node
thực hiện một vai trỏ đặc biệt trong mạng Một client chỉ kết nói tới ! peer khác khi chủng chắc đữ liều cẳn tìm tổn tại trên pcor đỏ Như dã nói ở trên, clicnt
cache lượng lớn đữ liệu Nội dung cúa eache chỉnh là dữ liệu mà client cỏ thể
sung cap cho cac peer khác Vị cáo traok có đụng lượng tương đổi nhỏ và không,
Trang 34hi tg live streaming, giao Ihde Spotify chi cho phép client cung cfp các track
mà nỏ đã oache được toàn bộ nội đung Diễu đỏ cho phép giao thức trở nên đơn giản Không có phương pháp tổng quát để định Luyến trong mạng phí cầu trúc,
vị thể các pecr muốn trao dỗi dữ liệu phải thực hiện kết nỗi trực tiếp
Chia tách mạng phủ
Dich vụ hiện tại được chạy từ 2 trung tàm đữ liệu, 1 ở London, 1 ở
Stockholm Một peer lựa chọn ngẫu nhiên một data center mả nó muốn kết nổi
tới Mỗi đưa center có một mạng phủ P2P độc lặp Do đó, mạng phủ P2P thực
chất được phân làm 2 mạng phủ Việc phân chia thực chất không được thực hiện
triệt 48 khi một client mất kết nói tới server, nó thục biện kết nói lại tới server mới Nếu nó thực hiện kết nối Lới server còn lại, client sẽ không thẻ thục hiện
tạo một kết nói mới tới một peer năm trang mạng phủ cũ được
Xác định peer
Llai co chế được sử dụng để xác định các peer có nội dung mã client cần Cơ ché dau tién sir dung tracker dit & back-end, va cơ chế thứ 2 sử dụng truy vẫn trong mạng phú 1rương hợp các traok nhỏ, client thường chỉ cân tìm va lay diz
liệu trong một hoặc một vai peer Tuy nhiên các track quá ngăn đẫn tới việc
download 1 tack moi xay ra thường xuyên và điền quan long lạ làm giảm quả tải hệ thông Lien thế nửa, thời gian tìm kiểm cũng là vin dé lớn, đây là lý do chính Spotify không sử đụng DHT để tìm kiếm peer Một lý do khác đẫn tới
không sử dụng DHT là mong muốn giữ giáo thức dơn giân
Chúc năng vita trackor trong Spolify và BitTorrent cũng tương dưỡng nhau
nhưng không hoàn toàn giếng nhau Spotify sử dụng một map lưu trữ ánh xạ
track va peer của các peer gân đây gửi thông báo nó có chứa 1 traokc Desr chỉ
cung cấp ra ngoài cáo traok chửa dây đủ đữ liệu, các peer dược liệt kẻ trong, tracker có track đây đủ
33
Trang 35Tracker chi lwa tit danh séch 20 peer gan nhau cho mỗi track Hơn thế nữa,
client chỉ được thêm vào tracker khi chúng phát một traok và không định kỳ báo cáo nội dụng cache hoặc thông báo cho tracker khi nội đang bị xốa bồ Điều đó
lam giảm tải hệ thông va don giản hóa cở chế hoạt dộng Vì client duy trì kết nỗi TCP tới server do đó tracker biết client nảo dang online Khi client yéu cau tim
kiểm peer có chứa dữ liệu của traok xác định, tracker đưa ra TÔ peer dang online
và chứa dữ liệ ới hạn kết quả lâm giãm quả tái hệ thông
'Thêm váo đó tìm kiểm sử dụng tracker, client cũng gửi yêu cầu tìm kiểm lên
mạng P2P tương tự như phương pháp của Gnutella Một olient gửi yêu câu tìm kiểm lới tắt cả node lên cận trong mạng phủ, các node này lại forward li vic node lân cận cửa nó Do đó tắt cả peer trong phạm vi có khoảng cách cập 2 của
node phát yêu câu search nhận được yêu cầu và trả lời Truy vân tìm kiếm được gửi bởi cHent có ¡d gắn kèm và các poer nhớ SỐ scarch gần nhất nó gặp cho phép
loại bỏ cáo message trùng lấp Giới hạn này chi tan tại ở lớp phủ mạng P2P của Spoufy
Khi client hoạt động, làm sao chúng có thể tạo kết nổi P2P trong mạng? Nếu một node vẫn được liệt kế trong danh sach của tracker với mét sé track ma nd
đang cache, rât có thể có nođe tạo kết nói tới nó đề lây vé wack Néu người đừng,
thất đầu sireaming 1 track nó sẽ tìm kiểm trong mạng P3P vả kết nổi tới peer có
dữ liệu
2.2.4.2 Napster
Napster la mang ngang hang khéng câu trúc đầu tiên thu hút được đông dio người
sử dụng trên mạng Đây là sự kết hợp của một mạng ngang hang peer to peer va một số
server ung tôm để duy trí kết nối hệ thống và danh sách dữ liệu được chia số trong, rạng Ngoài việc là một mang peer to peer, Napster cũng giống như một mạng với các
server Chính các server này làm cho việc tìm kiểm dữ liệu và chia sẽ giữa các máy
34
Trang 36tinh trong mang tot hon, tao nén m6 hinh mang peer to peer dau tiên được ưu chuộng
với các dịch vụ chia sẻ file dữ liệu, file nhac trên mạng Internet Napster gồm 2 thành
phân, thứ nhất là server trung tâm và thứ hai là các ứmg dụng trên các máy tính kết nối
với nhau Một máy tỉnh tham gia vảo mạng sẽ kết nồi với server trung tâm và đưa danh sách file chia sẽ trong máy tỉnh lên server nảy Những máy tính khi tìm kiểm dữ liêu sẽ
tìm kiếm thông tin về từ khỏa trên server trung tâm đề biết máy tỉnh nào hiện đang giữ
file chia sẻ đó
Hinh 2.16: Mé hinh mang Napster
Dé tim kiểm một ñle, một truy vẫn sẽ được gửi đi tới server trung tâm củng với từ khóa tìm kiểm Server trung tâm sẽ tìm trong danh sách các file chia sẻ được đưa lên bởi các máy tính và trả về địa chỉ IP của máy tính lưu giữ file chia sẽ này Sau đó sẽ là kết nói trực tiếp giữa máy tỉnh yêu cầu và máy tính giữ file chúa sẻ, dữ liêu được truyền
Trang 37giữa hai máy tính giống như trong một mạng ngàng hing Cụ thé các bước thực hiện
tim kiém và download 1 file như sau:
1 Mỡng đựng Napster
2 Napster kiém tra kél ndi Internet
3 Napster login vào server Mục định của server ở đây là để giữ đứ liệu chỉ mục
dữ liệu của tất cã người dùng dang online Server không chửa bất cứ file MP3
nao
4 Neudi ding search file
a Napster client truy vẫn server đề tim ra máy chữa file can tim
6, Server bao cho Napster client két qua tim kiếm
~ Napster client hién thi danh sách kết qua
& Người dùng chon I file d8 download
9 Napster kết nổi tới máy chứa file người đừng vừa chọn
10.Download file từ máy được chọn
11 Khi việc download ñile thành công, kết nổi P2P bị đông lại Việc download Ble kết thúc
2.2.4.3 Gnutella
Bén canh Napster, một mô hình mang ngang hàng không câu trúc khác cũng rất nỏi tidng la Gnutella Gnutella là một mạng peer to peer thuận và chủ yếu dựa trên mạng,
T2P không có câu trúe Một phiền bản thương mại của Gmutella là Limewire Cac may
tính rong Gnutella duge md ta nbu la nhiing “servent” (sorver-cHem), rhững thành
vién trong mang vA duoc chia sé file trong mang Cdc máy tính khác có thể lấy được
xhững file chia sé nay Viée Lim kiém file trên mạng mô tả trong dưới, khi một máy
36
Trang 38tinh A tìm kiếm file X, nó sẽ gửi một thông báo broadeast tới tất cả các máy tỉnh nỏ
biết, được coi là hàng xỏm của nó Truy vân sau đỏ sẽ được chuyên dần qua các bước
và tới được máy tính cỏ chứa file X Điểm khác biệt cơ bản giữa Gnutella va Napster la Napster van str dung hệ thông với một máy chủ trung tâm còn Gnutella là một mạng,
ngang hàng đây đủ
Hình 2.17: Mô hình mạng Gnutella Các bước một máy thực hiện tham gia vào mạng:
1 Một peer muốn tham gia vào mạng phải biết địa chỉ của một thành viên trong,
mạng
tỳ Peer gửi yêu câu kết nói tới máy nỏ biết: “GNUTELLA CONNECTION”
3 Nhận duoc reply “OK” Ket noi vao mang thanh cong
Các bước thực hiện download một file
1 Peer gửi QUERY đề tim file
Trang 39fe} Nếu QUERY tới được peer chira file cn fim, peer sẽ nhận được kết quả
QUBRYIIT
QUHRYHIT chứa 1P và port của peer chứa dữ liệu
Mớỡ kết nổi trục tiếp tới peer vừa tìm thấy
Download file qua kết nổi trực tiếp vá giao thie LLI'TP voi port Hy duge ở bước
3
38
Trang 402.2 Thuật toán thay thế trang
Trong hệ điều hành máy tỉnh, thuật toán sử dụng phân trang, để quản lý bộ nhớ áo,
thuật toán thay thẻ trang quyết định những trang được đưa ra khỏi cache khi memory cân được cấp phát mới T.oại bố trang xây ra khi page fault (khi đữ liệu uy xuất không
có trên bộ nhớ cache =3 cần phải đọc từ ô cứng chẳng hạn) xảy ra và các page trồng, còn lại không đáp ứng nhu câu cấp phát hoặc không cỏn page trồng hoặc số page trống,
nbd hon một ngưỡng định trước
Khi page đã dược chọn đẻ thay thể lại được tham chiều trở lại, đữ liệu page tương,
ng cân được đưa trở lại cache (đọc tử đĩa) việc này gây ra trễ lớn do phái chớ thao tác
dow/ghi hean thank, Chat luong thuật toán thấy thể quyết địh bởi: cảng ít thời gian chờ xử lý dưa một trang vào cache thuật toán cảng tốt, Thuật toán thay thế trang phụ quan tắm đến các thông tin giới bạn khi phân cứng thục hiện truy cập các trang và khả nắng đưa ra dễ xuất các trang bị thay thế dễ giảm thiéu page miss (page khong um thấy trong cache, page fault) trong khi cân bằng được chỉ phi ( ưu trữ trong main memory,
CPU) của thuật toán
Bài toán thay thể trang là bài toán online điễn hình (đữ liệu được đưa vào hệ thống liên tục và lừng phần),
Thuật toán thay thể trang là chủ để nóng và được bản luận rất nhiều trong những, 1m 1960, 1970 Và hấu như đã được định đoạt khi các thuật toán I.EU (feast recently
1used) phức tạp xuất hiện Đặc biệt, các khuynh hướng sau cia hardware va phin mém
Tuức tng dụng có ảnh hưởng tới hiệu năng của thuật toán:
«Kích cũ của bộ nhỏ tầng nhiều lan so voi khả năng xử lý Với một vải GB bộ
nhở cache thuật toán cân một chu kỳ kiểm tra các memory frame đang dẫn it
được sử dung
39