WebRTC পিয়ার-টু-পিয়ার (P2P) সংযোগে যোগাযোগ প্রতিষ্ঠা করতে STUN (Session Traversal Utilities for NAT) এবং TURN (Traversal Using Relays around NAT) সার্ভার ব্যবহার করা হয়। STUN সার্ভার মূলত NAT traversal সহায়তা করে, যার মাধ্যমে ক্লায়েন্টদের পাবলিক IP ঠিকানা খুঁজে বের করা যায়, যাতে তারা একে অপরের সাথে যোগাযোগ করতে পারে। TURN সার্ভার তখন ব্যবহৃত হয় যখন সরাসরি P2P সংযোগ সম্ভব না হয়, এবং এটি ডেটা রিলে করে।
এই সার্ভারগুলো সাধারণত signaling server থেকে আলাদা হয়ে কাজ করে এবং এটি WebRTC অ্যাপ্লিকেশনগুলির মধ্যে মিডিয়া স্ট্রিমিংকে সক্ষম করে।
Public STUN/TURN সার্ভারস
WebRTC সংযোগের জন্য বেশ কিছু পাবলিক STUN এবং TURN সার্ভার উপলব্ধ। এগুলো সাধারণত ফ্রি এবং প্রাথমিক পর্যায়ে টেস্টিংয়ের জন্য ব্যবহৃত হয়। তবে, বড় আকারের অ্যাপ্লিকেশন এবং প্রোডাকশন পরিবেশে কাস্টম সার্ভারের প্রয়োজন হতে পারে।
Public STUN সার্ভার
STUN সার্ভার ব্যবহার করে NAT traversal কার্যকরী হয়। এটি আপনার ক্লায়েন্টের পাবলিক IP এবং পোর্ট নম্বর খুঁজে বের করতে সাহায্য করে, যাতে পিয়ার-টু-পিয়ার যোগাযোগ সহজতর হয়।
পাবলিক STUN সার্ভারের উদাহরণ:
- Google STUN সার্ভার:
stun.l.google.com:19302 - Twilio STUN সার্ভার:
global.stun.twilio.com:3478 - Mozilla STUN সার্ভার:
stun.services.mozilla.com
এই সার্ভারগুলিকে WebRTC অ্যাপ্লিকেশনে অন্তর্ভুক্ত করা যেতে পারে, যেমন:
const peerConnection = new RTCPeerConnection({
iceServers: [
{
urls: 'stun:stun.l.google.com:19302'
}
]
});
Public TURN সার্ভার
TURN সার্ভার তখন ব্যবহৃত হয় যখন STUN সার্ভারের মাধ্যমে সরাসরি পিয়ার-টু-পিয়ার সংযোগ সম্ভব না হয় (যেমন, কঠোর NAT বা ফায়ারওয়ালের কারণে)। TURN সার্ভার মিডিয়া ডেটা রিলে করে। এটি অধিক ব্যান্ডউইথ এবং সার্ভার লোডের কারণে কিছু খরচ সৃষ্টি করতে পারে।
পাবলিক TURN সার্ভারের উদাহরণ:
- Xirsys TURN সার্ভার (ফ্রি ও পেইড প্ল্যান):
turn:turn.xirsys.com:80?transport=udp - Google TURN সার্ভার:
turn:webrtc.google.com:19302 - Coturn TURN সার্ভার:
turn:turn.server.com:3478
TURN সার্ভারের উদাহরণ ব্যবহার:
const peerConnection = new RTCPeerConnection({
iceServers: [
{
urls: 'stun:stun.l.google.com:19302' // STUN
},
{
urls: 'turn:turn.xirsys.com:80?transport=udp', // TURN
username: 'username',
credential: 'credential'
}
]
});
এখানে TURN সার্ভার ব্যবহার করার জন্য ইউজারনেম এবং পাসওয়ার্ডের প্রয়োজন হতে পারে, যা সেবা প্রদানকারী দ্বারা সরবরাহ করা হয়।
কাস্টম STUN/TURN সার্ভার সেটআপ
যদি আপনি পাবলিক STUN বা TURN সার্ভারের উপর নির্ভর করতে না চান বা আপনার অ্যাপ্লিকেশনের জন্য নিরাপত্তা ও পারফরম্যান্সের চাহিদা থাকে, তবে একটি কাস্টম STUN/TURN সার্ভার সেটআপ করা উত্তম। এই সার্ভারটি আপনি নিজের পরিবেশে বা ক্লাউডে হোস্ট করতে পারেন।
১. Coturn সার্ভার সেটআপ
Coturn হল একটি জনপ্রিয় ওপেন সোর্স TURN/STUN সার্ভার, যা আপনি আপনার সিস্টেমে ইনস্টল করতে পারেন। এটি অধিকতর কাস্টমাইজেশন এবং নিরাপত্তা প্রদান করে।
Coturn ইনস্টলেশন
Coturn ইনস্টল করুন (Ubuntu এর জন্য):
sudo apt-get update sudo apt-get install coturnCoturn কনফিগারেশন:
- কনফিগারেশন ফাইলটি সাধারণত
/etc/turnserver.confথাকে। - এই ফাইলে আপনাকে TURN সার্ভার চালানোর জন্য প্রয়োজনীয় সেটিংস কনফিগার করতে হবে, যেমন realm, listening-port, authentication credentials ইত্যাদি।
উদাহরণ কনফিগারেশন:
listening-port=3478 listening-ip=0.0.0.0 fingerprint realm=my-turn-server.com user=username:password lt-cred-mech- কনফিগারেশন ফাইলটি সাধারণত
Coturn সার্ভার চালু করুন:
sudo service coturn start
২. STUN সার্ভার সেটআপ
STUN সার্ভার সেটআপ করার জন্য আপনি stunserver বা অন্য কোনো STUN সার্ভারের লাইব্রেরি ব্যবহার করতে পারেন। Coturn সার্ভার STUN এবং TURN উভয় সমর্থন করে, তাই একটি সার্ভার দিয়েই আপনি STUN এবং TURN উভয় সার্ভিস পাবেন।
STUN সার্ভার কনফিগারেশন
Coturn স্টান সার্ভিস চালু করতে:
stun-only
এতে TURN সার্ভারটি STUN সার্ভিসও প্রদান করবে।
STUN এবং TURN সার্ভার ব্যবহারের সেরা চর্চা
- লাইটওয়েট পাবলিক সার্ভার ব্যবহার:
- প্রাথমিক ডেভেলপমেন্ট বা টেস্টিংয়ের জন্য পাবলিক STUN সার্ভার ব্যবহার করা যেতে পারে।
- TURN সার্ভার ব্যবহার করা অত্যন্ত গুরুত্বপূর্ণ যেখানে NAT traversal সমস্যাগুলি তীব্র হয়।
- নিজস্ব TURN সার্ভার ব্যবহার:
- বৃহত্তর অ্যাপ্লিকেশন বা প্রোডাকশন পরিবেশে নিজের TURN সার্ভার ব্যবহার করা উত্তম, যাতে নিরাপত্তা এবং পারফরম্যান্স নিশ্চিত করা যায়।
- নিজস্ব TURN সার্ভার তৈরি করলে ট্র্যাফিক নিয়ন্ত্রণ এবং ডেটা রিলে নিরাপদ ও নির্ভরযোগ্য হয়।
- TURN সার্ভার ক্রেডেনশিয়াল ব্যবস্থাপনা:
- TURN সার্ভার ব্যবহারের জন্য প্রযুক্তিগত ক্রেডেনশিয়াল ব্যবস্থাপনা গুরুত্বপূর্ণ, যাতে শুধু অনুমোদিত ক্লায়েন্টরা সার্ভারে সংযুক্ত হতে পারে।
সারাংশ
WebRTC অ্যাপ্লিকেশন তৈরি করার সময় STUN এবং TURN সার্ভার গুরুত্বপূর্ণ ভূমিকা পালন করে। পাবলিক STUN সার্ভারগুলি প্রাথমিক পর্যায়ে ব্যবহার করা যেতে পারে, তবে টেস্টিং এবং ডেভেলপমেন্টের বাইরে কাস্টম TURN সার্ভার ব্যবহার করা উত্তম, বিশেষ করে যখন নিরাপত্তা এবং পারফরম্যান্সের প্রয়োজন হয়। Coturn একটি জনপ্রিয় এবং শক্তিশালী ওপেন সোর্স TURN/STUN সার্ভার, যা কাস্টম সার্ভার সেটআপের জন্য ব্যবহার করা যেতে পারে।
Read more