HTTP/3-এর UDP-এর ব্যবহার TCP-এর উপর বেশ কিছু সুবিধা প্রদান করে, যার মধ্যে রয়েছে দ্রুত সংযোগ, উচ্চ-বিলম্বিত নেটওয়ার্কগুলিতে আরও ভাল কর্মক্ষমতা এবং উন্নত নিরাপত্তা।
আসুন HTTP/3 এর একটি দ্রুত ওভারভিউ দিয়ে শুরু করি।
HTTP/3:
HTTP/3 2020 সালে চালু করা হয়েছিল এবং এটি HTTP এর সর্বশেষ সংস্করণ। এটি QUIC প্রোটোকলের উপর ভিত্তি করে তৈরি করা হয়েছে, যা Google দ্বারা তৈরি করা হয়েছে। HTTP/2 এর মত, HTTP/3 একটি বাইনারি বিন্যাস ব্যবহার করে এবং মাল্টিপ্লেক্সিং এবং সার্ভার পুশ সমর্থন করে। যাইহোক, এতে আরও বেশ কিছু বৈশিষ্ট্য রয়েছে যা কর্মক্ষমতা এবং নিরাপত্তা উন্নত করার লক্ষ্য রাখে, যেমন উন্নত যানজট নিয়ন্ত্রণ এবং অন্তর্নির্মিত এনক্রিপশন।
QUIC কি?
QUIC (দ্রুত UDP ইন্টারনেট সংযোগ) হল একটি ট্রান্সপোর্ট লেয়ার নেটওয়ার্ক প্রোটোকল যা ওয়েব পারফরম্যান্স এবং নিরাপত্তার উন্নতির লক্ষ্যে Google দ্বারা তৈরি করা হয়েছে। QUIC কে UDP (ইউজার ডেটাগ্রাম প্রোটোকল) এর উপর কাজ করার জন্য ডিজাইন করা হয়েছে, যা একটি হালকা ওজনের এবং সংযোগহীন প্রোটোকল, TCP (ট্রান্সমিশন কন্ট্রোল প্রোটোকল) এর বিপরীতে, যা একটি সংযোগ-ভিত্তিক প্রোটোকল।
QUIC ট্রান্সপোর্ট লেয়ার এবং অ্যাপ্লিকেশান লেয়ার প্রোটোকল উভয়ের বৈশিষ্ট্যকে একত্রিত করে, এটি সমান্তরালভাবে একাধিক কাজ সম্পাদন করতে দেয়, যেমন এনক্রিপশন, ত্রুটি সংশোধন, যানজট নিয়ন্ত্রণ এবং মাল্টিপ্লেক্সিং। এটি আধুনিক ওয়েবের জন্য অপ্টিমাইজ করা হয়েছে, সার্ভার পুশ, স্ট্রীম অগ্রাধিকার, এবং সংযোগ স্থানান্তরের মতো বৈশিষ্ট্যগুলির জন্য সমর্থন সহ।
QUIC-এর মূল সুবিধাগুলির মধ্যে একটি হল এটি বিলম্ব কমায় এবং একক সংযোগে একাধিক অনুরোধ এবং প্রতিক্রিয়া পাঠানোর অনুমতি দিয়ে নির্ভরযোগ্যতা উন্নত করে। এটি স্ট্রীম মাল্টিপ্লেক্সিং ব্যবহারের মাধ্যমে অর্জন করা হয়, যেখানে একক QUIC সংযোগের মাধ্যমে একাধিক স্ট্রীম ডেটা পাঠানো এবং গ্রহণ করা যায়।
QUIC-এর আরেকটি সুবিধা হল এর অন্তর্নির্মিত এনক্রিপশন, যা HTTP/1-এর মতো এনক্রিপ্ট করা প্রোটোকলের তুলনায় উন্নত নিরাপত্তা এবং গোপনীয়তা প্রদান করে। যেহেতু QUIC UDP-তে কাজ করার জন্য ডিজাইন করা হয়েছে, তাই এটি নির্দিষ্ট ধরণের নেটওয়ার্ক কনজেশনকেও বাইপাস করতে পারে যা HTTP/2 এর মত TCP-ভিত্তিক প্রোটোকলকে প্রভাবিত করতে পারে।
QUIC হল একটি প্রতিশ্রুতিশীল প্রোটোকল যা ওয়েব কর্মক্ষমতা এবং নিরাপত্তাকে উল্লেখযোগ্যভাবে উন্নত করার সম্ভাবনা রাখে। এটি ইতিমধ্যেই গুগল, মাইক্রোসফ্ট এবং ক্লাউডফ্লেয়ারের মতো বড় ওয়েব কোম্পানিগুলি দ্বারা গৃহীত হচ্ছে এবং আগামী বছরগুলিতে এটি আরও ব্যাপকভাবে ব্যবহৃত হবে বলে আশা করা হচ্ছে৷
কেন HTTP/3 TCP এর উপর UDP ব্যবহার করছে?
HTTP/3 টিসিপি (ট্রান্সমিশন কন্ট্রোল প্রোটোকল) এর পরিবর্তে UDP (ইউজার ডেটাগ্রাম প্রোটোকল) ব্যবহার করছে বিভিন্ন কারণে:
- দ্রুত সংযোগ: TCP এর বিপরীতে, UDP হল একটি সংযোগহীন প্রোটোকল যার জন্য ক্লায়েন্ট এবং সার্ভারের মধ্যে সংযোগ স্থাপন এবং বজায় রাখার প্রয়োজন হয় না। এটি দ্রুত সংযোগের জন্য মঞ্জুরি দেয় এবং বিলম্ব কমায়, কারণ এটি একটি TCP সংযোগ স্থাপন এবং ছিন্ন করার জন্য প্রয়োজনীয় রাউন্ড-ট্রিপ সময়ের (RTT) প্রয়োজনীয়তা দূর করে।
- উচ্চ-বিলম্বিত নেটওয়ার্কগুলিতে আরও ভাল কর্মক্ষমতা: TCP একটি যুগে ডিজাইন করা হয়েছিল যখন নেটওয়ার্কগুলি অনেক কম জটিল ছিল এবং আজকের তুলনায় অনেক কম লেটেন্সি ছিল৷ উচ্চ-বিলম্বিত নেটওয়ার্কগুলিতে, TCP দীর্ঘ সংযোগ সেটআপের সময় এবং ধীর গতিতে ভুগতে পারে, যা কার্যকারিতাকে নেতিবাচকভাবে প্রভাবিত করতে পারে। অন্যদিকে, UDP, উচ্চ-বিলম্বিত নেটওয়ার্কগুলিকে আরও ভালভাবে পরিচালনা করতে পারে, এটি আধুনিক ওয়েব অ্যাপ্লিকেশনগুলির জন্য একটি ভাল পছন্দ করে তোলে।
- উন্নত নিরাপত্তা: HTTP/3 QUIC (দ্রুত UDP ইন্টারনেট সংযোগ) প্রোটোকলের উপর ভিত্তি করে, যার মধ্যে অন্তর্নির্মিত এনক্রিপশন এবং অন্যান্য নিরাপত্তা বৈশিষ্ট্য রয়েছে। যেহেতু UDP-এর কোনো সংযোগ সেটআপের প্রয়োজন নেই, তাই এটি নির্দিষ্ট ধরণের আক্রমণের জন্য কম সংবেদনশীল, যেমন SYN ফ্লাডিং, যা TCP সংযোগগুলিকে আচ্ছন্ন করতে ব্যবহার করা যেতে পারে।
HTTP/3-এর UDP-এর ব্যবহার TCP-এর উপর বেশ কিছু সুবিধা প্রদান করে, যার মধ্যে রয়েছে দ্রুত সংযোগ, উচ্চ-বিলম্বিত নেটওয়ার্কগুলিতে আরও ভাল কর্মক্ষমতা এবং উন্নত নিরাপত্তা। যাইহোক, এটির নেটওয়ার্ক সরঞ্জামগুলির দ্বারা বিভিন্ন পরিচালনারও প্রয়োজন, এবং এর সুবিধাগুলি থেকে উপকৃত হওয়ার জন্য নেটওয়ার্ক প্রদানকারী এবং ফায়ারওয়ালদের এটিকে সমর্থন করতে হবে।
কিভাবে UDP উচ্চ-বিলম্বিত নেটওয়ার্ক পরিচালনা করে?
UDP (User Datagram Protocol) হল একটি সহজ, হালকা ওজনের, এবং সংযোগহীন প্রোটোকল যা TCP (ট্রান্সমিশন কন্ট্রোল প্রোটোকল) অফার করে এমন অনেক বৈশিষ্ট্য প্রদান করে না, যেমন নির্ভরযোগ্যতা, প্রবাহ নিয়ন্ত্রণ এবং যানজট নিয়ন্ত্রণ। যাইহোক, UDP বিভিন্ন উপায়ে উচ্চ-বিলম্বিত নেটওয়ার্কগুলির জন্য আরও উপযুক্ত হতে পারে:
- হ্যান্ডশেক নেই: TCP এর বিপরীতে, যার জন্য একটি সংযোগ স্থাপনের জন্য একটি ত্রিমুখী হ্যান্ডশেক প্রয়োজন, UDP-এর কোনো সংযোগ সেটআপের প্রয়োজন হয় না। এর অর্থ হ্যান্ডশেক সম্পূর্ণ হওয়ার জন্য অপেক্ষা না করেই UDP প্যাকেটগুলি অবিলম্বে পাঠানো যেতে পারে, যা বিলম্ব কমাতে পারে এবং প্রতিক্রিয়াশীলতা উন্নত করতে পারে।
- কোন রিট্রান্সমিশন নেই: প্যাকেটগুলি নির্ভরযোগ্যভাবে বিতরণ করা হয়েছে তা নিশ্চিত করতে TCP রিট্রান্সমিশন নামে একটি কৌশল ব্যবহার করে। যখন একটি প্যাকেট হারিয়ে যায়, TCP স্বয়ংক্রিয়ভাবে প্যাকেটটি সফলভাবে বিতরণ না হওয়া পর্যন্ত পুনরায় প্রেরণ করবে। যদিও এটি নির্ভরযোগ্য ডেলিভারি প্রদান করে, এটি উচ্চ-বিলম্বিত নেটওয়ার্কগুলিতে উল্লেখযোগ্য বিলম্বের কারণ হতে পারে, কারণ প্রেরককে পরবর্তী প্যাকেট পাঠানোর আগে রিসিভার থেকে ACK (স্বীকৃতি) এর জন্য অপেক্ষা করতে হবে। UDP রিট্রান্সমিশন অফার করে না, তাই হারিয়ে যাওয়া প্যাকেটগুলি আবার পাঠানো হয় না, যা লেটেন্সি কমাতে পারে।
- যানজট নিয়ন্ত্রণ নেই: নেটওয়ার্ক কনজেশন প্রতিরোধ করতে এবং ব্যান্ডউইথের ন্যায্য ভাগাভাগি নিশ্চিত করতে TCP বিভিন্ন ধরনের কনজেশন কন্ট্রোল অ্যালগরিদম ব্যবহার করে। যাইহোক, এই অ্যালগরিদমগুলি উচ্চ লেটেন্সি নেটওয়ার্কগুলিতে অত্যধিক আক্রমনাত্মক হতে পারে, যা ধীর স্টার্ট-আপ এবং যানজট থেকে ধীর পুনরুদ্ধারের দিকে পরিচালিত করে। UDP কনজেশন কন্ট্রোল করে না, তাই এটি হাই-লেটেন্সি নেটওয়ার্কে আরও প্রতিক্রিয়াশীল হতে পারে।
UDP নির্দিষ্ট ধরণের অ্যাপ্লিকেশনের জন্য আরও উপযুক্ত, যেমন রিয়েল-টাইম স্ট্রিমিং, অনলাইন গেমিং এবং অন্যান্য অ্যাপ্লিকেশনগুলির জন্য কম লেটেন্সি প্রয়োজন এবং নির্ভরযোগ্য ডেলিভারির প্রয়োজন নেই৷ যাইহোক, এটি লক্ষ করা গুরুত্বপূর্ণ যে UDP টিসিপির তুলনায় কম নির্ভরযোগ্য, কারণ এটি ত্রুটি পরীক্ষা বা পুনঃপ্রচার প্রদান করে না এবং প্যাকেটগুলি হারিয়ে যেতে পারে বা অর্ডারের বাইরে সরবরাহ করতে পারে। অতএব, UDP এবং TCP-এর মধ্যে নির্বাচন করার আগে আপনার আবেদনের নির্দিষ্ট প্রয়োজনীয়তাগুলি সাবধানে বিবেচনা করা গুরুত্বপূর্ণ।
রিট্রান্সমিশন ছাড়া, কিভাবে QUIC নির্ভরযোগ্য ডেলিভারি নিশ্চিত করে?
TCP (ট্রান্সমিশন কন্ট্রোল প্রোটোকল) এর বিপরীতে, QUIC ডেটার নির্ভরযোগ্য ডেলিভারির জন্য পুনঃপ্রচারের উপর নির্ভর করে না। পরিবর্তে, এটি নির্ভরযোগ্য ডেলিভারি প্রদানের জন্য প্রক্রিয়াগুলির সংমিশ্রণ ব্যবহার করে:
- প্যাকেট নম্বরিং: প্যাকেট সনাক্ত করতে এবং অর্ডার করতে QUIC প্যাকেট নম্বর ব্যবহার করে। প্রতিটি প্যাকেটকে একটি অনন্য প্যাকেট নম্বর বরাদ্দ করা হয় যা পাঠানো প্রতিটি নতুন প্যাকেটের জন্য বৃদ্ধি করা হয়। অনুপস্থিত বা অর্ডারের বাইরে থাকা প্যাকেটগুলি সনাক্ত করতে রিসিভার এই প্যাকেট নম্বরগুলি ব্যবহার করে।
- স্বীকৃতি: কোন প্যাকেট সফলভাবে গৃহীত হয়েছে তা প্রেরককে জানানোর জন্য QUIC নির্বাচনী স্বীকৃতি (ACKs) ব্যবহার করে। TCP এর বিপরীতে, যা একটি নির্দিষ্ট বিন্দু পর্যন্ত সমস্ত প্যাকেট স্বীকার করে এমন ক্রমবর্ধমান ACK পাঠায়, QUIC নির্বাচনী ACK পাঠাতে পারে যা নির্দিষ্ট প্যাকেটগুলি স্বীকার করে, যা প্রাপককে নির্দেশ করতে দেয় যে কোন প্যাকেট সফলভাবে গৃহীত হয়েছে এবং কোন প্যাকেটগুলি অনুপস্থিত।
- ফরোয়ার্ড ত্রুটি সংশোধন (FEC): QUIC অতিরিক্ত নির্ভরযোগ্যতা প্রদান করতে ফরওয়ার্ড ত্রুটি সংশোধন ব্যবহার করতে পারে। FEC ডেটা স্ট্রীমে অপ্রয়োজনীয়তা যোগ করে, রিসিভারকে অপ্রয়োজনীয় ডেটা থেকে অনুপস্থিত বা ক্ষতিগ্রস্ত প্যাকেটগুলি পুনর্গঠনের অনুমতি দেয়।
- পুনঃপ্রচার: যদিও QUIC নির্ভরযোগ্যতার জন্য পুনঃপ্রচারের উপর নির্ভর করে না, তবুও প্রয়োজনে এটি সীমিত পুনঃপ্রচার করতে পারে। যদি রিসিভার অনুপস্থিত বা অর্ডারের বাইরের প্যাকেটগুলি সনাক্ত করে, তবে সে প্রেরকের কাছ থেকে সেই প্যাকেটগুলির পুনঃপ্রচারের অনুরোধ করতে পারে।
QUIC-এর প্যাকেট নম্বর, নির্বাচনী স্বীকৃতি, FEC এবং সীমিত পুনঃপ্রচারের সংমিশ্রণ TCP-এর সম্পূর্ণ পুনঃপ্রচার প্রক্রিয়ার লেটেন্সি পেনাল্টি ছাড়াই নির্ভরযোগ্য ডেলিভারি প্রদান করে। QUIC-এর নির্ভরযোগ্যতা প্রক্রিয়া আধুনিক ওয়েবের জন্য অপ্টিমাইজ করা হয়েছে, এটি TCP-ভিত্তিক প্রোটোকলের তুলনায় উন্নত কর্মক্ষমতা এবং নিরাপত্তা প্রদান করতে দেয়।
এরকম কন্টেন্ট ভালো লাগলে আমি তৈরি করেছি একটি ইনস্টাগ্রাম পেজ. এটা চেক আউট না!