Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

42 4 0
Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Sử dụng lớp RTP API xây dựng chương trình truyền Video ngôn ngữ C# Mục lục Mục lục Chương 1: Giới thiệu giao thức TCP UDP Chương 2: Giới thiệu IP Multicast 2.1 Tìm hiểu IP Multicast 2.2 Broadcast Multicast 2.2.1 Các công nghệ Multicast 2.3 Gửi gói tin Multicast thông qua Routers 2.4 Nhóm Multicast 2.5 Địa nhóm – IP Multicast group address 2.6 Ánh xạ địa IP multicast sang địa MAC 10 2.7 Tiến trình chuyển đổi địa Multicast: 11 2.7.2 Địa multicast cho nhóm thường trực 13 2.8 Cây phân phối Multicast (Multicast Distribution Trees ) 15 2.8.1 Soure tree: 15 2.8.2 Share tree: 15 2.9 Multicast Forwarding 17 Chương : Giao thức RTP (Real Time Transport Protocol) 18 3.1 RTP_Real Time Transport Protocol 18 3.2 Hoạt động giao thức: 19 3.2.1 Sender 19 3.2.2 Receiver 19 3.4 Kiến trúc gói liệu 22 Chương 4: RCTP 24 Chương 5: Secure Realtime Transport Protocol (SRTP) 25 5.1 Giới thiệu 25 5.2 Cách mã hoá liệu 25 Chương Các hàm RTP API 27 6.2 Một số hàm RTP 27 6.2.1 Hàm khởi tạo 27 6.2.2 Các hàm gửi, nhận 29 6.2.3 Hàm đóng kết nối 29 6.2.4 Hàm truy cập thông tin thành viên 30 Chương 7: Phân tích chương trình thực nghiệm 32 7.1 Phân tích chương trình 32 7.2 Thiết kế chương trình 33 7.2.1 Thiết kế chức 33 7.2.2 Thiết kế giao diện 33 7.2.3 Thiết kế Module 35 Tài liệu tham khảo 41 Báo cáo tốt nghiệp Phạm Thị Liễu – CT902 download by : skknchat@gmail.com 1/42 Sử dụng lớp RTP API xây dựng chương trình truyền Video ngơn ngữ C# Chương 1: Giới thiệu giao thức TCP UDP 1.1 Đặc điểm chương trình TCP Trước hết, TCP giao thức kết nối hướng đối tượng Một dòng liệu thiết lập để đảm bảo liệu di chuyển xác từ thiết bị đến thiết bị khác Các ứng dụng dùng TCP không lo việc mát liệu có đệm (buffers) TCP phải bảo đảm tồn vẹn liệu Nó lưu trữ tồn liệu gửi đệm có xác nhận bên nhận Tương tự nhận liệu từ mạng, TCP phải giữ đệm để đảm bảo nhận đủ tất thành phần trước đưa liệu vào chương trình Bởi buffer riêng lẻ, liệu chuyển đổi chương trình với chương trình khác máy tính xa điều khiển thay đổi điều mà khơng mong muốn Hình 1: Chuyển đổi liệu TCP Các chương trình dùng TCP hệ điều hành Windows có khả đồng liệu chương trình máy tính với liệu đầu vào từ thiết bị khác Thay gửi lên mạng, liệu nằm đệm khoảng thời gian Nghĩa chương trình nên gửi thêm liệu tới host, thay đổi thêm vào đệm Khi chương tình gửi liệu đến thiết bị xa, gửi tất nội dung đệm, không chia nhỏ liệu mà đệm data1 data2 gộp thành gói để gửi Dữ liệu đưa vào để xác định phần riêng biệt hay gói liệu lớn Khi bạn gửi liệu dạng thông điệp đến thiết bị xa, thiết bị không cần thiết nhận số đơn vị thông điệp Chương trình đặt tất thơng điệp riêng biệt vào đệm TCP Tuỳ thuộc vào tốc độ gửi nhận liệu, thông điệp đẩy vào dòng liệu (data Báo cáo tốt nghiệp Phạm Thị Liễu – CT902 download by : skknchat@gmail.com 2/42 Sử dụng lớp RTP API xây dựng chương trình truyền Video ngôn ngữ C# stream) Đặc điểm giao thức TCP gây bất ngờ cho nhiều lập trình viên mạng vào nghề Có cách thực là: - Tạo giao thức quy định đồng dần liệu gửi - Thiết kế hệ thống đánh dấu để phân biệt liệu bên dòng liệu Cả cách phải cân nhắc trước làm Hầu hết giao thức Internet dùng TCP FTP giao thức tương tự cung cấp chế dịng lệnh để client gửi thơng điệp dạng dịng lệnh 1.2 Đặc điểm chương trình dùng UDP UDP tạo để giải vấn đề “thông điệp vùng biên” (message boundary) TCP UDP lưu trữ liệu bên ngồi tất thơng điệp gửi từ chương trình Bởi vì, UDP thiết kế riêng biệt không quan tâm đến xác thực liệu Nó khơng dùng đệm liệu để lưu trữ liệu gửi nhận UDP lưu trữ thơng điệp bên ngồi vào gói tin mạng minh hoạ sau: Hình 2: Chuyển đổi liệu theo UDP Khả UDP làm nảy sinh vấn đề khác Bởi UDP khơng đảm bảo việc phân phối liệu Thiết bị gửi gói tin UDP khơng có nghĩa thiết bị nhận nhận gói tin Chương trình hỏng liệu Các bước gửi liệu thông qua UDP:  Gửi liệu đến thiết bị khác  Khởi động timer, đặt khoảng thời gian định trước  Đợi đồng liệu với thiết bị nhận Khi nhận, dừng timer tiếp tục chương trình Báo cáo tốt nghiệp Phạm Thị Liễu – CT902 download by : skknchat@gmail.com 3/42 Sử dụng lớp RTP API xây dựng chương trình truyền Video ngôn ngữ C# Nếu timer hết hiệu lực trước bạn nhận đồng liệu, quay lại lặp lại bước Sau đặt lại khoảng thời gian mà khơng có phản hồi khơng thể kết nối với thiết bị xa Gửi liệu dùng UDP nhanh dễ dàng phức tạp TCP ta cần tự kiểm tra việc gói tin Báo cáo tốt nghiệp Phạm Thị Liễu – CT902 download by : skknchat@gmail.com 4/42 Sử dụng lớp RTP API xây dựng chương trình truyền Video ngôn ngữ C# Chương 2: Giới thiệu IP Multicast 2.1 Tìm hiểu IP Multicast - IP Multicast công nghệ truyền thông dựa tảng IP Nó khai thác hiệu mơi trường mạng cách gửi gói tin Một gói tin - chia thành nhiều gói tin gửi đến nhiều người nhận Các nút mạng có trách nhiệm tái tạo chuyển tiếp hướng tới người nhận Giao thức phổ biến dùng mức thấp UDP Nhưng UDP khả xác thực _ gây lỗi gói tin bị mát Giao thức Realiable Multicast gọi PGM phát triển thêm vào chế tự sửa lỗi phát lại - IP Multicast công nghệ băng thông rộng nhằm làm giảm lưu lượng việc phân phối dòng liệu cho nhiều người Các ứng dụng phổ biến hội nghị truyền hình, học từ xa, truyền thơng… - Các gói tin Multicast chuyển tiếp, phát lại mạng Router có chức PIM (Protocol Independent Multicast) giao thức hỗ trợ multicast khác Hình 3: Multicast Transmission Sends a Single Multicast Packet Addressed to All Intended Recipients - Trong ứng dụng cần băng thông rộng MPEG Video có cách để gửi cho nhiều người lúc IP Multicast Báo cáo tốt nghiệp Phạm Thị Liễu – CT902 download by : skknchat@gmail.com 5/42 Sử dụng lớp RTP API xây dựng chương trình truyền Video ngơn ngữ C# 2.2 Broadcast Multicast - IP broadcasting dùng thiết bị mạng để gửi gói tin cho thiết bị mạng Bởi giao thức TCP yêu cầu thiết bị phải có kết nối tin cậy Vì khơng thể gửi gói tin broadcast mơi trường TCP Thay vào đó, UDP dùng giao thức có khả gửi gói tin mà khơng cần khởi tạo kết nối đặc biệt - Broadcasting cách để gửi tin tới tất thiết bị subnet có hạn chế bị giới hạn local subnet IP Multicast kế thừa cho phép ứng dụng gửi gói tin tới thiết bị local subnet mạng khác Tính cho phép chương trình kết nối tới nhóm multicast (multicast group) để thực hội nghị diện rộng (wide area conference) - IP multicast dùng địa IP đặc biệt Các dải địa IP tạo nhóm multicast khác Mỗi nhóm multicast bao gồm nhóm thiết bị lắng nghe địa IP Vì gói tin gửi tới đích địa nhóm nên thiết bị phải “lắng nghe địa chỉ” để nhận tin Dải địa 224.0.0.1 đến 239.255.255.255 gọi địa nhóm Multicast 2.2.1 Các cơng nghệ Multicast Có công nghệ dùng: - Công nghệ peer – to - peer: tất client gửi thơng điệp đến tất client khác nhóm - Central sever: gửi thơng điệp tới nhóm client a Cơng nghệ Peer – to- Peer Tất client nhóm multicast có quyền ngang Bất kỳ client có khả trao đổi thơng điệp với client khác nhóm Báo cáo tốt nghiệp Phạm Thị Liễu – CT902 download by : skknchat@gmail.com 6/42 Sử dụng lớp RTP API xây dựng chương trình truyền Video ngơn ngữ C# Hình 4: Mọi client trao đổi thơng điệp với client khác nhóm Hệ thống IP hỗ trợ nhóm multicast theo peer – to – peer cho phép thiết bị mạng gửi nhận gói tin có đích địa nhóm multicast Một số yếu tố mã hoá để ngăn chặn client nặc danh nhận liệu nhóm khơng có cách để nhận xác thực từ client liệu b.Central Server Hệ thống dùng thiết bị mạng để điều khiển tồn hoạt động nhóm multicast, gọi central Server Một client muốn kết nối vào nhóm phải xin quyền từ central server Nếu central server từ chối cho client truy cập nhóm khơng gói tin chuyển tiếp tới Như hình sau: Báo cáo tốt nghiệp Phạm Thị Liễu – CT902 download by : skknchat@gmail.com 7/42 Sử dụng lớp RTP API xây dựng chương trình truyền Video ngơn ngữ C# Hình 5: Central Server điều khiển nhóm Multicast - Lưu ý: hệ thống nhóm multicast theo cơng nghệ central server không hỗ trợ IP Hiện có mạng ATM có hỗ trợ nhóm multicast 2.3 Gửi gói tin Multicast thơng qua Routers Mặc dù gói tin multicast gửi sang mạng khác theo mặc định hầu hết router khơng chuyển tiếp gói tin sang subnet khác Nếu router cho gói tin chuyển tiếp qua gây tràn gói tin Chính IGMP (Internet Group Management Protocol) phát triển để giúp router tránh tắc nghẽn gửi gói tin sang subnet khác Khi thiết bị mạng muốn kết nối vào nhóm multicast, gửi gói tin IGMP tới router cục subnet Gói tin IGMP xác nhận thiết bị địa nhóm thiết bị nhận Nó định tuyến chuyển tiếp gói tin từ nhóm đến subnet thiết bị nhận Hình sau biểu diễn trình xác nhận: Báo cáo tốt nghiệp Phạm Thị Liễu – CT902 download by : skknchat@gmail.com 8/42 Sử dụng lớp RTP API xây dựng chương trình truyền Video ngơn ngữ C# Hình 6:Q trình xác thực thành viên router Tương tự, host rời khỏi nhóm multicast, gói tin IGMP khác gửi tới router để thơng báo khơng chuyển tiếp gói tin 2.4 Nhóm Multicast Multicast hoạt động dựa chế nhóm Nhóm khơng có đường biên giới tự nhiên hay địa lý Các host nằm đâu mạng Internet Host muốn nhận liệu nhóm phải “join” vào nhóm Giao thức bên nhận sử dụng IGMP (Internet Group Management Protocol) Host phải thành viên nhóm nhận liệu 2.5 Địa nhóm – IP Multicast group address - IP Multicast group address bên gửi bên nhận dùng để gửi nhận liệu + Bên gửi dùng địa nhóm địa đích cho gói tin + Bên nhận dùng để báo cho mạng chúng nhận gói tin từ nhóm Báo cáo tốt nghiệp Phạm Thị Liễu – CT902 download by : skknchat@gmail.com 9/42 Sử dụng lớp RTP API xây dựng chương trình truyền Video ngơn ngữ C# Ví dụ: địa nhóm 239.1.1.1 Bên gửi gửi liệu đến địa đích 239.1.1.1 Bên nhận thông báo lên mạng nhận liệu gửi từ địa 239.1.1.1 Bên nhận phải “join” vào địa 239.1.1.1 Giao thức bên nhận dùng để join Internet Group Managenment Protocol - IANA xác định dải địa lớp D làm địa Multicast Độ dài địa nhóm 254.0.0.0 đến 239.255.255.255.Dải địa dùng làm địa nhóm địa đích IP Multicast Địa nguồn gói tin multicast ln địa unicast - Các router switch phải có phương thức để phân biệt traffic dạng multicast với dạng unicast hay broadcast Điều thực thông qua việc gán địa IP, cách dùng địa lớp D từ 224.0.0.0 đến 239.255.255.255 cho multicast Các thiết bị mạng nhanh chóng lọc địa multicast cách đọc bit bên trái địa Bốn bit địa multicast luôn 1110 Không giống dãy địa lớp A,B C, địa lớp D khơng có q trình subnetting Vì có đến lũy thừa 28 địa nhóm multicast trích dẫn từ lớp D Các địa multicast tượng trưng nhóm, khơng tượng trưng cho host - Trong đó, dải địa từ 224.0.0.0 đến 224.0.0.255 dùng cho giao thức mạng Các gói tin mang địa không chuyển tiếp router Chúng để phân đoạn mạng LAN cục có Time To Live (TTL) 2.6 Ánh xạ địa IP multicast sang địa MAC - Làm mà router switch kết hợp địa multicast IP với địa MAC Việc gán địa multicast vào nhóm L3 sang nhóm multicast thường tự động tạo địa multicast lớp Do khơng có chế tương đương với chế ARP, dạng giá trị đặc biệt dành riêng cho địa MAC multicast dùng Các địa bắt đầu 0100.5e Phần 28 bit sau địa multicast IP ánh xạ vào 23bit thấp địa Báo cáo tốt nghiệp Phạm Thị Liễu – CT902 download by : skknchat@gmail.com 10/42 .. .Sử dụng lớp RTP API xây dựng chương trình truyền Video ngôn ngữ C# Chương 1: Giới thiệu giao th? ?c TCP UDP 1.1 Đ? ?c điểm chương trình TCP Trư? ?c hết, TCP giao th? ?c kết nối hướng... Thị Liễu – CT902 download by : skknchat@gmail.com 13/42 Sử dụng lớp RTP API xây dựng chương trình truyền Video ngơn ngữ C# tồn c? ? ?c IANA dành riêng địa để đảm bảo tính tồn c? ? ?c địa Bằng c? ?ch dùng... – CT902 download by : skknchat@gmail.com 4/42 Sử dụng lớp RTP API xây dựng chương trình truyền Video ngôn ngữ C# Chương 2: Giới thiệu IP Multicast 2.1 Tìm hiểu IP Multicast - IP Multicast c? ?ng

Ngày đăng: 23/04/2022, 07:32

Hình ảnh liên quan

Hình 1: Chuyển đổi dữ liệu TCP - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

Hình 1.

Chuyển đổi dữ liệu TCP Xem tại trang 2 của tài liệu.
Hình 2: Chuyển đổi dữ liệu theo UDP - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

Hình 2.

Chuyển đổi dữ liệu theo UDP Xem tại trang 3 của tài liệu.
Chươn g: Giới thiệu về IP Multicast 2 - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

h.

ươn g: Giới thiệu về IP Multicast 2 Xem tại trang 5 của tài liệu.
Hình 3: Multicast Transmission Send sa Single Multicast Packet Ađressed to All Intended Recipients  - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

Hình 3.

Multicast Transmission Send sa Single Multicast Packet Ađressed to All Intended Recipients Xem tại trang 5 của tài liệu.
Hình 4: Mọi client có thể trao đổi thông điệp với client khác trong nhóm - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

Hình 4.

Mọi client có thể trao đổi thông điệp với client khác trong nhóm Xem tại trang 7 của tài liệu.
Hình 5: Central Server điều khiển nhóm Multicast - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

Hình 5.

Central Server điều khiển nhóm Multicast Xem tại trang 8 của tài liệu.
Hình 6:Quá trình xác thực thành viên trong router - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

Hình 6.

Quá trình xác thực thành viên trong router Xem tại trang 9 của tài liệu.
MAC bằng một giải thuật đơn giản. Địa chỉ MAC được hình thành bằng cách dùng dạng OUI 01005E, sau đó là giá trị 0 và sau cùng là 23 bits địa chỉ của L3  multicast - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

b.

ằng một giải thuật đơn giản. Địa chỉ MAC được hình thành bằng cách dùng dạng OUI 01005E, sau đó là giá trị 0 và sau cùng là 23 bits địa chỉ của L3 multicast Xem tại trang 11 của tài liệu.
Hình sau là ví dụ cho SPT với nhóm 224.1.1.1 gốc đặt ở nguồn. Hos tA đang kết nối đến 2 bên nhận là host B và C - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

Hình sau.

là ví dụ cho SPT với nhóm 224.1.1.1 gốc đặt ở nguồn. Hos tA đang kết nối đến 2 bên nhận là host B và C Xem tại trang 15 của tài liệu.
- Hình trên là ví dụ cho Share tree với địa chỉ nhóm là 224.2.2.2, gốc đặt tại router D - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

Hình tr.

ên là ví dụ cho Share tree với địa chỉ nhóm là 224.2.2.2, gốc đặt tại router D Xem tại trang 16 của tài liệu.
Hình 9: Share tree - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

Hình 9.

Share tree Xem tại trang 16 của tài liệu.
Hình 11: Kiến trúc gói dữ liệu - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

Hình 11.

Kiến trúc gói dữ liệu Xem tại trang 22 của tài liệu.
1 Kết nối Khi người dùng muốn truyền hình ảnh thì phải - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

1.

Kết nối Khi người dùng muốn truyền hình ảnh thì phải Xem tại trang 33 của tài liệu.
(2): PictureBox Send_ Hình ảnh thu từ camera (3): TextBox_ Nhập địa chỉ nhóm Multicast - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

2.

: PictureBox Send_ Hình ảnh thu từ camera (3): TextBox_ Nhập địa chỉ nhóm Multicast Xem tại trang 34 của tài liệu.
4. Gửi hình ảnh - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

4..

Gửi hình ảnh Xem tại trang 37 của tài liệu.
Bước 2: Người gửi hình ảnh nhấn nút Bật Camerạ - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

c.

2: Người gửi hình ảnh nhấn nút Bật Camerạ Xem tại trang 38 của tài liệu.
Bước 3: Người gửi nhấn nút Gửi hình ảnh - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

c.

3: Người gửi nhấn nút Gửi hình ảnh Xem tại trang 38 của tài liệu.
Bước 4: Nếu muốn tạm dừng gửi hình ảnh, nhấn nút Dừng gửi - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

c.

4: Nếu muốn tạm dừng gửi hình ảnh, nhấn nút Dừng gửi Xem tại trang 39 của tài liệu.
Bước 5: Nhấn nút Tắt Camera để không truyền hình ảnh - Sử dụng các lớp RTP API xây dựng chương trình truyền video bằng ngôn ngữ c

c.

5: Nhấn nút Tắt Camera để không truyền hình ảnh Xem tại trang 39 của tài liệu.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan