Phƣơng thức hoạt động

Một phần của tài liệu 28020_17122020019573LUANVAN (Trang 30 - 33)

CHƢƠNG 2 GIẢI PHÁP KỸ THUẬT WEBRTC

2.3.2. Phƣơng thức hoạt động

Trong mơ hình hoạt động truyền thống của web, mơ hình client - server đƣợc sử dụng khá là phổ biến khi mà server sẽ đảm nhiệm tất cả bao gồm: điều khiển, truyền dữ liệu, security.... Tuy nhiên, nếu áp dụng mơ hình này vào trong các ứng dụng thời gian thực sẽ ảnh hƣớng tới hiệu năng hoạt động của ứng dụng vì các lý do sau:

 Khối lƣợng dữ liệu trao đổi giữa các client là cực kỳ lớn. Chuẩn mã hố voice OPUS có bitrate dao động từ 6 Kbps cho tới 510 Kbps. Nếu dữ liệu này truyền trực tiếp tới server để server truyền tải tới client thì sẽ xảy ra việc quá tải không chỉ dành cho server mà cho cả hệ thống mạng.

 Chất lƣợng dịch vụ (Quality of service - QoS). Trong QoS dành cho các ứng dụng thời gian thực, có hai tham số cực kỳ quan trọng cần đƣợc giảm thiểu tối đa là delay (trễ client) và jitter (trễ giữa các gói tin). Việc phải truyền tải toàn bộ dữ liệu tới server sẽ gia tăng rủi do trong delay và jitter.

Do đó, các ứng dụng thời gian thực địi hỏi một mơ hình khác có thể đáp ứng đƣợc hai u cầu trên, đó là mơ hình Peer-to-Peer (P2P). Trong mơ hình này, dữ liệu truyền tải đƣợc chia ra làm hai loại: dữ liệu điều khiển, báo

hiệu (Signalling) và dữ liệu nội dung (Data stream). Các máy client thƣờng sẽ giao tiếp với server để gửi/nhận các tín hiệu điều khiển và sau đó sẽ truyền nhận trực tiếp dữ liệu với các client khác.

Hình 2.3. Kênh báo hiệu trong WebRTC

Lấy một ví dụ đơn giản về Video chat sử dụng WebRTC:

1. Caller và Callee khi bắt đầu sử dụng ứng dụng phải gửi các tín hiệu về ứng dụng mà mình đang sử dụng tới server (session description).

2. Caller gọi: Caller request tới server để đăng ký một cuộc gọi với Callee, server sẽ trả về cho Caller địa chỉ IP của Callee cùng với port ứng dụng hiện tại của Callee.

3. Callee sẽ nhận một bản tin của server báo về một cuộc gọi từ phía caller

4. Caller bắt đầu truyền dữ liệu từ phía mình trực tiếp sang Callee. 5. Caller/callee ngắt kết nối: thông báo về server và dừng truyền dữ liệu.

Tuy nhiên, trên thực tế, các peer đều sử dụng các địa chỉ IP private (thuộc các dải: 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8) và sử dụng cơ chế NAT để kết nối internet, do đó việc kết nối trực tiếp giữa các peer sẽ gặp khó khăn nếu sử dụng dải mạng nội bộ. Do đó, chúng ta phải có cơ chế hỗ trợ phân giải sang địa chỉ IP public.

Hình 2.4. Máy chủ STUN

Để tiết kiệm địa chỉ IP, rất nhiều các nhà điều hành mạng sử dụng cơ chế NAT để chuyển đổi từ địa chỉ IP mạng nội bộ sang địa chỉ IP Public. Về cơ bản địa chỉ IP sẽ đƣợc chuyển đổi nhƣ sau : IP private <-> IP public: port.

Trong đó port ở đây là các cổng ứng dụng nằm trên firewall hay router. Điều này giúp cho nhiều địa chỉ IP nội bộ có thể sử dụng chung IP public. STUN server sẽ đóng vai trị trung gian giúp cho các peer có thể lấy đƣợc địa chỉ của peer khác. Hiện nay, google đã xây dựng một số STUN server hỗ trợ hồn tồn miễn phí nhƣ stun:stun.l.google.com:19302.

Hình 2.5. TURN server và STUN server

Trong mơ hình OSI, tại lớp vận chuyển (Transport layer) có hai giao thức nổi tiếng là TCP và UDP. Trong khi UDP cung cấp khả năng vận chuyển nhanh nhất có thể thì TCP lại đảm bảo truyền tin cậy. Hầu hết trong các ứng dụng thời gian thực, tín hiệu điều khiển sẽ sử dụng TCP trong khi dữ liệu sẽ truyền bằng UDP. Tuy nhiên, UDP không phải là cơ chế truyền tin cậy, dễ làm tăng số lƣợng các gói tin bị mất, do vậy đôi khi TCP đƣợc ƣu tiên sử dụng.

Trong mơ hình peer-to-peer, dữ liệu thay vì đƣợc gửi trực tiếp tới các peer thì các peer sẽ gửi dữ liệu tới các TURN server và TURN server sẽ đóng vai trị trung gian vận chuyển gói tin. Điều này nâng cao không những chất lƣợng dịch vụ của ứng dụng mà cịn đảm bảo an tồn thông tin khi truyền dẫn.

Một phần của tài liệu 28020_17122020019573LUANVAN (Trang 30 - 33)

Tải bản đầy đủ (PDF)

(70 trang)