3.4.1. Mô hình:
Hệ thống được xây dựng mô hình Client – Server. Client có chức năng ghi nhận hình ảnh, âm thanh từ camera hoặc máy quay, microphone truyền lên Server đồng thời có khả năng hiển thị hình ảnh giữa các Client. Server đóng vai trò trung gian cung cấp các hàm tiện ích phục vụ cho Client truy cập từ xa tới.
Tùy theo cơ sở hạ tầng mà có thể xây dựng mô hình hệ thống cho phù hợp.
3.4.1.a. Mô hình cơ bản:
Yêu cầu: Trong mô hình này, chỉ cần 2 máy tính (PC hoặc Laptop) có sẵn
hệ điều hành lần lượt đóng vai trò là server và client. Với thiết bị phần cứng tối thiểu phải có như sau:
- Webcam hoặc Camera được nối trực tiếp với máy tính. - Âm thanh ra/vô (sound, microphone, …)
Hình 3.13 – Mô hình hệ thống DVTS cơ bản.
3.4.1.b. Mô hình hệ thống chuẩn: [2]
Yêu cầu: Trong mô hình hệ thống này thì yêu cầu thiết bị chuyên dụng
hơn. Gồm:
1. Bộ chuyển đổi hình ảnh số - tương tự (Analog – Digital Video Converter, viết tắt là ADVC).
2. Micrô (Microphone).
3. Bộ khuếch đại âm thanh (Audio Amplifier). 4. Máy quay video (Video Camcorder).
5. Máy tính cá nhân – 02 chiếc.
6. Màn hình hiển thị (LCD, PDP hoặc màn chiếu Projector).
7. Các dây cáp, dây tín hiệu âm thanh, hình ảnh (Ethernet/wifi, Video, Audio, IEEE1394/USB, … ).
Hình 3.14 – Mô hình chuẩn hệ thống DVTS
3.4.2 Mô tả quá trình chạy:
Phía Client được cài đặt ứng dụng LHDVTS có chức năng ghi nhận hình ảnh, âm thanh từ webcam/máy quay phim, microphone rồi thực hiện truyền lên Server.
Server được cài đặt ứng dụng RED5 và gói ứng dụng AppServer có nhiệm vụ trung chuyển dữ liệu âm thanh, hình ảnh giữa các Client, ngoài ra Server còn cung cấp các hàm tiện ích phục vụ Client.
3.4.2.1. Chương trình phía Server
Sử dụng Server RED5 đây là flash mã nguồn mở được viết bằn ngôn ngữ Java [6] và hỗ trợ:
Giao thức (tầng ứng dụng): RTMP, RTMPT, RTMPS, and RTMPE. Live Stream Publishing.
Recording Client Streams (FLV and AVC+AAC in FLV container). Shared Objects.
Streaming Video (FLV, F4V, MP4, 3GP). Streaming Audio (MP3, F4A, M4A, AAC). Remoting.
Tạo gói AppServer chạy trên Server RED5 viết bằng ngôn ngữ Java xử lý các sự kiện:
Phản hồi kết nối từ Client cho việc truy cập. Lưu trữ video.
3.4.2.2. Chương trình phía Client
Xây dựng chương trình LHDVTS bằng ngôn ngữ Flex(Mxml + Action Script) trên IDE Adobe Flash Builder 4.
Module giao tiếp thiết bị, truyền dữ liệu lên server.
o Cổng kết nối từ Webcam/Camera: IEEE 1394, USB 2.0 camera.
o Âm thanh sử dụng Sound on board. Module hiển thị hình ảnh, âm thanh từ server.
o Tạo 6 khung cửa sổ xem video.
o Xem 6 góc quay trong một phòng hoặc 6 video của 6 Client .
o Hình có thể phóng to hoặc thu nhỏ. Module truyền text(chat).
Module coi lại video.
3.4.3 Giao diện chương trình DVTS mới:
Giao diện khởi động chương trình:
Hình 3.15 – Giao diện kết và kết nối thành công trên DVTS (mới) Thực hiện kết nối với Webcam/camera, đặt tên session và truyền dữ liệu:
Hình 3.16 – Giao diện kết nối Webcam/Camera trên máy cài DVTS Tính năng chat trong chương trình DVTS mới
3.4.4 Đánh giá:
Chương trình DVTS mới, ngoài những tính năng (dễ cài đặt, dễ dàng vận hành và sử dụng, …) tương tự như trong hệ thống cũ còn thêm những tính năng mới khắc phục hạn chế của hệ thống DVTS cũ:
Kết nối tự động với tất cả các thiết bị webcam/camera hiện có trên máy tính
Thêm tính năng chat.
CHƯƠNG 4: TỔNG KẾT VÀ KIẾN NGHỊ TRONG TƯƠNG LAI. 4.1 Những Vấn Đề Được Giải Quyết
Trong chương một, đã giới thiệu về mục đích, động cơ thực hiện đề tài, những công nghệ sử dụng trong hệ thống hội nghị truyền hình và những lợi ích khi sử dụng hệ thống này trong thực tế. Đồng thời, thực nghiệm hệ thống DVTS để từ đó đánh giá được những ưu nhược điểm mà hệ thống này tồn tại, từ đó đưa ra hướng khắc phục.
Chương hai, giới thiệu về lịch sử, hoạt động, tính năng, những ưu điểm của giao thức SCTP (multi-homing, multi-streaming, … ) và so sánh những đặc tính của giao thức SCTP với giao thức TCP/UDP đang được sử dụng trong hệ thống hiện tại. Chỉ ra được những thuận lợi mà giao thức SCTP mang lại bằng các thực nghiệm.
Dựa trên những tài liệu đã tham khảo, luận văn đã đưa ra những đặc tính mới mà giao thức SCTP hỗ trợ. Thông qua đó, giới thiệu những tính năng nổi trội của giao thức SCTP so với hai giao thức phổ biến TCP/UDP trên tầng Transport nhằm cung cấp cho người sử dụng có thêm một chọn lựa khi quyết định sử dụng giao thức vào môi trường ứng dụng hoặc hệ thống hiện tại hoặc trong tương lai.
Trong chương 3, tập trung vào làm rõ vấn đề bằng cách sử dụng phần mềm mô phỏng NS2 để thiết kế, thử nghiệm các tính năng và việc truyền gửi thông điệp để so sánh hiệu quả giữa giao thức SCTP và UDP/TCP. Đồng thời, so sánh đánh giá thử nghiệm chương trình DVTS mới so với DVTS cũ.
Trên cơ sở lý thuyết với việc mô tả những đặc tính tính mới: Multihoming, Multistreaming, tạo một Assosiation, chống tấn công
flood… được hỗ trợ trên giao thức SCTP. Luận văn đã thiết kế và thử nghiệm thành công việc kiểm tra các đặc tính này (mục 3.3.1).
Luận văn cũng thử nghiệm thành công việc thiết lập mô phỏng để kiểm tra so sánh về:
o Độ trễ.
o Mất gói tin.
trên cả 3 giao thức SCTP – UDP – TCP. (mục 3.3.2)
Luận văn cũng thực hiện thành công việc xây dựng mô hình hệ thống cũng như phần mềm DVTS mới với những ưu điểm:
o Kết nối thiết bị Webcam/Camera bằng các chuẩn IEEE1394 – USB, so với chỉ hỗ trợ kết nối IEEE1394 trên ứng dụng DVTS trước đây.
o Cho phép thực hiện ứng dụng Chat để trao đổi giữa client và server đang thực hiện kết nối.
o Cho phép lưu trữ các tập tin video (có phần mở rộng: *.FLV) đã thực hiện trao đổi (kết nối) giữa ứng dụng client và server.
4.2 Những vấn đề cần nghiên cứu thêm trong tương lai
Nghiên cứu và ứng dụng giao thức SCTP được rất nhiều nhà tổ chức và nghiên cứu quan tâm: [20]
The IEEE Xplore database [IEEEXplore], The ACM Digital Library [ACM],
The BibFinder database [BibFinder],
The Engineering Village database [EngVillage], CiteSeer.IST [CiteSeer],
GoogleTMScholar [Google Scholar], The ISI Web of Knowledge [ISI].
vì những lợi ích từ các ưu điểm mà giao thức này mang lại.
Các bài báo được xuất bản hàng năm, nói về việc nghiên cứu các vấn đề liên quan đến giao thức SCTP được tổng hợp như biểu đổ bên dưới: [20]
Hình 4.1 – Các bài báo viết về SCTP (2007)
Luận văn này mới chỉ tập trung vào một hướng là tìm hiểu – so sánh – đánh giá các tính năng nổi bật của giao thức SCTP và thực hiện so sánh: về độ trễ và mất gói tin của giao thức SCTP so với hai giao thức TCP/UDP mà thôi, trong tương lai có thể mở rộng nghiên cứu một số hướng như sau về giao thức này:
Tìm hiểu và mô phỏng việc truyền nhận tập tin MPEG4 trên giao thức SCTP, để từ đó củng cố vững chắc thêm cho việc khẳng định giao thức SCTP thực sự là giao thức thế hệ sau khắc phục các nhược điểm của cả hai giao thức chuyển vận phổ biến hiện tại TCP/UDP.
Có thể sử dụng giao thức SCTP thay cho giao thức TCP trong mạng không dây. Các tính năng multihoming của SCTP có thể được sử dụng trong điện thoại di động nơi mà một trong các địa chỉ của các association sẽ hoạt động như địa chỉ nguồn và địa chỉ khác sẽ là đích. SCTP có thể được phát triển như thành giao thức vận tải cho nhiều ứng
dụng khác hiện đang sử dụng TCP như như SMTP, RTP vv. Hoặc sử dụng SCTP cho các ứng dụng bằng giọng nói và video.
Luận văn đã thực hiện được thành công hầu hết các mục tiêu đã đề ra trong đề cương:
Tìm hiểu về giao thức SCTP.
So sánh giao thức SCTP với hai giao thức TCP/UDP phổ biến.
Xây dựng thành công mô hình hệ thống và chương trình ứng dụng DVTS cải tiến.
Trong quá trình thực hiện, mặc dù đã cố gắng tập trung nghiên cứu các vấn đề liên quan, cũng như đã tham khảo khá nhiều tài liệu liên quan đến việc sử dụng, ứng dụng giao thức SCTP, đặc biệt là trong ứng dụng hội nghị trực tuyến. Tuy nhiên, do thời gian và trình độ có hạn nên không tránh khỏi những hạn chế và thiếu sót nhất định. Tôi thật sự mong muốn nhận được những gợi ý cả về chuyên môn lẫn cách trình bày mô phỏng cũng như trình bày của luận văn.
Tài liệu tham khảo Tiếng Việt
[1]. Hội nghị truyền hình, bách khoa toàn thư, 03/88/2010, http://vi.wikipedia.org/wiki/H%E1%BB%99i_ngh%E1%BB%8B_truy% E1%BB%81n_h%C3%ACnh.
[2]. Ths. Trần Việt Tiến, Cao Đức Minh, Phạm Thanh Sơn, “Ứng Dụng Hệ Thống Truyền Hình Kỹ Thuật Số Chất Lượng Cao Trong Các Hoạt Động Triển Khai Mạng VinaREN”, Trung tâm Thông tin Khoa học và Công nghệ Quốc gia.
[3]. Vài nét về giao thức SCTP dùng trong 3G IP RAN, http://vienthongkysu.com/mobile/sctp/
Tiếng Anh
[4]. Akimichi Ogawa, Hitoshi Irino, “DVTS – DV Stream on IEEE1394 Encapsulated into IP”, (24/05/2003), http://www.sfc.wide.ad.jp/DVTS/ [5]. Coene, Lode <Lode.Coene@siemens.com, (Apr 14 2006), Sctp on
Microsoft Windows machines, http://www.sctp.org/archive/0353.html [6]. Dennis Hjort, [sctp-dev] Use SCTP with Java 1.6?,
http://mail.openjdk.java.net/pipermail/sctp-dev/2010- January/000148.html.
[7]. Dr. James Noonan, “Stream Control Transmission Protocol”, http://elm.eeng.dcu.ie/~jnoonan/sctp.html.
[8]. Hussein M. Abdel-Wahab, Ph.D., “SCTP – Stream Control Transmission Protocol”, http://www.cs.odu.edu/~cs779/spring05/lectures/sctp.html. [9]. Laurence Kirchmeier, Internet2 , “Digital Video Transport System”,
[10]. M. Tim Jones, Consultant Engineer, Emulex, (28/02/2006), “Better networking with SCTPThe Stream Control Transmission Protocol combines advantages from both TCP and UDP”, http://www.ibm.com/developerworks/linux/library/l-sctp/?ca=dgr-
lnxw01SCTP.
[11]. Mohammed Atiquzzaman, Shaojian Shaojian Fu, “SCTP: A new networking SCTP: A new networking protocol for super protocol for super- -computing”, Department of Computer Science University of Oklahoma. University of Oklahoma. atiq atiq@ @ou ou. Edu.
[12]. Paul Stalvig – F5 Network, Inc, (10/2007), “Introduction to the Stream Control Transmission Protocol (SCTP): The next generation of the Transmission Control Protocol (TCP)”.
[13]. R. Stewart, Q. Xie, K. Morneault, H. Schwarzbauer, T. Taylor, I. Rytina, M. Kalla, L. Zhang, V. Paxson, (10/2000), “RFC 2960 - Stream Control Transmission Protocol” Network Working GrouP, Request for Comments: 2960, Copyright (C) The Internet Society (2000).
[14]. Randall Stewart, Peter Lei, Craig Rodrigues, (July 25, 2002 –September 27, 2004), “Stream Control Transmission Protocol (SCTP)”, http://www.sctp.org/index.html.
[15]. The Base SCTP Agent, http://www.isi.edu/nsnam/ns/doc/node427.html. [16]. VNTELECOM.ORG, Nhóm TE, Nhóm CM, “Mô Phỏng Trong NS-2” [17]. Wikipedia, “Stream Control Transmission Protocol”, (last modified on
05/2012),
http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol. [18]. Florian Niederbacher, (03/2010), “Benecial gradual deployment of
[19]. Jagdish Kumar Gopalakrishnan, (2003), “Multirouting Behavior In Stream Control Transmission Protocol”, University Of Florida. Chương 2, chương 4.
[20]. Łukasz Budzisz, (2009), “Stream Control Transmission Protocol (SCTP), a proposal for seamless handover management at the transport layer in heterogeneous wireless networks.”, Universitat Polit` ecnica de Catalunya Department of Signal Theory and Communication Radio
PHỤ LỤC
Mô phỏng 1 – Cơ chế bắt tay bốn bước
Mô phỏng 2 – INIT/COOKIE-ECHO Flooding Mô phỏng 3 – MultiStream
Nội dung code cho 3 phần mô phỏng trên download tại đây: http://www.mediafire.com/?bdc3d4163qccmif
So sánh các giao thức UDP – TCP – SCTP
Giao thức TCP
Mã script TcL cho giao thức TCP
set ns [new Simulator] $ns colour 0 blue $ns colour 1 red {
set n0 [$ns node, node 1] set n1 [$ns node, node 2] set n2 [$ns node, node 3] set n3 [$ns node, node 4] }
set f[open tcp.trc w] $ns trace-al $f,
set nf[open tcp.nam w] $ns namtrace-all $nf, $ns dvplex-link $n0, $n1 0.2Mb 10ms DropTail $ns duplex-link $n0, $n2 0.2Mb 10ms DropTail $ns duplex-link $n1, $n3 0.2Mb 10ms DropTail $ns duplex-link $n2, $n3 0.2Mb 10ms DropTail
set tcp [new Agent/TCP] $tcp set class_1
set sink [new Agent/TCP Sink] $ns atach-agent $n0 $tcp
$ns atach-agent $n3 $sink $ns conect $tcp, $sink
set cbr {new Application / Traffic / CBR. $cbr set packatSize_ 1000 $cbr attach-agent $tcp $ns at 1.0 "$cbr start" $ns at 29.0 "$cbr stop" $ns at 30.0 ‘finish’ proc finsh {} globel ns f nf $ns flesh-trace close $f,
close $nf,
puts ‘runing nam...’
############################ ################ exec awk { { if ($1="+" && $3==0 && $4==1 && $5=="tcp" && $6==1040) || ($1=="r" && $3==1 && $4==3 && $5=="tcp" && $6==1040) { print $1, $2, $11 } } } tcp.tr > sendreceive.tr ############################ ##################
exec ./delay sendreceive.tr res1.tr res2.tr
exec nam tcp.nam & exit 0
}
$ns run # chạy mô phỏng.
Giao thức UDP
Mã script TcL cho giao thức UDP
set ns [new Simulator], $ns color 0 blue
$ns colour 1 red $ns colour 2 white {
set n0 [$ns node, node1] set n1 [$ns node, node2] set n2 [$ns node, node3] set n3 [$ns node, node4] }
set f [open udp.trc w] $ns trace-all $f,
set nf [open udp.nam w] $ns namtrace-all $nf, $ns duplex-link $n0 $n1 0.2Mb 10ms DropTail $ns duplex-link $n0 $n2 0.2Mb 10ms DropTail $ns duplex-link $n1 $n3 0.2Mb 10ms DropTail $ns duplex-link $n2 $n3 0.2Mb 10ms DropTail
set udp [new Agent/UDP] $udp, set class_ 1
set sink [new Agent / Null] $ns attach-agent $n0 $ udp $ns attach-agent $n3 $sink $ns connect $udp $sink
set cbr [new Application / Trafic / CBR] $cbr set packetSize _ 1000 $cbr attach-agent $udp $ns at 1.0 "$cbr start" $ns at 29.0 "$cbr stop" $ns at 30.0 "finish," proc finish {}, globol ns f nf $ns flush-trace clase $f close $nf
puts "running nam..."
############################ ################ exec awk { { if {($1=="+" && $3==0 && $4==1 && $5=="cbr" && $6==1000) || ($1=="r" && $3==1 && $4==3 && $5=="cbr" && $6==1000)} {print $1, $2, $11 } } } udp.tr > sendreceive.tr ############################ ##################
exec ./delay sendreceive.tr res1.tr res2.tr
exec nam udp.nam & exit 0
}
#chạy mô phỏng
$ns run
Giao thức SCTP:
Mã script giao thức SCTP cho TcL:
Trace set show_sctphdr_ 1 set ns [new Simulator] $ns colour 0 blue $ns colour 1 red $ns colour 2 white set n0, [$ns node, 1] set n1, [$ns node, 2] set n2, [$ns node, 3] set n3, [$ns node, 4] set f [opn sctp.trc w] $ns trace-all $f
set nf [open sctp.nam w] $ns namtroce-all $nf $ns duplex-link $n0 $n1 0.2Mb 10ms DropTail $ns duplex-link $n0 $n2 0.2Mb 10ms DropTail $ns duplex-link $n1 $n3 0.2Mb 10ms DropTail $ns duplex-link $n2 $n3 0.2Mb 10ms DropTail
set sctp [new Agent/SCTP] $ns attach-agent $n0 $sctp set sctpsink [new Agent/SCTP] $sctpsink set use DelayedSacks _ 0 $ns attach-agent $n3 $sctpsink # connect both agents
$ns connect $sctp $sctpsink set cbr [new Application/Traffic/CBR] $cbr set packetSize_ 1000 $cbr attach-agent $sctp $ns at 1.0 "$cbr start" $ns at 29.0 "$cbr stop" $ns at 30.0 "finish", proc finish {} { global ns f nf $ns flush-truce close $f close $nf
puts "running nam..."
############################ ################ exec awk { { if {($1=="+" && $3==0 && $4==1 && $5=="sctp" && $6==1048) || ($1=="r" && $3==1 && $4==3 && $5=="sctp" && $6==1048)} { print $1, $2, $12 } } } sctp.tr > sendreceive.tr ############################ ##################
exec ./delay sendreceive.tr res1.tr res2.tr
exec nam sctp.nam & exit 0
}