Khóa luận Nghiên cứu ảnh hưởng của hiện tượng “Tham gia mà không đóng góp” lên hệ thống chia sẻ file ngang hàng bittorrent

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Lê Quang Tun  
NGHIÊN CU NH HƯỞNG CA HIN TƯỢNG  
“THAM GIA MÀ KHÔNG ĐÓNG GÓP” LÊN HỆ  
THNG CHIA SFILE NGANG HÀNG  
BITTORRENT  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
HÀ NI - 2009  
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Lê Quang Tun  
NGHIÊN CU NH HƯỞNG CA HIN  
TƯỢNG “THAM GIA MÀ KHÔNG ĐÓNG GÓP”  
LÊN HTHNG CHIA SFILE NGANG HÀNG  
BITTORRENT  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
Cán bhướng dn: Tiến sNguyn Đại Thọ  
HÀ NI - 2009  
Li cm ơn  
Mở đầu cho khóa lun, em xin gi li cám ơn chân thành nht ti  
các thy cô giáo trong khoa Công nghthông tin, Trường đại hc  
Công Ngh, Đại hc Quc gia Hà ni đã tn tình dy dem trong 4  
năm hc va qua. Đặc bit, em xin chân thành cám ơn tiến sỹ  
Nguyn Đại Th, người đã hướng dn, chbo em trong quá trình  
thc hin khóa lun này.  
Mình cũng mun gi li cám ơn ti nhng người bn hc K50CB  
và K50MMT, nhng người đã cùng vi em chia snhng ngày tháng  
trên ghế ging đường đại hc, cùng chia snim vui cũng như giúp  
đỡ ln nhau trong quá trình hc tp ti trường.  
Cui cùng, vi tt clòng biết ơn, con mun nói li cám ơn cha  
m, nhng người đã luôn tin tưởng và động viên em, cho em chỗ  
da vng chc để vng tin hơn trong cuc sng.  
Tháng 5 năm 2009  
Lê Quang Tun  
Tóm tt  
Đề tài nghiên cu ca khóa lun tp trung vào vn đề “nghiên cu nh hưởng ca  
hin tượng “tham gia mà không đóng góp”(tiếng Anh: free-riding) đối vi hthng  
chia sfile ngang hàng BitTorrent”. Trước hết, khóa lun scung cp mt cái nhìn  
tng quan vhthng mng ngang hàng hin nay. Tiếp đó, chúng ta sẽ đi sâu vào  
nghiên cu hthng chia sfile ngang hàng BitTorrent (khái nim, cơ chế và hot  
động). và để làm rõ ni dung ca đề tài nghiên cu, Hthng BitTorrent sẽ được mô  
hình hóa bi các tham s, các nút tham gia trong mng được chia làm 3 loi đó là seed  
(nút chupload mà không download), free-rider (nút tham gia vào hthng chỉ  
download mà không đóng góp) và non free-rider (các nút bình thường, va tham gia  
download va tham gia upload), từ đó xem xét khnăng tbo vchng li free-  
riding trong cơ chế ca BitTorrent, và đề xut phương án ci thin. Trong phn sau ca  
khóa lun, tôi đã sdng chương trình mô phng OctoSim (mt chương trình mô  
phng hthng BitTorrent ca Microsoft Research) để thc hin các thnghim  
chng minh tính đúng đắn ca nhng nghiên cu.  
Mc lc  
Gii thiu chung .................................................................................................................................................... 1  
Chương 1. Tng quan vmng ngang hàng........................................................................................................ 3  
1.1. Khái nim vmng ngang hàng ....................................................................................................................... 3  
1.2. Phân loi mng ngang hàng............................................................................................................................. 3  
1.2.1. Mng ngang hàng thun túy và mng ngang hàng lai ghép ............................................................... 3  
1.2.2. Mng ngang hàng không có cu trúc và mng ngang hàng có cu trúc ............................................. 4  
1.3. Ưu thế và các vn đề cn xem xét trong mng ngang hàng ............................................................................. 5  
1.3.1. Các ưu thế ca mng ngang hàng....................................................................................................... 5  
1.3.2. Các vn đề cn xem xét trong mng ngang hàng ............................................................................... 5  
1.3.3. Tim năng phát trin ca mng ngang hàng....................................................................................... 6  
Chương 2. Mng chia sfile ngang hàng BitTorrent ......................................................................................... 7  
2.1. BitTorrent là ?............................................................................................................................................. 7  
2.2. Cơ chế và hot động ca BitTorrent ............................................................................................................... 8  
2.2.1. Quá trình chia sfile .......................................................................................................................... 8  
2.2.2. Sla chn các phn đơn v(Piece Selection) .................................................................................. 9  
2.2.3. Thut toán Choking.......................................................................................................................... 10  
2.3. Optimistic Unchoking và Free-Rider.............................................................................................................. 10  
2.4. So sánh BitTorrent và mt shthng chia sfile ngang hàng khác........................................................... 11  
Chương 3. Mô hình hóa và xem xét nh hưởng ca free-riding lên hthng chia sfile BitTorrent.......... 13  
3.1. Mt snghiên cu liên quan .......................................................................................................................... 13  
3.2. Mô hình và các tham s................................................................................................................................. 13  
3.3. Nghiên cu hthng trng thái n định (steady-state) .............................................................................. 16  
Chương 4. Chương trình mô phng OctoSim................................................................................................... 23  
4.1. Cài đặt và sdng chương trình................................................................................................................... 23  
4.1.1. Gii thiu, cách thc cài đặt và thiết lp môi trường để chy chương trình OctoSim...................... 23  
4.1.2. Đầu vào và đầu ra ca chương trình mô phng................................................................................ 24  
4.2. Cu trúc và chc năng ca chương trình mô phng ...................................................................................... 25  
4.2.1. File Main.cs:..................................................................................................................................... 25  
4.2.2. File WorkloadProcessor.cs:.............................................................................................................. 26  
4.2.3. File Sim.cs:....................................................................................................................................... 27  
4.2.4. File ProtocolMain.cs: ....................................................................................................................... 28  
4.2.5. File Node.cs: .................................................................................................................................... 29  
4.2.6. File SimParameters.cs...................................................................................................................... 30  
4.2.7. Các file khác..................................................................................................................................... 30  
Chương 5. Các thí nghim mô phng và đánh giá............................................................................................ 31  
5.1. Kết lun sau khi xem xét mô hình và đề xut phương án ci thin................................................................ 31  
5.1.1. Kết lun thu được tquá trình phân tích và tính toán ...................................................................... 31  
5.1.2. Đề xut phương án ci thin............................................................................................................. 31  
5.2. Tiến hành các thnghim .............................................................................................................................. 32  
5.2.1. Thnghim thnht........................................................................................................................ 32  
5.2.2. Thnghim thhai.......................................................................................................................... 34  
5.2.3. Thnghim thba........................................................................................................................... 36  
Chương 6. Kết lun và phương hướng tiếp theo............................................................................................... 37  
Tài liu tham kho............................................................................................................................................... 39  
Gii thiu chung  
Hin nay, máy tính đã trthành công ckhông ththiếu trong cuc sng ca mi  
con người. Máy tính đã htrrt đắc lc cho chúng ta trong công vic, hc tp cũng  
như gii trí hu như mi nơi, mi lúc. Và mt trong nhng lý do ln khiến cho máy  
tính có thlen li vào tng ngõ ngách ca cuc sng như vy chính là do có sxut  
hin ca mng Internet. Internet giúp chúng ta thu hp mi khong cách, mcánh ca  
bước vào kho tài nguyên tri thc vô tn ca nhân loi.  
Trong quá trình phát trin ca Internet, bên cnh nhng ng dng theo mô hình  
Client / Server truyn thng như WWW, email, FTP,… trong thi gian gn đây, đã  
xut hin các ng dng theo mô hình ngang hàng (Peer to Peer – P2P). Vi các ưu  
đim như tn ít chi phí xây dng cơ shtng, tn dng được tài nguyên ca các máy  
tham gia vào mng, gii quyết được vn đề đim chết trung tâm ca mô hình Client /  
Server truyn thng, các ng dng trên mng ngang hàng ngày càng được quan tâm  
phát trin nhiu hơn.  
Tsxut hin ca Napster vào năm 1999, có nhiu ng dng chia sfile ngang  
hàng được phát trin, ví dng như Gnutella, KaZaA và BitTorren. Nhưng trong đó  
BitTorrent có slượng người dùng ln nht và đã trthành gii pháp chính cho vic  
chia sfile ngang hàng. Trong mt nghiên cu đã cho thy rng, các tài khon sdng  
BitTorrent chiếm ti 35% lưu lượng trung chuyn trên mng Internet, đó là 1 con số  
ln, hơn tt ccác hthng chia sfile khác gp li.  
Sphát trin mnh mca BitTorrent trong thi gian va qua cho thy shiu  
qun định trong cơ chế và giao thc ca nó. Tuy nhiên, cũng như hu hết các hệ  
thng hot động trên mô hình mng ngang hàng, hot động ca BitTorrent cũng da  
trên stnguyn đóng góp ca các thành phn tham gia trong mng. Do đó,  
BitTorrent cũng phi đối mt vi vn đề free-riding (có nhng người dùng tham gia  
vào mng chỉ để ly tài nguyên vmà không chu đóng góp cho hthng).  
Trong khuôn khca khóa lun, chúng ta stng bước tìm hiu qua 6 chương:  
Chương 1: Tng quan vmng ngang hàng, Trình bày các kiến thc cơ bn về  
mng ngang hàng (P2P Network),ưu nhược đim ca mng ngang hàng và các vn đề  
cn chú ý khi nghiên cu mng ngang hàng.  
Chương 2: Hthng chia sfile ngang hàng BitTorrent, gii thiu về  
BitTorrent, cơ bn vgiao thc, cách thc chia sfile, cơ chế thúc đẩy các nút tham  
1
gia đóng góp cho hthng. So sánh BitTorrent vi mt vài hthng chia sfile ngang  
hàng khác. Trong chương này cũng trình bày nguyên nhân dn đến khnăng tn ti  
ca các nút free-rider.  
Chương 3: Mô hình hóa và xem xét nh hưởng ca hin tượng free-riding  
lên hthng chia sfile BitTorrent, trong chương này tôi nghiên cu mô hình  
BitTorrent được đề xut trong bài báo “Free-Riding on BitTorrent-like File Sharing  
System: Modeling, Analysis and Improvement” ca các tác giJiadia Yu, Minglu Li,  
Jie Wu. Qua đó thy được mc độ ảnh hưởng ca hin tượng free-riding lên hthng  
cũng như khnăng tbo vca hthng BitTorrent. Từ đó, đề xut cơ chế khc hn  
chế hin tượng free-riding.  
Chương 4: Chương trình mô phng OctoSim, chương này gii thiu và mô tả  
cu trúc chc năng ca chương trình mô phng OctoSim ( mt chương trình mô phng  
hthng BitTorrent ca Microsoft Research được viết bng ngôn ngC#)  
Chương 5: Các thí nghim mô phng và đánh giá, trong chương này tôi rút ra  
mt skết lun tquá trình nghiên cu và đề xut phương án nhm hn chế hin  
tượng free-riding, sau đó sdng chương trình mô phng OctoSim để thc hin các  
thí nghim nhm kim chng các kết qunghiên cu và hiu quca đề xut, và có  
nhng nhn xét cũng như gii thích vnhng kết quả đã đạt được.  
Chương 6: Kết quthu được trong quá trình làm khóa lun và phương hướng  
nghiên cu trong tương lai.  
2
Chương 1. Tng quan vmng ngang hàng  
1.1. Khái nim vmng ngang hàng  
Mng ngang hàng (Peer-to-Peer hay P2P) [1] là mt mng máy tính trong đó  
hot động ca mng chyếu da vào khnăng tính toán và băng thông ca các máy  
tham gia chkhông tp trung vào mt snhcác máy chtrung tâm như các mng  
thông thường. Mng ngang hàng thường được sdng để kết ni các máy thông qua  
mt lượng kết ni dng ad hoc. Mng ngang hàng có nhiu ng dng. Các loi ng  
dng thường xuyên gp nht là các ng dng chia stp tin, tt ccác dng như âm  
thanh, hình nh, dliu,... hoc ng dng truyn dliu thi gian thc như đin thoi  
VoIP.  
Mt mng ngang hàng đúng nghĩa không có khái nim máy chvà máy khách,  
nói cách khác, tt ccác máy tham gia đều bình đẳng, mi máy là mt nút mng (còn  
gi là peer) đóng vai trò đồng thi là máy khách và máy chủ đối vi các máy khác  
trong mng.  
1.2. Phân loi mng ngang hàng  
1.2.1. Mng ngang hàng thun túy và mng ngang hàng lai ghép  
Mng ngang hàng thun túy:  
- Các máy trm có vai trò va là máy chva là máy khách.  
- Không có máy chtrung tâm qun lý mng.  
- Không có máy định tuyến (bộ định tuyến) trung tâm. Các máy trm có khnăng  
tự định tuyến.  
Mng ngang hàng lai ghép:  
- Có mt máy chtrung tâm dùng để lưu trthông tin ca các máy trm và trli  
các truy vn thông tin này  
- Các máy trm có vai trò lưu trthông tin, tài nguyên được chia sẻ để cung cp  
các thông tin vchia stài nguyên ca nó cho máy ch.  
- Sdng các trm định tuyến để xác định đia chIP ca các máy trm  
3
1.2.2. Mng ngang hàng không có cu trúc và mng ngang hàng có cu  
trúc  
Mng ph(Overlay) ngang hàng bao gm tt ccác nút mng đại din cho các  
máy tham gia và các liên kết gia các nút mng này. Mt liên kết tn ti gia hai nút  
mng khi mt nút mng biết vtrí ca nút mng kia. Da vào cu trúc liên kết gia các  
nút mng trong mng phta có thphân loi hthng mng ngang hàng phân tán  
thành 2 loi: có cu trúc hay không cu trúc.  
Mt mng ngang hàng không cu trúc khi các liên kết gia các nút mng trong  
mng phủ được thiết lp ngu nhiên (tc là không theo qui lut nào). Nhng mng như  
thế này ddàng được xây dng vì mt máy mi khi mun tham gia mng có thly  
các liên kết có sn ca mt máy khác đang trong mng và sau đó dn dn tbn thân  
nó sthêm vào các liên kết mi ca riêng mình. Khi mt máy mun tìm mt dliu  
trong mng đồng đẳng không cu trúc, yêu cu tìm kiếm sẽ được truyn trên cmng  
để tìm ra càng nhiu máy chia scàng tt. Hthng này thhin rõ nhược đim:  
không có gì đảm bo tìm kiếm sthành công. Đối vi tìm kiếm các dliu phbiến  
được chia strên nhiu máy, tlthành công là khá cao, ngược li, nếu dliu chỉ  
được chia strên mt vài máy thì xác sut tìm thy là khá nh. Tính cht này là hin  
nhiên vì trong mng ngang hàng không cu trúc, không có bt kì mi tương quan nào  
gia mt máy và dliu nó qun lý trong mng, do đó yêu cu tìm kiếm được chuyn  
mt cách ngu nhiên đến mt smáy trong mng. Slượng máy trong mng càng ln  
thì khnăng tìm thy thông tin càng nh.  
Mt nhược đim khác ca hthng này là do không có định hướng, mt yêu cu  
tìm kiếm thường được chuyn cho mt slượng ln máy trong mng làm tiêu tn mt  
lượng ln băng thông ca mng, dn đến hiu qutìm kiếm chung ca mng thp.  
Hu hết các mng ngang hàng phbiến là không cu trúc như Napster, Gnutella,  
Fasttrack và eDonkey2000.  
Mng ngang hàng có cu trúc khc phc nhược đim ca mng không cu trúc  
bng cách sdng hthng DHT (Bng Băm Phân Tán, tiếng anh: Distributed Hash  
Table). Hthng này định nghĩa liên kết gia các nút mng trong mng phtheo mt  
thut toán cth, đồng thi xác định cht chmi nút mng schu trách nhim đối  
vi mt phn dliu chia strong mng. Vi cu trúc này, khi mt máy cn tìm mt  
dliu, nó chcn áp dng mt giao thc chung để xác định nút mng nào chu trách  
nhim cho dliu đó và sau đó liên lc trc tiếp đến nút mng đó để ly kết qu.  
4
Mt smng ngang hàng có cu trúc ni tiếng bao gm Chord, CAN, Kademlia,  
Pastry và Tapestry.  
Như vy có ththy hthng BitTorrent mà chúng là nghiên cu thuc loi  
mng ngang hàng lai ghép  
1.3. Ưu thế và các vn đề cn xem xét trong mng ngang hàng  
1.3.1. Các ưu thế ca mng ngang hàng  
Các ưu thế ca mng ngang hàng cũng chính là các mc đích ban đầu khi to ra  
mng ngang hàng người ta nghĩ đến. Mng ngang hàng là tp hp liên kết ca các máy  
tính đơn lvi nhau và đóng góp tài nguyên (bao gm dung lượng cng, băng thông  
và khnăng tính toán). Do đó, sc mnh ca mng ngang hàng tăng lên khi snút  
tham gia mng tăng lên(trái vi mô hình client/server truyn thng, sc mnh và hiu  
năng ca mng gim khi slượng client tham gia vào mng tăng lên). Mt ưu thế khác  
ca mng ngang hàng so vi mô hình client/server truyn thng đó chính là tính cht  
phân tán. Điu này đảm bo được tính bn vng ca mng khi có mt(hoc mt vài  
nút) gp phi sc. Mt khác, do tính cht bn vng ca mng là ln nên nếu có cơ  
chế phân phi thông tin hp lý thì sluôn đảm bo được tính sn sàng cao trong mng.  
Mt ưu thế đáng được nói đến na ca mô hình P2P đó chính là chi phí xây dng hệ  
thng thp, do đó vic trin khai mt hthng mng cũng khá ddàng.  
1.3.2. Các vn đề cn xem xét trong mng ngang hàng  
Các hthng mng ngang hàng đều được xây dng nên da trên stnguyn  
tham gia ca các nút thành viên. Do đó khi thiết kế và nghiên cu cn chú ý đến các  
vn đề sau:  
-
Tính n định và dmrng ca mng: Làm thế nào để cho các nút có  
ththam gia vào mng mt cách ddàng nht có th, đồng thi cũng phi giữ  
được tính n định ca mng, có nghĩa là mng vn có thhot động bình thường  
khi có mt snút ri mng (tnguyt hay đột ngt bli).  
-
Tn dng ti đa tài nguyên đóng góp ca các nút tham gia mng: Sc  
mnh ca mt hthng mng ngang hàng phthuc vào vic hthng đó tn  
dng được các tài nguyên đóng góp ca các nút tham gia mng. Đặc bit chú ý  
đến vn đề tn dng băng thông ca các nút tham gia mng.  
5
-
Đảm bo được tính công bng trên mng: Vai trò ca các nút trong mt  
hthng mng ngang hàng là ngang nhau, do đó mc độ đóng góp và dch vụ  
được hưởng cũng phi ngang nhau. Trong vn đề vtính công bng trên mng  
cn đặc bit chú ý đến hin tượng free-riding, đây cũng là yếu tố được nghiên  
cu trong khóa lun này.  
-
Duy trì tính sn có(avaibility) ca tài nguyên: Mc đích ca vic lưu trữ  
và chia sfile, ai cũng mun file được lưu trlâu dài và có thly vbt clúc  
nào. Tuy nhiên trong mng ngang hàng thì không có ràng buc gì để đảm bo  
được điu đó do trong mng ngang hàng, sự đóng góp là hoàn toàn tnguyn.  
-
Còn mt vn đề khác cn được lưu ý ngoài các vn đề vmt kĩ thut  
trên. Đó chính là vn đề vbn quyn ca các thông tin được chia strên mng.  
Hin ti, P2P là nơi lý tưởng để trao đổi các file nhc, film không có bn quyn  
(cũng là mt phn lý do thúc đẩy mng P2P phát trin như hin nay).  
1.3.3. Tim năng phát trin ca mng ngang hàng  
Hin nay, khái nim mng ngang hàng hoàn toàn không llm. Sngười biết đến  
và sdng nhng ng dng trên nn tng công nghmng ngang hàng đang tăng lên  
tng ngày. Mc dù vn còn nhng vn đề vbo mt hay vn đề vbn quyn ca  
nhng ni dung được trao đổi trong mng ngang hàng, nhưng vi nhng ưu thế và li  
ích mà mng ngang hàng đem li, chúng ta vn có ththy được sphát trin mnh  
mca nó.  
Trên thc tế, cũng đang có rt nhiu nghiên cu phát trin các ng dng trên nn  
công nghmng ngang hàng, tnhng lĩnh vc bình thường ca đời sng như gii trí  
hay truyn hình( các ng dng vtruyn video thông qua mng ngang hàng) đến công  
vic kinh doanh hay nghiên cu khoa hc. Đặc bit, quân đội Mcũng đã có nhng dự  
án nghiên cu phát trin nhng ng dng quân strên nn công nghmng ngang  
hàng.  
Chúng ta hoàn toàn có thtin tưởng rng, trong tương lai gn, mng ngang hàng  
stiếp tc phát trin và cung cp thêm nhiu li ích cho cuc sng.  
6
Chương 2. Mng chia sfile ngang hàng BitTorrent  
2.1. BitTorrent là gì?  
BitTorrent là tên mt giao thc chia sfile được lp trình viên Bram Cohen thiết  
kế vào tháng 4 năm 2007, và ch3 tháng sau đó, tháng 7 năm 2001, giao thc này đã  
được đưa vào trin khai trong thc tế và to ra mt hthng chia sfile theo mô hình  
mng ngang hàng mi, cũng được mang tên là BitTorrent. Ngoài chương trình  
BitTorrent Client đầu tiên được viết bi Bram Cohen là BitTorrent (hay Mainline)  
cũng đã có rt nhiu chương trình BitTorrent Client khác được phát trin và có thể  
chy được trên nhiu nn tng khác nhau (Windows, Mac, Linux,...).  
Hình 1: Giao din mt chương trình BitTorrent Client  
Trong hình trên là giao din ca µTorrent, mt chương trình BitTorrent Client  
khá phbiến. Vcơ bn thì nó cũng khá ging mt chương trình htrdownload bình  
thường. Để trin khai vmt ng dng, hthng BitTorrent chcn mt máy chcó  
cài ng dng Tracker và các nút tham gia sdng mt chương trình BitTorrent client  
nào đó. Quá trình hot động cthca vic chia sfile sẽ được nói chi tiết trong phn  
sau.  
7
Mt skhái nim (thut ng) hay được dùng trong BitTorrent:  
Seed: Nút nm gitoàn bfile, chtham gia quá trình upload file.  
Peer(or downloader/leecher): Nút tham gia vào cquá trình download và  
upload file.  
Neiborghs (Swarm): Các nút giliên kết vi mt nút nào đó trong quá trình  
download 1 file nht định.  
Tracker: Máy chcó nhim vtheo dõi và nm thông tin vcác nút nào đang  
tham gia download file nào.  
*.torrent: File lưu trcác thông tin vfile chia s, địa chca tracker.. (snói  
chi tiết hơn trong phn sau).  
Piece/chunk/share/block…: Mt đơn vsau khi chia nhfile trong BitTorrent.  
Schia sfile trong BT được thc hin bi strao đổi các đơn vnày.  
2.2. Cơ chế và hot động ca BitTorrent  
2.2.1. Quá trình chia sfile  
Ý tưởng cơ bn ca BitTorrent là chia file thành các phn đơn v(piece) bng  
nhau (thường là có kích thước 256KB) và mt nút khi tham gia vào mng thì có thể  
download cùng lúc các phn khác nhau tcác nút khác nhau.  
Để bt đầu chia s1 file, người nm gifile này sto ra mt file tĩnh có phn mở  
rng là .torrent. File .torrent này có cha các thông tin vfile mun chia snhư, dung  
lượng file, tên file, slượng các phn và giá trbăm ca ni dung file cũng như ni  
dung tng phn nhỏ đó, đồng thi trong file đó cũng có cha địa churl ca Tracker  
(server có nhim vliên kết các nút vi nhau). Cth, Tracker snm gicác thông  
tin như có nhng nút nào đang download file nào và các nút đó đang lng nghe cng  
nào…, các thông tin này được cp nht mi 30 phút. Và để đảm bo là người dùng  
khác có thdownload, người mun chia sban đầu phi gikết ni vào mng trong  
thi gian nht định. Nút mng này được gi là seed. Ngoài ra, seed còn để chcác nút  
nm gitoàn bcác phn ca file và tnguyn tham gia quá trình upload các phn đó  
cho các nút khác. Các nút còn li trong mng được gi là downloader hay leecher.  
Khi ai đó mun download 1 file qua BitTorrent, bng cách nào đó có được file  
.torrent ca file đó (ví dnhư ti vt1 trang web nào đó .v.v..), tthông tin có trong  
8
file .torrent, nút đó skết ni đến tracker và nhn v1 danh sách(khong 40 nút) ngu  
nhiên các nút đang tham gia vào quá trình download file đó. Sau đó, nó stiến hành  
kết ni đến các nút đó và bt đầu trao đổi các phn đơn vca file. Tp hp các nút  
cùng đang chia s1 file gi là 1 swarm hay torrent, tp hp các nút đang liên kết vi 1  
nút nào đó gi là neiborghs hay peers ca nút đó. Để quá trình trao đổi được thun li,  
mi nút sthông báo cho tt ccác nút kết ni vi nó rng nó đang nm ginhng  
phn đơn vnào ca file đang chia s.  
2.2.2. Sla chn các phn đơn v(Piece Selection)  
Như đã nói trên, quá trình chia sfile trong BitTorrent chính là quá trình trao  
đổi các phn đơn v(pieces) ca file đó gia các nút mng. Vì thế gii thut la chn  
các phn này sao cho hp lý rt quan trng. Trong BitTorrent, gii thut la chn được  
áp dng các nút tuân theo các nguyên tc sau.  
Ưu tiên nghiêm ngt( Strict Priority): Khi mt piece được chn, nó phi được  
download xong trước khi chn piece khác. Quy tc này để đảm bo nút có được đầy  
đủ pieces mt cách nhanh nht có th.  
Ít nht trước(Local Rarest First): Để quyết định xem piece nào sẽ được chn,  
nút sso sánh slượng ca mi piece trong tp tt ccác nút đang liên kết vi nó(bao  
gm cchính bn thân nút đó) và la chn ti vpiece có slượng ít nht. Chiến lược  
này để đảm bo scân bng ca slượng mi piece trong mng.  
Mt vn đề na là đối vi nút đầu tiên tham gia upload file lên mng (original  
seed) là làm sao có thphát tán tt ccác piece ca file vào mng 1 cách nhanh nht  
có th. Khi đó, chiến lược LRF được áp dng cho seed là, trong các yêu cu pieces từ  
các nút kết ni đến nó, nó sẽ ưu tiên phc vpiece nào có slượng được phc vít  
nht.  
Đơn vị đầu tiên ngu nhiên(Random First Piece): Khi mt nút mi gia nhp  
mng, nó schn ngu nhiên 1 piece để ti v. Quy tc này để khiến cho nút có được  
mu đầu tiên mt cách nhanh nht để bt đầu upload.  
Chế độ kết thúc(Endgame Mode): Để giúp nút có thkết thúc nhanh quá trình  
download, nút có thyêu cu piece cui ttt ccác nút liên kết vi nó.  
9
2.2.3. Thut toán Choking  
BitTorrent là mt hthng chia sfile ngang hàng, do đó stham gia ca các nút  
vào quá trình up và download nh hưởng rt ln đến ssng còn ca mng. Nút trong  
mng skhông đáp ng tt ccác yêu cu download các piece tcác nút liên kết vi  
nó, mi yêu cu đó chỉ được đáp ng khi nút có yêu cu đảm bo được nhng điu  
kin nht định. Quy tc được đặt ra để nhm khuyến khích các nút tham gia upload  
vào mng nhiu hơn, được gi là cơ chế thúc đẩy (Incentive Mechanism) ca  
BitTorrent.  
Thông thường, mt nút chỉ đáp ng yêu cu ca 4 nút hàng xóm cung cp cho nó  
tc độ download cao nht, và quá trình xác định tc độ download ca các nút liên kết  
vi nó được thc hin 10 giây mt ln. Khi chiến lược này được áp dng, nút nào có  
tc độ upload vào mng càng cao thì càng có được tc độ download cao. Chiến lược  
này gi là chiến lược ăn miếng trmiếng (Tit-for-tat Strategy).  
Optimistic Unchoking: Nếu cháp dng quy tc như trên sbó hp strao đổi  
dliu gia các nút liên kết vi nhau. Để to cơ hi tìm kiếm các nút có cung cp tc  
độ download cao hơn cũng như để cho nút mi tham gia vào mng có thđược đáp  
ng vpiece đầu tiên, BitTorrent sdng “optimictic unchoke” 30 giây 1 ln.  
Optimistic unchoke smở đáp ng cho mt kết ni ngu nhiên mà không tính đến tc  
độ download cũng như upload.  
Trong Khóa lun này, chúng ta snghiên cu kĩ hơn tác dng ca cơ chế thúc  
đẩy ca BitTorrent trong vic hn chế hin tượng free-riding trong BitTorrent.  
2.3. Optimistic Unchoking và Free-Rider  
Free-rider là nút không upload đến các nút khác, do đó theo chiến lược TFT, nó  
cũng không nhn được dliu tcác nút khác. Tuy nhiên do có Optimistic Unchoke  
như đã nói trên, free-rider vn có được cơ hi nhn được dliu ththng. Chúng  
ta sxem xét cthhơn vn đề này.  
Gi G{p0,p1, …, pxn-1, q0,q1, …, qxf-1 } là tp hp các nút trong mng  
BitTorrent. Trong đó xn là slượng các nút bình thường (non free-rider) và xf là số  
lượng ca free-rider trong mng. Gistt ccác nút trong mng có cùng mt băng  
thông upload , và không có seed trong G. Gi µ là băng thông upload ca mi nút, như  
vy tng băng thông upload ca hthng là µxn. Gi u là slượng kết ni upload ca  
10  
nút trong mng, trong đó có 1 kết ni là optimistic unchoking. Tc độ ca mi kết ni  
bgii hn bi µ/u. Theo quy tc Optimistic Unchoking, mi nút bình thường schn  
ngu nhiên mt nút khác để gi dliu, từ đó tng skì vng tc độ download ca  
free-rider trong G là:  
(1)  
Trong trường hp xn+xf >> u  
T(1) cho thy rng mc dù không đóng góp cho hthng như free-rider vn  
nhn được tc độ download được tính bi (1). Gi ρ là tlca tng tc độ download  
ca free-rider so vi tng băng thông upload ca các nút bình thường. ta có:  
(2)  
Vi 0 ≤ ρ ≤ 1. T(2) cho thy free-rider vn có được mt phn tc độ download  
ca chthng. Nói cách khác, cơ chế ca BitTorent không thloi trhoàn toàn hin  
tượng free-riding, và free-rider có thnhn được tài nguyên tcác nút bình thường  
thông qua optimistic unchoking. Để rút ra kết lun trên và các đẳng thc (1) và (2),  
tôi đã tham kho trong [13].  
2.4. So sánh BitTorrent và mt shthng chia sfile ngang hàng  
khác  
Phương pháp dùng để phân phi tp gia mng eDonkey2000 và BitTorrent là  
ging nhau, như các máy trong mng eDonkey thường chia svà ti vrt nhiu tp,  
làm cho băng thông cho mi vn chuyn trnên ít hơn. Ngược li, vn chuyn  
BitTorrent nhanh hơn nhiu do các máy tp trung vào mt tp hay mt nhóm tp cụ  
th. Giao thc eDonkey2000 nguyên thy cung cp rt ít khnăng chng free-riding,  
các phiên bn client mi ca eDonkey2000 có cài đặt hthng khuyến khích ti lên  
11  
nhiu hơn. Ví dchương trình eMule có hthng đim (credits system) để thưởng các  
máy ti lên nhiu. Mt máy sẽ ưu tiên các máy vn chuyn cho mình trước đây bng  
cách chuyn vtrí các máy này lên đầu ca hàng đợi làm cho thi gian chít hơn. Hệ  
thng này tra khá hiu quvì hàng đợi trong mi máy khách sdng eMule thường  
lên đến hàng trăm, thm chí hàng ngàn.  
KaZaA là mt giao thc gn ging vi giao thc BitTorrent nhưng nó có mt  
đim khác đó là nó phân bit các máy trm theo cp cng hiến (Participation Level).  
Cp cng hiến tăng khi bn ti lên và gim khi bn ti v. Khi bn ti lên mt tài  
nguyên thì người có cp cng hiến cao nht nhn đầu tiên sau đó người có cp cng  
hiến cao nht này ti lên cho người có cp cng hiến thp hơn và ctiếp tc như vy.  
Mô hình này tương tnhư mô hình kim ttháp, vi người ti lên nhiu nht vtrí  
đỉnh ca kim ttháp, và người ít ti lên các vtrí đáy ca kim ttháp. Mô hình  
KaZaA chthích hp phân phi tài nguyên cho mt slượng ln người dùng, nó đã  
được chng minh là người ở đáy kim ttháp ti tp vnhanh hơn trường hp ti tp  
vbng phương pháp HTTP (trong trường hp tp rt ln). Nhưng mô hình KaZaA có  
mt nhược đim nhỏ đó là nó tin tưởng vào báo cáo ca các máy trm vcp cng  
hiến vì vy các máy trm có thgian ln cp cng hiến vi rt nhiu các máy trm  
không chính thc.  
12  
Chương 3. Mô hình hóa và xem xét nh hưởng ca free-  
riding lên hthng chia sfile BitTorrent  
3.1. Mt snghiên cu liên quan  
BitTorrent là hthng chia sfile ngang hàng phbiến nht hin nay, vì thế nó  
cũng dành được squan tâm nghiên cu ca rt nhiu nhà khoa hc. Có nhiu nghiên  
cu nhm ci tiến nâng cao hiu năng ca hthng BitTorrent vi nhiu đề xut khác  
nhau. Tuy nhiên đa snhng kho sát, cvmô phng ln theo dõi thc thế  
[4][6][7][10][11] đều cho thy rng hthng BitTorrent tra rt hiu qutrong vic  
tn dng tài nguyên hthng và htrslượng ln người sdng. Và vn đề ti ưu  
hóa hthng BitTorrent thường tp trung hơn vào vn đề đảm bo tính công bng trên  
mng.  
Mt vài nghiên cu v“cơ chế thúc đẩy” ca BitTorrent được trình bày trong  
[4][8][9][12]. Các thnghim trong [4] đã chra rng cơ chế ca BitTorrent không thể  
đảm báo được tính công bng trong hthng. Jun và Ahamad [8] xem xét hthng  
BitTorrent dưới lý thuyết trò chơi (vn đề song đề tù nhân lp li – Iterated Prisoner’s  
Dilemma) và cho thy rng free-rider không btrng pht thích đáng và nhng nút  
đóng góp cho hthng cũng không được đền đáp tương ng. Qiu và Skirant [12] đã  
mô tsơ lược nh hưởng ca optimistic unchoking đối vi hin tượng free-riding, và  
cho thy optimistic unchoking có thdn đến hin tượng free-ring trong hthng.  
Locher và các tác gikhác [9] cũng đã cho thy trong BitTorrent mt nút có thti file  
vthành công mà không có sự đóng góp gì cho mng.  
Trong ni dung ca khóa lun này, tôi sdng mô hình ca các tác giJiadia Yu,  
Minglu Li, Jie Wu được gii thiu trong [13]. Mô hình chia các downloader trong  
mng thành 2 loi chính free-rider và non free-rider và xem xét nh hưởng ca free-  
rider trong hthng BitTorrent mt cách khá toàn din.  
3.2. Mô hình và các tham số  
Da trên các kết lun trình bày trong phn 4.1.1, chúng ta sxây dng mt mô  
hình mng trong đó các nút trong mng được chia làm 3 loi chính: seed, free-rider và  
non free-rider. Các nút non free-rider được xem là đóng góp cho mng ngang nhau  
trong khi các nút free-rider hoàn toàn không có đóng góp gì cho hthng. Seed không  
phân bit free-rider hay non free-rider trong quá trình upload. Hthng được mô tbi  
các tham s(mô hình “Fluid model”) sau:  
13  
xn(t) : slượng ca non free-rider trong hthng ti thi đim t  
xf(t): slượng ca free-rider trong hthng ti thi đim t  
y(t): slượng seed trong hthng ti thi đim t  
λn: Tc độ tham gia vào mng ca non free-rider  
λf: Tc độ tham gia vào mng ca free-rider  
µ: Băng thông upload ca mt nút  
c: Băng thông download ca mt nút  
θ: Tc độ ri mng ca nút bình thường  
γ: Tc độ ri mng ca seed  
η: Hiu năng ca quá trình chia sfile [3]  
ρ(t): Tlca tng tc độ download ca free-rider so vi tng tc độ  
upload ca non free-rider ti thi đim t.  
κ(t): Tlca slượng free-rider trên tng slượng ca free-rider và  
non free-rider ti thi đim t.  
Mô hình trên được mrng tmô hình trong [3] và được trình bày trong [4]. Ta  
gisfree-rider ri mng ngay sau khi download hoàn thành(bi vì free-rider khi đó  
li mng cũng không có ý nghĩa gì). Như vy, trong hthng tn ti 3 trng thái:  
Seed, free-rider và non free-rider. Quan hgia các trng thái được trình bày như hình  
sau:  
14  
Hình 2: Mô hình chung biu din 3 trng thái trong hthng chia sfile  
BitTorrent  
Hình vtrên cho ta thy quan hgia 3 trng thái, tc độ các nút tham gia và ri  
khi các trng thái và thành phn phân phi băng thông ca 3 trng thái trong hthng  
BitTorrent. Trong mô hình này, tc độ gia nhp mng ca free-rider và non free rider  
tương ng là λf λn. Tham số η biu thhiu quca vic chia sfile và được tính  
toán là rt gn vi 1 trong [8]. Hiu năng chia sfile ca free-rider bng 0. Ti thi  
đim t, tc độ upload ca toàn bhthng là µ(ηxn(t) + y(t)). Tt ccác nút trong  
mng cùng chia stc độ upload được cung cp bi non free-rider và seed. ρ(t) cho  
biết tlbăng thng upload ca non free-rider bchiếm vi free-rider. Áp dng đẳng  
thc (2) ta có  
(3)  
Vi 0 ≤ ρ(t) 1.  
Vi seed khi upload không phân bit free-rider hay non free-rider, do đó, tlệ  
băng thông upload ca seed bchiếm bi free-rider là:  
(4)  
Vi 0 ≤ κ(t) 1.  
Do đó, tng tc độ download ca non free-rider là :  
µ[(1-ρ(t))ηxn(t) + (1-κ(t))y(t)]  
Và tng tc độ download ca free-rider là :  
µ[ρ(t)ηxn(t) + κ(t)y(t)]  
Tuy nhiên, tc độ download ca free-rider và non free-rider bgii hn bi cxn(t)  
và cxf(t). Ta có :  
(5)  
15  
Trong đó Dn(t) và Df(t) biu thtương ng là tng tc độ download ca non free-  
rider và free-rider ti thi đim t(tc độ non free-rider và free-rider ri khi các trng  
thái tương ng sau khi download xong).  
θxn(t) và θxf(t) tương ng là tc độ ca non free-rider và free-rider ri khi các  
trng thái tương ng khi đang download d. Non free-rider chuyn sang trng thái  
seed vi tc độ Dn(t) sau khi download xong. Seed ri btrng thái vi tc độ γ. Từ  
đó, tc độ thay đổi ca 3 trng thái được xác định tương ng bng phương trình sau :  
(6)  
3.3. Nghiên cu hthng trng thái n định (steady-state)  
Để nghiên cu hthng trng thái n định, chúng ta gislimt→∞xn(t),  
limt→∞xf(t), limt→∞y(t) tn ti và :  
Trong đó xn, xf , và y là các giá trcân bng tương ng ca xn(t), xf(t) y. Ở  
trng thái n định t→∞ ta có :  
(7)  
Để đơn gin, chúng ta gisnút không bao giri mng khí chưa download  
xong (θ =0) và sri mng ngay sau khi download hoàn thành (γ→∞). Vi gisử  
trên, t(6) và (7) phương trình biu thtrng thái n định được viết li thành :  
(8)  
Vi  
16  
(9)  
là giá trcân bng ca ρ(t) và 0 ≤ ρ ≤ 1  
Dthy, vi điu kin thc tế c > µ thì  
. Kết hp vi (8) ta thu được :  
và  
(10)  
Vi  
và  
Định lý 1 : Gi Tn và Tf là thi gian download trung bình tương ng ca non  
free-rider và free-rider trong hthng. Trong mt hthng không có seed, chúng ta có  
kết qusau :  
(11)  
Chng minh :  
Trong [12], áp dng Little Law[3]. Ta có thi gian download trung bình cho mt  
nút trng thái n định được xác định bi:  
λ θ x  
x = (λ θ x)T  
λ
Vi T là thi gian download trung bình. Tương t, trong mô hình ca chúng ta,  
thi gian download trung bình tương ng ca non free-rider và free-rider được tính bi  
Khi có mt nút hoàn thành download, khnăng nó là free-rider là ρ , và khnăng  
nó là non free-rider là 1 – ρ. Do đó thi gian download trung bình ca toàn bhệ  
thng là:  
17  
Thay tương ng các giá trtrong các biu thc (9), (10), ta được kết quca định  
Nhn xét: Thông qua vic mô hình hóa hthng BitTorrent, chúng ta đã thy  
lý.  
được hiu năng ca hthng trng thái n định và nh hưởng ca hin tượng free-  
riding lên hthng BitTorrent. Tkết quca định lý 1, xét trong điu kin slượng  
liên kết upload ca mt nút u=5, và vi giá trhiu năng chia sfile η được xem xét  
trong [12] là gn như bng 1, chúng ta thu được đồ thbiu din sphthuc thi gian  
download trung bình ca non free-rider, free-rider và hthng thông qua sbiến thiên  
ca α:  
Hình 3: Thi gian download trung bình ca non free-rider, free-rider và hthng  
theo sbiến thiên ca α.  
Từ đồ thtrên cho thy thi gian download trung bình Tf ca free-rider luôn luôn  
ln hơn thi gian download trung bình Tn ca non free-rider. Đồng thi, giá trca Tf  
cũng tăng rt nhanh khi α tăng lên, ngược li Tn hu như không tăng khi giá trị α nh.  
18  
Hơn na, khi α đạt giá tr0.2 (=1/u) thì Tf không tn ti (có nghĩa là mt sfree-rider  
không có đủ tài nguyên để kết thúc quá trình download).Ngược li, non free-rider luôn  
luôn có thhoàn thành quá trình download. Từ đó, có thkết lun là cơ chế ca  
BitTorrent có khnăng chng li hin tượng free-riding trong hthng không có seed,  
và thông qua Optimistic Unchoking, free-rider cũng không gây nh hưởng ln đối vi  
hiu năng ca toàn hthng.  
Từ đẳng thc (11) ta cũng thy mt điu rng có thtăng thi gian Tf bng cách  
tăng sliên kết upload ca mi nút u, tuy nhiên, điu này khó có ththc hin trong  
thc tế do nếu tăng slượng kết ni TCP stăng thi gian trnh hưởng đến hiu  
năng ca mng.  
trên, chúng ta đã gisử γ→∞, có nghĩa là nút non free-rider sri mng ngay  
sau khi quá trình download hoàn thành. Tuy nhiên, trong thc tế, sau khi hoàn thành  
download vn có mt slượng các nút vn li hthng và đóng vai trò như seed.  
Do đó, free-rider vn có cơ hi nhn được thêm tài nguyên tseed và có thhoàn  
thành dược quá trình download. Bây gi, chúng ta sxem xét nh hưởng ca hin  
tượng free-riding lên hiu năng ca hthng khi giá trị γ thay đổi. Khi có tính đến γ,  
phương trình biu din trng thái n định ca hthng được viết li thành:  
(12)  
Trong đó  
Vi ρ κ là giá trcân bng tương ng ca ρ(t) và κ(t), 0 ≤ ρ, κ ≤ 1. Sau khi  
gii phương trình (12) ta thu được:  
19  
(13)  
Khi  
Ngược li, nếu tc độ ri mng γ ca seed nhhơn  
thì băng thông  
download c squyết định hiu năng ca mng nếu giá trca c là rt ln []. Từ đó, ta  
có:  
(14)  
Khi  
Định lý 2: Gi Tn và Tf là thi gian download trung bình tương ng ca non free-  
rider và free-rider trong hthng có seed, chúng ta có kết qusau :  
(15)  
Khi  
Và  
(16)  
20  
Khi  
Chng minh: Ddàng chng minh được định lý 2 tương tnhư chng minh định  
Nhn xét: Khi tc độ ri mng ca seed gim, đồng nghĩa vi vic slượng seed  
lý 1.  
có trong hthng tăng lên, slượng tài nguyên dành cho các nút download cũng nhiu  
hơn. Tkết lun ca định lý 2, ta có đồ thsau:  
Hình 4: Tsgia thi gian download trung bình ca non free-rider trên thi  
gian download trung bình ca free-rider biến thiên theo γ.  
Biu đồ trong hình 4 biu thsthay đổi vtlgia Tn Tf khi thay đổi giá trị  
ca γ. Ta thy rng, tsnày tăng lên khi tc độ ri mng ca seed gim đi. Và khi γ  
gim đến 1 giá trxác định (  
) thì thi gian download trung bình ca non free-  
rider và free-rider lúc đó là ngang nhau (thi gian này được xác định bi băng thông  
21  
download c). Khi γ tăng lên, thi gian download ca free-rider dn dn tăng lên do đó,  
tsgia Tn Tf gim xung.  
Từ đồ thtrên ta cũng thy được mt điu na là khi giá trca α tăng lên, tsố  
gia Tn Tf cũng gim xung do thi gian download Tf tăng lên tương tnhư trong  
hthng không có seed đã xét phn trước.  
Tnhn xét trên, chúng ta có thkết lun rng cơ chế ca BitTorrent không có  
hiu qutrong vic hn chế free-riding khi hthng có nhiu seed. Khi slượng seed  
trong hthng tăng lên đến mt giá trnht định, thi gian download ca free-rider và  
non free-rider là ngang nhau.  
22  
Chương 4. Chương trình mô phng OctoSim  
4.1. Cài đặt và sdng chương trình  
4.1.1. Gii thiu, cách thc cài đặt và thiết lp môi trường để chy  
chương trình OctoSim  
OctoSim : A BitTorrent Simulator là mt ng dng viết bng ngôn ngC# bi  
các tác giAshwin Bharambe, Cormac Herley và Venkat Padmanabhan. Mã chương  
trình được các tác giviết ra để thc hin các thnghim trong [4]. Có thtìm và  
download chương trình ti địa chtrang web ca Microsoft Research  
BitTorrent Simulator).  
Chương trình mô phng li hthng BitTorrent theo các chi tiết sau: File được  
chia nhthành các pieces, và không thchia nhhơn na, đồng thi, thut toán  
Choking ca BitTorrent cũng được trin khai mt cách chính xác. Tuy nhiên, chế độ  
kết thúc (EndGame Mode) không được tính đến, tuy nhiên điu này cũng không nh  
hưởng nhiu đến các kết quthnghim.  
Để cài đặt và chy chương trình, trên Linux, cn có mono và mcs (để biên dch  
ngôn ngC#), trên Windows, sdng bcông clp trình Visual Studio. Để thc  
hin các thnghim trong khóa lun này, tôi đã sdng Visual Studio 2005 trên hệ  
điu hành Windows XP để build và chy chương trình mô phng. Cu hình cn thiết  
để chy được chương trình mô phng này là máy tính có thcài và chy được Visual  
Studio, tuy nhiên, chương trình sdng các hàm tính toán và xlý khá nhiu skin  
nên mt máy tính có CPU vi tc độ xlý cao có thgiúp rút ngn thi gian tiến hành  
các thnghim.  
Đối vi môi trường Windows, sau khi ti vmã ngun chương trình tMicrosoft  
Research (sẽ được 1 file có đuôi là .msi), sau khi bung nén, chúng ta sẽ được mt thư  
mc cha mi file liên quan đến chương trình (địa chmc định khi bung nén ca thư  
mc thường là “C:\Program Files\Microsoft Research\MSR Simulator for the  
BitTorrent Protocol”, trong đó chúng ta cn chú ý đến 2 thư mc con là OctoSim cha  
mã ngun C# ca chương trình và workloads cha các file mu đầu vào ca chương  
trình mô phng.  
23  
4.1.2. Đầu vào và đầu ra ca chương trình mô phng  
Vmt thc thi, OctoSim là mt ng dng dòng lnh (Console Application) cho  
phép nhp các giá trị đầu vào thông qua các tham sdòng lnh hoc file text. Các kết  
quthnghim được hin mt phn ngay trong ca sConsole và kết xut trong các  
file text. Bây gichúng ta smô tngn gn vcác file text đầu vào và đầu ra ca  
chương trình.  
- File đầu vào: Mt vài mu ca file đầu vào có thtìm thy trong thư mc  
workloads. Các file có phn mrng là .wl. Trong file này các lnh được btrí  
theo dòng, các dòng bt đầu bng # chỉ đó là nhng dòng chú thích, và chương  
trình sbqua khi đọc đến nhng dòng này. Cu trúc ca mt dòng bình  
thường được xlý bi chương trình mô phng như sau:  
<time> <command> <command arguments> [end]  
Có thhiu mt cách khái quát ni dung ca 1 dòng sxác định mt skin  
(mt lnh) được thc hin vào thi đim nào trong quá trình mô phng. Chi tiết  
cthsẽ được mô tkĩ hơn trong phn sau, khi chúng ta nói vni dung file  
mã ngun WorkloadProcessor.cs  
- File đầu ra: Khi chy chương trình mô phng OctoSim skết xut ra 4 file text  
đầu ra có phn mrng ln lượt là .out.prm, .out.nds, .out.bw, .out.gph. Trong  
đó:  
File .out.prm lưu thông tin vgiá trca các tham ssdng trong chương  
trình như thi gian tiến hành thnghim, thi gian và tc độ tham gia vào  
mng ca các nút, kích cfile chia s…  
File .out.nds có cha các thông tin chung vcác skin xy ra vi các nút.  
Cu trúc chung ca mt dòng trong file này là:  
[time] [node] [event] <details>  
Có thhiu ni dung ca dòng này là thi gian din ra skin đối vi nút, nút  
din ra skin là nút nào, skin đó là skin gì và các thông tin chi tiết  
tương ng vi mi loi skin. Thông tin chi tiết vtng loi skin đối vi 1  
nút chúng ta có thxem thêm trong file Logger.cs  
File .out.bw, file này chính xác đóng vai trò là file log ca hthng. Cu trúc  
ca file chia thành các khi, mi khi bt đầu bng mt dòng có ni dung là  
“time <thi đim>”. Các dòng tiếp theo trong khi mô tmt cách vn tt về  
24  
tình trng ca toàn bcác nút trong mng ti thi đim xét, mi nút trên 1  
dòng, cth, thông tin trên mi dòng slà:  
<định danh ca nút> #d <slượng kết ni download> <tng tc độ download  
ca các kết ni> #u <slượng kết ni upload> <tng tc độ upload ca các  
kết ni> p <spiece đã có được> <spiece đang download d> s <bit đánh  
du xem nút đang có vai trò là seed hay không> #p <slượng các nút hàng  
xóm> <slượng các kết ni Interested> <slượng các kết ni không bị  
choke> <slượng các kết ni useful> <slượng các kết ni upload  
interested> <slượng các kết ni upload không bchoke> <slượng các kết  
ni upload useful> D <khong cách đến seed trong đồ th>  
Mun biết chi tiết và hiu hơn các khái nim, có thxem trong phương thc  
Dump ca class Node trong file Node.cs.  
4.2. Cu trúc và chc năng ca chương trình mô phng  
Ti thư mc được to ra sau khi bung nén chương trình, có cha các thư mc con  
như sau:  
+ cmu_scripts  
+ exp_scripts  
+ OctoSim  
+ plotscripts  
+ scripts  
+ workloads.  
Tuy nhiên, khi xem xét và thc thi chương trình ta chcn chú ý và tác động vào  
các file trong 2 thư mc OctoSim và workloads.  
Thư mc OctoSim cha toàn bmã ngun C# ca chương trình. Sau đây, chúng  
ta smô tmt vài file mã ngun quan trng ca chương trình  
4.2.1. File Main.cs:  
Chc năng chính ca file này là xlý các tham sdòng lnh và lưu vào mt  
mng tĩnh để xlý sau.  
Vmt cu trúc trong file cha class MainWrapper là class cha hàm  
public static int Main(String[] args) sẽ được gi đến đầu tiên khi chy  
chương trình. Ngoài ra, trong lp này còn khai báo mt mng tĩnh public static  
ArrayList cmdline_arguments dùng để lưu giá trcác tham sdòng lnh.  
25  

Tải về để xem bản đầy đủ

pdf 44 trang yennguyen 28/05/2025 110
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Nghiên cứu ảnh hưởng của hiện tượng “Tham gia mà không đóng góp” lên hệ thống chia sẻ file ngang hàng bittorrent", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_nghien_cuu_anh_huong_cua_hien_tuong_tham_gia_ma_kh.pdf