টিসিপি নেটওয়ার্ক কমিউনিকেশন জন্য নগেল আলগোরিদিম

এনজেল অ্যালগরিদম , প্রকৌশলী জন নাগেলের নামকরণ করা হয়েছে, টিসিপি অ্যাপ্লিকেশনগুলির সাথে "ছোট প্যাকেট সমস্যা" দ্বারা সৃষ্ট নেটওয়ার্ক কনজেশন কমাতে ডিজাইন করা হয়েছে। ইউনিক্সের প্রয়োগগুলি 1980 সালের নাগালের নাগলের অ্যালগরিদম ব্যবহার করে শুরু করে এবং এটি আজকের TCP এর একটি আদর্শ বৈশিষ্ট্য।

কিভাবে Nagle আলগোরিদিম কাজ করে

Nagle এর অ্যালগরিদম TCP অ্যাপ্লিকেশন প্রেরণ দিকে একটি পদ্ধতি nagling নামক পদ্ধতি দ্বারা তথ্য প্রক্রিয়া। এটি ক্ষুদ্র আকারের বার্তাগুলি সনাক্ত করে এবং তারপরে তথ্য পাঠানোর আগে তাদের বৃহত্তর TCP প্যাকেটগুলিতে জমা দেয়, যার ফলে অপ্রয়োজনীয় সংখ্যক ছোট প্যাকেটগুলি প্রজন্মের এড়ানো হয়। নাগলের আলগোরিদিমের জন্য প্রযুক্তিগত স্পেসিফিকেশন 1984 সালে RFC 896 হিসাবে প্রকাশিত হয়েছিল। অনেক ডেটা জমা করার জন্য সিদ্ধান্তগুলি এবং প্রেরণগুলির মধ্যে কতক্ষণ অপেক্ষা করতে হবে তার সামগ্রিক পারফরম্যান্স সমালোচনামূলক।

নাগালিং বিলম্বিত ( বিলুপ্তি ) যোগ করার খরচ একটি নেটওয়ার্ক সংযোগের ব্যান্ডউইথ ব্যবহার করতে পারেন। RFC 896- এ বর্ণিত একটি উদাহরণ সম্ভাব্য ব্যান্ডউইথ সুবিধা এবং তার সৃষ্টির কারণ ব্যাখ্যা করে:

অ্যাপ্লিকেশন TCP_NODELAY সকেট প্রোগ্রামিং বিকল্পের সাথে Nagle অ্যালগরিদম ব্যবহার নিয়ন্ত্রণ। উইন্ডোজ, লিনাক্স এবং জাভা সিস্টেমগুলি সাধারনত ডিফল্ট করে Nagle সক্রিয় করে, সুতরাং যারা এনভায়রনমেন্টের জন্য লিখিত অ্যাপ্লিকেশনগুলি অ্যালগরিদম অফ স্যুইচ করতে চাইলে TCP_NODELAY নির্দিষ্ট করতে হবে।

সীমাবদ্ধতা

নাগলের অ্যালগরিদম শুধুমাত্র টিসিপি ব্যবহারযোগ্য। ইউডিপি সহ অন্যান্য প্রোটোকল এটি সমর্থন করে না।

TCP অ্যাপ্লিকেশনগুলি যে দ্রুত নেটওয়ার্ক প্রতিক্রিয়া প্রয়োজন, যেমন ইন্টারনেট ফোন কলিং বা প্রথম-ব্যক্তি শ্যুটারের গেমগুলি, Nagle সক্রিয় থাকলে ভাল কাজ করতে পারে না। বিলম্বের ফলে ঘটেছে যখন অ্যালগরিদম একসঙ্গে তথ্যগুলির ছোট অংশগুলিকে একত্রিত করার জন্য অতিরিক্ত সময় নেয়, একটি পর্দায় অথবা একটি ডিজিটাল অডিও স্ট্রীমের দিকে দৃশ্যমান ল্যাগটি দৃশ্যমান করে। এই অ্যাপ্লিকেশনগুলি সাধারণত Nagle অক্ষম করে

এই অ্যালগরিদম মূলত একটি সময়ে উন্নত ছিল যখন কম্পিউটার নেটওয়ার্কগুলি আজকের তুলনায় অনেক কম ব্যান্ডউইডথ সমর্থিত। উপরের বর্ণিত উদাহরণ ফোর্ড এয়ার মহাকাশে জন নাগেলের অভিজ্ঞতার উপর ভিত্তি করে 1 9 80-এর দশকের প্রথম দিকে ছিল, যেখানে তাদের ধীরগতি, ভারী লোড লম্বা দূরত্বের নেটওয়ার্কে কাঁটাগাছের টানাপোড়ন ভাল অনুভূতি সৃষ্টি করেছিল। নেটওয়ার্ক অ্যাপ্লিকেশন আজ তার অ্যালগরিদম থেকে উপকৃত হতে পারে যেখানে ক্রমবর্ধমান কম পরিস্থিতিতে আছে।