Điểm khác biệt chính giữa hai giải pháp là các phương tiện media tham gia sẽ tự thân trực tiếp tìm đường tới mỗi điểm cầu nếu STUN được sử dụng, trong trường hợp khác thì các phương tiện sẽ không thể trực tiếp kết nối và làm việc được với nhau, khi đó, cần được hỗ trợ kết nối, trao đổi trung gian bởi máy chủ Proxy nếu TURN được đưa vào sử dụng.

Thường thì TURN là cần thiết và quan trọng vì nó có khả năng đi qua NAT đối xứng. Tuy nhiên, STUN hữu ích để tăng tốc độ kết nối trong việc lấy thông tin candidates khi người dùng ngồi phía sau NAT cùng mạng LAN.

Máy chủ Relay ICE được sử dụng để thiết lập các phiên truyền thông và cung cấp danh sách các ứng viên tiềm năng candidates cho cả hai bên trong một cuộc gọi, bất kể là kênh truyền nào được lựa chọn cho mỗi lần kết thúc cuộc gọi.

Khi sử dụng, chúng ta sử dụng cả hai STUN và TURN. STUN sẽ được thử trước và TURN được sử dụng như là một tùy chọn dự phòng phụ thuộc địa điểm của khách hàng và topo mạng.

var iceServers = {
     iceServers: [STUN, TURN]
};

Giao thức TURN chạy trên STUN để thiết lập dịch vụ relay. Thường TURN cũng sẽ có các chức năng STUN, vậy nên trong một số trường hợp bạn có thể bỏ qua một máy chủ STUN độc lập.

Một bất lợi lớn của TURN là chi phí sử dụng của nó. Một lưu lượng băng thông lớn được sử dụng khi chất lượng Video HD được truyền qua.

Nếu bạn cần cài đặt riêng TURN server cho mình thì có một nguồn mở giấy phép BSD bạn có thể sử dụng ngay.

http://code.google.com/p/rfc5766-turn-server/

Phiên bản Windows dành cho .NET/C# developers, bạn có thể thử: OfficeSIP’s TURN server.

Liên kết tham khảo

About The Author