Tải bản đầy đủ (.pdf) (48 trang)

LUẬN VĂN: TRUYỀN TIN MULTICAST ĐA LUỒNG THỜIGIAN THỰC TRÊN MẠNG NGANG HÀNG CÓ CẤU TRÚC pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.4 MB, 48 trang )

1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Văn Minh

TRUYỀN TIN MULTICAST ĐA LUỒNG THỜI
GIAN THỰC TRÊN MẠNG NGANG
HÀNG CÓ CẤU TRÚC






KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin







HÀ NỘI - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Văn Minh

TRUYỀN TIN MULTICAST ĐA LUỒNG THỜI


GIAN THỰC TRÊN MẠNG NGANG
HÀNG CÓ CẤU TRÚC






KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hƣớng dẫn: TS. Nguyễn Hoài Sơn






HÀ NỘI - 2010
LỜI CẢM ƠN
Em xin chân thành c  i hc Công Ngh - i hc
Quc Gia Hà Nn tình ging d em trong su em
 kin th hoàn thành khóa lun này.
c bit em xin gi li c  c n thy Nguy   
ng dnh hình cho em cách tip cn nghiên cu khoa hc. ng thi trong
sut quá trình làm lui mt vi các v n gii quyt
th em tránh khi sai lm giúp em tc hoàn thành khóa
lun này.
i li cn các anh ch và các bn trong nhóm nghiên cu
ca thy Nguyc bit là cô Bùi Th t tình h tr v
mng và kinh nghi em có th hoàn thành khóa lun này tht tt.

Con xin gi ti b m và nhng bi
 t qua  này.

Hà N10
Sinh viên
Nguyễn Văn Minh
Tóm tắt


 





































 ci 

 trên
. 























        






IP TV, 








 


 . 


n







  




 







.
















 





 .  -
 , 














 . 


































 



  


 Client-



  
 eaming 




  








 -






.
Khóa lun tôi trình bày nht gii pháp xây d
lung thi gian thc trên mng ngang hàng có c








 



















.
Thit k  lun da trên giao thc DHT và mô hình mng
Chord , kt qu mô pht qu tt. Tuy nhiên cn
nhiu nghiên cu ci tia nht hiu qu cao nht.
Mục lục
M u 2
n tin multicast thi gian thc 3
1.1. Tng quan v truyn tin multicast thi gian thc 3
1.1.1. IP Multicast 4
1.1.2. Multicast tng ng dng 6
1.1.3. Các mô hình truyn tin multicast tng ng dng 8
1.2. Truyn tin multicast thi gian thc 11
ng thi gian thc 13
2.1. Tng quan v truyng 13
2.2. Splitstream 14
ng thi gian thc trên mng ngang hàng có
cu trúc 25
3.1. V cn gii quyt 25
ng 25
3.3. Thit k gii pháp 27
3.3.1. Xây dng cây multicast 29
3.3.2. Duy trì cây multicast khi có node ri khi mng 32
 33

ng 33
4.1.1. Kin trúc mng mô phng 33
4.1.2. Các tham s trong mng mô phng 34
4.2. Kt qu  36
4.2.1. Hiu qu  chênh lch s hop nhc các lung ti các node 36
4.2.2. Hiu qu  cân bng ti trên toàn h thng 38
t lun 40
5.1. Kt lun 40
ng phát trin tip theo c tài 40


1

Danh mc hình nh
Hình 1. Một số mô hình truyền tin 3
Hình 2. Mô hình IP Multicast 4
Hình 3. Bộ định tuyến trong truyền tin multicast tầng mạng 6
Hình 4. Truyền thông multicast tầng mạng và tầng ứng dụng 7
Hình 5. Giao thức Narada 9
Hình 6. Mạng phủ 7 node (a) và cây multicast xây tương ứng (b) 10
Hình 7. Truyền tin mulicast đa luồng 13
Hình 8. Bảng định tuyến của node 10233102 trong Pastry 15
Hình 9. Node 10233102 gửi thông điệp m đến node 33321220 16
Hình 10. Quá trình 1 node join vào group 19
Hình 11. Truyền tin multicast trong group Scribe 20
Hình 12. Quá trình tự sửa cây multicast 21
Hình 13. Splitstream F luồng 22
Hình 14. Xác định node cha khi băng thông đi ra vượt quá giới hạn 23
Hình 15. Phân chia vùng gần vùng xa cho các node con 26
Hình 16. Bảng Finger Table trong Chord 28

Hình 17.Lưu giữ key trong mạng Chord 29
Hình 18.Tìm các node con gần và node con xa 30
Hình 19. Node nhận được các luồng 31
Hình 20. Sửa cây multicast khi có node rời khỏi mạng 32
Hình 21. Mô hình mạng thực tế 33
Hình 22. Chênh lệch hop lớn nhất giữa các luồng với 1014 node 37
Hình 23. Chênh lệch hop lớn nhất giữa các luồng với 2072 node 38
Hình 24. Hiệu quả cân bằng tải với 1014 node 38
Hình 25. Hiệu quả cân bằng tải với 2072 node 39


2

Mở đầu

















 . 




 

 




















 , video conference 











 , 











 , 















.


 2 
ng. 









 , 



 .


















: 











 net (









 ) 






. 










.
T











k

 . 











 , 

















 . 





















 . 














. 






 





 . 































 .






















 litstream. 








Pastry, Scribe 





























. 



t qu i tt.
Gii pháp ca khóa lu ra dm ca mô hình

mng có cc s phù hp vi vic xây dng cây 
ng. Tóm tt ni dng :
n tin multicast thi gian thc
: Truyn ng thi gian thc
: Xây dng thi gian thc trên mng ngang hàng
có cu trúc
: Mô ph
Ch: Kt lung phát trin

3

Chƣơng 1.Truyền tin multicast thời gian thực
1.1.Tổng quan về truyền tin multicast thời gian thực
u kin internet phát trin rt n nay vic truyn tin trên
mng   nên ngày càng quan trng và ph bin. M  i cùng ca vic
truyn tin là gi thông tin t n máy khác    n và trc quan
c truyn tin gia các máy thành truyn tin gia các node.
 mô hình truyn tin ng gp :

Hình 1. Một số mô hình truyền tin
a khóa lun s lm rõ chi tit vic truyn tin multicast.
Truyc 1 máy truyn 1 nhóm máy
có la chc mô hình hóc
nhân bn thành nhiu gói tin khác và gcnh ca cây multicast .
Ta có th thy truyn tin multcast t ra rt hiu qu trên mng Internet. So sánh
vn tin broadcast (gi không có la chn)  : 



















 , 

 

















 . 














.
Chính nh c tính riêng hiu qu y mà truy
 ng phát trin truyn tin chính so vi các   n tin khác.
Truyn tin multicast hic phân loi thành 2 nhánh chính là : IP Multicast

4

(Multicast tng mng ) và Multicast trên tng ng dng s c gii thiu  mc tip
theo.
1.1.1.IP Multicast
Định nghĩa cơ bản nhất của IP Multicast : IP multicast là cơ chế gửi một
thông điệp từ một nguồn duy nhất đến một nhóm chọn lựa các địa chỉ đích thông

qua một hạ tầng mạng lớp 3 trong một dòng dữ liệu

Hình 2. Mô hình IP Multicast
Hình 2 trình bày chi tit v mô hình IP Multicast và cách thc hong ca nó.
Node gi là máy Sender vi mc tiêu là gn cho 2 máy Receiver.
Sender s gi gói tin IP va ch multicast (cái này s c gii thích chi tit 
n Switch/Router. Switch/Router nhn  a ch
 nhân bn gói tin thành n gói tin gi
a ch IP Multicast trên (trong hình minh ha
ch 
 xut gi
i , nó là s phát trin t mô hình dch v  nhm
nâng cao giao tim. Mô hình dch v multicast cung cp hai li ích chính: (1)
hiu qu s dvia ch nhóm gián tip cho phép redezvous
tng m xut này c ra mc mi cho các ng dng ca
IP Multicast.

5

 truyn multicast thì cn da trên khái nim mt nhóm. Nhóm cha tt c các
máy cùng mong mun nhc mt d liu. Nhóm này không có gii hn v vt lý
a lý, nó có th nm  bt c ng Internet. Thu IP Multicast
c phát trii hc và các phòng nghiên cu nhm phc v ch
yu cho video streaming vi t cao nht. Vic qun lý và phân nhóm trong khu
vc m  y s không quá phc tp. Tuy nhiên khi áp dng vào mng
Internet thì nó c   ( IGMP - Internet Group
Management Protocal) i. Các máy trên mng Internet mun nhn d liu thì
cn phi gia nhp giao thc qun lý nhóm mng IGMP.
i dùng có th quynh tham gia hoc ri b nhóm bt c lúc nào, và có
th là thành viên ca nhiu nhóm multicast cùng lúc. Vai trò ca máy tham gia trong

quá trình truyn multicas khác nhau: cùng mt máy có th là ngun gi
i là máy nhn trong cây multicast khác.
Mi mt máy ca ch a ch mà mi máy tham gia vào nhóm
và mong mun nh c d liu. IANA ( IANA - Internet Assigned Numbers
Authority) s kim soát via ch a ch
ly tt c a ch Multicast nm trong di:
224.0.0.0  239.255.255.255.
 có th thc hin multicast, b nh tuyn (ting Anh: Router) trong
mô hình này phi có cht trong nhng mc ln nht
khin IP Multicast khó có th phát trin mnh). Khi ngun multicast truyp
multicast, b nh tuyn cc b s gi thông n các b nh tuyc
kt ni vi mng có các thành viên ca nhóm multicast.
y, trong cây multicast ca mô hình truyn tin multicast tng mng, các b
nh tuym v chuyn tip các gói tin
multicast ti các máy nhn, là các node lá ca cây multicast. Vai trò ca b nh tuyn
c minh hError! Reference source not found

6


Hình 3. Bộ định tuyến trong truyền tin multicast tầng mạng
Truyn tin multicast tng mng phát huy mnh m m ca truyn thông
multicast nói chung. Do các b nh tuy        
multicast, các cnh cng truyn vt lý, các gói tin multicast
c nhân bn ti các b nh tuyn làm cho s ng truyn
gim ti mc ti thiu sut truyn tin ca mt mc t
Vi kin trúc IP Multicast  s dng hin nay 
 






:
 












 . 













cao.
  t 





.
 Khi có quá nhiu kt ni hoc mt node mng không hong s gây ra rt
mng và phi sa cha li nhiu phn ca cây.
 Vic cân bng tnh tuyn l





.




 





 thay th li h tng
mng c xây dng là cc k ln. Chính vì vng chuyn giao sang
truyn thông multicast tng ng dng.

1.1.2.Multicast tầng ứng dụng
Do nhu cu s dng truy ngày càng ln, trong khi giao
thc IP multicast  tng m  ng cng vi rt nhi trên,
ng multicast ngày càng m rng sang multicast tng ng dng.

7

Multicast tng ng di và phá v h thng mng. Thay vào 
nó ch thc hin chn multicast trên các máy cui  tng ng dng. T
tng ng dng s truyn xung các tng mng và tng giao vn.  các tng th
 i.

Hình 4. Truyền thông multicast tầng mạng và tầng ứng dụng
(Hình vuông là các router, hình tròn là các máy đầu cuối)
Khi truyn multicast  tng ng dc nhân bn ti các b
nh tuyn gi (IP multicast) mà vic nhân bn
gói tin s c thc hin tu cui. V mu cui to nên
mt mng ph và giao thc truyn thông multicast phi xây dng và duy trì vic
truyn multicast trên mng ph này.
Có hai thông s c tính cht ca vic truyn multicast trên tng ph: stress
và stretch. Stress nh theo tng kt nm s c gi
mt giao thc  tng mi. Stretch i mi máy và là t l ca chiu dài
t ngun thành viên  mt mng ph ng dn unicast.
Nhìn chung, các giao thc tng mng có th ng:
 Chất lượng của đường truyền dữ liệu: là chng ci mt
s thông s stress, stretch và c node.
 Độ mạnh yê
́
u của tầng phủ: Mng không ter, các
node có th ri mng tm thi hon làm n các node nhn

 m ca các giao thc tng ng di vi
c s mt mát d liu truyn khi các thành viên b li và thi gian mà nó cn
 giao thc có th khôi phc l truyn cho các thành viên khác.
 Quá ti  s dng hiu qu tài nguyên mng, quá tu khin  mi thành
viên nên nht thông s giá thành quan tr c tính m rng
ca thành viên.

8

Do truyn thông multicast tng ng dng phi gi các gói tin ging nhau trên
cùng mt kt ni, hiu sut ca mô hình này không th tc bng truyn thông
multicast trên tng mng. Tuy nhiên, truyn tin multicast tng ng dng vn có kh
m ti nhing truyn và ngun tin multicast.
1.1.3.Các mô hình truyền tin multicast tầng ứng dụng
 có th truyc tiên cn có mt cu trúc topology
ca mng ph. Trong topology ca tng mng ph - tng mng ng dng, các máy tính
liên kt vi nhau. Mi máy tính gi là mt node mng liên kt o vi các node khác.
Vic xem máy tính là 1 node c s dng rt nhiu trong cu trúc ca các mng
               c v
a lý ca các máy tht.
Dng vi các node trên cây multicast (node
lá hoc node con), liên kt o s to n truyn tin t node lá sang các node con.
Có hai cách thc truyn thông multicast: multicast trên mng có cu trúc (tree-
first) và multicast trên mng không có cu trúc (mesh- nghiên cu
phân tích và la chn mng truyn thông phù hp cho video streaming.
Multicast theo hướng mesh-first
Trong cách tip cn mesh-firstc khi tham gia vào cây phi là thành
viên ca mt mng ph n ti các liên kt vi nhau dng
 c xây dng da trên các liên kt ca mng ph này.
Giao thc Narada là mt trong nhng giao thc multicast tng ng du tiên

v ng mesh-first. Nó ch nh m c bit là Rendezvous Point (RP)
c s d theo dõi s gia nhp ca mt thành viên mi.
Tt c các giao thc multicast tng m dng mt hoc mt s các thc
th   t gia nhp.
Xây dựng mesh: khi mt node mi mun gia nhp nhóm multicast, nó s có danh
p vào mesh do RP cung ci s la
chn ngu nhiên mt s các thành viên và gia nhg ging
ca nhp thành công khi mà ít nht mt thành viên
 thành viên mi là láng ging mesh.
Khi gia nhp vào mesh, thành viên mi bnh k p vi
các lang ging mesh ca nó. Bt c khi nào mt node gia nhp hoc mt thành viên ri

9

nhóm, nhóm này s i thông tin ca tt c i thành viên
trong nhóm gi trng thái ca tt c ng
c cp nht. Vic  các thông tin trng thái ca tt c thành viên trong
nhóm  mi thành viên dn ti quá ti kim soát ln, quá ti kim soát lên ti (O(N2))
vc cc Narada hiu qu ch c
nhóm Multicast là nh.


Hình 5. Giao thức Narada
Khi c thành viên D và E cùng li, mesh phân chia thành 2 ph 
thành viên A, B và C s ngng nhc thông tin trng thái t c
li. Mi thành viên có th kho sát các thành viên t khi nó ngng nhc thông
p trng th to ra mt kt ni mi và sa các phn. Chý ý rng, vic sa không
yêu cu s h tr cn có th thc hic ngay c khi RP b li.
Đường truyền dữ liệu: các thành viên ca mt nhóm thc hin mt giao thc
nh tuy 

Sự chọn lọc của meshng truyn d liu trong Narada là các cây nhp
cng cng truyn d liu ph thuc vào chng ca
các kt ni là mt phn ca mesh. Khi mt thành viên mi tham gia, hoc khôi phc t
các phn, mt tp ngu nhiên các cnh s c thêm vào mesh chn lc
nh k cn phc thc hin vi các c ci tin chng cng
truyn d liu. Vic thêm cnh (J,G) là có ích bi vì mt s ng ln các node unicast

10

có th c thay bng mt cnh mi. C thêm
hoc b t cnh cc thc hin gia cnh cm cui.
m ca mô hình này là kh u li cao do mi node tn ti nhiu liên
kt vi các node khác trong mm ca mô hình này là rt khó
 thc hin cân bng ti và cân b tr gia các node do ph thuc vào kin trúc
mng ph. Vm này thì không phù hp vi truyn video streaming do các
 tr khác nhau, gói tin gc có th n sau, gói tin gc.
Vic không cân b tr s làm n vic trình din d liu.
Multicast theo hướng tree-first
Trong cách tip cn tree-first, các node khi tham gia vào cây multicast s t tìm
cho mình mt node cha t a cây. Vic chn node cha
c thc hin da trên mt s a các
node hom b sâu ca cây cân bng gia các nhánh.
m ca mô hình này là các node có th ch tránh
c tình trng mi chu ti quá cao.

Hình 6. Mạng phủ 7 node (a) và cây multicast xây tương ứng (b)
Scribe là h thng multicast tng ng dng m rc xây dng trên Pastry.
 to nhóm multicast, Scribe to ra mt khoá Pastry t c bia
mng vi mc thc hin bng mt tp hp
các b nh tuyn Pastry t mt node   n nhóm gc ca Id. Bng vic

truyn lùi l  ng dn, các gói tin multicast t gc ti mi thành viên.
ng phát trin sau ca Scribe mà tp trung vào vic phân b truyn
thông.
Ngoài Scribe là h thng multicast tng ng dng xây d
có th xây dng multicast trên các mng ngang hàng có c


11

Mng ngang hàng có cu trúc thuc nhánh các mng ngang hàng phân tán trong
các mô hình mng ngang hàng. Mng ngang hàng có cu trúc khc phm
ca mng không cu trúc bng cách s dng h thng DHT (B 
ting anh: Distributed Hash Table). H th     t gia các nút
mng trong mng ph theo mt thut toán c thng thnh cht ch mi nút
mng s chu trách nhii vi mt phn d liu chia s trong mng. Vi cu trúc
này, khi mt máy cn tìm mt d liu, nó ch cn áp dng mt giao th xác
nh nút mng nào chu trách nhim cho d lic trc tin nút
m ly kt qu.
Phát trin trên mng ngang hàng có cu trúc s tn dm là kh 
m rng do cu trúc liên kt rõ ràng; vic tìm kic tìm
kim chung trong mng s m bc tìm kim chính t li
th rt quan trng khi áp dng mng ngang hàng có c trin khai truyn tin
multicast, do truyn tin multicast yêu cu kh nh tuyn ca mng ph  xây
dng nên cây multicast.
c phân b mt cách h không có mt máy tính
 quá nhiu d liu dn quá tnh tuyn. Do mng là có cu
p chuy duy trì mc
gim xung mc ti thia mc dành nhic chia s
tài nguyên.
m ca mô hình này là khi m li, vic khôi

phc l m bo lung d lii khó
i node bit rt ít thông tin v các node khác trong mng.
1.2.Truyền tin multicast thời gian thực
Mt nhánh trong truyn tin multicast là truyn tin multicast thi gian thc.
c áp dng trong các ng dng video streaming
trc tip có th xem là th mnh thc s ca mng ngang hàng so vi mô hình mng
client  server truyn thng. Ví d c th nht là khi chúng ta mun xem mt tr
bóng ri gia Real Maldrid  Barcelona. Mt thng kê cho bin
gn 1 t i theo dõi trn cu này trên toàn th gii và chc chn là ti th
không có 1 server nào có th  m  phát sóng trc tip tr u lên mng
Internet. Th  i 1 ng dng ca video streaming thi gian thc trên mng
n li có th theo dõi tru này vi cht

12

ng có th chp nhc. t tri ca mô hình mng ngang
hàng và hin nay vc phát tri ngày càng t. Khóa lun này
 xut v truyn tin multicast ng thi gian thc da trên giao thc
Chord nhm ng dng cho video streaming thi gian thc.
Trong truyn tin multicast thi gian thc tính riêng quan trng nht cn
ph c chng có th chp nhc :
 Inbound bandwith ti m l dec thành video vi cht
ng chp nhc . Vi các k thut decode bây gi thì các máy vi mc
download l240Kbits/s là có th c video.
  tr ti các máy là không quá l m bo tính thi gian thc . Tính cht
 ng rt quan trng trong các ng dng video streaming 2 chi 
ng dng 1 ching dng xem TV
c tính này li có th không quá quan trng








13

Chƣơng 2.Truyền tin multicast đa luồng thời gian thực
Trong  mt    hi c khái nim và cách thc truyn tin
n tin multicast thi gian thc. Mt trong nhc tính quan
trng ca h thng multicast là 1 máy khi tham gia vào h thng multicast có th va
là node gi d liu li va là node nhn d liu. T tính chn
truyn tin multicast t ng vi nhm , hiu qu ng
dng rn trên mng ngang hàng.
2.1. Tổng quan về truyền tin multicast đa luồng

Hình 7. Truyền tin mulicast đa luồng
V n truyc xây dng trên cây multicast vi m
rng : các node thay vì ch gi và nhn 1 gói d liu thì bây gi li nhn và gi nhiu
d li
Xét ví d  Hình 7. Bây gi gi s ta ch n stripe 1(lu
chính là truy  ng. Quá trình truy  
(ngun) gi d lin node con 2. Node 2 gi d liu cho node 3 , 4. Các node 3 , 4
gi d liu cho các node lá 5 , 6 ,7 ,y ta có th thy các node trong 2 , 3 , 4
u phi gi d li      nhn v 1 lung d liu.
 6 , 7 , 8 ch nhn d liu mà không phi gi. Vic truyn
 này trên mng m tiêu chí quan trng nht
trong mng ngang hàng : tính công bằng. Trên mng ngang hàng các node gu
d lic nhng d liu xi ma node


14

 thng mu kis  mng ngang hàng phát trin mnh
trên h th ng hng nh phân ,
còn trên thc t mô hình cây multicast chc chn s phc tu.
u v ng vi fanout = 16 (mi node gi
d lin 90% là node lá và ch có 10% là node trong.
i gánh toàn b ng.
Mn nht cu truyng là gii quyc v
vc tính công bng cho các node tham gia h thng multicast.
Xét ví d  Hình 7. Bây gi n c 2 lung stripe 1 , 2. Sau khi xét
quá trình truyn tin ca c 2 lung ta có th thy tt c u nhn 2
2 lung d liu và gng d liu. N
thì qu thc h thc s công bng mong mun.
Ví d  Hình 7 có th xem là hình mn nhng.
Vic phát trin và ng dng trong h thng mng ngang hàng v phc tp l
nhip 1 s v :
 S lung mong mun là l m bo mi lung d liu khi truy
m nh  tránh tc nghn. Vi lui cách xây
dng vic gi và nhân các lung ti mi node trong cây  phc
t  m bo vn gi c tính công bng
 Tính không  nh ca m    c t ca h thng
mng ngang hàng. Các node trong cây multicast s vào ra liên t cây
multicast vm bo truyc n tt c các node thì cn ph
ch i li cây multicast cho phù hp.
Gt s nghiên cn xây dng
trên mng ngang hàng có cu trúc s dng giao thc DHT(B    -
Distributed Hash Table). Mc 2.2 s trình bày v nhng gii pháp này
2.2.Splitstream
Splitstream là gii pháp xây d    ng da trên nn tng

Pastry , Scribe.
 hic Splitstream ta s tìm hiu rõ v cu trúc Pastry và Scribe ngay sau
.

15

Pastry
Là mt giao thc phân phi d linh tuyn  tng ng dng trong các ng
dng mng ngang hàng có ca nó Pastry có hai nhim
v chính là phân phi d liu trong mt mng ngang hàng và tìm kim d liu trong
mng da vào khóa tìm kim. H thng Pastry là mt h thng phân tán có kh 
t cu hình và có tính nh cao, kh ng chu li tng th
kh  rng và ng dng cho nhng dch v ln.
 dng giao th lnh danh các node tham gia vào h
thng mng. Vi da ch ln thì giao thc DHT qu thc rt phù hp vi h thng
mng ngang hàng , không ngoi tr i vu thú v ca Pastry
nm  bnh tuyn s c mô t 

Hình 8. Bảng định tuyến của node 10233102 trong Pastry
Node và d liu trong m   nh danh bi mt giá tr 128 bit
(nodeId, ObjId). Mi d li trong mi m 
c mt giá tr gi là khóa và d li ti node qun lý dãy các khóa
có cha giá tr khóa này (giá tr  liu).
Mi node trong mng s  mt bnh tuyn (routing table) mt tp các
hàng xóm (neighborhood set) và mt tp namespace. Pastry dùng các d li
qun lý và duy trì s nh ca mng thi phc v cho vic tìm kim d liu.

16

 Hình 8 là bnh tuyn ca nodeId 10233102. Da vào bnh tuyn này

node 10233102 có th gi d lin cho node khác. Ví d node 10233102 mun gi
tu tiên nó s tìm trong các node hàng xóm
trong bnh tuyn , nu có s gn luôn. Nu không tìm thy nó s tìm trong
Routing table và so sánh các ký t u ca node cn gn (33321220) vi các
ct trong Routing table. C th là node 33321220 có ký t u là 3 : nó s tìm trong
Routing table ti hàng 1 cc node 31203203. Do ngay t ký t u ca
node cn gi nên quá trình tìm kim dng li. Node 10233102 s gi
n node 31203203 vi yêu cu s gn node 33321220. Quá trình
này tip tc xc node cn gi.


Hình 9. Node 10233102 gửi thông điệp m đến node 33321220
nh k gi các gói tin keep-alive cho các node hàng xóm ca nó và
nc gói keep-alive ca mt node hàng xóm
trong tp hàng xóm ca nó trong mt thi gian nhnh thì nó s  node hàng
i khi mng và t ng update thông tin.
Scribe
 h tng cho vic truyn multicast  tng ng dng da trên giao
th nó thc nhc tính ca mt giao thc
mng ngang hàng có cu trúc ng thi mang nhm này vào trong vic

17

truy  p multicast  tng ng dng. Gi  astry, Scribe là mô hình
phân quyn hoàn toàn nó có kh ng, duy trình mng, phát tán thông báo
mt cách có t chc và tin cng thi s ng nhóm,
s thành viên trong nhóm ló nhiu tài nguyên trên mng.
Scribe s xây dng mt cây multicast bng cách gi th tc join giao thc Pastry
mi khi mt nút có yêu cp vào nhóm truyn multicast. Và nh kh 
cu hình ca Pastry mà v qun lý nút, nút l vào ca nút tr nên d

 ng thi Scribe s dng giao th   phát tán thông báo multicast.
Scribe t chc theo nhóm, tc là hp nhng node có cùng nhu cu nhn d liu
multicast vào mt nhóm, và v mt logic thì các node trong nhóm s có quan h vi
nhau theo hình cây(s gii thích k  phn sau). Bt k mt node nào trong m
có th thc hic 3 thao tác: mt là to ra 1 group, hai là join vào m
t c (tr thành mt node trong cây multicast) và ba là truyn multicast ti tt c
các node có trong group (ngun multicast). Scribe là mt mô hình cung cp mt cách
c gng t c truyn multicast nó có th qu  c nhiu
group cùng mt lúc, các group có s ng thành viên l    u tài
nguyên trong mng.
Chi tiết giải thuật:
Mô hình:
Mô   thc thi Scribe là mt m        t
ng dng cng dng này s cung cp cho các
c gi khi mnh tuyn qua mt
c gn mt node mà có nodeId gn vi key
nht hoc n a ch c  p trong
Scribe có 4 kiu là : JOIN (xin tham gia vào mt group), CREATE (to mt group
mi), LEAVE (ri khi group), MULTICAST (truyp multicast).
Quản lý nhóm:
 Mi nhóm truyn multicast có mnh danh groupId duy nht
 Scirbe node (tc là node trong mng dng Scrible) có
id gn vi id ca group (groupId) nhc gm g
là gc cng vi groupId này luôn.
 To Nhóm: Mn khi to mc thc
hin s là :

18

 B1nh tuyp route(CREATE,groupId).

 B2: giao thc Pastry s gp này tm cui là mt node có nodeId
gn vi groupId nht. Và node này s c ca group mi to
ra.
 B3: H thng s ki an toàn, các thông tin v chng thc nu không có
v gì thì s thêm group mt trong mng.
Trong vic tc quan trng nhc ki an toàn và
chng thiu này có ng rt ln ti s an toàn ca toàn mng
nói chung ch không ch riêng s an toàn ca group multicast.
Quản lý thành viên :
Mt group v n logic là mt cây multicast có gm gp", mi
khi có mt node mc join vào group thì nó s tr thành mt thành viên ca group
 thành mt thành phn ca cây multicast, vì th ph h
t chc, qun lý các thành viên ca group. Nu mt node Scribe là mt phn ca group
thì v n cây multicast thì nó là mt forwarder. Mi mt forwarder duy trì
mt bng gi là children table mà mi entry ca bng này s ga ch
ip ca mng c.
Join group:
Khi mt node mun join vào m thc hic sau:
 G  p JOIN vi groupId ca group cn join làm key: route
(JOIN,groupId).
 Giao thc Pastry s nh tuyn nó tm g
- Nu node trung gian trong quá trình truyp là mt forwarder (mt
thành phn cn ch là thêm node cn join vào
làm mt con ca node forwarder này.
- Nu node trung gian không phi là mt forwarder ca group cn join vào thì
thc hic:
 To mt children table cho node trung gian và thêm thông tin ca node cn join
vào bng này.
 Gp JOIN ca node trung gian tm gp (lúc này thay cho vic
thc hi thc

hi  này ta s c mt danh sách các node mi join vào
group thay vì ch mu.

19

 d hiu ta xét ví d sau : mm gp là node A có nodeId = 1100
  i)

Hình 10. Quá trình 1 node join vào group
Node B có nodeId là 0111 mun join vào group có A là gc. nó s gi gói tin
route(JOIN,x) vi x là groupId ca group này, giao thc Pastry s nh tuyn gói tin
ti là mt thành phn ca group
này cho nên D s to ra mt children table c      
(122.145.1.23;0111). Ti  gi gói tin yêu cu join vào group có gc là A:
route(JOIN,x). Tip tc giao thc Pastry lnh tuyn nó t
phi là thành viên ca group này vì th  t to ra mt childeren table ca nó
i gói tin route(JOIN,x). Gói tin
này tip tnh tuyn và tc A vì A là mt thành ca group cho nên  
A s thêm entry (10.10.1.123;1101) vào children table ca nó. Kt qu là ta s có thêm
3 thành phn mi ca group là B ,D, E.
Tip theo node C có nodeId là 0100 mu bu nó
 gi gói tin yêu cnh tuyn ti node D và vì
bây gi t thành phn cn D s thêm vào children
table ca nó mt entry mi (123.134.12.12;0100).
Leave group:
Khi mn ri khi group nó s ghi mt cách cc b r
ri khi group (tc là ch mt mình nó bii khi mng). u bng
children table ca node này là rng tc là nó không có con trong cây multicast thì nó
s gp LEAVE ti cha cp này s c
 quy trong cây multicast cho ti khi nó ti mã ri khi

group. Còn nu bng children table ca node mun ri mng không rng thì nó làm

20

ng hp nó không có con nào ca nó s 
li và th sa li (s trình bày  i).
Vi cách join và leave  này và vc tính phân phi ngu nhiên
ca Pastry cây multicast s c xây dng mt
node nào trong cây multicast ngay c node gc chu quá nhiu kit ni ti các node
khác. Vic này giúp cho Scribe có kh  rng v  kh
c là c  n
mng thì Scribe vn có th c.
Truyền multicast tới mạng :
Khi mn truyn multicast ti các m trong m
nó s g  p multicast t m gp (route(MULTICAST,rootId)). Sau khi
m gp nhp này nó s gi tr li node kia Ip ca nó (rootIP), sau
 truyn thông tin mun gi tm gm gp s s copy gói tin
multicast này gi cho các con ca nó trong cây multicast (nm con này
khi nhc d lii tip tc copy d lii ti các con ca nó trong
cây (nu có). C lp ly và ch dng li vic này khi d liu ti các node
là node lá ca cây.

Hình 11. Truyền tin multicast trong group Scribe
Gi s   trên Sender là node cn gi d liu cho cây multicast có
gc là 1100. Nó s gi gói tin route(MULTICAST,1100), node 1100 nhc gói tin
và tr la ch ip ca nó t lúc này sender giao tip vi node gc này
thông qua ip (bây gi là quan h trong giao thc tcp/ip ch n
pastry hay p2p gì c). Sender gi d liu cho node gc 1100 node này s to mt bn
sao d liu và gi cho con ca nó là 1101. Node 1101 nhc d liu t root, nó
 to mt bn sao và gi cho 1001 là con ca nó. Node 1001 li tip tc copy d

liu và gi cho 0111 và 0100 là thành viên trong bng children table ca nó. Khi các

×