1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ Án Đề Tài Tìm Hiểu Cơ Chế Screen Sharing P2P.docx

24 3 0

Đ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

MẪU ĐỒ ÁN KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒ ÁN ĐỀ TÀI TÌM HIỂU CƠ CHẾ SCREEN SHARING P2P LỜI CẢM ƠN Để hoàn thành đề tài này, em xin gửi lời cảm ơn chân[.]

ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG ĐỒ ÁN ĐỀ TÀI: TÌM HIỂU CƠ CHẾ SCREEN SHARING P2P LỜI CẢM ƠN Để hoàn thành đề tài này, em xin gửi lời cảm ơn chân thành đến thầy Đặng Thị Kim Ngân - giảng viên trường đại học Công nghệ thông tin truyền thông Việt Hàn tận tình bảo hướng dẫn em để hoàn thành đồ án Em xin cảm ơn thầy cô trường truyền đạt cho chúng em kiến thức kỹ năng, cảm ơn bạn bè khoa, trường giúp đỡ, đồng hành để hoàn thành đồ án Trong q trình làm đồ án cịn nhiều thiếu sót, em mong nhận bảo, đóng góp ý kiến thầy để em có điều kiện bổ sung, khắc phục hạn chế đồ án Em xin chân thành cảm ơn! MỞ ĐẦU WebRTC nỗ lực để xây dựng framework mở có khả giao tiếp audio video thời gian thực, biến trình duyệt web thành tảng cho giao tiếp người với người Giao tiếp thời gian thực trình duyệt web có trước nhiên phải cài đặt phần mềm bên thứ ba lên trình duyệt web WebRTC mang lại hỗ trợ giao tiếp thời gian thực từ bên trình duyệt web nhà phát triển web sử dụng cách tự thông qua JavaScript API tiêu chuẩn Điều mang lại giao tiếp thời gian thực tính Báo cáo nghiên cứu chuyên sâu WebRTC, kiến trúc mơ hình WebRTC, giao thức kỹ thuật đƣợc sử dụng WebRTC, API WebRTC vấn đề bảo mật tính riêng tư giải WebRTC Dựa kết nghiên cứu lý thuyết cho WebRTC trạng hệ thống hỗ trợ khách hàng trực tuyến website thương mại điện tử Việt Nam phải sử dụng ứng dụng chat bên Yahoo messenger Skype, tiến hành xây dựng ứng dụng web chat thời gian thực sử dụng WebRTC để cải tiến hệ thống hỗ trợ khách hàng Khách hàng cài đặt thêm ứng dụng plugin để chat video, gửi tin nhắn gửi file với nhân viên hỗ trợ khách hang trình duyệt web Chúng tơi thấy WebRTC cơng nghệ khả thi, thích hợp cho trƣờng hợp giao tiếp một từ trình duyệt đến trình duyệt Mặc dù chúng tơi phát số thách thức chưa giải quyết, không thấy trở ngại vượt qua ngăn cản việc chấp nhận WebRTC WebRTC mở hội cho công ty sử dụng trực tiếp để cung cấp dịch vụ giao tiếp thời gian thực web, tạo không gian cho nhà cung cấp WebRTC thị trường Thêm vào đó, WebRTC cho phép kết nối với hệ thống cũ nhƣ PSTN hay PLMN, mở hội cho nhà cung cấp viễn thông để khám phá tạo cách thức truyền thông cho khách hàng họ MỤC LỤC MỞ ĐẦU Chương CƠ SỞ LÝ THUYẾT 1.1 Sơ lược lập trình mạng 1.1.1 Lập trình mạng gì? 1.1.2 Các mơ hình lập trình mạng 1.1.3 Một số giao thức mạng 10 1.2 Sơ lược Java 12 1.2.1 Khả ngôn ngữ Java 12 1.2.2 Đặc điểm ngôn ngữ Java 12 Chương PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN .13 2.1 Giới thiệu toán 13 2.1.1 WebRTC gì? 13 2.1.2 Kurento gì? .14 2.1.3 WebRTC gì? 15 2.1.4 p2p gì? 16 2.2 Giao thức WebRTC 17 2.3 Kiến trúc WebRTC 19 2.4 Tìm hiểu, cài đặt cho chương trình 23 Chương DEMO CHƯƠNG TRÌNH 25 3.1 Demo kết 25 3.2 Kết luận .28 3.2.1 Ưu điểm .28 3.2.2 Nhược điểm Error! Bookmark not defined Chương CƠ SỞ LÝ THUYẾT Sơ lược lập trình mạng 1.1.1 Lập trình mạng gì? Ngày nói đến phát triển ứng dụng phần mềm, đa số người ta muốn nói đến chương trình có khả làm việc mơi trường mạng tích hợp nói chung mạng máy tính nói riêng Từ chương trình kế tốn doanh nghiệp, quản lý, trị chơi, điều khiển chương trình ứng dụng mạng Vấn đề lập trình mạng liên quan đế nhiều lĩnh vực kiến thức khác Từ kiến thức sử dụng ngơn ngữ lập trình, phân tích thiết kế hệ thống, kiến thức hệ thống mạng, mơ hình xây dựng chương trình ứng dụng mạng, kiến thức sở liệu kiến thức truyền thông, kiến thức lĩnh vực liên quan khác mạng điện thoại di động, PSTN, hệ thống GPS, mạng BlueTooth, WUSB, mạng sensor Nhưng nói vấn đề lập trình mạng có vấn đề cốt lõi tích hợp lập trình ứng dụng mạng thể hình Hay nói cách khác, vấn đề lập trình mạng định nghĩa với cơng thức sau: LTM = KTM + MH + NN  LTM: Lập trình mạng  KTM: Kiến thức mạng truyền thơng (mạng máy tính, PSTN, )  MH: Mơ hình lập trình mạng  NN: Ngơn ngữ lập trình mạng Lập trình mạng nhiệm vụ để phát triển ứng dụng doanh nghiệp Một chương trình mạng viết để chương trình máy tính khác truyền tin với cách hiệu an toàn cho dù chúng cài đặt mạng LAN, WAN hay mạng toàn cầu Internet, điều thành công nhiều hệ thống Hiện học lập trình trực tuyến nhà lập trình online thường sử dụng ngơn ngữ lập trình online NET Đây mạng cục LAN Nó nhà trực tuyến phát triển để xây dựng máy tính khu vực nhỏ giống tồn nhà hay hộ gia đình Ngơn ngữ lập trình NET bao gồm tập kết lớp dùng để lập trình online thuộc hai khơng gian là: System.net System.net Socket Những lớp hỗ trợ all thứ từ lập trình địa TCP/IP Trong lập trình mạng cịn có HTML Những HTML thơng qua HTTP Hai khơng gian có tảng cho hay networking cấp cao Và cịn có dịch vụ website XML Để lập trình mạng phải cần tới chân trời Socket Đây giao diện lập trình áp dụng trực tuyến Nó thơng qua giao diện để lập trình điều khiển truyền thông máy với Socket trừu tượng hóa mức cao cấp Bạn đủ sức thưởng tượng thiết bị truyền thông hai chiều tương tự tệp tin mà bạn thường hay gửi nhận liệu hai máy 1.1.2 Các mơ hình lập trình mạng Mạng máy tính chia thành ba mơ sau: mơ hình trạm-chủ (Client-Server), mơ hình mạng ngang hàng (Peer-to-Peer) mơ hình lai (Hybrid) 1.1.2.1 Mơ hình trạm-chủ (Client-Server) Mơ hình phần mềm Client/Server mơ hình giải pháp phần mềm cho việc khắc phục tình trạng tải mạng vượt qua ngăn cách khác cấu trúc vật lý hệ điều hành hệ thống máy tính khác mạng Mỗi phần mềm xây dựng theo mơ hình Client/Server chia làm hai phần: phần hoạt động máy phục vụ gọi phần phía Server phần hoạt động trạm làm việc gọi phần phía Client Với mơ hình trạm làm việc gọi Client (hay máy Client) máy phục vụ gọi Server Nhiệm vụ phần quy định sau:  Phần phía Server quản lý giao tiếp mơi trường bên ngồi Server với Client, tiếp nhận yêu cầu dạng xâu ký tự (query string), phân tích query string, xử lý liệu gửi kết trả lời phía Client  Phần phía Client tổ chức giao tiếp với người dùng, với mơi trường bên ngồi trạm làm việc với phía Server, tiếp nhận yêu cầu người dùng, thành lập query string gửi phía Server, tiếp nhận kết tổ chức trình diễn chúng Hình Mơ hình trạm-chủ (Client-Server) 1.1.2.2 Mạng ngang hàng (Peer-to-peer) Mạng ngang hàng (p2p) mạng mà hai hay nhiều máy tính chia sẻ t ậpp tin truy c ậpp thiết bị máy in mà không cần đến máy chủ hay phần mềm máy chủ Mạng ngang hàng thường tổ chức thành nhóm làm việc workgroup Mơ hình khơng có q trình đăng nhập tập trung, đăng nhập vào mạng bạn sử dụng tất tài nguyên mạng Truy cập vào tài nguyên phụ thuộc vào người chia sẻ tài nguyên đó, bạn phải biết mật để truy nhập tới tài nguyên chia sẻ Mạng p2p tạo hai hay nhiều máy tính kết nối với chia sẻ tài nguyên mà thông qua m ột máy chủ dành riêng Mạng p2p có thể làt máy chủ dành riêng Mạng p2p kết nối chỗ – hai máy tính nối với qua cổng USB để truyền t ậpp tin P2p sở hạ tầng thường trực kết nối 5-6 máy tính với m ợt máy chủ dành riêng Mạng p2p có thể làt văn phòng nhỏ cáp đồng Hay một máy chủ dành riêng Mạng p2p có thể làt mạng có quy mơ lớn nhiều, dùng giao thức ứng dụng đ c bi t để thiết l ậpp mối quan h trực tiếp người dùng internet Hình Mạng ngang hàng (Peer-to-peer) 1.1.3 Một số giao thức mạng TCP/IP giao thức tập trung vào hai vấn đề môi trường liên mạng TCP giao thức tầng giao vận tương đương với TP4 OSI Đích TCP/IP mạng liên kết nối OSI máy tính liên kết nối Hình Bộ giao thức bốn tầng TCP/IP Do TCP/IP xác định trực tiếp hai tầng chủ yếu để thiết kế hệ thống phân tán mạng truyền thơng, thường dùng mơ hình để trình bày Socket truyền thông không kết nối sử dụng rộng rãi hệ phân tán lập trình mạng Một số giao thức điển hình giao thức TCP/IP liệt kê - FTP (File transfer Protocol): Giao thức truyền File lấy (gửi) File từ (tới) máy khác - SMTP (Simple Mail Transfer Protocol): Một giao thức thư tín điện tử - DNS (Domain Name phục vụ): Dịch vụ tên miền cho phép nhận máy tính từ tên miền thay cho chuỗi địa Internet khó nhớ - ICMP (Internet Control Message Protocol): Nghi thức thông báo lỗi - UDP (User Datagram Protocol): Giao thức truyền không kết nối cung cấp dịch vụ truyền không tin cậy tiết kiệm chi phí truyền - TCP (Transmission Control Protocol): Giao thức hướng kết nối cung cấp dịch vụ truyền thông tin cậy - IP (Internet Protocol): Giao thức Internet chuyển giao gói tin qua máy tính đến đích Sơ lược Java 1.1.4 Khả ngôn ngữ Javascript JavaScript ngôn ngữ lập trình đa tảng (cross-platform), ngơn ngữ lập trình kịch bản, hướng đối tượng JavaScript ngôn ngữ nhỏ nhẹ (small and lightweight) Khi nằm bên mơi trường (host environment), JavaScript kết nối tới object mơi trường cung cấp cách quản lý chúng (object) JavaScript chứa thư viện tiêu chuẩn cho object, ví dụ như: Array, Date, Math, yếu tố cốt lõi ngơn ngữ lập trình như: tốn tử (operators), cấu trúc điều khiển (control structures), câu lệnh JavaScript mở rộng cho nhiều mục đích việc bổ sung thêm object; ví dụ:  Client-side JavaScript - JavaScript phía máy khách, JavaScript mở rộng cách cung cấp object để quản lý trình duyệt Document Object Model (DOM) Ví dụ, phần mở rộng phía máy khách cho phép ứng dụng tác động tới yếu tố trang HTML phản hồi giống tác động người dùng click chuột, nhập form, chuyển trang  Server-side JavaScript - JavaScript phía Server, JavaScript mở rộng cách cung cấp thêm đối tượng cần thiết để để chạy JavaScript máy chủ Ví dụ, phần mở rộng phía server cho phép ứng dụng kết nối với sở liệu (database), cung cấp thông tin cách liên tục từ yêu cầu tới phần khác ứng dụng, thực thao tác với tập tin máy chủ 1.1.5 Đặc điểm ngôn ngữ Java JavaScript Java giống lại khác khác Ngôn ngữ JavaScript có lẽ giống giống với ngơn ngữ Java JavaScript khơng có khai báo static khơng có "tính mạnh kiểu" (strong type checking) Java Cú pháp (syntax) lập trình, đặt tên cơng thức xây dựng điều khiển lưu lượng (controlflow) JavaScript phần lớn dựa theo ngơn ngữ lập trình Java, lý JavaScript đổi tên từ LiveScript thành JavaScript Ngược lại với hệ thống thời gian biên dịch (compile-time) Java lớp xây dựng khai báo, JavaScript hỗ trợ tảng hệ thống thời gian chạy dựa số lượng nhỏ loại liệu đại diện cho số, boolean liệu chuỗi JavaScript có mơ hình phổ biến mơ hình đối tượng dựa ngun mẫu (prototype-based) thay mơ hình đối tượng dựa lớp (class-based) Các mơ hình dựa nguyên mẫu cung cấp khả thừa kế động; nghĩa là, kế thừa khác cho đối tượng khác JavaScript hỗ trợ phương thức (function) không khai báo Phương thức thuộc tính (property) đối tượng, thực thi phương thức định kiểu (loosely typed methods) Chương PHÂN TÍCH VÀ THIẾT KẾ BÀI TỐN Giới thiệu tốn 2.1.1 WebRTC gì? WebRTC viết tắt cụm từ Web Real-Time Communication Là web API phát triển World Wide Web Consortium (W3C), khả hỗ trợ trình duyệt (browser) giao tiếp với thông qua VideoCall, VoiceCall hay transfer data Peer-toPeer (P2P) mà không cần browser phải cài thêm plugins hay phần mềm hỗ trợ từ bên Các phần WebRTC bao gồm:  getUserMedia, cho phép trình duyệt web truy cập vào camera và/hoặc microphone để lấy liệu hình ảnh âm cho việc truyền tải  RTCPeerConnection dùng để cài đặt videocall/voicecall dùng cho việc truyền tải  RTCDataChannel cho phép trình duyệt chia sẻ liệu peer-to-peer WebRTC API bao gồm chức năng:  getStats cho phép ứng dụng web lấy tập hợp số liệu thống kê session WebRTC Giao thức WebRTC Do đặc điểm cần thời gian thực cao tính tin cậy, giao thức UDP sử dụng WebRTC giao thức vận chuyển.Nhưng để thỏa mãn yêu cầu trình duyệt phải hỗ trợ giao thức dịch vụ lớp khác nữa.Về giao thức sử dụng WebRTC thể hình dưới: Hình Giao thức WebRTC  STUN: NAT (The IP Network Address Translator) cung cấp địa IP để sử dụng mạng nội Nhưng địa không sử dụng bên ngồi mạng Khơng biết địa cơng khai khơng có cách để hai Peer tương tác Để giải vấn đề WebRTC sử dụng STUN (Session Traversal Utilities for NAT) STUN server tồn mạng internet có nhiệm vụ kiểm tra địa IP cổng yêu cầu vừa đến gửi trở lại IP cổng đó.Các ứng dụng sử dụng STUN server để cung cấp IP cổng cơng khai từ internet Từ WebRTC peer tự lấy địa IP cổng cơng khai đưa cho peer khác thơng qua chế signaling.Hình bên mơ tả cách làm việc STUN server: Hình Cách thức hoạt động STUN  TURN: Traversal Using Relays around NAT (TURN) Được xây dựng nhằm vượt qua symmetric NAT cách mở kết nối tới TURN server đáp lại tất thông tin thông qua server (dữ liệu audio/video/data streaming peer, signaling data).Turn server làm điều có public địa chỉ, liên lạc với peer chí peer có tường lửa proxy đứng sau Hình mơ tả hoạt động TURN server Hình Cách thức hoạt động TURN Kiến trúc WebRTC WebRTC có khác biệt với mơ hình truyền thống sử dụng P2P trình duyệt Mặc dù sử dụng mơ hình P2P xong ứng dụng WebRTC cần server đứng trung gian để có trao đổi thơng tin cần thiết để hai trình duyệt kết nối với Server gọi signaling server, cần phải với chức thời gian thực (Real Time Communication hay RTC) Ngoài WebRTC cung cấp cấp số APIs để tương tác tận dụng khả trình duyệt.Hình mơ tả kiến trúc đơn giản WebRTC Hình Kiến trúc WebRTC WebRTC không giới hạn kết nối hai người dùng Chúng ta có khả kết nối từ người dùng đến nhiều người dùng khác Hình mơ tả có nhiều hai peer kết nối với Hình Hệ thống WebRTC có nhiều người dùng kết nối với Như ta thấy hình trên, ta muốn kết nối tới user khác ta cần tạo peer thêm peer để kết nối với hai bên Theo hình trên, ta thấy peer có luồng kết nối.Chúng ta cho ta có 10 peer kết nối với với một, kiểm tra peer kết nối khoảng 500kbps, 10 kết nối tốn chi phí gần 5mbps Nếu ta sử dụng mạng ADSL với băng tần 3mbps, kết nối đến tận 10 peer Thêm vào với phát triển cơng nghệ nay, việc tăng trải nghiệm người dùng thực kết nối điều cần thiết (ví dụ ứng dụng Computer Vision hay AR việc stream video…).Với giới hạn thiết bị thật khó để kết nối thực điều Với nhu cầu đó, người ta đưa ý tưởng có server riêng, server có trách nhiệm trung gian chuyển/nhận luồng liệu tới peer Với điều peer cần nhận/truyền stream từ server Điều làm giảm gánh nặng cho bên phía người dùng bên bị giới hạn thiết bị (như thiết bị di động, trình duyệt web…), có nhiều peer kết nối với nhau.Server gọi media server, hình minh hóa kiến trúc hệ thống WebRTC thêm media server Hình Kiến trúc WebRTC thêm Với việc thêm vào screen sharing ta thấy rõ giảm tải peer kết nối Mỗi peer cần giữ kết nối tới Media Server Điều giải vấn đề đề cập đến trước với 10 peer kết nối.Và với thời đại công nghệ phát triển nay, việc tăng trải nghiệm cho người dùng cần thiết quan trọng.Vì với server riêng biệt có nhiều sức mạnh việc thực tác vụ video nâng cao tăng tương tác với người dùng.Hiện có hai loại screen sharing phổ biến dùng MCU SFU  MCU: Multipoint Controller Unit kiểu chiến lược cho phép tối ưu việc nhiều peer kết nối với nhau.Với MCU thay peer thiết lập kết nối với tất peer khác,nó cần thiết lập kết nối với screen sharing trung gian screen sharing có trách nghiệm nhận/chuyển tới peer khác Dưới hình minh họa MCU: Hình 10 Cách thức hoạt động mơ hình MCU Với screen sharing ta nhận thấy giảm phụ thuộc vào peer kết nối với nhau.Về MCU nhận tất stream từ tất peer, giải mã stream sau tạo layout trộn lẫn tất stream Cuối giải mã gửi đến tất peer khác Ưu điểm MCU đơn giản tránh vấn đề hiệu suất có nhiều peer kết nối.Nhưng điều ta nhận thấy MCU trộn lẫn luồng stream với nhau, điều dẫn đến việc khó có luồng stream nguyên dạng ban đầu ( chất lượng video hơn) có vài độ trễ sử dụng Một điều không tránh khỏi thêm server đứng tốn Bên cạnh screen sharing phải mã hóa giải mã lên tốn nhiều tài nguyên hệ thống băng thông, CPU  SFU: Một cách tiếp cận khác Select Forwarding Unit (SFU) Tương tự MCU có server trung gian giữa, SFU có phần cải tiến Thay phải xử lý nhiều cơng đoạn giải mã, trơn, sau giải mã, SFU đơn giản giải mã gửi tới peer khác người dùng gửi luồng stream tới.Việc làm làm cho luồng stream chất lượng tốt trộn media server.Và độ trễ thấp trải qua nhiều giai đoạn MCU Hình 11 Cách thức hoạt động SFU Tìm hiểu, cài đặt cho chương trình - Sử dụng thư viện socket-io để liên kết client với - Khi getDisplayMedia gọi, trình duyệt yêu cầu quyền truy cập camera người dùng Nếu thành công, MediaStream trả sử dụng thẻ media thông qua thuộc tính srcObject - Tưởng tượng Alice Bob muốn sử dụng RTCPeerConnection để cài đặt chia sẻ hình: Đầu tiên, Alice Bob trao đổi thông tin network finding candidates q trình tìm kiếm network interface port sử dụng ICE framework - B1: Alice tạo RTCPeerConnection object với onicecandidate handler - B2: Alice gọi getDisplayMedia() - B3: Đối tượng onicecandidate handler từ bước gọi network candidates tồn - B4: Alice gửi liệu candidate mã hóa cho Bob Trên thực tế, q trình (được biết signaling) xảy thông tin nhắn dịch vụ (messaging service) Ở RTCPeerConnection object page nên kết nối trực tiếp mà không cần external messaging service - B5: Khi Bob nhận candidate message từ Alice, anh gọiaddIceCandidate() để thêm candidate vào Peer - WebRTC peers cần tìm trao đổi thơng tin local remote audio video media resolution, dung lượng codec Signaling trao đổi thông tin media configuration trao đổi metadata gọi offer answer sử dụng Session Description Protocol format, gọi tắt SDP

Ngày đăng: 14/06/2023, 11:43

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w