Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
1,47 MB
Nội dung
TRƯỜNG………………….
KHOA……………………….
‐‐‐‐‐[\[\‐‐‐‐‐
Báocáotốtnghiệp
Đềtài:
Xây dựngứngdụngvideostreammingdựa
trên mạngnganghàng Chord
Tóm tắt
Khóa luận này đưa ra một phương thức truyền tin multicast trên nền tảng mạng
ngang hàng mới nhằm khắc phục những nhược điểm của một số phương thức truyền tin
multicast đã tồn tại từ trước. Những nhược điểm đó gồm có việc phải phụ thuộc hoàn
toàn vào khả năng của router đối với IP multicast hay vấn đề quản lý cây multicast khó
khăn đối v
ới một số giao thức truyền tin multicast trên tầng ứngdụng khác.
Khóa luận mô tả chi tiết giao thức mạngnganghàng có cấu trúc Chord và cách thức
truyền tin multicast trên nền mạngnganghàng Chord. Trong khóa luận, vấn đề truyền
video streaming cũng được đề cập đến. Từ đó khóa luận đã xâydựng nên ứngdụng
truyền video streaming multicast trên nền Chord. Việc đánh giá kết quả thu được qua quá
trình xâydựngứngdụng cho ta thấy được những ư
u điểm của việc triển khai multicast
trên mạngngang hàng, cũng như những nhược điểm cần khắc phục.
MỤC LỤC
Mở đầu 5
Chương I: Tổng quan về video streaming multicast 7
1.1. Giới thiệu về video streaming 7
1.2. Giới thiệu multicast 9
1.3. IP multicast 10
1.4. Multicast tầng ứngdụng ( ALM – Application-layer Multicast) 12
1.4.1. Giới thiệu 12
1.4.2. Một số giải pháp truyền tin multicast trên tầng ứngdụng 13
Chương II: Truyền tin multicast trên nền mạngnganghàng có cấu trúc Chord 16
2.1. Giới thiệu mạngnganghàng 16
2.2.1. Khái niệm 16
2.2.2. Ưu thế của mạngnganghàng 16
2.2.3. Phân loại mạngnganghàng 16
2.2. Mạngnganghàng có cấu trúc Chord 18
2.2.1. Giới thiệu chung 18
2.2.2. Finger table 20
2.2.3. Node tham gia/ rời mạng và quá trình đồng bộ ( stabilization) 21
2.3. Thuật toán truyền tin multicast dựatrên nền mạngChord 22
Chương III: Xâydựngứngdụng truyền tin video streaming multicast thời gian thực trên nền mạng
ngang hàng có cấ
u trúc Chord 26
3.1. Mục tiêu và yêu cầu của việc xâydựngứngdụng 26
3.2. Ý tưởng 26
3.3. Thiết kế hệ thống 27
3.3.1. Tạo cây multicast 27
3.3.1. Tạo dữ liệu thời gian thực 28
3.3.2. Truyền hình ảnh 28
3.3.3. Xử lý và hiển hình ảnh 29
3.4. Thiết kế giao thức 29
3.4.1. Giao thức máy chủ 29
3.4.2. Giao thức máy khách 31
3.5. Thiết kế chương trình 33
3.5.1. Lớp WebcamServer 34
3.5.2. Lớp WebcamClient 36
Chương IV: Kết quả đánh giá hệ thống 39
4.1. Kết quả thử nghiệm 39
4.1.1. Môi trường chạy thử 39
4.1.2. Kết quả đạt được 39
4.2. Kết quả đánh giá hiệu n
ăng 39
Chương V: Kết luận 41
Tài liệu tham khảo 42
Mở đầu
Trong những ngày đầu phát triển của ứngdụng đa phương tiện, khoảng nửa cuối
thập niên 90, việc xem một videotrênmạng gần như là điều không thể. Ngày nay, cùng
với sự bùng nổ của Internet, các ứngdụng đa phương tiện trong đó có video streaming đã
trở thành nhu cầu không thể thiếu của nhiều cư dân mạng.Theo thống kê, riêng tại Mỹ đã
có khoảng 13,5 tỉ video được xem trong tháng 10 – 2008 (nguồn comScore). Con s
ố trên
đủ cho ta thấy được sự lớn mạnh không ngừng của các ứngdụngvideo streaming.
Tuy nhiên, để phát triển một ứngdụngvideo streaming tốt gặp phải nhiều vấn đề.
Ứng dụngvideo streaming đòi hỏi nhiều băng thông và yêu cầu độ trễ thấp. Chính vì vậy
cần phải có một phương thức phân phát videotrên đường truyền hợp lý. IP multicast với
khả năng tối ưu hóa đường truyền là một gi
ải pháp cho vấn đề này. Tuy nhiên, việc triển
khai IP multicast lại rất tốn kém bởi nó đòi hỏi toàn mạng phải có những Router đắt tiền,
chuyên dụng. Điều này hoàn toàn không khả thi trong một mạng diện rộng như Internet.
Triển khai multicast trên tầng ứngdụng với việc không làm thay đổi hạ tầng mạng phía
dưới là một giải pháp thay thế hữu hiệu cho IP multicast.
Hiện nay, trên thế giới đã và đang phát triển rất nhi
ều phương pháp truyền tin
multiast trên tầng ứngdụng khác nhau. Trong đó truyền tin multicast dựamạngngang
hàng hứa hẹn có nhiều ưu điểm. Đặc thù của truyền tin multicast là phải tạo được một
cây multicast tối ưu, có sự liên kết chặt chẽ giữa các node với nhau, có khả năng phục hồi
lỗi nhanh. Mạngnganghàng có cấu trúc hoàn toàn có thể đáp ứng được yêu cầu đó với
việc các node được liên kết v
ới nhau bằng một thuật toán cụ thể.
Để làm rõ hơn những lợi thế của mạngnganghàng có cấu trúc trong việc truyền tin
multicast, khóa luận này đã nghiên cứu xâydựng một ứngdụng truyền video streaming
multicast dựatrên nền tảng mạngnganghàng có cấu trúc Chord. Sau đây là tóm tắt nội
dung khóa luận gồm 5 chương.
Chương 1: Tổng quan về video streaming và multicast
Giới thiệu về video streaming và trình bày những khái cơ bản về multicast, so sánh
với các phương thứ
c truyền tin khác. IP multicast và multicast tầng ứngdụng được trình
bày một cách ngắn gọn để từ đó có thể thấy được ưu điểm của multicast tầng ứngdụng so
với IP multicast.
Chương 2: Truyền tin multicast trên nền mạngnganghàng có cấu trúc Chord
Phần này đưa ra cái nhìn tổng quan về mạngnganghàng bao gồm: khái niệm, phân
loại và ưu điểm chung của mạngngang hàng. Tiếp đó, sẽ giới thiệu hoạt động của giao
thức Chord. Đặc biệt, việc truyền tin multicast dựatrên nền mạngChord được đề cập một
cách chi tiết.
Chương 3: Xâydựngứngdụng truyền multicast video streaming thời gian
thực trên nền Chord
Chương 3 đề cập đến những yêu c
ầu, mục tiêu của ứngdụng và cách thức xâydựng
ứng dụng sao cho phù hợp với những mục tiêu đó. Trong đó, trình bày chi tiết về thiết kế
hệ thống, thiết kế giao thức và thiết kế chương trình của ứng dụng.
Chương 4: Kết quả đánh giá hệ thống
Sau các nghiên cứu ở các phần trên, chương 4 trình bày về môi trường chạy thử
chương trình, các kết quả và đánh giá thu đượ
c sau quá trình thử nghiêm.
Chương 5: Kết luận
Chương I: Tổng quan về video streaming multicast
1.1. Giới thiệu về video streaming
Video là một loại dữ liệu đa phương tiện quan trọng phục vụ cho truyền thông hoặc
cho nhu cầu giải trí của con người trong nhiều thập niên. Trong thời kỳ đầu video được
xử lý và truyền dưới dạng tín hiệu tương tự (analog). Với sự phát triển không ngừng
của mạch điện tử và máy tính dẫn đến việ
c số hóa video và mở ra một cuộc cách mạng về
nén và truyền thông video. Sự phát triển và phổ biến của Internet giữa những năm 90 đã
định hướng truyền thông video qua mạng chuyển mạch gói best-effort. Video qua mạng
qua mạng Internet gặp phải rất nhiều yếu tố bất lợi về băng thông, độ trễ và mất gói tin,
cùng với một số vấn đề như làm thế nào để chia sẽ tài nguyên mạng giữa các luông hay
làm th
ế nào có thể triển khai hiệu quả phương thức truyền thông một- nhiều ( truyền dữ
liệu từ một nguồn đến nhiều đích cùng một lúc). Từ đó đã có rất nhiều giải pháp được
nghiên cứu và phát triển nhằm khác phục những vấn đề này.
Video streaming được định nghĩa là một “dòng chảy” video , nghĩa là dữ liệu video
được truyền liên tục từ một nguồn đến m
ột đích nào đó. Ý tưởng cơ bản của video
streaming đó là chia video thành từng frame, sau đó liên tục truyền những phần được chia
ra và bên nhận có thể hiện thị những phần video đã nhận được mà không phải đợi cho
đến khi toàn bộ video được truyền xong.
Tuy nhiên có một vài vấn đề ảnh hưởng trực tiếp đến video streaming. Video
streaming qua mạng Internet gặp rất nhiều khó khăn bởi Internet chỉ cung cấp dịch vụ
truy
ền best-effort (cố gắng tối đa). Do đó, nó không đảm bảo về băng thông, độ trễ,
jitter hay sự mất gói tin. Những nhân tố này thường không đoán trước được và động.
Chính vì vậy, mục tiêu chính của việc xâydựng một ứngdụngvideo streaming là phải
thiết kết một hệ thống phân phát video chất lượng cao đáng tin cây qua mạng Internet.
Các ứngdụngvideo streaming thường được nhiều người dùng cùng một lúc, tức là
video phải
được truyền cùng lúc tới nhiều người như video conference hay truyền hình
trực tuyến. Truyền tin multicast là một giải pháp thích hợp cho những ứngdụng đó. Phần
dưới đây sẽ trình bày chi tiết về multicast.
Cấu thành nên một hệ thống video streaming gồm có 6 yếu tố cơ bản: cơ chế nén
video, cơ chế điều khiển chất lượng dịch vụ tầng ứng dụng, dịch vụ phân phát video, máy
chủ streaming, cơ chế đồng bộ dữ liệu và giao thức dành cho video streaming [10]. Hình
1 cho ta thấy được mối liên hệ giữa các yếu tố này với nhau.
Hình 1: Cấu trúc ứngdụngvideo streaming
Cơ chế nén video. Dữ liệu video nguyên gốc cần phải được nén trước khi
được truyền nhằm tiết kiệm băng thông.
Cơ chế điều khiển chất lượng dịch vụ tầng ứng dụng. Để đối phó với sự
biến thiên của tài nguyền mạng hoặc để cung cấp chất lượng hình ảnh thay
đổi theo t
ừng người dùng, nhiều kỹ thuật điều kiển chất lượng dịch vụ tầng
ứng dụng đã được đưa ra. Kỹ thuật đó bao gồm điều khiển tắc nghẽn và điều
khiển lỗi. Điều khiển tắc nghẽn được triển khai để ngăn ngừa việc mất gói tin
và giảm độ trễ. Trong khi đó, điều khiể
n lỗi cải thiện chất lượng hình ảnh khi
có gói tin bị mất.
Dịch vụ phân phát videotrên đường truyền. Được xâydựngtrên nền của
Internet ( giao thức IP), dịch vụ phân phát videotrên đường truyền cho phép
đạt được QoS ( chất lượng dịch vụ) và hiệu quả cho việc phân phát video qua
mạng Internet.
Máy chủ streaming. Máy chủ streaming đóng vai trò quan trọng trong việc
cung cấp dịch vụ streaming. Máy chủ streaming được yêu cầu phải x
ử lý các
dữ liệu video với sự rằng buộc về thời gian, đồng thời hỗ trợ các hành động
tương tác như dừng (pause), tua (fast forward). Một server streaming gồm 3
hệ thống con: bộ truyền tin (communicator) ví dụ như giao thức tầng giao
vận, hệ điều hành và hệ thống lưu trữ.
Cơ chế đồng bộ dữ liệu. Với cơ chế đồng bộ, ứngdụng tại bên nhận có thể
hiển thị video gần giống như khi nó được khởi tạo tại bên gửi. Một ví dụ của
cơ ch
ế đồng bộ là cử động môi của người nói phải phù hợp với tiếng nói họ
phát ra.
Giao thức dành cho video streaming. Giao thức được thiết kế và chuẩn hóa
cho truyền thông giữa máy khách và máy chủ streaming. Giao thức có thể
được chia làm 3 loại: giao thức tầng mạng như Internet Protocol (IP), giao
thức tầng giao vận như User Datagram Protocol (UDP) và giao thức điều
khiển phiên như Real-time Streaming Protocol (RTSP).
1.2. Giới thiệu multicast
Trong hệ thống mạ
ng của chúng ta hiện nay có 3 cách truyền tin cơ bản đó là
unicast, multicast và broadcast (Hình 2).
Unicast là phương thức truyền tin cơ sở của IP network. Với unicast một máy
truyền và chỉ có một máy nhận theo kiểu point to point. Hiện nay hầu hết các ứngdụng
mạng được phát triển và sử dụngtrên nền phương thức unicast như HTTP, Telnet, FTP
… Nhưng với những ứngdụng đòi hỏi phải truyền tin từ một nguồn cho một nhóm người
dùng như video streaming thì việc triên khai trên unicast là không hiệu quả và truyền tin
multicast là giải pháp thay thế.
Multicast là cách truyền dữ liệu từ một – nhiều (one-to-many) tức là dữ liệu được
gửi từ một node nguồn và một nhóm node đích sẽ nhận được cùng dữ liệu đó. Cách
truyền này khác với unicast– gửi thông tin trênmạng theo cách truyền gói tin một- một
(one – to – one). Nếu multicast có thể so sánh với cuộc gọi chung cho nhiều người
(conference call) thì unicast có thể so sánh với cuộc gọ
i riêng giữa hai người.
Broadcast được mô tả như truyền thông tin cho toàn mạng, tất cả các điểm trong
mạng đều nhận được thông báo này. Trong trường hợp này chỉ một người gửi nhưng tất
cả người trong mạng đều nhận được. Broadcast được hỗ trợ trong mạng LAN (ví dụ
Ethernet) và được sử dụng để gửi những gói tin giống nhau đến các máy trong mạng
LAN (ví dụ ARP được sử dụng g
ửi địa chỉ đến toàn bộ máy trong mạng LAN). Network
protocol (như IP) hỗ trợ khuôn dạng gói tin để gửi đến bất kỳ hệ thống nào trong logical
network.
Có thể nói, multicast là cách thức hiệu quả nhất để truyền dữ liệu đến một nhóm
người trên Internet. Chúng ta cũng có thể sử dụng unicast để truyền tin lần lượt từ nguồn
đến từng node trong nhóm. Tuy nhiên, với cách này thì node nguồn sẽ phải lặp đi lặp lại
việc truyền 1 gói tin cho rất nhiều node khác, dẫn đến việc tiêu tốn tài nguyên của node
nguồn ( CPU, memory …). Đồng thời, sẽ có rất nhiều gói tin không cần thi
ết được lưu
thông trên mạng, dẫn đến lãng phí tài nguyên mạng.
Với multicast, một cây multicast sẽ được hình thành với nguồn là gốc của cây và
các thành phần còn lại của cây có thể là node đầu cuối ( end – host ) hoặc có thể là router
tùy vào từng công nghệ multicast khác nhau. Thay vì việc node nguồn nhân bản gói tin
và gửi đến từng node trong nhóm thì nó chỉ truyền cho 1 hoặc vài node nhất định và các
node này có nhiệm vụ sao chép và truyền gói tin theo cây multicast.
Hình 2: Các phương thức truyền tin trênmạng
1.3. IP multicast
IP multicast (Hình 3) là chuẩn mở của IETF (Internet Engineering Task Force)[3],
dùng để truyền dữ liệu tới nhiều người nhận.Trong IP multicast, các router sẽ đóng vai
trò là node trung gian trong cây multicast và có trách nhiệm sao chép gói tin rồi truyền
cho các node ứngdụng - ở đây, các node này sẽ đóng vai trò là ngọn của cây.
[...]... Chord Napster Hinh 8: Phân loại mạng nganghàngMạngnganghàng thuần túy được chia làm 2 loại: mạngnganghàng có cấu trúc và mạngnganghàng không cấu trúc Mạngnganghàng không cấu trúc là khi các liên kết giữa các nút mạng trong mạng phủ được thiết lập ngẫu nhiên (tức là không theo qui luật nào) Những mạng như thế này dễ dàng được xâydựng vì một máy mới khi muốn tham gia mạng có thể lấy các liên kết... phân tán của mạngnganghàng cũng giúp cho mạng hoạt động tốt khi một số máy gặp sự cố Đối với cấu trúc tập trung, chỉ cần máy chủ gặp sự cố thì cả hệ thống sẽ ngưng trệ 2.2.3 Phân loại mạng nganghàngMạngnganghàng P2P được chia làm hai loại chính: mạng nganghàng thuần túy và mạng nganghàng lai ghép (Hình 8) Peer-to-Peer Lai ghép Thuần túy Không cấu trúc Gnutella Có cấu trúc CAN Chord Napster... khi một node bị lỗi hoặc rời mạng thì việc khôi phục lại cây multicast sẽ khó khăn hơn rất nhiều so với mô hình mesh-first Hình 7: (a) Mạng phủ 7 node (b) Cây multicast tạo từ mạng phủ Chương II: Truyền tin multicast trên nền mạng nganghàng có cấu trúc Chord 2.1 Giới thiệu mạngnganghàng 2.2.1 Khái niệm Một mạng máy tính nganghàng (Peer-to-peer hoặc P2P) chủ yếu dựatrên sức mạnh tính toán và băng... cầu của ứngdụng Có 2 cách phản hồi đó là: (i) Gói tin phản hồi sẽ được gửi ngược lại theo cây broadcast đã được hình thành từ trước (ii) Gói tin phản hồi được gửi trực tiếp đến node nguồn của broadcast Chương III: Xâydựngứngdụng truyền tin video streaming multicast thời gian thực trên nền mạngnganghàng có cấu trúc Chord 3.1 Mục tiêu và yêu cầu của việc xâydựngứngdụng Hiện... nay trên thế giới có rất nhiều ứngdụng truyền video streaming, hầu hết trong số chúng sử dụng mô hình khách – chủ (client – server) dựatrên unicast, tức là máy khách gửi yêu cầu đến máy chủ, máy chủ gửi dữ liệu cho từng máy khách sử dụng truyền tin unicast; hoặc có số ít ứngdụngvideo streaming sử dụng truyền tin IP multicast cho việc phân phát video cho người dùng ví dụ như Cisco IPTV Các ứng dụng. .. yêu cầu trên, mục tiêu của khóa luận đặt ra là: Đưa ra giải pháp và thiết kế giao thức truyền video streaming Xâydựng chương trình thử nghiệm dựatrên giải pháp và thiết kế được đưa ra Cuối cùng, đánh giá chương trình đã xâydựng để kiểm tra xem ứngdụng có đạt được những yêu cầu đặt ra ban đầu hay không 3.2 Ý tưởng Như đã trình bày ở những phần trên, giao thức Chord là một giao thức mạngngang hàng. .. multicast sẽ hình thành một mạng phủ ( overlay network) Trong trường hợp này mạng phủ chính là mạngChord Node nguồn khởi tạo mạngChord Các node trong nhóm multicast tham gia vào nhóm bằng cách kết nối vào mạngChord mà node nguồn vừa tạo Từ đó việc truyền multicast trở thành việc truyền broadcast trên toàn mạngChord Phần dưới đây mô tả chi tiết thuật toán truyền broadcast trong mạngChord [8] Thuật toán... Chính vì vậy với những ứngdụng cần có sự liên kết chặt chẽ giữa các node với nhau như multicast thì mạngnganghàng không cấu trúc không phải là sự lựa chọn tối ưu Mạngnganghàng có cấu trúc khắc phục nhược điểm của mạng không cấu trúc bằng cách sử dụng hệ thống DHT (Bảng Băm Phân Tán, tiếng anh: Distributed Hash Table) Hệ thống này định nghĩa liên kết giữa các nút mạng trong mạng phủ theo một thuật... được diễn ra trực tiếp giữa 2 node Việc triển khai truyền tin multicast trênmạngnganghàng lai ghép gần giống như mô hình proxy-base ALM Nhược điểm chính của nó vẫn là chi phí cao cho các server trung gian Ứngdụng điển hình cho mô hình mạng này là Napster 2.2 Mạngnganghàng có cấu trúc Chord 2.2.1 Giới thiệu chung Giao thức Chord là một giao thức định tuyến DHT bởi một nhóm sinh viên từ trường Đại... trúc đơn giản và mạnh mẽ, lượng thông tin được truyền để duy trì mạng là thấp; Chord có cơ chế phục hồi khi một node hoặc nhiều node bị lỗi Thuật toán truyền multicast trên nền Chord cũng rất đơn giản và hiệu quả Chính vì vậy, truyền video streaming multicast được xâydựngtrên nền mạngChord Giao thức UDP được sử dụng để truyền dữ liệu video UDP có ưu điểm là truyền dữ liệu nhanh nhất có thể Tuy nhiên . loại mạng ngang hàng
Mạng ngang hàng thuần túy được chia làm 2 loại: mạng ngang hàng có cấu trúc
và mạng ngang hàng không cấu trúc.
Mạng ngang hàng. multicast dựa trên nền mạng Chord 22
Chương III: Xây dựng ứng dụng truyền tin video streaming multicast thời gian thực trên nền mạng
ngang hàng có cấ
u trúc Chord