Professional Documents
Culture Documents
06T Phan Thanh Hai - Multicast IPTV - QoS
06T Phan Thanh Hai - Multicast IPTV - QoS
ĐỀ TÀI :
TÌM HIỂU MULTICAST VÀ ỨNG DỤNG MULTICAST TRONG
IPTV
Mã số : KKLLL-nnn1
Ngày bảo vệ : DD/MM/YYYY
ĐÀ NẴNG, MM/YYYY
1
Mã số được xây dựng theo nguyên tắc : Tên lớp + số thứ tự ABC của SV. Ví dụ 05TLT-027.
LỜI CẢM ƠN
Em xin chân thành cảm ơn các thầy cô Khoa Công Nghệ Thông Tin
cũng như các thầy cô trong Trường Đại học Bách Khoa Đà Nẵng đã truyền
đạt những kiến thức quý báu cho tôi trong những năm học vừa qua.
Đặc biệt em chân thành thầy Nguyễn Thế Xuân Ly đã tận tình hướng
dẫn và giúp đỡ em trong quá trình thực hiện đề tài.
Xin chân thành cám ơn các bạn trong Khoa Công Nghệ Thông Tin đã
ủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được cho em
trong quá trình nghiên cứu và thực hiện đề tài.
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn
trực tiếp của thầy Nguyễn Thế Xuân Ly.
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên
tác giả, tên công trình, thời gian, địa điểm công bố.
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,
tôi xin chịu hoàn toàn trách nhiệm.
i
Mục lục ii
LỜI MỞ ĐẦU
Sự phát triển của mạng Internet toàn cầu nói riêng và công nghệ thông tin nói
chung đã đem lại tiến bộ và phát triển vượt bậc của khoa học kỹ thuật. Với sự phát
triển vượt bậc đó nó đã làm thay đổi cả về nội dung và kỹ thuật truyền hình. Hiện nay
có nhiều dạng khác nhau: truyền hình số, truyền hình vệ tinh, truyền hình Internet và
IPTV. IPTV đang là cấp độ cao nhất và là công nghệ truyền hình của tương lai. Sự
vượt trội của IPTV là tính năng tương tác giữa hệ thống với người xem, cho phép
người xem chủ động về thời gian và khả năng triển khai nhiều dịch vụ giá trị gia tăng
tiện ích khác nhằm đáp ứng nhu cầu của người dùng.
Với sự hướng dẫn của thầy Nguyễn Thế Xuân Ly và mong muốn tìm hiểu công
nghệ mới, sau một thời gian tìm hiểu em đã hoàn thành cuốn báo cáo luận văn tốt
nghiệp với đề tài “Tìm hiểu Multicast và ứng dụng Multicast trong IPTV”. Nội
dung báo cáo gồm có lý thuyết và thực hành được trình bày trong 4 chương như sau:
- Chương I: Tổng quan về IPTV. Chương này trình bày khái niệm IPTV, cấu
trúc IPTV, các công nghệ IPTV.
- Chương II: Các giải pháp công nghệ và truyền hình cho IPTV. Chương này
trình bày các chuẩn nén sử dụng trong IPTV, giao thức sử dụng và chất lượng dịch vụ.
- Chương III: Phân tích thiết kế hệ thống. Chương này phân tích các yêu cầu
và giới thiệu ngôn ngữ cakephp.
- Chương IV: Kết quả mô phỏng. Trình bày các kết quả đạt được trong quá
trình triển khai.
Mục lục v
CHƯƠNG 1
top box IPTV có thể thông qua phần mềm để cho phép xem đồng thời nhiều chương
trình truyền hình trên màn hình hiển thị, email….
Thu, nhận và xử lý các dữ liệu chương trình từ các nguồn khác nhau như vệ tinh,
truyền hình mặt đất và các nguồn khác để chuyển sang hệ thống Video Headend.
Si
9
Tìm hiểu Multicast và ứng dụng Multicast trong IPTV 10
Mpeg-2 được dùng để mã hóa hình ảnh động và âm thanh để tạo ra ba kiểu khung
số liệu ( intra frame, forward predictive frame và bidirectional pridicted frame) có thể
được sắp xếp theo một trật tự cụ thể gọi là cấu trúc nhóm các hình ảnh (group of
pictures, GOP).
- Main Profile: Được thiết kế cho các thiết bị lưu trữ số và truyền hình quảng
bá.
- Extend Profile: Có khả năng nén khá cao. Ứng dụng cho các dịch vụ đa
phương tiện trên internet.
- High Profile: Dùng cho các ứng dụng quảng bá và các ứng dụng truyền hình
yêu cầu độ nét cao.
II.1. Unicast
Truyền dẫn Unicast, hay còn gọi là truyền dẫn điểm- điểm. Trong hình thức truyền
dẫn này, nhiều host muốn nhận thông tin từ một bên gửi thì bên gửi đó phải truyền
nhiều gói tin đến các bên nhận. Điều này sẽ dẫn đến gia tăng băng thông khi có quá
nhiều bên nhận.
Hình 5.Các kết nối nhiều unicast cho nhiều user IPTV
II.2. Broadcast
Kiểu truyền dẫn này cho phép truyền goistin từ một địa điểm đến tất cả các host
trên một mạng con mà không quan tâm đến việc host đó có nhu cầu nhận hay không.
Kiểu truyền này gây lãng phí băng thông và không hiệu quả.
II.3. Multicast
Một địa chỉ Multicast cho phép phân phối dữ liệu tới một tập hợp các host đã được
cấu hình như những thành viên của một nhóm multicast trong các mạng con phân tán
khác nhau. Đây là phương pháp truyền dẫn đa điểm, trong đó các host có nhu cầu nhận
dữ liệu mới tham gia vào nhóm. Điều này hạn chế tối đa sự lãng phí băng thông trên
mạng.
người dùng đó được xác thực thì ứng dụng multicast đó sẽ tự động cài lên pc của
người dùng. Có nghĩa là người dùng đã tham gia vào một nhóm multicast.
- IGMP v1: Để tham gia vào một nhóm multicast, một host sẽ gửi thông điệp
đăng ký nhóm đến router cục bộ của nó. Thông điệp này có tên Membership Report
IGMP chứa địa chỉ multicast, thông báo cho router về địa chỉ multicast mà host muốn
tham gia vào. Cứ 60 giây, một router trên mỗi phân đoạn mạng sẽ gửi truy vấn đến tất
cả các host để kiểm tra xem các host này có còn quan tâm nhận lưu lượng multicast
nữa không. Router này gọi là IGMPv1 Querier và chức năng của nó là mời các host
tham gia vào nhóm. Tuy nhiên IGMPv1 không có cơ chế để cho phép một host rời
khỏi một nhóm nếu host đó không còn quan tâm đến nội dung của nhóm multicast đó.
- IGMPv2: Phiên bản IGMPv2 giới thiệu một vài khác biệt so với phiên bản
đầu tiên. Các gói tin truy vấn bây giờ được gọi là General Queries. Các gói này có thể
gửi tới địa chỉ all-hosts hoặc tới từng nhóm cụ thể. Một cải tiến khác nữa là các host
được phép rời nhóm. Khi một host quyết định rời khỏi nhóm thì nó sẽ gửi thông điệp
LeaveGroup.
- IGMPv3 : Phiên bản này giới thiệu bổ sung bản tin Group-Source Report
cho phép một host có thể quyết định nhận lưu lượng từ các nguồn riêng biệt của một
nhóm multicast. Một bản tin Group-Source Report cho phép một host chỉ ra địa chỉ IP
của các nguồn riêng biệt mà nó muốn nhận. Một bản tin Exclusion Gourp-Source
Report cho phép host nhận dạng chính xác các nguồn mà nó không muốn nhận. Cuối
cùng bản tin Leave Group của IGMPv2 được nâng cao thành bản tin Group-Source
Leave. Đặc điểm này cho phép một host rời khỏi toàn bộ nhóm hay chỉ ra các ip riêng
biệt mà nó muốn rời khỏi.
Giao thức PIM-DM thường được sử dụng khi mà lưu lượng luồng multicast là rất
lớn. PIM-DM luôn có một cổng trong trạng tháu prune trong khoản ba phút. Các thông
điệp prune liệt kê một nguồn và nhóm. Các PIM router có thể được cấu hình theo kiểu
Dense Mode (kiểu phân tán) nếu các host tham gia vào nhóm multicast nằm ở khắp
nơi trên các subnet. Địa chỉ Multicast nguồn trở thành gốc của cây và cây multicast
được xây dựng từ nguồn đến đích. Cơ chế này còn được gọi bằng ký hiệu (S, G) trong
đó đường đi từ nguồn đếnc ác thành viên trong nhóm là duy nhất.
Giao thức PIM-DM nhận biết các thiết bị láng giềng bằng cách trao đổi các gói
“hello”. Thông tin láng giềng này được dùng trước để xây dựng cây đến tất cả các láng
giềng. Sau đó, các nhánh của cây sẽ lần lượt bị loại bỏ. Nếu một dòng multicast bắt
đầu, cây sẽ được xây dựng, cây sẽ chỉ tồn tại khi các thành viên tích cự còn tồn tại.
Nếu một host mới đăng kí tham gia nhóm, nhánh của phân đoạn đó sẽ được đính thêm
vào cây.
- PIM- Spare Mode:
Giao thức PIM-DM hữu dụng khi các ứng dụng multicast dày đặc và bạn cần phân
phối đến hầu tất cả các mạng. Tuy nhiên, nếu các người dùng chỉ ở vài mạng con, giao
thức định tuyến chế độ desen sẽ phát tán lưu lượng toàn mạng gây lãng phí băng thông
và tài nguyên. Trong những trường hợp này, PIM-SM có thể được dùng để giảm lãng
phí tài nguyên mạng. Các giao thức chế độ SM không truyền lưu lượng của nhóm tới
bất kỳ router nào trừ khi nó nhận được một thông điệp yêu cầu các bản sao của các gói
tin được gửi tới một nhóm multicast đặc biệt.
PIM-SM hoạt động với một chiến lược khác hẳn với PIM-DM mặc dù cơ chế của
giao thức không hoàn toàn đối lập. PIM-SM giả sử rằng không có máy nào muốn nhận
lưu lượng multicast cho đến khi nào các máy chủ động hỏi. Kết quả là, cho đến khi
nào trong một subnet có một máy yêu cầu nhận multicast thì multicast mới được phân
phối vào subnet đó. Với PIM-SM, các router downstream phải yêu cầu nhận multicast
dùng thông điệp PIM Join. Khi các router nhận được thông điệp này, các router bên
dưới phải định kỳ gửi thông điệp Join lên router upstream. Nếu khác đi, router
upstream sẽ không đưa lưu lượng xuống, đặt kết nối vào trạng thái prune. Tiến trình
này thì ngược lại với tiến trình được dùng trong PIM-DM, trong đó mặc định là phát
tán lưu lượng multicast với các router downstream cần phải liên tục gửi thông điệp
prune hay thông điệp làm mới trạng thái để giữ một kết nối là trong trạng thái prune.
thức xây dựng trong các router giúp xây dựng cây phân phối Multicast để chuyển tiếp
các gói. Giao thức chuyển tiếp multicast chủ yếu sử dụng một trong hai kỹ thuật sau:
- Cây nguồn (Source Tree): Dạng đơn giản nhất của cây phân phối Multicast
là cây nguồn có gốc là nguồn multicast và các nhánh của nó có dạng cây mở rộng theo
mạng đến các điểm thu. Nó là một cây đường ngắn nhất (SPT).
hoạt và khả năng mở rộng thấp nên không được lựa chọn để thực hiện QoS trong
mạng có quy mô lớn. Vì vậy mô hình Int-Serv chỉ thích hợp cho những mạng nhỏ với
ít luồng lưu lượng.
- Đặt ngưỡng: Cơ chế đặt ngưỡng trên, ngưỡng dưới cho băng thông, cụ
thể là băng thông sẽ được đảm bảo một ngưỡng dưới tối thiểu và khi lớn hơn ngưỡng
trên thì gói tin có thể bị loại bỏ hoặc đưa vào hàng đợi.
- Nén Header: Header chiếm phần lớn trong 1 gói tin nhưng không mang
thông tin thực sự, cơ chế nén header giúp tiết kiệm băng thông.
- Phân mảnh: Các gói tin dữ liệu thường có độ dài lớn, điều này sẽ gây trễ
và tắc nghẽn. Cơ chế phân mảnh sẽ phân các gói tin này thành các gói tin nhỏ hơn để
tránh tắc nghẽn.
- Tiếp tục so sánh các gói cho tới khi chúng phù hợp với tiêu chuẩn.
Nếu gói tin đó không phù hợp với tiêu chuẩn nào, không có một xử lý cụ thể cho
gói tin đó và nó sẽ được chuyển đi như không có tác động của QoS.
Địa chỉ IP nguồn Một chuỗi các địa chỉ nguồn có thể được dùng match dùng
wildcard mark.
Địa chỉ IP đích Một dải các địa chỉ đích có thể match dùng wildcard mark.
IP Precedence Các giá trị của IP Precedence được định mức ưu tiên cho
traffic.
IP ToS Có thể kiểm tra bit ToS có bật lên hay không.
Cổng TCP Có thể kiểm tra các cổng nguồn hay đích hay một dãy các cổng
xem số hiệu của cổng có lớn hơn hay nhỏ hơn một số xác định
không.
Thiết lập TCP Mặc dù không hoàn toàn hữu dụng như QoS, ACL vẫn có thể
match hết tất cả các TCP Segment sau khi khởi gán segment
dành cho việc kết nối.
UDP Có thể kiểm tra cổng nguồn và đích, hay một dãy có các coognr
xem số hiệu của cổng có lớn hơn hay nhỏ hơn một số xác định
không.
ICMP Kiểm tra một lượng lớn các thông điệp ICMP khác nhau và loại
code.
IGMP Kiểm tra các thông điệp Internet Group Management Protocol.
P2 đến P0 là thứ tự IP, 2 bit tiếp theo là Delay, Bandwidth, Reality .CU1 và CU2
hiện tại không sử dụng.
- DiffServ Fields
Trường DiffServ chuẩn của gói packet thì đánh dấu với một giá trị cũng như người
nhận một xử lý chuyển tiếp tại mỗi nút mạng.
1 1 0 0 0 0 ECN ECN
DiffServ Fileds
Sử dụng chuẩn DiffServ tương tự như thứ tự các bit ( các bit quan trọng DS5, DS4,
DS3) để thiết lập ưu tiên.
Mức thự tự Mô tả
4 Class4
3 Class 3
2 Class 2
1 Class 1
0 Best-effort
- Phân loại gói tin vào trong các lớp dịch vụ bằng lệnh match bên trong class-
map.
- Đánh dấu các gói tin trong mỗi lớp dịch vụ dùng lệnh set trong policy-map.
- Kích hoạt CB- Marking đã định nghĩa trong policy-map bằng lệnh service-
policy trên mỗi interface.
Lệnh Chức năng
28
Tìm hiểu Multicast và ứng dụng Multicast trong IPTV 29
- Bảng phim
Cakephp tuân theo mô hình thiết kế phần mềm chuẩn MVC. MVC chia chương
trình thành 3 phần riêng biệt.
- Model: Mô tả dữ liệu của ứng dụng.
- View: Hiển thị dữ liệu của model.
- Controller: Xử lý và điều hướng các yêu cầu của client.
- Webroot: Trong môi trường thật, thư mục này đóng vai trò là thư mục gốc
của ứng dụng. Các thư mục ở đây thường là các thư mục cho css, ảnh và javascript.
Kết nối các bảng, được dùng trong kết hợp hasAndBelongsTomany giữa các model
sẽ được đặt tên sau theo bảng model sẽ kết nối theo thứ tự alphabetical.
Tất cả các bảng mà các model của cakephp tương tác tới đều cần một khóa chính
duy nhất để nhận định mỗi hàng. Nếu bạn muốn mô hình hóa một bảng mà không có
một khóa chính nào thì một trường khóa chính đơn sẽ được thêm vào bảng.
Cakephp không hỗ trợ tạo những khóa chính. Nếu bạn muốn thao tác trực tiếp trên
bảng dữ liệu, hãy sử dụng câu truy vấn trực tiếp hoặc thêm khóa chính để nó hoạt động
như một mô hình bình thường.
Tên bảng được viết bằng chữ thường và các bảng tạo bởi nhiều từ thì được nối với
nhau bằng dấu gạch dưới. Cakephp sẽ kiểm tra để xác định dạng dữ liệu của từng
trường trong bảng và sử dụng thông tin này để tự động hóa các tính năng khác nhau
như trong việc xuất các trường dữ liệu lên View.
Mỗi hệ quản trị cơ sở dữ liệu định nghĩa loại dữ liệu theo những cách khác nhau.
Từ lớp mã nguồn cho đến hệ thống dữ liệu.
II.5.2. View
View là nơi thể hiện dữ liệu đã được xử lý của chúng ta. Một view được xem như
một trang template.
Lớp View của cakephp là nơi bạn trình bày cho người dùng của bạn. Những gì
biểu diễn sẽ được đưa vào các tập tin Xhtml và chuyển đến trình duyệt.
Cakephp xem các tập tin được viết bằng php và có phần mở rộng mặc định .ctp.
Những tập tin này chứa tất cả logic thông dụng cần để lấy dữ liệu từ controller trong
một định dạng mà đã sẵn sàng cho các đối tượng bạn đang phục vụ.
Tập tin của View được lưu trong /app/views trong một thư mục sau khi controller
sử dụng các tập tin và được đặt tên theo các hành động tương ứng với nó.
Ví dụ: file view của demoscontroller là hành động view() sẽ được tìm thấy trong
/app/views/demos/view.ctp.
Lớp View trong cakephp có thể được tạo thành tự một số bộ phận khác:
- layouts: xem các file chứa các mã thông dụng và được tìm trong nhiều gói
giao diện ứng dụng của bạn. Hầu hết các
- elements: được dùng để thiết kế hỗ trợ các view giống nhau khỏi mất thời
gian viết code lại nhiều lần.
- helpers: Một lớp helper là một lớp tiện ích được dùng để xử lý các logic
trong view. Cũng giống như component của controller, các view có thể dùng chung
với một hoặc nhiều helper.
II.5.3. Controller
Một controller (điều khiển) được sử dụng để quản lý về mặt logic của một phần
trong ứng dụng của bạn. Hầu hết, các controller được sử dụng để quản lý một model
đơn giản. Những lớp controller trong ứng dụng của bạn được kế thừa từ lớp cakephp
AppController. Nó được kế thừa từ lớp nhân Controller, một phần của thư viện
Cakephp. Lớp AppController được định nghĩa trong thư mục app/app_controller.php
và nó chứa nhiều phương thức được chia sẻ giữa tất cả các controller trong ứng dụng
của bạn.
Controller có thể thêm vào nhiều phương thức mà chúng thường chỉ dẫn đến các
action (hành động). Action là một phương thức điều khiển sử dụng để hiển thị views.
Một action đơn giản chỉ là một phương thức của controller.
Cakephp là người vận chuyển để gọi các action khi chúng nằm trong URL yêu cầu
đến action của controller.
41
Tìm hiểu Multicast và ứng dụng Multicast trong IPTV 42
- Chọn wizard -> Stream to network -> Select a stream -> Choose.
- Chọn file video chuẩn MPEG có dạng đuôi .avi hoặc .mpg để phát.
Trên PC, cũng dùng phần mềm VLC player để bắt gói tin multicast
- Class ftp-in
- Class http-in
Đây là 2 lớp vào của cổng fa0/0 trên router 0. Và sau đó ra khỏi cổng serial 1/0.
- Class ftp-out.
- Class http-out.
Dùng chính sách để áp dụng lên từng class.
- Policy- INBOUND: Áp dụng cho các class-in.
- Policy- OUTBOUND: Áp dụng cho các class-out
Kết quả thu được
- Chất lượng video và tốc độ tải file trước khi áp chất lượng dịch vụ
52
Tìm hiểu Multicast và ứng dụng Multicast trong IPTV 53
PHỤ LỤC
PHỤ LỤC A
Cấu hình chi tiết của các router
- Router 0
en
config t
ip multicast-routing
hostname R0
int fa0/0
ip add 192.168.1.10 255.255.255.0
max-reserved-bandwidth 100
ip pim dense-mode
ip igmp join-group 224.5.5.5
ip igmp join-group 224.5.5.10
no shut
exit
int s1/0
ip add 172.16.0.1 255.255.0.0
no shut
clock rate 128000
max-reserved-bandwidth 100
ip pim dense-mode
ip igmp join-group 224.5.5.5
ip igmp join-group 224.5.5.10
exit
router eigrp 100
network 192.168.1.0
network 172.16.0.0
end
config t
class-map match-all ftp-out
match ip dscp af41
exit
class-map match-all http-out
match ip dscp ef
exit
class-map match-all http-in
match protocol http
exit
class-map match-all ftp-in
match protocol ftp
exit
policy-map INBOUND
class ftp-in
set ip dscp af41
exit
class http-in
set ip dscp ef
exit
exit
policy-map OUTBOUND
class ftp-out
priority percent 40
shape average 60000000
exit
class http-out
bandwidth percent 20
shape average 40000000
exit
class class-default
bandwidth percent 40
exit
exit
int fa0/0
service-policy input INBOUND
exit
int s1/0
service-policy output OUTBOUND
end
- Router 1
en
config t
ip multicast-routing
hostname R1
interface s1/0
ip add 172.16.0.2 255.255.0.0
no shut
clock rate 128000
max-reserved-bandwidth 100
ip pim dense-mode
ip igmp join-group 224.5.5.5
ip igmp join-group 224.5.5.10
exit
int s1/1
ip add 10.0.0.1 255.0.0.0
no shut
clock rate 128000
max-reserved-bandwidth 100
ip pim dense-mode
ip igmp join-group 224.5.5.5
ip igmp join-group 224.5.5.10
exit
router eigrp 100
network 10.0.0.0
network 172.16.0.0
end
- Router 2
ena
config t
ip multicast-routing
hostname R2
int s1/1
ip add 10.0.0.2 255.0.0.0
no shut
clock rate 128000
max-reserved-bandwidth 100
ip pim dense-mode
ip igmp join-group 224.5.5.5
ip igmp join-group 224.5.5.10
exit
int fa0/0
ip add 192.168.2.1 255.255.255.0
no shut
max-reserved-bandwidth 100
ip pim dense-mode
ip igmp join-group 224.5.5.5
ip igmp join-group 224.5.5.10
exit
router eigrp 100
network 10.0.0.0
network 192.168.2.1
end
$luu['Order']['users_id'] = $iduser;
$luu['Order']['total'] = $gia;
$luu['Order']['phim_id'] = $id;
$this->Order->create();
$this->Order->save($luu);
//$this-set('luu', $luu);
}
else
{
$luu['Order']['total'] += $gia;
$luu['Order']['phim_id'] = $id;
$this->Order->save($luu);
// $this-set('luu', $luu);
}
$this->Order->save($this->data);
1
Tìm hiểu Multicast và ứng dụng Multicast trong IPTV 2
tóm tắt nội dung LUẬN VĂN TỐT NGHIỆP, viết ngắn gọn và rõ ràng
(15 đến 20 dòng) cho biết :
Đề tài đã được đặt ra như thế nào (bối cảnh), mục đích (giải thích rõ hơn
tên đề tài) và nhiệm vụ phải thực hiện (các mục tiêu cụ thể và kết quả cần có)
SV đã giải quyết vấn đề gì (đã nghiên cứu lý thuyết, thực tiễn như thế
nào, đã đề xuất được những giải pháp (biện pháp) hay sáng kiến gì ?).
SV đã giải quyết đến đâu (nêu một số kết quả tiêu biểu).