একটি ভাগ করা ইন্টারনেট সংযোগে ব্যান্ডউইদথ পরিচালনার বিকল্পসমূহ


13

ভিত্তি:

গ্রামীণ অবস্থান, উচ্চ-ব্যান্ডউইথ ইন্টারনেট সংযোগের জন্য খুব বেশি বিকল্প নেই। এখন পর্যন্ত দ্রুততম স্যাটেলাইট ইন্টারনেট, তবে এটি ব্যয়বহুল (উভয় সরঞ্জাম এবং মাসিক ব্যয় এবং ল্যাটেন্সির ঘাটতি রয়েছে), তাই একাধিক পরিবার এটিকে ভাগ করে নিতে চাই।

এটি স্বয়ংক্রিয়ভাবে সোজা - প্রতিটি পরিবারের (ভিএলএএন বা শারীরিক বন্দর) জন্য একটি সাবনেট দিয়ে একটি রাউটার সেটআপ করুন, তাদের মধ্যে ট্র্যাফিক অবরোধ করুন এবং হয় সেই সাবনেটগুলিতে যাওয়ার জন্য মোডেমটি কনফিগার করুন বা ডাবল এনএটি সেট করুন।

সমস্যাটি:

টিসিপি সাধারণত যেভাবে কাজ করে তা হ'ল প্রতিটি টিসিপি সংযোগ কম-বেশি উপলব্ধ ব্যান্ডউইথের 1 / n পাবে, যেখানে এন সংযোগের সংখ্যা। সুতরাং যদি কোনও পরিবার / ব্যবহারকারী প্রচুর সংযোগ তৈরি করে তবে তারা সামগ্রিক সংযোগের একটি বড় অংশ পাবেন। এটি বিশেষভাবে ন্যায্য নয় - একটি স্যাচুরেটেড লিঙ্কের সাথে প্রতিটি পরিবারের একটি সমান ভাগ পাওয়া উচিত। অন্যদিকে, যখন অন্য কেউ সংযোগটি ব্যবহার করছেন না, তখন পূর্ণ ব্যান্ডউইথটি ব্যবহার করা উচিত।

উদাহরণস্বরূপ, বলুন যে 4 টি পরিবার 12 এমবিট / গুলি ডাউন সংযোগ ভাগ করছে। যদি তাদের মধ্যে কোনও ডাউনলোড / স্ট্রিমিং / যা কিছু করে থাকে তবে তাদের পুরো 12 এমবিট / গুলি ব্যবহার করতে সক্ষম হতে হবে (বা যথেষ্ট পরিমাণে কাছে)। যদি ২ টি পরিবার সংযোগ ব্যবহার করে তবে একটি পরিবার 1 টি ফাইল এবং অন্য 11 টি ডাউনলোড করছে কিনা তা বিবেচনা না করে তাদের প্রত্যেককে 6 এমবিট / গুলি পাওয়া উচিত (কোনও ব্যান্ডউইথ পরিচালনা ব্যতীত প্রতিটি ফাইল প্রায় 1 এমবিট / সে ক্ষেত্রে ডাউনলোড করতে পারে) 3 পরিবার 4Mbit / গুলি প্রতিটি এবং আরও কিছু পান।

আমি এ পর্যন্ত কী কাজ করেছি:

এর মতো নীতি বাস্তবায়নের সেরা অবস্থান (ডাউনস্ট্রিমের জন্য) সরু পাইপের অন্য প্রান্তে থাকবে, অর্থাৎ আইএসপিতে। স্পষ্টতই, এই ক্ষেত্রে এটি সম্ভব নয়, সুতরাং এটি কোনওরকমভাবে আনুমানিকভাবে সক্ষম হতে ভাল হবে। কিন্তু কিভাবে? অফ-দ্য শেল্ফ রাউটারগুলি কি এমন কিছু সমর্থন করে? আমি এটি করার জন্য একটি লিনাক্স বা বিএসডি বক্স কনফিগার করতে পারি? এটি বুলেট-প্রুফ হওয়ার দরকার নেই - একটি দুর্ব্যবহারকারী টিসিপি সার্ভার বা আক্রমণাত্মক ইউডিপি পরিষেবা সম্ভবত আমার শেষ মুহুর্তে কিছু করতে পারে - তবে এটি প্রচুর ট্রাফিকের সাধারণ ক্ষেত্রে কাজ করা উচিত যা প্রচুর আরএফসি-সম্মতিযুক্ত of টিসিপি সংযোগগুলি।

স্পষ্টতই, আমি নির্দিষ্ট অ্যাপ্লিকেশনগুলিকে প্রাধান্য দেওয়ার কথা বলছি না , বরং নির্দিষ্ট ইথারনেট ডিভাইস বা আইপি অ্যাড্রেস রেঞ্জের / থেকে মোট ট্র্যাফিককে ট্র্যাফিক করে দেব । অন্যান্য ট্র্যাফিকের তুলনায় কিছু ট্র্যাফিককে অগ্রাধিকার দেওয়া ভাল-সমর্থিত বলে মনে হয়, তবে ট্র্যাফিকের শ্রেণিতে সমানভাবে ব্যান্ডউইথকে বরাদ্দ দেওয়ার চেষ্টা করার সময় পরিস্থিতিটি কম স্পষ্ট হয়।

ওয়েবে ট্র্যাফিক গঠনের বিষয়ে অনেক খারাপভাবে লিখিত / অজ্ঞাতীতভাবে পুনঃস্থাপন / অন্যথায় অজানা তথ্য রয়েছে। রাউটার হার্ডওয়্যারের ডকুমেন্টেশন মারাত্মকভাবে অনির্দিষ্ট, সুতরাং আমি চেনাশোনাগুলিতে প্রায় চলমান বলে মনে করি।

যেমনটি আমি বুঝতে পেরেছি, টিসিপিকে এইভাবে আচরণ করার উপায়টি কার্যকরভাবে পাওয়া যায় তার চেয়ে কিছুটা সঙ্কুচিত পাইপ অনুকরণ করা এবং কৃত্রিমভাবে প্যাকেটগুলি ব্যাক অফ করার জন্য ফেলে দেয়। সুতরাং আমি মনে করি উপরোক্ত উদাহরণে কৃত্রিমভাবে কোনও অতিরিক্ত প্যাকেট ফেলে দিয়ে প্রত্যেককে ঠিক 3Mbit / s দেওয়া মোটামুটি সোজা হবে। অতিরিক্ত সংক্ষিপ্ততার সক্ষমতা থাকায় বেশিরভাগ সময় এটি দক্ষতার সাথে সংযোগটি কার্যকরভাবে ব্যবহার করে না।

আমি যা বলছি তা করার কোনও উপায় আছে? আমি কি এটি সম্পর্কে ভুল করছি? আমি (বা বরং প্রশ্নগুলির মধ্যে থাকা পরিবারগুলি) এর জন্য অর্থ ব্যয় করতে ইচ্ছুক - এটি কোনও শালীন রাউটার / সরঞ্জাম বা একটি লিনাক্স বা বিএসডি ডিস্ট্রো চালানোর জন্য জেনেরিক বাক্স হোক dist

উত্তর:


4

যদি আমি এই সমস্যা সমাধানের জন্য কিছু তৈরি করতে চাই তবে আমি এটি সেটআপ করব:

আমরা এখানে 4 টি কম্পিউটারের একটি লিঙ্ক ভাগ করে নেওয়া আপনার উদাহরণ নিতে যাচ্ছি। নেটওয়ার্কটি এর আকারে তৈরি হবে:

{ ISP }=========[ SOHO router] ===LAN1=== [eth0 |Linux Box| eth1] ===LAN2=== Home Desktops/Laptops

ধরা যাক আপনি LAN2 এ স্থির আইপি ঠিকানা ব্যবহার করেছেন:

Linux Box 192.168.1.1
Home 1    192.168.1.11
Home 2    192.168.1.12
Home 3    192.168.1.13
Home 4    192.168.1.14

কোন ক্লায়েন্টদের পিনিং করে এবং কোথাও ফল লিখে ফলাফলটি সনাক্ত করার জন্য আমি প্রথমে একটি ছোট স্ক্রিপ্ট লিখব। "এটি পাঠকের অনুশীলন হিসাবে ছেড়ে গেছে" সংযুক্ত হোস্টের মোট সংখ্যা গণনা করুন (1-4)

অনলাইনে কোনও হোস্টের ক্ষেত্রে হ্যান্ডেল করতে ভুলবেন না।

মোট ব্যান্ডউইথ ভাগ করুন তবে সংযুক্ত হোস্টের সংখ্যা। (1 এমবিতে 12 এমবি, 2 এর জন্য 6 এমবি, 3 টির জন্য 4 এমবি, 4 টির জন্য 3 এমবি)

এরপরে WAN-পাশের ডিভাইসে প্রতিটি ঠিকানার ব্যান্ডউইথকে সীমাবদ্ধ করতে এইচটিবি অ্যালগরিদমের সাথে টিসি ব্যবহার করুন। প্রথমে মূল শ্রেণী তৈরি করুন:

DEV="eth0"
TC="/sbin/tc"
TOT_BW=12
$TC qdisc add dev $DEV root handle 1: htb default 99

তারপরে, প্রতিটি "ক্লায়েন্ট" এর জন্য একটি ক্লাস যুক্ত করুন (এখানে উদাহরণস্বরূপ, 3 ক্লায়েন্ট)

NB_CLT=3
CLT_BW=$(($TOT_BW/$NB_CLT))mbit
for i in seq $NB_CLT
do
    $TC class add def $DEV parent 1: classid 1:$i htb rate $CLT_BW ceil $CLT_BW burst 15k cburst 1500
    $TC filter add dev $DEV protocol ip parent 1:0 prio 1 flowid 1:$i u32 \
     match ip dst 192.168.1.1$i/32 \
     match ip src [Router IP in LAN1]/32
done

(উপরের স্ক্রিপ্টটি সম্পূর্ণরূপে অনির্ধারিত এবং টাইপিং-ত্রুটি-মুক্ত নয়)

এখন আপনাকে এখনও যথাযথভাবে স্ক্রিপ্ট করতে হবে যা প্রতি মিনিটে চালানো হবে এবং প্রতিবার নতুন হোস্ট উপরে বা নীচে নেমে বালতি / ফিল্টারগুলি পুনর্নবীকরণ করতে হবে।

আমি আশা করি যে আপনাকে সঠিক দিকে নির্দেশ করবে, সৌভাগ্য।

বিকল্প সমাধান

সমস্ত হোস্টগুলিতে তাদের ব্যান্ডউইথকে সীমাবদ্ধ করতে একটি স্থানীয় কিউএস সফ্টওয়্যার ইনস্টল করুন। আমি ব্যক্তিগতভাবে নেটলিটার ব্যবহার করি (অ-মুক্ত)


আমার পদ্ধতির সাথে সমস্যা হ'ল প্রতিটি হোস্ট আপ তাদের সমস্ত অংশ ব্যবহার না করে এমনকি অন্যের ব্যান্ডউইথকে হ্রাস করে। তবে এমন কিছু ডিজাইন করা যা চাহিদা যখন উচ্চমাত্রায় হয় তখন ভাগ করা কার্যকর করে তোলে ... কঠিন।
mveroone

2

ওপেনডব্লিউআরটি এটি সমর্থন করে বলে মনে হচ্ছে, যদিও আমি নিজে এটি কখনও ব্যবহার করি নি। আপনি একবার দেখে নিতে পারেন তাদের ওয়েবসাইটে নেটওয়ার্ক ট্র্যাফিক কন্ট্রোল পৃষ্ঠাটি এবং বিশেষত দ্বিতীয় উদাহরণ: এইচটিবির সাথে সাধারণ সরল ব্যান্ডউইথ শেয়ারিং (ওরফে ট্র্যাফিক শেপিং) । এটিতে qdisc এ সাধারণ কলগুলি জড়িত, তাই কোনও লিনাক্স বাক্স এটি করতে পারে।


আমি লক্ষ্য করেছি যে সেই উদাহরণটি আপলোডের পক্ষে। আমি বর্তমানে লিনাক্স অ্যাডভান্সড রাউটিং এবং ট্র্যাফিক কন্ট্রোল হাওটো দিয়ে যাচ্ছি যা কিছুটা আশাব্যঞ্জক বলে মনে হচ্ছে এবং আশা করি এই সমস্ত tcনিয়মগুলি অনুধাবন করার অনুমতি দিয়েছি । লিনাক্সের ট্র্যাফিক শ্যাপার অবশ্যই আশাব্যঞ্জক দেখাচ্ছে।
pmdj

0

Https://superuser.com/a/1210164/257859 এ বর্ণিত সেটআপ ঠিক তা করে:

[...] সারিগুলি সমস্ত ল্যান ক্লায়েন্টের (ল্যান আইপিগুলি সুনির্দিষ্ট হওয়ার জন্য) সমানভাবে সেই সীমিত বিডাব্লু বিতরণ করে।


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

@ ডেভিডপস্টিল আমি ডুপ্লিকেট হিসাবে বন্ধ করার জন্য ভোটদানের কথা ভেবেছিলাম তবে দ্বিধায় পড়েছি কারণ এটি একটি 3 বছরের পুরানো প্রশ্ন। এমনকি আমি meta.superuser অনুসন্ধান করেছি এবং একটি প্রাসঙ্গিক প্রশ্ন meta.superuser.com/questions/3524/…পেয়েছি । মেটা পড়ার পরে আমি মনে করি পরিস্থিতি জটিল (আমার প্রত্যেকের মধ্যে যথেষ্ট আলোচনার সাথে দুটি পুরানো প্রশ্নের উত্তর আছে) এবং একটি সংক্ষিপ্ত পয়েন্টার উত্তর রেখে যাওয়া কমপক্ষে "খারাপ নয়" বলে মনে হয়। যদিও আপনার চিন্তা শুনতে আমি উন্মুক্ত।
nddou
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.