আমি এইচএফএসসি সম্পর্কে মূল সিগকম '97 পোস্টস্ক্রিপ্ট কাগজটি পড়েছি, এটি খুব প্রযুক্তিগত, তবে আমি মূল ধারণাটি বুঝতে পারি। রৈখিক পরিষেবা বক্ররেখা দেওয়ার পরিবর্তে (প্রতিটি অন্যান্য সময়সূচী অ্যালগরিদমের মতো), আপনি একটি উত্তল বা অবতল পরিষেবা বক্ররেখাকে নির্দিষ্ট করতে পারেন এবং এভাবে ব্যান্ডউইথ এবং বিলম্বকে ডিকুয়াল করা সম্ভব। তবে, যদিও এই কাগজটিতে ধরণের সময়সূচী অ্যালগরিদমগুলি ব্যবহৃত হচ্ছে (আসল-সময় এবং লিঙ্ক-ভাগ) উল্লেখ করা হয়েছে, তবুও এটি সর্বদা কেবল নির্ধারিত বর্গের জন্য এক বক্ররেখার উল্লেখ করে (ডুউপলিংটি এই বক্ররেখা নির্দিষ্ট করেই করা হয়, তার জন্য কেবল একটি বক্ররেখা প্রয়োজন )।
এখন এইচএফএসসি বিএসডি (ওপেনবিএসডি, ফ্রিবিএসডি, ইত্যাদি) ALTQ সময়সূচী কাঠামো ব্যবহার করে প্রয়োগ করা হয়েছে এবং এটি টিসি শিডিউলিং ফ্রেমওয়ার্ক (আইপ্রউট 2 এর অংশ) ব্যবহার করে লিনাক্স প্রয়োগ করা হয়েছে । উভয় বাস্তবায়নে দুটি অতিরিক্ত পরিষেবা বক্ররেখা যুক্ত হয়েছিল, যা মূল কাগজে ছিল না ! একটি রিয়েল-টাইম পরিষেবা বক্ররেখা এবং একটি উচ্চ-সীমা পরিষেবা বক্রতা। আবার, দয়া করে নোট করুন যে মূল কাগজটিতে দুটি শিডিংয়ের অ্যালগোরিদম (রিয়েল-টাইম এবং লিঙ্ক-ভাগ) উল্লেখ করা হয় তবে সেই কাগজে উভয়ই একক পরিষেবা বক্ররেখা নিয়ে কাজ করে। আপনি বর্তমানে বিএসডি এবং লিনাক্সের হিসাবে সন্ধানের জন্য দু'জনের জন্য দুটি স্বতন্ত্র পরিষেবা বক্ররেখা কখনও হয়নি।
আরও খারাপ, ALTQ- র কিছু সংস্করণ HSFC- এ একটি অতিরিক্ত সারি অগ্রাধিকার যুক্ত করেছে বলে মনে হয় (মূল কাগজে অগ্রাধিকারের মতো কোনও বিষয় নেই)। আমি বেশ কয়েকটি বিএসডি হাওটো'র এই অগ্রাধিকার সেটিংসের উল্লেখ করে দেখতে পেলাম (যদিও সর্বশেষ ALTQ রিলিজের ম্যান পেজ এইচএসএফসি-র জন্য এই জাতীয় কোনও পরামিতি জানে না, তাই আনুষ্ঠানিকভাবে এটি উপস্থিতও নেই)।
এটি সমস্তই মূল কাগজে বর্ণিত অ্যালগরিদমের চেয়ে এইচএফএসসির সময়সূচীটিকে আরও জটিল করে তোলে এবং ইন্টারনেটে প্রচুর সংখ্যক টিউটোরিয়াল রয়েছে যা প্রায়শই একে অপরের সাথে বিরোধিতা করে, একজন অন্যটির বিপরীতে দাবি করে। এইচএফএসসি শিডিয়ুলিং কীভাবে কাজ করে তা সত্যিই কেউ বুঝতে চায়নি বলে সম্ভবত এটিই প্রধান কারণ। আমার প্রশ্ন জিজ্ঞাসা করার আগে আমাদের কোনও ধরণের নমুনা সেটআপ দরকার। নীচের চিত্রটিতে দেখা হিসাবে আমি একটি খুব সাধারণ ব্যবহার করব:
Alt পাঠ্য http://f.imagehost.org/0177/hfsc-test-setup.png
এখানে কিছু প্রশ্নের উত্তর আমি দিতে পারি না কারণ টিউটোরিয়ালগুলি একে অপরের বিরোধিতা করে:
আমার আদৌ কি রিয়েল-টাইম বক্ররেখা প্রয়োজন? ধরে নিলাম এ 1, এ 2, বি 1, বি 2 সবগুলিই 128 কেবিট / সে লিংক শেয়ার (কোনও একটির জন্য রিয়েল-টাইম কার্ভ নয়), তবে এর প্রত্যেকটি 128 কেবিট / গুলি পাবে যদি মূলটি বিতরণ করার জন্য 512 কেবিট / গুলি থাকে (এবং এ এবং বি উভয়ই অবশ্যই 256 কেবিট / সেকেন্ড), ঠিক আছে? আমি কেন অতিরিক্তভাবে এ 1 এবং বি 1 কে 128 কেবিট / এস সহ একটি রিয়েল-টাইম বক্ররেখা দেব? এটি কি জন্য ভাল হবে? এই দুটি উচ্চতর অগ্রাধিকার দিতে? মূল কাগজ অনুসারে আমি তাদের বক্ররেখা ব্যবহার করে একটি উচ্চ অগ্রাধিকার দিতে পারি , এইচএফএসসি সর্বোপরি যা আছে। উভয় শ্রেণিকে একটি বক্ররেখা প্রদান করে [256kbit / s 20ms 128kbit / s] উভয়ই স্বয়ংক্রিয়ভাবে A2 এবং B2 এর চেয়ে দ্বিগুণ অগ্রাধিকার পেয়েছে (এখনও কেবলমাত্র 128 কেবিট / সেকেন্ডে প্রাপ্ত)
রিয়েল-টাইম ব্যান্ডউইদথটি লিংক-শেয়ার ব্যান্ডউইথের দিকে গুনতে পারে? উদাহরণস্বরূপ, যদি এ 1 এবং বি 1 উভয়টিরই কেবলমাত্র 64kbit / s রিয়েল-টাইম এবং 64kbit / s লিংক-শেয়ার ব্যান্ডউইদথ থাকে, তার অর্থ কি একবার তারা রিয়েল-টাইমের মাধ্যমে 64kbit / s পরিবেশন করা হয়, তাদের লিঙ্ক-ভাগের প্রয়োজনীয়তাও ততই সন্তুষ্ট হয় (তারা সম্ভবত অতিরিক্ত ব্যান্ডউইথ পান, তবে এটি এক সেকেন্ডের জন্যও উপেক্ষা করতে দিন) বা এর অর্থ তারা লিংক-শেয়ারের মাধ্যমে আরও একটি 64 কেবিট / এস পাবে? তাহলে কি প্রতিটি শ্রেণীর রিয়েল-টাইম প্লাস লিংক-শেয়ারের একটি ব্যান্ডউইথ "প্রয়োজনীয়তা" রয়েছে? বা লিঙ্ক-ভাগের বক্ররেখার বাস্তব-সময়ের কার্ভের চেয়ে বেশি হলে কোনও শ্রেণীর কি কেবল রিয়েল-টাইম কার্ভের চেয়ে বেশি প্রয়োজন (বর্তমান লিঙ্ক-ভাগের প্রয়োজনীয়তা নির্দিষ্ট লিঙ্ক-ভাগের প্রয়োজনের বিয়োগের রিয়েল-টাইম ব্যান্ডউইথের জন্য ইতিমধ্যে সরবরাহ করা হয়েছে শ্রেণী)?
উপরের সীমাটি বক্ররেখাগুলি কি রিয়েল-টাইম হিসাবেও প্রয়োগ করা হয়, কেবল লিংক-শেয়ারের জন্য, বা সম্ভবত উভয়ের ক্ষেত্রেই? কিছু টিউটোরিয়াল একটি উপায় বলে, কেউ কেউ অন্যভাবে বলে। কেউ কেউ দাবিও করেন যে রিয়েল-টাইম ব্যান্ডউইথ + লিংক-শেয়ার ব্যান্ডউইদথের জন্য সর্বোচ্চ-সীমা সর্বাধিক? সত্য কি?
ধরে নিলাম এ 2 এবং বি 2 উভয়ই 128 কেবিট / সে, যদি এ 1 এবং বি 1 কেবল 128 কেবিট / স লিঙ্ক-শেয়ার হয় তবে বা 64 কেবিট / গুলি রিয়েল-টাইম এবং 128 কেবিট / গুলি লিঙ্ক-শেয়ার হয় এবং যদি তাই হয় , কি পার্থক্য?
আমি যদি ক্লাসগুলির অগ্রাধিকার বাড়ানোর জন্য পৃথক রিয়েল-টাইম কার্ভটি ব্যবহার করি তবে আমার কেন "কার্ভস" লাগবে না? কেন রিয়েল-টাইম একটি ফ্ল্যাট মান এবং লিংক-ভাগ একটি ফ্ল্যাট মান হয় না? উভয় বক্ররেখা কেন? মূল কাগজে বক্ররেখার প্রয়োজনীয়তা স্পষ্ট, কারণ প্রতি ক্লাসে এই ধরণের একমাত্র বৈশিষ্ট্য রয়েছে। তবে এখন, তিনটি বৈশিষ্ট্য (রিয়েল-টাইম, লিংক-ভাগ এবং উচ্চ-সীমা) থাকার পরেও আমার প্রতিটিটির জন্য এখনও কার্ভ দরকার? রিয়েল-টাইম এবং লিংক-শেয়ার ট্র্যাফিকের জন্য কেন আমি বক্ররেখা আকার (গড় ব্যান্ডউইথ নয়, তবে তাদের opালু) আলাদা হতে চাই?
প্রাপ্ত সামান্য ডকুমেন্টেশন অনুসারে, রিয়েল-টাইম কার্ভের মানগুলি অভ্যন্তরীণ ক্লাসগুলির জন্য (ক্লাস এ এবং বি) পুরোপুরি উপেক্ষা করা হবে, সেগুলি কেবল পাতার শ্রেণিতে প্রয়োগ হয় (এ 1, এ 2, বি 1, বি 2)। যদি এটি সত্য হয় তবে কেন ALTQ এইচএফএসসি নমুনা কনফিগারেশন ( ৩.৩ নমুনা কনফিগারেশন সন্ধান করুন ) অভ্যন্তরীণ ক্লাসগুলিতে রিয়েল-টাইম বক্ররেখাগুলি সেট করে এবং দাবি করে যে সেগুলি সেই অভ্যন্তরীণ শ্রেণীর গ্যারান্টিযুক্ত হার নির্ধারণ করে? তা কি পুরোপুরি অর্থহীন নয়? (দ্রষ্টব্য: Phare ALTQ এ লিংক-ভাগের বক্ররেখা সেট করে এবং রিয়েল-টাইম বক্ররেখাকে ক্রেস্ট করে; আপনি এটি নমুনা কনফিগারেশনের উপরের অনুচ্ছেদে দেখতে পারেন)।
কিছু টিউটোরিয়াল বলেছে যে সমস্ত রিয়েল-টাইম কার্ভের যোগফল লাইন গতির 80% এর বেশি নাও হতে পারে, অন্যরা বলে যে এটি অবশ্যই রেখার গতির 70% এর বেশি হওয়া উচিত নয়। কোনটি সঠিক বা তারা উভয়ই ভুল হতে পারে?
একটি টিউটোরিয়াল বলেছে যে আপনি সমস্ত তত্ত্বটি ভুলে যাবেন। বিষয়গুলি সত্যই কীভাবে কাজ করে তা নির্ধারণ করে না (তফসিলকারী এবং ব্যান্ডউইথ বিতরণ), নিম্নলিখিত "সরলিকৃত মাইন্ড মডেল" অনুসারে তিনটি বক্ররেখার কল্পনা করুন: রিয়েল-টাইম হ'ল গ্যারান্টিযুক্ত ব্যান্ডউইথ যে এই বর্গটি সর্বদা পাবে। লিঙ্ক-ভাগ হ'ল ব্যান্ডউইথ যে এই শ্রেণিটি পুরোপুরি সন্তুষ্ট হতে চায়, তবে সন্তুষ্টির গ্যারান্টি দেওয়া যায় না। অতিরিক্ত ব্যান্ডউইথ থাকলে, ক্লাসটি এমনকি সন্তুষ্ট হওয়ার জন্য প্রয়োজনের চেয়ে বেশি ব্যান্ডউইথের প্রস্তাব দেওয়া হতে পারে, তবে এটি কখনও উচ্চ-সীমাবদ্ধতার চেয়ে বেশি ব্যবহার করতে পারে না। এই সমস্ত কাজ করার জন্য, সমস্ত রিয়েল-টাইম ব্যান্ডউইথের যোগফল লাইন গতির xx% এর উপরে নাও হতে পারে (উপরের প্রশ্নটি দেখুন, শতাংশটি পরিবর্তিত হয়)। প্রশ্ন: এটি কি কম-বেশি সঠিক বা এইচএসএফসি সম্পর্কিত মোট ভুল বোঝাবুঝি?
এবং যদি উপরের ধারণাটি সত্যই সঠিক হয় তবে সেই মডেলটিতে অগ্রাধিকার কোথায়? উদাহরণস্বরূপ, প্রতিটি শ্রেণীর একটি রিয়েল-টাইম ব্যান্ডউইথ (গ্যারান্টিযুক্ত), একটি লিঙ্ক-শেয়ার ব্যান্ডউইথ (গ্যারান্টিযুক্ত নয়) এবং সম্ভবত একটি উচ্চ-সীমা থাকতে পারে, তবে এখনও কিছু শ্রেণীর অন্যান্য শ্রেণীর তুলনায় উচ্চতর অগ্রাধিকারের প্রয়োজন রয়েছে। সেক্ষেত্রে সেই ক্লাসগুলির রিয়েল-টাইম ট্র্যাফিকের মধ্যেও আমাকে এখনও কোনওভাবে অগ্রাধিকার দিতে হবে। আমি কি বক্ররেখার opeাল দ্বারা অগ্রাধিকার দেব? এবং যদি তাই হয় তবে কোন বাঁক? আসল সময়ের বক্ররেখা? লিংক-শেয়ার বক্ররেখা? উপরের সীমা বাঁকা? তাদের সবাই? আমি কি তাদের সকলকে একই opeাল বা প্রতিটিকে আলাদা আলাদা করে দেব এবং কীভাবে সঠিক opeালুটি সন্ধান করব?
আমি এখনও এই আশাটি হারাইনি যে এই পৃথিবীতে কমপক্ষে এমন একটি লোকের হাত রয়েছে যা সত্যই এইচএফএসসি বুঝতে পেরেছে এবং এই সমস্ত প্রশ্নের সঠিকভাবে উত্তর দিতে সক্ষম to এবং উত্তরে একে অপরের সাথে বিতর্ক না করে এটি করা সত্যিই দুর্দান্ত হবে ;-)