Đánh giá hiệu năng hoạt động của phần mềm dimdim web meeting
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
Trang 2LỜI CẢM ƠN
Trong quá trình thực hiện đề tài : “ Xây Dựng Kịch Bản Đánh Giá Hiệu Năng Hoạt Động Của Phần Mền DimDim Web Meeting” Nhóm em
xin chân thành gửi lời cảm ơn sâu sắc nhất đến thầy giáo Mai Xuân Phú
đã chỉ bảo và hướng dẫn nhóm tận tình trong suốt quá trình nhóm thực hiện đồ án, để nhóm chúng em có thể hoàn thành tốt Đồ Án Chuyên
Ngành này
Nhóm xin chân thành cảm ơn các Thầy, Cô giáo bộ môn đã giảng dạy, cung cấp cho chúng em nhiều kiến thức trong suốt quá trình học tập tại trường Đại Học Công Nghiệp TP.Hồ Chí Minh
Một lần nữa nhóm chúng em xin chân thành cảm ơn tới Khoa Công Nghệ Thông Tin đã tạo điều kiện cho chúng em học tập và phát triển kỹ năng cũng như chuyên môn ngành nghề mà mình đã chọn
TP.HCM, Ngày 15 Tháng 06 Năm 2012
Nhóm Sinh Viên
Phạm Khắc Minh Vương Văn Dũng
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 4
NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN
Trang 5
MỤC LỤC
I GIỚI THIỆU CHUNG - 9
1 Tóm Lược Giao Thức RTP Và RTCP - 9
2 Kết Quả Của Đồ Án 2 - 9
Giới Thiệu Về DimDim - 9
Tính Năng Nổi Bật Của DimDim So Với Các Phần Mềm Khác - 10
Hiện Trạng Của Đồ Án Trước Khi Thực Hiện Đồ Án 3 - 10
Mục Tiêu Của Đồ Án 3 - 11
II XÂY DỰNG CÁC MÔ HÌNH TEST ĐỂ ĐÁNH GIÁ HIỆU NĂNG CỦA DIMDIM WEBMEETING - 12
1 Giao Thức Real Time Messaging Protocol - RTMP - 12
Giới Thiệu - 12
Các Cơ Chế Hoạt Động Của RTMP - 13
Quy Trình Bắt Tay - 13
Tiêu Đề RTMP - 14
Một Số Giá Trị Trong Trường Content Type - 15
Chuẩn Mã Hoá Dữ Liệu AMF - Action Message Format - 15
Truyền Tải Nhiều Đối Tượng AMF Trên Cùng Một Kết Nối - 15
2 Giả Lập Các Trường Hợp Mạng Trong Hệ Thống - 17
3 Sử Dụng NetLimieter Để Thiết Lập Bang Thông Mạng Trong Hệ Thống - 18
4 Sử Dụng Phần Mềm Wireshark Để Bắt Các Gói Tin - 19
5 Xây Dựng Kịch Bản Test - 22
Mẫu Gói Tin Mặc Định - 23
Mẫu Gói Tin Bị Trễ - 24
Mẫu Gói Tin Trùng Lặp - 28
Mẫu Mất Gói Tin - 31
Mẫu Hư Gói Tin - 36
III KẾT LUẬN - 38
IV TÀI LIỆU THAM KHẢO - 39
Trang 6MỤC LỤC HÌNH
Hình 1.1 : Mô Hình Hệ Thống DimDim Web Meeting
Hình 1.2 : Hình Minh Họa Lúc Diễn Ra Phiên Họp Của Hệ Thống
Hình 2.1.1 : Cơ Chế Hoạt Động Của Giao Thức RTMP
Hình 2.1.2 : Quy Trình Bắt Tay Giữa Client Và Server Trong Giao Thức RTMP
Hình 2.1.3 : Tiêu Đề RTMP 12 Bytes
Hình 2.1.4 :Các khối dữ liệu của một đối tượng AMF có chỉ số là 0x03
Hình 2.1.5 :Truyền các khối dữ liệu xen kẽ nhau
Hình 2.2.1 : Giao Diện Đồ Họa Của WANem
Hình 2.3.1 : Giao Diện Của Phần Mềm NetLimiter
Hình 2.4.1 : Giao Diệu Của Phần Mêm WireShark
Hình 2.4.2 : Các gói tin RTMP
Hình 2.4.3 : Thông số gói tin Audio data 120 bytes
Hình 2.4.4 : Thông số gói tin Audio data 187 bytes
Hình 2.4.5 : Thông số gói tin Audio data 184 bytes
Hình 5.1 : Mô Hình Test Hệ Thống “DimDim Web Meeting”
Hình 5.1.1 : Mô Hình Test Mặc Định
Hình 5.1.2 : Lược Đồ Gói Tin Mẫu Khi Bắt Ở Phía Client
Hình 5.2.1 : Lược đồ gói tin Audio và Video bắt ở phía Client với độ trễ 10ms
Hình 5.2.2 : Lược đồ gói tin Audio và Video bắt ở phía Client với độ trễ 15ms
Hình 5.2.3 : Lược đồ gói tin Audio và Video bắt ở phía Client với độ trễ 20ms
Hình 5.3.1 : Lược đồ gói tin Audio và Video bắt ở phía Client với trùng lặp 3%
Hình 5.3.2 : Lược đồ gói tin Audio và Video bắt ở phía Client với trùng lặp 5%
Hình 5.3.3 : Lược đồ gói tin Audio và Video bắt ở phía Client với trùng lặp 8%
Trang 7Hình 5.4.1 : Lược đồ gói tin Audio và Video bắt ở phía Client với độ mất gói tin 1% Hình 5.4.2 : Lược đồ gói tin Audio và Video bắt ở phía Client với độ mất gói tin 3% Hình 5.4.3 : Lược đồ gói tin Audio và Video bắt ở phía Client với độ mất gói tin 5% Hình 5.4.4 : Lược đồ gói tin Audio và Video bắt ở phía Client với độ mất gói tin 10% Hình 5.5.1 : Lược đồ gói tin Audio và Video bắt ở phía Client với độ hư gói tin 1%
Trang 8CÁC THUẬT NGỮ VIẾT TẮT
RTP Real-time Transport Protocol Giao thức chuyền tải thời gian
thực RTCP Real-time Transport Control
Giao thức thông báo thời gian thực
RTMPT Real Time Messaging
Protocol Tunneled
Giao thức thông báo thời gian thực
ẩn RTMPS Real Time Messaging
Protocol Secure
Giao thức thông báo thời gian thực
có bảo mật RTMPET Encrypted Real Time Messaging
Protocol Tunneled
Giao thức thông báo thời gian thực ẩn có m hóa
HTTP Hypertext Transfer protocol Giao thức truyền siêu văn bản FLV Flash Video Là tên gọi của một định dạng file
được truyền tải qua mạng internet
sử dụng Adobe Flash Player F4V Flash 4 Video Một định dạng file của Flash
Trang 9I GIỚI THIỆU CHUNG
Đồ án này thực hiện dựa trên cơ sở kết quả của đồ án 2 “Tìm Hiểu Về Hội Thảo Truyền Hình” Từ đó xây dựng các kịch bản test để đánh giá hiệu năng hoạt động của phần mềm “DimDim Web Meeting” Để đưa ra những thông số như độ trễ, trùng lắp, mất và hư gói tin sao cho phù hợp với hệ thống, để đảm bảo hệ thống hoạt động trong môi trường đường truyền mạng tốt nhất
1 Tóm Lƣợc Giao Thức RTP Real-time Transport Protocol Và RTCP Real-time Transport Control Protocol
RTP – Real-time Transport Protocol : được thiết kế cho các dịch vụ, ứng
dụng thời gian thực end-to-end, như các ứng dụng interactive Audio và Video,
sử dụng các dịch vụ mạng unicast hoặc multicast Các ứng dụng sử dụng RTP chạy trên nền của giao thức UDP ( hoặc TCP cũng có thể được sử dụng nhưng rất ít ), nhằm sử dụng các dịch vụ multiplexing và checksum của UDP.
RTP được sử dụng để truyền tải thông tin dữ liệu thời gian thực qua mạng Internet Trong khi đó RTCP được sử dụng để giám sát chất lượng dịch vụ như truyền tải thông tin điều khiển và xác nhận của các phiên làm việc
Mỗi giao thức sử dụng một port riêng biệt, thông thường port chẵn sử dụng cho RTP và port lẻ kế tiếp còn trống sử dụng cho RTCP
Vì truyền tải trong môi trường IP và UDP Protocol nên việc mất gói tin ( packet loss ), không đúng thứ tự gói tin (out of order), trễ (delay and jitter) là không thể tránh khỏi Để hạn chế tác động của các vấn đề này RTP và RTCP sử dụng các trường thời gian (Timestamp) và Sequence number trong phần header
để đo đạt các thông số loss rate, delay, jitter, RTT…,
2 Kết Quả Của Đồ Án 2
Giới Thiệu Về DimDim
DimDim là hệ thống mã nguồn mở cho phép người dùng cài đặt và sử dụng miễn phí, tạo một Webmeeting trực tuyến, chia sẻ tài liệu, thông tin, Video… một sản phẩm nổi trội của DimDim Cũng như tất cả các sản phẩm truyền thông miễn phí khác, như Skype và Hotmail hay Yahoo để giữ liên lạc với nhau, khi người dùng muốn chia sẻ tài liệu của họ trên máy tính cho người khác mà họ thấy rằng việc trả giá cho một trang web hội nghị có giá quá đắt và phức tạp
Chính vì thế DimDim một open sources miễn phí đã được tạo ra
Trang 10Tính Năng Nổi Bật Của DimDim So Với Các Phần Mềm Khác
- Chất lượng hình ảnh, âm thanh tốt, không bị trễ
- Hỗ trợ multipoint (có thể tạo ra nhiều meeting room đồng thời cùng một lúc)
- Hỗ trợ trình chiếu Power Point (có hỗ trợ các công cụ rất hoàn thiện như vẽ,
in và viết…)
- Cho phép chia sẻ cả màn hình máy của người đang trình bày
- Có một whiteboard cho phép giảng bài trực tuyến bằng bảng (có thể cho phép các Client ghi lên bảng nếu có thắc mắc hay không hiểu)
- Có tính năng cho các Client join có thể xem các trang web mà người tạo ra meeting muốn
- Có thể hoán chuyển cho bất cứ một ai muốn trình bày
- Có thể cho phép hoặc không cho phép một ai nghe hay thấy cuộc họp
- Có tính năng nghi lại cuộc họp và sau đó gửi đi cho các Client tham gia vào cuộc họp để họ có thể xem lại qua layer
- Có tính năng chat public hoặc chat private
- Có tính năng hoán chuyển và tích hợp moodle và suger
Hiện Trạng Của Đồ Án Trước Khi Thực Hiện Đồ Án 3
Tạo ra được một phiên hội thảo giữa Master room với các Client với nhau, hay nói cách khác là giữa người tạo ra phiên hội thảo với các người dùng từ xa
có thể trao đổi, nói chuyện trực tiếp với nhau, dựa vào phần mềm “DimDim Web Meeting”
Mô hình hệ thống nhóm đã xây dựng được ở đồ án 2 :
Hình 1.1 : Mô Hình Hệ Thống DimDim Web Meeting
Trang 11Đây là kết quả hình ảnh giao diện chụp được trong lúc diễn ra phiên họp :
Hình 1.2 : Hình Minh Họa Lúc Diễn Ra Phiên Họp Của Hệ Thống
Bên cạch đó thì hệ thống “DimDim Web Meeting” còn một số hạn chế, như về bảo mật, hạn chế về giới hạn camera (chỉ cho phép một Room được mở tối đa hai camera ), khung hình Video có độ phân giải thấp 220pixels - 240pixels, nên chất lượng hình ảnh truyền đi chưa được sắc nét
Mục Tiêu Của Đồ Án 3
Xây dựng các kịch bản test để đánh giá hiệu năng hoạt động của hệ thống
“DimDim Web Meeting” dựa trên hệ thống mạng được xây dựng gần với mạng thực tế với các trường hợp như :
3 Mất gói tin
4 Trễ gói tin
5 Trùng lặp gói tin
6 Hư gói tin
Từ đó đưa ra một hệ thống “DimDim Web Meeting” có hiệu năng hoạt động tốt nhất và định hướng cho người dùng biết được những thông số như độ trễ, mất, hư, và trùng lặp gói tin như thế nào thì phù hợp để đảm bảo cho hệ thống có hiệu năng hoạt động tốt nhất
Trang 12II XÂY DỰNG CÁC MÔ HÌNH TEST ĐỂ ĐÁNH GIÁ HIỆU
NĂNG CỦA DIMDIM WEBMEETING
Hệ thống “DimDim Web Meeting” được đặt nền móng dựa trên giao thức RTMP, ngoài những giao thức như RTP và RTCP nhóm đã tìm hiểu từ việc kế thừa của đồ án trước, thì nhóm em sẽ giới thiệu và trình bày thêm phần giao thức RTMP Mục đích của đồ án này nhóm em sẽ phân tích những gói tin hình ảnh và âm thanh dựa trên giao thức RTMP vào việc đánh giá mức ảnh hưởng của hệ thống đối với những trường hợp thực tế như : mất gói tin, hư gói tin, trùng lặp và trễ Để đưa
ra hiệu năng hoạt động khi sử dụng “DimDim Web Meeting”
1 Giao Thức Real Time Messaging Protocol RTMP
Giới Thiệu
RTMP ban đầu là một giao thức độc quyền được phát triển bởi Macromedia cho việc truyền tải âm thanh, hình ảnh và dữ liệu qua internet, giữa một Flash player với một Server Hiện đang thuộc sở hữu của Adobe, đã phát hành
RTMP được thiết kế cho hiệu suất truyền tải âm thanh, hình ảnh và dữ liệu cao giữa các nền công nghệ Adoble Flash, bao gồm Adoble Flash Player và Adobe AIR RTMP hiện như là một đặc điểm kỹ thuật mở để tạo ra những sản phẩm và công nghệ cho phép cung cấp hình ảnh, âm thanh và dữ liệu trong AMF mở, SWF, FLV,
và F4V định dạng tương thích với Adoble Flash Player
Giao thức RTMP có nhiều biến thể :
1 Đơn giản là giao thức hoạt động trên đỉnh của TCP và sử dụng cổng mặc định 1935
2 RTMPS đó là RTMP trên một kết nối an toàn SSL bằng cách sử dụng
HTTPS
3 RTMPE đó là RTMP mã hóa bằng cách sử dụng cơ chế bảo mật của Adobe Trong khi các chi tiết của việc thực hiện là độc quyền, cơ chế sử dụng nguyên thủy mã hóa ngành công nghiệp chuẩn
4 RTMPT được đóng gói dưới dạng HTTP để đi qua firewall RTMPT thường
sử dụng dạng Cleartext (1 định dạng password) thông qua cổng giao tiếp mặc định là 80 và 443 Các phiên được đóng gói RTMPT có thể thực hiện bằng dạng RTMP đơn giản, RTMPS hoặc trong các gói RTMPE
Trang 13Các Cơ Chế Hoạt Động Của RTMP
RTMP ở chế độ tiêu chuẩn chạy trên TCP với cổng mặc định là 1935 Ngoài ra RTMP còn chạy trong chế độ đường hầm trên một kết nối HTTP sử dụng cổng 80
Hình 2.1.1 : Cơ Chế Hoạt Động Của Giao Thức RTMP
Quy Trình Bắt Tay
Hoạt động cơ bản của RTMP như sau : Tất cả các quá trình truyền thông được thực hiện bởi Client Client khởi tạo một kết nối RTMP bằng cách gửi một byte có giá trị 0x03, byte này kèm theo sau một khối dữ liệu 1536 bytes Định dạng của khối
dữ liệu này cho đến nay vẫn chưa biết, nhưng dường như nó không thực sự được sử dụng bởi giao thức ngoại trừ thao tác bắt tay
Server nhân được gói dữ liệu và lưu gói dữ liệu 1536 bytes và cũng gửi 1 byte giá trị 0x03 theo sau bởi 2 khối dữ liệu 1536 bytes Khối thứ 2 chính là nội dung đã được gửi lên bởi Client trước đó
Client nhận 2 khối dữ liệu 1536 bytes từ Server, so sánh với khối dữ liệu ban đầu nó gửi lên Server, nếu phù hợp thì kết nối được thiết lập, nó cũng gửi trả khối
dữ liệu này về lại cho Server
RTMP ở chế độ chuẩn
RTMP ở chế độ đường hầm
Trang 14Hình 2.1.2 : Quy Trình Bắt Tay Giữa Client Và Server Trong Giao Thức RTMP
Tiêu Đề RTMP
RTMP có 4 loại tiêu đề đó là tiêu đề 12, 8, 4 hoặc 1 byte Byte đầu tiên của tiêu
đề rất quan trọng, 2 bits đầu tiên của nó xác định kích thước tiêu đề
0x00 : tiêu đề 12 bytes (header full)
0x01 : tiêu đề 8 bytes
0x02 : tiêu đề 4 bytes (bao gồm Basic Header và 3 bytes Timestamp)
0x03 : tiêu đề 1 byte (chỉ bao gồm Basic Header)
6 bits còn lại biểu diễn chỉ số của đối tượng AMF Một khi đối tượng AMF đã được nhận đầy đủ bởi Client thì chỉ số này có thể được tái sử dụng
Trang 15Đối với tiêu đề 12 bytes thì 3 bytes tiếp theo là trường Timestamp (little - endian), 3 bytes tiếp theo (Length) là chiều dài của đối tượng AMF (big-endian), byte kế tiếp quy định nội dung của đối tượng AMF (Action Message Format), 4 bytes cuối xác định Source ID
Đối với tiêu đề 8 bytes thì bỏ trường Source ID trong tiêu đề 12 bytes
Đối với tiêu đề 4 bytes thì bỏ trường Length, Content Type trong tiêu đề 8 bytes Đối với tiêu đề 1 byte thì bỏ trường Timestamp trong tiêu đề 4 bytes nghĩa là nó chỉ bao gồm byte đầu tiên chứa kiểu tiêu đề và chỉ số đối tượng AMF
0x01 Set Packet Size Message (Chunk Size) 0x02 Unknown (AbortMessage) 0x03 Bytes Read 0x04 Ping Message 0x05 Server Bandwidth 0x06 Client Bandwidth 0x07 Unknown 0x08 Audio Packet 0x09 Video Packet 0x0A – 0x0E Unknown 0x0F Flex Stream 0x10 Flex Shared Object 0x11 Flex Message 0x12 Notify 0x13 Shared Object 0x14 Invoke
Một Số Giá Trị Trong Trường Content Type
Chuẩn Mã Hoá Dữ Liệu AMF - Action Message Format
AMF là một định dạng dùng ghép nối tiếp các dữ liệu được dùng để giao tiếp thông qua môi trường mạng AMF giúp mã hoá và định nghĩa các kiểu dữ liệu cần tương tác giữa hai hệ thống Thông qua AMF, các hệ thống đầu cuối sẽ hiểu được
dữ liệu được chuyền từ hệ thống khác là kiểu dữ liệu gì AMF được giới thiệu đầu tiên 2001 trong Flash Player 6 là AMF0 Sau này được phát triển thêm thành AMF 3 trong Flash Player 9
Truyền Tải Nhiều Đối Tƣợng AMF Trên Cùng Một Kết Nối
Mỗi đối tượng AMF được chia thành các khối dữ liệu có kích thước 128 bytes ( ngoại trừ Audio có kích thước 64 bytes ) Khối đầu tiên thường được gắn tiêu đề
12 bytes, các khối tiếp theo thường được gắn tiêu đề 1 byte, trong bất kỳ loại tiêu đề nào cũng có chứa chỉ số của đối tượng AMF tương ứng
Trang 16Hình 2.1.4 :Các khối dữ liệu của một đối tượng AMF có chỉ số là 0x03
Để có thể truyền nhiều đối tượng AMF trên một kết nối đơn người ta không truyền các khối dữ liệu của một đối tượng AMF liên tiếp nhau mà truyền xen kẽ các khối
dữ liệu của nhiều đối tượng AMF
Hình 2.1.5 :Truyền các khối dữ liệu xen kẽ nhau
Trang 172 Giả Lập Các Trường Hợp Mạng Trong Hệ Thống
Phần mêm WANem được viết tắt của từ Wide Area Network Emulator tạm
dịch phần mềm giả lập mạng diện rộng với kết nối LAN to LAN WANem là một phần mềm mã nguồn mở sử dụng miễn phí được cài đặt trong hệ điều hành Linux, trong đề tài này nhóm em cài đặt sử dụng hệ điều hành Linux trên máy
ảo Vmware Workstastion WANem được sử dụng cấu hình bằng cách truy cập dưới dạng web với giao diện khá thân thiện và dễ sử dụng, đáp ứng thỏa mãn các nhu cầu của nhóm trong đề tài
Hình 2.2.1 : Giao Diện Đồ Họa Của WANem
Mục đích sử dụng phần mền WANem để thực hiện giả lập hệ thống mạng với các trường hợp thực tiễn như gói tin bị trể, bị lỗi, bị trùng lặp hoặc mất gói tin thì với những trường hợp đó sẽ ảnh hưởng đến chất lượng hình ảnh và âm thanh của “DimDim Web Meeting” như thế nào Với việc sử dụng phần mền WANem nhằm lấy kết quả tương đối như một hệ thống mạng thực tiễn để nhóm tổng hợp các kết quả đưa ra nhận định và đánh giá cho các trường hợp hình ảnh
và âm thanh từ các Master room đến Client có đảm bảo hiệu năng hoạt động cho hệ thống mạng dành cho “DimDim Web Meeting” hay không
Trang 183 Sử Dụng NetLimieter Để Thiết Lập Bang Thông Và Tốc Độ Mạng Trong Hệ Thống
NetLimiter là một công cụ kiểm soát internet và giám sát thiết kế cài đặt
trên hệ điều hành Windows NetLimiter có chức năng thiết lập giới hạn tốc độ download và upload của đường truyền dữ liệu cho các ứng dụng hoặc kết nối mạng LAN và theo dõi lưu lượng truy cập ứng dụng Webrower của các máy Client khi sử dụng “DimDim Web Meeting”
Mục đích nhóm sử dụng NetLimiter để hạn chế băng thông download và upload của máy Client Giả lập hệ thống mạng ADSL hiện tại với các Client nằm ở các vị trí địa lý khác nhau kết nối đến Master room với đường truyền có giới hạn, để đưa ra việc đảm bảo băng thông như thế nào thì máy Client nhận được hình ảnh và âm thanh sử dụng tốt nhất
Giao diện NetLimiter khá đơn giản với nhiều phiên bản khác nhau và kèm theo các tính năngnhư giới hạn, giám sát mạng, chặn kết nối, lọc, thống kê Hiện tại nhóm sử dụng phiên bản miễn phí với giao diện như bên dưới
Hình 2.3.1 : Giao Diện Của Phần Mềm NetLimiter
Trang 194 Sử Dụng Phần Mềm Wireshark Để Bắt Các Gói Tin
Wireshark là một phần mền sử dụng để phân tích gói tin Với rất nhiều
phần mền phân tích gói tin như hiên nay Thì Wireshark được xem là vượt trội hơn hẳn các phần mềm khác về khả năng hỗ trợ rất nhiều các giao thức (khoảng
850 loại), từ những loại phổ biến như TCP, IP đến những loại đặc biệt như là AppleTalk và Bit Torrent Và cũng bởi Wireshark được phát triển trên mô hình
mã nguồn mở, những giao thức mới sẽ được thêm vào
Wireshark có thể cài đặt được trên hầu hết các hệ điều hành Linux,
Windows và sử dụng miễn phí, nhóm sử dụng wireshark để bắt các gói tin Video và Audio để thiết lập bảng tính cho các trường hợp sử dụng trong hệ thống mạng “DimDim Web Meeting” Với giao diện ứng dụng đồ họa thân thiện rõ ràng và được bố trí dễ hiểu giúp người sử dụng dễ dàng phân tích các gói tin
Hình 2.4.1 : Giao Diệu Của Phần Mêm WireShark
Dùng Wireshark để bắt gói tin và phân tích các gói tin
Các gói tin bắt được khi dùng Wireshark, gồm các gói Video data và Audio data