Nghiên cứu giải pháp truyền hình Internet dựa trên công nghệ mạng ngang hàng P2P cho ứng dụng ở Việt Nam Nghiên cứu giải pháp truyền hình Internet dựa trên công nghệ mạng ngang hàng P2P cho ứng dụng ở Việt Nam luận văn tốt nghiệp thạc sĩ
Trang 1TR¦êNG §¹I HäC b¸ch khoa Hµ Néi
**********
Phan thanh Minh
nghiªn cøu gi¶I ph¸p truyÒn h×nh
internet dùa trªn c«ng nghÖ m¹ng ngang hµng
(P2p) cho øng dông ë ViÖt Nam
Trang 2TR¦êNG §¹I HäC b¸ch khoa Hµ Néi
**********
Phan thanh minh
nghiªn cøu gi¶I ph¸p truyÒn h×nh
internet dùa trªn c«ng nghÖ m¹ng ngang hµng
(P2p) cho øng dông ë ViÖt Nam
Trang 3LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành tới PGS TS Nguyễn Thị Hoàng Lan, người đã cho tôi những định hướng cũng như những ý kiến quý báu trong những vấn đề cụ thể để hoàn thành luận văn
Tôi cũng xin gửi lời cảm ơn đến Ban lãnh đạo công ty Cổ phần công nghệ Bạch Minh (Vegasoft Corp) cũng như nhóm dự án vcITV đã hỗ trợ tôi trong quá trình thực hiện luận văn này
Được hoàn thành trong thời gian hạn hẹp, luận văn này chắc chắn còn nhiều khiếm khuyết Tôi xin cảm ơn các thầy cô, bạn bè, đồng nghiệp và người thân đã và sẽ có những góp ý chân tình cho nội dung của luận văn, để tôi có thể tiếp tục đi sâu tìm hiểu và góp phần xây dựng thành công hệ thống truyền hình Internet dựa trên công nghệ mạng ngang hàng ở Việt Nam
Phan Thanh Minh
Trang 4MỤC LỤC
MỤC LỤC 2
LỜI NÓI ĐẦU 4
Danh mục thuật ngữ 6
Danh mục hình vẽ 7
CHƯƠNG 1: TỔNG QUAN VỀ TRUYỀN HÌNH 8
CHƯƠNG 1: TỔNG QUAN VỀ TRUYỀN HÌNH 8
1.1 Truyền hình (Television – TV) 8
1.2 Khái quát về các kĩ thuật truyền hình hiện nay 11
1.2.1 Truyền hình tương tự 12
1.2.2 Truyền hình kĩ thuật số (Digital TV – DTV) 13
1.2.3 Truyền hình di động (Mobile TV) 16
1.2.4 Truyền hình Internet (Internet TV – IPTV) 17
CHƯƠNG 2: TÌM HIỂU CÔNG NGHỆ MẠNG 18
CHIA SẺ NGANG HÀNG (P2P) 18
2.1 Mạng Internet 18
2.2 Mạng chia sẻ ngang hàng 20
2.3 Kỹ thuật dịch địa chỉ mạng (NAT) 22
2.3.1 Khái niệm 22
2.3.2 Các loại NAT 22
2.3.3 Các phương pháp tạo kết nối thông qua NAT trong mạng ngang hàng 26 CHƯƠNG 3: TÌM HIỂU HIỆN TRẠNG INTERNET TIVI TẠI VIỆT NAM 54
3.1 Hiện trạng sử dụng mạng Internet hiện nay 54
3.2 Các hệ thống đang tồn tại 55
3.2.1 VTC Online 56
3.2.2 iTV 57
3.3 Một số hệ thông tiêu biểu trên thế giới 57
3.3.1 Joost 58
3.3.2 PPLive 58
CHƯƠNG 4: PHÂN TÍCH XÂY DỰNG GIẢI PHÁP INTERNET TIVI TẠI VIỆT NAM 59
4.1 Phân tích yêu cầu 59
4.1.1 Đặt vấn đề 59
4.1.2 Các vấn đề giải pháp cần giải quyết 60
4.2 Mô tả giải pháp 61
4.2.1 Máy chủ 61
4.2.2 Máy trạm 62
4.3 Xây dựng giải pháp 63
4.3.1 Đăng kí máy trạm 63
4.3.2 Truy vấn dữ liệu 75
4.3.3 Quá trình tạo kết nối 76
Trang 54.3.4 Cơ chế lập lịch truyền dữ liệu 79
4.3.5 Quá trình truyền dữ liệu 83
4.3.6 Xử lí các sự kiện ngoại lệ 86
4.4 Phân tích kết quả giải pháp 89
KẾT LUẬN 92
TÀI LIỆU THAM KHẢO 94
Trang 6LỜI NÓI ĐẦU
Ngày nay, mạng Internet ngày càng phổ biến, với tốc độ đường truyền cao hơn, các dịch vụ trên mạng cũng ngày càng đa dang Số lượng người dùng Internet trong nước càng ngày càng cao, thời lượng online cũng nhiều hơn trước đây rất nhiều Do đó nhu cầu giải trí và chia sẻ thông tin trên mạng cũng rất lớn
Truyền hình, mặc dù đã có từ lâu nhưng hiện vẫn là một trong những kênh thông tin giải trí cơ bản, có tính phổ biến cao
Ở nước ta hiện nay, số lượng người sở hữu máy tính là khá lớn, phần lớn có kết nối Internet Số lượng cửa hàng Internet cũng rất lớn, có mặt ở hầu khắp trên cả nước Do đó nếu có thể đưa truyền hình lên mạng Internet đảm bảo chất lượng thì chắc chắn sẽ thu hút được số lượng người dùng rất lớn Đây không phải là một ý tưởng mới, ở nước ta đã có một số hệ thống tương tự Tuy nhiên hạn chế của các hệ thống đó là chất lượng hình ảnh không cao, hơn nữa tốc độ chậm, chất lượng dịch
vụ không đảm bảo, do đó không thu hút được người dùng Dịch vụ iTV của FPT hiện tại , tuy chất lượng hình ảnh cao nhưng lại yêu cầu thêm thiết bị thu hỗ trợ, đó cũng là một trở ngại cho sự phát triển phổ biến
Trên thế giới, công nghệ truyền hình Internet dựa trên mạng chia sẻ ngang hàng, đảm bảo chất lượng dịch vụ và chất lượng video đang phát triển mạnh Ở nước ta, số lượng máy tính online lớn, thời lượng online cũng nhiều, do đó đây là một lợi thế lớn cho việc phát triển mô hình truyền hình Internet dựa trên mạng ngang hàng
Trên thực tế ở nước ta, hiện chưa có hệ thống nào sử dụng mô hình này Trên
cơ sở sự hỗ trợ của nhóm dự án vcITV, công ty Cổ phần công nghệ Bạch Minh
(Vegasoft Corp), đề tài của luận văn cao học này tập trung nghiên cứu để xây dựng một giải pháp chia sẻ file trong mạng ngang hàng, nhằm phục vụ cho việc xây dựng
Trang 7hệ thống truyền hình Internet dựa trên mạng ngang hang ở Việt Nam Luận văn được trình bày thành 4 chương bao gồm các nội dung chủ yếu sau đây
Chương 1 trình bày tổng quan về truyền hình và các công nghệ truyền hình hiện nay
Chương 2 trình bày các vấn đề liên quan đến công nghệ mạng chia sẻ ngang hàng, tập trung tìm hiểu về xây dựng giải pháp cho truyền hình internet dựa trên trên mạng ngang hàng
Chương 3 trình bày về khảo sát, tìm hiểu và đánh giá về thực trạng nhu cầu truyền hình ở nước ta hiện nay
Chương 4 là nội dung chủ yếu của luận văn, trong đó tập trung phân tích xây dựng một giải pháp về xử lý mạng ngang hàng và ứng dụng cho hệ thống truyền hình Internet với 1 số thử nghiệm
Trang 8XML Extensible Markup Language
Trang 9DANH MỤC HÌNH VẼ
Hình 1.1: Bản đồ phổ biến truyền hình trên thế giới [10] 10
Hình 1.2: Mật độ ti vi trên 1000 người trên thế giới [10] 11
Hình 1.3: Bản đồ hệ thống mã hóa của truyền hình các nước trên thế giới [10] 12
Hình 1.4 Bản đồ chuyển dổi hệ thống truyền hình trên thế giới [10] 16
Hình 2.1: Cấu trúc địa chỉ IPv4 19
Hình 2.2: Static NAT [11] 23
Hình 2.3: Dynamic NAT [11] 23
Hình 2.4: Masquerading NAT [11] 24
Hình 2.5: Các thành phần của mạng UPnP 31
Hình 2.6: UPnP protocol stack 32
Hình 2.7: Cấu hình của một STUN thông thường [9] 40
Hình 2.8: Cấu trúc header của bản tin STUN 43
Hình 2.9: Cấu trúc trường kiểu bản tin 43
Hình 2.10: Cấu trúc chung của một thuộc tính trong bản tin STUN 46
Hình 2.11: Cấu truc thuộc tính MAPPED-ADDRESS 47
Hình 2.12: Cấu trúc thuộc tính CHANGE-REQUEST 48
Hình 2.13: Đục lỗ UDP, các máy trạm có chung NAT 49
Hình 2.14: Đục lỗ UDP, các máy trạm nằm dưới các NAT khác nhau 50
Hình 2.15: Đục lỗ UDP, các máy trạm nằm dưới nhiều tầng NAT 50
Hình 2.16: Socket và cổng trong đục lỗ TCP 53
Hình 4.1: Mô hình tổng quan của hệ thống 63
Hình 4.2: Biểu đồ tuần tự hoạt động đăng kí 65
Hình 4.3: Biểu đồ tuần tự đăng kí UPnP 66
Hình 4.4: Lưu đồ thuật toán xác định kiểu NAT [8] 72
Hình 4.5: Biểu đồ tuần tự truy vấn dữ liệu 75
Hình 4.6: Quá trình tạo kết nối giữa hai máy trạm có thể mở UPnP 77
Hình 4.7: Quá trình tạo kết nối giữa hai máy trạm 78
Hình 4.8: Thuật toán tải về các block 82
Hình 4.9: Biểu đồ tuần tự quá trình tải file metadata từ máy chủ 84
Hình 4.10: Biểu đồ tuần tự quá trình truyền dữ liệu giữa hai máy trạm 86
Trang 10CHƯƠNG 1: TỔNG QUAN VỀ TRUYỀN HÌNH
1.1 Truyền hình (Television – TV)
Truyền hình (Television) là một loại phương tiện truyền thông đại chúng hiện đại và phát triển mạnh mẽ trên toàn cầu Truyền hình truyền tải nội dung chủ yếu bằng hình ảnh sinh động, có màu hoặc đen trắng, và thông thường kèm theo âm thanh Ngoài ra nó còn sử dụng các phương tiện biểu đạt khác như lời, chữ, ảnh, … Thuật ngữ “Truyền hình” cũng có thể hiểu là một sự kết hợp giữa thiết bị truyền hình, chương trình truyền hình và sự truyền tín hiệu truyền hình
Thuật ngữ Television xuất phát từ tiếng Latinh và tiếng Hy Lạp Tiếng Hy
Lạp, “tele” nghĩa là xa, còn “vision”, xuất phát từ tiếng Latinh visio, có nghĩa là
“nhìn” hay “thấy” (từ góc nhìn người thứ nhất), còn được gọi tắt là Tivi
Từ đầu những năm 1930, thiết bị truyền hình đã trở thành phương tiện truyền thông thông dụng trong các gia đình, doanh nghiệp và văn phòng, được sử dụng làm nguồn thông tin và giải trí Từ những năm 1970, với sự xuất hiện của băng video, đĩa quang, DVD và hiện nay là đĩa Blu-ray, thiết bị truyền hình còn được dùng để xem các băng ghi hình giống như xem các chương trình truyền hình
Một thiết bị truyền hình chuẩn bao gồm nhiều bảng mạch điện tử nhằm tiếp nhận và giải mã các tín hiệu truyền hình Một thiết bị hiển thị, thiếu bộ dò tín hiệu, chỉ là một màn hình, không phải là tivi Một hệ thống truyền hình có thể sử dụng nhiều chuẩn kĩ thuật khác nhau như truyền hình kĩ thuật số (digital television – DTV) và truyền hình chất lượng cao (High-definition television – HDTV) Ngoài các hệ thống truyên hình truyền thông dân dụng, các hệ thống truyền hình cũng được sử dụng trong nhiều lĩnh vực khác nhau như: giám sát kiểm tra, điều khiển dây chuyền công nghiệp, truyền hình ảnh từ những nơi mà việc quan sát trực tiếp là khó khăn hoặc nguy hiểm, ứng dụng trong y tế, trong an ninh, quốc phòng …
Trang 11Dưới đây điểm qua một vài mốc quan trọng trong lịch sử phát triển của truyền hình:
Năm 1884, Paul Gottlieb Nipkow, một sinh viên 20 tuổi người Đức, đã phát kiến hệ thống truyền hình cơ điện tử đầu tiên Thiết kế của Nipkow sử dụng một đĩa quét (scanning disk), đó là một đĩa quay có một loạt các lỗ theo hình xoáy ốc từ tâm đĩa Các lỗ này được đặt theo một góc bằng nhau, sao cho trong mỗi vòng quay, nó cho phép ánh sáng đi qua mỗi lỗ đến một cảm biến nhạy sáng tạo thành các xung điện Nếu một hình ảnh gắn trên đĩa, mỗi lỗ sẽ lưu một lát cắt ngang của hình ảnh
đó Tuy nhiên phải tới năm 1907, khi ống phóng đại được phát minh, các thiết kế của ông mới trở thành hiện thực Tuy nhiên lúc đó các thiết bị cũng chỉ có thể truyền các hình ảnh “half-tone”, là các ảnh được biểu diễn bằng các điểm cách đều nhau và có kích thước khác nhau, thông qua đường điện thoại hoặc điện tín
Ngày 25 tháng 8 năm 1900, Constatin Perskyi đã đề xuất từ “Television” trong một xuất bản tại Viện điện tử Quốc tế
Năm 1911, Boris Rosing và học trò của ông, Vladimir Kosma Zworykin, đã xây dựng thành công hệ thống TV sử dụng một bộ phân hình gương để quét hình ảnh và một ống tia âm cực (Cathode Ray Tube – CRT) làm thiết bị hiển thị, nhưng ảnh động vẫn chưa thể thực hiện do các bộ cảm biến kém nhạy
Năm 1925, tại Luân Đôn, nhà phát minh John Logie Baird người Scotlen chứng minh sự truyền các ảnh bóng chuyển động và ảnh động đen trắng vào năm
1926 Đĩa quét của Baird cho phép chia hình ảnh thành 30 dòng
Năm 1926, kỹ sư Kálmán Tihanyi người Hung ga ri phát minh ống thu hình điện tử hoàn chỉnh và hệ thống thu phát cũng như hiển thị điện tử hoàn thiện
Năm 1927, nhà phát minh người Nga, Léon Theremin, phát triển một hệ thống truyền hình dựa trên bộ phân hình gương được sử dụng để lưu trữ một hình ảnh thành 100 dòng
Trang 12Cũng trong năm 1927, Herbert E Ives làm việc tại Bell Labs đã truyền thành công một đoạn ảnh động 16 khung hình một phút thông qua cáp từ Washington DC đến New York và thông qua sóng radio từ Whippany, bang New Jersey
Năm 1928, Philo Farnsworth chế tạo hệ thống truyền hình đầu tiên trên thế giới, sử dụng bộ phân hình điện tử ở cả thiết bị hiển thị và thiết bị thu hình Tháng 1 năm 1928, ông lần đầu tiên giới thiệu một phương tiện thông tin mới và trình chiếu một bộ phim ảnh động
Năm 1936, Kálmán Tihanyi chỉ ra nguyên lý của ti vi plasma, ti vi màn hình phẳng đầu tiên
Theo thống kê được cung cấp trên trang http://wikipedia.org, hiện nay truyền hình đã rất phổ biến trên toàn thế giới
Trang 13Hình 1.2: Mật độ ti vi trên 1000 người trên thế giới [10]
1.2 Khái quát về các kĩ thuật truyền hình hiện nay
Truyền hình ngày càng phổ biến, với nhiều chương trình đa dạng và phong phú Cùng với sự phát triển mạnh mẽ của khoa học công nghệ, các công nghệ hiện đại cũng được áp dụng trong truyền hình Từ đó truyền hình cũng trở nên đa dạng hơn
Dựa vào công nghệ truyền dữ liệu được sử dụng, chúng ta có thể chia truyền hình thành một số loại chính như sau:
- Truyền hình tương tự (analog television): mã hóa các thông tin hình ảnh và
âm thanh và truyền đi dưới dạng sóng điện từ: một bản tin được phát qua sóng truyền hình là một hàm của biên độ và/ hoặc tần số của tín hiệu
- Truyền hình kĩ thuật số (Digital television – DTV): truyền và nhận dữ liệu hình ảnh và âm thanh thông qua tín hiệu rời rạc (tín hiệu số)
- Truyền hình di động (mobile TV): truyền dữ liệu thông qua mạng viễn thông di động đến các thiết bị di động như điện thoại, PDA, …
- Truyền hình Internet (Internet TV – IPTV): là dịch vụ truyền hình được cung cấp thông qua mạng internet
Trang 141.2.1 Truyền hình tương tự
Hệ thống truyền hình mã hóa các thông tin hình ảnh và âm thanh thành tín hiệu liên tục, sử dụng các bộ mã hóa như NTSC (National Television System Committee), PAL (Phase Alternating Line) hoặc SECAM (Séquentiel couleur à mémoire, tiếng Pháp của “Sequential Color with Memory”) Sau đó tín hiệu liên tục
này được gắn vào sóng mang VHF hoặc UHF Hình ảnh trong truyền hình tương tự được hiển thị trên màn hình mỗi lần là một khung hình, theo phương pháp phim ảnh động, không quan tâm đến nội dung của ảnh
Một hệ thống truyền hình tương tự bao gồm một số thành phần: một tập các tham số kĩ thuật của tín hiệu truyền hình, một hệ thống mã hóa hình ảnh và có thể
có một hệ thống mã hóa âm thanh nhiều kênh Trong truyền hình kĩ thuật số, tất cả các thành phần này được kết hợp trong một hệ thống truyền kĩ thuật số duy nhất
Tất cả các hệ thống truyền hình tương tự đều bắt đầu từ hệ thống đơn sắc Mỗi nước, dựa vào điều kiện cụ thể của mình, sẽ lựa chọn một hệ thống màu để ghép một cách hiệu quả vào hệ thống đơn sắc đang có, sử dụng các khoảng trống trong phổ của video để gắn các thông tin màu vào các kênh sử dụng Trên thế giới hiện nay sử dụng ba hệ thống mã hóa màu: NTSC, PAL và SECAM
Hình 1.3: Bản đồ hệ thống mã hóa của truyền hình các nước trên thế giới [10]
Trang 15Truyền hình tương tự, giống như tất cả các hệ thống ảnh động khác, sử dụng đặc tính của mắt người để tạo ra cảm giác hình ảnh chuyển động Mắt người có khả năng lưu lại một hình ảnh trong một phần nhỏ của một giây, được gọi là “sự lưu ảnh” Trong khi hiệu ứng này xảy ra, một loạt hình ảnh liên tục sẽ tạo ra cảm giác giống như cảnh động Nếu tốc độ khung hình quá chậm, chuỗi các hình ảnh không được não người liên kết lại, do đó làm mất cảm giác sinh động Tốc độ khung hình thông thường là 24 khung hình 1 giây, được sử dụng trong các phim động để tạo ra hình ảnh chuyển động mượt mà, được đề xuất từ đầu những năm 1920 Khi chuẩn truyền hình của Mĩ được xây dựng, người a lựa chọn tốc độ khung hình là 30 khung hình 1 giây, sau đó chỉnh lại thành 29,97 để sử dụng cho phim màu Các hệ thống ở châu Âu sử dụng tốc độ 25 khung hình 1 giây
Mã hóa màu NTSC: sử dụng tốc độ 29.97 khung hình một giây Mỗi khung hình chia thành 525 lát, trong đó chỉ 486 lát được hiển thị
Mã hóa màu PAL sử dụng tốc độ 25 khung hình một giây Mỗi khung hình chia làm 625 dòng và chỉ có 576 dòng hiển thị
1.2.2 T ruyền hình kĩ thuật số (Digital TV – DTV)
Truyền hình kĩ thuật số thực hiện gửi và nhận hình ảnh, âm thanh thông qua các tín hiệu rời rạc (tín hiệu số), ngược với truyền hình tương tự sử dụng tín hiệu tương tự
Truyền hình kĩ thuật số hỗ trợ nhiều định dạng hình ảnh khác nhau, phân biệt bởi kích thước, tỉ lệ cạnh (tỉ lệ chiều dài / chiều cao) và độ phân giải Theo chuẩn của Mĩ, các định dạng có thể được chia thành hai nhóm chính: HDTV và SDTV
HDTV (High-definition Television) sử dụng hai định dạng: 1280x720 điểm ảnh trong chế độ quét progressive (quét từng dòng một từ trên xuống dưới) hoặc 1920x1080 điểm ảnh trong chế độ quét chéo (interlare mode) – quét cách dòng 2 dòng một lần, lần đầu từ dòng thứ nhất đến hết, sau đó quay lại quét từ dòng thứ hai HDTV sử dụng tỉ lệ 16:9 Nó không thể truyền tải qua các kênh tương tự hiện nay
Trang 16SDTV (Standard definition TV) có thể sử dụng một số định dạng khác nhau tùy theo tỉ lệ canh phụ thuộc vào kĩ thuật được nước đó sử dụng Với tỉ lệ 4:3, các nước sử dụng NTSC sẽ dùng độ phân giải 640x480 điểm ảnh, trong khi các nước sử dụng PAL sử dụng độ phân giải 720x576 (có thể thay thành 768x576) Với tỉ lệ 16:9, các nước sử dụng NTSC dùng độ phân giải 704x480 (có thể thay thành 848x480) trong khi các nước dùng PAL sử dụng độ phân giải 720x576 (thay đổi thành 1024x576) Tuy nhiên, độ phân giải này có thể thay đổi để tiết kiệm băng thông
Có khá nhiều cách để nhận tín hiệu truyền hình kĩ thuật số Phương pháp cổ điển nhất là sử dụng ăng ten Phương pháp này được gọi là “Digital Terrestrial Television” – DTT Với DTT, người xem bị giới hạn bởi số kênh mà ăng ten có thể thu tín hiệu, đồng thời chất lượng tín hiệu cũng không ổn định Nhiều phương pháp được xây dựng để thu tín hiệu, trong đó thông dụng hơn cả là sử dụng cáp và sử dụng vệ tinh Ở một số nước, người ta sử dụng các sóng ngắn, digital MMDS, để truyền tín hiệu truyền hình Các chuẩn khác như DMB và DVB-H cho phép các thiết bị cầm tay như điện thoại di động có thể thu được tín hiệu truyền hình Một cách khác là IPTV, truyền tín hiệu qua giao thức mạng IP, sử dụng cáp DSL hoặc đường cáp quang Ngoài ra, một phương pháp nữa là truyền tín hiệu qua mạng internet mở: P2PTV
DTV có một số ưu điểm so với truyền hình tương tự Điểm nổi bật nhất là các kênh kĩ thuật số chiếm ít băng thông hơn, và băng thông cần thiết có thể thay đổi, tương ứng với chất lượng của ảnh, phụ thuộc vào mức độ nén Điều này có nghĩa là các đài truyền hình có thể cung cấp nhiều kênh hơn trong cùng một không gian, cung cấp dịch vụ truyền hình chất lượng cao hoăc cung cấp các dịch vụ ngoài truyền hình DTV cũng có thể cung cấp các dịch vụ đặc biệt như phát nhiều chương trình trên cùng một kênh, thêm ngôn ngữ hoặc phụ đề
Tín hiệu số ít bị nhiễu hơn tín hiệu tương tự Các vấn đề thông thường của truyền hình tương tự là các hình không đúng (ghosting), nhiễu do tín hiệu yếu và
Trang 17nhiều vấn đề tiềm tàng khác Tín hiệu số hóa không bị nhiễu hoặc nhòe bởi vì bộ điều hưởng DTV và các bộ chuyển đổi nhận thông tin số hóa thông qua ang ten Bộ giải mã chỉ cần đủ thông tin để tạo ra hình ảnh Nó chỉ sai khi bộ giải mã không nhận đủ thông tin từ ăng ten – có quá nhiều tín hiệu giao thoa hay nhiễu nên bộ giải
mã không đọc được số
DTV cũng có một số nhược điểm so với truyền hình tương tự do giới hạn của băng thông và giải thuật nén Khi so sánh một ảnh số đã được nén với ảnh gốc, một
số chuỗi hình ảnh khó nén có thể bị mất hoặc méo số Ví dụ:
- Nhiễu lượng tử (quantization noise)
- Sai màu
- Ảnh bị mờ
Không giống như truyền hình tương tự, truyền hình kĩ thuật số cần một khoảng thời gian chờ để chuyển kênh Các thiết bị khác nhau cần khoảng thời gian khác nhau để bắt đầu chiếu một kênh truyền hình
Chất lượng hình ảnh của truyền hình tương tự chịu ảnh hưởng của sự thay đổi trong tín hiệu thu được từ đài phát Truyền hình kĩ thuật số luôn cho hình ảnh hoàn hảo, trừ khi thiết bị thu nhận được tín hiệu nhiễu hoặc mất tín hiệu Một số thiết bị sẽ hiển thị chỉ một hình ảnh thậm chí với các nhiễu đáng kể, trong khi các thiết bị khác không hiển thị hình ảnh nào (và do đó không hiển thị gì thậm chí với các nhiễu nhỏ) hoặc dừng lại, mất âm thanh và chỉ hiện thị một khung hình Hiệu ứng này được gọi là hiệu ứng “cliff”
Xu hướng của nhiều nước trên thế giới hiện nay là chuyển đổi từ truyền hình tương tự sang truyền hình số Năm 2006, Luxembourg là nước đầu tiên hoàn tất việc chuyển đổi truyền hình đại chúng sang kĩ thuật số Sau đó, Phần Lan, Hà Lan, Andorra, Thuy Điển, Thụy Sĩ và Đức cũng đã hoàn tất quá trình này Một số nước khác cũng đang tiến hành chuyển dổi và sẽ hoàn thành trong vài năm tới
Trang 18Transition completed, all analog signals terminated
Transition in progress, broadcasting both analog and digital signals
Transition not yet started, broadcasting analog signals only
No information available
Hình 1.4 Bản đồ chuyển dổi hệ thống truyền hình trên thế giới [10]
Truyền hình di động và truyền hình Internet là hai dịch vụ khá mới của truyền hình kĩ thuật số, với nhiều tiếm năng phát triển Hiện nay các dịch vụ này mới chỉ triển khai ở một số nước với quy mô nhỏ Nhưng trong tương lai, chúng có thể phát triển mạnh mẽ Do đó trong phân tiếp theo tôi sẽ giới thiệu thêm về hai dịch vụ này
1.2.3 Truyền hình di động (Mobile TV)
Đây là một dịch vụ truyền hình cho phép các điện thoại di động của người dùng có thể xem truyền hình trên điện thoại từ một nhà cung cấp dịch vụ Dữ liệu truyền hình có thể truyền thông qua một mạng di động hiện có hoặc một mạng tương thích.Đây là một chức năng của điện thoại 3G Năm 2005, Hàn Quốc là nước đầu tiên trên thế giới cung cấp truyền hình di động thông qua dịch vụ DMB(Digital Multimedia Broadcasting) vệ tinh (satellite DMB – S-DMB)và DMB mặt đất (T-
Trang 19DMB)) Mặc dù S-DMB có nội dung phong phú hơn, nhưng T-DMB lại phổ biến hơn vì chúng nó được tích hợp trong chức năng của hầu hết điện thoại di động hiện nay tại Hàn Quốc Sau đó có nhiều nước cũng cung cấp dịch vụ này như Nhật Bản, Anh, Đức, … với các chuẩn khác nhau
1.2.4 Truyền hình Internet (Internet TV – IPTV)
Truyền hình Internet cho phép người xem lựa chọn chương trình người đó muốn xem trong thư viện chương trình Mô hình chính của truyền hình Internet là video được lưu trữ ở một địa điểm trên Internet, thông thường là một trang web Video cũng có thể được phát qua mạng ngang hàng mà không dựa vào luồng của một trang web nào
Truyền hình Internet yêu cầu đầu tư tương đối nhỏ và nhanh chóng thương mại hóa được, nó phát triển dựa trên cơ sở hạ tần sẵn có bao gồm đường truyền băng thông rộng, ADSL, Wi-Fi, cáp và vệ tinh, cho phép nhiều nhà cung cấp dịch
vụ cung cấp nội dung có thể tìm kiếm các nguồn thu nhập mới
Hiện nay, mạng Internet đang ngày càng trở nên phổ biến, do đó truyền hình Internet có tiềm năng phát triển mạnh mẽ Trên thế giới đã có nhiều hệ thống truyền hình Internet thành công Ở Việt Nam chúng ta cũng đã có một số hệ thống nhưng không thực sự phổ biến và mang lại hiệu quả Đặc biệt, hệ thống truyền hình Internet thông qua mạng ngang hàng chưa xuất hiện ở nước ta Do đó, tôi đã mạnh dạn chọn đề tài này nhằm tìm hiểu và đề xuất một giải pháp nhằm phục vụ cho việc xây dựng một hệ thống truyền hình ngang hàng phù hợp với điều kiện và nhu cầu của người Việt
Chương này đã trình bày sơ lược các khái niệm về truyền hình cũng như các loại truyền hình hiện nay trên thế giới cũng như Việt Nam Trong chương tiếp theo của luận văn sẽ trình bày một số vấn đề cơ bản về mạng Internet và mạng ngang hàng (P2P) , tập trung vào các vấn đề liên quan đến công nghệ P2P ứng dụng cho TV
Trang 20C HƯƠNG 2: TÌM HIỂU CÔNG NGHỆ MẠNG
CHIA SẺ NGANG HÀNG (P2P)
2.1 Mạng Internet
Mạng Internet là một mạng kết nối các máy tính trên toàn cầu, cho phép người dùng chia sẻ thông tin thông qua nhiều kênh Thông thường, một máy tính kết nối vào mạng Internet có thể truy cấp thông tin từ rất nhiều các máy chủ và các máy tính khác bằng cách tải các thông tin đó về bộ nhớ trong của máy mình Các kết nối cũng cho phép máy tính tải thông tin lên máy chủ trên mạng, cho phép các máy tính khác truy cập và sửa chữa chúng Nguồn thông tin khổng lồ trên mạng chính là hệ thống tài liệu siêu văn bản được liên kết với nhau và các tài nguyên khác của World Wide Web (WWW) Máy tính của người dùng có thể gửi và nhận thông tin thông qua các trình duyệt Web, hoặc các phần mềm có giao diện người dùng với mạng bao gồm các phần mềm dành cho thư điện tử, chat trực tuyến, chia sẻ file, …
Thông tin trên mạng được truyền thông theo kiểu nối chuyển gói dữ liệu (packet switching) dựa trên giao thức liên kết mạng đã được chuẩn hóa (giao thức
IP – Internet Protocol)
Mô hình phổ biến nhất của Internet là mô hình địa chỉ IP, cung cấp hệ thống đánh địa chỉ cho các máy tính trong mạng Internet và làm cho việc kết nối dễ dàng hơn Địa chỉ IP phiên bản 4 (Ipv4) là phiên bản đầu tiên được sử dụng và vẫn đang được sử dụng rộng rãi ngày nay IPv4 sử dụng 32 bit để đánh địa chỉ cho một máy tính, chia thành 4 octet, mỗi octet 8 bit tương ứng với một byte, các octet được cách nhau bởi dấu “.”,địa chỉ IPv4 biểu diễn trong số thập phân có dạng “a.b.c.d” (a, b, c,
d là các số từ 0 đến 255) Do đó nó chỉ có thể đánh địa chỉ cho khoảng 4,3 tỉ (232) thiết bị mạng
Trang 21Octet: 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Hình 2.1: Cấu trúc địa chỉ IPv4
Địa chỉ IP v4 gồm có ba thành phần chính sau:
- Class ID: là những bit nhận dạng lớp Trong IPv4 chia thành 5 lớp lần lượt
là A, B, C, D và E, trong đó lớp D và E chỉ dùng để nghiên cứu Các bit nhận dạng lớp là các bit đầu tiên trong octet 1 Lớp A sử dụng 1 bit đầu mang giá trị 0, lớp B
sử dụng 2 bit, mang giá trị 10 và lớp C sử dụng 3 bit với giá trị 110
- Net ID: gồm các bit nằm trong 1 hoặc nhiều octet để mã hóa địa chỉ mạng Lớp A chỉ sử dụng các bit trong octet 1 trừ đi class bit, do đó ta có 7 bit để mã hóa Net ID, tức là mã hóa được 27 = 128 địa chỉ mạng Lớp B sử dụng các bit trong 2 octet 1 và 2, trừ đi 2 bit class, tức là có 14 bit mã hóa được 214 = 16384 địa chỉ mạng Lớp C sử dụng các bit trong 3 octet 1, 2 và 3, trừ đi 3 bit class
- Host ID: tương ứng với mỗi lơp, người ta sử dụng các bit còn lại để mã hóa địa chỉ của máy tính trong mạng con đó Do đó, lớp A còn 24 bit mã hóa địa chỉ máy trạm nên có thể có 224 = 16777216 máy trạm, hay lớp C dùng 8 bit, mã hóa được 28 = 256 địa chỉ máy tính
Lớp C là lớp địa chỉ được sử dụng rộng rãi nhất do số lượng địa chỉ mạng của lớp là khá lớn, đồng thời số lượng máy trạm trong mạng phù hợp với quy mô của các mạng gia đình và văn phòng nhỏ
Địa chỉ mạng IPv4 như đã nói ở trên, chỉ có thể đánh địa chỉ cho gần 4,3 tỉ thiết bị mạng Tuy nhiên, hiện nay số lượng thiết bị tham gia mạng internet đã rất lớn và vượt xa con số này Do đó người ta đã phải đưa ra nhiều giải pháp để khắc phục Giải pháp dài hạn cho vấn đề này là sử dụng địa chỉ mạng phiên bản 6 (IPv6) IPv6 sử dụng 128 bit để đánh địa chỉ mạng Do đó không gian địa chỉ của nó lên đến 2128, tức là khoảng 3,4*1038 địa chỉ Tuy các hệ điều hành hiện nay đều hỗ trợ
Trang 22cả hai phiên bản địa chỉ, và cho phép chuyển đổi giữa chúng, nhưng việc chuyển hoàn toàn sang sử dụng IPv6 vẫn chưa thể thực hiện do đòi hỏi đầu tư lớn và nhiều vấn đề kĩ thuật phức tạp Để giải quyết tạm thời vấn đề này, người ta đã đề xuất giải pháp dịch địa chỉ mạng - Network Address Translation (NAT) Đây là kĩ thuật cho phép một nhóm máy tính truy cập vào mạng internet thông qua cùng một địa chỉ công cộng Như vậy sẽ giúp giải quyết vấn đề thiếu địa chỉ của IPv4
Người ta có thể phân loại mạng ngang hàng thành hai loại sau [10]:
• Mạng ngang hàng “thuần túy”:
- Các máy trạm (peer) đóng vai trò như nhau, vừa làm máy chủ vừa làm máy khách trong mạng đó
- Không có máy chủ trung tâm để quản lý mạng
- Không có bộ định tuyến trung tâm, các máy trạm có khả năng tự định tuyến
Trang 23Công nghệ mạng ngang hàng có một số ưu điểm nổi bật [10]::
- Tất cả các máy trạm tham gia mạng đều đóng góp tài nguyên của mình, bao gồm băng thông, dữ liệu, khả năng lưu trữ và khả năng tính toán Do đó khi có càng nhiều máy tham gia mạng thì khả năng tổng thể của hệ thống mạng càng lớn Ngược lại, trong mô hình máy chủ - máy khách, nếu số lượng máy chủ là cố định thì khi số lượng máy khác tăng lên sẽ làm giảm khả năng chuyển dữ liệu cho mỗi máy khách giảm xuống Do đó mô hình Client-Server thường hạn chế số lượng máy khách truy cập đồng thời vào hệ thống
- Tính chất phân tán của mạng ngang hàng giúp cho mạng hoạt động tốt khi một số máy tham gia gặp sự cố Đối với cấu trúc tập trung, khi máy chủ gặp sự cố thì cả hệ thống sẽ bị ảnh hưởng, ngưng trệ
Nhờ các ưu thế đó của mạng ngang hàng mà nó thường được sử dụng trong các ứng dụng sau:
- Chia sẻ file
- Điện thoại qua mạng
- Các luồng audio, video
để xây dựng mạng ngang hàng, ta cần sử dụng các kĩ thuật đặc biệt để tạo kết nối Đây là một vấn đề lớn trong quá trình xây dựng giải pháp cho hệ thống truyền hình Internet sử dụng mạng ngang hàng nên trong phần tiếp theo tôi sẽ trình bày cụ thể hơn về NAT và các kĩ thuật phổ biến tạo kết nối thông qua NAT
Trang 242.3 K ỹ thuật dịch địa chỉ mạng (NAT)
• Tính linh hoạt và sự dễ dàng trong việc quản lý
NAT giúp cho các người dùng gia đình và các doanh nghiệp nhỏ có thể tạo kết nối với internet một cách dễ dàng và hiệu quả cũng như giúp tiết kiệm vốn đầu tư
Để thực hiện được công việc của mình, NAT duy trì một bảng thông tin về mỗi gói tin được gửi qua Khi một PC trên mạng kết nối đến 1 website trên Internet, header của địa chỉ IP nguồn được thay đổi và thay thế bằng địa chỉ công cộng mà đã được cấu hình sẵn trên máy chủ NAT Sau khi có gói tin trở về NAT, dựa vào bảng thông tin mà nó đã lưu về các gói tin, thay đổi địa chỉ IP đích thành địa chỉ của PC trong mạng và chuyển tiếp đi Thông qua cơ chế đó quản trị mạng có khả năng lọc các gói tin được gửi đến hay gửi từ một địa chỉ IP và cho phép hay cấm truy cập đến một cổng cụ thể, như vậy NAT cũng có chức năng như một firewall cơ bản
2.3.2 Các loại NAT
a Static NAT
Trang 25Hình 2.2: Static NAT [11]
Với static NAT thì sự chuyển đổi packet giữa hai network, giữa nguồn và địa chỉ đến trở nên đơn giản và nhất định, các điều kiện về trạng thái kết nối không cần phải giữ lại Nó chỉ cần nhìn vào mỗi IP packet khi chuyển đổi, các thông tin về ánh xạ đều không cần thiết Static NAT được sử dụng khi số lượng IP trong LAN bằng số lượng NAT-IP
b Dynamic NAT
Hình 2.3: Dynamic NAT [11]
Dynamic NAT khác với Static NAT ở điểm các địa chỉ IP của máy trạm được thay đổi liên tục mỗi lần tạo kết nối ra ngoài các máy trạm này sẽ nhận được một địa chỉ NAT-IP và mỗi lần như vậy NAT sẽ giữ lại thông tin IP của máy trạm này
Trang 26trong NAT Table của nó và cứ như thế Tuy nhiên cái bất lợi của dynamic NAT là khi NAT-IP được cung cấp hết do cùng một lúc có nhiều máy trạm trong LAN gởi yêu cầu thì lập tức sẽ không còn bất kì một kết nối nào được chuyển dịch nữa qua NAT vì NAT-IP đã được cấp phát hết và như vậy nó phải đợi tới lần kết nối sau
NAT rule: Dynamic translate tất cả IP thuộc class B 138.201 đến một địa chỉ thuộc class C 178.201
Mỗi một kết nối từ bên trong muốn ra ngoài sẽ được NAT cung cấp một địa chỉ trong số lượng IP sẳn có của NAT, nếu các NAT-IP này được cấp phát hết thì các connection từ class B sẽ không thể ra ngoài được nữa
c Masquerading NAT
Hình 2.4: Masquerading NAT [11]
Đây là dạng NAT phổ thông mà chúng ta thường gặp và sử dụng ngày nay trong các thiết bị phần cứng hay phần mềm routing như router hay các phần mềm chia sẽ internet như ISA, ICS hay máy chủ NAT mà lát nữa đây chúng ta sẽ có dịp tìm hiểu cách thiết lập nó
Trang 27Dạng NAT này hay còn được gọi với một cái tên NPAT (Network Port Address Translation), với dạng NAT này tất cả các IP trong mạng LAN được dấu dưới một địa chỉ NAT-IP, các kết nối ra bên ngoài đều được tạo ra giả tạo tại NAT trước khi nó đến được địa chỉ internet
NAT rule: Giả trang internet IP address 138.201 sử dụng địa chỉ NAT router
Cho mỗi packets được gởi ra ngoài IP nguồn sẽ được thay thế bằng
NAT-IP là 195.112 và cổng nguồn được thay thế bằng một cổng nào đó chưa được dùng ở NAT, thông thường là các cổng lớn hơn 1204
Nếu một packet được gởi đến địa chỉ của router và cổng của destination nằm trong khoảng cổng dùng để masquerading thì NAT sẽ kiểm tra địa chỉ IP này và cổng với masquerading table của NAT nếu là gởi cho một máy trạm bên trong LAN thì gói tin này sẽ được NAT gắn vào địa chỉ IP
và cổng của máy trạm đó và sẽ chuyển nó đến máy trạm đó
d Các ứng dụng chịu ảnh hưởng của NAT
Một số giao thức ở tầng cao (như FTP hay SIP) gửi thông tin địa chỉ tầng mạng bên trong application payload Chẳng hạn, FTP trong active mode, sử dụng các kết nối riêng biệt lưu lượng điểu khiển (các lệnh) và lưu lượng dữ liệu (nội dung file) Khi yêu cầu chuyển 1 file, máy trạm tạo yêu cầu phân biệt kết nối dữ liệu tương ứng bởi địa chỉ tầng 3 và 4 của nó Nếu máy trạm tạo yêu cầu nằm sau tường lửa NAT thông thường, việc dịch địa chỉ IP và/hoặc cổng TCP làm cho bên máy chủ nhận được thông tin sai
Một Application Layer Gateway (ALG) có thể giải quyết vấn đề này Một module phần mềm ALG chạy trên 1 thiết bị tường lửa NAT cập nhật bất kỳ dữ liệu nào bị sai bởi việc dịch chuyển địa chỉ Hiển nhiên là ALG phải hiểu được giao thức tầng cao mà nó cần giải quyết, vì thế với mỗi giao thức cần một ALG riêng biệt để giải quyết vấn đề
Trang 28Một giải pháp khả thi khác cho vấn đề này là sử dụng kỹ thuật NAT traversal, dùng các giao thức như STUN hay ICE hay các cách tiếp cận thích hợp trong một session border controller Các ứng dụng dựa trên TCP hay UDP đều có thể di chuyển qua NAT, nhưng với UDP thì dễ dàng hơn, tương thích với nhiều loại NAT Với những trường hợp khác, giao thức tầng cao phải hiểu được việc di chuyển qua NAT, và nó sẽ không làm việc ổn định trong symmetric NAT hay những NAT họat động kém
Một số giải pháp khác là UPnP (Universal Plug and Play) hay Bonjour (NAT-PMP), nhưng chúng đòi hỏi phải có sự cộng tác từ phía thiết bị NAT
Tuy nhiên hầu hết các giao thức client-server truyền thống (FTP là một ngoại lệ) không gửi thông tin ở tầng 3 và vì vậy không cần xử lý đặc biệt nào từ phía NAT Thực sự là hiện nay khi thiết kế một giao thức ở tầng cao mới, cần tránh những biến chứng có thể xảy ra với NAT
NAT cũng có thể gây ra vấn đề khi sử dụng mã hóa IPsec và khi nhiều thiết
bị như SIP phone hoạt động phía sau NAT Phone mã hóa tín hiệu của nó dùng IPSec đóng gói thông tin về cổng bên trong gói tin IPSec, điều đó nghĩa là các thiết
bị NAT không thể truy xuất và dịch cổng Trong những trường hợp này, các thiết bị NAT trở lại với thao tác NAT thông thường Điều đó nghĩa là tất cả các lưu lượng trở về NAT sẽ bị ánh xạ tới 1 máy trạm, dịch vụ sẽ không họat động Có một số giải pháp cho vấn đề này, một là sử dụng TLS thao tác ở tầng 4 trong mô hình tham chiếu OSI (OSI Reference Model) và vì vậy không che giấu cổng, hoặc đóng gói IPSec bên trong UDP Giải pháp thứ 2 được TISPAN lựa chọn để việc di chuyển qua NAT được an toàn
2.3.3 Các phương pháp tạo kết nối thông qua NAT trong mạng ngang hàng
a Tổng quan
Trong mạng ngang hàng, các máy trạm đóng vai trò ngang nhau và chúng kết nối trực tiếp đến nhau Mỗi máy trạm đóng vai trò vừa là máy khách vừa là máy chủ Trong môi trường NAT, các tường lửa thông thường ngăn cản các kết nối đến các
Trang 29máy trạm có địa chỉ nội bộ trừ khi máy trạm đó khởi tạo kết nối trước hoặc NAT được cấu hình để chấp nhận Lợi ích bảo mật và riêng tư của NAT là ẩn địa chỉ nội
bộ của máy trạm khỏi bên ngoài Tuy nhiên nó lại ngăn cản việc định vị và kết nối với các máy trạm khác nằm dưới một cổng NAT
Để hai máy trạm có địa chỉ nội bộ bên dưới NAT có thể nhận biết nhau tại thời điểm khỏi tạo kết nối, người ta đã xây dựng hai phương pháp kết nối trực tiếp
và an toàn Phương pháp thứ nhất là gắn thêm và tối ưu hóa cổng NAT, ví dụ như Universal Plug and Play (UPnP), Application Layer/Level Gateway (ALG) Phương pháp thứ hai sử dụng một máy chủ trung gian để hỗ trợ tạo kết nối như STUN và TCP/UDP hole punching Sự đa dạng trong cách xử lý của NAT khiến cho các nhà thiết kế giao thức tránh đưa địa chỉ IP và cổng vào nội dung gói tin, đồng thời khiến các nhà cung cấp ứng dụng mạng ngang hàng phải xây dựng các ứng dụng cho phép cấu hinh tường lửa/NAT bằng tay hoặc yêu cầu các máy trạm đầu tiên phải đăng ký với máy chủ trung gian Mối quan hệ giữa môi trường NAT và ứng dụng mạng ngang hàng là khá mật thiết Không có một kĩ thuật dịch Nat nào phù hợp với tất cả các môi trường NAT, cũng không có ứng dụng mạng ngang hàng nào làm việc tốt trên tát cả các máy trạm NAT
Trong phạm vi luận văn này, tôi sẽ trình bày về các phương pháp UPnP, ALG, STUN và TU hole punching Đây là các phương pháp thông dụng và hiệu quả với phần lớn các dạng NAT
b Universal Plug and Play (UPnP)
Cuối những năm 90 của thế kỉ trước, các mạng máy tính ngày càng trở nên phổ biến Một vài nhà cung cấp đã bắt đầu xây dựng các giải pháp để làm cho các mạng và các ứng dụng mạng dễ quản lý hơn Một trong những giải pháp đầu tiên là JINI của hãng Sun Sau đó, năm 1999 Microsoft đã đề xuất UPnP [4] Giải pháp này được cung cấp trong các phiên bản Windows ME và Windows XP trở về sau Sau
đó có rất nhiều chương trình và thiết bị phụ thuộc vào UPnP (Live Messenger, Playstation, X-Box) và hàng triệu thiết bị kết nối mạng cũng được bổ sung UPnP
Trang 30như các bộ định tuyến (router), sau đó là các media player và media server Năm
2001, nó được xây dựng thành chuẩn và dần dần được các nhà sản xuất phần cứng
và phần mềm hỗ trợ Hiện nay, nó đã được ISO xây dựng thành chuẩn quốc tế và được hỗ trợ trong hầu hết các thiết bị mạng và các hệ điều hành thông dụng Diễn đàn UPnP (http://upnp.org) là tổ chứ quản lý việ xây dựng chuẩn UPnP Hiện nay diễn đàn có hơn 300 thành viên là các nhà sản xuất và cung cấp phần cứng cũng như phần mềm, dịch vụ trên thế giới
UPnP là một tập các giao thức máy tính nhằm cho phép các thiết bị mạng và các chương trình có thể kết nối vào mạng một cách dễ dàng giống như cắm thêm một phần cứng vào máy tính Thuật ngữ UPnP bắt nguồn từ “plug and play”, một kĩ thuật cho phép cho phép các thiết bị kết nối động một cách trực tiếp vào máy tính
Kiến trúc UPnP cho phép kết nối mạng ngang hàng giữa các máy tính, các thiết bị mạng và các thiết bị không dây Nó là một giao thức có kiến trúc mở, dựa trên các chuẩn đã được xây dựng như TCP/IP, UDP, HTTP, XML và SOAP
Kiến trúc UPnP hỗ trợ kết nối mạng không cần cấu hình Một thiết bị tương thích UPnP từ bất kì nhà cung cấp nào cũng có thể kết nối động vào một mạng, nhận một địa chỉ IP, thông báo tên của nó, truyền tải tài nguyên của nó đáp ứng yêu cầu, tìm kiếm sự có mặt và tài nguyên của các thiết bị khác Các thiết bị cũng có thể
tự động ngừng kết nối với mạng mà không để lại bất kì thông tin trạng thái không mong muốn nào Tuy nhiên giao thức mạng nay không phải là chuẩn của IETF hay IEEE nên có thể có một số thiết bị không hỗ trợ
• Đặc điểm của UPnP
- Độc lập với thiết bị và môi trường: kĩ thuật UPnP có thể làm việc trên nhiều môi trường hỗ trợ IP bao gồm Ethernet, FireWire, IR (IrDA), đường điện (PLC), và
RF (Bluetooth, Wi-Fi) Nó không cần sự hỗ trợ của các driver đặc biệt của thiết bị
mà sử dụng các giao thức chung
Trang 31- Điều khiển thông qua giao diện người dùng: Kiến trúc UPnP cho phép các nhà cung cấp điều khiển thông qua giao diện người dùng của thiết bị và thực hiện thông qua trình duyệt web
- Độc lập với ngôn ngữ lập trình và hệ điều hành: Bất kì hệ điều hành và ngôn ngữ lập trình nào cũng có thể sử dụng để xây dựng các sản phẩm UPnP UPnP không bắt buộc hay chỉ định một API nào cho các ứng dụng chạy trên các điểm điều khiển Các nhà cung cấp hệ điều hành có thể xây dựng các API phù hợp với nhu cầu của người dùng của họ UPnP cũng cho phép nhà cung cấp điều khiển thông qua giao diện người dùng của thiết bị và thực hiện thao tác thông qua trình duyệt giống như điều khiển các chương trình ứng dụng truyền thống khác
- Điều khiển …
- Các kĩ thuật dựa trên Internet: các kĩ thuật UPnP được xây dựng dựa trên
IP, TCP, UDP, HTTP, XML và nhiều kĩ thuật khác
- Các giao thức cơ bản chung: Các nhà cung cấp thống nhất các tập giao thức
cơ bản cho mỗi thiết bị
- Khả năng mở rộng: Mỗi sản phẩm UPnP có thể có thêm các dịch vụ giá trị gia tăng trên đỉnh của kiến trúc thiết bị cơ bản
• Các thành phần của mạng UPnP [5]
Mạng UPnP bao gồm ba thành phần cơ bản là: thiết bị, điểm điều khiển và dịch vụ
- Thiết bị (device): một thiết bị UPnP là một tập các dịch vụ và các thiết bị
ẩn bên trong Các tập thiết bị UPnP khác nhau sẽ tương ứng với các tập dịch vụ và thiết bị nhúng khác nhau Do đó, các nhóm làm việc khác nhau sẽ chuẩn hóa thành tập các dịch vụ mà một loại thiết bị nào đó sẽ cung cấp Tất cả các thông tin này sẽ được cung cấp trong một tài liệu XML mô tả thiết bị lưu trữ trong thiết bị đó Ngoài
ra, mô tả thiết bị cũng cung cấp danh sách các thuộc tính (như tên và biểu tượng của
thiết bị) liên quan đến thiết bị đó
Trang 32- Dịch vụ (service): Đơn vị nhỏ nhất của điều khiển trong một mạng UPnP là một dịch vụ Một dịch vụ thể hiện các hành động và các mô hình trạng thái của nó thông qua các biến trạng thái Ví dụ, dịch vụ đồng hò có thể mô hình như sau: một biến trạng thái: current_time – định nghĩa trạng thái của đồng hồ, và hai hành động: set_time và get_time để điều khiển dịch vụ Tương tự như bản mô tả thiết bị, các thông tin này là một phần của một tài liệu XML mô tả dịch vụ, được diễn đàn UPnP chuẩn hóa Một con trỏ (URL) đến các đặc tả dịch vụ này nằm trong tài liệu mô tả thiết bị Các thiết bị có thể chứa nhiều dịch vụ
Một dịch vụ trong một thiết bị UPnP chứa một bảng trạng thái, một máy chủ điều khiển và một máy chủ sự kiện Bảng trạng thái lưu trữ trạng thái của dịch vụ thông qua các biến trạng thái và cập nhật chúng khi trạng thái thay đổi Máy chủ điều khiển nhận các yêu cầu hành động, thực hiện chúng, cập nhật bảng trạng thái
và phản hồi kết quả Máy chủ sự kiện thông báo các sự kiện đến các điểm đăng kí bất kì khi nào trạng thái của dịch vụ thay đổi
- Điểm điều khiển (Control Point): một điểm điều khiển trong một mạng UPnP là một bộ điều khiển có thể tìm kiếm và điều khiển các thiết bị khác Sau khi phát hiện thiết bị, một điểm điều khiển có thể:
+ Lấy về mô tả thiết bị và lấy danh sách các dịch vụ liên quan
+ Lấy vè mô tả của các dịch vụ
+ Thực hiện các hành động để điều khiển dịch vụ
+ Đăng kí nhận sự kiện của dịch vụ Bất kì khi nào trạng thái của dịch
vụ thay đổi, máy chủ sự kiện sẽ gửi một sự kiện đến điểm điều khiển
Trang 33UPnP Enabled Device UPnP Enabled Device
UPnP Enabled Device Control Point
Device
Root Device
Embedded Device Device
Service
Service 2 Service 1
Service
Service 2 Service 1
Control Point
Service State Table
Control Server Event Server
Hình 2.5 : Các thành phần của mạng UPnP
• Các giao thức cơ bản của UPnP:
UPnP sử dụng nhiều giao thức chuẩn đang tồn tại Các giao thức này được sử dụng ở nhiều nơi trong mạng nội bộ và mạng Internet Sự phổ biến này đảm bảo rằng sẽ có một số lượng lớn người biết cách xây dựng và triển khai các giải pháp dựa trên những giao thức này Điều này cũng cho phép các thiết bị UPnP làm việc
Trang 34được trong môi trường mạng hiện tại Một số giao thức thông dụng của UPnP là TCP/IP, HTTP, SSDP, GENA, SOAP và XML
UPnP Vendor Defined
UPnP Forum Working Committee Defined
UPnP Device Architecture Defined
HTTPMU (Discovery)
HTTPU (Discovery)
SOAP (Control) HTTP (Description)
IP
HTTP GENA ( Events)
Hình 2.6: UPnP protocol stack
- TCP/IP: Đây là giao thức cơ bản phục vụ cho các giao thức còn lại trong UPnP Sử dụng giao thức này cho phép UPnP có thể thông qua các môi trường vật láy khác nhau và đảm bảo sự phối hợp tốt giữa nhiều nhà cung cấp Các thiết bị UPnP có thể sử dụng nhiều giao thức trong họ TCP/IP bao gồm TCP, UDP, IGMP, ARP và IP cũng như các dịch vụ của nó như DHCP (Dynamic Host Configuration Protocol) và DNS (Domain Name Service)
- HTTP, HTTU, HTTPMU: TCP/IP cung cấp các giao thức cơ bản để tạo kết nối mạng giữa các thiết bị UPnP HTTP cũng là một phần cơ bản của UPnP Tất cả giao tiếp của UPnP được xây dựng dựa trên HTTP và các biến thể của nó HTTPU
và HTTPMU là các biến thể của HTTP được định nghĩa để gửi các bản tin dựa trên UDP/IP thay cho TCP/IP Định dạng cơ bản của bản tin được sử dụng trong các
Trang 35giao thức này giống với HTTP và được yêu cầu trong cả hai trường hợp kết nối multicast và khi bản tin nhận được không đòi hỏi sự tương thích cao
- SSDP: Simple Service Discovery Protocol định nghĩa cách phát hiện các dịch vụ mạng trong mạng SSDP được xây dựng dựa trên HTTPU và HTTPMU và định nghĩa các phương thức để một điểm điều khiển xác định tài nguyên có trong mạng, cũng như để thiết bị thông báo khả năng của nó trên mạng Bằng cách cung cấp cả các thông báo để giới thiệu cũng như tìm kiếm yêu cầu, SSDP loại trừ lỗi khi chỉ có một trong các bộ phận được sử dụng Do đó, mội điểm điều khiển trên mạng
có thể hoàn thiện thông tin trạng hái mạng trong khi vẫn giữ lưu lượng mạng ở mức thấp Cả điểm điều khiển và các thiết bị đều sử dụng SSDP Một điểm điều khiển, bắt đầu từ khi khởi động, có thể gửi một yêu cầy tìm kiếm SSDP (thông qua HTTPMU) để tìm kiếm các thiết bị và dịch vụ đang sẵn sàng trong mạng Nó có thể tối ưu tìm kiếm để chỉ tìm các thiết bị thuộc một nhóm nào đó, một nhóm dịch vụ hoặc thậm chí là một thiết bị nào đó Các thiết bị UPnP luôn nghe ở cổng multicast, khi nhận được một yêu cầu tìm kiếm, thiết bị xem xét các tiêu chí tìm kiếm để xác định nếu chúng thỏa mãn Nếu tìm thấy một kết quả thoae mãn, một phản hồi unicast SSDP (thông qua HTTPU) sẽ được gửi đến điểm điều khiển
Tương tự, một thiết bị, khi bắt đầu gắn vào mạng, sẽ gửi ra nhiều bản tin thông báo SSDP để thông báo các dịch vụ nó hỗ trợ Cả bản tin thông báo và bản tin phản hồi unicast đều chứa một con trỏ đến tài liệu mô tả thiết bị, nơi chứa các thông tin về các tập thuộc tính và dịch vụ đươc thiết bị cung cấp
SSDP cũng cung cấp cách để một thiết bị và các dịch vụ liên quan dễ dàng tách ra khỏi mạng (bye-bye notification) và có thời gian timeout của cache để giải phóng thông tin không cần thiết
- GENA (Generic Event Notification Architecture) được định nghĩa để cung cấp khả năng gửi và nhận thông báo sử dụng HTTP thông qua TCP/IP và multicast UDP Định dạng GENA được sử dụng trong UPnP để tạo ra các thông báo giới thiệu, được gửi đi bằng SSDP và để cung cấp khả năng thay đổi tin hiệu trong trạng
Trang 36thái dịch vụ cho UPnP eventing Một điểm điều khiển muốn nhận các thông báo sự kiện sẽ đăng kí với một nguồn sự kiện bằng cách gửi một yêu cầu bao gồm dịch vụ
nó quan tâm, địa chỉ để gửi sự kiện đến và thời hạn đăng kí cho bản tin sự kiện Việc đăng kí phải được làm mới định kì để tiếp tục nhận thông báo và cũng có thể dùng để kết thúc sử dụng GENA
- SOAP (Simple Object Access Protocol) định nghĩa việc sử dụng XML và HTTp để thực hiện các lời gọi thủ tục từ xa Nó đang trở thành chuẩn cho kết nối dựa trên RPC (Remote Procedure Call) trên mạng Internet Bằng cách sử dụng cơ
sở hạ thâng hiện có của Internet, nó có thể làm việc hiệu quả với tường lửa và proxy SOAP cũng có thể được dùng trong Secure Sockets Layer (SSL) để bảo mật
và dùng làm phương tiện quản lí kết nối HTTP, điều này làm cho việc tạo kết nối thông qua Internet trở nên dễ dàng như là truy cập các trạng web Giống như một lời gọi thủ tục từ xa, UPnP sử dụng SOAP để gửi các bản tin điều khiển đến các thiết bị
và nhận kết quả hoặc các lỗi phản hồi lại điểm điều khiển Mỗi yêu cầu điều khiển UPnP là một bản tin SOAP chứa hành động cần thực hiện và một tập các tham số Phản hồi lại là một bản tin SOAP chứa trạng thái, giá trị trả về và các tham số trả về khác
- XML (Extensible Markup Language), do W3C định nghĩa, là định dạng chung cho dữ liệu có cấu trúc trên Web Một cách khác, nó là một cách để làm cho các loại dữ liệu có cấu trúc gần giống với một file văn bản XML khá giống HTML trong việc sử dụng các thẻ và thuộc tính Tuy nhiên, nó khác ở chỗ các thẻ và thuộc tính này không được định nghĩa một cách thống nhất mà được hiểu theo ngữ cảnh
sử dụng của nó Đặc điểm này làm cho nó dễ dàng phát triển các schema cho nhiều loại tài liệu khác nhau XML là một phần cơ bản của UPnP và được sử dụng trong
mô tả thiết bị và dịch vụ, bản tin điều khiển và thông báo sự kiện
• Các bước kết nối UPnP
- Đánh địa chỉ: cơ sở của kết nối mạng UPnP chính là đánh địa chỉ IP Mỗi thiết bị phải có một máy khách DHCP (Dynamic Host Configuration Protocol) và
Trang 37sử dụng để tìm kiếm máy chủ DHCP khi thiết bị bắt đầu được kết nối vào mạng Nếu tồn tại máy chủ DHCP, thiết bị phải sử dụng địa chỉ IP được cấp Nếu không
có máy chủ DHCP nghĩa là mạng không được quản lý, thiết bị phải sử dụng Auto IP
để tự gán cho mình một địa chỉ IP trong phạm vi địa chỉ kết nối nội bộ (169.254.0.0/16) [10] Auto IP định nghĩa cách một thiết bị lựa chọn địa chỉ một cách thông minh và có thể dễ dàng chuyển đổi giữa các mạng được quản lý và không được quản lý
- Tìm kiếm: Sau khi nhận được một địa chỉ IP, bước đầu tiên trong kết nối UPnP là tìm kiếm khi một thiết bị được thêm vào mạng, giao thức tìm kiếm UPnP cho phép thiết bị đó thông báo các dịch vụ của nó cho điểm điều khiển trong mạng Tương tự, khi một điểm điều khiển được kết nối vào mạng, giao thức tìm kiếm UPnP cho phép điểm điều khiển đó tìm kiếm các thiết bị nằm trong mạng Sự trao đổi cơ bản trong cả hai trường hợp là một bản tin tìm kiếm chứa một vài thuộc tính
cơ bản về thiết bị hoặc một trong các dịch vụ của nó, ví dụ: loại của nó, định danh,
và một con trỏ đến các tài liệu XML mô tả thiết bị Giao thức tìm kiếm UPnP dựa trên giao thức tìm kiếm đơn giản (Simple Service Discovery Protocol - SSDP), một phác thảo IETF đã kết thúc do Microsoft và Hewlett-Packard đề xuất
- Mô tả: Sau khi một điểm điều khiển tìm kiếm được một thiết bị, nó vẫn biết rất ít thông tin về thiết bị đó Để điểm điều khiển có nhiều thông tin hơn về thiết bị
và tài nguyên của nó, hoặc để tác động đến thiết bị, điểm điều khiị ển phải tìm mô tả của thiết bị từ URL được thiết bị cung cấp trong bản tin tìm kiếm Mô tả UPnP cho một thiết bị được cung cấp trong tài liệu XML và bao gồm đặc tả nhà cung cấp, thông tin xuất xưởng như tên và số model, serial number, tên nhà sản xuất, URL đến trang chủ của nhà cung cấp, … Bản mô tả cũng bao gồm một danh sách tất cả các thiết bị nhúng hoặc các dịch vụ, cũng như các URL của phần giới thiệu, điều khiển và sự kiện Đối với mỗi dịch vụ, phần mô tả bao gồm một danh sách các câu lệnh hoặc hành động, phản hồi của dịch vụ và các tham số hoặc đối số cho mỗi hành động Mô tả của một dịch vụ cũng bao gồm một danh sách các biến, các biến này
Trang 38mô hình hóa trạng thái của dịch vụ trong khi chạy và mô tả dưới dạng thuật ngữ kiểu dữ liệu, phạm vi và thậm chí là đặc tả của chúng
- Điều khiển: Sau khi một điểm điều khiển nhận được đặc tả về thiết bị, nócũng nhận được bản mô tả cho mỗi dịch vụ Để điều khiển thiết bị, nó gửi một yêu cầu thực hiện đến một dịch vụ của thiết bị Để làm điều này, nó gửi một bản tin điều khiển tương ứng đến URL điều khiển của dịch vụ đó (được cung cấp trong mô
tả dịch vụ) Bản tin điều khiển này cũng được đóng gói XML và gửi thông qua SOAP Dịch vụ sẽ trả về các giá trị đặc tả cho hành động hoặc mã lỗi Kết quản của hoạt động được mô hình hóa trong các biến mô tả trạng thái khi chạy của dịch vụ
- Thông báo sự kiện (Eventing/Event notification):
Một mô tả UPnP của một dịch vụ bao gồm một danh sách các hoạt động mà dịch vụ đáp ứng và một danh sách các biến thể hiện trạng thái của dịch vụ khi làm việc Dịch vụ thông báo các cập nhật khi các biến này thay đổi và một điểm điều khiển có thể đăng kí để nhận thông tin này Dịch vụ cập nhật bằng cách gửi các bản tin sự kiện Các bản tin này bao gồm tên của một trong nhiều biến trạng thái và giá trị hiện thời của nó Bản tin này cũng được đóng gói trong tài liệu XML và được đinh dạng theo GENA (General Event Notification Architecture) Một bản tin khởi tạo đặc biệt sẽ được gửi đi khi một điểm điều khiển đăng kí lần đầu tiên, bản tin này chứa các tên và giá trị của tất cả các biến sự kiện và cho phép nó khởi tạo trạng thái đầu của dịch vụ Để hỗ trợ các kịch bản với nhiều điểm điều khiển, eventing được thiết kế để giữ tất cả các điểm điều khiển nắm được các thông tin như nhau về kết quả của bất kì hành động nào Các bản tin sự kiện sẽ được gửi bất kì khi nào biến trạng thái thay đổi (trong phản hồi của một hành động đáp ứng hoặc vì trạng thái của dịch vụ thay đổi)
- Trình diễn (Presentation):
Bước cuối cùng trong kết nối UPnP là trình diễn Nếu một thiết bị có một URL cho việc trình diễn, điểm điều khiển có thể lấy một trạng từ địa chỉ này, tải vào một trình duyệt web, và phụ thuộc vào nội dung của trang mà cho phép người
Trang 39dùng điều khiển thiết bị và/hoặc xem trạng thái thiết bị Mức độ chi tiết phụ thuộc vào nội dung đặc tả của trang trinh diễn và thiết bị
• Các vấn đề của UPnP
c STUN [8]
STUN là một tập các giao thức và phương thức dựa theo chuẩn được dùng trong việc dịch địa chỉ NAT cho các ứng dụng nhắn tin, truyền video, âm thanh thời gian thực và các kết nối IP tương tác khác Giao thức STUN cho phép các ứng dụng hoạt động thông qua NAT có thể phát hiện sự tồn tại và dạng của NAT, đồng thời nhận địa chỉ IP và cổng đã được ánh xạ thông qua NAT để ứng dụng có thể kết nối UDP đến các máy trạm ở xa Giao thức này cần một máy chủ mạng thứ 3 (máy chủ STUN) có địa chỉ Internet công cộng
STUN là một giao thức client-server Một máy trạm STUN là thực thể tạo ra các yêu cầu STUN Nó có thể nằm trên một hệ thống đầu cuối như PC của người dùng, hoặc có thể hoạt động trong một thành phần của mạng ví dụ như một máy chủ
hỗ trợ Một máy chủ STUN là nơi tiếp nhận các yêu cầu STUN và gửi trả đáp ứng
Nó phải nằm trong mạng Internet công cộng
Dựa vào giao thức STUN, người ta chia NAT thành bốn loại [10]:
* Full-cone NAT
Full cone NAT, còn có tên khác là one-to-one NAT Tất cả các cổng cho địa chỉ ngoài được gán với một địa chỉ trong định trước với cùng cổng Tất cả các máy
Trang 40trạm ngoài có thể gửi gói tin tùy ý tới máy trạm trong bằng cách gửi gói tin tới địa chỉ ngoài đã được gán
* Restricted cone NAT
Tất cả các yêu cầu từ cùng 1 địa chỉ IP trong và cổng được gán với cùng 1 địa chỉ IP ngoài và cổng Một máy trạm ngoài có thể gửi 1 gói đến máy trạm trong chỉ khi máy trạm trong vừa gửi 1 gói đến nó
* Port restricted cone NAT
Giống với restricted cone NAT, nhưng sự hạn chế bao gồm cả số cổng Một máy trạm bên ngoài có thể gửi 1 gói tin cho 1 cổng riêng biệt nào đó của một máy
trạm bên trong chỉ khi máy trạm bên trong đã gửi một gói tin từ cổng đó đến máy
trạm bên ngoài
* Symmetric NAT